IHaskell/demo/IHaskell.html
2014-01-09 17:08:17 -05:00

3346 lines
354 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>IHaskell</title>
<style type="text/css">
.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
.clearfix:after{clear:both;}
.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
audio:not([controls]){display:none;}
html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
a:hover,a:active{outline:0;}
sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
sup{top:-0.5em;}
sub{bottom:-0.25em;}
img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
#map_canvas img,.google-maps img{max-width:none;}
button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
button,input{*overflow:visible;line-height:normal;}
button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer;}
input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
textarea{overflow:auto;vertical-align:top;}
@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important;} a,a:visited{text-decoration:underline;} a[href]:after{content:" (" attr(href) ")";} abbr[title]:after{content:" (" attr(title) ")";} .ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:"";} pre,blockquote{border:1px solid #999;page-break-inside:avoid;} thead{display:table-header-group;} tr,img{page-break-inside:avoid;} img{max-width:100% !important;} @page {margin:0.5cm;}p,h2,h3{orphans:3;widows:3;} h2,h3{page-break-after:avoid;}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:20px;color:#000000;background-color:#ffffff;}
a{color:#0088cc;text-decoration:none;}
a:hover,a:focus{color:#005580;text-decoration:underline;}
.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);}
.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px;}
.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
.row:after{clear:both;}
.row:before,.row:after{display:table;content:"";line-height:0;}
.row:after{clear:both;}
[class*="span"]{float:left;min-height:1px;margin-left:20px;}
.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
.span12{width:940px;}
.span11{width:860px;}
.span10{width:780px;}
.span9{width:700px;}
.span8{width:620px;}
.span7{width:540px;}
.span6{width:460px;}
.span5{width:380px;}
.span4{width:300px;}
.span3{width:220px;}
.span2{width:140px;}
.span1{width:60px;}
.offset12{margin-left:980px;}
.offset11{margin-left:900px;}
.offset10{margin-left:820px;}
.offset9{margin-left:740px;}
.offset8{margin-left:660px;}
.offset7{margin-left:580px;}
.offset6{margin-left:500px;}
.offset5{margin-left:420px;}
.offset4{margin-left:340px;}
.offset3{margin-left:260px;}
.offset2{margin-left:180px;}
.offset1{margin-left:100px;}
.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
.row:after{clear:both;}
.row:before,.row:after{display:table;content:"";line-height:0;}
.row:after{clear:both;}
[class*="span"]{float:left;min-height:1px;margin-left:20px;}
.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
.span12{width:940px;}
.span11{width:860px;}
.span10{width:780px;}
.span9{width:700px;}
.span8{width:620px;}
.span7{width:540px;}
.span6{width:460px;}
.span5{width:380px;}
.span4{width:300px;}
.span3{width:220px;}
.span2{width:140px;}
.span1{width:60px;}
.offset12{margin-left:980px;}
.offset11{margin-left:900px;}
.offset10{margin-left:820px;}
.offset9{margin-left:740px;}
.offset8{margin-left:660px;}
.offset7{margin-left:580px;}
.offset6{margin-left:500px;}
.offset5{margin-left:420px;}
.offset4{margin-left:340px;}
.offset3{margin-left:260px;}
.offset2{margin-left:180px;}
.offset1{margin-left:100px;}
.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
.row-fluid:after{clear:both;}
.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
.row-fluid:after{clear:both;}
.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;}
.row-fluid [class*="span"]:first-child{margin-left:0;}
.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;}
.row-fluid .span12{width:100%;*width:99.94680851063829%;}
.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;}
.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}
.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;}
.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}
.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;}
.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}
.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;}
.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}
.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;}
.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}
.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;}
.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;}
.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;}
.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;}
.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;}
.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;}
.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;}
.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;}
.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;}
.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;}
.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;}
.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;}
.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;}
.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;}
.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;}
.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;}
.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;}
.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;}
.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;}
.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;}
.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;}
.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;}
.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;}
.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;}
.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;}
.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
.row-fluid:after{clear:both;}
.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
.row-fluid:after{clear:both;}
.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;}
.row-fluid [class*="span"]:first-child{margin-left:0;}
.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;}
.row-fluid .span12{width:100%;*width:99.94680851063829%;}
.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;}
.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}
.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;}
.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}
.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;}
.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}
.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;}
.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}
.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;}
.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}
.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;}
.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;}
.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;}
.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;}
.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;}
.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;}
.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;}
.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;}
.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;}
.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;}
.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;}
.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;}
.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;}
.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;}
.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;}
.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;}
.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;}
.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;}
.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;}
.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;}
.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;}
.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;}
.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;}
.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;}
.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;}
[class*="span"].hide,.row-fluid [class*="span"].hide{display:none;}
[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right;}
.container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";line-height:0;}
.container:after{clear:both;}
.container:before,.container:after{display:table;content:"";line-height:0;}
.container:after{clear:both;}
.container:before,.container:after{display:table;content:"";line-height:0;}
.container:after{clear:both;}
.container:before,.container:after{display:table;content:"";line-height:0;}
.container:after{clear:both;}
.container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;}
.container-fluid:after{clear:both;}
.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;}
.container-fluid:after{clear:both;}
p{margin:0 0 10px;}
.lead{margin-bottom:20px;font-size:19.5px;font-weight:200;line-height:30px;}
small{font-size:85%;}
strong{font-weight:bold;}
em{font-style:italic;}
cite{font-style:normal;}
.muted{color:#999999;}
a.muted:hover,a.muted:focus{color:#808080;}
.text-warning{color:#c09853;}
a.text-warning:hover,a.text-warning:focus{color:#a47e3c;}
.text-error{color:#b94a48;}
a.text-error:hover,a.text-error:focus{color:#953b39;}
.text-info{color:#3a87ad;}
a.text-info:hover,a.text-info:focus{color:#2d6987;}
.text-success{color:#468847;}
a.text-success:hover,a.text-success:focus{color:#356635;}
.text-left{text-align:left;}
.text-right{text-align:right;}
.text-center{text-align:center;}
h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999999;}
h1,h2,h3{line-height:40px;}
h1{font-size:35.75px;}
h2{font-size:29.25px;}
h3{font-size:22.75px;}
h4{font-size:16.25px;}
h5{font-size:13px;}
h6{font-size:11.049999999999999px;}
h1 small{font-size:22.75px;}
h2 small{font-size:16.25px;}
h3 small{font-size:13px;}
h4 small{font-size:13px;}
.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eeeeee;}
ul,ol{padding:0;margin:0 0 10px 25px;}
ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
li{line-height:20px;}
ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
ul.inline,ol.inline{margin-left:0;list-style:none;}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px;}
dl{margin-bottom:20px;}
dt,dd{line-height:20px;}
dt{font-weight:bold;}
dd{margin-left:10px;}
.dl-horizontal{*zoom:1;}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;}
.dl-horizontal:after{clear:both;}
.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;}
.dl-horizontal:after{clear:both;}
.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dl-horizontal dd{margin-left:180px;}
hr{margin:20px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;}
abbr.initialism{font-size:90%;text-transform:uppercase;}
blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16.25px;font-weight:300;line-height:1.25;}
blockquote small{display:block;line-height:20px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
blockquote.pull-right small:before{content:'';}
blockquote.pull-right small:after{content:'\00A0 \2014';}
q:before,q:after,blockquote:before,blockquote:after{content:"";}
address{display:block;margin-bottom:20px;font-style:normal;line-height:20px;}
code,pre{padding:0 3px 2px;font-family:monospace;font-size:11px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap;}
pre{display:block;padding:9.5px;margin:0 0 10px;font-size:12px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}pre.prettyprint{margin-bottom:20px;}
pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0;}
.pre-scrollable{max-height:340px;overflow-y:scroll;}
form{margin:0 0 20px;}
fieldset{padding:0;margin:0;border:0;}
legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:19.5px;line-height:40px;color:#333333;border:0;border-bottom:1px solid #e5e5e5;}legend small{font-size:15px;color:#999999;}
label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:20px;}
input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
label{display:block;margin-bottom:5px;}
select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:13px;line-height:20px;color:#555555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle;}
input,textarea,.uneditable-input{width:206px;}
textarea{height:auto;}
textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#ffffff;border:1px solid #cccccc;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear .2s, box-shadow linear .2s;-moz-transition:border linear .2s, box-shadow linear .2s;-o-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);}
input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;}
input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto;}
select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px;}
select{width:220px;border:1px solid #cccccc;background-color:#ffffff;}
select[multiple],select[size]{height:auto;}
select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
.uneditable-input,.uneditable-textarea{color:#999999;background-color:#fcfcfc;border-color:#cccccc;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;}
.uneditable-input{overflow:hidden;white-space:nowrap;}
.uneditable-textarea{width:auto;height:auto;}
input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;}
input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;}
input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;}
input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;}
input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;}
input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;}
.radio,.checkbox{min-height:20px;padding-left:20px;}
.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px;}
.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;}
.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;}
.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;}
.input-mini{width:60px;}
.input-small{width:90px;}
.input-medium{width:150px;}
.input-large{width:210px;}
.input-xlarge{width:270px;}
.input-xxlarge{width:530px;}
input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;}
.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block;}
input,textarea,.uneditable-input{margin-left:0;}
.controls-row [class*="span"]+[class*="span"]{margin-left:20px;}
input.span12,textarea.span12,.uneditable-input.span12{width:926px;}
input.span11,textarea.span11,.uneditable-input.span11{width:846px;}
input.span10,textarea.span10,.uneditable-input.span10{width:766px;}
input.span9,textarea.span9,.uneditable-input.span9{width:686px;}
input.span8,textarea.span8,.uneditable-input.span8{width:606px;}
input.span7,textarea.span7,.uneditable-input.span7{width:526px;}
input.span6,textarea.span6,.uneditable-input.span6{width:446px;}
input.span5,textarea.span5,.uneditable-input.span5{width:366px;}
input.span4,textarea.span4,.uneditable-input.span4{width:286px;}
input.span3,textarea.span3,.uneditable-input.span3{width:206px;}
input.span2,textarea.span2,.uneditable-input.span2{width:126px;}
input.span1,textarea.span1,.uneditable-input.span1{width:46px;}
input,textarea,.uneditable-input{margin-left:0;}
.controls-row [class*="span"]+[class*="span"]{margin-left:20px;}
input.span12,textarea.span12,.uneditable-input.span12{width:926px;}
input.span11,textarea.span11,.uneditable-input.span11{width:846px;}
input.span10,textarea.span10,.uneditable-input.span10{width:766px;}
input.span9,textarea.span9,.uneditable-input.span9{width:686px;}
input.span8,textarea.span8,.uneditable-input.span8{width:606px;}
input.span7,textarea.span7,.uneditable-input.span7{width:526px;}
input.span6,textarea.span6,.uneditable-input.span6{width:446px;}
input.span5,textarea.span5,.uneditable-input.span5{width:366px;}
input.span4,textarea.span4,.uneditable-input.span4{width:286px;}
input.span3,textarea.span3,.uneditable-input.span3{width:206px;}
input.span2,textarea.span2,.uneditable-input.span2{width:126px;}
input.span1,textarea.span1,.uneditable-input.span1{width:46px;}
.controls-row{*zoom:1;}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0;}
.controls-row:after{clear:both;}
.controls-row:before,.controls-row:after{display:table;content:"";line-height:0;}
.controls-row:after{clear:both;}
.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left;}
.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px;}
input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eeeeee;}
input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;}
.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;}
.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;}
.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;}
.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;}
.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;}
.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;}
.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;}
.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;}
.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;}
.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;}
.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;}
.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;}
.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;}
.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;}
input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0;}
.form-actions:after{clear:both;}
.form-actions:before,.form-actions:after{display:table;content:"";line-height:0;}
.form-actions:after{clear:both;}
.help-block,.help-inline{color:#262626;}
.help-block{display:block;margin-bottom:10px;}
.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;}
.input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap;}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:13px;}
.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2;}
.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:13px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#eeeeee;border:1px solid #ccc;}
.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546;}
.input-prepend .add-on,.input-prepend .btn{margin-right:-1px;}
.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px;}
.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
.input-prepend.input-append .btn-group:first-child{margin-left:0;}
input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle;}
.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;}
.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block;}
.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;}
.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;}
.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;}
.control-group{margin-bottom:10px;}
legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate;}
.form-horizontal .control-group{margin-bottom:20px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;}
.form-horizontal .control-group:after{clear:both;}
.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;}
.form-horizontal .control-group:after{clear:both;}
.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right;}
.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0;}.form-horizontal .controls:first-child{*padding-left:180px;}
.form-horizontal .help-block{margin-bottom:0;}
.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px;}
.form-horizontal .form-actions{padding-left:180px;}
table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;}
.table{width:100%;margin-bottom:20px;}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;}
.table th{font-weight:bold;}
.table thead th{vertical-align:bottom;}
.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
.table tbody+tbody{border-top:2px solid #dddddd;}
.table .table{background-color:#ffffff;}
.table-condensed th,.table-condensed td{padding:4px 5px;}
.table-bordered{border:1px solid #dddddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;}
.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;}
.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;}
.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;}
.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5;}
table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0;}
.table td.span1,.table th.span1{float:none;width:44px;margin-left:0;}
.table td.span2,.table th.span2{float:none;width:124px;margin-left:0;}
.table td.span3,.table th.span3{float:none;width:204px;margin-left:0;}
.table td.span4,.table th.span4{float:none;width:284px;margin-left:0;}
.table td.span5,.table th.span5{float:none;width:364px;margin-left:0;}
.table td.span6,.table th.span6{float:none;width:444px;margin-left:0;}
.table td.span7,.table th.span7{float:none;width:524px;margin-left:0;}
.table td.span8,.table th.span8{float:none;width:604px;margin-left:0;}
.table td.span9,.table th.span9{float:none;width:684px;margin-left:0;}
.table td.span10,.table th.span10{float:none;width:764px;margin-left:0;}
.table td.span11,.table th.span11{float:none;width:844px;margin-left:0;}
.table td.span12,.table th.span12{float:none;width:924px;margin-left:0;}
.table tbody tr.success>td{background-color:#dff0d8;}
.table tbody tr.error>td{background-color:#f2dede;}
.table tbody tr.warning>td{background-color:#fcf8e3;}
.table tbody tr.info>td{background-color:#d9edf7;}
.table-hover tbody tr.success:hover>td{background-color:#d0e9c6;}
.table-hover tbody tr.error:hover>td{background-color:#ebcccc;}
.table-hover tbody tr.warning:hover>td{background-color:#faf2cc;}
.table-hover tbody tr.info:hover>td{background-color:#c4e3f3;}
[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;margin-top:1px;}
.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png");}
.icon-glass{background-position:0 0;}
.icon-music{background-position:-24px 0;}
.icon-search{background-position:-48px 0;}
.icon-envelope{background-position:-72px 0;}
.icon-heart{background-position:-96px 0;}
.icon-star{background-position:-120px 0;}
.icon-star-empty{background-position:-144px 0;}
.icon-user{background-position:-168px 0;}
.icon-film{background-position:-192px 0;}
.icon-th-large{background-position:-216px 0;}
.icon-th{background-position:-240px 0;}
.icon-th-list{background-position:-264px 0;}
.icon-ok{background-position:-288px 0;}
.icon-remove{background-position:-312px 0;}
.icon-zoom-in{background-position:-336px 0;}
.icon-zoom-out{background-position:-360px 0;}
.icon-off{background-position:-384px 0;}
.icon-signal{background-position:-408px 0;}
.icon-cog{background-position:-432px 0;}
.icon-trash{background-position:-456px 0;}
.icon-home{background-position:0 -24px;}
.icon-file{background-position:-24px -24px;}
.icon-time{background-position:-48px -24px;}
.icon-road{background-position:-72px -24px;}
.icon-download-alt{background-position:-96px -24px;}
.icon-download{background-position:-120px -24px;}
.icon-upload{background-position:-144px -24px;}
.icon-inbox{background-position:-168px -24px;}
.icon-play-circle{background-position:-192px -24px;}
.icon-repeat{background-position:-216px -24px;}
.icon-refresh{background-position:-240px -24px;}
.icon-list-alt{background-position:-264px -24px;}
.icon-lock{background-position:-287px -24px;}
.icon-flag{background-position:-312px -24px;}
.icon-headphones{background-position:-336px -24px;}
.icon-volume-off{background-position:-360px -24px;}
.icon-volume-down{background-position:-384px -24px;}
.icon-volume-up{background-position:-408px -24px;}
.icon-qrcode{background-position:-432px -24px;}
.icon-barcode{background-position:-456px -24px;}
.icon-tag{background-position:0 -48px;}
.icon-tags{background-position:-25px -48px;}
.icon-book{background-position:-48px -48px;}
.icon-bookmark{background-position:-72px -48px;}
.icon-print{background-position:-96px -48px;}
.icon-camera{background-position:-120px -48px;}
.icon-font{background-position:-144px -48px;}
.icon-bold{background-position:-167px -48px;}
.icon-italic{background-position:-192px -48px;}
.icon-text-height{background-position:-216px -48px;}
.icon-text-width{background-position:-240px -48px;}
.icon-align-left{background-position:-264px -48px;}
.icon-align-center{background-position:-288px -48px;}
.icon-align-right{background-position:-312px -48px;}
.icon-align-justify{background-position:-336px -48px;}
.icon-list{background-position:-360px -48px;}
.icon-indent-left{background-position:-384px -48px;}
.icon-indent-right{background-position:-408px -48px;}
.icon-facetime-video{background-position:-432px -48px;}
.icon-picture{background-position:-456px -48px;}
.icon-pencil{background-position:0 -72px;}
.icon-map-marker{background-position:-24px -72px;}
.icon-adjust{background-position:-48px -72px;}
.icon-tint{background-position:-72px -72px;}
.icon-edit{background-position:-96px -72px;}
.icon-share{background-position:-120px -72px;}
.icon-check{background-position:-144px -72px;}
.icon-move{background-position:-168px -72px;}
.icon-step-backward{background-position:-192px -72px;}
.icon-fast-backward{background-position:-216px -72px;}
.icon-backward{background-position:-240px -72px;}
.icon-play{background-position:-264px -72px;}
.icon-pause{background-position:-288px -72px;}
.icon-stop{background-position:-312px -72px;}
.icon-forward{background-position:-336px -72px;}
.icon-fast-forward{background-position:-360px -72px;}
.icon-step-forward{background-position:-384px -72px;}
.icon-eject{background-position:-408px -72px;}
.icon-chevron-left{background-position:-432px -72px;}
.icon-chevron-right{background-position:-456px -72px;}
.icon-plus-sign{background-position:0 -96px;}
.icon-minus-sign{background-position:-24px -96px;}
.icon-remove-sign{background-position:-48px -96px;}
.icon-ok-sign{background-position:-72px -96px;}
.icon-question-sign{background-position:-96px -96px;}
.icon-info-sign{background-position:-120px -96px;}
.icon-screenshot{background-position:-144px -96px;}
.icon-remove-circle{background-position:-168px -96px;}
.icon-ok-circle{background-position:-192px -96px;}
.icon-ban-circle{background-position:-216px -96px;}
.icon-arrow-left{background-position:-240px -96px;}
.icon-arrow-right{background-position:-264px -96px;}
.icon-arrow-up{background-position:-289px -96px;}
.icon-arrow-down{background-position:-312px -96px;}
.icon-share-alt{background-position:-336px -96px;}
.icon-resize-full{background-position:-360px -96px;}
.icon-resize-small{background-position:-384px -96px;}
.icon-plus{background-position:-408px -96px;}
.icon-minus{background-position:-433px -96px;}
.icon-asterisk{background-position:-456px -96px;}
.icon-exclamation-sign{background-position:0 -120px;}
.icon-gift{background-position:-24px -120px;}
.icon-leaf{background-position:-48px -120px;}
.icon-fire{background-position:-72px -120px;}
.icon-eye-open{background-position:-96px -120px;}
.icon-eye-close{background-position:-120px -120px;}
.icon-warning-sign{background-position:-144px -120px;}
.icon-plane{background-position:-168px -120px;}
.icon-calendar{background-position:-192px -120px;}
.icon-random{background-position:-216px -120px;width:16px;}
.icon-comment{background-position:-240px -120px;}
.icon-magnet{background-position:-264px -120px;}
.icon-chevron-up{background-position:-288px -120px;}
.icon-chevron-down{background-position:-313px -119px;}
.icon-retweet{background-position:-336px -120px;}
.icon-shopping-cart{background-position:-360px -120px;}
.icon-folder-close{background-position:-384px -120px;width:16px;}
.icon-folder-open{background-position:-408px -120px;width:16px;}
.icon-resize-vertical{background-position:-432px -119px;}
.icon-resize-horizontal{background-position:-456px -118px;}
.icon-hdd{background-position:0 -144px;}
.icon-bullhorn{background-position:-24px -144px;}
.icon-bell{background-position:-48px -144px;}
.icon-certificate{background-position:-72px -144px;}
.icon-thumbs-up{background-position:-96px -144px;}
.icon-thumbs-down{background-position:-120px -144px;}
.icon-hand-right{background-position:-144px -144px;}
.icon-hand-left{background-position:-168px -144px;}
.icon-hand-up{background-position:-192px -144px;}
.icon-hand-down{background-position:-216px -144px;}
.icon-circle-arrow-right{background-position:-240px -144px;}
.icon-circle-arrow-left{background-position:-264px -144px;}
.icon-circle-arrow-up{background-position:-288px -144px;}
.icon-circle-arrow-down{background-position:-312px -144px;}
.icon-globe{background-position:-336px -144px;}
.icon-wrench{background-position:-360px -144px;}
.icon-tasks{background-position:-384px -144px;}
.icon-filter{background-position:-408px -144px;}
.icon-briefcase{background-position:-432px -144px;}
.icon-fullscreen{background-position:-456px -144px;}
.dropup,.dropdown{position:relative;}
.dropdown-toggle{*margin-bottom:-3px;}
.dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";}
.dropdown .caret{margin-top:8px;margin-left:2px;}
.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;}
.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333333;white-space:nowrap;}
.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{text-decoration:none;color:#ffffff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999;}
.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default;}
.open{*z-index:1000;}.open>.dropdown-menu{display:block;}
.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;}
.pull-right>.dropdown-menu{right:0;left:auto;}
.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"";}
.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
.dropdown-submenu{position:relative;}
.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}
.dropdown-submenu:hover>.dropdown-menu{display:block;}
.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0;}
.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;}
.dropdown-submenu:hover>a:after{border-left-color:#ffffff;}
.dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px;}
.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;}
.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;}
.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);}
button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;}
.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:13px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333333;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(to bottom, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #cccccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;}
.btn:active,.btn.active{background-color:#cccccc \9;}
.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;}
.btn:active,.btn.active{background-color:#cccccc \9;}
.btn:first-child{*margin-left:0;}
.btn:first-child{*margin-left:0;}
.btn:hover,.btn:focus{color:#333333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
.btn-large{padding:11px 19px;font-size:16.25px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px;}
.btn-small{padding:2px 10px;font-size:11.049999999999999px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0;}
.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px;}
.btn-mini{padding:0 6px;font-size:9.75px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
.btn-block+.btn-block{margin-top:5px;}
input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;}
.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
.btn-primary{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(to bottom, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0044cc;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#0044cc;*background-color:#003bb3;}
.btn-primary:active,.btn-primary.active{background-color:#003399 \9;}
.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#0044cc;*background-color:#003bb3;}
.btn-primary:active,.btn-primary.active{background-color:#003399 \9;}
.btn-warning{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#f89406;*background-color:#df8505;}
.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#f89406;*background-color:#df8505;}
.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
.btn-danger{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(to bottom, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;}
.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;}
.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
.btn-success{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(to bottom, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;}
.btn-success:active,.btn-success.active{background-color:#408140 \9;}
.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;}
.btn-success:active,.btn-success.active{background-color:#408140 \9;}
.btn-info{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(to bottom, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;}
.btn-info:active,.btn-info.active{background-color:#24748c \9;}
.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;}
.btn-info:active,.btn-info.active{background-color:#24748c \9;}
.btn-inverse{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#363636;background-image:-moz-linear-gradient(top, #444444, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));background-image:-webkit-linear-gradient(top, #444444, #222222);background-image:-o-linear-gradient(top, #444444, #222222);background-image:linear-gradient(to bottom, #444444, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;}
.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;}
.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
.btn-link{border-color:transparent;cursor:pointer;color:#0088cc;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent;}
.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333333;text-decoration:none;}
.btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em;}.btn-group:first-child{*margin-left:0;}
.btn-group:first-child{*margin-left:0;}
.btn-group+.btn-group{margin-left:5px;}
.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px;}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px;}
.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
.btn-group>.btn+.btn{margin-left:-1px;}
.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:13px;}
.btn-group>.btn-mini{font-size:9.75px;}
.btn-group>.btn-small{font-size:11.049999999999999px;}
.btn-group>.btn-large{font-size:16.25px;}
.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2;}
.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}
.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px;}
.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px;}
.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px;}
.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px;}
.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6;}
.btn-group.open .btn-primary.dropdown-toggle{background-color:#0044cc;}
.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406;}
.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f;}
.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351;}
.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4;}
.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222222;}
.btn .caret{margin-top:8px;margin-left:0;}
.btn-large .caret{margin-top:6px;}
.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px;}
.btn-mini .caret,.btn-small .caret{margin-top:8px;}
.dropup .btn-large .caret{border-bottom-width:5px;}
.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
.btn-group-vertical{display:inline-block;*display:inline;*zoom:1;}
.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
.btn-group-vertical>.btn+.btn{margin-left:0;margin-top:-1px;}
.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}
.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}
.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0;}
.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.alert,.alert h4{color:#c09853;}
.alert h4{margin:0;}
.alert .close{position:relative;top:-2px;right:-21px;line-height:20px;}
.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;}
.alert-success h4{color:#468847;}
.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;}
.alert-danger h4,.alert-error h4{color:#b94a48;}
.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;}
.alert-info h4{color:#3a87ad;}
.alert-block{padding-top:14px;padding-bottom:14px;}
.alert-block>p,.alert-block>ul{margin-bottom:0;}
.alert-block p+p{margin-top:5px;}
.nav{margin-left:0;margin-bottom:20px;list-style:none;}
.nav>li>a{display:block;}
.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee;}
.nav>li>a>img{max-width:none;}
.nav>.pull-right{float:right;}
.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;}
.nav li+.nav-header{margin-top:9px;}
.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;}
.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
.nav-list>li>a{padding:3px 15px;}
.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;}
.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px;}
.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;}
.nav-tabs:after,.nav-pills:after{clear:both;}
.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;}
.nav-tabs:after,.nav-pills:after{clear:both;}
.nav-tabs>li,.nav-pills>li{float:left;}
.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;}
.nav-tabs{border-bottom:1px solid #ddd;}
.nav-tabs>li{margin-bottom:-1px;}
.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #dddddd;}
.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#ffffff;background-color:#0088cc;}
.nav-stacked>li{float:none;}
.nav-stacked>li>a{margin-right:0;}
.nav-tabs.nav-stacked{border-bottom:0;}
.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{border-color:#ddd;z-index:2;}
.nav-pills.nav-stacked>li>a{margin-bottom:3px;}
.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;}
.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
.nav .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;}
.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580;}
.nav-tabs .dropdown-toggle .caret{margin-top:8px;}
.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff;}
.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer;}
.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#ffffff;background-color:#999999;border-color:#999999;}
.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999999;}
.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0;}
.tabbable:after{clear:both;}
.tabbable:before,.tabbable:after{display:table;content:"";line-height:0;}
.tabbable:after{clear:both;}
.tab-content{overflow:auto;}
.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;}
.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
.tab-content>.active,.pill-content>.active{display:block;}
.tabs-below>.nav-tabs{border-top:1px solid #ddd;}
.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;}
.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-bottom-color:transparent;border-top-color:#ddd;}
.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd;}
.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;}
.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
.nav>.disabled>a{color:#999999;}
.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;background-color:transparent;cursor:default;}
.navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2;}
.navbar-inner{min-height:36px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top, #ffffff, #f2f2f2);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));background-image:-webkit-linear-gradient(top, #ffffff, #f2f2f2);background-image:-o-linear-gradient(top, #ffffff, #f2f2f2);background-image:linear-gradient(to bottom, #ffffff, #f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);-moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);*zoom:1;}.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;}
.navbar-inner:after{clear:both;}
.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;}
.navbar-inner:after{clear:both;}
.navbar .container{width:auto;}
.nav-collapse.collapse{height:auto;overflow:visible;}
.navbar .brand{float:left;display:block;padding:8px 20px 8px;margin-left:-20px;font-size:20px;font-weight:200;color:#777777;text-shadow:0 1px 0 #ffffff;}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none;}
.navbar-text{margin-bottom:0;line-height:36px;color:#777777;}
.navbar-link{color:#777777;}.navbar-link:hover,.navbar-link:focus{color:#333333;}
.navbar .divider-vertical{height:36px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #ffffff;}
.navbar .btn,.navbar .btn-group{margin-top:3px;}
.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0;}
.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;}
.navbar-form:after{clear:both;}
.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;}
.navbar-form:after{clear:both;}
.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:3px;}
.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0;}
.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;}
.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;}
.navbar-search{position:relative;float:left;margin-top:3px;margin-bottom:0;}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
.navbar-static-top{position:static;margin-bottom:0;}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;}
.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;}
.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0;}
.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
.navbar-fixed-top{top:0;}
.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1);}
.navbar-fixed-bottom{bottom:0;}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1);}
.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;}
.navbar .nav.pull-right{float:right;margin-right:0;}
.navbar .nav>li{float:left;}
.navbar .nav>li>a{float:none;padding:8px 15px 8px;color:#777777;text-decoration:none;text-shadow:0 1px 0 #ffffff;}
.navbar .nav .dropdown-toggle .caret{margin-top:8px;}
.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333333;text-decoration:none;}
.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);-moz-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);}
.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#ededed;background-image:-moz-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));background-image:-webkit-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-o-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:linear-gradient(to bottom, #f2f2f2, #e5e5e5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#ffffff;background-color:#e5e5e5;*background-color:#d9d9d9;}
.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;}
.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#ffffff;background-color:#e5e5e5;*background-color:#d9d9d9;}
.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;}
.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
.btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
.navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;}
.navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;}
.navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;}
.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333333;border-bottom-color:#333333;}
.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:#e5e5e5;color:#555555;}
.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777777;border-bottom-color:#777777;}
.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{left:auto;right:0;}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{left:auto;right:12px;}
.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{left:auto;right:13px;}
.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top, #222222, #111111);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));background-image:-webkit-linear-gradient(top, #222222, #111111);background-image:-o-linear-gradient(top, #222222, #111111);background-image:linear-gradient(to bottom, #222222, #111111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);border-color:#252525;}
.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999999;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#ffffff;}
.navbar-inverse .brand{color:#999999;}
.navbar-inverse .navbar-text{color:#999999;}
.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#ffffff;}
.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#ffffff;background-color:#111111;}
.navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#ffffff;}
.navbar-inverse .divider-vertical{border-left-color:#111111;border-right-color:#222222;}
.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{background-color:#111111;color:#ffffff;}
.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999999;border-bottom-color:#999999;}
.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
.navbar-inverse .navbar-search .search-query{color:#ffffff;background-color:#515151;border-color:#111111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;}
.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;}
.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;}
.navbar-inverse .btn-navbar{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top, #151515, #040404);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));background-image:-webkit-linear-gradient(top, #151515, #040404);background-image:-o-linear-gradient(top, #151515, #040404);background-image:linear-gradient(to bottom, #151515, #040404);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);border-color:#040404 #040404 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#ffffff;background-color:#040404;*background-color:#000000;}
.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000000 \9;}
.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#ffffff;background-color:#040404;*background-color:#000000;}
.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000000 \9;}
.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.breadcrumb>li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;}.breadcrumb>li>.divider{padding:0 5px;color:#ccc;}
.breadcrumb>.active{color:#999999;}
.pagination{margin:20px 0;}
.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);}
.pagination ul>li{display:inline;}
.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd;border-left-width:0;}
.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5;}
.pagination ul>.active>a,.pagination ul>.active>span{color:#999999;cursor:default;}
.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999999;background-color:transparent;cursor:default;}
.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
.pagination-centered{text-align:center;}
.pagination-right{text-align:right;}
.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:16.25px;}
.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px;}
.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px;}
.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.049999999999999px;}
.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:9.75px;}
.pager{margin:20px 0;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";line-height:0;}
.pager:after{clear:both;}
.pager:before,.pager:after{display:table;content:"";line-height:0;}
.pager:after{clear:both;}
.pager li{display:inline;}
.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5;}
.pager .next>a,.pager .next>span{float:right;}
.pager .previous>a,.pager .previous>span{float:left;}
.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#fff;cursor:default;}
.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;}
.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);}
.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
.modal.fade.in{top:10%;}
.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;}
.modal-header h3{margin:0;line-height:30px;}
.modal-body{position:relative;overflow-y:auto;max-height:400px;padding:15px;}
.modal-form{margin-bottom:0;}
.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;}
.modal-footer:after{clear:both;}
.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;}
.modal-footer:after{clear:both;}
.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
.modal-footer .btn-group .btn+.btn{margin-left:-1px;}
.modal-footer .btn-block+.btn-block{margin-left:0;}
.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
.tooltip.top{margin-top:-3px;padding:5px 0;}
.tooltip.right{margin-left:3px;padding:0 5px;}
.tooltip.bottom{margin-top:3px;padding:5px 0;}
.tooltip.left{margin-left:-3px;padding:0 5px;}
.tooltip-inner{max-width:200px;padding:8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;}.popover.top{margin-top:-10px;}
.popover.right{margin-left:10px;}
.popover.bottom{margin-top:10px;}
.popover.left{margin-left:-10px;}
.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}.popover-title:empty{display:none;}
.popover-content{padding:9px 14px;}
.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;}
.popover .arrow{border-width:11px;}
.popover .arrow:after{border-width:10px;content:"";}
.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;}
.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0, 0, 0, 0.25);}.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;}
.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;}
.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0, 0, 0, 0.25);}.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;}
.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;}
.thumbnails:after{clear:both;}
.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;}
.thumbnails:after{clear:both;}
.row-fluid .thumbnails{margin-left:0;}
.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px;}
.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}
a.thumbnail:hover,a.thumbnail:focus{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);}
.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;}
.thumbnail .caption{padding:9px;color:#555555;}
.media,.media-body{overflow:hidden;*overflow:visible;zoom:1;}
.media,.media .media{margin-top:15px;}
.media:first-child{margin-top:0;}
.media-object{display:block;}
.media-heading{margin:0 0 5px;}
.media>.pull-left{margin-right:10px;}
.media>.pull-right{margin-left:10px;}
.media-list{margin-left:0;list-style:none;}
.label,.badge{display:inline-block;padding:2px 4px;font-size:10.998px;font-weight:bold;line-height:14px;color:#ffffff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;}
.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
.badge{padding-left:9px;padding-right:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;}
.label:empty,.badge:empty{display:none;}
a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer;}
.label-important,.badge-important{background-color:#b94a48;}
.label-important[href],.badge-important[href]{background-color:#953b39;}
.label-warning,.badge-warning{background-color:#f89406;}
.label-warning[href],.badge-warning[href]{background-color:#c67605;}
.label-success,.badge-success{background-color:#468847;}
.label-success[href],.badge-success[href]{background-color:#356635;}
.label-info,.badge-info{background-color:#3a87ad;}
.label-info[href],.badge-info[href]{background-color:#2d6987;}
.label-inverse,.badge-inverse{background-color:#333333;}
.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a;}
.btn .label,.btn .badge{position:relative;top:-1px;}
.btn-mini .label,.btn-mini .badge{top:0;}
@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(to bottom, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.progress .bar{width:0%;height:100%;color:#ffffff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(to bottom, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;}
.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);}
.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-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);background-image:-moz-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);background-image:-o-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);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);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;}
.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(to bottom, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);}
.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-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);background-image:-moz-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);background-image:-o-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);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);}
.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(to bottom, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);}
.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-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);background-image:-moz-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);background-image:-o-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);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);}
.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(to bottom, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);}
.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-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);background-image:-moz-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);background-image:-o-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);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);}
.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);}
.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-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);background-image:-moz-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);background-image:-o-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);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);}
.accordion{margin-bottom:20px;}
.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.accordion-heading{border-bottom:0;}
.accordion-heading .accordion-toggle{display:block;padding:8px 15px;}
.accordion-toggle{cursor:pointer;}
.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;}
.carousel{position:relative;margin-bottom:20px;line-height:1;}
.carousel-inner{overflow:hidden;width:100%;position:relative;}
.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1;}
.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block;}
.carousel-inner>.active{left:0;}
.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%;}
.carousel-inner>.next{left:100%;}
.carousel-inner>.prev{left:-100%;}
.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0;}
.carousel-inner>.active.left{left:-100%;}
.carousel-inner>.active.right{left:100%;}
.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;}
.carousel-control:hover,.carousel-control:focus{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);}
.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none;}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255, 255, 255, 0.25);border-radius:5px;}
.carousel-indicators .active{background-color:#fff;}
.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:15px;background:#333333;background:rgba(0, 0, 0, 0.75);}
.carousel-caption h4,.carousel-caption p{color:#ffffff;line-height:20px;}
.carousel-caption h4{margin:0 0 5px;}
.carousel-caption p{margin-bottom:0;}
.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;}
.hero-unit li{line-height:30px;}
.pull-right{float:right;}
.pull-left{float:left;}
.hide{display:none;}
.show{display:block;}
.invisible{visibility:hidden;}
.affix{position:fixed;}
.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
.clearfix:after{clear:both;}
.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
@-ms-viewport{width:device-width;}.hidden{display:none;visibility:hidden;}
.visible-phone{display:none !important;}
.visible-tablet{display:none !important;}
.hidden-desktop{display:none !important;}
.visible-desktop{display:inherit !important;}
@media (min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important ;} .visible-tablet{display:inherit !important;} .hidden-tablet{display:none !important;}}@media (max-width:767px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important;} .visible-phone{display:inherit !important;} .hidden-phone{display:none !important;}}.visible-print{display:none !important;}
@media print{.visible-print{display:inherit !important;} .hidden-print{display:none !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:30px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:30px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;} .row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;} .row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;} .row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;} .row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;} .row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;} .row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;} .row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;} .row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;} .row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;} .row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;} .row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;} .row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;} .row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;} .row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;} .row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;} .row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;} .row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;} .row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;} .row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;} .row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;} .row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;} .row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;} .row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;} .row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;} .row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;} .row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;} .row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;} .row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;} .row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;} .row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;} .row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;} .row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;} .row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;} .row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;} .row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;} .row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;} .row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;} .row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;} .row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;} .row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;} .row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;} .row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;} .row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;} .row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;} .row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;} .row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;} .row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;} .row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;} .row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;} .row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;} .row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;} .row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;} .row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;} .row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;} .row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;} .row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;} .row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;} .row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;} .row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;} .row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;} .row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;} .row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;} .row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;} .row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;} .row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;} .row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;} .row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;} .row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:30px;} input.span12,textarea.span12,.uneditable-input.span12{width:1156px;} input.span11,textarea.span11,.uneditable-input.span11{width:1056px;} input.span10,textarea.span10,.uneditable-input.span10{width:956px;} input.span9,textarea.span9,.uneditable-input.span9{width:856px;} input.span8,textarea.span8,.uneditable-input.span8{width:756px;} input.span7,textarea.span7,.uneditable-input.span7{width:656px;} input.span6,textarea.span6,.uneditable-input.span6{width:556px;} input.span5,textarea.span5,.uneditable-input.span5{width:456px;} input.span4,textarea.span4,.uneditable-input.span4{width:356px;} input.span3,textarea.span3,.uneditable-input.span3{width:256px;} input.span2,textarea.span2,.uneditable-input.span2{width:156px;} input.span1,textarea.span1,.uneditable-input.span1{width:56px;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:30px;} input.span12,textarea.span12,.uneditable-input.span12{width:1156px;} input.span11,textarea.span11,.uneditable-input.span11{width:1056px;} input.span10,textarea.span10,.uneditable-input.span10{width:956px;} input.span9,textarea.span9,.uneditable-input.span9{width:856px;} input.span8,textarea.span8,.uneditable-input.span8{width:756px;} input.span7,textarea.span7,.uneditable-input.span7{width:656px;} input.span6,textarea.span6,.uneditable-input.span6{width:556px;} input.span5,textarea.span5,.uneditable-input.span5{width:456px;} input.span4,textarea.span4,.uneditable-input.span4{width:356px;} input.span3,textarea.span3,.uneditable-input.span3{width:256px;} input.span2,textarea.span2,.uneditable-input.span2{width:156px;} input.span1,textarea.span1,.uneditable-input.span1{width:56px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;} .row-fluid .thumbnails{margin-left:0;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:20px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:20px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;} .row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;} .row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;} .row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;} .row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;} .row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;} .row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;} .row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;} .row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;} .row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;} .row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;} .row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;} .row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;} .row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;} .row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;} .row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;} .row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;} .row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;} .row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;} .row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;} .row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;} .row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;} .row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;} .row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;} .row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;} .row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;} .row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;} .row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;} .row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;} .row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;} .row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;} .row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;} .row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;} .row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;} .row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;} .row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;} .row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;} .row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;} .row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;} .row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;} .row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;} .row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;} .row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;} .row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;} .row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;} .row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;} .row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;} .row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;} .row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;} .row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;} .row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;} .row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;} .row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;} .row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;} .row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;} .row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;} .row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;} .row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;} .row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;} .row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;} .row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;} .row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;} .row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;} .row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;} .row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;} .row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;} .row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;} .row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;} .row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:20px;} input.span12,textarea.span12,.uneditable-input.span12{width:710px;} input.span11,textarea.span11,.uneditable-input.span11{width:648px;} input.span10,textarea.span10,.uneditable-input.span10{width:586px;} input.span9,textarea.span9,.uneditable-input.span9{width:524px;} input.span8,textarea.span8,.uneditable-input.span8{width:462px;} input.span7,textarea.span7,.uneditable-input.span7{width:400px;} input.span6,textarea.span6,.uneditable-input.span6{width:338px;} input.span5,textarea.span5,.uneditable-input.span5{width:276px;} input.span4,textarea.span4,.uneditable-input.span4{width:214px;} input.span3,textarea.span3,.uneditable-input.span3{width:152px;} input.span2,textarea.span2,.uneditable-input.span2{width:90px;} input.span1,textarea.span1,.uneditable-input.span1{width:28px;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:20px;} input.span12,textarea.span12,.uneditable-input.span12{width:710px;} input.span11,textarea.span11,.uneditable-input.span11{width:648px;} input.span10,textarea.span10,.uneditable-input.span10{width:586px;} input.span9,textarea.span9,.uneditable-input.span9{width:524px;} input.span8,textarea.span8,.uneditable-input.span8{width:462px;} input.span7,textarea.span7,.uneditable-input.span7{width:400px;} input.span6,textarea.span6,.uneditable-input.span6{width:338px;} input.span5,textarea.span5,.uneditable-input.span5{width:276px;} input.span4,textarea.span4,.uneditable-input.span4{width:214px;} input.span3,textarea.span3,.uneditable-input.span3{width:152px;} input.span2,textarea.span2,.uneditable-input.span2{width:90px;} input.span1,textarea.span1,.uneditable-input.span1{width:28px;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px;} .container-fluid{padding:0;} .dl-horizontal dt{float:none;clear:none;width:auto;text-align:left;} .dl-horizontal dd{margin-left:0;} .container{width:auto;} .row-fluid{width:100%;} .row,.thumbnails{margin-left:0;} .thumbnails>li{float:none;margin-left:0;} [class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .row-fluid [class*="offset"]:first-child{margin-left:0;} .input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto;} .controls-row [class*="span"]+[class*="span"]{margin-left:0;} .modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0;}.modal.fade{top:-100px;} .modal.fade.in{top:20px;}}@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:20px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .media .pull-left,.media .pull-right{float:none;display:block;margin-bottom:10px;} .media-object{margin-right:0;margin-left:0;} .modal{top:10px;left:10px;right:10px;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top,.navbar-fixed-bottom{position:static;} .navbar-fixed-top{margin-bottom:20px;} .navbar-fixed-bottom{margin-top:20px;} .navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .nav-collapse{clear:both;} .nav-collapse .nav{float:none;margin:0 0 10px;} .nav-collapse .nav>li{float:none;} .nav-collapse .nav>li>a{margin-bottom:2px;} .nav-collapse .nav>.divider-vertical{display:none;} .nav-collapse .nav .nav-header{color:#777777;text-shadow:none;} .nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} .nav-collapse .dropdown-menu li+li a{margin-bottom:2px;} .nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2;} .navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999999;} .navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111111;} .nav-collapse.in .btn-group{margin-top:5px;padding:0;} .nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .nav-collapse .open>.dropdown-menu{display:block;} .nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none;} .nav-collapse .dropdown-menu .divider{display:none;} .nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none;} .nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);} .navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111111;border-bottom-color:#111111;} .navbar .nav-collapse .nav.pull-right{float:none;margin-left:0;} .nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0;} .navbar .btn-navbar{display:block;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important;}}@font-face{font-family:'FontAwesome';src:url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.eot?v=3.1.0');src:url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.eot?#iefix&v=3.1.0') format('embedded-opentype'),url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.woff?v=3.1.0') format('woff'),url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.ttf?v=3.1.0') format('truetype'),url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.svg#fontawesomeregular?v=3.1.0') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;}
[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;}
.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;}
a [class^="icon-"],a [class*=" icon-"],a [class^="icon-"]:before,a [class*=" icon-"]:before{display:inline;}
[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.2857142857142858em;text-align:center;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.5714285714285714em;}
ul.icons-ul{list-style-type:none;text-indent:-0.7142857142857143em;margin-left:2.142857142857143em;}ul.icons-ul>li .icon-li{width:0.7142857142857143em;display:inline-block;text-align:center;}
[class^="icon-"].hide,[class*=" icon-"].hide{display:none;}
.icon-muted{color:#eeeeee;}
.icon-light{color:#ffffff;}
.icon-dark{color:#333333;}
.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
.icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;}
.pull-right{float:right;}
.pull-left{float:left;}
[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;}
[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;}
[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;}
.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;}
.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;}
.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;}
.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;}
.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;}
.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;}
.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;}
.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;}
.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;}
.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;}
.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;}
.icon-stack .icon-stack-base{font-size:2em;*line-height:1em;}
.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;}
@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);}
.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);}
.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);}
.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);}
.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);}
.icon-glass:before{content:"\f000";}
.icon-music:before{content:"\f001";}
.icon-search:before{content:"\f002";}
.icon-envelope:before{content:"\f003";}
.icon-heart:before{content:"\f004";}
.icon-star:before{content:"\f005";}
.icon-star-empty:before{content:"\f006";}
.icon-user:before{content:"\f007";}
.icon-film:before{content:"\f008";}
.icon-th-large:before{content:"\f009";}
.icon-th:before{content:"\f00a";}
.icon-th-list:before{content:"\f00b";}
.icon-ok:before{content:"\f00c";}
.icon-remove:before{content:"\f00d";}
.icon-zoom-in:before{content:"\f00e";}
.icon-zoom-out:before{content:"\f010";}
.icon-off:before{content:"\f011";}
.icon-signal:before{content:"\f012";}
.icon-cog:before{content:"\f013";}
.icon-trash:before{content:"\f014";}
.icon-home:before{content:"\f015";}
.icon-file:before{content:"\f016";}
.icon-time:before{content:"\f017";}
.icon-road:before{content:"\f018";}
.icon-download-alt:before{content:"\f019";}
.icon-download:before{content:"\f01a";}
.icon-upload:before{content:"\f01b";}
.icon-inbox:before{content:"\f01c";}
.icon-play-circle:before{content:"\f01d";}
.icon-repeat:before,.icon-rotate-right:before{content:"\f01e";}
.icon-refresh:before{content:"\f021";}
.icon-list-alt:before{content:"\f022";}
.icon-lock:before{content:"\f023";}
.icon-flag:before{content:"\f024";}
.icon-headphones:before{content:"\f025";}
.icon-volume-off:before{content:"\f026";}
.icon-volume-down:before{content:"\f027";}
.icon-volume-up:before{content:"\f028";}
.icon-qrcode:before{content:"\f029";}
.icon-barcode:before{content:"\f02a";}
.icon-tag:before{content:"\f02b";}
.icon-tags:before{content:"\f02c";}
.icon-book:before{content:"\f02d";}
.icon-bookmark:before{content:"\f02e";}
.icon-print:before{content:"\f02f";}
.icon-camera:before{content:"\f030";}
.icon-font:before{content:"\f031";}
.icon-bold:before{content:"\f032";}
.icon-italic:before{content:"\f033";}
.icon-text-height:before{content:"\f034";}
.icon-text-width:before{content:"\f035";}
.icon-align-left:before{content:"\f036";}
.icon-align-center:before{content:"\f037";}
.icon-align-right:before{content:"\f038";}
.icon-align-justify:before{content:"\f039";}
.icon-list:before{content:"\f03a";}
.icon-indent-left:before{content:"\f03b";}
.icon-indent-right:before{content:"\f03c";}
.icon-facetime-video:before{content:"\f03d";}
.icon-picture:before{content:"\f03e";}
.icon-pencil:before{content:"\f040";}
.icon-map-marker:before{content:"\f041";}
.icon-adjust:before{content:"\f042";}
.icon-tint:before{content:"\f043";}
.icon-edit:before{content:"\f044";}
.icon-share:before{content:"\f045";}
.icon-check:before{content:"\f046";}
.icon-move:before{content:"\f047";}
.icon-step-backward:before{content:"\f048";}
.icon-fast-backward:before{content:"\f049";}
.icon-backward:before{content:"\f04a";}
.icon-play:before{content:"\f04b";}
.icon-pause:before{content:"\f04c";}
.icon-stop:before{content:"\f04d";}
.icon-forward:before{content:"\f04e";}
.icon-fast-forward:before{content:"\f050";}
.icon-step-forward:before{content:"\f051";}
.icon-eject:before{content:"\f052";}
.icon-chevron-left:before{content:"\f053";}
.icon-chevron-right:before{content:"\f054";}
.icon-plus-sign:before{content:"\f055";}
.icon-minus-sign:before{content:"\f056";}
.icon-remove-sign:before{content:"\f057";}
.icon-ok-sign:before{content:"\f058";}
.icon-question-sign:before{content:"\f059";}
.icon-info-sign:before{content:"\f05a";}
.icon-screenshot:before{content:"\f05b";}
.icon-remove-circle:before{content:"\f05c";}
.icon-ok-circle:before{content:"\f05d";}
.icon-ban-circle:before{content:"\f05e";}
.icon-arrow-left:before{content:"\f060";}
.icon-arrow-right:before{content:"\f061";}
.icon-arrow-up:before{content:"\f062";}
.icon-arrow-down:before{content:"\f063";}
.icon-share-alt:before,.icon-mail-forward:before{content:"\f064";}
.icon-resize-full:before{content:"\f065";}
.icon-resize-small:before{content:"\f066";}
.icon-plus:before{content:"\f067";}
.icon-minus:before{content:"\f068";}
.icon-asterisk:before{content:"\f069";}
.icon-exclamation-sign:before{content:"\f06a";}
.icon-gift:before{content:"\f06b";}
.icon-leaf:before{content:"\f06c";}
.icon-fire:before{content:"\f06d";}
.icon-eye-open:before{content:"\f06e";}
.icon-eye-close:before{content:"\f070";}
.icon-warning-sign:before{content:"\f071";}
.icon-plane:before{content:"\f072";}
.icon-calendar:before{content:"\f073";}
.icon-random:before{content:"\f074";}
.icon-comment:before{content:"\f075";}
.icon-magnet:before{content:"\f076";}
.icon-chevron-up:before{content:"\f077";}
.icon-chevron-down:before{content:"\f078";}
.icon-retweet:before{content:"\f079";}
.icon-shopping-cart:before{content:"\f07a";}
.icon-folder-close:before{content:"\f07b";}
.icon-folder-open:before{content:"\f07c";}
.icon-resize-vertical:before{content:"\f07d";}
.icon-resize-horizontal:before{content:"\f07e";}
.icon-bar-chart:before{content:"\f080";}
.icon-twitter-sign:before{content:"\f081";}
.icon-facebook-sign:before{content:"\f082";}
.icon-camera-retro:before{content:"\f083";}
.icon-key:before{content:"\f084";}
.icon-cogs:before{content:"\f085";}
.icon-comments:before{content:"\f086";}
.icon-thumbs-up:before{content:"\f087";}
.icon-thumbs-down:before{content:"\f088";}
.icon-star-half:before{content:"\f089";}
.icon-heart-empty:before{content:"\f08a";}
.icon-signout:before{content:"\f08b";}
.icon-linkedin-sign:before{content:"\f08c";}
.icon-pushpin:before{content:"\f08d";}
.icon-external-link:before{content:"\f08e";}
.icon-signin:before{content:"\f090";}
.icon-trophy:before{content:"\f091";}
.icon-github-sign:before{content:"\f092";}
.icon-upload-alt:before{content:"\f093";}
.icon-lemon:before{content:"\f094";}
.icon-phone:before{content:"\f095";}
.icon-check-empty:before{content:"\f096";}
.icon-bookmark-empty:before{content:"\f097";}
.icon-phone-sign:before{content:"\f098";}
.icon-twitter:before{content:"\f099";}
.icon-facebook:before{content:"\f09a";}
.icon-github:before{content:"\f09b";}
.icon-unlock:before{content:"\f09c";}
.icon-credit-card:before{content:"\f09d";}
.icon-rss:before{content:"\f09e";}
.icon-hdd:before{content:"\f0a0";}
.icon-bullhorn:before{content:"\f0a1";}
.icon-bell:before{content:"\f0a2";}
.icon-certificate:before{content:"\f0a3";}
.icon-hand-right:before{content:"\f0a4";}
.icon-hand-left:before{content:"\f0a5";}
.icon-hand-up:before{content:"\f0a6";}
.icon-hand-down:before{content:"\f0a7";}
.icon-circle-arrow-left:before{content:"\f0a8";}
.icon-circle-arrow-right:before{content:"\f0a9";}
.icon-circle-arrow-up:before{content:"\f0aa";}
.icon-circle-arrow-down:before{content:"\f0ab";}
.icon-globe:before{content:"\f0ac";}
.icon-wrench:before{content:"\f0ad";}
.icon-tasks:before{content:"\f0ae";}
.icon-filter:before{content:"\f0b0";}
.icon-briefcase:before{content:"\f0b1";}
.icon-fullscreen:before{content:"\f0b2";}
.icon-group:before{content:"\f0c0";}
.icon-link:before{content:"\f0c1";}
.icon-cloud:before{content:"\f0c2";}
.icon-beaker:before{content:"\f0c3";}
.icon-cut:before{content:"\f0c4";}
.icon-copy:before{content:"\f0c5";}
.icon-paper-clip:before{content:"\f0c6";}
.icon-save:before{content:"\f0c7";}
.icon-sign-blank:before{content:"\f0c8";}
.icon-reorder:before{content:"\f0c9";}
.icon-list-ul:before{content:"\f0ca";}
.icon-list-ol:before{content:"\f0cb";}
.icon-strikethrough:before{content:"\f0cc";}
.icon-underline:before{content:"\f0cd";}
.icon-table:before{content:"\f0ce";}
.icon-magic:before{content:"\f0d0";}
.icon-truck:before{content:"\f0d1";}
.icon-pinterest:before{content:"\f0d2";}
.icon-pinterest-sign:before{content:"\f0d3";}
.icon-google-plus-sign:before{content:"\f0d4";}
.icon-google-plus:before{content:"\f0d5";}
.icon-money:before{content:"\f0d6";}
.icon-caret-down:before{content:"\f0d7";}
.icon-caret-up:before{content:"\f0d8";}
.icon-caret-left:before{content:"\f0d9";}
.icon-caret-right:before{content:"\f0da";}
.icon-columns:before{content:"\f0db";}
.icon-sort:before{content:"\f0dc";}
.icon-sort-down:before{content:"\f0dd";}
.icon-sort-up:before{content:"\f0de";}
.icon-envelope-alt:before{content:"\f0e0";}
.icon-linkedin:before{content:"\f0e1";}
.icon-undo:before,.icon-rotate-left:before{content:"\f0e2";}
.icon-legal:before{content:"\f0e3";}
.icon-dashboard:before{content:"\f0e4";}
.icon-comment-alt:before{content:"\f0e5";}
.icon-comments-alt:before{content:"\f0e6";}
.icon-bolt:before{content:"\f0e7";}
.icon-sitemap:before{content:"\f0e8";}
.icon-umbrella:before{content:"\f0e9";}
.icon-paste:before{content:"\f0ea";}
.icon-lightbulb:before{content:"\f0eb";}
.icon-exchange:before{content:"\f0ec";}
.icon-cloud-download:before{content:"\f0ed";}
.icon-cloud-upload:before{content:"\f0ee";}
.icon-user-md:before{content:"\f0f0";}
.icon-stethoscope:before{content:"\f0f1";}
.icon-suitcase:before{content:"\f0f2";}
.icon-bell-alt:before{content:"\f0f3";}
.icon-coffee:before{content:"\f0f4";}
.icon-food:before{content:"\f0f5";}
.icon-file-alt:before{content:"\f0f6";}
.icon-building:before{content:"\f0f7";}
.icon-hospital:before{content:"\f0f8";}
.icon-ambulance:before{content:"\f0f9";}
.icon-medkit:before{content:"\f0fa";}
.icon-fighter-jet:before{content:"\f0fb";}
.icon-beer:before{content:"\f0fc";}
.icon-h-sign:before{content:"\f0fd";}
.icon-plus-sign-alt:before{content:"\f0fe";}
.icon-double-angle-left:before{content:"\f100";}
.icon-double-angle-right:before{content:"\f101";}
.icon-double-angle-up:before{content:"\f102";}
.icon-double-angle-down:before{content:"\f103";}
.icon-angle-left:before{content:"\f104";}
.icon-angle-right:before{content:"\f105";}
.icon-angle-up:before{content:"\f106";}
.icon-angle-down:before{content:"\f107";}
.icon-desktop:before{content:"\f108";}
.icon-laptop:before{content:"\f109";}
.icon-tablet:before{content:"\f10a";}
.icon-mobile-phone:before{content:"\f10b";}
.icon-circle-blank:before{content:"\f10c";}
.icon-quote-left:before{content:"\f10d";}
.icon-quote-right:before{content:"\f10e";}
.icon-spinner:before{content:"\f110";}
.icon-circle:before{content:"\f111";}
.icon-reply:before,.icon-mail-reply:before{content:"\f112";}
.icon-folder-close-alt:before{content:"\f114";}
.icon-folder-open-alt:before{content:"\f115";}
.icon-expand-alt:before{content:"\f116";}
.icon-collapse-alt:before{content:"\f117";}
.icon-smile:before{content:"\f118";}
.icon-frown:before{content:"\f119";}
.icon-meh:before{content:"\f11a";}
.icon-gamepad:before{content:"\f11b";}
.icon-keyboard:before{content:"\f11c";}
.icon-flag-alt:before{content:"\f11d";}
.icon-flag-checkered:before{content:"\f11e";}
.icon-terminal:before{content:"\f120";}
.icon-code:before{content:"\f121";}
.icon-reply-all:before{content:"\f122";}
.icon-mail-reply-all:before{content:"\f122";}
.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";}
.icon-location-arrow:before{content:"\f124";}
.icon-crop:before{content:"\f125";}
.icon-code-fork:before{content:"\f126";}
.icon-unlink:before{content:"\f127";}
.icon-question:before{content:"\f128";}
.icon-info:before{content:"\f129";}
.icon-exclamation:before{content:"\f12a";}
.icon-superscript:before{content:"\f12b";}
.icon-subscript:before{content:"\f12c";}
.icon-eraser:before{content:"\f12d";}
.icon-puzzle-piece:before{content:"\f12e";}
.icon-microphone:before{content:"\f130";}
.icon-microphone-off:before{content:"\f131";}
.icon-shield:before{content:"\f132";}
.icon-calendar-empty:before{content:"\f133";}
.icon-fire-extinguisher:before{content:"\f134";}
.icon-rocket:before{content:"\f135";}
.icon-maxcdn:before{content:"\f136";}
.icon-chevron-sign-left:before{content:"\f137";}
.icon-chevron-sign-right:before{content:"\f138";}
.icon-chevron-sign-up:before{content:"\f139";}
.icon-chevron-sign-down:before{content:"\f13a";}
.icon-html5:before{content:"\f13b";}
.icon-css3:before{content:"\f13c";}
.icon-anchor:before{content:"\f13d";}
.icon-unlock-alt:before{content:"\f13e";}
.icon-bullseye:before{content:"\f140";}
.icon-ellipsis-horizontal:before{content:"\f141";}
.icon-ellipsis-vertical:before{content:"\f142";}
.icon-rss-sign:before{content:"\f143";}
.icon-play-sign:before{content:"\f144";}
.icon-ticket:before{content:"\f145";}
.icon-minus-sign-alt:before{content:"\f146";}
.icon-check-minus:before{content:"\f147";}
.icon-level-up:before{content:"\f148";}
.icon-level-down:before{content:"\f149";}
.icon-check-sign:before{content:"\f14a";}
.icon-edit-sign:before{content:"\f14b";}
.icon-external-link-sign:before{content:"\f14c";}
.icon-share-sign:before{content:"\f14d";}
.border-box-sizing{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;}
.corner-all{border-radius:4px;}
.hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
.hbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
.vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
.vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
.reverse{-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;}
.box-flex0{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
.box-flex1{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
.box-flex{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
.box-flex2{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;}
.box-group1{-webkit-box-flex-group:1;-moz-box-flex-group:1;box-flex-group:1;}
.box-group2{-webkit-box-flex-group:2;-moz-box-flex-group:2;box-flex-group:2;}
.start{-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;}
.end{-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;}
.center{-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;}
body{background-color:white;position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:visible;}
div#header{display:none;}
#ipython_notebook{padding-left:16px;}
#noscript{width:auto;padding-top:16px;padding-bottom:16px;text-align:center;font-size:22px;color:red;font-weight:bold;}
#ipython_notebook img{font-family:Verdana,"Helvetica Neue",Arial,Helvetica,Geneva,sans-serif;height:24px;text-decoration:none;color:black;}
#site{width:100%;display:none;}
.ui-button .ui-button-text{padding:0.2em 0.8em;font-size:77%;}
input.ui-button{padding:0.3em 0.9em;}
.navbar span{margin-top:3px;}
span#login_widget{float:right;}
.nav-header{text-transform:none;}
.navbar-nobg{background-color:transparent;background-image:none;}
#header>span{margin-top:10px;}
.modal-body{max-height:500px;}
.center-nav{display:inline-block;margin-bottom:-4px;}
.alternate_upload{background-color:none;display:inline;}
.alternate_upload.form{padding:0;margin:0;}
.alternate_upload input.fileinput{background-color:red;position:relative;opacity:0;z-index:2;width:295px;margin-left:163px;cursor:pointer;}
.list_toolbar{padding:5px;height:25px;line-height:25px;}
.toolbar_info{float:left;}
.toolbar_buttons{float:right;}
.list_header{font-weight:bold;}
.list_container{margin-top:16px;margin-bottom:16px;border:1px solid #ababab;border-radius:4px;}
.list_container>div{border-bottom:1px solid #ababab;}.list_container>div:hover .list-item{background-color:red;}
.list_container>div:last-child{border:none;}
.list_item:hover .list_item{background-color:#ddd;}
.item_name{line-height:24px;}
.list_container>div>span,.list_container>div>div{padding:8px;}
.list_item a{text-decoration:none;}
input.nbname_input{height:15px;}
.highlight_text{color:blue;}
#project_name>.breadcrumb{padding:0px;margin-bottom:0px;background-color:transparent;font-weight:bold;}
input.engine_num_input{height:20px;margin-bottom:2px;padding-top:0;padding-bottom:0;width:60px;}
.ansibold{font-weight:bold;}
.ansiblack{color:black;}
.ansired{color:darkred;}
.ansigreen{color:darkgreen;}
.ansiyellow{color:brown;}
.ansiblue{color:darkblue;}
.ansipurple{color:darkviolet;}
.ansicyan{color:steelblue;}
.ansigray{color:gray;}
.ansibgblack{background-color:black;}
.ansibgred{background-color:red;}
.ansibggreen{background-color:green;}
.ansibgyellow{background-color:yellow;}
.ansibgblue{background-color:blue;}
.ansibgpurple{background-color:magenta;}
.ansibgcyan{background-color:cyan;}
.ansibggray{background-color:gray;}
div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;padding:5px 5px 5px 0px;margin:0px;outline:none;}div.cell.selected{border-radius:4px;border:thin #ababab solid;}
div.prompt{min-width:11ex;padding:0.4em;margin:0px;font-family:monospace;text-align:right;line-height:1.231em;}
div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
div.prompt:empty{padding-top:0;padding-bottom:0;}
div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
div.input_area{border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
div.input_prompt{color:navy;border-top:1px solid transparent;}
.CodeMirror{line-height:1.231em;height:auto;background:none;}
.CodeMirror-scroll{overflow-y:hidden;overflow-x:auto;}
@-moz-document url-prefix(){.CodeMirror-scroll{overflow-x:hidden;}}.CodeMirror-lines{padding:0.4em;}
.CodeMirror-linenumber{padding:0 8px 0 4px;}
.CodeMirror-gutters{border-bottom-left-radius:4px;border-top-left-radius:4px;}
.CodeMirror pre{padding:0;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
pre code{display:block;padding:0.5em;}
.highlight-base,pre code,pre .subst,pre .tag .title,pre .lisp .title,pre .clojure .built_in,pre .nginx .title{color:black;}
.highlight-string,pre .string,pre .constant,pre .parent,pre .tag .value,pre .rules .value,pre .rules .value .number,pre .preprocessor,pre .ruby .symbol,pre .ruby .symbol .string,pre .aggregate,pre .template_tag,pre .django .variable,pre .smalltalk .class,pre .addition,pre .flow,pre .stream,pre .bash .variable,pre .apache .tag,pre .apache .cbracket,pre .tex .command,pre .tex .special,pre .erlang_repl .function_or_atom,pre .markdown .header{color:#BA2121;}
.highlight-comment,pre .comment,pre .annotation,pre .template_comment,pre .diff .header,pre .chunk,pre .markdown .blockquote{color:#408080;font-style:italic;}
.highlight-number,pre .number,pre .date,pre .regexp,pre .literal,pre .smalltalk .symbol,pre .smalltalk .char,pre .go .constant,pre .change,pre .markdown .bullet,pre .markdown .link_url{color:#080;}
pre .label,pre .javadoc,pre .ruby .string,pre .decorator,pre .filter .argument,pre .localvars,pre .array,pre .attr_selector,pre .important,pre .pseudo,pre .pi,pre .doctype,pre .deletion,pre .envvar,pre .shebang,pre .apache .sqbracket,pre .nginx .built_in,pre .tex .formula,pre .erlang_repl .reserved,pre .prompt,pre .markdown .link_label,pre .vhdl .attribute,pre .clojure .attribute,pre .coffeescript .property{color:#8888ff;}
.highlight-keyword,pre .keyword,pre .id,pre .phpdoc,pre .aggregate,pre .css .tag,pre .javadoctag,pre .phpdoc,pre .yardoctag,pre .smalltalk .class,pre .winutils,pre .bash .variable,pre .apache .tag,pre .go .typename,pre .tex .command,pre .markdown .strong,pre .request,pre .status{color:#008000;font-weight:bold;}
.highlight-builtin,pre .built_in{color:#008000;}
pre .markdown .emphasis{font-style:italic;}
pre .nginx .built_in{font-weight:normal;}
pre .coffeescript .javascript,pre .javascript .xml,pre .tex .formula,pre .xml .javascript,pre .xml .vbscript,pre .xml .css,pre .xml .cdata{opacity:0.5;}
.cm-s-ipython span.cm-variable{color:black;}
.cm-s-ipython span.cm-keyword{color:#008000;font-weight:bold;}
.cm-s-ipython span.cm-number{color:#080;}
.cm-s-ipython span.cm-comment{color:#408080;font-style:italic;}
.cm-s-ipython span.cm-string{color:#BA2121;}
.cm-s-ipython span.cm-builtin{color:#008000;}
.cm-s-ipython span.cm-error{color:#f00;}
.cm-s-ipython span.cm-operator{color:#AA22FF;font-weight:bold;}
.cm-s-ipython span.cm-meta{color:#AA22FF;}
.cm-s-ipython span.cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);background-position:right;background-repeat:no-repeat;}
div.output_wrapper{position:relative;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
div.output_scroll{height:24em;width:100%;overflow:auto;border-radius:4px;-webkit-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);-moz-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);}
div.output_collapsed{margin:0px;padding:0px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
div.out_prompt_overlay{height:100%;padding:0px 0.4em;position:absolute;border-radius:4px;}
div.out_prompt_overlay:hover{-webkit-box-shadow:inset 0 0 1px #000000;-moz-box-shadow:inset 0 0 1px #000000;box-shadow:inset 0 0 1px #000000;background:rgba(240, 240, 240, 0.5);}
div.output_prompt{color:darkred;}
div.output_area{padding:0px;page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}div.output_area .MathJax_Display{text-align:left !important;}
div.output_area .rendered_html table{margin-left:0;margin-right:0;}
div.output_area .rendered_html img{margin-left:0;margin-right:0;}
.output{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
div.output_area pre{font-family:monospace;margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline;color:black;background-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;line-height:inherit;}
div.output_subarea{padding:0.4em 0.4em 0em 0.4em;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
div.output_text{text-align:left;color:#000000;font-family:monospace;line-height:1.231em;}
div.output_stderr{background:#fdd;}
div.output_latex{text-align:left;}
div.output_javascript:empty{padding:0;}
.js-error{color:darkred;}
div.raw_input{padding-top:0px;padding-bottom:0px;height:1em;line-height:1em;font-family:monospace;}
span.input_prompt{font-family:inherit;}
input.raw_input{font-family:inherit;font-size:inherit;color:inherit;width:auto;margin:-2px 0px 0px 1px;padding-left:1px;padding-top:2px;height:1em;}
p.p-space{margin-bottom:10px;}
.rendered_html{color:black;}.rendered_html em{font-style:italic;}
.rendered_html strong{font-weight:bold;}
.rendered_html u{text-decoration:underline;}
.rendered_html :link{text-decoration:underline;}
.rendered_html :visited{text-decoration:underline;}
.rendered_html h1{font-size:197%;margin:.65em 0;font-weight:bold;}
.rendered_html h2{font-size:153.9%;margin:.75em 0;font-weight:bold;}
.rendered_html h3{font-size:123.1%;margin:.85em 0;font-weight:bold;}
.rendered_html h4{font-size:100%;margin:0.95em 0;font-weight:bold;}
.rendered_html h5{font-size:85%;margin:1.5em 0;font-weight:bold;}
.rendered_html h6{font-size:77%;margin:1.65em 0;font-weight:bold;}
.rendered_html ul{list-style:disc;margin:1em 2em;}
.rendered_html ul ul{list-style:square;margin:0em 2em;}
.rendered_html ul ul ul{list-style:circle;margin:0em 2em;}
.rendered_html ol{list-style:decimal;margin:1em 2em;}
.rendered_html ol ol{list-style:upper-alpha;margin:0em 2em;}
.rendered_html ol ol ol{list-style:lower-alpha;margin:0em 2em;}
.rendered_html ol ol ol ol{list-style:lower-roman;margin:0em 2em;}
.rendered_html ol ol ol ol ol{list-style:decimal;margin:0em 2em;}
.rendered_html hr{color:black;background-color:black;}
.rendered_html pre{margin:1em 2em;}
.rendered_html pre,.rendered_html code{border:0;background-color:#ffffff;color:#000000;font-size:100%;padding:0px;}
.rendered_html blockquote{margin:1em 2em;}
.rendered_html table{margin-left:auto;margin-right:auto;border:1px solid black;border-collapse:collapse;}
.rendered_html tr,.rendered_html th,.rendered_html td{border:1px solid black;border-collapse:collapse;margin:1em 2em;}
.rendered_html td,.rendered_html th{text-align:left;vertical-align:middle;padding:4px;}
.rendered_html th{font-weight:bold;}
.rendered_html p{text-align:justify;}
.rendered_html img{display:block;margin-left:auto;margin-right:auto;}
.rendered_html *+p{margin-top:1em;}
.rendered_html *+table{margin-top:1em;}
.rendered_html *+img{margin-top:1em;}
div.text_cell{padding:5px 5px 5px 0px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
div.text_cell_input{color:#000000;border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
div.text_cell_render{outline:none;resize:none;width:inherit;border-style:none;padding:5px;color:#000000;}
a.anchor-link:link{text-decoration:none;padding:0px 20px;visibility:hidden;}
h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{visibility:visible;}
body{background-color:#ffffff;}
body.notebook_app{overflow:hidden;}
span#notebook_name{height:1em;line-height:1em;padding:3px;border:none;font-size:146.5%;}
div#notebook_panel{margin:0px 0px 0px 0px;padding:0px;-webkit-box-shadow:0 -1px 10px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 -1px 10px rgba(0, 0, 0, 0.1);box-shadow:0 -1px 10px rgba(0, 0, 0, 0.1);}
div#notebook{overflow-y:scroll;overflow-x:auto;width:100%;padding:5px 5px 15px 5px;margin:0px;border-top:1px solid #ababab;}
div.ui-widget-content{border:1px solid #ababab;outline:none;}
pre.dialog{background-color:#f7f7f7;border:1px solid #ddd;border-radius:4px;padding:0.4em;padding-left:2em;}
p.dialog{padding:0.2em;}
pre,code,kbd,samp{white-space:pre-wrap;}
#fonttest{font-family:monospace;}
p{margin-bottom:0;}
.end_space{height:200px;}
.celltoolbar{border:thin solid #CFCFCF;border-bottom:none;background:#EEE;border-radius:3px 3px 0px 0px;width:100%;-webkit-box-pack:end;height:22px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;}
.ctb_hideshow{display:none;vertical-align:bottom;padding-right:2px;}
.celltoolbar>div{padding-top:0px;}
.ctb_global_show .ctb_show.ctb_hideshow{display:block;}
.ctb_global_show .ctb_show+.input_area,.ctb_global_show .ctb_show+div.text_cell_input{border-top-right-radius:0px;border-top-left-radius:0px;}
.celltoolbar .button_container select{margin:10px;margin-top:1px;margin-bottom:0px;padding:0;font-size:87%;width:auto;display:inline-block;height:18px;line-height:18px;vertical-align:top;}
.celltoolbar label{display:inline-block;height:15px;line-height:15px;vertical-align:top;}
.celltoolbar label span{font-size:85%;}
.celltoolbar input[type=checkbox]{margin:0px;margin-left:4px;margin-right:4px;}
.celltoolbar .ui-button{border:none;vertical-align:top;height:20px;min-width:30px;}
.completions{position:absolute;z-index:10;overflow:hidden;border:1px solid #ababab;border-radius:4px;-webkit-box-shadow:0px 6px 10px -1px #adadad;-moz-box-shadow:0px 6px 10px -1px #adadad;box-shadow:0px 6px 10px -1px #adadad;}
.completions select{background:white;outline:none;border:none;padding:0px;margin:0px;overflow:auto;font-family:monospace;font-size:110%;color:#000000;}
.completions select option.context{color:#0064cd;}
#menubar .navbar-inner{min-height:28px;border-top:1px;border-radius:0px 0px 4px 4px;}
#menubar .navbar{margin-bottom:8px;}
.nav-wrapper{border-bottom:1px solid #d4d4d4;}
#menubar li.dropdown{line-height:12px;}
#notification_area{z-index:10;}
.notification_widget{color:#777777;padding:1px 12px;margin:2px 4px;z-index:10;border:1px solid #ccc;border-radius:4px;background:rgba(240, 240, 240, 0.5);}
div#pager_splitter{height:8px;}
#pager-container{position:relative;padding:15px 0px;}
div#pager{overflow:auto;display:none;}div#pager pre{font-size:13px;line-height:1.231em;color:#000000;background-color:#f7f7f7;padding:0.4em;}
.shortcut_key{display:inline-block;width:15ex;text-align:right;font-family:monospace;}
.shortcut_descr{display:inline-block;}
div.quickhelp{float:left;width:50%;}
span#save_widget{padding:0px 5px;margin-top:12px;}
span#checkpoint_status,span#autosave_status{font-size:small;}
@media (max-width:767px){span#save_widget{font-size:small;} span#checkpoint_status,span#autosave_status{font-size:x-small;}}@media (max-width:767px){span#checkpoint_status,span#autosave_status{display:none;}}@media (min-width:768px) and (max-width:979px){span#checkpoint_status{display:none;} span#autosave_status{font-size:x-small;}}.toolbar{padding:0px 10px;margin-top:-5px;}.toolbar select,.toolbar label{width:auto;height:26px;vertical-align:middle;margin-right:2px;margin-bottom:0px;display:inline;font-size:92%;margin-left:0.3em;margin-right:0.3em;padding:0px;padding-top:3px;}
.toolbar .btn{padding:2px 8px;}
.toolbar .btn-group{margin-top:0px;}
.toolbar-inner{border:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important;box-shadow:none !important;}
#maintoolbar{margin-bottom:0px;}
@-moz-keyframes fadeOut{from{opacity:1;} to{opacity:0;}}@-webkit-keyframes fadeOut{from{opacity:1;} to{opacity:0;}}@-moz-keyframes fadeIn{from{opacity:0;} to{opacity:1;}}@-webkit-keyframes fadeIn{from{opacity:0;} to{opacity:1;}}.bigtooltip{overflow:auto;height:200px;-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms;}
.smalltooltip{-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms;text-overflow:ellipsis;overflow:hidden;height:80px;}
.tooltipbuttons{position:absolute;padding-right:15px;top:0px;right:0px;}
.tooltiptext{padding-right:30px;}
.ipython_tooltip{max-width:700px;-webkit-animation:fadeOut 400ms;-moz-animation:fadeOut 400ms;animation:fadeOut 400ms;-webkit-animation:fadeIn 400ms;-moz-animation:fadeIn 400ms;animation:fadeIn 400ms;vertical-align:middle;background-color:#f7f7f7;overflow:visible;border:#ababab 1px solid;outline:none;padding:3px;margin:0px;padding-left:7px;font-family:monospace;min-height:50px;-moz-box-shadow:0px 6px 10px -1px #adadad;-webkit-box-shadow:0px 6px 10px -1px #adadad;box-shadow:0px 6px 10px -1px #adadad;border-radius:4px;position:absolute;z-index:2;}.ipython_tooltip a{float:right;}
.ipython_tooltip .tooltiptext pre{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;font-size:100%;background-color:#f7f7f7;}
.pretooltiparrow{left:0px;margin:0px;top:-16px;width:40px;height:16px;overflow:hidden;position:absolute;}
.pretooltiparrow:before{background-color:#f7f7f7;border:1px #ababab solid;z-index:11;content:"";position:absolute;left:15px;top:10px;width:25px;height:25px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);}
</style>
<style type="text/css">
.highlight .hll { background-color: #ffffcc }
.highlight { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
</style>
<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
overflow: visible;
padding: 8px;
}
.input_area {
padding: 0.2em;
}
pre {
padding: 0.2em;
border: none;
margin: 0px;
font-size: 13px;
}
</style>
<!-- Our custom CSS -->
<style type="text/css">
/*
Custom IHaskell CSS.
*/
/* Styles used for the Hoogle display in the pager */
.hoogle-doc {
display: block;
padding-bottom: 1.3em;
padding-left: 0.4em;
}
.hoogle-code {
display: block;
font-family: monospace;
white-space: pre;
}
.hoogle-text {
display: block;
}
.hoogle-name {
color: green;
font-weight: bold;
}
.hoogle-head {
font-weight: bold;
}
.hoogle-sub {
display: block;
margin-left: 0.4em;
}
.hoogle-package {
font-weight: bold;
font-style: italic;
}
.hoogle-module {
font-weight: bold;
}
/* Styles used for basic displays */
.get-type {
color: green;
font-weight: bold;
font-family: monospace;
display: block;
white-space: pre;
}
.show-type {
color: green;
font-weight: bold;
font-family: monospace;
margin-left: 1em;
}
.mono {
font-family: monospace;
display: block;
}
.err-msg {
color: red;
font-style: italic;
font-family: monospace;
white-space: pre;
display: block;
}
#unshowable {
color: red;
font-weight: bold;
}
.err-msg.in.collapse {
padding-top: 0.7em;
}
/* Code that will get highlighted before it is highlighted */
.highlight-code {
white-space: pre;
font-family: monospace;
}
/* Hlint styles */
.suggestion-warning {
font-weight: bold;
color: rgb(200, 130, 0);
}
.suggestion-error {
font-weight: bold;
color: red;
}
.suggestion-name {
font-weight: bold;
}
</style>
<script src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS_HTML" type="text/javascript"></script>
<script type="text/javascript">
init_mathjax = function() {
if (window.MathJax) {
// MathJax loaded
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
},
displayAlign: 'left', // Change this to 'center' to center equations.
"HTML-CSS": {
styles: {'.MathJax_Display': {"margin": 0}}
}
});
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
}
}
init_mathjax();
</script>
</head>
<body>
<body>
<div class="text_cell_render border-box-sizing rendered_html">
<div class="figure">
<img src="https://raw2.github.com/gibiansky/IHaskell/master/images/ihaskell-logo-small.png" />
</div>
<h1 id="ihaskell-notebook">IHaskell Notebook</h1>
<p>Hello, and welcome to the <strong>IHaskell Notebook</strong>. IHaskell Notebook is similar to an interactive shell along the lines of GHCi. However, it is much more powerful, and provides features such as syntax highlighting, autocompletion, multi-line input cells, integrated documentation, rich output visualization, and more. In this notebook, I'd like to demonstrate many of the awesome features IHaskell provides.</p>
<p>IHaskell is implemented as a language kernel for the <a href="http://ipython.org">IPython</a> project, which means that although the entire thing is written only in Haskell, we get a beautiful notebook interface practically for free.</p>
<p>We can start with very simple Haskell expressions:</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[1]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- First of all, we can evaluate simple expressions.</span>
<span class="mi">3</span> <span class="o">+</span> <span class="mi">5</span>
<span class="s">&quot;Hello, &quot;</span> <span class="o">++</span> <span class="s">&quot;World!&quot;</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
8
</pre>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
&quot;Hello, World!&quot;
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>As you can see, each input cell get an execution number. The first input cell is labeled <code>In [1]</code>. Just like in GHCi, the output of the last executed statement or expression is available via the <code>it</code> variable - however, in addition, the output of the <span class="math">\(n\)</span>th cell is available via the <code>itN</code> variable. For example, if we wanted to see what the first cell printed, we can go ahead and output that:</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[5]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="nf">it1</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
&quot;Hello, World!&quot;
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>In addition to simple code cells such as the ones you see, you can also have other types of cells. All of this inline text, for instance, is written using Markdown cells, which support the majority of Github markdown syntax. This lets you embed images and formatting and arbitrary HTML interspersed with your Haskell code. In addition, you can export these notebooks into HTML or even as presentations using <code>reveal.js</code>.</p>
<p>Alright, back to code. Let's do something slightly fancier:</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[6]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- Unlike in GHCi, we can have multi-line expressions.</span>
<span class="nf">concat</span> <span class="p">[</span>
<span class="s">&quot;Hello&quot;</span><span class="p">,</span>
<span class="s">&quot;, &quot;</span><span class="p">,</span>
<span class="s">&quot;World!&quot;</span>
<span class="p">]</span> <span class="ow">::</span> <span class="kt">String</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
&quot;Hello, World!&quot;
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>In addition to multi-line expressions, IHaskell supports most things that you could put in a standard Haskell file. For example, we can have function bindings without the <code>let</code> that GHCi requires. (As long as you group type signatures and their corresponding declarations together, you can use pattern matching and put signatures on your top-level declarations!)</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[7]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="nf">thing</span> <span class="ow">::</span> <span class="kt">String</span> <span class="ow">-&gt;</span> <span class="kt">Int</span> <span class="ow">-&gt;</span> <span class="kt">Int</span>
<span class="nf">thing</span> <span class="s">&quot;no&quot;</span> <span class="kr">_</span> <span class="ow">=</span> <span class="mi">100</span>
<span class="nf">thing</span> <span class="n">str</span> <span class="n">int</span> <span class="ow">=</span> <span class="n">int</span> <span class="o">+</span> <span class="n">length</span> <span class="n">str</span>
<span class="nf">thing</span> <span class="s">&quot;no&quot;</span> <span class="mi">10</span>
<span class="nf">thing</span> <span class="s">&quot;ah&quot;</span> <span class="mi">10</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
100
</pre>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
12
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>So far we've just looked at pure functions, but nothing is stopping us from doing IO.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[8]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="nf">print</span> <span class="s">&quot;What&#39;s going on?&quot;</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
&quot;What&apos;s going on?&quot;
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>IHaskell supports most GHC extensions via the <code>:extension</code> directive (or any shorthand thereof).</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[9]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- We can disable extensions.</span>
<span class="kt">:</span><span class="n">ext</span> <span class="kt">NoEmptyDataDecls</span>
<span class="kr">data</span> <span class="kt">Thing</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<span class='err-msg'>`Thing' has no constructors (-XEmptyDataDecls permits this)<br/>In the data declaration for `Thing'</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[10]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- And enable extensions.</span>
<span class="kt">:</span><span class="n">ext</span> <span class="kt">EmptyDataDecls</span>
<span class="kr">data</span> <span class="kt">Thing</span>
</pre></div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>Data declarations do pretty much what you expect, and work fine on multiple lines. If a declaration turns out to be not quite what you wanted, you can just go back, edit it, and re-evaluate the code cell.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[11]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- Various data declarations work fine.</span>
<span class="kr">data</span> <span class="kt">One</span>
<span class="ow">=</span> <span class="kt">A</span> <span class="kt">String</span>
<span class="o">|</span> <span class="kt">B</span> <span class="kt">Int</span>
<span class="kr">deriving</span> <span class="kt">Show</span>
<span class="nf">print</span> <span class="p">[</span><span class="kt">A</span> <span class="s">&quot;Hello&quot;</span><span class="p">,</span> <span class="kt">B</span> <span class="mi">10</span><span class="p">]</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
[A &quot;Hello&quot;,B 10]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>Although this doesn't hold everywhere, we've tried to keep IHaskell relatively similar to GHCi in terms of naming. So, just like in GHCi, you can inspect types with <code>:type</code> (or shorthands):</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[12]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- We can look at types like in GHCi.</span>
<span class="kt">:</span><span class="n">ty</span> <span class="mi">3</span> <span class="o">+</span> <span class="mi">3</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<span class='get-type'>forall a. Num a => a</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>The same goes for the <code>:info</code> command. However, unlike GHCi, which simply prints info, the IHaskell notebook brings up a separate pane.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[13]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- What is the Integral typeclass?</span>
<span class="kt">:</span><span class="n">info</span> <span class="kt">Integral</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>If you're looking at this notebook after it's been exported to HTML, you won't be able to see this interactive pane. However, it looks approximately like this:</p>
<div class="figure">
<img src="https://raw2.github.com/gibiansky/IHaskell/master/demo/info-demo.png" />
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>We can now write slightly more complicated scripts.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[1]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- Results are printed as we go, even from a single expression.</span>
<span class="kr">import</span> <span class="nn">Control.Monad</span>
<span class="kr">import</span> <span class="nn">Control.Concurrent</span>
<span class="nf">forM_</span> <span class="p">[</span><span class="mi">1</span><span class="o">..</span><span class="mi">5</span><span class="p">]</span> <span class="o">$</span> <span class="nf">\</span><span class="n">x</span> <span class="ow">-&gt;</span> <span class="kr">do</span>
<span class="n">print</span> <span class="n">x</span>
<span class="n">threadDelay</span> <span class="o">$</span> <span class="mi">200</span> <span class="o">*</span> <span class="mi">1000</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
1
2
3
4
5
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>This is where the similarities with GHCi end, and the particularly shiny features of IHaskell begin.</p>
<p>Although looking at text outputs is often enough, there are many times where we really want a richer output. Suppose we have a custom data type for color:</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[15]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="kr">data</span> <span class="kt">Color</span> <span class="ow">=</span> <span class="kt">Red</span> <span class="o">|</span> <span class="kt">Green</span> <span class="o">|</span> <span class="kt">Blue</span>
</pre></div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>If we were playing around with designing GUI applications for color-blind users, we might want to actually <em>see</em> these colors, instead of just seeing the text &quot;Red&quot;, &quot;Green&quot;, and &quot;Blue&quot; when we are debugging.</p>
<p>IHaskell lets you define a custom display mechanism for any data type via its <code>IHaskellDisplay</code> typeclass. Since you can use IHaskell in console mode as well as notebook mode, you can provide a list of display outputs for any data type, and the frontend will simply choose the best one. Here's how you would implement a very simple display mechanism for this <code>Color</code> data type:</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[16]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="kr">import</span> <span class="nn">IHaskell.Display</span>
<span class="kr">instance</span> <span class="kt">IHaskellDisplay</span> <span class="kt">Color</span> <span class="kr">where</span>
<span class="n">display</span> <span class="n">color</span> <span class="ow">=</span> <span class="n">return</span> <span class="p">[</span><span class="n">html</span> <span class="n">code</span><span class="p">]</span>
<span class="kr">where</span>
<span class="n">code</span> <span class="ow">=</span> <span class="n">concat</span> <span class="p">[</span><span class="s">&quot;&lt;div style=&#39;font-weight: bold; color:&quot;</span>
<span class="p">,</span> <span class="n">css</span> <span class="n">color</span>
<span class="p">,</span> <span class="s">&quot;&#39;&gt;Look!&lt;/div&gt;&quot;</span><span class="p">]</span>
<span class="n">css</span> <span class="kt">Red</span> <span class="ow">=</span> <span class="s">&quot;red&quot;</span>
<span class="n">css</span> <span class="kt">Blue</span> <span class="ow">=</span> <span class="s">&quot;blue&quot;</span>
<span class="n">css</span> <span class="kt">Green</span> <span class="ow">=</span> <span class="s">&quot;green&quot;</span>
</pre></div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>Once we define a custom <code>display :: a -&gt; IO [DisplayData]</code> function, we can simply output a <code>Color</code>:</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[17]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="kt">Red</span>
<span class="kt">Green</span>
<span class="kt">Blue</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<div style='font-weight: bold; color:red'>Look!</div>
</div>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<div style='font-weight: bold; color:green'>Look!</div>
</div>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<div style='font-weight: bold; color:blue'>Look!</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>The <code>DisplayData</code> type has several constructors which let you display your data as plain text, HTML, images (SVG, PNG, JPG), or even as LaTeX code.</p>
<p>In order to ship an extension for IHaskell, simply create a package named <code>ihaskell-thing</code> with a module named <code>IHaskell.Display.Thing</code>. As long as <code>ihaskell-thing</code> is installed, IHaskell will detect and use it automatically.</p>
<p>A number of packages already exist, which we can briefly look at. First, in <code>ihaskell-basic</code>, we have very simple displays for data types from <code>Prelude</code>.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[18]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- We can display Maybes fancily for Show-able types.</span>
<span class="kt">Just</span> <span class="nb">()</span>
<span class="kt">Nothing</span>
<span class="c1">-- But it dies if it&#39;s not showable.</span>
<span class="kr">data</span> <span class="kt">NoShow</span> <span class="ow">=</span> <span class="kt">X</span> <span class="kt">Int</span>
<span class="kt">Just</span> <span class="p">(</span><span class="kt">X</span> <span class="mi">3</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<span style='color: green; font-weight: bold;'>Just</span><span style='font-family: monospace;'>()</span>
</div>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<span style='color: red; font-weight: bold;'>Nothing</span>
</div>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<div class='collapse-group'><span class='btn' href='#' id='unshowable'>Unshowable:<span class='show-type'>NoShow</span></span><span class='err-msg collapse'>No instance for (Show NoShow) arising from a use of `print'<br/>Possible fix: add an instance declaration for (Show NoShow)<br/>In a stmt of an interactive GHCi command: print it</span></div><script>$('#unshowable').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var $collapse = $this.closest('.collapse-group').find('.err-msg');
$collapse.collapse('toggle');
});
</script>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>The <code>ihaskell-aeson</code> package adds a display for <a href="http://hackage.haskell.org/package/aeson">Aeson</a> JSON <code>Value</code> types. These are automatically syntax highlighted and formatted nicely.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[2]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- Aeson JSON data types are displayed nicely.</span>
<span class="kt">:</span><span class="n">ext</span> <span class="kt">OverloadedStrings</span>
<span class="kr">import</span> <span class="nn">Data.Aeson</span>
<span class="kr">data</span> <span class="kt">Coord</span> <span class="ow">=</span> <span class="kt">Coord</span> <span class="p">{</span> <span class="n">x</span> <span class="ow">::</span> <span class="kt">Double</span><span class="p">,</span> <span class="n">y</span> <span class="ow">::</span> <span class="kt">Double</span> <span class="p">}</span>
<span class="kr">instance</span> <span class="kt">ToJSON</span> <span class="kt">Coord</span> <span class="kr">where</span>
<span class="n">toJSON</span> <span class="p">(</span><span class="kt">Coord</span> <span class="n">x</span> <span class="n">y</span><span class="p">)</span> <span class="ow">=</span> <span class="n">object</span> <span class="p">[</span><span class="s">&quot;x&quot;</span> <span class="o">.=</span> <span class="n">x</span><span class="p">,</span> <span class="s">&quot;y&quot;</span> <span class="o">.=</span> <span class="n">y</span><span class="p">]</span>
<span class="kt">Null</span>
<span class="kt">Bool</span> <span class="kt">True</span>
<span class="nf">toJSON</span> <span class="p">(</span><span class="kt">Coord</span> <span class="mi">3</span> <span class="mi">2</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<div class="highlight-code" id="javascript">null</div>
</div>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<div class="highlight-code" id="javascript">true</div>
</div>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<div class="highlight-code" id="javascript">{
"x": 3.0,
"y": 2.0
}</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>This syntax highlighting may not show up in the exported HTML, as it is done on the fly with Javascript. The result looks like this in the notebook:</p>
<div class="figure">
<img src="https://raw2.github.com/gibiansky/IHaskell/master/demo/json-demo.png" />
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>The <code>ihaskell-blaze</code> package lets you play around with HTML straight from within IHaskell using the <a href="http://jaspervdj.be/blaze/tutorial.html">Blaze</a> library.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[6]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- Small bits of HTML generated via Blaze are displayed.</span>
<span class="kr">import</span> <span class="nn">Prelude</span> <span class="k">hiding</span> <span class="p">(</span><span class="nf">div</span><span class="p">,</span> <span class="nf">id</span><span class="p">)</span>
<span class="kr">import</span> <span class="nn">Text.Blaze.Html4.Strict</span> <span class="k">hiding</span> <span class="p">(</span><span class="nf">map</span><span class="p">,</span> <span class="nf">style</span><span class="p">)</span>
<span class="kr">import</span> <span class="nn">Text.Blaze.Html4.Strict.Attributes</span>
<span class="nf">div</span> <span class="o">!</span> <span class="n">style</span> <span class="s">&quot;color: red&quot;</span> <span class="o">$</span> <span class="kr">do</span>
<span class="n">p</span> <span class="s">&quot;This is an example of BlazeMarkup syntax.&quot;</span>
<span class="n">b</span> <span class="s">&quot;Hello&quot;</span>
<span class="nf">forM</span> <span class="p">[</span><span class="mi">1</span><span class="o">..</span><span class="mi">5</span><span class="p">]</span> <span class="o">$</span> <span class="nf">\</span><span class="n">size</span> <span class="ow">-&gt;</span> <span class="kr">do</span>
<span class="kr">let</span> <span class="n">s</span> <span class="ow">=</span> <span class="n">toValue</span> <span class="o">$</span> <span class="n">size</span> <span class="o">*</span> <span class="mi">70</span>
<span class="n">img</span> <span class="o">!</span> <span class="n">src</span> <span class="s">&quot;https://www.google.com/images/srpr/logo11w.png&quot;</span> <span class="o">!</span> <span class="n">width</span> <span class="n">s</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<div style="color: red">
<p>
This is an example of BlazeMarkup syntax.
</p>
<b>
Hello
</b>
</div>
</div>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<img src="https://www.google.com/images/srpr/logo11w.png" width="70">
<img src="https://www.google.com/images/srpr/logo11w.png" width="140">
<img src="https://www.google.com/images/srpr/logo11w.png" width="210">
<img src="https://www.google.com/images/srpr/logo11w.png" width="280">
<img src="https://www.google.com/images/srpr/logo11w.png" width="350">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>The <code>ihaskell-diagrams</code> package allows you to experiment with the <a href="http://projects.haskell.org/diagrams/">diagrams</a> package. It requires the Cairo backend.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[21]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- We can draw diagrams, right in the notebook.</span>
<span class="kt">:</span><span class="n">extension</span> <span class="kt">NoMonomorphismRestriction</span>
<span class="kr">import</span> <span class="nn">Diagrams.Prelude</span>
<span class="c1">-- By Brent Yorgey</span>
<span class="c1">-- Draw a Sierpinski triangle!</span>
<span class="nf">sierpinski</span> <span class="mi">1</span> <span class="ow">=</span> <span class="n">eqTriangle</span> <span class="mi">1</span>
<span class="nf">sierpinski</span> <span class="n">n</span> <span class="ow">=</span> <span class="n">s</span>
<span class="o">===</span>
<span class="p">(</span><span class="n">s</span> <span class="o">|||</span> <span class="n">s</span><span class="p">)</span> <span class="o">#</span> <span class="n">centerX</span>
<span class="kr">where</span> <span class="n">s</span> <span class="ow">=</span> <span class="n">sierpinski</span> <span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
<span class="c1">-- The `diagram` function is used to display them in the notebook.</span>
<span class="nf">diagram</span> <span class="o">$</span> <span class="n">sierpinski</span> <span class="mi">4</span>
<span class="o">#</span> <span class="n">centerXY</span>
<span class="o">#</span> <span class="n">fc</span> <span class="n">black</span>
<span class="p">`</span><span class="n">atop</span><span class="p">`</span> <span class="n">square</span> <span class="mi">10</span>
<span class="o">#</span> <span class="n">fc</span> <span class="n">white</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300pt" height="300pt" viewBox="0 0 300 300" version="1.1">
<g id="surface2">
<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 5 5 L 5 -5 L -5 -5 L -5 5 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 4 3.464063 L 3.5 2.598047 L 3 3.464063 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 3 3.464063 L 2.5 2.598047 L 2 3.464063 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 3.5 2.598047 L 3 1.732031 L 2.5 2.598047 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 2 3.464063 L 1.5 2.598047 L 1 3.464063 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 1 3.464063 L 0.5 2.598047 L -0.000000000000002665 3.464063 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 1.5 2.598047 L 1 1.732031 L 0.5 2.598047 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 3 1.732031 L 2.5 0.866016 L 2 1.732031 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 2 1.732031 L 1.5 0.866016 L 1 1.732031 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 2.5 0.866016 L 2 0 L 1.5 0.866016 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.000000000000002665 3.464063 L -0.5 2.598047 L -1 3.464063 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -1 3.464063 L -1.5 2.598047 L -2 3.464063 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.5 2.598047 L -1 1.732031 L -1.5 2.598047 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -2 3.464063 L -2.5 2.598047 L -3 3.464063 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -3 3.464063 L -3.5 2.598047 L -4 3.464063 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -2.5 2.598047 L -3 1.732031 L -3.5 2.598047 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -1 1.732031 L -1.5 0.866016 L -2 1.732031 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -2 1.732031 L -2.5 0.866016 L -3 1.732031 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -1.5 0.866016 L -2 0 L -2.5 0.866016 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 2 0 L 1.5 -0.866016 L 1 0 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 1 0 L 0.5 -0.866016 L -0.000000000000002665 0 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 1.5 -0.866016 L 1 -1.732031 L 0.5 -0.866016 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.000000000000002665 0 L -0.5 -0.866016 L -1 0 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -1 0 L -1.5 -0.866016 L -2 0 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.5 -0.866016 L -1 -1.732031 L -1.5 -0.866016 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 1 -1.732031 L 0.5 -2.598047 L -0.000000000000002665 -1.732031 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.000000000000002665 -1.732031 L -0.5 -2.598047 L -1 -1.732031 Z " transform="matrix(30,0,0,30,150,150)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.01;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.5 -2.598047 L -0.000000000000002665 -3.464062 L -0.5 -2.598047 Z " transform="matrix(30,0,0,30,150,150)"/>
</g>
</svg>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>Just like with Diagrams, <code>ihaskell-chart</code> allows you to use the <a href="https://github.com/timbod7/haskell-chart/wiki">Chart</a> library for plotting from within IHaskell.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[22]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- We can draw small charts in the notebook.</span>
<span class="c1">-- This example is taken from the haskell-chart documentation.</span>
<span class="kr">import</span> <span class="nn">Graphics.Rendering.Chart</span>
<span class="kr">import</span> <span class="nn">Data.Default.Class</span>
<span class="kr">import</span> <span class="nn">Control.Lens</span>
<span class="kr">let</span> <span class="n">values</span> <span class="ow">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s">&quot;Mexico City&quot;</span> <span class="p">,</span> <span class="mf">19.2</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
<span class="p">(</span><span class="s">&quot;Mumbai&quot;</span> <span class="p">,</span> <span class="mf">12.9</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
<span class="p">(</span><span class="s">&quot;Sydney&quot;</span> <span class="p">,</span> <span class="mf">4.3</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
<span class="p">(</span><span class="s">&quot;London&quot;</span> <span class="p">,</span> <span class="mf">8.3</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
<span class="p">(</span><span class="s">&quot;New York&quot;</span> <span class="p">,</span> <span class="mf">8.2</span><span class="p">,</span> <span class="mi">25</span><span class="p">)]</span>
<span class="nf">pitem</span> <span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">o</span><span class="p">)</span> <span class="ow">=</span> <span class="n">pitem_value</span> <span class="o">.~</span> <span class="n">v</span>
<span class="o">$</span> <span class="n">pitem_label</span> <span class="o">.~</span> <span class="n">s</span>
<span class="o">$</span> <span class="n">pitem_offset</span> <span class="o">.~</span> <span class="n">o</span>
<span class="o">$</span> <span class="n">def</span>
<span class="c1">-- Convert to a renderable in order to display it.</span>
<span class="nf">toRenderable</span>
<span class="o">$</span> <span class="n">pie_title</span> <span class="o">.~</span> <span class="s">&quot;Relative Population&quot;</span>
<span class="o">$</span> <span class="n">pie_plot</span> <span class="o">.</span> <span class="n">pie_data</span> <span class="o">.~</span> <span class="n">map</span> <span class="n">pitem</span> <span class="n">values</span>
<span class="o">$</span> <span class="n">def</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450pt" height="300pt" viewBox="0 0 450 300" version="1.1">
<defs>
<g>
<symbol overflow="visible" id="glyph0-0">
<path style="stroke:none;" d=""/>
</symbol>
<symbol overflow="visible" id="glyph0-1">
<path style="stroke:none;" d="M 3.398438 -8.921875 L 3.398438 -6.019531 L 5.953125 -6.019531 C 6.460938 -6.019531 6.84375 -6.078125 7.097656 -6.195312 C 7.546875 -6.402344 7.769531 -6.804688 7.769531 -7.414062 C 7.769531 -8.066406 7.554688 -8.507812 7.117188 -8.730469 C 6.875 -8.859375 6.507812 -8.921875 6.019531 -8.921875 Z M 8.234375 -10.515625 C 8.644531 -10.347656 8.988281 -10.09375 9.273438 -9.761719 C 9.507812 -9.488281 9.691406 -9.1875 9.828125 -8.855469 C 9.964844 -8.523438 10.035156 -8.144531 10.035156 -7.71875 C 10.035156 -7.207031 9.90625 -6.703125 9.644531 -6.207031 C 9.386719 -5.710938 8.960938 -5.359375 8.363281 -5.15625 C 8.863281 -4.957031 9.214844 -4.671875 9.421875 -4.304688 C 9.628906 -3.933594 9.734375 -3.371094 9.734375 -2.613281 L 9.734375 -1.890625 C 9.734375 -1.398438 9.753906 -1.0625 9.792969 -0.886719 C 9.851562 -0.609375 9.988281 -0.402344 10.203125 -0.269531 L 10.203125 0 L 7.71875 0 C 7.652344 -0.238281 7.601562 -0.433594 7.574219 -0.578125 C 7.515625 -0.882812 7.484375 -1.191406 7.476562 -1.507812 L 7.464844 -2.511719 C 7.453125 -3.199219 7.328125 -3.660156 7.085938 -3.890625 C 6.84375 -4.117188 6.390625 -4.234375 5.726562 -4.234375 L 3.398438 -4.234375 L 3.398438 0 L 1.195312 0 L 1.195312 -10.796875 L 6.488281 -10.796875 C 7.246094 -10.78125 7.828125 -10.6875 8.234375 -10.515625 Z "/>
</symbol>
<symbol overflow="visible" id="glyph0-2">
<path style="stroke:none;" d="M 3 -6.019531 C 2.734375 -5.71875 2.566406 -5.308594 2.496094 -4.789062 L 5.742188 -4.789062 C 5.707031 -5.339844 5.539062 -5.761719 5.242188 -6.046875 C 4.941406 -6.332031 4.566406 -6.476562 4.125 -6.476562 C 3.640625 -6.476562 3.265625 -6.324219 3 -6.019531 Z M 5.917969 -7.820312 C 6.449219 -7.574219 6.890625 -7.179688 7.234375 -6.644531 C 7.546875 -6.171875 7.75 -5.621094 7.84375 -4.996094 C 7.898438 -4.628906 7.921875 -4.101562 7.910156 -3.414062 L 2.445312 -3.414062 C 2.476562 -2.613281 2.726562 -2.050781 3.199219 -1.726562 C 3.488281 -1.527344 3.835938 -1.429688 4.242188 -1.429688 C 4.671875 -1.429688 5.019531 -1.550781 5.289062 -1.792969 C 5.433594 -1.925781 5.5625 -2.109375 5.675781 -2.34375 L 7.808594 -2.34375 C 7.753906 -1.871094 7.507812 -1.390625 7.066406 -0.902344 C 6.382812 -0.125 5.425781 0.265625 4.195312 0.265625 C 3.179688 0.265625 2.285156 -0.0625 1.507812 -0.71875 C 0.730469 -1.371094 0.34375 -2.4375 0.34375 -3.910156 C 0.34375 -5.292969 0.695312 -6.351562 1.394531 -7.089844 C 2.09375 -7.828125 3.003906 -8.195312 4.125 -8.195312 C 4.789062 -8.195312 5.386719 -8.070312 5.917969 -7.820312 Z "/>
</symbol>
<symbol overflow="visible" id="glyph0-3">
<path style="stroke:none;" d="M 3.105469 0 L 1.019531 0 L 1.019531 -10.796875 L 3.105469 -10.796875 Z "/>
</symbol>
<symbol overflow="visible" id="glyph0-4">
<path style="stroke:none;" d="M 5.375 -3.882812 C 5.242188 -3.800781 5.109375 -3.730469 4.976562 -3.679688 C 4.84375 -3.628906 4.65625 -3.582031 4.421875 -3.539062 L 3.953125 -3.449219 C 3.515625 -3.371094 3.199219 -3.277344 3.011719 -3.164062 C 2.6875 -2.972656 2.527344 -2.679688 2.527344 -2.277344 C 2.527344 -1.921875 2.625 -1.664062 2.824219 -1.503906 C 3.023438 -1.347656 3.261719 -1.265625 3.546875 -1.265625 C 3.996094 -1.265625 4.40625 -1.398438 4.785156 -1.664062 C 5.164062 -1.925781 5.359375 -2.40625 5.375 -3.105469 Z M 4.109375 -4.855469 C 4.496094 -4.90625 4.769531 -4.964844 4.9375 -5.039062 C 5.234375 -5.164062 5.382812 -5.363281 5.382812 -5.632812 C 5.382812 -5.960938 5.269531 -6.183594 5.042969 -6.308594 C 4.816406 -6.433594 4.484375 -6.496094 4.042969 -6.496094 C 3.550781 -6.496094 3.199219 -6.375 2.996094 -6.128906 C 2.847656 -5.949219 2.75 -5.707031 2.703125 -5.398438 L 0.6875 -5.398438 C 0.730469 -6.097656 0.929688 -6.671875 1.273438 -7.117188 C 1.824219 -7.820312 2.773438 -8.171875 4.117188 -8.171875 C 4.992188 -8.171875 5.765625 -8 6.445312 -7.652344 C 7.125 -7.304688 7.464844 -6.652344 7.464844 -5.691406 L 7.464844 -2.027344 C 7.464844 -1.773438 7.46875 -1.46875 7.476562 -1.105469 C 7.492188 -0.832031 7.535156 -0.648438 7.601562 -0.550781 C 7.671875 -0.453125 7.773438 -0.371094 7.910156 -0.308594 L 7.910156 0 L 5.640625 0 C 5.578125 -0.160156 5.53125 -0.3125 5.507812 -0.453125 C 5.484375 -0.59375 5.464844 -0.757812 5.449219 -0.9375 C 5.160156 -0.625 4.828125 -0.359375 4.453125 -0.140625 C 4.003906 0.117188 3.496094 0.25 2.929688 0.25 C 2.207031 0.25 1.609375 0.0429688 1.140625 -0.371094 C 0.667969 -0.78125 0.433594 -1.367188 0.433594 -2.125 C 0.433594 -3.105469 0.8125 -3.816406 1.566406 -4.253906 C 1.980469 -4.492188 2.59375 -4.664062 3.398438 -4.769531 Z "/>
</symbol>
<symbol overflow="visible" id="glyph0-5">
<path style="stroke:none;" d="M 0.152344 -6.421875 L 0.152344 -7.910156 L 1.265625 -7.910156 L 1.265625 -10.136719 L 3.332031 -10.136719 L 3.332031 -7.910156 L 4.628906 -7.910156 L 4.628906 -6.421875 L 3.332031 -6.421875 L 3.332031 -2.203125 C 3.332031 -1.875 3.375 -1.671875 3.457031 -1.59375 C 3.539062 -1.511719 3.792969 -1.472656 4.21875 -1.472656 C 4.28125 -1.472656 4.347656 -1.472656 4.421875 -1.476562 C 4.492188 -1.476562 4.5625 -1.480469 4.628906 -1.488281 L 4.628906 0.0742188 L 3.640625 0.109375 C 2.652344 0.144531 1.980469 -0.0273438 1.617188 -0.402344 C 1.382812 -0.640625 1.265625 -1.011719 1.265625 -1.507812 L 1.265625 -6.421875 Z "/>
</symbol>
<symbol overflow="visible" id="glyph0-6">
<path style="stroke:none;" d="M 3.121094 -8.9375 L 1.003906 -8.9375 L 1.003906 -10.863281 L 3.121094 -10.863281 Z M 1.003906 -7.984375 L 3.121094 -7.984375 L 3.121094 0 L 1.003906 0 Z "/>
</symbol>
<symbol overflow="visible" id="glyph0-7">
<path style="stroke:none;" d="M 5.894531 -7.984375 L 8.136719 -7.984375 L 5.257812 0 L 3.054688 0 L 0.191406 -7.984375 L 2.535156 -7.984375 L 4.195312 -2.09375 Z "/>
</symbol>
<symbol overflow="visible" id="glyph0-8">
<path style="stroke:none;" d=""/>
</symbol>
<symbol overflow="visible" id="glyph0-9">
<path style="stroke:none;" d="M 6.777344 -8.5625 C 6.484375 -8.800781 6.070312 -8.921875 5.539062 -8.921875 L 3.433594 -8.921875 L 3.433594 -5.742188 L 5.539062 -5.742188 C 6.070312 -5.742188 6.484375 -5.871094 6.777344 -6.128906 C 7.074219 -6.390625 7.222656 -6.800781 7.222656 -7.359375 C 7.222656 -7.921875 7.074219 -8.324219 6.777344 -8.5625 Z M 8.488281 -4.671875 C 7.84375 -4.144531 6.921875 -3.882812 5.726562 -3.882812 L 3.433594 -3.882812 L 3.433594 0 L 1.195312 0 L 1.195312 -10.796875 L 5.894531 -10.796875 C 6.980469 -10.796875 7.84375 -10.515625 8.488281 -9.960938 C 9.132812 -9.40625 9.457031 -8.542969 9.457031 -7.375 C 9.457031 -6.101562 9.132812 -5.199219 8.488281 -4.671875 Z "/>
</symbol>
<symbol overflow="visible" id="glyph0-10">
<path style="stroke:none;" d="M 5.960938 -2.125 C 6.289062 -2.558594 6.453125 -3.175781 6.453125 -3.976562 C 6.453125 -4.777344 6.289062 -5.394531 5.960938 -5.828125 C 5.632812 -6.257812 5.164062 -6.476562 4.554688 -6.476562 C 3.945312 -6.476562 3.476562 -6.257812 3.144531 -5.828125 C 2.816406 -5.394531 2.652344 -4.777344 2.652344 -3.976562 C 2.652344 -3.175781 2.816406 -2.558594 3.144531 -2.125 C 3.476562 -1.691406 3.945312 -1.472656 4.554688 -1.472656 C 5.164062 -1.472656 5.632812 -1.6875 5.960938 -2.125 Z M 7.632812 -0.96875 C 6.957031 -0.136719 5.933594 0.277344 4.5625 0.277344 C 3.191406 0.277344 2.167969 -0.136719 1.492188 -0.96875 C 0.820312 -1.800781 0.484375 -2.804688 0.484375 -3.976562 C 0.484375 -5.128906 0.820312 -6.128906 1.492188 -6.972656 C 2.167969 -7.816406 3.191406 -8.238281 4.5625 -8.238281 C 5.933594 -8.238281 6.957031 -7.816406 7.632812 -6.972656 C 8.304688 -6.128906 8.640625 -5.128906 8.640625 -3.976562 C 8.640625 -2.804688 8.304688 -1.804688 7.632812 -0.96875 Z "/>
</symbol>
<symbol overflow="visible" id="glyph0-11">
<path style="stroke:none;" d="M 6.054688 -5.625 C 5.773438 -6.097656 5.316406 -6.335938 4.6875 -6.335938 C 3.929688 -6.335938 3.410156 -5.976562 3.128906 -5.257812 C 2.980469 -4.878906 2.90625 -4.394531 2.90625 -3.808594 C 2.90625 -2.882812 3.15625 -2.230469 3.648438 -1.851562 C 3.941406 -1.632812 4.289062 -1.523438 4.6875 -1.523438 C 5.269531 -1.523438 5.710938 -1.75 6.015625 -2.195312 C 6.320312 -2.644531 6.476562 -3.246094 6.476562 -3.992188 C 6.476562 -4.605469 6.335938 -5.152344 6.054688 -5.625 Z M 7.65625 -7.125 C 8.304688 -6.4375 8.628906 -5.425781 8.628906 -4.09375 C 8.628906 -2.6875 8.3125 -1.617188 7.679688 -0.878906 C 7.046875 -0.140625 6.234375 0.226562 5.238281 0.226562 C 4.601562 0.226562 4.074219 0.0703125 3.65625 -0.25 C 3.425781 -0.425781 3.199219 -0.679688 2.980469 -1.019531 L 2.980469 3.140625 L 0.914062 3.140625 L 0.914062 -7.984375 L 2.914062 -7.984375 L 2.914062 -6.804688 C 3.140625 -7.152344 3.378906 -7.425781 3.632812 -7.625 C 4.097656 -7.980469 4.648438 -8.160156 5.289062 -8.160156 C 6.222656 -8.160156 7.011719 -7.816406 7.65625 -7.125 Z "/>
</symbol>
<symbol overflow="visible" id="glyph0-12">
<path style="stroke:none;" d="M 3.054688 -7.984375 L 3.054688 -3.171875 C 3.054688 -2.71875 3.109375 -2.375 3.214844 -2.144531 C 3.40625 -1.742188 3.78125 -1.539062 4.335938 -1.539062 C 5.046875 -1.539062 5.539062 -1.828125 5.800781 -2.402344 C 5.9375 -2.714844 6.007812 -3.128906 6.007812 -3.640625 L 6.007812 -7.984375 L 8.121094 -7.984375 L 8.121094 0 L 6.09375 0 L 6.09375 -1.128906 C 6.074219 -1.105469 6.023438 -1.03125 5.945312 -0.90625 C 5.867188 -0.785156 5.777344 -0.679688 5.667969 -0.585938 C 5.339844 -0.292969 5.027344 -0.09375 4.71875 0.015625 C 4.414062 0.121094 4.058594 0.175781 3.648438 0.175781 C 2.464844 0.175781 1.671875 -0.25 1.257812 -1.097656 C 1.03125 -1.566406 0.914062 -2.257812 0.914062 -3.171875 L 0.914062 -7.984375 Z "/>
</symbol>
<symbol overflow="visible" id="glyph0-13">
<path style="stroke:none;" d="M 7.421875 -7.527344 C 7.949219 -7.09375 8.210938 -6.375 8.210938 -5.375 L 8.210938 0 L 6.070312 0 L 6.070312 -4.855469 C 6.070312 -5.277344 6.015625 -5.597656 5.902344 -5.824219 C 5.699219 -6.234375 5.308594 -6.4375 4.730469 -6.4375 C 4.023438 -6.4375 3.539062 -6.136719 3.273438 -5.539062 C 3.136719 -5.21875 3.070312 -4.8125 3.070312 -4.320312 L 3.070312 0 L 0.988281 0 L 0.988281 -7.96875 L 3.003906 -7.96875 L 3.003906 -6.804688 C 3.273438 -7.214844 3.523438 -7.507812 3.765625 -7.691406 C 4.195312 -8.011719 4.738281 -8.171875 5.398438 -8.171875 C 6.222656 -8.171875 6.898438 -7.957031 7.421875 -7.527344 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-0">
<path style="stroke:none;" d=""/>
</symbol>
<symbol overflow="visible" id="glyph1-1">
<path style="stroke:none;" d="M 0.738281 -7.171875 L 2.128906 -7.171875 L 4.1875 -1.109375 L 6.234375 -7.171875 L 7.613281 -7.171875 L 7.613281 0 L 6.6875 0 L 6.6875 -4.234375 C 6.6875 -4.378906 6.691406 -4.621094 6.699219 -4.960938 C 6.707031 -5.300781 6.710938 -5.664062 6.710938 -6.050781 L 4.664062 0 L 3.703125 0 L 1.640625 -6.050781 L 1.640625 -5.828125 C 1.640625 -5.652344 1.644531 -5.386719 1.652344 -5.027344 C 1.660156 -4.667969 1.664062 -4.402344 1.664062 -4.234375 L 1.664062 0 L 0.738281 0 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-2">
<path style="stroke:none;" d="M 3.902344 -5.085938 C 4.25 -4.910156 4.515625 -4.6875 4.695312 -4.410156 C 4.871094 -4.144531 4.992188 -3.835938 5.046875 -3.484375 C 5.101562 -3.246094 5.125 -2.859375 5.125 -2.335938 L 1.292969 -2.335938 C 1.308594 -1.804688 1.4375 -1.378906 1.671875 -1.058594 C 1.90625 -0.738281 2.265625 -0.578125 2.757812 -0.578125 C 3.21875 -0.578125 3.585938 -0.726562 3.859375 -1.03125 C 4.015625 -1.207031 4.125 -1.410156 4.1875 -1.640625 L 5.054688 -1.640625 C 5.03125 -1.449219 4.957031 -1.234375 4.828125 -1 C 4.699219 -0.761719 4.554688 -0.570312 4.394531 -0.421875 C 4.128906 -0.160156 3.796875 0.015625 3.402344 0.109375 C 3.191406 0.160156 2.953125 0.1875 2.6875 0.1875 C 2.035156 0.1875 1.484375 -0.0507812 1.03125 -0.523438 C 0.578125 -1 0.351562 -1.660156 0.351562 -2.515625 C 0.351562 -3.355469 0.578125 -4.035156 1.035156 -4.5625 C 1.492188 -5.085938 2.085938 -5.347656 2.820312 -5.347656 C 3.191406 -5.347656 3.554688 -5.257812 3.902344 -5.085938 Z M 4.222656 -3.03125 C 4.1875 -3.414062 4.105469 -3.71875 3.976562 -3.945312 C 3.734375 -4.367188 3.332031 -4.578125 2.769531 -4.578125 C 2.367188 -4.578125 2.027344 -4.433594 1.753906 -4.144531 C 1.480469 -3.851562 1.335938 -3.480469 1.320312 -3.03125 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-3">
<path style="stroke:none;" d="M 0.148438 -5.230469 L 1.285156 -5.230469 L 2.484375 -3.390625 L 3.703125 -5.230469 L 4.769531 -5.203125 L 3.007812 -2.679688 L 4.847656 0 L 3.726562 0 L 2.425781 -1.960938 L 1.167969 0 L 0.0546875 0 L 1.894531 -2.679688 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-4">
<path style="stroke:none;" d="M 0.644531 -5.203125 L 1.539062 -5.203125 L 1.539062 0 L 0.644531 0 Z M 0.644531 -7.171875 L 1.539062 -7.171875 L 1.539062 -6.175781 L 0.644531 -6.175781 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-5">
<path style="stroke:none;" d="M 4.097656 -4.953125 C 4.46875 -4.664062 4.691406 -4.171875 4.765625 -3.472656 L 3.910156 -3.472656 C 3.859375 -3.792969 3.742188 -4.0625 3.554688 -4.273438 C 3.367188 -4.488281 3.070312 -4.59375 2.660156 -4.59375 C 2.101562 -4.59375 1.699219 -4.320312 1.460938 -3.773438 C 1.304688 -3.417969 1.226562 -2.980469 1.226562 -2.460938 C 1.226562 -1.9375 1.335938 -1.496094 1.558594 -1.136719 C 1.78125 -0.78125 2.128906 -0.601562 2.601562 -0.601562 C 2.96875 -0.601562 3.257812 -0.710938 3.46875 -0.933594 C 3.683594 -1.15625 3.828125 -1.464844 3.910156 -1.851562 L 4.765625 -1.851562 C 4.667969 -1.15625 4.421875 -0.648438 4.03125 -0.328125 C 3.640625 -0.0078125 3.144531 0.152344 2.535156 0.152344 C 1.851562 0.152344 1.304688 -0.0976562 0.898438 -0.597656 C 0.492188 -1.097656 0.289062 -1.722656 0.289062 -2.46875 C 0.289062 -3.386719 0.511719 -4.101562 0.957031 -4.613281 C 1.402344 -5.125 1.972656 -5.382812 2.660156 -5.382812 C 3.25 -5.382812 3.730469 -5.238281 4.097656 -4.953125 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-6">
<path style="stroke:none;" d="M 3.917969 -1.226562 C 4.132812 -1.667969 4.242188 -2.160156 4.242188 -2.699219 C 4.242188 -3.1875 4.164062 -3.585938 4.007812 -3.890625 C 3.761719 -4.375 3.335938 -4.613281 2.730469 -4.613281 C 2.191406 -4.613281 1.800781 -4.410156 1.558594 -4 C 1.3125 -3.589844 1.191406 -3.09375 1.191406 -2.515625 C 1.191406 -1.957031 1.3125 -1.492188 1.558594 -1.125 C 1.800781 -0.753906 2.1875 -0.566406 2.71875 -0.566406 C 3.300781 -0.566406 3.703125 -0.785156 3.917969 -1.226562 Z M 4.460938 -4.707031 C 4.929688 -4.257812 5.160156 -3.597656 5.160156 -2.726562 C 5.160156 -1.882812 4.957031 -1.183594 4.546875 -0.632812 C 4.136719 -0.0859375 3.5 0.191406 2.636719 0.191406 C 1.917969 0.191406 1.347656 -0.0546875 0.921875 -0.539062 C 0.5 -1.027344 0.289062 -1.679688 0.289062 -2.5 C 0.289062 -3.378906 0.511719 -4.078125 0.957031 -4.601562 C 1.402344 -5.121094 2 -5.382812 2.753906 -5.382812 C 3.429688 -5.382812 3.996094 -5.15625 4.460938 -4.707031 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-7">
<path style="stroke:none;" d=""/>
</symbol>
<symbol overflow="visible" id="glyph1-8">
<path style="stroke:none;" d="M 5.898438 -6.648438 C 6.398438 -6.171875 6.679688 -5.628906 6.734375 -5.019531 L 5.785156 -5.019531 C 5.679688 -5.480469 5.464844 -5.847656 5.144531 -6.117188 C 4.824219 -6.386719 4.375 -6.523438 3.792969 -6.523438 C 3.085938 -6.523438 2.515625 -6.273438 2.082031 -5.777344 C 1.648438 -5.28125 1.429688 -4.523438 1.429688 -3.496094 C 1.429688 -2.65625 1.625 -1.976562 2.019531 -1.453125 C 2.410156 -0.929688 2.996094 -0.667969 3.773438 -0.667969 C 4.492188 -0.667969 5.035156 -0.945312 5.410156 -1.492188 C 5.609375 -1.78125 5.757812 -2.164062 5.855469 -2.636719 L 6.800781 -2.636719 C 6.71875 -1.882812 6.4375 -1.25 5.960938 -0.738281 C 5.390625 -0.121094 4.625 0.1875 3.65625 0.1875 C 2.824219 0.1875 2.125 -0.0664062 1.558594 -0.570312 C 0.8125 -1.238281 0.4375 -2.269531 0.4375 -3.664062 C 0.4375 -4.71875 0.71875 -5.585938 1.28125 -6.265625 C 1.886719 -7 2.71875 -7.367188 3.785156 -7.367188 C 4.691406 -7.367188 5.398438 -7.128906 5.898438 -6.648438 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-9">
<path style="stroke:none;" d="M 0.820312 -6.6875 L 1.710938 -6.6875 L 1.710938 -5.230469 L 2.542969 -5.230469 L 2.542969 -4.511719 L 1.710938 -4.511719 L 1.710938 -1.097656 C 1.710938 -0.914062 1.769531 -0.792969 1.894531 -0.734375 C 1.960938 -0.695312 2.078125 -0.679688 2.234375 -0.679688 C 2.277344 -0.679688 2.324219 -0.679688 2.375 -0.679688 C 2.421875 -0.683594 2.480469 -0.6875 2.542969 -0.695312 L 2.542969 0 C 2.441406 0.03125 2.339844 0.0507812 2.230469 0.0625 C 2.121094 0.078125 2 0.0820312 1.875 0.0820312 C 1.464844 0.0820312 1.1875 -0.0234375 1.039062 -0.230469 C 0.894531 -0.441406 0.820312 -0.714844 0.820312 -1.050781 L 0.820312 -4.511719 L 0.113281 -4.511719 L 0.113281 -5.230469 L 0.820312 -5.230469 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-10">
<path style="stroke:none;" d="M 3.910156 -5.230469 L 4.882812 -5.230469 C 4.757812 -4.894531 4.484375 -4.128906 4.058594 -2.933594 C 3.738281 -2.035156 3.472656 -1.304688 3.257812 -0.738281 C 2.75 0.597656 2.390625 1.410156 2.183594 1.703125 C 1.976562 1.996094 1.617188 2.144531 1.109375 2.144531 C 0.984375 2.144531 0.890625 2.140625 0.824219 2.128906 C 0.757812 2.117188 0.671875 2.101562 0.578125 2.074219 L 0.578125 1.273438 C 0.730469 1.316406 0.839844 1.34375 0.90625 1.351562 C 0.976562 1.363281 1.035156 1.367188 1.089844 1.367188 C 1.25 1.367188 1.371094 1.339844 1.449219 1.285156 C 1.523438 1.234375 1.589844 1.167969 1.640625 1.089844 C 1.65625 1.0625 1.714844 0.929688 1.816406 0.6875 C 1.917969 0.445312 1.992188 0.269531 2.035156 0.152344 L 0.101562 -5.230469 L 1.097656 -5.230469 L 2.5 -0.972656 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-11">
<path style="stroke:none;" d="M 1.523438 -5.230469 L 1.523438 -1.757812 C 1.523438 -1.492188 1.566406 -1.273438 1.648438 -1.101562 C 1.804688 -0.789062 2.097656 -0.632812 2.523438 -0.632812 C 3.136719 -0.632812 3.554688 -0.90625 3.773438 -1.453125 C 3.894531 -1.746094 3.953125 -2.148438 3.953125 -2.660156 L 3.953125 -5.230469 L 4.835938 -5.230469 L 4.835938 0 L 4.003906 0 L 4.015625 -0.773438 C 3.898438 -0.574219 3.757812 -0.40625 3.589844 -0.269531 C 3.253906 0.00390625 2.847656 0.140625 2.367188 0.140625 C 1.621094 0.140625 1.113281 -0.109375 0.84375 -0.605469 C 0.699219 -0.871094 0.625 -1.230469 0.625 -1.675781 L 0.625 -5.230469 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-12">
<path style="stroke:none;" d="M 0.644531 -5.230469 L 1.515625 -5.230469 L 1.515625 -4.488281 C 1.722656 -4.746094 1.910156 -4.929688 2.078125 -5.046875 C 2.367188 -5.246094 2.699219 -5.347656 3.066406 -5.347656 C 3.484375 -5.347656 3.820312 -5.242188 4.070312 -5.039062 C 4.214844 -4.921875 4.34375 -4.75 4.460938 -4.523438 C 4.65625 -4.800781 4.886719 -5.007812 5.152344 -5.144531 C 5.414062 -5.28125 5.710938 -5.347656 6.039062 -5.347656 C 6.742188 -5.347656 7.222656 -5.09375 7.476562 -4.585938 C 7.613281 -4.3125 7.679688 -3.945312 7.679688 -3.480469 L 7.679688 0 L 6.765625 0 L 6.765625 -3.632812 C 6.765625 -3.980469 6.679688 -4.21875 6.507812 -4.351562 C 6.332031 -4.480469 6.121094 -4.546875 5.867188 -4.546875 C 5.523438 -4.546875 5.226562 -4.429688 4.976562 -4.199219 C 4.726562 -3.96875 4.605469 -3.582031 4.605469 -3.042969 L 4.605469 0 L 3.710938 0 L 3.710938 -3.414062 C 3.710938 -3.769531 3.667969 -4.027344 3.585938 -4.1875 C 3.453125 -4.433594 3.203125 -4.554688 2.835938 -4.554688 C 2.503906 -4.554688 2.203125 -4.425781 1.929688 -4.171875 C 1.660156 -3.914062 1.523438 -3.445312 1.523438 -2.773438 L 1.523438 0 L 0.644531 0 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-13">
<path style="stroke:none;" d="M 0.578125 -7.195312 L 1.429688 -7.195312 L 1.429688 -4.59375 C 1.621094 -4.84375 1.851562 -5.035156 2.117188 -5.167969 C 2.386719 -5.300781 2.675781 -5.367188 2.988281 -5.367188 C 3.640625 -5.367188 4.167969 -5.140625 4.574219 -4.695312 C 4.976562 -4.246094 5.179688 -3.585938 5.179688 -2.714844 C 5.179688 -1.886719 4.980469 -1.203125 4.578125 -0.65625 C 4.179688 -0.109375 3.625 0.164062 2.914062 0.164062 C 2.515625 0.164062 2.183594 0.0703125 1.910156 -0.121094 C 1.746094 -0.234375 1.570312 -0.417969 1.386719 -0.667969 L 1.386719 0 L 0.578125 0 Z M 3.929688 -1.175781 C 4.164062 -1.554688 4.28125 -2.050781 4.28125 -2.671875 C 4.28125 -3.222656 4.164062 -3.675781 3.929688 -4.039062 C 3.691406 -4.398438 3.34375 -4.578125 2.886719 -4.578125 C 2.484375 -4.578125 2.132812 -4.433594 1.832031 -4.136719 C 1.53125 -3.839844 1.382812 -3.351562 1.382812 -2.671875 C 1.382812 -2.179688 1.445312 -1.78125 1.566406 -1.476562 C 1.796875 -0.898438 2.230469 -0.609375 2.859375 -0.609375 C 3.335938 -0.609375 3.691406 -0.800781 3.929688 -1.175781 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-14">
<path style="stroke:none;" d="M 1.597656 -0.789062 C 1.78125 -0.644531 2 -0.570312 2.257812 -0.570312 C 2.566406 -0.570312 2.863281 -0.644531 3.15625 -0.785156 C 3.644531 -1.023438 3.886719 -1.414062 3.886719 -1.953125 L 3.886719 -2.660156 C 3.78125 -2.59375 3.640625 -2.535156 3.472656 -2.492188 C 3.304688 -2.445312 3.136719 -2.414062 2.972656 -2.390625 L 2.441406 -2.324219 C 2.121094 -2.28125 1.882812 -2.214844 1.722656 -2.125 C 1.453125 -1.972656 1.320312 -1.726562 1.320312 -1.390625 C 1.320312 -1.136719 1.410156 -0.9375 1.597656 -0.789062 Z M 3.445312 -3.167969 C 3.648438 -3.195312 3.785156 -3.28125 3.851562 -3.421875 C 3.890625 -3.5 3.910156 -3.613281 3.910156 -3.757812 C 3.910156 -4.058594 3.804688 -4.277344 3.589844 -4.410156 C 3.378906 -4.546875 3.074219 -4.613281 2.675781 -4.613281 C 2.21875 -4.613281 1.890625 -4.492188 1.699219 -4.242188 C 1.59375 -4.105469 1.523438 -3.902344 1.488281 -3.632812 L 0.667969 -3.632812 C 0.683594 -4.277344 0.894531 -4.726562 1.296875 -4.976562 C 1.699219 -5.230469 2.164062 -5.355469 2.695312 -5.355469 C 3.3125 -5.355469 3.808594 -5.238281 4.195312 -5.003906 C 4.574219 -4.769531 4.765625 -4.40625 4.765625 -3.910156 L 4.765625 -0.898438 C 4.765625 -0.808594 4.785156 -0.734375 4.820312 -0.679688 C 4.859375 -0.625 4.9375 -0.59375 5.058594 -0.59375 C 5.097656 -0.59375 5.140625 -0.597656 5.191406 -0.601562 C 5.238281 -0.609375 5.292969 -0.617188 5.347656 -0.625 L 5.347656 0.0234375 C 5.210938 0.0625 5.105469 0.0859375 5.035156 0.0976562 C 4.960938 0.109375 4.863281 0.113281 4.742188 0.113281 C 4.4375 0.113281 4.21875 0.00390625 4.082031 -0.210938 C 4.011719 -0.324219 3.960938 -0.484375 3.929688 -0.695312 C 3.75 -0.460938 3.496094 -0.253906 3.160156 -0.0820312 C 2.824219 0.0898438 2.453125 0.175781 2.050781 0.175781 C 1.566406 0.175781 1.167969 0.0273438 0.863281 -0.265625 C 0.554688 -0.5625 0.398438 -0.929688 0.398438 -1.371094 C 0.398438 -1.855469 0.550781 -2.234375 0.855469 -2.5 C 1.15625 -2.765625 1.554688 -2.929688 2.046875 -2.992188 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-15">
<path style="stroke:none;" d="M 1.398438 -2.3125 C 1.421875 -1.90625 1.515625 -1.578125 1.683594 -1.324219 C 2.007812 -0.847656 2.574219 -0.609375 3.390625 -0.609375 C 3.753906 -0.609375 4.085938 -0.664062 4.382812 -0.765625 C 4.964844 -0.96875 5.253906 -1.328125 5.253906 -1.851562 C 5.253906 -2.242188 5.132812 -2.519531 4.886719 -2.6875 C 4.640625 -2.847656 4.253906 -2.988281 3.726562 -3.109375 L 2.753906 -3.328125 C 2.117188 -3.472656 1.671875 -3.632812 1.40625 -3.804688 C 0.949219 -4.101562 0.722656 -4.550781 0.722656 -5.148438 C 0.722656 -5.792969 0.945312 -6.320312 1.390625 -6.734375 C 1.835938 -7.148438 2.46875 -7.351562 3.285156 -7.351562 C 4.039062 -7.351562 4.675781 -7.171875 5.203125 -6.808594 C 5.726562 -6.445312 5.992188 -5.867188 5.992188 -5.070312 L 5.078125 -5.070312 C 5.03125 -5.453125 4.925781 -5.746094 4.765625 -5.953125 C 4.46875 -6.328125 3.964844 -6.515625 3.257812 -6.515625 C 2.683594 -6.515625 2.273438 -6.394531 2.023438 -6.152344 C 1.773438 -5.910156 1.644531 -5.632812 1.644531 -5.3125 C 1.644531 -4.960938 1.792969 -4.703125 2.085938 -4.539062 C 2.277344 -4.4375 2.710938 -4.304688 3.390625 -4.148438 L 4.394531 -3.921875 C 4.878906 -3.8125 5.253906 -3.660156 5.515625 -3.46875 C 5.972656 -3.132812 6.203125 -2.644531 6.203125 -2.007812 C 6.203125 -1.210938 5.914062 -0.644531 5.335938 -0.304688 C 4.757812 0.0390625 4.085938 0.210938 3.320312 0.210938 C 2.429688 0.210938 1.730469 -0.0195312 1.226562 -0.472656 C 0.722656 -0.925781 0.472656 -1.539062 0.484375 -2.3125 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-16">
<path style="stroke:none;" d="M 1.558594 -1.148438 C 1.796875 -0.769531 2.175781 -0.582031 2.699219 -0.582031 C 3.105469 -0.582031 3.441406 -0.757812 3.703125 -1.105469 C 3.964844 -1.457031 4.097656 -1.957031 4.097656 -2.613281 C 4.097656 -3.273438 3.960938 -3.761719 3.691406 -4.078125 C 3.421875 -4.398438 3.085938 -4.554688 2.691406 -4.554688 C 2.25 -4.554688 1.890625 -4.386719 1.613281 -4.046875 C 1.339844 -3.710938 1.203125 -3.210938 1.203125 -2.554688 C 1.203125 -1.992188 1.320312 -1.523438 1.558594 -1.148438 Z M 3.53125 -5.070312 C 3.6875 -4.972656 3.863281 -4.800781 4.0625 -4.554688 L 4.0625 -7.195312 L 4.90625 -7.195312 L 4.90625 0 L 4.117188 0 L 4.117188 -0.726562 C 3.910156 -0.40625 3.667969 -0.171875 3.390625 -0.03125 C 3.109375 0.113281 2.789062 0.1875 2.425781 0.1875 C 1.84375 0.1875 1.339844 -0.0585938 0.914062 -0.550781 C 0.488281 -1.039062 0.273438 -1.691406 0.273438 -2.503906 C 0.273438 -3.265625 0.46875 -3.925781 0.855469 -4.484375 C 1.246094 -5.042969 1.800781 -5.320312 2.523438 -5.320312 C 2.925781 -5.320312 3.261719 -5.238281 3.53125 -5.070312 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-17">
<path style="stroke:none;" d="M 0.644531 -5.230469 L 1.480469 -5.230469 L 1.480469 -4.488281 C 1.726562 -4.792969 1.988281 -5.011719 2.265625 -5.148438 C 2.542969 -5.28125 2.851562 -5.347656 3.1875 -5.347656 C 3.929688 -5.347656 4.433594 -5.085938 4.691406 -4.570312 C 4.835938 -4.289062 4.90625 -3.882812 4.90625 -3.355469 L 4.90625 0 L 4.015625 0 L 4.015625 -3.296875 C 4.015625 -3.617188 3.964844 -3.871094 3.871094 -4.066406 C 3.714844 -4.390625 3.433594 -4.554688 3.023438 -4.554688 C 2.8125 -4.554688 2.644531 -4.535156 2.507812 -4.492188 C 2.269531 -4.421875 2.058594 -4.277344 1.875 -4.0625 C 1.726562 -3.890625 1.632812 -3.710938 1.589844 -3.527344 C 1.546875 -3.34375 1.523438 -3.082031 1.523438 -2.738281 L 1.523438 0 L 0.644531 0 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-18">
<path style="stroke:none;" d="M 0.761719 -7.171875 L 1.734375 -7.171875 L 1.734375 -0.855469 L 5.367188 -0.855469 L 5.367188 0 L 0.761719 0 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-19">
<path style="stroke:none;" d="M 0.761719 -7.171875 L 1.910156 -7.171875 L 5.53125 -1.363281 L 5.53125 -7.171875 L 6.453125 -7.171875 L 6.453125 0 L 5.367188 0 L 1.6875 -5.804688 L 1.6875 0 L 0.761719 0 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-20">
<path style="stroke:none;" d="M 1.050781 -5.230469 L 2.054688 -1.109375 L 3.078125 -5.230469 L 4.0625 -5.230469 L 5.085938 -1.132812 L 6.15625 -5.230469 L 7.035156 -5.230469 L 5.515625 0 L 4.605469 0 L 3.539062 -4.046875 L 2.507812 0 L 1.597656 0 L 0.0859375 -5.230469 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-21">
<path style="stroke:none;" d="M 0.203125 -7.171875 L 1.335938 -7.171875 L 3.398438 -3.726562 L 5.460938 -7.171875 L 6.597656 -7.171875 L 3.886719 -2.890625 L 3.886719 0 L 2.914062 0 L 2.914062 -2.890625 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-22">
<path style="stroke:none;" d="M 0.667969 -5.230469 L 1.503906 -5.230469 L 1.503906 -4.328125 C 1.570312 -4.503906 1.738281 -4.714844 2.007812 -4.96875 C 2.273438 -5.21875 2.582031 -5.347656 2.929688 -5.347656 C 2.945312 -5.347656 2.972656 -5.34375 3.011719 -5.34375 C 3.050781 -5.339844 3.117188 -5.332031 3.210938 -5.320312 L 3.210938 -4.394531 C 3.160156 -4.40625 3.113281 -4.410156 3.070312 -4.414062 C 3.023438 -4.417969 2.976562 -4.417969 2.925781 -4.417969 C 2.484375 -4.417969 2.140625 -4.277344 1.90625 -3.992188 C 1.667969 -3.707031 1.546875 -3.378906 1.546875 -3.007812 L 1.546875 0 L 0.667969 0 Z "/>
</symbol>
<symbol overflow="visible" id="glyph1-23">
<path style="stroke:none;" d="M 0.625 -7.171875 L 1.46875 -7.171875 L 1.46875 -3.007812 L 3.726562 -5.230469 L 4.847656 -5.230469 L 2.847656 -3.273438 L 4.960938 0 L 3.835938 0 L 2.207031 -2.636719 L 1.46875 -1.960938 L 1.46875 0 L 0.625 0 Z "/>
</symbol>
</g>
</defs>
<g id="surface49">
<rect x="0" y="0" width="450" height="300" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-1" x="156.476562" y="16.550781"/>
<use xlink:href="#glyph0-2" x="167.309082" y="16.550781"/>
<use xlink:href="#glyph0-3" x="175.651367" y="16.550781"/>
<use xlink:href="#glyph0-4" x="179.818848" y="16.550781"/>
<use xlink:href="#glyph0-5" x="188.161133" y="16.550781"/>
<use xlink:href="#glyph0-6" x="193.15625" y="16.550781"/>
<use xlink:href="#glyph0-7" x="197.32373" y="16.550781"/>
<use xlink:href="#glyph0-2" x="205.666016" y="16.550781"/>
<use xlink:href="#glyph0-8" x="214.008301" y="16.550781"/>
<use xlink:href="#glyph0-9" x="218.175781" y="16.550781"/>
<use xlink:href="#glyph0-10" x="228.180664" y="16.550781"/>
<use xlink:href="#glyph0-11" x="237.343262" y="16.550781"/>
<use xlink:href="#glyph0-12" x="246.505859" y="16.550781"/>
<use xlink:href="#glyph0-3" x="255.668457" y="16.550781"/>
<use xlink:href="#glyph0-4" x="259.835938" y="16.550781"/>
<use xlink:href="#glyph0-5" x="268.178223" y="16.550781"/>
<use xlink:href="#glyph0-6" x="273.17334" y="16.550781"/>
<use xlink:href="#glyph0-10" x="277.34082" y="16.550781"/>
<use xlink:href="#glyph0-13" x="286.503418" y="16.550781"/>
</g>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:bevel;stroke:rgb(100%,100%,100%);stroke-opacity:0.1;stroke-miterlimit:10;" d="M 290 130 C 290 159.304688 272.933594 185.925781 246.304688 198.15625 C 219.675781 210.386719 188.359375 205.988281 166.128906 186.894531 L 215 130 Z " transform="matrix(1,0,0,1,10,30)"/>
<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 248.390625 202.699219 L 254.652344 216.328125 L 310.472656 216.328125 " transform="matrix(1,0,0,1,10,30)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-1" x="269.652344" y="244.03125"/>
<use xlink:href="#glyph1-2" x="277.982422" y="244.03125"/>
<use xlink:href="#glyph1-3" x="283.543945" y="244.03125"/>
<use xlink:href="#glyph1-4" x="288.543945" y="244.03125"/>
<use xlink:href="#glyph1-5" x="290.765625" y="244.03125"/>
<use xlink:href="#glyph1-6" x="295.765625" y="244.03125"/>
<use xlink:href="#glyph1-7" x="301.327148" y="244.03125"/>
<use xlink:href="#glyph1-8" x="304.105469" y="244.03125"/>
<use xlink:href="#glyph1-4" x="311.327148" y="244.03125"/>
<use xlink:href="#glyph1-9" x="313.548828" y="244.03125"/>
<use xlink:href="#glyph1-10" x="316.327148" y="244.03125"/>
</g>
<path style="fill-rule:nonzero;fill:rgb(100%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:bevel;stroke:rgb(100%,100%,100%);stroke-opacity:0.1;stroke-miterlimit:10;" d="M 156.175781 187.839844 C 125.609375 161.585938 121.25 115.867188 146.308594 84.3125 L 205.046875 130.949219 Z " transform="matrix(1,0,0,1,10,30)"/>
<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 125.40625 138.539062 L 110.472656 139.960938 L 71.328125 139.960938 " transform="matrix(1,0,0,1,10,30)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-1" x="81.328125" y="167.664062"/>
<use xlink:href="#glyph1-11" x="89.658203" y="167.664062"/>
<use xlink:href="#glyph1-12" x="95.219727" y="167.664062"/>
<use xlink:href="#glyph1-13" x="103.549805" y="167.664062"/>
<use xlink:href="#glyph1-14" x="109.111328" y="167.664062"/>
<use xlink:href="#glyph1-4" x="114.672852" y="167.664062"/>
</g>
<path style="fill-rule:nonzero;fill:rgb(0%,50.196078%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:bevel;stroke:rgb(100%,100%,100%);stroke-opacity:0.1;stroke-miterlimit:10;" d="M 156.261719 83.363281 C 164.246094 73.308594 174.675781 65.472656 186.554688 60.601562 L 215 130 Z " transform="matrix(1,0,0,1,10,30)"/>
<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 166.945312 66.039062 L 157.933594 54.046875 L 120.167969 54.046875 " transform="matrix(1,0,0,1,10,30)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-15" x="130.167969" y="81.75"/>
<use xlink:href="#glyph1-10" x="136.837891" y="81.75"/>
<use xlink:href="#glyph1-16" x="141.837891" y="81.75"/>
<use xlink:href="#glyph1-17" x="147.399414" y="81.75"/>
<use xlink:href="#glyph1-2" x="152.960938" y="81.75"/>
<use xlink:href="#glyph1-10" x="158.522461" y="81.75"/>
</g>
<path style="fill-rule:nonzero;fill:rgb(100%,100%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:bevel;stroke:rgb(100%,100%,100%);stroke-opacity:0.1;stroke-miterlimit:10;" d="M 186.554688 60.601562 C 209.832031 51.0625 236.34375 53.828125 257.152344 67.964844 L 215 130 Z " transform="matrix(1,0,0,1,10,30)"/>
<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 223.300781 50.433594 L 224.855469 35.511719 L 261.808594 35.511719 " transform="matrix(1,0,0,1,10,30)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-18" x="239.855469" y="63.210938"/>
<use xlink:href="#glyph1-6" x="245.416992" y="63.210938"/>
<use xlink:href="#glyph1-17" x="250.978516" y="63.210938"/>
<use xlink:href="#glyph1-16" x="256.540039" y="63.210938"/>
<use xlink:href="#glyph1-6" x="262.101562" y="63.210938"/>
<use xlink:href="#glyph1-17" x="267.663086" y="63.210938"/>
</g>
<path style="fill-rule:nonzero;fill:rgb(0%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:bevel;stroke:rgb(100%,100%,100%);stroke-opacity:0.1;stroke-miterlimit:10;" d="M 279.246094 56.265625 C 299.792969 70.230469 312.09375 93.460938 312.09375 118.300781 L 237.09375 118.300781 Z " transform="matrix(1,0,0,1,10,30)"/>
<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 307.792969 80.863281 L 321.050781 73.84375 L 368.59375 73.84375 " transform="matrix(1,0,0,1,10,30)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-19" x="336.050781" y="101.546875"/>
<use xlink:href="#glyph1-2" x="343.272461" y="101.546875"/>
<use xlink:href="#glyph1-20" x="348.833984" y="101.546875"/>
<use xlink:href="#glyph1-7" x="356.055664" y="101.546875"/>
<use xlink:href="#glyph1-21" x="358.833984" y="101.546875"/>
<use xlink:href="#glyph1-6" x="365.503906" y="101.546875"/>
<use xlink:href="#glyph1-22" x="371.06543" y="101.546875"/>
<use xlink:href="#glyph1-23" x="374.395508" y="101.546875"/>
</g>
</g>
</svg>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>By default, both <code>ihaskell-diagrams</code> and <code>ihaskell-chart</code> use SVG displays. However, the notebook does not support interactive resizing for SVG image. However, if you use <code>:set no-svg</code>, all SVG outputs will instead be shown as PNG images, and they can be resized easily.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[23]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="kt">:</span><span class="n">set</span> <span class="n">no</span><span class="o">-</span><span class="n">svg</span>
<span class="nf">toRenderable</span>
<span class="o">$</span> <span class="n">pie_title</span> <span class="o">.~</span> <span class="s">&quot;Relative Population&quot;</span>
<span class="o">$</span> <span class="n">pie_plot</span> <span class="o">.</span> <span class="n">pie_data</span> <span class="o">.~</span> <span class="n">map</span> <span class="n">pitem</span> <span class="n">values</span>
<span class="o">$</span> <span class="n">def</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<img src="data:image/png;base64,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">
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>Finally, the <code>ihaskell-magic</code> chart uses the <a href="http://hackage.haskell.org/package/magic">magic</a> library (bindings to <code>libmagic</code>) to create a display mechanism for <code>ByteString</code>s. If you try to load an image, for instance, you will see that image immediately in the notebook.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[25]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="kr">import</span> <span class="k">qualified</span> <span class="nn">Data.ByteString</span> <span class="k">as</span> <span class="n">B</span>
<span class="kt">B</span><span class="o">.</span><span class="n">readFile</span> <span class="s">&quot;code/IHaskell/images/ihaskell-notebook.png&quot;</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<img src="data:image/png;base64,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">
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>In addition to displaying outputs in a rich format, IHaskell has a bunch of useful features.</p>
<p>For instance, the popular linting tool <code>hlint</code> is integrated and turned on by default. Let's write some ugly code, and see what it tells us:</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[26]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- There is also hlint integration enabled by default.</span>
<span class="c1">-- If you write sketchy code, it will tell you:</span>
<span class="nf">f</span> <span class="ow">::</span> <span class="kt">Int</span> <span class="ow">-&gt;</span> <span class="kt">Int</span>
<span class="nf">f</span> <span class="n">x</span> <span class="ow">=</span> <span class="n">x</span> <span class="o">+</span> <span class="mi">1</span>
<span class="c1">-- Most warnings are orange...</span>
<span class="nf">f</span> <span class="o">$</span> <span class="mi">3</span>
<span class="c1">-- But more severe warnings are red.</span>
<span class="nf">putStrLn</span> <span class="p">(</span><span class="n">show</span> <span class="mi">3</span><span class="p">)</span>
<span class="kr">do</span>
<span class="n">return</span> <span class="mi">3</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<div class="suggestion-name" style="clear:both;"> Redundant $</div> <div class="suggestion-row" style="float: left;"> <div class="suggestion-warning">Found:</div> <div class="highlight-code" id="haskell"> f $ 3
</div> </div> <div class="suggestion-row" style="float: left;"> <div class="suggestion-warning">Why Not:</div> <div class="highlight-code" id="haskell"> f 3
</div> </div> <div class="suggestion-name" style="clear:both;"> Use print</div> <div class="suggestion-row" style="float: left;"> <div class="suggestion-error">Found:</div> <div class="highlight-code" id="haskell"> putStrLn (show 3)
</div> </div> <div class="suggestion-row" style="float: left;"> <div class="suggestion-error">Why Not:</div> <div class="highlight-code" id="haskell"> print 3
</div> </div> <div class="suggestion-name" style="clear:both;"> Redundant do</div> <div class="suggestion-row" style="float: left;"> <div class="suggestion-error">Found:</div> <div class="highlight-code" id="haskell">return 3
</div> </div> <div class="suggestion-row" style="float: left;"> <div class="suggestion-error">Why Not:</div> <div class="highlight-code" id="haskell"> return 3
</div> </div>
</div>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
4
</pre>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
3
</pre>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
3
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>If you're an experienced Haskeller, though, and don't want <code>hlint</code> telling you what to do, you can easily turn it off:</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[27]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- If hlint annoys you, though, you can turn it off.</span>
<span class="c1">-- Note that this only takes effect in the next cell execution.</span>
<span class="kt">:</span><span class="n">set</span> <span class="n">no</span><span class="o">-</span><span class="n">lint</span>
</pre></div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[28]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- You could similarly use `:set lint` to turn it back on.</span>
<span class="nf">f</span> <span class="o">$</span> <span class="mi">3</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
4
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>In addition to <code>hlint</code> integration, IHaskell also integrates <strong>Hoogle</strong> for documentation searches. IHaskell provides two directives for searching Hoogle. The first of these, <code>:document</code> (or shorthands), looks for exact matches.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[35]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="kt">:</span><span class="n">doc</span> <span class="n">filterM</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>Like with <code>:info</code>, the Hoogle directives use the IPython documentation pager to show you their output. You can press Escape to dismiss the pager. If you're reading this in it's HTML form, the output looks like this:</p>
<div class="figure">
<img src="https://raw2.github.com/gibiansky/IHaskell/master/demo/doc-demo.png" />
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>The other provided command is <code>:hoogle</code>. This does a normal Hoogle search, and thus lets you use imperfect matching and searching by type signature.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[36]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="kt">:</span><span class="n">hoogle</span> <span class="ow">::</span> <span class="p">[</span><span class="n">a</span><span class="p">]</span> <span class="ow">-&gt;</span> <span class="p">[(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)]</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>The pager will show you documentation for things that could have that type signature or a similar one. It automatically formats inline Haskell code and hyperlinks the identifiers to their respective Haddock documentations:</p>
<div class="figure">
<img src="https://raw2.github.com/gibiansky/IHaskell/master/demo/hoogle-demo.png" />
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>If you need a refresher on all of the options, you can just use <code>:help</code>:</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[37]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="kt">:</span><span class="n">help</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
The following commands are available:
:extension &lt;Extension&gt; - Enable a GHC extension.
:extension No&lt;Extension&gt; - Disable a GHC extension.
:type &lt;expression&gt; - Print expression type.
:info &lt;name&gt; - Print all info for a name.
:hoogle &lt;query&gt; - Search for a query on Hoogle.
:doc &lt;ident&gt; - Get documentation for an identifier via Hogole.
:set &lt;opt&gt; - Set an option.
:set no-&lt;opt&gt; - Unset an option.
:?, :help - Show this help text.
Any prefix of the commands will also suffice, e.g. use :ty for :type.
Options:
lint - enable or disable linting.
svg - use svg output (cannot be resized).
show-types - show types of all bound names
show-errors - display Show instance missing errors normally.
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>All of the code you normally put into IHaskell is (like in GHCi) interpreted. However, sometimes you've perfected a function, and now need it to run faster. In that case, you can go ahead and define a module in a single cell. As long as your module has a module header along the lines of <code>module Name where</code>, IHaskell will recognize it as a module. It will create the file <code>A/B.hs</code>, compile it, and load it.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[29]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- If your code isn&#39;t running fast enough, you can just put it into a module.</span>
<span class="kr">module</span> <span class="nn">A.B</span> <span class="kr">where</span>
<span class="nf">fib</span> <span class="mi">0</span> <span class="ow">=</span> <span class="mi">1</span>
<span class="nf">fib</span> <span class="mi">1</span> <span class="ow">=</span> <span class="mi">1</span>
<span class="nf">fib</span> <span class="n">n</span> <span class="ow">=</span> <span class="n">fib</span> <span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="n">fib</span> <span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>Note that the module is by default imported unqualified, as though you had typed <code>import A.B</code>.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[32]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="c1">-- The module is automatically imported unqualified.</span>
<span class="nf">print</span> <span class="o">$</span> <span class="kt">A</span><span class="o">.</span><span class="kt">B</span><span class="o">.</span><span class="n">fib</span> <span class="mi">20</span>
<span class="nf">print</span> <span class="o">$</span> <span class="n">fib</span> <span class="mi">20</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
10946
</pre>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
10946
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>Note that since a new module is imported, all previous bound identifiers are now unbound. For instance, we no longer have access to the <code>f</code> function from before:</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[33]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="nf">f</span> <span class="mi">3</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<span class='err-msg'>Not in scope: `f'</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<p>However, if you re-import this module with another import statement, the original implicit import goes away.</p>
</div>
<div class="cell border-box-sizing code_cell">
<div class="input">
<div class="prompt input_prompt">
In&nbsp;[34]:
</div>
<div class="input_area box-flex1">
<div class="highlight"><pre><span class="kr">import</span> <span class="k">qualified</span> <span class="nn">A.B</span> <span class="k">as</span> <span class="n">Fib</span>
<span class="kt">Fib</span><span class="o">.</span><span class="n">fib</span> <span class="mi">20</span>
<span class="nf">fib</span> <span class="mi">20</span>
</pre></div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<pre>
10946
</pre>
</div>
</div>
<div class="output_area"><div class="prompt"></div>
<div class="box-flex1 output_subarea output_display_data">
<div class="output_html rendered_html">
<span class='err-msg'>Not in scope: `fib'<br/>Perhaps you meant `Fib.fib' (imported from A.B)</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="thanks">Thanks!</h2>
<p>That's it for now! I hope you've enjoyed this little demo of <strong>IHaskell</strong>! There are still a few features that I haven't covered, such as the <code>show-types</code> and <code>show-errors</code> options, as well as the relatively intelligent autocompletion mechanism and inline type info popups.</p>
<p>I hope you find IHaskell useful, and please report any bugs or features requests <a href="https://github.com/gibiansky/IHaskell/issues">on Github</a>. If you have any comments, want to contribute, or just want to get in touch, don't hesitate to contact me at Andrew dot Gibiansky at Gmail. Contributions are also more than welcome, and I'm happy to help you get started with IHaskell development if you'd like to contribute!</p>
<p>I am also often available at <code>#ihaskell</code> on IRC at <code>chat.freenode.net</code>, so if I'm around, don't hesitate to ask questions.</p>
<p>Thank you to <a href="https://github.com/aavogt">Adam Vogt</a>, <a href="http://reganmian.net/">Stian Håklev</a>, and <span class="citation">[@edechter]</span>(https://github.com/edechter) for their testing, bug reporting, pull requests, and general patience!</p>
</div>
</body>
</body>
</html>