177 |
178 | Why?
179 | Because it's time-consuming to compare virtual machines using Azure's own pricing, pricing calculator, and other pages.
180 |
181 |
182 | Who?
183 | It was started for AWS by @powdahound and contributed to by many at GitHub. WaqasAliAbbasi ported and improved it for Azure under the supervision of Patrick Lam and Brian Law at Microsoft Hong Kong.
184 |
185 |
186 | How?
187 | Azure Virtual Machine specifications are semi-automatically updated while the prices are regularly refreshed through Azure RateCard API. This was last done at ${generated_at}.
188 |
189 |
190 |
191 | Warning: This site is not maintained by or affiliated with Microsoft. The data shown is not guaranteed to be accurate or current. Please report issues you see.
192 |
193 |
194 |
--------------------------------------------------------------------------------
/www/bootstrap/css/bootstrap-responsive.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Responsive v2.2.1
3 | *
4 | * Copyright 2012 Twitter, Inc
5 | * Licensed under the Apache License v2.0
6 | * http://www.apache.org/licenses/LICENSE-2.0
7 | *
8 | * Designed and built with all the love in the world @twitter by @mdo and @fat.
9 | */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.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}.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}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.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;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.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}.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;line-height:0;content:""}.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;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.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}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;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"]{display:block;float:none;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;right:20px;left: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-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left: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-right:10px;padding-left: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:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-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 .dropdown-menu a:hover{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-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,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}
10 |
--------------------------------------------------------------------------------
/www/bootstrap/css/bootstrap-theme.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.2.0 (http://getbootstrap.com)
3 | * Copyright 2011-2014 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:-o-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#2d6ca2));background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-primary:disabled,.btn-primary[disabled]{background-color:#2d6ca2;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-o-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#357ebd));background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f3f3f3));background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:-o-linear-gradient(top,#222 0,#282828 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#222),to(#282828));background-image:linear-gradient(to bottom,#222 0,#282828 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:-o-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#3071a9));background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:-o-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#3278b3));background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);background-repeat:repeat-x;border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-o-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#357ebd));background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
--------------------------------------------------------------------------------
/www/bootstrap/css/bootstrap-theme.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"bootstrap-theme.css","sources":["less/theme.less","less/mixins/vendor-prefixes.less","bootstrap-theme.css","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAeA;;;;;;EAME,0CAAA;EC+CA,6FAAA;EACQ,qFAAA;EC5DT;AFiBC;;;;;;;;;;;;EC0CA,0DAAA;EACQ,kDAAA;EC7CT;AFqCC;;EAEE,wBAAA;EEnCH;AFwCD;EG/CI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EA+B2C,2BAAA;EAA2B,oBAAA;EE7BvE;AFAC;;EAEE,2BAAA;EACA,8BAAA;EEEH;AFCC;;EAEE,2BAAA;EACA,uBAAA;EECH;AFEC;;EAEE,2BAAA;EACA,wBAAA;EEAH;AFeD;EGhDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EE0BD;AFxBC;;EAEE,2BAAA;EACA,8BAAA;EE0BH;AFvBC;;EAEE,2BAAA;EACA,uBAAA;EEyBH;AFtBC;;EAEE,2BAAA;EACA,wBAAA;EEwBH;AFRD;EGjDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EEkDD;AFhDC;;EAEE,2BAAA;EACA,8BAAA;EEkDH;AF/CC;;EAEE,2BAAA;EACA,uBAAA;EEiDH;AF9CC;;EAEE,2BAAA;EACA,wBAAA;EEgDH;AF/BD;EGlDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EE0ED;AFxEC;;EAEE,2BAAA;EACA,8BAAA;EE0EH;AFvEC;;EAEE,2BAAA;EACA,uBAAA;EEyEH;AFtEC;;EAEE,2BAAA;EACA,wBAAA;EEwEH;AFtDD;EGnDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EEkGD;AFhGC;;EAEE,2BAAA;EACA,8BAAA;EEkGH;AF/FC;;EAEE,2BAAA;EACA,uBAAA;EEiGH;AF9FC;;EAEE,2BAAA;EACA,wBAAA;EEgGH;AF7ED;EGpDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EE0HD;AFxHC;;EAEE,2BAAA;EACA,8BAAA;EE0HH;AFvHC;;EAEE,2BAAA;EACA,uBAAA;EEyHH;AFtHC;;EAEE,2BAAA;EACA,wBAAA;EEwHH;AF7FD;;ECbE,oDAAA;EACQ,4CAAA;EC8GT;AFvFD;;EGvEI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EHsEF,2BAAA;EE6FD;AF3FD;;;EG5EI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH4EF,2BAAA;EEiGD;AFvFD;EG1FI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ECnBF,qEAAA;EJ4GA,oBAAA;EC9CA,6FAAA;EACQ,qFAAA;EC4IT;AFlGD;EG1FI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EF2CF,0DAAA;EACQ,kDAAA;ECqJT;AF/FD;;EAEE,gDAAA;EEiGD;AF7FD;EG5GI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ECnBF,qEAAA;EFgOD;AFrGD;EG5GI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EF2CF,yDAAA;EACQ,iDAAA;EC0KT;AF9GD;;EAWI,2CAAA;EEuGH;AFlGD;;;EAGE,kBAAA;EEoGD;AF1FD;EACE,+CAAA;EC3FA,4FAAA;EACQ,oFAAA;ECwLT;AFlFD;EGtJI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH8IF,uBAAA;EE8FD;AFzFD;EGvJI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH8IF,uBAAA;EEsGD;AFhGD;EGxJI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH8IF,uBAAA;EE8GD;AFvGD;EGzJI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH8IF,uBAAA;EEsHD;AFtGD;EGlKI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED2QH;AFnGD;EG5KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDkRH;AFzGD;EG7KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDyRH;AF/GD;EG9KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDgSH;AFrHD;EG/KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDuSH;AF3HD;EGhLI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED8SH;AF9HD;EGnJI,+MAAA;EACA,0MAAA;EACA,uMAAA;EDoRH;AF1HD;EACE,oBAAA;EC/IA,oDAAA;EACQ,4CAAA;EC4QT;AF3HD;;;EAGE,+BAAA;EGpME,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EHkMF,uBAAA;EEiID;AFvHD;ECjKE,mDAAA;EACQ,2CAAA;EC2RT;AFjHD;EG1NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED8UH;AFvHD;EG3NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDqVH;AF7HD;EG5NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED4VH;AFnID;EG7NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDmWH;AFzID;EG9NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED0WH;AF/ID;EG/NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDiXH;AF9ID;EGvOI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EHqOF,uBAAA;EC1LA,2FAAA;EACQ,mFAAA;EC+UT","sourcesContent":["\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &:disabled,\n &[disabled] {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-bg, 5%); @end-color: darken(@navbar-default-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-bg; @end-color: lighten(@navbar-inverse-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n}\n\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n &::-moz-placeholder { color: @color; // Firefox\n opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n",null,"// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]}
--------------------------------------------------------------------------------
/www/bootstrap/css/bootstrap-theme.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.2.0 (http://getbootstrap.com)
3 | * Copyright 2011-2014 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | .btn-default,
8 | .btn-primary,
9 | .btn-success,
10 | .btn-info,
11 | .btn-warning,
12 | .btn-danger {
13 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
14 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
15 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
16 | }
17 | .btn-default:active,
18 | .btn-primary:active,
19 | .btn-success:active,
20 | .btn-info:active,
21 | .btn-warning:active,
22 | .btn-danger:active,
23 | .btn-default.active,
24 | .btn-primary.active,
25 | .btn-success.active,
26 | .btn-info.active,
27 | .btn-warning.active,
28 | .btn-danger.active {
29 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
30 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
31 | }
32 | .btn:active,
33 | .btn.active {
34 | background-image: none;
35 | }
36 | .btn-default {
37 | text-shadow: 0 1px 0 #fff;
38 | background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
39 | background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
40 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
41 | background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
42 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
43 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
44 | background-repeat: repeat-x;
45 | border-color: #dbdbdb;
46 | border-color: #ccc;
47 | }
48 | .btn-default:hover,
49 | .btn-default:focus {
50 | background-color: #e0e0e0;
51 | background-position: 0 -15px;
52 | }
53 | .btn-default:active,
54 | .btn-default.active {
55 | background-color: #e0e0e0;
56 | border-color: #dbdbdb;
57 | }
58 | .btn-default:disabled,
59 | .btn-default[disabled] {
60 | background-color: #e0e0e0;
61 | background-image: none;
62 | }
63 | .btn-primary {
64 | background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
65 | background-image: -o-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
66 | background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#2d6ca2));
67 | background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
68 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
69 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
70 | background-repeat: repeat-x;
71 | border-color: #2b669a;
72 | }
73 | .btn-primary:hover,
74 | .btn-primary:focus {
75 | background-color: #2d6ca2;
76 | background-position: 0 -15px;
77 | }
78 | .btn-primary:active,
79 | .btn-primary.active {
80 | background-color: #2d6ca2;
81 | border-color: #2b669a;
82 | }
83 | .btn-primary:disabled,
84 | .btn-primary[disabled] {
85 | background-color: #2d6ca2;
86 | background-image: none;
87 | }
88 | .btn-success {
89 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
90 | background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
91 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
92 | background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
93 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
94 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
95 | background-repeat: repeat-x;
96 | border-color: #3e8f3e;
97 | }
98 | .btn-success:hover,
99 | .btn-success:focus {
100 | background-color: #419641;
101 | background-position: 0 -15px;
102 | }
103 | .btn-success:active,
104 | .btn-success.active {
105 | background-color: #419641;
106 | border-color: #3e8f3e;
107 | }
108 | .btn-success:disabled,
109 | .btn-success[disabled] {
110 | background-color: #419641;
111 | background-image: none;
112 | }
113 | .btn-info {
114 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
115 | background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
116 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
117 | background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
118 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
119 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
120 | background-repeat: repeat-x;
121 | border-color: #28a4c9;
122 | }
123 | .btn-info:hover,
124 | .btn-info:focus {
125 | background-color: #2aabd2;
126 | background-position: 0 -15px;
127 | }
128 | .btn-info:active,
129 | .btn-info.active {
130 | background-color: #2aabd2;
131 | border-color: #28a4c9;
132 | }
133 | .btn-info:disabled,
134 | .btn-info[disabled] {
135 | background-color: #2aabd2;
136 | background-image: none;
137 | }
138 | .btn-warning {
139 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
140 | background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
141 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
142 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
143 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
144 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
145 | background-repeat: repeat-x;
146 | border-color: #e38d13;
147 | }
148 | .btn-warning:hover,
149 | .btn-warning:focus {
150 | background-color: #eb9316;
151 | background-position: 0 -15px;
152 | }
153 | .btn-warning:active,
154 | .btn-warning.active {
155 | background-color: #eb9316;
156 | border-color: #e38d13;
157 | }
158 | .btn-warning:disabled,
159 | .btn-warning[disabled] {
160 | background-color: #eb9316;
161 | background-image: none;
162 | }
163 | .btn-danger {
164 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
165 | background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
166 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
167 | background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
168 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
169 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
170 | background-repeat: repeat-x;
171 | border-color: #b92c28;
172 | }
173 | .btn-danger:hover,
174 | .btn-danger:focus {
175 | background-color: #c12e2a;
176 | background-position: 0 -15px;
177 | }
178 | .btn-danger:active,
179 | .btn-danger.active {
180 | background-color: #c12e2a;
181 | border-color: #b92c28;
182 | }
183 | .btn-danger:disabled,
184 | .btn-danger[disabled] {
185 | background-color: #c12e2a;
186 | background-image: none;
187 | }
188 | .thumbnail,
189 | .img-thumbnail {
190 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
191 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
192 | }
193 | .dropdown-menu > li > a:hover,
194 | .dropdown-menu > li > a:focus {
195 | background-color: #e8e8e8;
196 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
197 | background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
198 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
199 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
200 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
201 | background-repeat: repeat-x;
202 | }
203 | .dropdown-menu > .active > a,
204 | .dropdown-menu > .active > a:hover,
205 | .dropdown-menu > .active > a:focus {
206 | background-color: #357ebd;
207 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
208 | background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
209 | background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
210 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
211 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
212 | background-repeat: repeat-x;
213 | }
214 | .navbar-default {
215 | background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
216 | background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
217 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
218 | background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
219 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
220 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
221 | background-repeat: repeat-x;
222 | border-radius: 4px;
223 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
224 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
225 | }
226 | .navbar-default .navbar-nav > .active > a {
227 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
228 | background-image: -o-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
229 | background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f3f3f3));
230 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
231 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
232 | background-repeat: repeat-x;
233 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
234 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
235 | }
236 | .navbar-brand,
237 | .navbar-nav > li > a {
238 | text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
239 | }
240 | .navbar-inverse {
241 | background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
242 | background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
243 | background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
244 | background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
245 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
246 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
247 | background-repeat: repeat-x;
248 | }
249 | .navbar-inverse .navbar-nav > .active > a {
250 | background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
251 | background-image: -o-linear-gradient(top, #222 0%, #282828 100%);
252 | background-image: -webkit-gradient(linear, left top, left bottom, from(#222), to(#282828));
253 | background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
254 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
255 | background-repeat: repeat-x;
256 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
257 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
258 | }
259 | .navbar-inverse .navbar-brand,
260 | .navbar-inverse .navbar-nav > li > a {
261 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
262 | }
263 | .navbar-static-top,
264 | .navbar-fixed-top,
265 | .navbar-fixed-bottom {
266 | border-radius: 0;
267 | }
268 | .alert {
269 | text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
270 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
271 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
272 | }
273 | .alert-success {
274 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
275 | background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
276 | background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
277 | background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
278 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
279 | background-repeat: repeat-x;
280 | border-color: #b2dba1;
281 | }
282 | .alert-info {
283 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
284 | background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
285 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
286 | background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
287 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
288 | background-repeat: repeat-x;
289 | border-color: #9acfea;
290 | }
291 | .alert-warning {
292 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
293 | background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
294 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
295 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
296 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
297 | background-repeat: repeat-x;
298 | border-color: #f5e79e;
299 | }
300 | .alert-danger {
301 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
302 | background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
303 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
304 | background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
305 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
306 | background-repeat: repeat-x;
307 | border-color: #dca7a7;
308 | }
309 | .progress {
310 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
311 | background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
312 | background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
313 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
314 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
315 | background-repeat: repeat-x;
316 | }
317 | .progress-bar {
318 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
319 | background-image: -o-linear-gradient(top, #428bca 0%, #3071a9 100%);
320 | background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3071a9));
321 | background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
322 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
323 | background-repeat: repeat-x;
324 | }
325 | .progress-bar-success {
326 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
327 | background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
328 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
329 | background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
330 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
331 | background-repeat: repeat-x;
332 | }
333 | .progress-bar-info {
334 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
335 | background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
336 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
337 | background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
338 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
339 | background-repeat: repeat-x;
340 | }
341 | .progress-bar-warning {
342 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
343 | background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
344 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
345 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
346 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
347 | background-repeat: repeat-x;
348 | }
349 | .progress-bar-danger {
350 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
351 | background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
352 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
353 | background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
354 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
355 | background-repeat: repeat-x;
356 | }
357 | .progress-bar-striped {
358 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
359 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
360 | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
361 | }
362 | .list-group {
363 | border-radius: 4px;
364 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
365 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
366 | }
367 | .list-group-item.active,
368 | .list-group-item.active:hover,
369 | .list-group-item.active:focus {
370 | text-shadow: 0 -1px 0 #3071a9;
371 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
372 | background-image: -o-linear-gradient(top, #428bca 0%, #3278b3 100%);
373 | background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3278b3));
374 | background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
375 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
376 | background-repeat: repeat-x;
377 | border-color: #3278b3;
378 | }
379 | .panel {
380 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
381 | box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
382 | }
383 | .panel-default > .panel-heading {
384 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
385 | background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
386 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
387 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
388 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
389 | background-repeat: repeat-x;
390 | }
391 | .panel-primary > .panel-heading {
392 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
393 | background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
394 | background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
395 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
396 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
397 | background-repeat: repeat-x;
398 | }
399 | .panel-success > .panel-heading {
400 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
401 | background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
402 | background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
403 | background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
404 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
405 | background-repeat: repeat-x;
406 | }
407 | .panel-info > .panel-heading {
408 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
409 | background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
410 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
411 | background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
412 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
413 | background-repeat: repeat-x;
414 | }
415 | .panel-warning > .panel-heading {
416 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
417 | background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
418 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
419 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
420 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
421 | background-repeat: repeat-x;
422 | }
423 | .panel-danger > .panel-heading {
424 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
425 | background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
426 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
427 | background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
428 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
429 | background-repeat: repeat-x;
430 | }
431 | .well {
432 | background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
433 | background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
434 | background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
435 | background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
436 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
437 | background-repeat: repeat-x;
438 | border-color: #dcdcdc;
439 | -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
440 | box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
441 | }
442 | /*# sourceMappingURL=bootstrap-theme.css.map */
443 |
--------------------------------------------------------------------------------
/data/azurevirtualmachinesSpec.csv:
--------------------------------------------------------------------------------
1 | name,cores,memory,storage,GPU,linux,windows,linux-low-priority,windows-low-priority,msft-r-server-linux,sql-web,sql-standard,sql-enterprise,biztalk-standard,biztalk-enterprise,oracle-java,redhat-enterprise-linux
2 | A0 Basic,1,0.75,20,N/A,BASIC.A0 VM,BASIC.A0 VM (Windows),,,MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (1 core),Red Hat Enterprise Linux (1 core)
3 | A0 Standard,1,0.75,20,N/A,A0 VM,A0 VM (Windows),,,MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (1 core),Red Hat Enterprise Linux (1 core)
4 | A1 Basic,1,1.75,40,N/A,BASIC.A1 VM,BASIC.A1 VM (Windows),,,MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (1 core),Red Hat Enterprise Linux (1 core)
5 | A1 Standard,1,1.75,70,N/A,A1 VM,A1 VM (Windows),A1 VM Low Priority,A1 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (1 core),Red Hat Enterprise Linux (1 core)
6 | A2 Basic,2,3.50,60,N/A,BASIC.A2 VM,BASIC.A2 VM (Windows),,,MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (2 core),Red Hat Enterprise Linux (2 core)
7 | A2 Standard,2,3.50,135,N/A,A2 VM,A2 VM (Windows),A2 VM Low Priority,A2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (2 core),Red Hat Enterprise Linux (2 core)
8 | A3 Basic,4,7.00,120,N/A,BASIC.A3 VM,BASIC.A3 VM (Windows),,,MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
9 | A3 Standard,4,7.00,285,N/A,A3 VM,A3 VM (Windows),A3 VM Low Priority,A3 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
10 | A4 Basic,8,14.00,240,N/A,BASIC.A4 VM,BASIC.A4 VM (Windows),,,MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
11 | A4,8,14.00,605,N/A,A4 VM,A4 VM (Windows),A4 VM Low Priority,A4 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
12 | A5,2,14.00,135,N/A,A5 VM,A5 VM (Windows),A5 VM Low Priority,A5 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (2 core),Red Hat Enterprise Linux (2 core)
13 | A6,4,28.00,285,N/A,A6 VM,A6 VM (Windows),A6 VM Low Priority,A6 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
14 | A7,8,56.00,605,N/A,A7 VM,A7 VM (Windows),A7 VM Low Priority,A7 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
15 | A8,8,56.00,382,N/A,A8 VM,A8 VM (Windows),A8 VM Low Priority,A8 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
16 | A9,16,112.00,382,N/A,A9 VM,A9 VM (Windows),A9 VM Low Priority,A9 VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
17 | A10,8,56.00,382,N/A,A10 VM,A10 VM (Windows),A10 VM Low Priority,A10 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
18 | A11,16,112.00,382,N/A,A11 VM,A11 VM (Windows),A11 VM Low Priority,A11 VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
19 | A1 v2,1,2.00,10,N/A,Standard_A1_v2 VM,Standard_A1_v2 VM (Windows),Standard_A1_v2 VM Low Priority,Standard_A1_v2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (1 core),Red Hat Enterprise Linux (1 core)
20 | A2 v2,2,4.00,20,N/A,Standard_A2_v2 VM,Standard_A2_v2 VM (Windows),Standard_A2_v2 VM Low Priority,Standard_A2_v2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (2 core),Red Hat Enterprise Linux (2 core)
21 | A4 v2,4,8.00,40,N/A,Standard_A4_v2 VM,Standard_A4_v2 VM (Windows),Standard_A4_v2 VM Low Priority,Standard_A4_v2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
22 | A8 v2,8,16.00,80,N/A,Standard_A8_v2 VM,Standard_A8_v2 VM (Windows),Standard_A8_v2 VM Low Priority,Standard_A8_v2 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
23 | A2m v2,2,16.00,20,N/A,Standard_A2m_v2 VM,Standard_A2m_v2 VM (Windows),Standard_A2m_v2 VM Low Priority,Standard_A2m_v2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (2 core),Red Hat Enterprise Linux (2 core)
24 | A4m v2,4,32.00,40,N/A,Standard_A4m_v2 VM,Standard_A4m_v2 VM (Windows),Standard_A4m_v2 VM Low Priority,Standard_A4m_v2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
25 | A8m v2,8,64.00,80,N/A,Standard_A8m_v2 VM,Standard_A8m_v2 VM (Windows),Standard_A8m_v2 VM Low Priority,Standard_A8m_v2 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
26 | D1,1,3.50,50,N/A,Standard_D1 VM,Standard_D1 VM (Windows),Standard_D1 VM Low Priority,Standard_D1 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (1 core),Red Hat Enterprise Linux (1 core)
27 | D2,2,7.00,100,N/A,Standard_D2 VM,Standard_D2 VM (Windows),Standard_D2 VM Low Priority,Standard_D2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (2 core),Red Hat Enterprise Linux (2 core)
28 | D3,4,14.00,200,N/A,Standard_D3 VM,Standard_D3 VM (Windows),Standard_D3 VM Low Priority,Standard_D3 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
29 | D4,8,28.00,400,N/A,Standard_D4 VM,Standard_D4 VM (Windows),Standard_D4 VM Low Priority,Standard_D4 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
30 | D11,2,14.00,100,N/A,Standard_D11 VM,Standard_D11 VM (Windows),Standard_D11 VM Low Priority,Standard_D11 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (2 core),Red Hat Enterprise Linux (2 core)
31 | D12,4,28.00,200,N/A,Standard_D12 VM,Standard_D12 VM (Windows),Standard_D12 VM Low Priority,Standard_D12 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
32 | D13,8,56.00,400,N/A,Standard_D13 VM,Standard_D13 VM (Windows),Standard_D13 VM Low Priority,Standard_D13 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
33 | D14,16,112.00,800,N/A,Standard_D14 VM,Standard_D14 VM (Windows),Standard_D14 VM Low Priority,Standard_D14 VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
34 | D1 v2,1,3.50,50,N/A,Standard_D1_v2 VM,Standard_D1_v2 VM (Windows),Standard_D1_v2 VM Low Priority,Standard_D1_v2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (1 core),Red Hat Enterprise Linux (1 core)
35 | D2 v2,2,7.00,100,N/A,Standard_D2_v2 VM,Standard_D2_v2 VM (Windows),Standard_D2_v2 VM Low Priority,Standard_D2_v2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (2 core),Red Hat Enterprise Linux (2 core)
36 | D3 v2,4,14.00,200,N/A,Standard_D3_v2 VM,Standard_D3_v2 VM (Windows),Standard_D3_v2 VM Low Priority,Standard_D3_v2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
37 | D4 v2,8,28.00,400,N/A,Standard_D4_v2 VM,Standard_D4_v2 VM (Windows),Standard_D4_v2 VM Low Priority,Standard_D4_v2 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
38 | D5 v2,16,56.00,800,N/A,Standard_D5_v2 VM,Standard_D5_v2 VM (Windows),Standard_D5_v2 VM Low Priority,Standard_D5_v2 VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
39 | D11 v2,2,14.00,100,N/A,Standard_D11_v2 VM,Standard_D11_v2 VM (Windows),Standard_D11_v2 VM Low Priority,Standard_D11_v2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (2 core),Red Hat Enterprise Linux (2 core)
40 | D12 v2,4,28.00,200,N/A,Standard_D12_v2 VM,Standard_D12_v2 VM (Windows),Standard_D12_v2 VM Low Priority,Standard_D12_v2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
41 | D13 v2,8,56.00,400,N/A,Standard_D13_v2 VM,Standard_D13_v2 VM (Windows),Standard_D13_v2 VM Low Priority,Standard_D13_v2 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
42 | D14 v2,16,112.00,800,N/A,Standard_D14_v2 VM,Standard_D14_v2 VM (Windows),Standard_D14_v2 VM Low Priority,Standard_D14_v2 VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
43 | D15 v2,20,140.00,1000,N/A,Standard_D15_v2 VM,Standard_D15_v2 VM (Windows),Standard_D15_v2 VM Low Priority,Standard_D15_v2 VM Low Priority (Windows),MSFT R Server for Linux (20 core),SQL Server Web (20 core),SQL Server Standard (20 core),SQL Server Enterprise (20 core),BizTalk Server Standard (20 core),BizTalk Server Enterprise (20 core),Java Development Environment (20 core),Red Hat Enterprise Linux (20 core)
44 | F1,1,2.00,16,N/A,Standard_F1 VM,Standard_F1 VM (Windows),Standard_F1 VM Low Priority,Standard_F1 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (1 core),Red Hat Enterprise Linux (1 core)
45 | F2,2,4.00,32,N/A,Standard_F2 VM,Standard_F2 VM (Windows),Standard_F2 VM Low Priority,Standard_F2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (2 core),Red Hat Enterprise Linux (2 core)
46 | F4,4,8.00,64,N/A,Standard_F4 VM,Standard_F4 VM (Windows),Standard_F4 VM Low Priority,Standard_F4 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
47 | F8,8,16.00,128,N/A,Standard_F8 VM,Standard_F8 VM (Windows),Standard_F8 VM Low Priority,Standard_F8 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
48 | F16,16,32.00,256,N/A,Standard_F16 VM,Standard_F16 VM (Windows),Standard_F16 VM Low Priority,Standard_F16 VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
49 | H8,8,56.00,1000,N/A,Standard_H8 VM,Standard_H8 VM (Windows),Standard_H8 VM Low Priority,Standard_H8 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
50 | H16,16,112.00,2000,N/A,Standard_H16 VM,Standard_H16 VM (Windows),Standard_H16 VM Low Priority,Standard_H16 VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
51 | H8m,8,112.00,1000,N/A,Standard_H8m VM,Standard_H8m VM (Windows),Standard_H8m VM Low Priority,Standard_H8m VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
52 | H16m,16,224.00,2000,N/A,Standard_H16m VM,Standard_H16m VM (Windows),Standard_H16m VM Low Priority,Standard_H16m VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
53 | H16mr,16,224.00,2000,N/A,Standard_H16mr VM,Standard_H16mr VM (Windows),Standard_H16mr VM Low Priority,Standard_H16mr VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
54 | H16r,16,112.00,2000,N/A,Standard_H16r VM,Standard_H16r VM (Windows),Standard_H16r VM Low Priority,Standard_H16r VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
55 | NC6,6,56.00,340,1X K80,Standard_NC6 VM,Standard_NC6 VM (Windows),Standard_NC6 VM Low Priority,Standard_NC6 VM Low Priority (Windows),MSFT R Server for Linux (6 core),SQL Server Web (6 core),SQL Server Standard (6 core),SQL Server Enterprise (6 core),BizTalk Server Standard (6 core),BizTalk Server Enterprise (6 core),Java Development Environment (6 core),Red Hat Enterprise Linux (6 core)
56 | NC12,12,112.00,680,2X K80,Standard_NC12 VM,Standard_NC12 VM (Windows),Standard_NC12 VM Low Priority,Standard_NC12 VM Low Priority (Windows),MSFT R Server for Linux (12 core),SQL Server Web (12 core),SQL Server Standard (12 core),SQL Server Enterprise (12 core),BizTalk Server Standard (12 core),BizTalk Server Enterprise (12 core),Java Development Environment (12 core),Red Hat Enterprise Linux (12 core)
57 | NC24,24,224.00,1440,4X K80,Standard_NC24 VM,Standard_NC24 VM (Windows),Standard_NC24 VM Low Priority,Standard_NC24 VM Low Priority (Windows),MSFT R Server for Linux (24 core),SQL Server Web (24 core),SQL Server Standard (24 core),SQL Server Enterprise (24 core),BizTalk Server Standard (24 core),BizTalk Server Enterprise (24 core),Java Development Environment (24 core),Red Hat Enterprise Linux (24 core)
58 | NC24r,24,224.00,1440,4X K80,Standard_NC24r VM,Standard_NC24r VM (Windows),Standard_NC24r VM Low Priority,Standard_NC24r VM Low Priority (Windows),MSFT R Server for Linux (24 core),SQL Server Web (24 core),SQL Server Standard (24 core),SQL Server Enterprise (24 core),BizTalk Server Standard (24 core),BizTalk Server Enterprise (24 core),Java Development Environment (24 core),Red Hat Enterprise Linux (24 core)
59 | NV6,6,56.00,340,1X M60,Standard_NV6 VM,Standard_NV6 VM (Windows),Standard_NV6 VM Low Priority,Standard_NV6 VM Low Priority (Windows),MSFT R Server for Linux (6 core),SQL Server Web (6 core),SQL Server Standard (6 core),SQL Server Enterprise (6 core),BizTalk Server Standard (6 core),BizTalk Server Enterprise (6 core),Java Development Environment (6 core),Red Hat Enterprise Linux (6 core)
60 | NV12,12,112.00,680,2X M60,Standard_NV12 VM,Standard_NV12 VM (Windows),Standard_NV12 VM Low Priority,Standard_NV12 VM Low Priority (Windows),MSFT R Server for Linux (12 core),SQL Server Web (12 core),SQL Server Standard (12 core),SQL Server Enterprise (12 core),BizTalk Server Standard (12 core),BizTalk Server Enterprise (12 core),Java Development Environment (12 core),Red Hat Enterprise Linux (12 core)
61 | NV24,24,224.00,1440,4X M60,Standard_NV24 VM,Standard_NV24 VM (Windows),Standard_NV24 VM Low Priority,Standard_NV24 VM Low Priority (Windows),MSFT R Server for Linux (24 core),SQL Server Web (24 core),SQL Server Standard (24 core),SQL Server Enterprise (24 core),BizTalk Server Standard (24 core),BizTalk Server Enterprise (24 core),Java Development Environment (24 core),Red Hat Enterprise Linux (24 core)
62 | L4,4,32.00,678,N/A,Standard_L4 VM,Standard_L4 VM (Windows),Standard_L4 VM Low Priority,Standard_L4 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
63 | L8,8,64.00,1388,N/A,Standard_L8 VM,Standard_L8 VM (Windows),Standard_L8 VM Low Priority,Standard_L8 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
64 | L16,16,128.00,2807,N/A,Standard_L16 VM,Standard_L16 VM (Windows),Standard_L16 VM Low Priority,Standard_L16 VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
65 | L32,32,256.00,5630,N/A,Standard_L32 VM,Standard_L32 VM (Windows),Standard_L32 VM Low Priority,Standard_L32 VM Low Priority (Windows),MSFT R Server for Linux (32 core),SQL Server Web (32 core),SQL Server Standard (32 core),SQL Server Enterprise (32 core),BizTalk Server Standard (32 core),BizTalk Server Enterprise (32 core),Java Development Environment (32 core),Red Hat Enterprise Linux (32 core)
66 | G1,2,28.00,384,N/A,Standard_G1 VM,Standard_G1 VM (Windows),Standard_G1 VM Low Priority,Standard_G1 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (2 core),Red Hat Enterprise Linux (2 core)
67 | G2,4,56.00,768,N/A,Standard_G2 VM,Standard_G2 VM (Windows),Standard_G2 VM Low Priority,Standard_G2 VM Low Priority (Windows),MSFT R Server for Linux (up to 4 c),SQL Server Web (up to 4 cores),SQL Server Standard (up to 4 cores),SQL Server Enterprise (up to 4c),BizTalk Server Standard (up to 4c),BizTalk Server Enterprise (upto 4c),Java Development Environment (4 core),Red Hat Enterprise Linux (4 core)
68 | G3,8,112.00,1536,N/A,Standard_G3 VM,Standard_G3 VM (Windows),Standard_G3 VM Low Priority,Standard_G3 VM Low Priority (Windows),MSFT R Server for Linux (8 core),SQL Server Web (8 core),SQL Server Standard (8 core),SQL Server Enterprise (8 core),BizTalk Server Standard (8 core),BizTalk Server Enterprise (8 core),Java Development Environment (8 core),Red Hat Enterprise Linux (8 core)
69 | G4,16,224.00,3072,N/A,Standard_G4 VM,Standard_G4 VM (Windows),Standard_G4 VM Low Priority,Standard_G4 VM Low Priority (Windows),MSFT R Server for Linux (16 core),SQL Server Web (16 core),SQL Server Standard (16 core),SQL Server Enterprise (16 core),BizTalk Server Standard (16 core),BizTalk Server Enterprise (16 core),Java Development Environment (16 core),Red Hat Enterprise Linux (16 core)
70 | G5,32,448.00,6144,N/A,Standard_G5 VM,Standard_G5 VM (Windows),Standard_G5 VM Low Priority,Standard_G5 VM Low Priority (Windows),MSFT R Server for Linux (32 core),SQL Server Web (32 core),SQL Server Standard (32 core),SQL Server Enterprise (32 core),BizTalk Server Standard (32 core),BizTalk Server Enterprise (32 core),Java Development Environment (32 core),Red Hat Enterprise Linux (32 core)
71 |
--------------------------------------------------------------------------------
/scrape.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | from lxml import etree
3 | import urllib2
4 | import re
5 | import json
6 | import locale
7 |
8 |
9 | # Following advice from https://stackoverflow.com/a/1779324/216138
10 | # The locale must be installed in the system, and it must be one where ',' is
11 | # the thousans separator and '.' is the decimal fraction separator.
12 | locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
13 |
14 |
15 | class Instance(object):
16 | def __init__(self):
17 | self.vpc = None
18 | self.arch = ['x86_64']
19 | self.ECU = 0
20 | self.base_performance = None
21 | self.burst_minutes = None
22 | self.linux_virtualization_types = []
23 | self.ebs_only=True
24 | self.ebs_throughput = 0
25 | self.ebs_iops = 0
26 | self.ebs_max_bandwidth = 0
27 | self.ebs_optimized = False
28 | # self.hvm_only = False
29 | self.vpc_only = False
30 | self.ipv6_support = False
31 | self.trim_support = False
32 | self.ssd = False
33 | self.devices = 0
34 | self.size = 0
35 | self.nvme_ssd = False
36 | self.storage_needs_initialization = False
37 | self.includes_swap_partition = False
38 | self.placement_group_support = False
39 | self.pretty_name = ''
40 | self.vCPU = 0
41 | self.GPU = 0
42 | self.FPGA = 0
43 | self.instance_type = ''
44 | self.family = ''
45 | self.memory = 0
46 | self.pricing = {}
47 |
48 | def to_dict(self):
49 | d = dict(family=self.family,
50 | instance_type=self.instance_type,
51 | pretty_name=self.pretty_name,
52 | arch=self.arch,
53 | vCPU=self.vCPU,
54 | GPU=self.GPU,
55 | FPGA=self.FPGA,
56 | ECU=self.ECU,
57 | base_performance=self.base_performance,
58 | burst_minutes=self.burst_minutes,
59 | memory=self.memory,
60 | ebs_optimized=self.ebs_optimized,
61 | ebs_throughput=self.ebs_throughput,
62 | ebs_iops=self.ebs_iops,
63 | ebs_max_bandwidth=self.ebs_max_bandwidth,
64 | network_performance=self.network_performance,
65 | enhanced_networking=self.enhanced_networking,
66 | placement_group_support=self.placement_group_support,
67 | pricing=self.pricing,
68 | vpc=self.vpc,
69 | linux_virtualization_types=self.linux_virtualization_types,
70 | generation=self.generation,
71 | vpc_only=self.vpc_only,
72 | ipv6_support=self.ipv6_support)
73 | if self.ebs_only:
74 | d['storage'] = None
75 | else:
76 | d['storage'] = dict(ssd=self.ssd,
77 | trim_support=self.trim_support,
78 | nvme_ssd=self.nvme_ssd,
79 | storage_needs_initialization=self.storage_needs_initialization,
80 | includes_swap_partition=self.includes_swap_partition,
81 | devices=self.num_drives,
82 | size=self.drive_size)
83 | return d
84 |
85 |
86 | def totext(elt):
87 | s = etree.tostring(elt, method='text', encoding='unicode').strip()
88 | return re.sub(r'\*\d$', '', s)
89 |
90 |
91 | def parse_prev_generation_instance(tr):
92 | i = Instance()
93 | cols = tr.xpath('td')
94 | assert len(cols) == 8, "Expected 8 columns in the table, but got %d" % len(cols)
95 | i.family = totext(cols[0])
96 | i.instance_type = totext(cols[1])
97 | archs = totext(cols[2])
98 | i.arch = []
99 | if '32-bit' in archs:
100 | i.arch.append('i386')
101 | if '64-bit' in archs:
102 | i.arch.append('x86_64')
103 | assert i.arch, "No archs detected: %s" % (archs,)
104 | i.vCPU = locale.atoi(totext(cols[3]))
105 | i.memory = locale.atof(totext(cols[4]))
106 | i.ebs_optimized = totext(cols[6]).lower() == 'yes'
107 | i.network_performance = totext(cols[7])
108 | i.enhanced_networking = False
109 | i.generation = 'previous'
110 | # print "Parsed %s..." % (i.instance_type)
111 | return i
112 |
113 |
114 | def parse_instance(tr, inst2family):
115 | i = Instance()
116 | cols = tr.xpath('td')
117 | assert len(cols) == 12, "Expected 12 columns in the table, but got %d" % len(cols)
118 | i.instance_type = totext(cols[0])
119 | # Correct typo on AWS site (temporary fix on 2016-10-11)
120 | # https://github.com/powdahound/ec2instances.info/issues/199
121 | if i.instance_type == 'x1.16large':
122 | i.instance_type = 'x1.16xlarge'
123 | # Correct typo on AWS site (temporary fix on 2017-02-23)
124 | # https://github.com/powdahound/ec2instances.info/issues/227
125 | if i.instance_type == 'i3.4xlxarge':
126 | i.instance_type = 'i3.4xlarge'
127 | if i.instance_type == 'i3.16large':
128 | i.instance_type = 'i3.16xlarge'
129 | i.family = inst2family.get(i.instance_type, "Unknown")
130 | # Some instances support 32-bit arch
131 | # http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html#resize-limitations
132 | supports_32bit = (
133 | 't2.nano',
134 | 't2.micro',
135 | 't2.small',
136 | 't2.medium',
137 | 'c3.large',
138 | 't1.micro',
139 | 'm1.small',
140 | 'm1.medium',
141 | 'c1.medium')
142 | if i.instance_type in supports_32bit:
143 | i.arch.append('i386')
144 | i.vCPU = locale.atoi(totext(cols[1]))
145 | i.memory = locale.atof(totext(cols[2]))
146 | i.ebs_optimized = totext(cols[10]).lower() == 'yes'
147 | i.network_performance = totext(cols[4])
148 | i.enhanced_networking = totext(cols[11]).lower() == 'yes'
149 | i.generation = 'current'
150 | # print "Parsed %s..." % (i.instance_type)
151 | return i
152 |
153 |
154 | def _rindex_family(inst2family, details):
155 | rows = details.xpath('tr')[0:]
156 | for r in rows:
157 | cols = r.xpath('th') or r.xpath('td')
158 | for i in totext(cols[1]).split('|'):
159 | i = i.strip()
160 | inst2family[i] = totext(cols[0])
161 |
162 | def feature_support(details, types):
163 | rows = details.xpath('tr')[0:]
164 | for r in rows:
165 | cols = r.xpath('th') or r.xpath('td')
166 | if totext(cols[4]).lower() == 'yes':
167 | family = totext(cols[0]).lower()+"."
168 | for i in types:
169 | if i.instance_type.startswith(family):
170 | i.placement_group_support = True
171 | if totext(cols[7]).lower() == 'yes':
172 | family = totext(cols[0]).lower()+"."
173 | for i in types:
174 | if i.instance_type.startswith(family):
175 | i.ipv6_support = True
176 |
177 |
178 | def parse_gpus(tr, by_type):
179 | cols = tr.xpath('td')
180 | instance_type = totext(cols[0])
181 | instance = by_type.get(instance_type, None)
182 | if instance is None:
183 | return
184 | instance.GPU = totext(cols[1])
185 |
186 |
187 | def parse_instance_fpgas(tr, by_type):
188 | cols = tr.xpath('td')
189 | instance_type = totext(cols[0])
190 | instance = by_type.get(instance_type, None)
191 | if instance is None:
192 | return
193 | instance.FPGA = totext(cols[1])
194 |
195 |
196 | def scrape_instances():
197 | inst2family = dict()
198 | tree = etree.parse(urllib2.urlopen("http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html"),
199 | etree.HTMLParser())
200 | details = tree.xpath('//div[@class="table-contents"]//table')[0]
201 | hdrs = details.xpath('tr')[0]
202 | if totext(hdrs[0]).lower() == 'instance family' and 'current generation' in totext(hdrs[1]).lower():
203 | _rindex_family(inst2family, details)
204 | details = tree.xpath('//div[@class="table-contents"]//table')[1]
205 | hdrs = details.xpath('tr')[0]
206 | if totext(hdrs[0]).lower() == 'instance family' and 'previous generation' in totext(hdrs[1]).lower():
207 | _rindex_family(inst2family, details)
208 | assert len(inst2family) > 0, "Failed to find instance family info"
209 | features_details = tree.xpath('//div[@class="table-contents"]//table')[2]
210 |
211 | tree = etree.parse(urllib2.urlopen("http://aws.amazon.com/ec2/instance-types/"), etree.HTMLParser())
212 | details = tree.xpath('//table[count(tbody/tr[1]/td)=12]')[0]
213 | rows = details.xpath('tbody/tr')[1:]
214 | assert len(rows) > 0, "Didn't find any table rows."
215 | current_gen = [parse_instance(r, inst2family) for r in rows]
216 |
217 | details = tree.xpath("//table")[8]
218 | rows = details.xpath('tbody/tr')[1:]
219 | assert len(rows) > 0, "Didn't find any p2 class GPU rows"
220 | by_type = {i.instance_type: i for i in current_gen}
221 | for r in rows:
222 | parse_gpus(r, by_type)
223 |
224 | details = tree.xpath("//table")[9]
225 | rows = details.xpath('tbody/tr')[1:]
226 | assert len(rows) > 0, "Didn't find any g2 class GPU rows"
227 | for r in rows:
228 | parse_gpus(r, by_type)
229 |
230 | details = tree.xpath("//table")[10]
231 | rows = details.xpath('tbody/tr')[1:]
232 | assert len(rows) > 0, "Didn't find any f1 FPGA rows"
233 | for r in rows:
234 | parse_instance_fpgas(r, by_type)
235 |
236 | tree = etree.parse(urllib2.urlopen("http://aws.amazon.com/ec2/previous-generation/"), etree.HTMLParser())
237 | details = tree.xpath('//table')[7]
238 | rows = details.xpath('tbody/tr')[1:]
239 | assert len(rows) > 0, "Didn't find any table rows."
240 | prev_gen = [parse_prev_generation_instance(r) for r in rows]
241 |
242 | all_gen = prev_gen + current_gen
243 | hdrs = features_details.xpath('tr')[0]
244 | if totext(hdrs[0]).lower() == '' and 'ipv6 support' in totext(hdrs[7]).lower():
245 | feature_support(features_details, all_gen)
246 | return all_gen
247 |
248 |
249 | def transform_size(size):
250 | if size == 'u':
251 | return 'micro'
252 | if size == 'sm':
253 | return 'small'
254 | if size == 'med':
255 | return 'medium'
256 | m = re.search('^(x+)l$', size)
257 | if m:
258 | xs = len(m.group(1))
259 | if xs == 1:
260 | return 'xlarge'
261 | else:
262 | return str(xs) + 'xlarge'
263 | assert size == 'lg', "Unable to parse size: %s" % (size,)
264 | return 'large'
265 |
266 |
267 | def transform_region(reg):
268 | region_map = {
269 | 'eu-ireland': 'eu-west-1',
270 | 'eu-frankfurt': 'eu-central-1',
271 | 'apac-sin': 'ap-southeast-1',
272 | 'apac-syd': 'ap-southeast-2',
273 | 'apac-tokyo': 'ap-northeast-1'}
274 | if reg in region_map:
275 | return region_map[reg]
276 | m = re.search(r'^([^0-9]*)(-(\d))?$', reg)
277 | assert m, "Can't parse region: %s" % (reg,)
278 | base = m.group(1)
279 | num = m.group(3) or '1'
280 | return base + "-" + num
281 |
282 |
283 | def add_pricing(imap, data, platform, pricing_mode):
284 | if pricing_mode == 'od':
285 | add_ondemand_pricing(imap, data, platform)
286 | elif pricing_mode == 'ri':
287 | add_reserved_pricing(imap, data, platform)
288 |
289 |
290 | def add_ondemand_pricing(imap, data, platform):
291 | for region_spec in data['config']['regions']:
292 | region = transform_region(region_spec['region'])
293 | for t_spec in region_spec['instanceTypes']:
294 | typename = t_spec['type']
295 | for i_spec in t_spec['sizes']:
296 | i_type = i_spec['size']
297 | if i_type not in imap:
298 | print("ERROR: Got ondemand pricing data for unknown instance type: {}".format(i_type))
299 | continue
300 | inst = imap[i_type]
301 | inst.pricing.setdefault(region, {})
302 | # print "%s/%s" % (region, i_type)
303 |
304 | inst.pricing[region].setdefault(platform, {})
305 | for col in i_spec['valueColumns']:
306 | inst.pricing[region][platform]['ondemand'] = col['prices']['USD']
307 |
308 | # ECU is only available here
309 | try:
310 | inst.ECU = locale.atof(i_spec['ECU'])
311 | except:
312 | # these are likely instances with 'variable' ECU
313 | inst.ECU = i_spec['ECU']
314 |
315 |
316 | def add_reserved_pricing(imap, data, platform):
317 | for region_spec in data['config']['regions']:
318 | region = transform_region(region_spec['region'])
319 | for t_spec in region_spec['instanceTypes']:
320 | i_type = t_spec['type']
321 | if i_type not in imap:
322 | print("ERROR: Got reserved pricing data for unknown instance type: {}".format(i_type))
323 | continue
324 | inst = imap[i_type]
325 | inst.pricing.setdefault(region, {})
326 | # print "%s/%s" % (region, i_type)
327 | inst.pricing[region].setdefault(platform, {})
328 | inst.pricing[region][platform].setdefault('reserved', {})
329 |
330 | termPricing = {}
331 |
332 | for term in t_spec['terms']:
333 | for po in term['purchaseOptions']:
334 | for value in po['valueColumns']:
335 | if value['name'] == 'effectiveHourly':
336 | termPricing[term['term'] + '.' + po['purchaseOption']] = value['prices']['USD']
337 |
338 | inst.pricing[region][platform]['reserved'] = termPricing
339 |
340 | def add_ebs_pricing(imap, data):
341 | for region_spec in data['config']['regions']:
342 | region = transform_region(region_spec['region'])
343 | for t_spec in region_spec['instanceTypes']:
344 | typename = t_spec['type']
345 | for i_spec in t_spec['sizes']:
346 | i_type = i_spec['size']
347 | if i_type not in imap:
348 | print("ERROR: Got EBS pricing data for unknown instance type: {}".format(i_type))
349 | continue
350 | inst = imap[i_type]
351 | inst.pricing.setdefault(region, {})
352 | # print "%s/%s" % (region, i_type)
353 |
354 | for col in i_spec['valueColumns']:
355 | inst.pricing[region]['ebs'] = col['prices']['USD']
356 |
357 | def add_pricing_info(instances):
358 | pricing_modes = ['ri', 'od']
359 |
360 | reserved_name_map = {
361 | 'linux': 'linux-unix-shared',
362 | 'mswin': 'windows-shared',
363 | 'mswinSQL': 'windows-with-sql-server-standard-shared',
364 | 'mswinSQLWeb': 'windows-with-sql-server-web-shared'
365 | }
366 |
367 | for i in instances:
368 | i.pricing = {}
369 |
370 | by_type = {i.instance_type: i for i in instances}
371 |
372 | for platform in ['linux', 'mswin', 'mswinSQL', 'mswinSQLWeb']:
373 | for pricing_mode in pricing_modes:
374 | # current generation
375 | if pricing_mode == 'od':
376 | pricing_url = 'https://a0.awsstatic.com/pricing/1/deprecated/ec2/%s-od.json' % (platform,)
377 | else:
378 | pricing_url = 'http://a0.awsstatic.com/pricing/1/ec2/ri-v2/%s.min.js' % (reserved_name_map[platform],)
379 |
380 | pricing = fetch_data(pricing_url)
381 | add_pricing(by_type, pricing, platform, pricing_mode)
382 |
383 | # previous generation
384 | if pricing_mode == 'od':
385 | pricing_url = 'http://a0.awsstatic.com/pricing/1/ec2/previous-generation/%s-od.min.js' % (platform,)
386 | else:
387 | pricing_url = 'http://a0.awsstatic.com/pricing/1/ec2/previous-generation/ri-v2/%s.min.js' % (
388 | reserved_name_map[platform],)
389 |
390 | pricing = fetch_data(pricing_url)
391 | add_pricing(by_type, pricing, platform, pricing_mode)
392 |
393 | # EBS cost surcharge as per https://aws.amazon.com/ec2/pricing/on-demand/#EBS-Optimized_Instances
394 | ebs_pricing_url = 'https://a0.awsstatic.com/pricing/1/ec2/pricing-ebs-optimized-instances.min.js'
395 | pricing = fetch_data(ebs_pricing_url)
396 | add_ebs_pricing(by_type, pricing)
397 |
398 |
399 | def fetch_data(url):
400 | content = urllib2.urlopen(url).read()
401 | try:
402 | pricing = json.loads(content)
403 | except ValueError:
404 | # if the data isn't compatible JSON, try to parse as jsonP
405 | json_string = re.sub(r"(\w+):", r'"\1":',
406 | content[content.index('callback(') + 9: -2]) # convert into valid json
407 | pricing = json.loads(json_string)
408 |
409 | return pricing
410 |
411 |
412 | def add_eni_info(instances):
413 | eni_url = "http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html"
414 | tree = etree.parse(urllib2.urlopen(eni_url), etree.HTMLParser())
415 | table = tree.xpath('//div[@class="informaltable"]//table')[0]
416 | rows = table.xpath('.//tr[./td]')
417 | by_type = {i.instance_type: i for i in instances}
418 |
419 | for r in rows:
420 | instance_type = etree.tostring(r[0], method='text').strip()
421 | max_enis = locale.atoi(etree.tostring(r[1], method='text'))
422 | ip_per_eni = locale.atoi(etree.tostring(r[2], method='text'))
423 | # Correct typo on AWS site (temporary fix on 2017-02-23)
424 | # https://github.com/powdahound/ec2instances.info/issues/227
425 | if instance_type == 'i316xlarge':
426 | instance_type = 'i3.16xlarge'
427 | if instance_type not in by_type:
428 | print "Unknown instance type: " + instance_type
429 | continue
430 | by_type[instance_type].vpc = {
431 | 'max_enis': max_enis,
432 | 'ips_per_eni': ip_per_eni}
433 |
434 |
435 | def add_ebs_info(instances):
436 | ebs_url = "http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html"
437 | tree = etree.parse(urllib2.urlopen(ebs_url), etree.HTMLParser())
438 | table = tree.xpath('//div[@class="table-contents"]//table')[0]
439 | rows = table.xpath('tr')
440 | by_type = {i.instance_type: i for i in instances}
441 |
442 | for row in rows:
443 | if row.xpath('th'):
444 | continue
445 |
446 | cols = row.xpath('td')
447 | instance_type = totext(cols[0]).split(' ')[0]
448 | ebs_optimized_by_default = totext(cols[1]) == 'Yes'
449 | ebs_max_bandwidth = locale.atof(totext(cols[2]))
450 | ebs_throughput = locale.atof(totext(cols[3]))
451 | ebs_iops = locale.atof(totext(cols[4]))
452 | if instance_type not in by_type:
453 | print "Unknown instance type: " + instance_type
454 | continue
455 | by_type[instance_type].ebs_optimized_by_default = ebs_optimized_by_default
456 | by_type[instance_type].ebs_throughput = ebs_throughput
457 | by_type[instance_type].ebs_iops = ebs_iops
458 | by_type[instance_type].ebs_max_bandwidth = ebs_max_bandwidth
459 |
460 |
461 | def add_linux_ami_info(instances):
462 | """Add information about which virtualization options are supported.
463 |
464 | Note that only HVM is supported for Windows instances so that info is not
465 | given its own column.
466 |
467 | """
468 | checkmark_char = u'\u2713'
469 | url = "http://aws.amazon.com/amazon-linux-ami/instance-type-matrix/"
470 | tree = etree.parse(urllib2.urlopen(url), etree.HTMLParser())
471 | table = tree.xpath('//div[@class="aws-table "]/table')[0]
472 | rows = table.xpath('.//tr[./td]')[1:] # ignore header
473 |
474 | for r in rows:
475 | supported_types = []
476 | family_id = totext(r[0]).lower()
477 | if not family_id:
478 | continue
479 | # We only check the primary EBS-backed values here since the 'storage'
480 | # column will already be able to tell users whether or not the instance
481 | # they're looking at can use EBS and/or instance-store AMIs.
482 | if totext(r[1]) == checkmark_char:
483 | supported_types.append('HVM')
484 | if totext(r[3]) == checkmark_char:
485 | supported_types.append('PV')
486 |
487 | # Apply types for this instance family to all matching instances
488 | for i in instances:
489 | i_family_id = i.instance_type.split('.')[0]
490 | if i_family_id == family_id:
491 | i.linux_virtualization_types = supported_types
492 |
493 | # http://aws.amazon.com/amazon-linux-ami/instance-type-matrix/ page is
494 | # missing info about both older (t1, m1, c1, m2) and newer exotic (cg1,
495 | # cr1, hi1, hs1, cc2) instance type generations.
496 |
497 | # Adding "manual" info about older generations
498 | # Some background info at https://github.com/powdahound/ec2instances.info/pull/161
499 | for i in instances:
500 | i_family_id = i.instance_type.split('.')[0]
501 | if i_family_id in ('cc2', 'cg1', 'hi1', 'hs1'):
502 | if not 'HVM' in i.linux_virtualization_types:
503 | i.linux_virtualization_types.append('HVM')
504 | if i_family_id in ('t1', 'm1', 'm2', 'c1', 'hi1', 'hs1'):
505 | if not 'PV' in i.linux_virtualization_types:
506 | i.linux_virtualization_types.append('PV')
507 |
508 |
509 | def add_vpconly_detail(instances):
510 | # specific instances can be lanuched in VPC only
511 | # http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html#vpc-only-instance-types
512 | vpc_only_families = ('c4', 'i3', 'm4', 'p2', 'r4', 't2', 'x1')
513 | for i in instances:
514 | for family in vpc_only_families:
515 | if i.instance_type.startswith(family):
516 | i.vpc_only = True
517 |
518 |
519 | def add_instance_storage_details(instances):
520 | """Add information about instance storage features."""
521 |
522 | url = "http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html"
523 | tree = etree.parse(urllib2.urlopen(url), etree.HTMLParser())
524 | table = tree.xpath('//div[@class="informaltable-contents"]/table')[0]
525 | rows = table.xpath('.//tr[./td]')
526 |
527 | checkmark_char = u'\u2714'
528 | dagger_char = u'\u2020'
529 |
530 | for r in rows:
531 | columns = r.xpath('.//td')
532 |
533 | (instance_type,
534 | storage_volumes,
535 | storage_type,
536 | needs_initialization,
537 | trim_support) = tuple(totext(i) for i in columns)
538 |
539 | if instance_type is None:
540 | continue
541 |
542 | for i in instances:
543 | if i.instance_type == instance_type:
544 | i.ebs_only = True
545 |
546 | m = re.search(r'(\d+)\s*x\s*([0-9,]+)?', storage_volumes)
547 | if m:
548 | i.ebs_only = False
549 | i.num_drives = locale.atoi(m.group(1))
550 | i.drive_size = locale.atoi(m.group(2))
551 | i.ssd = 'SSD' in storage_type
552 | i.nvme_ssd = 'NVMe' in storage_type
553 | i.trim_support = checkmark_char in trim_support
554 | i.storage_needs_initialization = checkmark_char in needs_initialization
555 | i.includes_swap_partition = dagger_char in storage_volumes
556 |
557 | def add_t2_credits(instances):
558 | tree = etree.parse(urllib2.urlopen("http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html"),
559 | etree.HTMLParser())
560 | table = tree.xpath('//div[@class="informaltable"]//table')[0]
561 | rows = table.xpath('.//tr[./td]')
562 | assert len(rows) > 0, "Failed to find T2 CPU credit info"
563 |
564 | by_type = {i.instance_type: i for i in instances}
565 |
566 | for r in rows:
567 | if len(r) > 1:
568 | inst = by_type[totext(r[0])]
569 | creds_per_hour = locale.atof(totext(r[2]))
570 | inst.base_performance = creds_per_hour / 60
571 | inst.burst_minutes = creds_per_hour * 24 / inst.vCPU
572 |
573 |
574 | def add_pretty_names(instances):
575 | family_names = {
576 | 'r3': 'R3 High-Memory',
577 | 'r4': 'R4 High-Memory',
578 | 'c3': 'C3 High-CPU',
579 | 'c4': 'C4 High-CPU',
580 | 'm3': 'M3 General Purpose',
581 | 'i3': 'I3 High I/O',
582 | 'cg1': 'Cluster GPU',
583 | 'cc2': 'Cluster Compute',
584 | 'cr1': 'High Memory Cluster',
585 | 'hs1': 'High Storage',
586 | 'c1' : 'C1 High-CPU',
587 | 'hi1': 'HI1. High I/O',
588 | 'm2' : 'M2 High Memory',
589 | 'm1' : 'M1 General Purpose',
590 | 'p2' : 'General Purpose GPU',
591 | 'x1' : 'X1 Extra High-Memory'
592 | }
593 | for i in instances:
594 | pieces = i.instance_type.split('.')
595 | family = pieces[0]
596 | short = pieces[1]
597 | prefix = family_names.get(family, family.upper())
598 | extra = None
599 | if short.startswith('8x'):
600 | extra = 'Eight'
601 | elif short.startswith('4x'):
602 | extra = 'Quadruple'
603 | elif short.startswith('2x'):
604 | extra = 'Double'
605 | elif short.startswith('10x'):
606 | extra = 'Deca'
607 | elif short.startswith('x'):
608 | extra = ''
609 | bits = [prefix]
610 | if extra is not None:
611 | bits.extend([extra, 'Extra'])
612 | short = 'Large'
613 |
614 | bits.append(short.capitalize())
615 |
616 | i.pretty_name = ' '.join([b for b in bits if b])
617 |
618 |
619 | def scrape(data_file):
620 | """Scrape AWS to get instance data"""
621 | print "Parsing instance types..."
622 | all_instances = scrape_instances()
623 | print "Parsing pricing info..."
624 | add_pricing_info(all_instances)
625 | print "Parsing ENI info..."
626 | add_eni_info(all_instances)
627 | print "Parsing EBS info..."
628 | add_ebs_info(all_instances)
629 | print "Parsing Linux AMI info..."
630 | add_linux_ami_info(all_instances)
631 | print "Parsing VPC-only info..."
632 | add_vpconly_detail(all_instances)
633 | print "Parsing local instance storage..."
634 | add_instance_storage_details(all_instances)
635 | print "Parsing burstable instance credits..."
636 | add_t2_credits(all_instances)
637 | print "Parsing instance names..."
638 | add_pretty_names(all_instances)
639 |
640 | with open(data_file, 'w') as f:
641 | json.dump([i.to_dict() for i in all_instances],
642 | f,
643 | indent=2,
644 | sort_keys=True,
645 | separators=(',', ': '))
646 |
647 |
648 | if __name__ == '__main__':
649 | scrape('data/AWSinstances.json')
650 |
--------------------------------------------------------------------------------
/www/bootstrap/css/bootstrap-responsive.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Responsive v2.2.1
3 | *
4 | * Copyright 2012 Twitter, Inc
5 | * Licensed under the Apache License v2.0
6 | * http://www.apache.org/licenses/LICENSE-2.0
7 | *
8 | * Designed and built with all the love in the world @twitter by @mdo and @fat.
9 | */
10 |
11 | .clearfix {
12 | *zoom: 1;
13 | }
14 |
15 | .clearfix:before,
16 | .clearfix:after {
17 | display: table;
18 | line-height: 0;
19 | content: "";
20 | }
21 |
22 | .clearfix:after {
23 | clear: both;
24 | }
25 |
26 | .hide-text {
27 | font: 0/0 a;
28 | color: transparent;
29 | text-shadow: none;
30 | background-color: transparent;
31 | border: 0;
32 | }
33 |
34 | .input-block-level {
35 | display: block;
36 | width: 100%;
37 | min-height: 30px;
38 | -webkit-box-sizing: border-box;
39 | -moz-box-sizing: border-box;
40 | box-sizing: border-box;
41 | }
42 |
43 | .hidden {
44 | display: none;
45 | visibility: hidden;
46 | }
47 |
48 | .visible-phone {
49 | display: none !important;
50 | }
51 |
52 | .visible-tablet {
53 | display: none !important;
54 | }
55 |
56 | .hidden-desktop {
57 | display: none !important;
58 | }
59 |
60 | .visible-desktop {
61 | display: inherit !important;
62 | }
63 |
64 | @media (min-width: 768px) and (max-width: 979px) {
65 | .hidden-desktop {
66 | display: inherit !important;
67 | }
68 | .visible-desktop {
69 | display: none !important ;
70 | }
71 | .visible-tablet {
72 | display: inherit !important;
73 | }
74 | .hidden-tablet {
75 | display: none !important;
76 | }
77 | }
78 |
79 | @media (max-width: 767px) {
80 | .hidden-desktop {
81 | display: inherit !important;
82 | }
83 | .visible-desktop {
84 | display: none !important;
85 | }
86 | .visible-phone {
87 | display: inherit !important;
88 | }
89 | .hidden-phone {
90 | display: none !important;
91 | }
92 | }
93 |
94 | @media (min-width: 1200px) {
95 | .row {
96 | margin-left: -30px;
97 | *zoom: 1;
98 | }
99 | .row:before,
100 | .row:after {
101 | display: table;
102 | line-height: 0;
103 | content: "";
104 | }
105 | .row:after {
106 | clear: both;
107 | }
108 | [class*="span"] {
109 | float: left;
110 | min-height: 1px;
111 | margin-left: 30px;
112 | }
113 | .container,
114 | .navbar-static-top .container,
115 | .navbar-fixed-top .container,
116 | .navbar-fixed-bottom .container {
117 | width: 1170px;
118 | }
119 | .span12 {
120 | width: 1170px;
121 | }
122 | .span11 {
123 | width: 1070px;
124 | }
125 | .span10 {
126 | width: 970px;
127 | }
128 | .span9 {
129 | width: 870px;
130 | }
131 | .span8 {
132 | width: 770px;
133 | }
134 | .span7 {
135 | width: 670px;
136 | }
137 | .span6 {
138 | width: 570px;
139 | }
140 | .span5 {
141 | width: 470px;
142 | }
143 | .span4 {
144 | width: 370px;
145 | }
146 | .span3 {
147 | width: 270px;
148 | }
149 | .span2 {
150 | width: 170px;
151 | }
152 | .span1 {
153 | width: 70px;
154 | }
155 | .offset12 {
156 | margin-left: 1230px;
157 | }
158 | .offset11 {
159 | margin-left: 1130px;
160 | }
161 | .offset10 {
162 | margin-left: 1030px;
163 | }
164 | .offset9 {
165 | margin-left: 930px;
166 | }
167 | .offset8 {
168 | margin-left: 830px;
169 | }
170 | .offset7 {
171 | margin-left: 730px;
172 | }
173 | .offset6 {
174 | margin-left: 630px;
175 | }
176 | .offset5 {
177 | margin-left: 530px;
178 | }
179 | .offset4 {
180 | margin-left: 430px;
181 | }
182 | .offset3 {
183 | margin-left: 330px;
184 | }
185 | .offset2 {
186 | margin-left: 230px;
187 | }
188 | .offset1 {
189 | margin-left: 130px;
190 | }
191 | .row-fluid {
192 | width: 100%;
193 | *zoom: 1;
194 | }
195 | .row-fluid:before,
196 | .row-fluid:after {
197 | display: table;
198 | line-height: 0;
199 | content: "";
200 | }
201 | .row-fluid:after {
202 | clear: both;
203 | }
204 | .row-fluid [class*="span"] {
205 | display: block;
206 | float: left;
207 | width: 100%;
208 | min-height: 30px;
209 | margin-left: 2.564102564102564%;
210 | *margin-left: 2.5109110747408616%;
211 | -webkit-box-sizing: border-box;
212 | -moz-box-sizing: border-box;
213 | box-sizing: border-box;
214 | }
215 | .row-fluid [class*="span"]:first-child {
216 | margin-left: 0;
217 | }
218 | .row-fluid .controls-row [class*="span"] + [class*="span"] {
219 | margin-left: 2.564102564102564%;
220 | }
221 | .row-fluid .span12 {
222 | width: 100%;
223 | *width: 99.94680851063829%;
224 | }
225 | .row-fluid .span11 {
226 | width: 91.45299145299145%;
227 | *width: 91.39979996362975%;
228 | }
229 | .row-fluid .span10 {
230 | width: 82.90598290598291%;
231 | *width: 82.8527914166212%;
232 | }
233 | .row-fluid .span9 {
234 | width: 74.35897435897436%;
235 | *width: 74.30578286961266%;
236 | }
237 | .row-fluid .span8 {
238 | width: 65.81196581196582%;
239 | *width: 65.75877432260411%;
240 | }
241 | .row-fluid .span7 {
242 | width: 57.26495726495726%;
243 | *width: 57.21176577559556%;
244 | }
245 | .row-fluid .span6 {
246 | width: 48.717948717948715%;
247 | *width: 48.664757228587014%;
248 | }
249 | .row-fluid .span5 {
250 | width: 40.17094017094017%;
251 | *width: 40.11774868157847%;
252 | }
253 | .row-fluid .span4 {
254 | width: 31.623931623931625%;
255 | *width: 31.570740134569924%;
256 | }
257 | .row-fluid .span3 {
258 | width: 23.076923076923077%;
259 | *width: 23.023731587561375%;
260 | }
261 | .row-fluid .span2 {
262 | width: 14.52991452991453%;
263 | *width: 14.476723040552828%;
264 | }
265 | .row-fluid .span1 {
266 | width: 5.982905982905983%;
267 | *width: 5.929714493544281%;
268 | }
269 | .row-fluid .offset12 {
270 | margin-left: 105.12820512820512%;
271 | *margin-left: 105.02182214948171%;
272 | }
273 | .row-fluid .offset12:first-child {
274 | margin-left: 102.56410256410257%;
275 | *margin-left: 102.45771958537915%;
276 | }
277 | .row-fluid .offset11 {
278 | margin-left: 96.58119658119658%;
279 | *margin-left: 96.47481360247316%;
280 | }
281 | .row-fluid .offset11:first-child {
282 | margin-left: 94.01709401709402%;
283 | *margin-left: 93.91071103837061%;
284 | }
285 | .row-fluid .offset10 {
286 | margin-left: 88.03418803418803%;
287 | *margin-left: 87.92780505546462%;
288 | }
289 | .row-fluid .offset10:first-child {
290 | margin-left: 85.47008547008548%;
291 | *margin-left: 85.36370249136206%;
292 | }
293 | .row-fluid .offset9 {
294 | margin-left: 79.48717948717949%;
295 | *margin-left: 79.38079650845607%;
296 | }
297 | .row-fluid .offset9:first-child {
298 | margin-left: 76.92307692307693%;
299 | *margin-left: 76.81669394435352%;
300 | }
301 | .row-fluid .offset8 {
302 | margin-left: 70.94017094017094%;
303 | *margin-left: 70.83378796144753%;
304 | }
305 | .row-fluid .offset8:first-child {
306 | margin-left: 68.37606837606839%;
307 | *margin-left: 68.26968539734497%;
308 | }
309 | .row-fluid .offset7 {
310 | margin-left: 62.393162393162385%;
311 | *margin-left: 62.28677941443899%;
312 | }
313 | .row-fluid .offset7:first-child {
314 | margin-left: 59.82905982905982%;
315 | *margin-left: 59.72267685033642%;
316 | }
317 | .row-fluid .offset6 {
318 | margin-left: 53.84615384615384%;
319 | *margin-left: 53.739770867430444%;
320 | }
321 | .row-fluid .offset6:first-child {
322 | margin-left: 51.28205128205128%;
323 | *margin-left: 51.175668303327875%;
324 | }
325 | .row-fluid .offset5 {
326 | margin-left: 45.299145299145295%;
327 | *margin-left: 45.1927623204219%;
328 | }
329 | .row-fluid .offset5:first-child {
330 | margin-left: 42.73504273504273%;
331 | *margin-left: 42.62865975631933%;
332 | }
333 | .row-fluid .offset4 {
334 | margin-left: 36.75213675213675%;
335 | *margin-left: 36.645753773413354%;
336 | }
337 | .row-fluid .offset4:first-child {
338 | margin-left: 34.18803418803419%;
339 | *margin-left: 34.081651209310785%;
340 | }
341 | .row-fluid .offset3 {
342 | margin-left: 28.205128205128204%;
343 | *margin-left: 28.0987452264048%;
344 | }
345 | .row-fluid .offset3:first-child {
346 | margin-left: 25.641025641025642%;
347 | *margin-left: 25.53464266230224%;
348 | }
349 | .row-fluid .offset2 {
350 | margin-left: 19.65811965811966%;
351 | *margin-left: 19.551736679396257%;
352 | }
353 | .row-fluid .offset2:first-child {
354 | margin-left: 17.094017094017094%;
355 | *margin-left: 16.98763411529369%;
356 | }
357 | .row-fluid .offset1 {
358 | margin-left: 11.11111111111111%;
359 | *margin-left: 11.004728132387708%;
360 | }
361 | .row-fluid .offset1:first-child {
362 | margin-left: 8.547008547008547%;
363 | *margin-left: 8.440625568285142%;
364 | }
365 | input,
366 | textarea,
367 | .uneditable-input {
368 | margin-left: 0;
369 | }
370 | .controls-row [class*="span"] + [class*="span"] {
371 | margin-left: 30px;
372 | }
373 | input.span12,
374 | textarea.span12,
375 | .uneditable-input.span12 {
376 | width: 1156px;
377 | }
378 | input.span11,
379 | textarea.span11,
380 | .uneditable-input.span11 {
381 | width: 1056px;
382 | }
383 | input.span10,
384 | textarea.span10,
385 | .uneditable-input.span10 {
386 | width: 956px;
387 | }
388 | input.span9,
389 | textarea.span9,
390 | .uneditable-input.span9 {
391 | width: 856px;
392 | }
393 | input.span8,
394 | textarea.span8,
395 | .uneditable-input.span8 {
396 | width: 756px;
397 | }
398 | input.span7,
399 | textarea.span7,
400 | .uneditable-input.span7 {
401 | width: 656px;
402 | }
403 | input.span6,
404 | textarea.span6,
405 | .uneditable-input.span6 {
406 | width: 556px;
407 | }
408 | input.span5,
409 | textarea.span5,
410 | .uneditable-input.span5 {
411 | width: 456px;
412 | }
413 | input.span4,
414 | textarea.span4,
415 | .uneditable-input.span4 {
416 | width: 356px;
417 | }
418 | input.span3,
419 | textarea.span3,
420 | .uneditable-input.span3 {
421 | width: 256px;
422 | }
423 | input.span2,
424 | textarea.span2,
425 | .uneditable-input.span2 {
426 | width: 156px;
427 | }
428 | input.span1,
429 | textarea.span1,
430 | .uneditable-input.span1 {
431 | width: 56px;
432 | }
433 | .thumbnails {
434 | margin-left: -30px;
435 | }
436 | .thumbnails > li {
437 | margin-left: 30px;
438 | }
439 | .row-fluid .thumbnails {
440 | margin-left: 0;
441 | }
442 | }
443 |
444 | @media (min-width: 768px) and (max-width: 979px) {
445 | .row {
446 | margin-left: -20px;
447 | *zoom: 1;
448 | }
449 | .row:before,
450 | .row:after {
451 | display: table;
452 | line-height: 0;
453 | content: "";
454 | }
455 | .row:after {
456 | clear: both;
457 | }
458 | [class*="span"] {
459 | float: left;
460 | min-height: 1px;
461 | margin-left: 20px;
462 | }
463 | .container,
464 | .navbar-static-top .container,
465 | .navbar-fixed-top .container,
466 | .navbar-fixed-bottom .container {
467 | width: 724px;
468 | }
469 | .span12 {
470 | width: 724px;
471 | }
472 | .span11 {
473 | width: 662px;
474 | }
475 | .span10 {
476 | width: 600px;
477 | }
478 | .span9 {
479 | width: 538px;
480 | }
481 | .span8 {
482 | width: 476px;
483 | }
484 | .span7 {
485 | width: 414px;
486 | }
487 | .span6 {
488 | width: 352px;
489 | }
490 | .span5 {
491 | width: 290px;
492 | }
493 | .span4 {
494 | width: 228px;
495 | }
496 | .span3 {
497 | width: 166px;
498 | }
499 | .span2 {
500 | width: 104px;
501 | }
502 | .span1 {
503 | width: 42px;
504 | }
505 | .offset12 {
506 | margin-left: 764px;
507 | }
508 | .offset11 {
509 | margin-left: 702px;
510 | }
511 | .offset10 {
512 | margin-left: 640px;
513 | }
514 | .offset9 {
515 | margin-left: 578px;
516 | }
517 | .offset8 {
518 | margin-left: 516px;
519 | }
520 | .offset7 {
521 | margin-left: 454px;
522 | }
523 | .offset6 {
524 | margin-left: 392px;
525 | }
526 | .offset5 {
527 | margin-left: 330px;
528 | }
529 | .offset4 {
530 | margin-left: 268px;
531 | }
532 | .offset3 {
533 | margin-left: 206px;
534 | }
535 | .offset2 {
536 | margin-left: 144px;
537 | }
538 | .offset1 {
539 | margin-left: 82px;
540 | }
541 | .row-fluid {
542 | width: 100%;
543 | *zoom: 1;
544 | }
545 | .row-fluid:before,
546 | .row-fluid:after {
547 | display: table;
548 | line-height: 0;
549 | content: "";
550 | }
551 | .row-fluid:after {
552 | clear: both;
553 | }
554 | .row-fluid [class*="span"] {
555 | display: block;
556 | float: left;
557 | width: 100%;
558 | min-height: 30px;
559 | margin-left: 2.7624309392265194%;
560 | *margin-left: 2.709239449864817%;
561 | -webkit-box-sizing: border-box;
562 | -moz-box-sizing: border-box;
563 | box-sizing: border-box;
564 | }
565 | .row-fluid [class*="span"]:first-child {
566 | margin-left: 0;
567 | }
568 | .row-fluid .controls-row [class*="span"] + [class*="span"] {
569 | margin-left: 2.7624309392265194%;
570 | }
571 | .row-fluid .span12 {
572 | width: 100%;
573 | *width: 99.94680851063829%;
574 | }
575 | .row-fluid .span11 {
576 | width: 91.43646408839778%;
577 | *width: 91.38327259903608%;
578 | }
579 | .row-fluid .span10 {
580 | width: 82.87292817679558%;
581 | *width: 82.81973668743387%;
582 | }
583 | .row-fluid .span9 {
584 | width: 74.30939226519337%;
585 | *width: 74.25620077583166%;
586 | }
587 | .row-fluid .span8 {
588 | width: 65.74585635359117%;
589 | *width: 65.69266486422946%;
590 | }
591 | .row-fluid .span7 {
592 | width: 57.18232044198895%;
593 | *width: 57.12912895262725%;
594 | }
595 | .row-fluid .span6 {
596 | width: 48.61878453038674%;
597 | *width: 48.56559304102504%;
598 | }
599 | .row-fluid .span5 {
600 | width: 40.05524861878453%;
601 | *width: 40.00205712942283%;
602 | }
603 | .row-fluid .span4 {
604 | width: 31.491712707182323%;
605 | *width: 31.43852121782062%;
606 | }
607 | .row-fluid .span3 {
608 | width: 22.92817679558011%;
609 | *width: 22.87498530621841%;
610 | }
611 | .row-fluid .span2 {
612 | width: 14.3646408839779%;
613 | *width: 14.311449394616199%;
614 | }
615 | .row-fluid .span1 {
616 | width: 5.801104972375691%;
617 | *width: 5.747913483013988%;
618 | }
619 | .row-fluid .offset12 {
620 | margin-left: 105.52486187845304%;
621 | *margin-left: 105.41847889972962%;
622 | }
623 | .row-fluid .offset12:first-child {
624 | margin-left: 102.76243093922652%;
625 | *margin-left: 102.6560479605031%;
626 | }
627 | .row-fluid .offset11 {
628 | margin-left: 96.96132596685082%;
629 | *margin-left: 96.8549429881274%;
630 | }
631 | .row-fluid .offset11:first-child {
632 | margin-left: 94.1988950276243%;
633 | *margin-left: 94.09251204890089%;
634 | }
635 | .row-fluid .offset10 {
636 | margin-left: 88.39779005524862%;
637 | *margin-left: 88.2914070765252%;
638 | }
639 | .row-fluid .offset10:first-child {
640 | margin-left: 85.6353591160221%;
641 | *margin-left: 85.52897613729868%;
642 | }
643 | .row-fluid .offset9 {
644 | margin-left: 79.8342541436464%;
645 | *margin-left: 79.72787116492299%;
646 | }
647 | .row-fluid .offset9:first-child {
648 | margin-left: 77.07182320441989%;
649 | *margin-left: 76.96544022569647%;
650 | }
651 | .row-fluid .offset8 {
652 | margin-left: 71.2707182320442%;
653 | *margin-left: 71.16433525332079%;
654 | }
655 | .row-fluid .offset8:first-child {
656 | margin-left: 68.50828729281768%;
657 | *margin-left: 68.40190431409427%;
658 | }
659 | .row-fluid .offset7 {
660 | margin-left: 62.70718232044199%;
661 | *margin-left: 62.600799341718584%;
662 | }
663 | .row-fluid .offset7:first-child {
664 | margin-left: 59.94475138121547%;
665 | *margin-left: 59.838368402492065%;
666 | }
667 | .row-fluid .offset6 {
668 | margin-left: 54.14364640883978%;
669 | *margin-left: 54.037263430116376%;
670 | }
671 | .row-fluid .offset6:first-child {
672 | margin-left: 51.38121546961326%;
673 | *margin-left: 51.27483249088986%;
674 | }
675 | .row-fluid .offset5 {
676 | margin-left: 45.58011049723757%;
677 | *margin-left: 45.47372751851417%;
678 | }
679 | .row-fluid .offset5:first-child {
680 | margin-left: 42.81767955801105%;
681 | *margin-left: 42.71129657928765%;
682 | }
683 | .row-fluid .offset4 {
684 | margin-left: 37.01657458563536%;
685 | *margin-left: 36.91019160691196%;
686 | }
687 | .row-fluid .offset4:first-child {
688 | margin-left: 34.25414364640884%;
689 | *margin-left: 34.14776066768544%;
690 | }
691 | .row-fluid .offset3 {
692 | margin-left: 28.45303867403315%;
693 | *margin-left: 28.346655695309746%;
694 | }
695 | .row-fluid .offset3:first-child {
696 | margin-left: 25.69060773480663%;
697 | *margin-left: 25.584224756083227%;
698 | }
699 | .row-fluid .offset2 {
700 | margin-left: 19.88950276243094%;
701 | *margin-left: 19.783119783707537%;
702 | }
703 | .row-fluid .offset2:first-child {
704 | margin-left: 17.12707182320442%;
705 | *margin-left: 17.02068884448102%;
706 | }
707 | .row-fluid .offset1 {
708 | margin-left: 11.32596685082873%;
709 | *margin-left: 11.219583872105325%;
710 | }
711 | .row-fluid .offset1:first-child {
712 | margin-left: 8.56353591160221%;
713 | *margin-left: 8.457152932878806%;
714 | }
715 | input,
716 | textarea,
717 | .uneditable-input {
718 | margin-left: 0;
719 | }
720 | .controls-row [class*="span"] + [class*="span"] {
721 | margin-left: 20px;
722 | }
723 | input.span12,
724 | textarea.span12,
725 | .uneditable-input.span12 {
726 | width: 710px;
727 | }
728 | input.span11,
729 | textarea.span11,
730 | .uneditable-input.span11 {
731 | width: 648px;
732 | }
733 | input.span10,
734 | textarea.span10,
735 | .uneditable-input.span10 {
736 | width: 586px;
737 | }
738 | input.span9,
739 | textarea.span9,
740 | .uneditable-input.span9 {
741 | width: 524px;
742 | }
743 | input.span8,
744 | textarea.span8,
745 | .uneditable-input.span8 {
746 | width: 462px;
747 | }
748 | input.span7,
749 | textarea.span7,
750 | .uneditable-input.span7 {
751 | width: 400px;
752 | }
753 | input.span6,
754 | textarea.span6,
755 | .uneditable-input.span6 {
756 | width: 338px;
757 | }
758 | input.span5,
759 | textarea.span5,
760 | .uneditable-input.span5 {
761 | width: 276px;
762 | }
763 | input.span4,
764 | textarea.span4,
765 | .uneditable-input.span4 {
766 | width: 214px;
767 | }
768 | input.span3,
769 | textarea.span3,
770 | .uneditable-input.span3 {
771 | width: 152px;
772 | }
773 | input.span2,
774 | textarea.span2,
775 | .uneditable-input.span2 {
776 | width: 90px;
777 | }
778 | input.span1,
779 | textarea.span1,
780 | .uneditable-input.span1 {
781 | width: 28px;
782 | }
783 | }
784 |
785 | @media (max-width: 767px) {
786 | body {
787 | padding-right: 20px;
788 | padding-left: 20px;
789 | }
790 | .navbar-fixed-top,
791 | .navbar-fixed-bottom,
792 | .navbar-static-top {
793 | margin-right: -20px;
794 | margin-left: -20px;
795 | }
796 | .container-fluid {
797 | padding: 0;
798 | }
799 | .dl-horizontal dt {
800 | float: none;
801 | width: auto;
802 | clear: none;
803 | text-align: left;
804 | }
805 | .dl-horizontal dd {
806 | margin-left: 0;
807 | }
808 | .container {
809 | width: auto;
810 | }
811 | .row-fluid {
812 | width: 100%;
813 | }
814 | .row,
815 | .thumbnails {
816 | margin-left: 0;
817 | }
818 | .thumbnails > li {
819 | float: none;
820 | margin-left: 0;
821 | }
822 | [class*="span"],
823 | .uneditable-input[class*="span"],
824 | .row-fluid [class*="span"] {
825 | display: block;
826 | float: none;
827 | width: 100%;
828 | margin-left: 0;
829 | -webkit-box-sizing: border-box;
830 | -moz-box-sizing: border-box;
831 | box-sizing: border-box;
832 | }
833 | .span12,
834 | .row-fluid .span12 {
835 | width: 100%;
836 | -webkit-box-sizing: border-box;
837 | -moz-box-sizing: border-box;
838 | box-sizing: border-box;
839 | }
840 | .row-fluid [class*="offset"]:first-child {
841 | margin-left: 0;
842 | }
843 | .input-large,
844 | .input-xlarge,
845 | .input-xxlarge,
846 | input[class*="span"],
847 | select[class*="span"],
848 | textarea[class*="span"],
849 | .uneditable-input {
850 | display: block;
851 | width: 100%;
852 | min-height: 30px;
853 | -webkit-box-sizing: border-box;
854 | -moz-box-sizing: border-box;
855 | box-sizing: border-box;
856 | }
857 | .input-prepend input,
858 | .input-append input,
859 | .input-prepend input[class*="span"],
860 | .input-append input[class*="span"] {
861 | display: inline-block;
862 | width: auto;
863 | }
864 | .controls-row [class*="span"] + [class*="span"] {
865 | margin-left: 0;
866 | }
867 | .modal {
868 | position: fixed;
869 | top: 20px;
870 | right: 20px;
871 | left: 20px;
872 | width: auto;
873 | margin: 0;
874 | }
875 | .modal.fade {
876 | top: -100px;
877 | }
878 | .modal.fade.in {
879 | top: 20px;
880 | }
881 | }
882 |
883 | @media (max-width: 480px) {
884 | .nav-collapse {
885 | -webkit-transform: translate3d(0, 0, 0);
886 | }
887 | .page-header h1 small {
888 | display: block;
889 | line-height: 20px;
890 | }
891 | input[type="checkbox"],
892 | input[type="radio"] {
893 | border: 1px solid #ccc;
894 | }
895 | .form-horizontal .control-label {
896 | float: none;
897 | width: auto;
898 | padding-top: 0;
899 | text-align: left;
900 | }
901 | .form-horizontal .controls {
902 | margin-left: 0;
903 | }
904 | .form-horizontal .control-list {
905 | padding-top: 0;
906 | }
907 | .form-horizontal .form-actions {
908 | padding-right: 10px;
909 | padding-left: 10px;
910 | }
911 | .media .pull-left,
912 | .media .pull-right {
913 | display: block;
914 | float: none;
915 | margin-bottom: 10px;
916 | }
917 | .media-object {
918 | margin-right: 0;
919 | margin-left: 0;
920 | }
921 | .modal {
922 | top: 10px;
923 | right: 10px;
924 | left: 10px;
925 | }
926 | .modal-header .close {
927 | padding: 10px;
928 | margin: -10px;
929 | }
930 | .carousel-caption {
931 | position: static;
932 | }
933 | }
934 |
935 | @media (max-width: 979px) {
936 | body {
937 | padding-top: 0;
938 | }
939 | .navbar-fixed-top,
940 | .navbar-fixed-bottom {
941 | position: static;
942 | }
943 | .navbar-fixed-top {
944 | margin-bottom: 20px;
945 | }
946 | .navbar-fixed-bottom {
947 | margin-top: 20px;
948 | }
949 | .navbar-fixed-top .navbar-inner,
950 | .navbar-fixed-bottom .navbar-inner {
951 | padding: 5px;
952 | }
953 | .navbar .container {
954 | width: auto;
955 | padding: 0;
956 | }
957 | .navbar .brand {
958 | padding-right: 10px;
959 | padding-left: 10px;
960 | margin: 0 0 0 -5px;
961 | }
962 | .nav-collapse {
963 | clear: both;
964 | }
965 | .nav-collapse .nav {
966 | float: none;
967 | margin: 0 0 10px;
968 | }
969 | .nav-collapse .nav > li {
970 | float: none;
971 | }
972 | .nav-collapse .nav > li > a {
973 | margin-bottom: 2px;
974 | }
975 | .nav-collapse .nav > .divider-vertical {
976 | display: none;
977 | }
978 | .nav-collapse .nav .nav-header {
979 | color: #777777;
980 | text-shadow: none;
981 | }
982 | .nav-collapse .nav > li > a,
983 | .nav-collapse .dropdown-menu a {
984 | padding: 9px 15px;
985 | font-weight: bold;
986 | color: #777777;
987 | -webkit-border-radius: 3px;
988 | -moz-border-radius: 3px;
989 | border-radius: 3px;
990 | }
991 | .nav-collapse .btn {
992 | padding: 4px 10px 4px;
993 | font-weight: normal;
994 | -webkit-border-radius: 4px;
995 | -moz-border-radius: 4px;
996 | border-radius: 4px;
997 | }
998 | .nav-collapse .dropdown-menu li + li a {
999 | margin-bottom: 2px;
1000 | }
1001 | .nav-collapse .nav > li > a:hover,
1002 | .nav-collapse .dropdown-menu a:hover {
1003 | background-color: #f2f2f2;
1004 | }
1005 | .navbar-inverse .nav-collapse .nav > li > a,
1006 | .navbar-inverse .nav-collapse .dropdown-menu a {
1007 | color: #999999;
1008 | }
1009 | .navbar-inverse .nav-collapse .nav > li > a:hover,
1010 | .navbar-inverse .nav-collapse .dropdown-menu a:hover {
1011 | background-color: #111111;
1012 | }
1013 | .nav-collapse.in .btn-group {
1014 | padding: 0;
1015 | margin-top: 5px;
1016 | }
1017 | .nav-collapse .dropdown-menu {
1018 | position: static;
1019 | top: auto;
1020 | left: auto;
1021 | display: none;
1022 | float: none;
1023 | max-width: none;
1024 | padding: 0;
1025 | margin: 0 15px;
1026 | background-color: transparent;
1027 | border: none;
1028 | -webkit-border-radius: 0;
1029 | -moz-border-radius: 0;
1030 | border-radius: 0;
1031 | -webkit-box-shadow: none;
1032 | -moz-box-shadow: none;
1033 | box-shadow: none;
1034 | }
1035 | .nav-collapse .open > .dropdown-menu {
1036 | display: block;
1037 | }
1038 | .nav-collapse .dropdown-menu:before,
1039 | .nav-collapse .dropdown-menu:after {
1040 | display: none;
1041 | }
1042 | .nav-collapse .dropdown-menu .divider {
1043 | display: none;
1044 | }
1045 | .nav-collapse .nav > li > .dropdown-menu:before,
1046 | .nav-collapse .nav > li > .dropdown-menu:after {
1047 | display: none;
1048 | }
1049 | .nav-collapse .navbar-form,
1050 | .nav-collapse .navbar-search {
1051 | float: none;
1052 | padding: 10px 15px;
1053 | margin: 10px 0;
1054 | border-top: 1px solid #f2f2f2;
1055 | border-bottom: 1px solid #f2f2f2;
1056 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1057 | -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1058 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1059 | }
1060 | .navbar-inverse .nav-collapse .navbar-form,
1061 | .navbar-inverse .nav-collapse .navbar-search {
1062 | border-top-color: #111111;
1063 | border-bottom-color: #111111;
1064 | }
1065 | .navbar .nav-collapse .nav.pull-right {
1066 | float: none;
1067 | margin-left: 0;
1068 | }
1069 | .nav-collapse,
1070 | .nav-collapse.collapse {
1071 | height: 0;
1072 | overflow: hidden;
1073 | }
1074 | .navbar .btn-navbar {
1075 | display: block;
1076 | }
1077 | .navbar-static .navbar-inner {
1078 | padding-right: 10px;
1079 | padding-left: 10px;
1080 | }
1081 | }
1082 |
1083 | @media (min-width: 980px) {
1084 | .nav-collapse.collapse {
1085 | height: auto !important;
1086 | overflow: visible !important;
1087 | }
1088 | }
1089 |
--------------------------------------------------------------------------------