From 569373a5dc43322c787ac8d42ae35f34937a3049 Mon Sep 17 00:00:00 2001 From: Alexander Borzunov Date: Tue, 1 Sep 2015 14:54:22 +0500 Subject: [PATCH] Import Swift theme for Jekyll --- .gitignore | 2 + LICENSE | 23 + _config.yml | 44 + _includes/author_block.html | 57 + _includes/endfooter.html | 8 + _includes/footer.html | 50 + _includes/head.html | 14 + _includes/header.html | 37 + _includes/include_js.html | 32 + _includes/sharer.html | 36 + _layouts/category_archive.html | 15 + _layouts/default.html | 41 + _layouts/page.html | 17 + _layouts/post.html | 27 + _posts/2014-09-09-example.markdown | 49 + _sass/_base.scss | 7488 ++++++++++++++++++++++++++++ _sass/_layout.scss | 164 + _sass/_syntax-highlighting.scss | 115 + atom.xml | 30 + contribute.md | 8 + css/main.scss | 52 + donate.md | 8 + favicon.png | Bin 0 -> 1031 bytes gitignore | 2 + images/swift.png | Bin 0 -> 47865 bytes index.html | 55 +- js/prettify.js | 1655 ++++++ sitemap.xml | 31 + 28 files changed, 10059 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 _config.yml create mode 100644 _includes/author_block.html create mode 100644 _includes/endfooter.html create mode 100644 _includes/footer.html create mode 100644 _includes/head.html create mode 100644 _includes/header.html create mode 100644 _includes/include_js.html create mode 100644 _includes/sharer.html create mode 100644 _layouts/category_archive.html create mode 100644 _layouts/default.html create mode 100644 _layouts/page.html create mode 100644 _layouts/post.html create mode 100644 _posts/2014-09-09-example.markdown create mode 100644 _sass/_base.scss create mode 100644 _sass/_layout.scss create mode 100644 _sass/_syntax-highlighting.scss create mode 100644 atom.xml create mode 100644 contribute.md create mode 100755 css/main.scss create mode 100644 donate.md create mode 100644 favicon.png create mode 100644 gitignore create mode 100644 images/swift.png create mode 100644 js/prettify.js create mode 100644 sitemap.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..badbc02 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +_site +.sass-cache diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..682d453 --- /dev/null +++ b/LICENSE @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright for Swift theme for Jekyll (c) 2014 Pranav Raj S +Copyright for other parts of the website (c) 2015 "Destructive Voice" team members + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..3d9f2c8 --- /dev/null +++ b/_config.yml @@ -0,0 +1,44 @@ +# Site settings +title: Swift +description: A clean minimal Theme for Jekyll +email: pranav@maangalabs.com +baseurl: /dvteam.org +#url: "http://localhost:4000" # the base hostname & protocol for your site +#favicon +favicon: /favicon.png + +#feed +feedburner_username: maangalabs +#twitter +twitter_username: pranavrajs +github_username: pranavrajs + +#linkedin +linkedin_username: pranavrajs + +#google analytics +google_analytics_id : UA-53386152-2 +#gplus +gplus_username: 101893920934936418705 + +#fb_username +fb_username: pranav.tayberrycreative + +#permalink /blog/2014/11/11/this-is-a-sample-post +permalink: /blog/:year/:month/:day/:title +# Build settings +markdown: kramdown + +#Disqus configuration +disqus_short_name: maangalabscom +disqus_show_comment_count: true + +#Can be used for multiple author blogs ! Add name to post For more visit the sample +authors: + pranavrajs: + display_name: Pranav Raj S + email: pranavrajs@gmail.com + fb: pranav.tayberrycreative + linkedin: pranavrajs + twitter: pranavrajs + github: pranavrajs diff --git a/_includes/author_block.html b/_includes/author_block.html new file mode 100644 index 0000000..1927dcb --- /dev/null +++ b/_includes/author_block.html @@ -0,0 +1,57 @@ +{% assign author = site.authors[page.author] %} + +{% if author %} +
+
+
+
+

Written by {{ author.display_name }}

+
+
+
    +
  • +
  • +
  • +
  • +
  • +
+
+
+ + {% if page.github_repo_username %} + + {% endif %} + +
+
+
+
+{% endif %} +{% if page.comments %} +
+ + +{% endif %} + \ No newline at end of file diff --git a/_includes/endfooter.html b/_includes/endfooter.html new file mode 100644 index 0000000..a641759 --- /dev/null +++ b/_includes/endfooter.html @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..62c35a9 --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,50 @@ + + + diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..2e7e9c2 --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,14 @@ + + + + + + {% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %} + + + + + + + + diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..565c502 --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,37 @@ + diff --git a/_includes/include_js.html b/_includes/include_js.html new file mode 100644 index 0000000..3ec08a5 --- /dev/null +++ b/_includes/include_js.html @@ -0,0 +1,32 @@ + + + + + + + \ No newline at end of file diff --git a/_includes/sharer.html b/_includes/sharer.html new file mode 100644 index 0000000..dba32fe --- /dev/null +++ b/_includes/sharer.html @@ -0,0 +1,36 @@ +{% if site.fb_username %} +
+
+ +
+
+{% endif %} + +{% if site.twitter_username %} +
+ + +
+{% endif %} + +{% if site.linkedin_username %} +
+ + +
+{% endif %} + +{% if site.gplus_username %} +
+ +
+
+{% endif %} \ No newline at end of file diff --git a/_layouts/category_archive.html b/_layouts/category_archive.html new file mode 100644 index 0000000..1432112 --- /dev/null +++ b/_layouts/category_archive.html @@ -0,0 +1,15 @@ +--- +layout: default +--- +
+
+
+ + +

Category archive for {{ page.category }}

+
+ {{ content }} +
+
+
+
diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..8451216 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,41 @@ + + + + {% include head.html %} + + + {% include header.html %} + +
+ +
+
+
+ +

{{site.title}}

+

{{site.description}}

+
+
+
+
+
+ {{ content }} +
+
+
+
+ {% include sharer.html %} +
+
+
+
+ {% include footer.html %} +
+
+ {% include endfooter.html %} +
+ {% include include_js.html %} + + + + diff --git a/_layouts/page.html b/_layouts/page.html new file mode 100644 index 0000000..abde005 --- /dev/null +++ b/_layouts/page.html @@ -0,0 +1,17 @@ +--- +layout: default +--- +
+
+
+ + +

{{ page.title }}

+ + +
+ {{ content }} +
+
+
+
\ No newline at end of file diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..ba5caaf --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,27 @@ +--- +layout: default +--- +
+
+
+ + +

{{ page.title }}

+
+ + + + +
+ {{ content }} +
+ + + {% include author_block.html %} +
+
+
\ No newline at end of file diff --git a/_posts/2014-09-09-example.markdown b/_posts/2014-09-09-example.markdown new file mode 100644 index 0000000..5a7c4b4 --- /dev/null +++ b/_posts/2014-09-09-example.markdown @@ -0,0 +1,49 @@ +--- +layout: post +title: "Example" +date: 2014-09-09 22:37:00 +05:30 +categories: example +author: pranavrajs +github_repo_username: pranavrajs +github_repo : swift +comments: true +--- + +This is a sample post to denote the features of Swift theme . The theme consists of various share plugins , feedburner support , sitemap generation etc. You can configure the blog in similar way you use a word press blog + + + +**Basic** + +Neque porro *quisquam* est, qui **dolorem** ipsum, quia ***dolor*** sit, amet, [consectetur](http://cjdns.info/), adipisci velit. + + * lorem + * ipsum + +1. dolor +2. sit + + +**Blockquote** + +> They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety. +> +> _Benjamin Franklin_ + +**Code** + +{% highlight c %} + +static void asyncEnabled(Dict* args, void* vAdmin, String* txid, struct Allocator* requestAlloc) +{ + struct Admin* admin = Identity_check((struct Admin*) vAdmin); + int64_t enabled = admin->asyncEnabled; + Dict d = Dict_CONST(String_CONST("asyncEnabled"), Int_OBJ(enabled), NULL); + Admin_sendMessage(&d, txid, admin); +} + +{% endhighlight %} + +**Image** + +![ThisIsADemoPhoto](http://media.vector4free.com/normal/flat-banner-vectors.jpg) diff --git a/_sass/_base.scss b/_sass/_base.scss new file mode 100644 index 0000000..8d749fe --- /dev/null +++ b/_sass/_base.scss @@ -0,0 +1,7488 @@ +@import url("//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,700"); + +/*! + * Bootswatch v3.2.0 + * Homepage: http://bootswatch.com + * Copyright 2012-2014 Thomas Park + * Licensed under MIT + * Based on Bootstrap +*/ + +/*! normalize.css v3.0.1 | MIT License | git.io/normalize */ + +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { + display: block; +} + +audio, canvas, progress, video { + display: inline-block; + vertical-align: baseline; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden], template { + display: none; +} + +a { + background: transparent; + &:active, &:hover { + outline: 0; + } +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +mark { + background: #ff0; + color: #000; +} + +small { + font-size: 80%; +} + +sub { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 1em 40px; +} + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +pre { + overflow: auto; +} + +code, kbd, pre, samp { + font-family: monospace, monospace; + font-size: 1em; +} + +button, input, optgroup, select, textarea { + color: inherit; + font: inherit; + margin: 0; +} + +button { + overflow: visible; + text-transform: none; +} + +select { + text-transform: none; +} + +button, html input[type="button"] { + -webkit-appearance: button; + cursor: pointer; +} + +input { + &[type="reset"], &[type="submit"] { + -webkit-appearance: button; + cursor: pointer; + } +} + +button[disabled], html input[disabled] { + cursor: default; +} + +button::-moz-focus-inner { + border: 0; + padding: 0; +} + +input { + &::-moz-focus-inner { + border: 0; + padding: 0; + } + line-height: normal; + &[type="checkbox"], &[type="radio"] { + box-sizing: border-box; + padding: 0; + } + &[type="number"] { + &::-webkit-inner-spin-button, &::-webkit-outer-spin-button { + height: auto; + } + } + &[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; + &::-webkit-search-cancel-button, &::-webkit-search-decoration { + -webkit-appearance: none; + } + } +} + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +legend { + border: 0; + padding: 0; +} + +textarea { + overflow: auto; +} + +optgroup { + font-weight: bold; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, th { + padding: 0; +} + +@media print { + * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + a { + text-decoration: underline; + &:visited { + text-decoration: underline; + } + &[href]:after { + content: " (" attr(href) ")"; + } + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a { + &[href^="javascript:"]:after, &[href^="#"]:after { + content: ""; + } + } + pre, blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr { + page-break-inside: avoid; + } + img { + page-break-inside: avoid; + max-width: 100% !important; + } + p, h2, h3 { + orphans: 3; + widows: 3; + } + h2, h3 { + page-break-after: avoid; + } + select { + background: #fff !important; + } + .navbar { + display: none; + } + .table { + td, th { + background-color: #fff !important; + } + } + .btn > .caret, .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table-bordered { + th, td { + border: 1px solid #ddd !important; + } + } +} + +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format("embedded-opentype"), url('../fonts/glyphicons-halflings-regular.woff') format("woff"), url('../fonts/glyphicons-halflings-regular.ttf') format("truetype"), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format("svg"); +} + + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.glyphicon-asterisk:before { + content: "\2a"; +} + +.glyphicon-plus:before { + content: "\2b"; +} + +.glyphicon-euro:before { + content: "\20ac"; +} + +.glyphicon-minus:before { + content: "\2212"; +} + +.glyphicon-cloud:before { + content: "\2601"; +} + +.glyphicon-envelope:before { + content: "\2709"; +} + +.glyphicon-pencil:before { + content: "\270f"; +} + +.glyphicon-glass:before { + content: "\e001"; +} + +.glyphicon-music:before { + content: "\e002"; +} + +.glyphicon-search:before { + content: "\e003"; +} + +.glyphicon-heart:before { + content: "\e005"; +} + +.glyphicon-star:before { + content: "\e006"; +} + +.glyphicon-star-empty:before { + content: "\e007"; +} + +.glyphicon-user:before { + content: "\e008"; +} + +.glyphicon-film:before { + content: "\e009"; +} + +.glyphicon-th-large:before { + content: "\e010"; +} + +.glyphicon-th:before { + content: "\e011"; +} + +.glyphicon-th-list:before { + content: "\e012"; +} + +.glyphicon-ok:before { + content: "\e013"; +} + +.glyphicon-remove:before { + content: "\e014"; +} + +.glyphicon-zoom-in:before { + content: "\e015"; +} + +.glyphicon-zoom-out:before { + content: "\e016"; +} + +.glyphicon-off:before { + content: "\e017"; +} + +.glyphicon-signal:before { + content: "\e018"; +} + +.glyphicon-cog:before { + content: "\e019"; +} + +.glyphicon-trash:before { + content: "\e020"; +} + +.glyphicon-home:before { + content: "\e021"; +} + +.glyphicon-file:before { + content: "\e022"; +} + +.glyphicon-time:before { + content: "\e023"; +} + +.glyphicon-road:before { + content: "\e024"; +} + +.glyphicon-download-alt:before { + content: "\e025"; +} + +.glyphicon-download:before { + content: "\e026"; +} + +.glyphicon-upload:before { + content: "\e027"; +} + +.glyphicon-inbox:before { + content: "\e028"; +} + +.glyphicon-play-circle:before { + content: "\e029"; +} + +.glyphicon-repeat:before { + content: "\e030"; +} + +.glyphicon-refresh:before { + content: "\e031"; +} + +.glyphicon-list-alt:before { + content: "\e032"; +} + +.glyphicon-lock:before { + content: "\e033"; +} + +.glyphicon-flag:before { + content: "\e034"; +} + +.glyphicon-headphones:before { + content: "\e035"; +} + +.glyphicon-volume-off:before { + content: "\e036"; +} + +.glyphicon-volume-down:before { + content: "\e037"; +} + +.glyphicon-volume-up:before { + content: "\e038"; +} + +.glyphicon-qrcode:before { + content: "\e039"; +} + +.glyphicon-barcode:before { + content: "\e040"; +} + +.glyphicon-tag:before { + content: "\e041"; +} + +.glyphicon-tags:before { + content: "\e042"; +} + +.glyphicon-book:before { + content: "\e043"; +} + +.glyphicon-bookmark:before { + content: "\e044"; +} + +.glyphicon-print:before { + content: "\e045"; +} + +.glyphicon-camera:before { + content: "\e046"; +} + +.glyphicon-font:before { + content: "\e047"; +} + +.glyphicon-bold:before { + content: "\e048"; +} + +.glyphicon-italic:before { + content: "\e049"; +} + +.glyphicon-text-height:before { + content: "\e050"; +} + +.glyphicon-text-width:before { + content: "\e051"; +} + +.glyphicon-align-left:before { + content: "\e052"; +} + +.glyphicon-align-center:before { + content: "\e053"; +} + +.glyphicon-align-right:before { + content: "\e054"; +} + +.glyphicon-align-justify:before { + content: "\e055"; +} + +.glyphicon-list:before { + content: "\e056"; +} + +.glyphicon-indent-left:before { + content: "\e057"; +} + +.glyphicon-indent-right:before { + content: "\e058"; +} + +.glyphicon-facetime-video:before { + content: "\e059"; +} + +.glyphicon-picture:before { + content: "\e060"; +} + +.glyphicon-map-marker:before { + content: "\e062"; +} + +.glyphicon-adjust:before { + content: "\e063"; +} + +.glyphicon-tint:before { + content: "\e064"; +} + +.glyphicon-edit:before { + content: "\e065"; +} + +.glyphicon-share:before { + content: "\e066"; +} + +.glyphicon-check:before { + content: "\e067"; +} + +.glyphicon-move:before { + content: "\e068"; +} + +.glyphicon-step-backward:before { + content: "\e069"; +} + +.glyphicon-fast-backward:before { + content: "\e070"; +} + +.glyphicon-backward:before { + content: "\e071"; +} + +.glyphicon-play:before { + content: "\e072"; +} + +.glyphicon-pause:before { + content: "\e073"; +} + +.glyphicon-stop:before { + content: "\e074"; +} + +.glyphicon-forward:before { + content: "\e075"; +} + +.glyphicon-fast-forward:before { + content: "\e076"; +} + +.glyphicon-step-forward:before { + content: "\e077"; +} + +.glyphicon-eject:before { + content: "\e078"; +} + +.glyphicon-chevron-left:before { + content: "\e079"; +} + +.glyphicon-chevron-right:before { + content: "\e080"; +} + +.glyphicon-plus-sign:before { + content: "\e081"; +} + +.glyphicon-minus-sign:before { + content: "\e082"; +} + +.glyphicon-remove-sign:before { + content: "\e083"; +} + +.glyphicon-ok-sign:before { + content: "\e084"; +} + +.glyphicon-question-sign:before { + content: "\e085"; +} + +.glyphicon-info-sign:before { + content: "\e086"; +} + +.glyphicon-screenshot:before { + content: "\e087"; +} + +.glyphicon-remove-circle:before { + content: "\e088"; +} + +.glyphicon-ok-circle:before { + content: "\e089"; +} + +.glyphicon-ban-circle:before { + content: "\e090"; +} + +.glyphicon-arrow-left:before { + content: "\e091"; +} + +.glyphicon-arrow-right:before { + content: "\e092"; +} + +.glyphicon-arrow-up:before { + content: "\e093"; +} + +.glyphicon-arrow-down:before { + content: "\e094"; +} + +.glyphicon-share-alt:before { + content: "\e095"; +} + +.glyphicon-resize-full:before { + content: "\e096"; +} + +.glyphicon-resize-small:before { + content: "\e097"; +} + +.glyphicon-exclamation-sign:before { + content: "\e101"; +} + +.glyphicon-gift:before { + content: "\e102"; +} + +.glyphicon-leaf:before { + content: "\e103"; +} + +.glyphicon-fire:before { + content: "\e104"; +} + +.glyphicon-eye-open:before { + content: "\e105"; +} + +.glyphicon-eye-close:before { + content: "\e106"; +} + +.glyphicon-warning-sign:before { + content: "\e107"; +} + +.glyphicon-plane:before { + content: "\e108"; +} + +.glyphicon-calendar:before { + content: "\e109"; +} + +.glyphicon-random:before { + content: "\e110"; +} + +.glyphicon-comment:before { + content: "\e111"; +} + +.glyphicon-magnet:before { + content: "\e112"; +} + +.glyphicon-chevron-up:before { + content: "\e113"; +} + +.glyphicon-chevron-down:before { + content: "\e114"; +} + +.glyphicon-retweet:before { + content: "\e115"; +} + +.glyphicon-shopping-cart:before { + content: "\e116"; +} + +.glyphicon-folder-close:before { + content: "\e117"; +} + +.glyphicon-folder-open:before { + content: "\e118"; +} + +.glyphicon-resize-vertical:before { + content: "\e119"; +} + +.glyphicon-resize-horizontal:before { + content: "\e120"; +} + +.glyphicon-hdd:before { + content: "\e121"; +} + +.glyphicon-bullhorn:before { + content: "\e122"; +} + +.glyphicon-bell:before { + content: "\e123"; +} + +.glyphicon-certificate:before { + content: "\e124"; +} + +.glyphicon-thumbs-up:before { + content: "\e125"; +} + +.glyphicon-thumbs-down:before { + content: "\e126"; +} + +.glyphicon-hand-right:before { + content: "\e127"; +} + +.glyphicon-hand-left:before { + content: "\e128"; +} + +.glyphicon-hand-up:before { + content: "\e129"; +} + +.glyphicon-hand-down:before { + content: "\e130"; +} + +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} + +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} + +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} + +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} + +.glyphicon-globe:before { + content: "\e135"; +} + +.glyphicon-wrench:before { + content: "\e136"; +} + +.glyphicon-tasks:before { + content: "\e137"; +} + +.glyphicon-filter:before { + content: "\e138"; +} + +.glyphicon-briefcase:before { + content: "\e139"; +} + +.glyphicon-fullscreen:before { + content: "\e140"; +} + +.glyphicon-dashboard:before { + content: "\e141"; +} + +.glyphicon-paperclip:before { + content: "\e142"; +} + +.glyphicon-heart-empty:before { + content: "\e143"; +} + +.glyphicon-link:before { + content: "\e144"; +} + +.glyphicon-phone:before { + content: "\e145"; +} + +.glyphicon-pushpin:before { + content: "\e146"; +} + +.glyphicon-usd:before { + content: "\e148"; +} + +.glyphicon-gbp:before { + content: "\e149"; +} + +.glyphicon-sort:before { + content: "\e150"; +} + +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} + +.glyphicon-sort-by-order:before { + content: "\e153"; +} + +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} + +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} + +.glyphicon-unchecked:before { + content: "\e157"; +} + +.glyphicon-expand:before { + content: "\e158"; +} + +.glyphicon-collapse-down:before { + content: "\e159"; +} + +.glyphicon-collapse-up:before { + content: "\e160"; +} + +.glyphicon-log-in:before { + content: "\e161"; +} + +.glyphicon-flash:before { + content: "\e162"; +} + +.glyphicon-log-out:before { + content: "\e163"; +} + +.glyphicon-new-window:before { + content: "\e164"; +} + +.glyphicon-record:before { + content: "\e165"; +} + +.glyphicon-save:before { + content: "\e166"; +} + +.glyphicon-open:before { + content: "\e167"; +} + +.glyphicon-saved:before { + content: "\e168"; +} + +.glyphicon-import:before { + content: "\e169"; +} + +.glyphicon-export:before { + content: "\e170"; +} + +.glyphicon-send:before { + content: "\e171"; +} + +.glyphicon-floppy-disk:before { + content: "\e172"; +} + +.glyphicon-floppy-saved:before { + content: "\e173"; +} + +.glyphicon-floppy-remove:before { + content: "\e174"; +} + +.glyphicon-floppy-save:before { + content: "\e175"; +} + +.glyphicon-floppy-open:before { + content: "\e176"; +} + +.glyphicon-credit-card:before { + content: "\e177"; +} + +.glyphicon-transfer:before { + content: "\e178"; +} + +.glyphicon-cutlery:before { + content: "\e179"; +} + +.glyphicon-header:before { + content: "\e180"; +} + +.glyphicon-compressed:before { + content: "\e181"; +} + +.glyphicon-earphone:before { + content: "\e182"; +} + +.glyphicon-phone-alt:before { + content: "\e183"; +} + +.glyphicon-tower:before { + content: "\e184"; +} + +.glyphicon-stats:before { + content: "\e185"; +} + +.glyphicon-sd-video:before { + content: "\e186"; +} + +.glyphicon-hd-video:before { + content: "\e187"; +} + +.glyphicon-subtitles:before { + content: "\e188"; +} + +.glyphicon-sound-stereo:before { + content: "\e189"; +} + +.glyphicon-sound-dolby:before { + content: "\e190"; +} + +.glyphicon-sound-5-1:before { + content: "\e191"; +} + +.glyphicon-sound-6-1:before { + content: "\e192"; +} + +.glyphicon-sound-7-1:before { + content: "\e193"; +} + +.glyphicon-copyright-mark:before { + content: "\e194"; +} + +.glyphicon-registration-mark:before { + content: "\e195"; +} + +.glyphicon-cloud-download:before { + content: "\e197"; +} + +.glyphicon-cloud-upload:before { + content: "\e198"; +} + +.glyphicon-tree-conifer:before { + content: "\e199"; +} + +.glyphicon-tree-deciduous:before { + content: "\e200"; +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + &:before, &:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } +} + +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +body { + font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; + font-size: 15px; + line-height: 1.42857143; + color: #222222; + background-color: #ffffff; +} + +input, button, select, textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +a { + color: #008cba; + text-decoration: none; + &:hover { + color: #00526e; + text-decoration: underline; + } + &:focus { + color: #00526e; + text-decoration: underline; + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + } +} + +figure { + margin: 0; +} + +img { + vertical-align: middle; +} + +.img-responsive { + display: block; + width: 100% \9; + max-width: 100%; + height: auto; +} + +.thumbnail { + > img, a > img { + display: block; + width: 100% \9; + max-width: 100%; + height: auto; + } +} + +.carousel-inner > .item > { + img, a > img { + display: block; + width: 100% \9; + max-width: 100%; + height: auto; + } +} + +.img-rounded { + border-radius: 0; +} + +.img-thumbnail { + padding: 4px; + line-height: 1.42857143; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 0; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; + display: inline-block; + width: 100% \9; + max-width: 100%; + height: auto; +} + +.img-circle { + border-radius: 50%; +} + +hr { + margin-top: 21px; + margin-bottom: 21px; + border: 0; + border-top: 1px solid #dddddd; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +.sr-only-focusable { + &:active, &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} + +h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { + font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; + font-weight: 300; + line-height: 1.1; + color: inherit; +} + +h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, .h1, h2, .h2, h3, .h3 { + margin-top: 21px; + margin-bottom: 10.5px; +} + +h1 small, .h1 small, h2 small, .h2 small, h3 small, .h3 small, h1 .small, .h1 .small, h2 .small, .h2 .small, h3 .small, .h3 .small { + font-size: 65%; +} + +h4, .h4, h5, .h5, h6, .h6 { + margin-top: 10.5px; + margin-bottom: 10.5px; +} + +h4 small, .h4 small, h5 small, .h5 small, h6 small, .h6 small, h4 .small, .h4 .small, h5 .small, .h5 .small, h6 .small, .h6 .small { + font-size: 75%; +} + +h1, .h1 { + font-size: 39px; +} + +h2, .h2 { + font-size: 32px; +} + +h3, .h3 { + font-size: 26px; +} + +h4, .h4 { + font-size: 19px; +} + +h5, .h5 { + font-size: 15px; +} + +h6, .h6 { + font-size: 13px; +} + +p { + margin: 0 0 10.5px; +} + +.lead { + margin-bottom: 21px; + font-size: 17px; + font-weight: 300; + line-height: 1.4; +} + +@media (min-width: 768px) { + .lead { + font-size: 22.5px; + } +} + +small, .small { + font-size: 80%; +} + +cite { + font-style: normal; +} + +mark, .mark { + background-color: #fcf8e3; + padding: .2em; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +.text-justify { + text-align: justify; +} + +.text-nowrap { + white-space: nowrap; +} + +.text-lowercase { + text-transform: lowercase; +} + +.text-uppercase { + text-transform: uppercase; +} + +.text-capitalize { + text-transform: capitalize; +} + +.text-muted { + color: #999999; +} + +.text-primary { + color: #008cba; +} + +a.text-primary:hover { + color: #006687; +} + +.text-success { + color: #43ac6a; +} + +a.text-success:hover { + color: #358753; +} + +.text-info { + color: #5bc0de; +} + +a.text-info:hover { + color: #31b0d5; +} + +.text-warning { + color: #e99002; +} + +a.text-warning:hover { + color: #b67102; +} + +.text-danger { + color: #f04124; +} + +a.text-danger:hover { + color: #d32a0e; +} + +.bg-primary { + color: #fff; + background-color: #008cba; +} + +a.bg-primary:hover { + background-color: #006687; +} + +.bg-success { + background-color: #dff0d8; +} + +a.bg-success:hover { + background-color: #c1e2b3; +} + +.bg-info { + background-color: #d9edf7; +} + +a.bg-info:hover { + background-color: #afd9ee; +} + +.bg-warning { + background-color: #fcf8e3; +} + +a.bg-warning:hover { + background-color: #f7ecb5; +} + +.bg-danger { + background-color: #f2dede; +} + +a.bg-danger:hover { + background-color: #e4b9b9; +} + +.page-header { + padding-bottom: 9.5px; + margin: 42px 0 21px; + border-bottom: 1px solid #dddddd; +} + +ul, ol { + margin-top: 0; + margin-bottom: 10.5px; +} + +ul ul, ol ul, ul ol, ol ol { + margin-bottom: 0; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; + margin-left: -5px; + > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; + } +} + +dl { + margin-top: 0; + margin-bottom: 21px; +} + +dt, dd { + line-height: 1.42857143; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 0; +} + +@media (min-width: 768px) { + .dl-horizontal { + dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + dd { + margin-left: 180px; + } + } +} + +abbr { + &[title], &[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; + } +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 10.5px 21px; + margin: 0 0 21px; + font-size: 18.75px; + border-left: 5px solid #dddddd; + p:last-child, ul:last-child, ol:last-child { + margin-bottom: 0; + } + footer, small, .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #6f6f6f; + } + footer:before, small:before, .small:before { + content: '\2014 \00A0'; + } +} + +.blockquote-reverse, blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #dddddd; + border-left: 0; + text-align: right; +} + +.blockquote-reverse footer:before, blockquote.pull-right footer:before, .blockquote-reverse small:before, blockquote.pull-right small:before, .blockquote-reverse .small:before, blockquote.pull-right .small:before { + content: ''; +} + +.blockquote-reverse footer:after, blockquote.pull-right footer:after, .blockquote-reverse small:after, blockquote.pull-right small:after, .blockquote-reverse .small:after { + content: '\00A0 \2014'; +} + +blockquote { + &.pull-right .small:after { + content: '\00A0 \2014'; + } + &:before, &:after { + content: ""; + } +} + +address { + margin-bottom: 21px; + font-style: normal; + line-height: 1.42857143; +} + +code, kbd, pre, samp { + font-family: Menlo,Monaco,Consolas,"Courier New",monospace; +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 0; +} + +kbd { + padding: 2px 4px; + font-size: 90%; + color: #ffffff; + background-color: #333333; + border-radius: 0; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); + kbd { + padding: 0; + font-size: 100%; + box-shadow: none; + } +} + +pre { + display: block; + padding: 10px; + margin: 0 0 10.5px; + font-size: 14px; + line-height: 1.42857143; + word-break: break-all; + color: #333333; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 0; + code { + padding: 0; + font-size: inherit; + color: inherit; + background-color: transparent; + border-radius: 0; + } +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container, .container-fluid { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} + +@media (min-width: 768px) { + .container { + width: 750px; + } +} + +@media (min-width: 992px) { + .container { + width: 970px; + } +} + +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} + +.row { + margin-left: -15px; + margin-right: -15px; +} + +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; +} + +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11 { + float: left; +} + +.col-xs-12 { + float: left; + width: 100%; +} + +.col-xs-11 { + width: 91.66666667%; +} + +.col-xs-10 { + width: 83.33333333%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-8 { + width: 66.66666667%; +} + +.col-xs-7 { + width: 58.33333333%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-5 { + width: 41.66666667%; +} + +.col-xs-4 { + width: 33.33333333%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-2 { + width: 16.66666667%; +} + +.col-xs-1 { + width: 8.33333333%; +} + +.col-xs-pull-12 { + right: 100%; +} + +.col-xs-pull-11 { + right: 91.66666667%; +} + +.col-xs-pull-10 { + right: 83.33333333%; +} + +.col-xs-pull-9 { + right: 75%; +} + +.col-xs-pull-8 { + right: 66.66666667%; +} + +.col-xs-pull-7 { + right: 58.33333333%; +} + +.col-xs-pull-6 { + right: 50%; +} + +.col-xs-pull-5 { + right: 41.66666667%; +} + +.col-xs-pull-4 { + right: 33.33333333%; +} + +.col-xs-pull-3 { + right: 25%; +} + +.col-xs-pull-2 { + right: 16.66666667%; +} + +.col-xs-pull-1 { + right: 8.33333333%; +} + +.col-xs-pull-0 { + right: auto; +} + +.col-xs-push-12 { + left: 100%; +} + +.col-xs-push-11 { + left: 91.66666667%; +} + +.col-xs-push-10 { + left: 83.33333333%; +} + +.col-xs-push-9 { + left: 75%; +} + +.col-xs-push-8 { + left: 66.66666667%; +} + +.col-xs-push-7 { + left: 58.33333333%; +} + +.col-xs-push-6 { + left: 50%; +} + +.col-xs-push-5 { + left: 41.66666667%; +} + +.col-xs-push-4 { + left: 33.33333333%; +} + +.col-xs-push-3 { + left: 25%; +} + +.col-xs-push-2 { + left: 16.66666667%; +} + +.col-xs-push-1 { + left: 8.33333333%; +} + +.col-xs-push-0 { + left: auto; +} + +.col-xs-offset-12 { + margin-left: 100%; +} + +.col-xs-offset-11 { + margin-left: 91.66666667%; +} + +.col-xs-offset-10 { + margin-left: 83.33333333%; +} + +.col-xs-offset-9 { + margin-left: 75%; +} + +.col-xs-offset-8 { + margin-left: 66.66666667%; +} + +.col-xs-offset-7 { + margin-left: 58.33333333%; +} + +.col-xs-offset-6 { + margin-left: 50%; +} + +.col-xs-offset-5 { + margin-left: 41.66666667%; +} + +.col-xs-offset-4 { + margin-left: 33.33333333%; +} + +.col-xs-offset-3 { + margin-left: 25%; +} + +.col-xs-offset-2 { + margin-left: 16.66666667%; +} + +.col-xs-offset-1 { + margin-left: 8.33333333%; +} + +.col-xs-offset-0 { + margin-left: 0%; +} + +@media (min-width: 768px) { + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11 { + float: left; + } + .col-sm-12 { + float: left; + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0%; + } +} + +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11 { + float: left; + } + .col-md-12 { + /*float: left;*/ + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0%; + } +} + +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11 { + float: left; + } + .col-lg-12 { + float: left; + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0%; + } +} + +table { + background-color: transparent; +} + +th { + text-align: left; +} + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 21px; + > { + thead > tr > th, tbody > tr > th, tfoot > tr > th, thead > tr > td, tbody > tr > td, tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #dddddd; + } + thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; + } + caption + thead > tr:first-child > th, colgroup + thead > tr:first-child > th, thead:first-child > tr:first-child > th, caption + thead > tr:first-child > td, colgroup + thead > tr:first-child > td, thead:first-child > tr:first-child > td { + border-top: 0; + } + tbody + tbody { + border-top: 2px solid #dddddd; + } + } + .table { + background-color: #ffffff; + } +} + +.table-condensed > { + thead > tr > th, tbody > tr > th, tfoot > tr > th, thead > tr > td, tbody > tr > td, tfoot > tr > td { + padding: 5px; + } +} + +.table-bordered { + border: 1px solid #dddddd; + > { + thead > tr > th, tbody > tr > th, tfoot > tr > th, thead > tr > td, tbody > tr > td, tfoot > tr > td { + border: 1px solid #dddddd; + } + thead > tr > { + th, td { + border-bottom-width: 2px; + } + } + } +} + +.table-striped > tbody > tr:nth-child(odd) > { + td, th { + background-color: #f9f9f9; + } +} + +.table-hover > tbody > tr:hover > { + td, th { + background-color: #f5f5f5; + } +} + +table { + col[class*="col-"] { + position: static; + float: none; + display: table-column; + } + td[class*="col-"], th[class*="col-"] { + position: static; + float: none; + display: table-cell; + } +} + +.table > { + thead > tr > td.active, tbody > tr > td.active, tfoot > tr > td.active, thead > tr > th.active, tbody > tr > th.active, tfoot > tr > th.active, thead > tr.active > td, tbody > tr.active > td, tfoot > tr.active > td, thead > tr.active > th, tbody > tr.active > th, tfoot > tr.active > th { + background-color: #f5f5f5; + } +} + +.table-hover > tbody > tr { + > { + td.active:hover, th.active:hover { + background-color: #e8e8e8; + } + } + &.active:hover > td, &:hover > .active, &.active:hover > th { + background-color: #e8e8e8; + } +} + +.table > { + thead > tr > td.success, tbody > tr > td.success, tfoot > tr > td.success, thead > tr > th.success, tbody > tr > th.success, tfoot > tr > th.success, thead > tr.success > td, tbody > tr.success > td, tfoot > tr.success > td, thead > tr.success > th, tbody > tr.success > th, tfoot > tr.success > th { + background-color: #dff0d8; + } +} + +.table-hover > tbody > tr { + > { + td.success:hover, th.success:hover { + background-color: #d0e9c6; + } + } + &.success:hover > td, &:hover > .success, &.success:hover > th { + background-color: #d0e9c6; + } +} + +.table > { + thead > tr > td.info, tbody > tr > td.info, tfoot > tr > td.info, thead > tr > th.info, tbody > tr > th.info, tfoot > tr > th.info, thead > tr.info > td, tbody > tr.info > td, tfoot > tr.info > td, thead > tr.info > th, tbody > tr.info > th, tfoot > tr.info > th { + background-color: #d9edf7; + } +} + +.table-hover > tbody > tr { + > { + td.info:hover, th.info:hover { + background-color: #c4e3f3; + } + } + &.info:hover > td, &:hover > .info, &.info:hover > th { + background-color: #c4e3f3; + } +} + +.table > { + thead > tr > td.warning, tbody > tr > td.warning, tfoot > tr > td.warning, thead > tr > th.warning, tbody > tr > th.warning, tfoot > tr > th.warning, thead > tr.warning > td, tbody > tr.warning > td, tfoot > tr.warning > td, thead > tr.warning > th, tbody > tr.warning > th, tfoot > tr.warning > th { + background-color: #fcf8e3; + } +} + +.table-hover > tbody > tr { + > { + td.warning:hover, th.warning:hover { + background-color: #faf2cc; + } + } + &.warning:hover > td, &:hover > .warning, &.warning:hover > th { + background-color: #faf2cc; + } +} + +.table > { + thead > tr > td.danger, tbody > tr > td.danger, tfoot > tr > td.danger, thead > tr > th.danger, tbody > tr > th.danger, tfoot > tr > th.danger, thead > tr.danger > td, tbody > tr.danger > td, tfoot > tr.danger > td, thead > tr.danger > th, tbody > tr.danger > th, tfoot > tr.danger > th { + background-color: #f2dede; + } +} + +.table-hover > tbody > tr { + > { + td.danger:hover, th.danger:hover { + background-color: #ebcccc; + } + } + &.danger:hover > td, &:hover > .danger, &.danger:hover > th { + background-color: #ebcccc; + } +} + +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15.75px; + overflow-y: hidden; + overflow-x: auto; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #dddddd; + -webkit-overflow-scrolling: touch; + > { + .table { + margin-bottom: 0; + > { + thead > tr > th, tbody > tr > th, tfoot > tr > th, thead > tr > td, tbody > tr > td, tfoot > tr > td { + white-space: nowrap; + } + } + } + .table-bordered { + border: 0; + > { + thead > tr > th:first-child, tbody > tr > th:first-child, tfoot > tr > th:first-child, thead > tr > td:first-child, tbody > tr > td:first-child, tfoot > tr > td:first-child { + border-left: 0; + } + thead > tr > th:last-child, tbody > tr > th:last-child, tfoot > tr > th:last-child, thead > tr > td:last-child, tbody > tr > td:last-child, tfoot > tr > td:last-child { + border-right: 0; + } + tbody > tr:last-child > th, tfoot > tr:last-child > th, tbody > tr:last-child > td, tfoot > tr:last-child > td { + border-bottom: 0; + } + } + } + } + } +} + +fieldset { + padding: 0; + margin: 0; + border: 0; + min-width: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 21px; + font-size: 22.5px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} + +input { + &[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + &[type="radio"], &[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; + } + &[type="file"] { + display: block; + } + &[type="range"] { + display: block; + width: 100%; + } +} + +select { + &[multiple], &[size] { + height: auto; + } +} + +input { + &[type="file"]:focus, &[type="radio"]:focus, &[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + } +} + +output { + display: block; + padding-top: 7px; + font-size: 15px; + line-height: 1.42857143; + color: #6f6f6f; +} + +.form-control { + display: block; + width: 100%; + height: 35px; + padding: 6px 12px; + font-size: 15px; + line-height: 1.42857143; + color: #6f6f6f; + background-color: #ffffff; + background-image: none; + border: 1px solid #cccccc; + border-radius: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + &:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + } + &::-moz-placeholder { + color: #999999; + opacity: 1; + } + &:-ms-input-placeholder, &::-webkit-input-placeholder { + color: #999999; + } + &[disabled], &[readonly] { + cursor: not-allowed; + background-color: #eeeeee; + opacity: 1; + } +} + +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eeeeee; + opacity: 1; +} + +textarea.form-control { + height: auto; +} + +input { + &[type="search"] { + -webkit-appearance: none; + } + &[type="date"], &[type="time"], &[type="datetime-local"], &[type="month"] { + line-height: 35px; + line-height: 1.42857143 \0; + } + &[type="date"].input-sm, &[type="time"].input-sm, &[type="datetime-local"].input-sm, &[type="month"].input-sm { + line-height: 30px; + } + &[type="date"].input-lg, &[type="time"].input-lg, &[type="datetime-local"].input-lg, &[type="month"].input-lg { + line-height: 48px; + } +} + +.form-group { + margin-bottom: 15px; +} + +.radio, .checkbox { + position: relative; + display: block; + min-height: 21px; + margin-top: 10px; + margin-bottom: 10px; +} + +.radio label, .checkbox label { + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} + +.radio input[type="radio"], .radio-inline input[type="radio"], .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] { + position: absolute; + margin-left: -20px; + margin-top: 4px \9; +} + +.radio + .radio, .checkbox + .checkbox { + margin-top: -5px; +} + +.radio-inline, .checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} + +.radio-inline + .radio-inline, .checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} + +input { + &[type="radio"][disabled], &[type="checkbox"][disabled], &[type="radio"].disabled, &[type="checkbox"].disabled { + cursor: not-allowed; + } +} + +fieldset[disabled] input { + &[type="radio"], &[type="checkbox"] { + cursor: not-allowed; + } +} + +.radio-inline.disabled, .checkbox-inline.disabled { + cursor: not-allowed; +} + +fieldset[disabled] { + .radio-inline, .checkbox-inline { + cursor: not-allowed; + } +} + +.radio.disabled label, .checkbox.disabled label { + cursor: not-allowed; +} + +fieldset[disabled] { + .radio label, .checkbox label { + cursor: not-allowed; + } +} + +.form-control-static { + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; + &.input-lg, &.input-sm { + padding-left: 0; + padding-right: 0; + } +} + +.input-sm, .form-horizontal .form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 0; +} + +select.input-sm { + height: 30px; + line-height: 30px; +} + +textarea.input-sm, select[multiple].input-sm { + height: auto; +} + +.input-lg, .form-horizontal .form-group-lg .form-control { + height: 48px; + padding: 10px 16px; + font-size: 19px; + line-height: 1.33; + border-radius: 0; +} + +select.input-lg { + height: 48px; + line-height: 48px; +} + +textarea.input-lg, select[multiple].input-lg { + height: auto; +} + +.has-feedback { + position: relative; + .form-control { + padding-right: 43.75px; + } +} + +.form-control-feedback { + position: absolute; + top: 26px; + right: 0; + z-index: 2; + display: block; + width: 35px; + height: 35px; + line-height: 35px; + text-align: center; +} + +.input-lg + .form-control-feedback { + width: 48px; + height: 48px; + line-height: 48px; +} + +.input-sm + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} + +.has-success { + .help-block, .control-label, .radio, .checkbox, .radio-inline, .checkbox-inline { + color: #43ac6a; + } + .form-control { + border-color: #43ac6a; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + &:focus { + border-color: #358753; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #85d0a1; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #85d0a1; + } + } + .input-group-addon { + color: #43ac6a; + border-color: #43ac6a; + background-color: #dff0d8; + } + .form-control-feedback { + color: #43ac6a; + } +} + +.has-warning { + .help-block, .control-label, .radio, .checkbox, .radio-inline, .checkbox-inline { + color: #e99002; + } + .form-control { + border-color: #e99002; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + &:focus { + border-color: #b67102; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #febc53; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #febc53; + } + } + .input-group-addon { + color: #e99002; + border-color: #e99002; + background-color: #fcf8e3; + } + .form-control-feedback { + color: #e99002; + } +} + +.has-error { + .help-block, .control-label, .radio, .checkbox, .radio-inline, .checkbox-inline { + color: #f04124; + } + .form-control { + border-color: #f04124; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + &:focus { + border-color: #d32a0e; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f79483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f79483; + } + } + .input-group-addon { + color: #f04124; + border-color: #f04124; + background-color: #f2dede; + } + .form-control-feedback { + color: #f04124; + } +} + +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #626262; +} + +@media (min-width: 768px) { + .form-inline { + .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .input-group { + display: inline-table; + vertical-align: middle; + .input-group-addon, .input-group-btn, .form-control { + width: auto; + } + > .form-control { + width: 100%; + } + } + .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .radio, .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .radio label, .checkbox label { + padding-left: 0; + } + .radio input[type="radio"], .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .has-feedback .form-control-feedback { + top: 0; + } + } +} + +.form-horizontal { + .radio, .checkbox, .radio-inline, .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: 7px; + } + .radio, .checkbox { + min-height: 28px; + } + .form-group { + margin-left: -15px; + margin-right: -15px; + } + .has-feedback .form-control-feedback { + top: 0; + right: 15px; + } +} + +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + margin-bottom: 0; + padding-top: 7px; + } +} + +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 14.3px; + } +} + +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + } +} + +.btn { + display: inline-block; + margin-bottom: 0; + font-weight: normal; + text-align: center; + vertical-align: middle; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + padding: 6px 12px; + font-size: 15px; + line-height: 1.42857143; + border-radius: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + &:focus, &:active:focus, &.active:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + } + &:hover, &:focus { + color: #333333; + text-decoration: none; + } + &:active, &.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + } + &.disabled, &[disabled] { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + filter: alpha(opacity = 65); + -webkit-box-shadow: none; + box-shadow: none; + } +} + +fieldset[disabled] .btn { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + filter: alpha(opacity = 65); + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-default { + color: #333333; + background-color: #e7e7e7; + border-color: #dadada; + &:hover, &:focus, &:active, &.active { + color: #333333; + background-color: #cecece; + border-color: #bbbbbb; + } +} + +.open > .dropdown-toggle.btn-default { + color: #333333; + background-color: #cecece; + border-color: #bbbbbb; +} + +.btn-default { + &:active, &.active { + background-image: none; + } +} + +.open > .dropdown-toggle.btn-default { + background-image: none; +} + +.btn-default { + &.disabled, &[disabled] { + background-color: #e7e7e7; + border-color: #dadada; + } +} + +fieldset[disabled] .btn-default { + background-color: #e7e7e7; + border-color: #dadada; +} + +.btn-default { + &.disabled:hover, &[disabled]:hover { + background-color: #e7e7e7; + border-color: #dadada; + } +} + +fieldset[disabled] .btn-default:hover { + background-color: #e7e7e7; + border-color: #dadada; +} + +.btn-default { + &.disabled:focus, &[disabled]:focus { + background-color: #e7e7e7; + border-color: #dadada; + } +} + +fieldset[disabled] .btn-default:focus { + background-color: #e7e7e7; + border-color: #dadada; +} + +.btn-default { + &.disabled:active, &[disabled]:active { + background-color: #e7e7e7; + border-color: #dadada; + } +} + +fieldset[disabled] .btn-default:active { + background-color: #e7e7e7; + border-color: #dadada; +} + +.btn-default { + &.disabled.active, &[disabled].active { + background-color: #e7e7e7; + border-color: #dadada; + } +} + +fieldset[disabled] .btn-default.active { + background-color: #e7e7e7; + border-color: #dadada; +} + +.btn-default .badge { + color: #e7e7e7; + background-color: #333333; +} + +.btn-primary { + color: #ffffff; + background-color: #008cba; + border-color: #0079a1; + &:hover, &:focus, &:active, &.active { + color: #ffffff; + background-color: #006687; + border-color: #004b63; + } +} + +.open > .dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #006687; + border-color: #004b63; +} + +.btn-primary { + &:active, &.active { + background-image: none; + } +} + +.open > .dropdown-toggle.btn-primary { + background-image: none; +} + +.btn-primary { + &.disabled, &[disabled] { + background-color: #008cba; + border-color: #0079a1; + } +} + +fieldset[disabled] .btn-primary { + background-color: #008cba; + border-color: #0079a1; +} + +.btn-primary { + &.disabled:hover, &[disabled]:hover { + background-color: #008cba; + border-color: #0079a1; + } +} + +fieldset[disabled] .btn-primary:hover { + background-color: #008cba; + border-color: #0079a1; +} + +.btn-primary { + &.disabled:focus, &[disabled]:focus { + background-color: #008cba; + border-color: #0079a1; + } +} + +fieldset[disabled] .btn-primary:focus { + background-color: #008cba; + border-color: #0079a1; +} + +.btn-primary { + &.disabled:active, &[disabled]:active { + background-color: #008cba; + border-color: #0079a1; + } +} + +fieldset[disabled] .btn-primary:active { + background-color: #008cba; + border-color: #0079a1; +} + +.btn-primary { + &.disabled.active, &[disabled].active { + background-color: #008cba; + border-color: #0079a1; + } +} + +fieldset[disabled] .btn-primary.active { + background-color: #008cba; + border-color: #0079a1; +} + +.btn-primary .badge { + color: #008cba; + background-color: #ffffff; +} + +.btn-success { + color: #ffffff; + background-color: #43ac6a; + border-color: #3c9a5f; + &:hover, &:focus, &:active, &.active { + color: #ffffff; + background-color: #358753; + border-color: #2b6e44; + } +} + +.open > .dropdown-toggle.btn-success { + color: #ffffff; + background-color: #358753; + border-color: #2b6e44; +} + +.btn-success { + &:active, &.active { + background-image: none; + } +} + +.open > .dropdown-toggle.btn-success { + background-image: none; +} + +.btn-success { + &.disabled, &[disabled] { + background-color: #43ac6a; + border-color: #3c9a5f; + } +} + +fieldset[disabled] .btn-success { + background-color: #43ac6a; + border-color: #3c9a5f; +} + +.btn-success { + &.disabled:hover, &[disabled]:hover { + background-color: #43ac6a; + border-color: #3c9a5f; + } +} + +fieldset[disabled] .btn-success:hover { + background-color: #43ac6a; + border-color: #3c9a5f; +} + +.btn-success { + &.disabled:focus, &[disabled]:focus { + background-color: #43ac6a; + border-color: #3c9a5f; + } +} + +fieldset[disabled] .btn-success:focus { + background-color: #43ac6a; + border-color: #3c9a5f; +} + +.btn-success { + &.disabled:active, &[disabled]:active { + background-color: #43ac6a; + border-color: #3c9a5f; + } +} + +fieldset[disabled] .btn-success:active { + background-color: #43ac6a; + border-color: #3c9a5f; +} + +.btn-success { + &.disabled.active, &[disabled].active { + background-color: #43ac6a; + border-color: #3c9a5f; + } +} + +fieldset[disabled] .btn-success.active { + background-color: #43ac6a; + border-color: #3c9a5f; +} + +.btn-success .badge { + color: #43ac6a; + background-color: #ffffff; +} + +.btn-info { + color: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; + &:hover, &:focus, &:active, &.active { + color: #ffffff; + background-color: #31b0d5; + border-color: #269abc; + } +} + +.open > .dropdown-toggle.btn-info { + color: #ffffff; + background-color: #31b0d5; + border-color: #269abc; +} + +.btn-info { + &:active, &.active { + background-image: none; + } +} + +.open > .dropdown-toggle.btn-info { + background-image: none; +} + +.btn-info { + &.disabled, &[disabled] { + background-color: #5bc0de; + border-color: #46b8da; + } +} + +fieldset[disabled] .btn-info { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info { + &.disabled:hover, &[disabled]:hover { + background-color: #5bc0de; + border-color: #46b8da; + } +} + +fieldset[disabled] .btn-info:hover { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info { + &.disabled:focus, &[disabled]:focus { + background-color: #5bc0de; + border-color: #46b8da; + } +} + +fieldset[disabled] .btn-info:focus { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info { + &.disabled:active, &[disabled]:active { + background-color: #5bc0de; + border-color: #46b8da; + } +} + +fieldset[disabled] .btn-info:active { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info { + &.disabled.active, &[disabled].active { + background-color: #5bc0de; + border-color: #46b8da; + } +} + +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info .badge { + color: #5bc0de; + background-color: #ffffff; +} + +.btn-warning { + color: #ffffff; + background-color: #e99002; + border-color: #d08002; + &:hover, &:focus, &:active, &.active { + color: #ffffff; + background-color: #b67102; + border-color: #935b01; + } +} + +.open > .dropdown-toggle.btn-warning { + color: #ffffff; + background-color: #b67102; + border-color: #935b01; +} + +.btn-warning { + &:active, &.active { + background-image: none; + } +} + +.open > .dropdown-toggle.btn-warning { + background-image: none; +} + +.btn-warning { + &.disabled, &[disabled] { + background-color: #e99002; + border-color: #d08002; + } +} + +fieldset[disabled] .btn-warning { + background-color: #e99002; + border-color: #d08002; +} + +.btn-warning { + &.disabled:hover, &[disabled]:hover { + background-color: #e99002; + border-color: #d08002; + } +} + +fieldset[disabled] .btn-warning:hover { + background-color: #e99002; + border-color: #d08002; +} + +.btn-warning { + &.disabled:focus, &[disabled]:focus { + background-color: #e99002; + border-color: #d08002; + } +} + +fieldset[disabled] .btn-warning:focus { + background-color: #e99002; + border-color: #d08002; +} + +.btn-warning { + &.disabled:active, &[disabled]:active { + background-color: #e99002; + border-color: #d08002; + } +} + +fieldset[disabled] .btn-warning:active { + background-color: #e99002; + border-color: #d08002; +} + +.btn-warning { + &.disabled.active, &[disabled].active { + background-color: #e99002; + border-color: #d08002; + } +} + +fieldset[disabled] .btn-warning.active { + background-color: #e99002; + border-color: #d08002; +} + +.btn-warning .badge { + color: #e99002; + background-color: #ffffff; +} + +.btn-danger { + color: #ffffff; + background-color: #f04124; + border-color: #ea2f10; + &:hover, &:focus, &:active, &.active { + color: #ffffff; + background-color: #d32a0e; + border-color: #b1240c; + } +} + +.open > .dropdown-toggle.btn-danger { + color: #ffffff; + background-color: #d32a0e; + border-color: #b1240c; +} + +.btn-danger { + &:active, &.active { + background-image: none; + } +} + +.open > .dropdown-toggle.btn-danger { + background-image: none; +} + +.btn-danger { + &.disabled, &[disabled] { + background-color: #f04124; + border-color: #ea2f10; + } +} + +fieldset[disabled] .btn-danger { + background-color: #f04124; + border-color: #ea2f10; +} + +.btn-danger { + &.disabled:hover, &[disabled]:hover { + background-color: #f04124; + border-color: #ea2f10; + } +} + +fieldset[disabled] .btn-danger:hover { + background-color: #f04124; + border-color: #ea2f10; +} + +.btn-danger { + &.disabled:focus, &[disabled]:focus { + background-color: #f04124; + border-color: #ea2f10; + } +} + +fieldset[disabled] .btn-danger:focus { + background-color: #f04124; + border-color: #ea2f10; +} + +.btn-danger { + &.disabled:active, &[disabled]:active { + background-color: #f04124; + border-color: #ea2f10; + } +} + +fieldset[disabled] .btn-danger:active { + background-color: #f04124; + border-color: #ea2f10; +} + +.btn-danger { + &.disabled.active, &[disabled].active { + background-color: #f04124; + border-color: #ea2f10; + } +} + +fieldset[disabled] .btn-danger.active { + background-color: #f04124; + border-color: #ea2f10; +} + +.btn-danger .badge { + color: #f04124; + background-color: #ffffff; +} + +.btn-link { + color: #008cba; + font-weight: normal; + cursor: pointer; + border-radius: 0; + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; + &:active, &[disabled] { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; + } +} + +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-link { + border-color: transparent; + &:hover, &:focus, &:active { + border-color: transparent; + } + &:hover, &:focus { + color: #00526e; + text-decoration: underline; + background-color: transparent; + } + &[disabled]:hover { + color: #999999; + text-decoration: none; + } +} + +fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { + color: #999999; + text-decoration: none; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 10px 16px; + font-size: 19px; + line-height: 1.33; + border-radius: 0; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 0; +} + +.btn-xs, .btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 0; +} + +.btn-block { + display: block; + width: 100%; + + .btn-block { + margin-top: 5px; + } +} + +input { + &[type="submit"].btn-block, &[type="reset"].btn-block, &[type="button"].btn-block { + width: 100%; + } +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + &.in { + opacity: 1; + } +} + +.collapse { + display: none; + &.in { + display: block; + } +} + +tr.collapse.in { + display: table-row; +} + +tbody.collapse.in { + display: table-row-group; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} + +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 15px; + text-align: left; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; + &.pull-right { + right: 0; + left: auto; + } + .divider { + height: 1px; + margin: 9.5px 0; + overflow: hidden; + background-color: rgba(0, 0, 0, 0.2); + } + > { + li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #555555; + white-space: nowrap; + &:hover, &:focus { + text-decoration: none; + color: #262626; + background-color: #eeeeee; + } + } + .active > a { + color: #ffffff; + text-decoration: none; + outline: 0; + background-color: #008cba; + &:hover, &:focus { + color: #ffffff; + text-decoration: none; + outline: 0; + background-color: #008cba; + } + } + .disabled > a { + color: #999999; + &:hover, &:focus { + color: #999999; + } + &:hover, &:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + cursor: not-allowed; + } + } + } +} + +.open > { + .dropdown-menu { + display: block; + } + a { + outline: 0; + } +} + +.dropdown-menu-right { + left: auto; + right: 0; +} + +.dropdown-menu-left { + left: 0; + right: auto; +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #999999; + white-space: nowrap; +} + +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, .navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid; + content: ""; +} + +.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +@media (min-width: 768px) { + .navbar-right { + .dropdown-menu { + left: auto; + right: 0; + } + .dropdown-menu-left { + left: 0; + right: auto; + } + } +} + +.btn-group, .btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} + +.btn-group > .btn, .btn-group-vertical > .btn { + position: relative; + float: left; +} + +.btn-group > .btn:hover, .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active { + z-index: 2; +} + +.btn-group > .btn:focus, .btn-group-vertical > .btn:focus { + outline: 0; +} + +.btn-group { + .btn + { + .btn, .btn-group { + margin-left: -1px; + } + } + .btn-group + { + .btn, .btn-group { + margin-left: -1px; + } + } +} + +.btn-toolbar { + margin-left: -5px; + .btn-group, .input-group { + float: left; + } + > { + .btn, .btn-group, .input-group { + margin-left: 5px; + } + } +} + +.btn-group { + > { + .btn { + &:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; + } + &:first-child { + margin-left: 0; + &:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + } + &:last-child:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + } + .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + .btn-group { + float: left; + &:not(:first-child):not(:last-child) > .btn { + border-radius: 0; + } + &:first-child > { + .btn:last-child, .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + } + &:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + } + } + .dropdown-toggle:active { + outline: 0; + } + &.open .dropdown-toggle { + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + &.btn-link { + -webkit-box-shadow: none; + box-shadow: none; + } + } + > { + .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; + } + .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; + } + } +} + +.btn .caret { + margin-left: 0; +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} + +.btn-group-vertical > { + .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; + } + .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100%; + > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; + float: none; + } + } + .btn + { + .btn, .btn-group { + margin-top: -1px; + margin-left: 0; + } + } + .btn-group + { + .btn, .btn-group { + margin-top: -1px; + margin-left: 0; + } + } + .btn { + &:not(:first-child):not(:last-child) { + border-radius: 0; + } + &:first-child:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + } + &:last-child:not(:first-child) { + border-bottom-left-radius: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; + } + } + .btn-group { + &:not(:first-child):not(:last-child) > .btn { + border-radius: 0; + } + &:first-child:not(:last-child) > { + .btn:last-child, .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + } + } + &:last-child:not(:first-child) > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; + } + } +} + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; + > { + .btn { + float: none; + display: table-cell; + width: 1%; + } + .btn-group { + float: none; + display: table-cell; + width: 1%; + .btn { + width: 100%; + } + .dropdown-menu { + left: auto; + } + } + } +} + +[data-toggle="buttons"] > .btn > input { + &[type="radio"], &[type="checkbox"] { + position: absolute; + z-index: -1; + opacity: 0; + filter: alpha(opacity = 0); + } +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; + &[class*="col-"] { + float: none; + padding-left: 0; + padding-right: 0; + } + .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; + } +} + +.input-group-lg > { + .form-control, .input-group-addon, .input-group-btn > .btn { + height: 48px; + padding: 10px 16px; + font-size: 19px; + line-height: 1.33; + border-radius: 0; + } +} + +select.input-group-lg > { + .form-control, .input-group-addon, .input-group-btn > .btn { + height: 48px; + line-height: 48px; + } +} + +textarea.input-group-lg > { + .form-control, .input-group-addon, .input-group-btn > .btn { + height: auto; + } +} + +select[multiple].input-group-lg > { + .form-control, .input-group-addon, .input-group-btn > .btn { + height: auto; + } +} + +.input-group-sm > { + .form-control, .input-group-addon, .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 0; + } +} + +select.input-group-sm > { + .form-control, .input-group-addon, .input-group-btn > .btn { + height: 30px; + line-height: 30px; + } +} + +textarea.input-group-sm > { + .form-control, .input-group-addon, .input-group-btn > .btn { + height: auto; + } +} + +select[multiple].input-group-sm > { + .form-control, .input-group-addon, .input-group-btn > .btn { + height: auto; + } +} + +.input-group-addon, .input-group-btn, .input-group .form-control { + display: table-cell; +} + +.input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child), .input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.input-group-addon, .input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 15px; + font-weight: normal; + line-height: 1; + color: #6f6f6f; + text-align: center; + background-color: #eeeeee; + border: 1px solid #cccccc; + border-radius: 0; + &.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 0; + } + &.input-lg { + padding: 10px 16px; + font-size: 19px; + border-radius: 0; + } + input { + &[type="radio"], &[type="checkbox"] { + margin-top: 0; + } + } +} + +.input-group .form-control:first-child, .input-group-addon:first-child { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.input-group-btn { + &:first-child > { + .btn, .btn-group > .btn, .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + } + &:last-child > { + .btn:not(:last-child):not(.dropdown-toggle), .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + } +} + +.input-group-addon:first-child { + border-right: 0; +} + +.input-group .form-control:last-child, .input-group-addon:last-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.input-group-btn { + &:last-child > { + .btn, .btn-group > .btn, .dropdown-toggle { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + } + &:first-child > { + .btn:not(:first-child), .btn-group:not(:first-child) > .btn { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + } +} + +.input-group-addon:last-child { + border-left: 0; +} + +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; + > .btn { + position: relative; + + .btn { + margin-left: -1px; + } + &:hover, &:focus, &:active { + z-index: 2; + } + } + &:first-child > { + .btn, .btn-group { + margin-right: -1px; + } + } + &:last-child > { + .btn, .btn-group { + margin-left: -1px; + } + } +} + +.nav { + margin-bottom: 0; + padding-left: 0; + list-style: none; + > li { + position: relative; + display: block; + > a { + position: relative; + display: block; + padding: 10px 15px; + &:hover, &:focus { + text-decoration: none; + background-color: #eeeeee; + } + } + &.disabled > a { + color: #999999; + &:hover, &:focus { + color: #999999; + text-decoration: none; + background-color: transparent; + cursor: not-allowed; + } + } + } + .open > a { + background-color: #eeeeee; + border-color: #008cba; + &:hover, &:focus { + background-color: #eeeeee; + border-color: #008cba; + } + } + .nav-divider { + height: 1px; + margin: 9.5px 0; + overflow: hidden; + background-color: #e5e5e5; + } + > li > a > img { + max-width: none; + } +} + +.nav-tabs { + border-bottom: 1px solid #dddddd; + > li { + float: left; + margin-bottom: -1px; + > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 0 0 0 0; + &:hover { + border-color: #eeeeee #eeeeee #dddddd; + } + } + &.active > a { + color: #6f6f6f; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; + cursor: default; + &:hover, &:focus { + color: #6f6f6f; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; + cursor: default; + } + } + } + &.nav-justified { + width: 100%; + border-bottom: 0; + > { + li { + float: none; + > a { + text-align: center; + margin-bottom: 5px; + } + } + .dropdown .dropdown-menu { + top: auto; + left: auto; + } + li > a { + margin-right: 0; + border-radius: 0; + } + .active > a { + border: 1px solid #dddddd; + &:hover, &:focus { + border: 1px solid #dddddd; + } + } + } + } +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + > a { + margin-bottom: 0; + } + } +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > { + li > a { + border-bottom: 1px solid #dddddd; + border-radius: 0 0 0 0; + } + .active > a { + border-bottom-color: #ffffff; + &:hover, &:focus { + border-bottom-color: #ffffff; + } + } + } +} + +.nav-pills > li { + float: left; + > a { + border-radius: 0; + } + + li { + margin-left: 2px; + } + &.active > a { + color: #ffffff; + background-color: #008cba; + &:hover, &:focus { + color: #ffffff; + background-color: #008cba; + } + } +} + +.nav-stacked > li { + float: none; + + li { + margin-top: 2px; + margin-left: 0; + } +} + +.nav-justified { + width: 100%; + > { + li { + float: none; + > a { + text-align: center; + margin-bottom: 5px; + } + } + .dropdown .dropdown-menu { + top: auto; + left: auto; + } + } +} + +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + > a { + margin-bottom: 0; + } + } +} + +.nav-tabs-justified { + border-bottom: 0; + > { + li > a { + margin-right: 0; + border-radius: 0; + } + .active > a { + border: 1px solid #dddddd; + &:hover, &:focus { + border: 1px solid #dddddd; + } + } + } +} + +@media (min-width: 768px) { + .nav-tabs-justified > { + li > a { + border-bottom: 1px solid #dddddd; + border-radius: 0 0 0 0; + } + .active > a { + border-bottom-color: #ffffff; + &:hover, &:focus { + border-bottom-color: #ffffff; + } + } + } +} + +.tab-content > { + .tab-pane { + display: none; + } + .active { + display: block; + } +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar { + position: relative; + min-height: 45px; + margin-bottom: 21px; + border: 1px solid transparent; +} + +@media (min-width: 768px) { + .navbar { + border-radius: 0; + } +} + +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} + +.navbar-collapse { + overflow-x: visible; + padding-right: 15px; + padding-left: 15px; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; + &.in { + overflow-y: auto; + } +} + +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + &.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + &.in { + overflow-y: visible; + } + } + .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { + padding-left: 0; + padding-right: 0; + } +} + +.navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} + +@media (max-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} + +.container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} + +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} + +.navbar-fixed-top, .navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +@media (min-width: 768px) { + .navbar-fixed-top, .navbar-fixed-bottom { + border-radius: 0; + } +} + +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} + +.navbar-brand { + float: left; + padding: 12px 15px; + font-size: 19px; + line-height: 21px; + height: 45px; + &:hover, &:focus { + text-decoration: none; + } +} + +@media (min-width: 768px) { + .navbar > { + .container .navbar-brand, .container-fluid .navbar-brand { + margin-left: -15px; + } + } +} + +.navbar-toggle { + position: relative; + float: right; + margin-right: 15px; + padding: 9px 10px; + margin-top: 5.5px; + margin-bottom: 5.5px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 0; + &:focus { + outline: 0; + } + .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; + + .icon-bar { + margin-top: 4px; + } + } +} + +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} + +.navbar-nav { + margin: 6px -15px; + > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 21px; + } +} + +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + > li > a, .dropdown-header { + padding: 5px 15px 5px 25px; + } + > li > a { + line-height: 21px; + &:hover, &:focus { + background-image: none; + } + } + } +} + +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + > li { + float: left; + > a { + padding-top: 12px; + padding-bottom: 12px; + } + } + &.navbar-right:last-child { + margin-right: -15px; + } + } +} + +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + } +} + +.navbar-form { + margin-left: -15px; + margin-right: -15px; + padding: 10px 15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-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); + margin-top: 5px; + margin-bottom: 5px; +} + +@media (min-width: 768px) { + .navbar-form { + .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .input-group { + display: inline-table; + vertical-align: middle; + .input-group-addon, .input-group-btn, .form-control { + width: auto; + } + > .form-control { + width: 100%; + } + } + .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .radio, .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .radio label, .checkbox label { + padding-left: 0; + } + .radio input[type="radio"], .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .has-feedback .form-control-feedback { + top: 0; + } + } +} + +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } +} + +@media (min-width: 768px) { + .navbar-form { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + -webkit-box-shadow: none; + box-shadow: none; + &.navbar-right:last-child { + margin-right: -15px; + } + } +} + +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-btn { + margin-top: 5px; + margin-bottom: 5px; + &.btn-sm { + margin-top: 7.5px; + margin-bottom: 7.5px; + } + &.btn-xs { + margin-top: 11.5px; + margin-bottom: 11.5px; + } +} + +.navbar-text { + margin-top: 12px; + margin-bottom: 12px; +} + +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-left: 15px; + margin-right: 15px; + &.navbar-right:last-child { + margin-right: 0; + } + } +} + +.navbar-default { + background-color: #333333; + border-color: #222222; + .navbar-brand { + color: #ffffff; + &:hover, &:focus { + color: #ffffff; + background-color: transparent; + } + } + .navbar-text { + color: #ffffff; + } + .navbar-nav > { + li > a { + color: #ffffff; + &:hover, &:focus { + color: #ffffff; + background-color: #272727; + } + } + .active > a { + color: #ffffff; + background-color: #272727; + &:hover, &:focus { + color: #ffffff; + background-color: #272727; + } + } + .disabled > a { + color: #cccccc; + background-color: transparent; + &:hover, &:focus { + color: #cccccc; + background-color: transparent; + } + } + } + .navbar-toggle { + border-color: transparent; + &:hover, &:focus { + background-color: transparent; + } + .icon-bar { + background-color: #ffffff; + } + } + .navbar-collapse, .navbar-form { + border-color: #222222; + } + .navbar-nav > .open > a { + background-color: #272727; + color: #ffffff; + &:hover, &:focus { + background-color: #272727; + color: #ffffff; + } + } + .navbar-link { + color: #ffffff; + &:hover { + color: #ffffff; + } + } + .btn-link { + color: #ffffff; + &:hover, &:focus { + color: #ffffff; + } + &[disabled]:hover { + color: #cccccc; + } + } +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > { + li > a { + color: #ffffff; + &:hover, &:focus { + color: #ffffff; + background-color: #272727; + } + } + .active > a { + color: #ffffff; + background-color: #272727; + &:hover, &:focus { + color: #ffffff; + background-color: #272727; + } + } + .disabled > a { + color: #cccccc; + background-color: transparent; + &:hover, &:focus { + color: #cccccc; + background-color: transparent; + } + } + } +} + +fieldset[disabled] .navbar-default .btn-link:hover, .navbar-default .btn-link[disabled]:focus, fieldset[disabled] .navbar-default .btn-link:focus { + color: #cccccc; +} + +.navbar-inverse { + background-color: #008cba; + border-color: #006687; + .navbar-brand { + color: #ffffff; + &:hover, &:focus { + color: #ffffff; + background-color: transparent; + } + } + .navbar-text { + color: #ffffff; + } + .navbar-nav > { + li > a { + color: #ffffff; + &:hover, &:focus { + color: #ffffff; + background-color: #006687; + } + } + .active > a { + color: #ffffff; + background-color: #006687; + &:hover, &:focus { + color: #ffffff; + background-color: #006687; + } + } + .disabled > a { + color: #444444; + background-color: transparent; + &:hover, &:focus { + color: #444444; + background-color: transparent; + } + } + } + .navbar-toggle { + border-color: transparent; + &:hover, &:focus { + background-color: transparent; + } + .icon-bar { + background-color: #ffffff; + } + } + .navbar-collapse, .navbar-form { + border-color: #007196; + } + .navbar-nav > .open > a { + background-color: #006687; + color: #ffffff; + &:hover, &:focus { + background-color: #006687; + color: #ffffff; + } + } + .navbar-link { + color: #ffffff; + &:hover { + color: #ffffff; + } + } + .btn-link { + color: #ffffff; + &:hover, &:focus { + color: #ffffff; + } + &[disabled]:hover { + color: #444444; + } + } +} + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu { + > .dropdown-header { + border-color: #006687; + } + .divider { + background-color: #006687; + } + > { + li > a { + color: #ffffff; + &:hover, &:focus { + color: #ffffff; + background-color: #006687; + } + } + .active > a { + color: #ffffff; + background-color: #006687; + &:hover, &:focus { + color: #ffffff; + background-color: #006687; + } + } + .disabled > a { + color: #444444; + background-color: transparent; + &:hover, &:focus { + color: #444444; + background-color: transparent; + } + } + } + } +} + +fieldset[disabled] .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link[disabled]:focus, fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444444; +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 21px; + list-style: none; + background-color: #f5f5f5; + border-radius: 0; + > { + li { + display: inline-block; + + li:before { + content: "/\00a0"; + padding: 0 5px; + color: #999999; + } + } + .active { + color: #333333; + } + } +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 21px 0; + border-radius: 0; + > { + li { + display: inline; + > { + a, span { + position: relative; + float: left; + padding: 6px 12px; + line-height: 1.42857143; + text-decoration: none; + color: #008cba; + background-color: transparent; + border: 1px solid transparent; + margin-left: -1px; + } + } + &:first-child > { + a, span { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + } + &:last-child > { + a, span { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + } + > { + a:hover, span:hover, a:focus, span:focus { + color: #00526e; + background-color: #eeeeee; + border-color: transparent; + } + } + } + .active > { + a, span, a:hover, span:hover, a:focus, span:focus { + z-index: 2; + color: #ffffff; + background-color: #008cba; + border-color: transparent; + cursor: default; + } + } + .disabled > { + span { + color: #999999; + background-color: #ffffff; + border-color: transparent; + cursor: not-allowed; + &:hover, &:focus { + color: #999999; + background-color: #ffffff; + border-color: transparent; + cursor: not-allowed; + } + } + a { + color: #999999; + background-color: #ffffff; + border-color: transparent; + cursor: not-allowed; + &:hover, &:focus { + color: #999999; + background-color: #ffffff; + border-color: transparent; + cursor: not-allowed; + } + } + } + } +} + +.pagination-lg > li { + > { + a, span { + padding: 10px 16px; + font-size: 19px; + } + } + &:first-child > { + a, span { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + } + &:last-child > { + a, span { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + } +} + +.pagination-sm > li { + > { + a, span { + padding: 5px 10px; + font-size: 12px; + } + } + &:first-child > { + a, span { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + } + &:last-child > { + a, span { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + } +} + +.pager { + padding-left: 0; + margin: 21px 0; + list-style: none; + text-align: center; + li { + display: inline; + > { + a, span { + display: inline-block; + padding: 5px 14px; + background-color: transparent; + border: 1px solid transparent; + border-radius: 3px; + } + a { + &:hover, &:focus { + text-decoration: none; + background-color: #eeeeee; + } + } + } + } + .next > { + a, span { + float: right; + } + } + .previous > { + a, span { + float: left; + } + } + .disabled > { + a { + color: #999999; + background-color: transparent; + cursor: not-allowed; + &:hover, &:focus { + color: #999999; + background-color: transparent; + cursor: not-allowed; + } + } + span { + color: #999999; + background-color: transparent; + cursor: not-allowed; + } + } +} + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} + +a.label { + &:hover, &:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; + } +} + +.label:empty { + display: none; +} + +.btn .label { + position: relative; + top: -1px; +} + +.label-default { + background-color: #999999; + &[href] { + &:hover, &:focus { + background-color: #808080; + } + } +} + +.label-primary { + background-color: #008cba; + &[href] { + &:hover, &:focus { + background-color: #006687; + } + } +} + +.label-success { + background-color: #43ac6a; + &[href] { + &:hover, &:focus { + background-color: #358753; + } + } +} + +.label-info { + background-color: #5bc0de; + &[href] { + &:hover, &:focus { + background-color: #31b0d5; + } + } +} + +.label-warning { + background-color: #e99002; + &[href] { + &:hover, &:focus { + background-color: #b67102; + } + } +} + +.label-danger { + background-color: #f04124; + &[href] { + &:hover, &:focus { + background-color: #d32a0e; + } + } +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + color: #777777; + line-height: 1; + vertical-align: baseline; + white-space: nowrap; + text-align: center; + background-color: #e7e7e7; + border-radius: 10px; + &:empty { + display: none; + } +} + +.btn .badge { + position: relative; + top: -1px; +} + +.btn-xs .badge { + top: 0; + padding: 1px 5px; +} + +a { + &.badge { + &:hover, &:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; + } + } + &.list-group-item.active > .badge { + color: #008cba; + background-color: #ffffff; + } +} + +.nav-pills > { + .active > a > .badge { + color: #008cba; + background-color: #ffffff; + } + li > a > .badge { + margin-left: 3px; + } +} + +.jumbotron { + padding: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #fafafa; + h1, .h1 { + color: inherit; + } + p { + margin-bottom: 15px; + font-size: 23px; + font-weight: 200; + } + > hr { + border-top-color: #e1e1e1; + } +} + +.container .jumbotron { + border-radius: 0; +} + +.jumbotron .container { + max-width: 100%; +} + +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron { + padding-left: 60px; + padding-right: 60px; + } + .jumbotron { + h1, .h1 { + font-size: 67.5px; + } + } +} + +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 21px; + line-height: 1.42857143; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 0; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; + > img, a > img { + margin-left: auto; + margin-right: auto; + } +} + +a.thumbnail { + &:hover, &:focus, &.active { + border-color: #008cba; + } +} + +.thumbnail .caption { + padding: 9px; + color: #222222; +} + +.alert { + padding: 15px; + margin-bottom: 21px; + border: 1px solid transparent; + border-radius: 0; + h4 { + margin-top: 0; + color: inherit; + } + .alert-link { + font-weight: bold; + } + > { + p, ul { + margin-bottom: 0; + } + p + p { + margin-top: 5px; + } + } +} + +.alert-dismissable, .alert-dismissible { + padding-right: 35px; +} + +.alert-dismissable .close, .alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} + +.alert-success { + background-color: #43ac6a; + border-color: #3c9a5f; + color: #ffffff; + hr { + border-top-color: #358753; + } + .alert-link { + color: #e6e6e6; + } +} + +.alert-info { + background-color: #5bc0de; + border-color: #3db5d8; + color: #ffffff; + hr { + border-top-color: #2aabd2; + } + .alert-link { + color: #e6e6e6; + } +} + +.alert-warning { + background-color: #e99002; + border-color: #d08002; + color: #ffffff; + hr { + border-top-color: #b67102; + } + .alert-link { + color: #e6e6e6; + } +} + +.alert-danger { + background-color: #f04124; + border-color: #ea2f10; + color: #ffffff; + hr { + border-top-color: #d32a0e; + } + .alert-link { + color: #e6e6e6; + } +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + + +.progress { + overflow: hidden; + height: 21px; + margin-bottom: 21px; + background-color: #f5f5f5; + border-radius: 0; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress-bar { + float: left; + width: 0%; + height: 100%; + font-size: 12px; + line-height: 21px; + color: #ffffff; + text-align: center; + background-color: #008cba; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-striped .progress-bar, .progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} + +.progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar { + &.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; + } + &[aria-valuenow="1"], &[aria-valuenow="2"] { + min-width: 30px; + } + &[aria-valuenow="0"] { + color: #999999; + min-width: 30px; + background-color: transparent; + background-image: none; + box-shadow: none; + } +} + +.progress-bar-success { + background-color: #43ac6a; +} + +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-info { + background-color: #5bc0de; +} + +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-warning { + background-color: #e99002; +} + +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-danger { + background-color: #f04124; +} + +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.media, .media-body { + overflow: hidden; + zoom: 1; +} + +.media { + margin-top: 15px; + .media { + margin-top: 15px; + } + &:first-child { + margin-top: 0; + } +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > { + .pull-left { + margin-right: 10px; + } + .pull-right { + margin-left: 10px; + } +} + +.media-list { + padding-left: 0; + list-style: none; +} + +.list-group { + margin-bottom: 20px; + padding-left: 0; +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; + &:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; + } + &:last-child { + margin-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + } + > .badge { + float: right; + + .badge { + margin-right: 5px; + } + } +} + +a.list-group-item { + color: #555555; + .list-group-item-heading { + color: #333333; + } + &:hover, &:focus { + text-decoration: none; + color: #555555; + background-color: #f5f5f5; + } +} + +.list-group-item { + &.disabled { + background-color: #eeeeee; + color: #999999; + &:hover, &:focus { + background-color: #eeeeee; + color: #999999; + } + .list-group-item-heading, &:hover .list-group-item-heading, &:focus .list-group-item-heading { + color: inherit; + } + .list-group-item-text, &:hover .list-group-item-text, &:focus .list-group-item-text { + color: #999999; + } + } + &.active { + z-index: 2; + color: #ffffff; + background-color: #008cba; + border-color: #008cba; + &:hover, &:focus { + z-index: 2; + color: #ffffff; + background-color: #008cba; + border-color: #008cba; + } + .list-group-item-heading, &:hover .list-group-item-heading, &:focus .list-group-item-heading, .list-group-item-heading > small, &:hover .list-group-item-heading > small, &:focus .list-group-item-heading > small, .list-group-item-heading > .small, &:hover .list-group-item-heading > .small, &:focus .list-group-item-heading > .small { + color: inherit; + } + .list-group-item-text, &:hover .list-group-item-text, &:focus .list-group-item-text { + color: #87e1ff; + } + } +} + +.list-group-item-success { + color: #43ac6a; + background-color: #dff0d8; +} + +a.list-group-item-success { + color: #43ac6a; + .list-group-item-heading { + color: inherit; + } + &:hover, &:focus { + color: #43ac6a; + background-color: #d0e9c6; + } + &.active { + color: #fff; + background-color: #43ac6a; + border-color: #43ac6a; + &:hover, &:focus { + color: #fff; + background-color: #43ac6a; + border-color: #43ac6a; + } + } +} + +.list-group-item-info { + color: #5bc0de; + background-color: #d9edf7; +} + +a.list-group-item-info { + color: #5bc0de; + .list-group-item-heading { + color: inherit; + } + &:hover, &:focus { + color: #5bc0de; + background-color: #c4e3f3; + } + &.active { + color: #fff; + background-color: #5bc0de; + border-color: #5bc0de; + &:hover, &:focus { + color: #fff; + background-color: #5bc0de; + border-color: #5bc0de; + } + } +} + +.list-group-item-warning { + color: #e99002; + background-color: #fcf8e3; +} + +a.list-group-item-warning { + color: #e99002; + .list-group-item-heading { + color: inherit; + } + &:hover, &:focus { + color: #e99002; + background-color: #faf2cc; + } + &.active { + color: #fff; + background-color: #e99002; + border-color: #e99002; + &:hover, &:focus { + color: #fff; + background-color: #e99002; + border-color: #e99002; + } + } +} + +.list-group-item-danger { + color: #f04124; + background-color: #f2dede; +} + +a.list-group-item-danger { + color: #f04124; + .list-group-item-heading { + color: inherit; + } + &:hover, &:focus { + color: #f04124; + background-color: #ebcccc; + } + &.active { + color: #fff; + background-color: #f04124; + border-color: #f04124; + &:hover, &:focus { + color: #fff; + background-color: #f04124; + border-color: #f04124; + } + } +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} + +.panel { + margin-bottom: 21px; + background-color: #ffffff; + border: 1px solid transparent; + border-radius: 0; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.panel-body { + padding: 15px; +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: -1; + border-top-left-radius: -1; + > .dropdown .dropdown-toggle { + color: inherit; + } +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 17px; + color: inherit; + > a { + color: inherit; + } +} + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #dddddd; + border-bottom-right-radius: -1; + border-bottom-left-radius: -1; +} + +.panel > .list-group { + margin-bottom: 0; + .list-group-item { + border-width: 1px 0; + border-radius: 0; + } + &:first-child .list-group-item:first-child { + border-top: 0; + border-top-right-radius: -1; + border-top-left-radius: -1; + } + &:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: -1; + border-bottom-left-radius: -1; + } +} + +.panel-heading + .list-group .list-group-item:first-child, .list-group + .panel-footer { + border-top-width: 0; +} + +.panel > { + .table, .table-responsive > .table, .panel-collapse > .table { + margin-bottom: 0; + } + .table:first-child, .table-responsive:first-child > .table:first-child { + border-top-right-radius: -1; + border-top-left-radius: -1; + } + .table:first-child > thead:first-child > tr:first-child td:first-child, .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, .table:first-child > tbody:first-child > tr:first-child td:first-child, .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, .table:first-child > thead:first-child > tr:first-child th:first-child, .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, .table:first-child > tbody:first-child > tr:first-child th:first-child, .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: -1; + } + .table:first-child > thead:first-child > tr:first-child td:last-child, .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, .table:first-child > tbody:first-child > tr:first-child td:last-child, .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, .table:first-child > thead:first-child > tr:first-child th:last-child, .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, .table:first-child > tbody:first-child > tr:first-child th:last-child, .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: -1; + } + .table:last-child, .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: -1; + border-bottom-left-radius: -1; + } + .table:last-child > tbody:last-child > tr:last-child td:first-child, .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, .table:last-child > tfoot:last-child > tr:last-child td:first-child, .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .table:last-child > tbody:last-child > tr:last-child th:first-child, .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, .table:last-child > tfoot:last-child > tr:last-child th:first-child, .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: -1; + } + .table:last-child > tbody:last-child > tr:last-child td:last-child, .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, .table:last-child > tfoot:last-child > tr:last-child td:last-child, .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .table:last-child > tbody:last-child > tr:last-child th:last-child, .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, .table:last-child > tfoot:last-child > tr:last-child th:last-child, .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: -1; + } + .panel-body + { + .table, .table-responsive { + border-top: 1px solid #dddddd; + } + } + .table > tbody:first-child > tr:first-child { + th, td { + border-top: 0; + } + } + .table-bordered, .table-responsive > .table-bordered { + border: 0; + } + .table-bordered > thead > tr > th:first-child, .table-responsive > .table-bordered > thead > tr > th:first-child, .table-bordered > tbody > tr > th:first-child, .table-responsive > .table-bordered > tbody > tr > th:first-child, .table-bordered > tfoot > tr > th:first-child, .table-responsive > .table-bordered > tfoot > tr > th:first-child, .table-bordered > thead > tr > td:first-child, .table-responsive > .table-bordered > thead > tr > td:first-child, .table-bordered > tbody > tr > td:first-child, .table-responsive > .table-bordered > tbody > tr > td:first-child, .table-bordered > tfoot > tr > td:first-child, .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-bordered > thead > tr > th:last-child, .table-responsive > .table-bordered > thead > tr > th:last-child, .table-bordered > tbody > tr > th:last-child, .table-responsive > .table-bordered > tbody > tr > th:last-child, .table-bordered > tfoot > tr > th:last-child, .table-responsive > .table-bordered > tfoot > tr > th:last-child, .table-bordered > thead > tr > td:last-child, .table-responsive > .table-bordered > thead > tr > td:last-child, .table-bordered > tbody > tr > td:last-child, .table-responsive > .table-bordered > tbody > tr > td:last-child, .table-bordered > tfoot > tr > td:last-child, .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-bordered > thead > tr:first-child > td, .table-responsive > .table-bordered > thead > tr:first-child > td, .table-bordered > tbody > tr:first-child > td, .table-responsive > .table-bordered > tbody > tr:first-child > td, .table-bordered > thead > tr:first-child > th, .table-responsive > .table-bordered > thead > tr:first-child > th, .table-bordered > tbody > tr:first-child > th, .table-responsive > .table-bordered > tbody > tr:first-child > th, .table-bordered > tbody > tr:last-child > td, .table-responsive > .table-bordered > tbody > tr:last-child > td, .table-bordered > tfoot > tr:last-child > td, .table-responsive > .table-bordered > tfoot > tr:last-child > td, .table-bordered > tbody > tr:last-child > th, .table-responsive > .table-bordered > tbody > tr:last-child > th, .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; + } + .table-responsive { + > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; + } + border: 0; + margin-bottom: 0; + } +} + +.panel-group { + margin-bottom: 21px; + .panel { + margin-bottom: 0; + border-radius: 0; + + .panel { + margin-top: 5px; + } + } + .panel-heading { + border-bottom: 0; + + .panel-collapse > .panel-body { + border-top: 1px solid #dddddd; + } + } + .panel-footer { + border-top: 0; + + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; + } + } +} + +.panel-default { + border-color: #dddddd; + > { + .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #dddddd; + + .panel-collapse > .panel-body { + border-top-color: #dddddd; + } + .badge { + color: #f5f5f5; + background-color: #333333; + } + } + .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #dddddd; + } + } +} + +.panel-primary { + border-color: #008cba; + > { + .panel-heading { + color: #ffffff; + background-color: #008cba; + border-color: #008cba; + + .panel-collapse > .panel-body { + border-top-color: #008cba; + } + .badge { + color: #008cba; + background-color: #ffffff; + } + } + .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #008cba; + } + } +} + +.panel-success { + border-color: #3c9a5f; + > { + .panel-heading { + color: #ffffff; + background-color: #43ac6a; + border-color: #3c9a5f; + + .panel-collapse > .panel-body { + border-top-color: #3c9a5f; + } + .badge { + color: #43ac6a; + background-color: #ffffff; + } + } + .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #3c9a5f; + } + } +} + +.panel-info { + border-color: #3db5d8; + > { + .panel-heading { + color: #ffffff; + background-color: #5bc0de; + border-color: #3db5d8; + + .panel-collapse > .panel-body { + border-top-color: #3db5d8; + } + .badge { + color: #5bc0de; + background-color: #ffffff; + } + } + .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #3db5d8; + } + } +} + +.panel-warning { + border-color: #d08002; + > { + .panel-heading { + color: #ffffff; + background-color: #e99002; + border-color: #d08002; + + .panel-collapse > .panel-body { + border-top-color: #d08002; + } + .badge { + color: #e99002; + background-color: #ffffff; + } + } + .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d08002; + } + } +} + +.panel-danger { + border-color: #ea2f10; + > { + .panel-heading { + color: #ffffff; + background-color: #f04124; + border-color: #ea2f10; + + .panel-collapse > .panel-body { + border-top-color: #ea2f10; + } + .badge { + color: #f04124; + background-color: #ffffff; + } + } + .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ea2f10; + } + } +} + +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; + .embed-responsive-item, iframe, embed, object { + position: absolute; + top: 0; + left: 0; + bottom: 0; + height: 100%; + width: 100%; + border: 0; + } + &.embed-responsive-16by9 { + padding-bottom: 56.25%; + } + &.embed-responsive-4by3 { + padding-bottom: 75%; + } +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #fafafa; + border: 1px solid #e8e8e8; + border-radius: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); + } +} + +.well-lg { + padding: 24px; + border-radius: 0; +} + +.well-sm { + padding: 9px; + border-radius: 0; +} + +.close { + float: right; + font-size: 22.5px; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity = 20); + &:hover, &:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity = 50); + } +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.modal-open { + overflow: hidden; +} + +.modal { + display: none; + overflow: hidden; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + -webkit-overflow-scrolling: touch; + outline: 0; + &.fade .modal-dialog { + -webkit-transform: translate3d(0, -25%, 0); + transform: translate3d(0, -25%, 0); + -webkit-transition: -webkit-transform .3s ease-out; + -moz-transition: -moz-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + } + &.in .modal-dialog { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} + +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; + &.fade { + opacity: 0; + filter: alpha(opacity = 0); + } + &.in { + opacity: 0.5; + filter: alpha(opacity = 50); + } +} + +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; + min-height: 16.42857143px; + .close { + margin-top: -2px; + } +} + +.modal-title { + margin: 0; + line-height: 1.42857143; +} + +.modal-body { + position: relative; + padding: 20px; +} + +.modal-footer { + padding: 20px; + text-align: right; + border-top: 1px solid #e5e5e5; + .btn + .btn { + margin-left: 5px; + margin-bottom: 0; + } + .btn-group .btn + .btn { + margin-left: -1px; + } + .btn-block + .btn-block { + margin-left: 0; + } +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } + .modal-sm { + width: 300px; + } +} + +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + visibility: visible; + font-size: 12px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity = 0); + &.in { + opacity: 0.9; + filter: alpha(opacity = 90); + } + &.top { + margin-top: -3px; + padding: 5px 0; + } + &.right { + margin-left: 3px; + padding: 0 5px; + } + &.bottom { + margin-top: 3px; + padding: 5px 0; + } + &.left { + margin-left: -3px; + padding: 0 5px; + } +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #333333; + border-radius: 0; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip { + &.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #333333; + } + &.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-width: 5px 5px 0; + border-top-color: #333333; + } + &.top-right .tooltip-arrow { + bottom: 0; + right: 5px; + border-width: 5px 5px 0; + border-top-color: #333333; + } + &.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #333333; + } + &.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #333333; + } + &.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #333333; + } + &.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-width: 0 5px 5px; + border-bottom-color: #333333; + } + &.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-width: 0 5px 5px; + border-bottom-color: #333333; + } +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + background-color: #333333; + background-clip: padding-box; + border: 1px solid #333333; + border: 1px solid transparent; + border-radius: 0; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + white-space: normal; + &.top { + margin-top: -10px; + } + &.right { + margin-left: 10px; + } + &.bottom { + margin-top: 10px; + } + &.left { + margin-left: -10px; + } +} + +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 15px; + font-weight: normal; + line-height: 18px; + background-color: #333333; + border-bottom: 1px solid #262626; + border-radius: -1 -1 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover { + > .arrow { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + &:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 10px; + content: ""; + } + border-width: 11px; + } + &.top > .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #000000; + border-top-color: rgba(0, 0, 0, 0.05); + bottom: -11px; + &:after { + content: " "; + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #333333; + } + } + &.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #000000; + border-right-color: rgba(0, 0, 0, 0.05); + &:after { + content: " "; + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #333333; + } + } + &.bottom > .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #000000; + border-bottom-color: rgba(0, 0, 0, 0.05); + top: -11px; + &:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #333333; + } + } + &.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #000000; + border-left-color: rgba(0, 0, 0, 0.05); + &:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: #333333; + bottom: -10px; + } + } +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; + > { + .item { + display: none; + position: relative; + -webkit-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; + > { + img, a > img { + line-height: 1; + } + } + } + .active, .next, .prev { + display: block; + } + .active { + left: 0; + } + .next, .prev { + position: absolute; + top: 0; + width: 100%; + } + .next { + left: 100%; + } + .prev { + left: -100%; + } + .next.left, .prev.right { + left: 0; + } + .active { + &.left { + left: -100%; + } + &.right { + left: 100%; + } + } + } +} + +.carousel-control { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 15%; + opacity: 0.5; + filter: alpha(opacity = 50); + font-size: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + &.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + } + &.right { + left: auto; + right: 0; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + } + &:hover, &:focus { + outline: 0; + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity = 90); + } + .icon-prev, .icon-next, .glyphicon-chevron-left, .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + } + .icon-prev, .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; + } + .icon-next, .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; + } + .icon-prev, .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + font-family: serif; + } + .icon-prev:before { + content: '\2039'; + } + .icon-next:before { + content: '\203a'; + } +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + margin-left: -30%; + padding-left: 0; + list-style: none; + text-align: center; + li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid #ffffff; + border-radius: 10px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + } + .active { + margin: 0; + width: 12px; + height: 12px; + background-color: #ffffff; + } +} + +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + .btn { + text-shadow: none; + } +} + +@media screen and (min-width: 768px) { + .carousel-control { + .glyphicon-chevron-left, .glyphicon-chevron-right, .icon-prev, .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px; + } + .glyphicon-chevron-left, .icon-prev { + margin-left: -15px; + } + .glyphicon-chevron-right, .icon-next { + margin-right: -15px; + } + } + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} + +.clearfix { + &:before, &:after { + content: " "; + display: table; + } +} + +.dl-horizontal dd { + &:before, &:after { + content: " "; + display: table; + } +} + +.container { + &:before, &:after { + content: " "; + display: table; + } +} + +.container-fluid { + &:before, &:after { + content: " "; + display: table; + } +} + +.row { + &:before, &:after { + content: " "; + display: table; + } +} + +.form-horizontal .form-group { + &:before, &:after { + content: " "; + display: table; + } +} + +.btn-toolbar { + &:before, &:after { + content: " "; + display: table; + } +} + +.btn-group-vertical > .btn-group { + &:before, &:after { + content: " "; + display: table; + } +} + +.nav { + &:before, &:after { + content: " "; + display: table; + } +} + +.navbar { + &:before, &:after { + content: " "; + display: table; + } +} + +.navbar-header { + &:before, &:after { + content: " "; + display: table; + } +} + +.navbar-collapse { + &:before, &:after { + content: " "; + display: table; + } +} + +.pager { + &:before, &:after { + content: " "; + display: table; + } +} + +.panel-body { + &:before, &:after { + content: " "; + display: table; + } +} + +.modal-footer { + &:before, &:after { + content: " "; + display: table; + } +} + +.clearfix:after, .dl-horizontal dd:after, .container:after, .container-fluid:after, .row:after, .form-horizontal .form-group:after, .btn-toolbar:after, .btn-group-vertical > .btn-group:after, .nav:after, .navbar:after, .navbar-header:after, .navbar-collapse:after, .pager:after, .panel-body:after, .modal-footer:after { + clear: both; +} + +.center-block { + display: block; + margin-left: auto; + margin-right: auto; +} + +.pull-right { + float: right !important; +} + +.pull-left { + float: left !important; +} + +.hide { + display: none !important; +} + +.show { + display: block !important; +} + +.invisible { + visibility: hidden; +} + +.text-hide { + font: 0 / 0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.hidden { + display: none !important; + visibility: hidden !important; +} + +.affix { + position: fixed; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +@-ms-viewport { + width: device-width; +} + + +.visible-xs, .visible-sm, .visible-md, .visible-lg, .visible-xs-block, .visible-xs-inline, .visible-xs-inline-block, .visible-sm-block, .visible-sm-inline, .visible-sm-inline-block, .visible-md-block, .visible-md-inline, .visible-md-inline-block, .visible-lg-block, .visible-lg-inline, .visible-lg-inline-block, .visible-print, .visible-print-block, .visible-print-inline, .visible-print-inline-block { + display: none !important; +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, td.visible-xs { + display: table-cell !important; + } +} + +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} + +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} + +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, td.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, td.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, td.visible-lg { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} + +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} + +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} + +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, td.visible-print { + display: table-cell !important; + } +} + +@media print { + .visible-print-block { + display: block !important; + } +} + +@media print { + .visible-print-inline { + display: inline !important; + } +} + +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} + +@media print { + .hidden-print { + display: none !important; + } +} + +.navbar { + border: none; + font-size: 13px; + font-weight: 300; + .navbar-toggle:hover .icon-bar { + background-color: #b3b3b3; + } +} + +.navbar-collapse { + border-top-color: rgba(0, 0, 0, 0.2); + -webkit-box-shadow: none; + box-shadow: none; +} + +.navbar { + .btn { + padding-top: 6px; + padding-bottom: 6px; + } + .dropdown-menu { + border: none; + > li > a { + background-color: transparent; + font-size: 13px; + font-weight: 300; + &:focus { + background-color: transparent; + font-size: 13px; + font-weight: 300; + } + } + } + .dropdown-header { + color: rgba(255, 255, 255, 0.5); + } +} + +.navbar-default .dropdown-menu { + background-color: #333333; + > { + li > a { + color: #ffffff; + &:focus { + color: #ffffff; + } + &:hover { + background-color: #272727; + } + } + .active > a { + background-color: #272727; + &:hover { + background-color: #272727; + } + } + } +} + +.navbar-inverse .dropdown-menu { + background-color: #008cba; + > { + li > a { + color: #ffffff; + &:focus { + color: #ffffff; + } + &:hover { + background-color: #006687; + } + } + .active > a { + background-color: #006687; + &:hover { + background-color: #006687; + } + } + } +} + +.btn { + padding: 14px 28px; +} + +.btn-lg { + padding: 16px 32px; +} + +.btn-sm { + padding: 8px 16px; +} + +.btn-xs { + padding: 4px 8px; +} + +.btn-group { + .btn ~ .dropdown-toggle { + padding-left: 16px; + padding-right: 16px; + } + .dropdown-menu { + border-top-width: 0; + } + &.dropup .dropdown-menu { + border-top-width: 1px; + border-bottom-width: 0; + margin-bottom: 0; + } + .dropdown-toggle { + &.btn-default ~ .dropdown-menu { + background-color: #e7e7e7; + border-color: #dadada; + > li > a { + color: #333333; + &:hover { + background-color: #d3d3d3; + } + } + } + &.btn-primary ~ .dropdown-menu { + background-color: #008cba; + border-color: #0079a1; + > li > a { + color: #ffffff; + &:hover { + background-color: #006d91; + } + } + } + &.btn-success ~ .dropdown-menu { + background-color: #43ac6a; + border-color: #3c9a5f; + > li > a { + color: #ffffff; + &:hover { + background-color: #388f58; + } + } + } + &.btn-info ~ .dropdown-menu { + background-color: #5bc0de; + border-color: #46b8da; + > li > a { + color: #ffffff; + &:hover { + background-color: #39b3d7; + } + } + } + &.btn-warning ~ .dropdown-menu { + background-color: #e99002; + border-color: #d08002; + > li > a { + color: #ffffff; + &:hover { + background-color: #c17702; + } + } + } + &.btn-danger ~ .dropdown-menu { + background-color: #f04124; + border-color: #ea2f10; + > li > a { + color: #ffffff; + &:hover { + background-color: #dc2c0f; + } + } + } + } +} + +.lead { + color: #6f6f6f; +} + +cite { + font-style: italic; +} + +blockquote { + border-left-width: 1px; + color: #6f6f6f; + &.pull-right { + border-right-width: 1px; + } + small { + font-size: 12px; + font-weight: 300; + } +} + +table { + font-size: 12px; +} + +input { + padding: 7px; +} + +label, .control-label, .help-block, .checkbox, .radio { + font-size: 12px; + font-weight: normal; +} + +.input-group-addon, .input-group-btn .btn { + padding: 8px 14px; + font-size: 12px; +} + +.nav .open > a { + border-color: transparent; + &:hover, &:focus { + border-color: transparent; + } +} + +.nav-tabs { + > li > a { + background-color: #e7e7e7; + color: #222222; + } + .caret { + border-top-color: #222222; + border-bottom-color: #222222; + } +} + +.nav-pills { + font-weight: 300; +} + +.breadcrumb { + border: 1px solid #dddddd; + border-radius: 3px; + font-size: 10px; + font-weight: 300; + text-transform: uppercase; +} + +.pagination { + font-size: 12px; + font-weight: 300; + color: #999999; + > { + li > { + a, span { + margin-left: 4px; + color: #999999; + } + } + .active > { + a, span { + color: #fff; + } + } + li { + > a, &:first-child > a, &:last-child > a, > span, &:first-child > span, &:last-child > span { + border-radius: 3px; + } + } + } +} + +.pagination-lg > li > a { + padding-left: 22px; + padding-right: 22px; +} + +.pagination-sm > li > a { + padding: 0 5px; +} + +.pager { + font-size: 12px; + font-weight: 300; + color: #999999; +} + +.list-group { + font-size: 12px; + font-weight: 300; +} + +.close { + opacity: 0.4; + text-decoration: none; + text-shadow: none; + &:hover, &:focus { + opacity: 1; + } +} + +.alert { + font-size: 12px; + font-weight: 300; + .alert-link { + font-weight: normal; + color: #fff; + text-decoration: underline; + } +} + +.label { + padding-left: 1em; + padding-right: 1em; + border-radius: 0; + font-weight: 300; +} + +.label-default { + background-color: #e7e7e7; + color: #333333; +} + +.badge { + font-weight: 300; +} + +.progress { + height: 22px; + padding: 2px; + background-color: #f6f6f6; + border: 1px solid #ccc; + -webkit-box-shadow: none; + box-shadow: none; +} + +.dropdown-menu { + padding: 0; + margin-top: 0; + font-size: 12px; + > li > a { + padding: 12px 15px; + } +} + +.dropdown-header { + padding-left: 15px; + padding-right: 15px; + font-size: 9px; + text-transform: uppercase; +} + +.popover { + color: #fff; + font-size: 12px; + font-weight: 300; +} + +.panel-heading, .panel-footer { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.panel-default .close, .modal .close { + color: #222222; +} \ No newline at end of file diff --git a/_sass/_layout.scss b/_sass/_layout.scss new file mode 100644 index 0000000..7074e6e --- /dev/null +++ b/_sass/_layout.scss @@ -0,0 +1,164 @@ +.blog-theme-class { + margin-top:0.3%; + padding:3%; + background:#008cba; + .jumb-bot { + background:#008cba; + + } + .jumbotron{ + background:#008cba; + h1 { + color :#fff; + } + p{ + color:#fff; + } + } +} +.blog-post-small { + border-bottom: #008CBA 1px dashed; + text-align: justify; + padding: 10px; + p { + font-size: 14.43px; + } +} + +.navbar { + margin-bottom: 0px; +} + +.jumb-bot { +} + +.jumb-bot-jumbu { + margin: 0px; + padding-top: 15px; + padding-bottom: 20px; + background: #eee; + p { + padding-top: 13px; + } +} + +.left-syms { + font-size: 20px; + li a span { + font-size: 12.5px; + display: none; + } +} + +.listgroup-div { + margin-top: 10px; +} +.author_block{ + padding:2%; + p{ + line-height: 44px; + font-size: 13px; + } + ul{ + display: block; + float:left; + li{ + float:left; + display:block; + font-size: 24px; + padding: 5px; + a{ + text-decoration:none; + } + } + } +} +.blog-post-content { + font-size: 14px; + img{ + max-width:100%; + border:#eee 2px solid; + } +} +.twitter_share{ + float:left; + padding:10px; +} +.fb_share{ + float:left; + padding:10px; +} +.linkedin_share{ + float:left; + padding:10px; + padding-left:0px; +} +.g_share{ + float:left; + padding:10px; +} +.footer { + a { + font-size: 13px; + text-decoration: none; + color: #fff; + &:after { + content: ""; + } + } + h4 { + color: #fff; + } +} +.share-div{ + padding:3%; + padding-left:1%; + padding-top:1%; +} +.recent_posts li { + display: block; + color: #fff; +} + +.footer { + background: #222222; + margin-top: 10px; + ul { + margin-left: 0px; + padding-left: 0px; + li a:hover { + text-decoration: underline; + } + } +} + +.end_footer { + background: #222222; +} + +.footer { + padding-top: 20px; + padding-bottom: 20px; + border-bottom: #2b2b2b 1px solid; +} + +.end_footer p { + margin-top: 10px; + font-size: 13px; + color: #fff; + text-align: left; +} + +.footer-logo { + margin-left: auto; + margin-right: auto; + width: 150px; + height: 150px; + padding: 0px; +} + +@media screen and (max-width: 480px) { + .left-syms li a span { + display: block; + } +} \ No newline at end of file diff --git a/_sass/_syntax-highlighting.scss b/_sass/_syntax-highlighting.scss new file mode 100644 index 0000000..9511957 --- /dev/null +++ b/_sass/_syntax-highlighting.scss @@ -0,0 +1,115 @@ + +.pln { + color: #000; +} + +/* plain text */ + +@media screen { + .str { + color: #080; + } + /* string content */ + .kwd { + color: #008; + } + /* a keyword */ + .com { + color: #800; + } + /* a comment */ + .typ { + color: #606; + } + /* a type name */ + .lit { + color: #066; + } + /* a literal value */ + /* punctuation, lisp open bracket, lisp close bracket */ + .pun, .opn, .clo { + color: #660; + } + .tag { + color: #008; + } + /* a markup tag name */ + .atn { + color: #606; + } + /* a markup attribute name */ + .atv { + color: #080; + } + /* a markup attribute value */ + .dec, .var { + color: #606; + } + /* a declaration; a variable name */ + .fun { + color: red; + } + /* a function name */ +} + +/* Use higher contrast and text-weight for printable form. */ +@media print, projection { + .str { + color: #060; + } + .kwd { + color: #006; + font-weight: bold; + } + .com { + color: #600; + font-style: italic; + } + .typ { + color: #404; + font-weight: bold; + } + .lit { + color: #044; + } + .pun, .opn, .clo { + color: #440; + } + .tag { + color: #006; + font-weight: bold; + } + .atn { + color: #404; + } + .atv { + color: #060; + } +} + +/* Put a border around prettyprinted code snippets. */ + +pre.prettyprint { + padding: 2px; + border: 1px solid #888; +} + +/* Specify class=linenums on a pre to get line numbering */ + +ol.linenums { + margin-top: 0; + margin-bottom: 0; +} + +/* IE indents via margin-left */ + +li { + &.L0, &.L1, &.L2, &.L3, &.L5, &.L6, &.L7, &.L8 { + list-style-type: none; + } + &.L1, &.L3, &.L5, &.L7, &.L9 { + background: #eee; + } +} + +/* Alternate shading for lines */ \ No newline at end of file diff --git a/atom.xml b/atom.xml new file mode 100644 index 0000000..a6628bd --- /dev/null +++ b/atom.xml @@ -0,0 +1,30 @@ +--- +layout: null +--- + + + + {{ site.title | xml_escape }} + {{ site.description | xml_escape }} + {{ site.url }}{{ site.baseurl }}/ + + {{ site.time | date_to_rfc822 }} + {{ site.time | date_to_rfc822 }} + Jekyll v{{ jekyll.version }} + {% for post in site.posts limit:10 %} + + {{ post.title | xml_escape }} + {{ post.content | xml_escape }} + {{ post.date | date_to_rfc822 }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {% for tag in post.tags %} + {{ tag | xml_escape }} + {% endfor %} + {% for cat in post.categories %} + {{ cat | xml_escape }} + {% endfor %} + + {% endfor %} + + diff --git a/contribute.md b/contribute.md new file mode 100644 index 0000000..e4f8503 --- /dev/null +++ b/contribute.md @@ -0,0 +1,8 @@ +--- +layout: page +title: Contribute +permalink: /contribute/ +--- + + +NB: Page is under construction and i'll be adding more details soon. \ No newline at end of file diff --git a/css/main.scss b/css/main.scss new file mode 100755 index 0000000..beee4e3 --- /dev/null +++ b/css/main.scss @@ -0,0 +1,52 @@ +--- +# Only the main Sass file needs front matter (the dashes are enough) +--- +@charset "utf-8"; + + + +// Our variables +$base-font-family: Helvetica, Arial, sans-serif; +$base-font-size: 16px; +$small-font-size: $base-font-size * 0.875; +$base-line-height: 1.5; + +$spacing-unit: 30px; + +$text-color: #111; +$background-color: #fdfdfd; +$brand-color: #2a7ae2; + +$grey-color: #828282; +$grey-color-light: lighten($grey-color, 40%); +$grey-color-dark: darken($grey-color, 25%); + +// Width of the content area +$content-width: 800px; + +$on-palm: 600px; +$on-laptop: 800px; + + + +// Using media queries with like this: +// @include media-query($on-palm) { +// .wrapper { +// padding-right: $spacing-unit / 2; +// padding-left: $spacing-unit / 2; +// } +// } +@mixin media-query($device) { + @media screen and (max-width: $device) { + @content; + } +} + + + +// Import partials from `sass_dir` (defaults to `_sass`) +@import + "base", + "layout", + "syntax-highlighting" +; diff --git a/donate.md b/donate.md new file mode 100644 index 0000000..a7c8387 --- /dev/null +++ b/donate.md @@ -0,0 +1,8 @@ +--- +layout: page +title: Donate +permalink: /donate/ +--- + + +Page is under construction and i'll be adding more details soon. diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..444426a5622a3d5c743a5f3ee8abacdde9ba6a56 GIT binary patch literal 1031 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�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 I;$z_d0+}QVdH?_b literal 0 HcmV?d00001 diff --git a/index.html b/index.html index a7e19d4..8a729ae 100644 --- a/index.html +++ b/index.html @@ -1 +1,54 @@ -Does this thing work? +--- +layout: default +index: true +--- + + +

+
+
+ +
+ {% for post in site.posts %} +

{{ post.title }}

+

 {{ post.date | date: "%b %-d, %Y" }} | {% if site.disqus_short_name and page.comments != false and site.disqus_show_comment_count == true %} + Comments + {% endif %}

+ {% if post.content contains '' %} +

{{ post.content | split:'' | first }} +

+ Read More +

+ {% else %} + {{ post.content }} + {% endif %} + {% endfor %} +
+ +
+ +
+ {% if site.feedburner_username %} +
+
+ +
+
+ + + + + + +
+

+ +
+ +
+ {% endif %} +
+ +
+
+ diff --git a/js/prettify.js b/js/prettify.js new file mode 100644 index 0000000..10c9fb7 --- /dev/null +++ b/js/prettify.js @@ -0,0 +1,1655 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * some functions for browser-side pretty printing of code contained in html. + * + *

+ * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

+ * Usage:

    + *
  1. include this source file in an html page via + * {@code } + *
  2. define style rules. See the example page for examples. + *
  3. mark the {@code
    } and {@code } tags in your source with
    + *    {@code class=prettyprint.}
    + *    You can also use the (html deprecated) {@code } tag, but the pretty
    + *    printer needs to do more substantial DOM manipulations to support that, so
    + *    some css styles may not be preserved.
    + * </ol>
    + * That's it.  I wanted to keep the API as simple as possible, so there's no
    + * need to specify which language the code is in, but if you wish, you can add
    + * another class to the {@code <pre>} or {@code <code>} element to specify the
    + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
    + * starts with "lang-" followed by a file extension, specifies the file type.
    + * See the "lang-*.js" files in this directory for code that implements
    + * per-language file handlers.
    + * <p>
    + * Change log:<br>
    + * cbeust, 2006/08/22
    + * <blockquote>
    + *   Java annotations (start with "@") are now captured as literals ("lit")
    + * </blockquote>
    + * @requires console
    + */
    +
    +// JSLint declarations
    +/*global console, document, navigator, setTimeout, window, define */
    +
    +/** @define {boolean} */
    +var IN_GLOBAL_SCOPE = true;
    +
    +/**
    + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
    + * UI events.
    + * If set to {@code false}, {@code prettyPrint()} is synchronous.
    + */
    +window['PR_SHOULD_USE_CONTINUATION'] = true;
    +
    +/**
    + * Pretty print a chunk of code.
    + * @param {string} sourceCodeHtml The HTML to pretty print.
    + * @param {string} opt_langExtension The language name to use.
    + *     Typically, a filename extension like 'cpp' or 'java'.
    + * @param {number|boolean} opt_numberLines True to number lines,
    + *     or the 1-indexed number of the first line in sourceCodeHtml.
    + * @return {string} code as html, but prettier
    + */
    +var prettyPrintOne;
    +/**
    + * Find all the {@code <pre>} and {@code <code>} tags in the DOM with
    + * {@code class=prettyprint} and prettify them.
    + *
    + * @param {Function} opt_whenDone called when prettifying is done.
    + * @param {HTMLElement|HTMLDocument} opt_root an element or document
    + *   containing all the elements to pretty print.
    + *   Defaults to {@code document.body}.
    + */
    +var prettyPrint;
    +
    +
    +(function () {
    +  var win = window;
    +  // Keyword lists for various languages.
    +  // We use things that coerce to strings to make them compact when minified
    +  // and to defeat aggressive optimizers that fold large string constants.
    +  var FLOW_CONTROL_KEYWORDS = ["break,continue,do,else,for,if,return,while"];
    +  var C_KEYWORDS = [FLOW_CONTROL_KEYWORDS,"auto,case,char,const,default," + 
    +      "double,enum,extern,float,goto,inline,int,long,register,short,signed," +
    +      "sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];
    +  var COMMON_KEYWORDS = [C_KEYWORDS,"catch,class,delete,false,import," +
    +      "new,operator,private,protected,public,this,throw,true,try,typeof"];
    +  var CPP_KEYWORDS = [COMMON_KEYWORDS,"alignof,align_union,asm,axiom,bool," +
    +      "concept,concept_map,const_cast,constexpr,decltype,delegate," +
    +      "dynamic_cast,explicit,export,friend,generic,late_check," +
    +      "mutable,namespace,nullptr,property,reinterpret_cast,static_assert," +
    +      "static_cast,template,typeid,typename,using,virtual,where"];
    +  var JAVA_KEYWORDS = [COMMON_KEYWORDS,
    +      "abstract,assert,boolean,byte,extends,final,finally,implements,import," +
    +      "instanceof,interface,null,native,package,strictfp,super,synchronized," +
    +      "throws,transient"];
    +  var CSHARP_KEYWORDS = [JAVA_KEYWORDS,
    +      "as,base,by,checked,decimal,delegate,descending,dynamic,event," +
    +      "fixed,foreach,from,group,implicit,in,internal,into,is,let," +
    +      "lock,object,out,override,orderby,params,partial,readonly,ref,sbyte," +
    +      "sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort," +
    +      "var,virtual,where"];
    +  var COFFEE_KEYWORDS = "all,and,by,catch,class,else,extends,false,finally," +
    +      "for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then," +
    +      "throw,true,try,unless,until,when,while,yes";
    +  var JSCRIPT_KEYWORDS = [COMMON_KEYWORDS,
    +      "debugger,eval,export,function,get,null,set,undefined,var,with," +
    +      "Infinity,NaN"];
    +  var PERL_KEYWORDS = "caller,delete,die,do,dump,elsif,eval,exit,foreach,for," +
    +      "goto,if,import,last,local,my,next,no,our,print,package,redo,require," +
    +      "sub,undef,unless,until,use,wantarray,while,BEGIN,END";
    +  var PYTHON_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "and,as,assert,class,def,del," +
    +      "elif,except,exec,finally,from,global,import,in,is,lambda," +
    +      "nonlocal,not,or,pass,print,raise,try,with,yield," +
    +      "False,True,None"];
    +  var RUBY_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "alias,and,begin,case,class," +
    +      "def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo," +
    +      "rescue,retry,self,super,then,true,undef,unless,until,when,yield," +
    +      "BEGIN,END"];
    +   var RUST_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "as,assert,const,copy,drop," +
    +      "enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv," +
    +      "pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"];
    +  var SH_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "case,done,elif,esac,eval,fi," +
    +      "function,in,local,set,then,until"];
    +  var ALL_KEYWORDS = [
    +      CPP_KEYWORDS, CSHARP_KEYWORDS, JSCRIPT_KEYWORDS, PERL_KEYWORDS,
    +      PYTHON_KEYWORDS, RUBY_KEYWORDS, SH_KEYWORDS];
    +  var C_TYPES = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/;
    +
    +  // token style names.  correspond to css classes
    +  /**
    +   * token style for a string literal
    +   * @const
    +   */
    +  var PR_STRING = 'str';
    +  /**
    +   * token style for a keyword
    +   * @const
    +   */
    +  var PR_KEYWORD = 'kwd';
    +  /**
    +   * token style for a comment
    +   * @const
    +   */
    +  var PR_COMMENT = 'com';
    +  /**
    +   * token style for a type
    +   * @const
    +   */
    +  var PR_TYPE = 'typ';
    +  /**
    +   * token style for a literal value.  e.g. 1, null, true.
    +   * @const
    +   */
    +  var PR_LITERAL = 'lit';
    +  /**
    +   * token style for a punctuation string.
    +   * @const
    +   */
    +  var PR_PUNCTUATION = 'pun';
    +  /**
    +   * token style for plain text.
    +   * @const
    +   */
    +  var PR_PLAIN = 'pln';
    +
    +  /**
    +   * token style for an sgml tag.
    +   * @const
    +   */
    +  var PR_TAG = 'tag';
    +  /**
    +   * token style for a markup declaration such as a DOCTYPE.
    +   * @const
    +   */
    +  var PR_DECLARATION = 'dec';
    +  /**
    +   * token style for embedded source.
    +   * @const
    +   */
    +  var PR_SOURCE = 'src';
    +  /**
    +   * token style for an sgml attribute name.
    +   * @const
    +   */
    +  var PR_ATTRIB_NAME = 'atn';
    +  /**
    +   * token style for an sgml attribute value.
    +   * @const
    +   */
    +  var PR_ATTRIB_VALUE = 'atv';
    +
    +  /**
    +   * A class that indicates a section of markup that is not code, e.g. to allow
    +   * embedding of line numbers within code listings.
    +   * @const
    +   */
    +  var PR_NOCODE = 'nocode';
    +
    +  
    +  
    +  /**
    +   * A set of tokens that can precede a regular expression literal in
    +   * javascript
    +   * http://web.archive.org/web/20070717142515/http://www.mozilla.org/js/language/js20/rationale/syntax.html
    +   * has the full list, but I've removed ones that might be problematic when
    +   * seen in languages that don't support regular expression literals.
    +   *
    +   * <p>Specifically, I've removed any keywords that can't precede a regexp
    +   * literal in a syntactically legal javascript program, and I've removed the
    +   * "in" keyword since it's not a keyword in many languages, and might be used
    +   * as a count of inches.
    +   *
    +   * <p>The link above does not accurately describe EcmaScript rules since
    +   * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
    +   * very well in practice.
    +   *
    +   * @private
    +   * @const
    +   */
    +  var REGEXP_PRECEDER_PATTERN = '(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*';
    +  
    +  // CAVEAT: this does not properly handle the case where a regular
    +  // expression immediately follows another since a regular expression may
    +  // have flags for case-sensitivity and the like.  Having regexp tokens
    +  // adjacent is not valid in any language I'm aware of, so I'm punting.
    +  // TODO: maybe style special characters inside a regexp as punctuation.
    +
    +  /**
    +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
    +   * matches the union of the sets of strings matched by the input RegExp.
    +   * Since it matches globally, if the input strings have a start-of-input
    +   * anchor (/^.../), it is ignored for the purposes of unioning.
    +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
    +   * @return {RegExp} a global regex.
    +   */
    +  function combinePrefixPatterns(regexs) {
    +    var capturedGroupIndex = 0;
    +  
    +    var needToFoldCase = false;
    +    var ignoreCase = false;
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.ignoreCase) {
    +        ignoreCase = true;
    +      } else if (/[a-z]/i.test(regex.source.replace(
    +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
    +        needToFoldCase = true;
    +        ignoreCase = false;
    +        break;
    +      }
    +    }
    +  
    +    var escapeCharToCodeUnit = {
    +      'b': 8,
    +      't': 9,
    +      'n': 0xa,
    +      'v': 0xb,
    +      'f': 0xc,
    +      'r': 0xd
    +    };
    +  
    +    function decodeEscape(charsetPart) {
    +      var cc0 = charsetPart.charCodeAt(0);
    +      if (cc0 !== 92 /* \\ */) {
    +        return cc0;
    +      }
    +      var c1 = charsetPart.charAt(1);
    +      cc0 = escapeCharToCodeUnit[c1];
    +      if (cc0) {
    +        return cc0;
    +      } else if ('0' <= c1 && c1 <= '7') {
    +        return parseInt(charsetPart.substring(1), 8);
    +      } else if (c1 === 'u' || c1 === 'x') {
    +        return parseInt(charsetPart.substring(2), 16);
    +      } else {
    +        return charsetPart.charCodeAt(1);
    +      }
    +    }
    +  
    +    function encodeEscape(charCode) {
    +      if (charCode < 0x20) {
    +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
    +      }
    +      var ch = String.fromCharCode(charCode);
    +      return (ch === '\\' || ch === '-' || ch === ']' || ch === '^')
    +          ? "\\" + ch : ch;
    +    }
    +  
    +    function caseFoldCharset(charSet) {
    +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
    +          new RegExp(
    +              '\\\\u[0-9A-Fa-f]{4}'
    +              + '|\\\\x[0-9A-Fa-f]{2}'
    +              + '|\\\\[0-3][0-7]{0,2}'
    +              + '|\\\\[0-7]{1,2}'
    +              + '|\\\\[\\s\\S]'
    +              + '|-'
    +              + '|[^-\\\\]',
    +              'g'));
    +      var ranges = [];
    +      var inverse = charsetParts[0] === '^';
    +  
    +      var out = ['['];
    +      if (inverse) { out.push('^'); }
    +  
    +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
    +        var p = charsetParts[i];
    +        if (/\\[bdsw]/i.test(p)) {  // Don't muck with named groups.
    +          out.push(p);
    +        } else {
    +          var start = decodeEscape(p);
    +          var end;
    +          if (i + 2 < n && '-' === charsetParts[i + 1]) {
    +            end = decodeEscape(charsetParts[i + 2]);
    +            i += 2;
    +          } else {
    +            end = start;
    +          }
    +          ranges.push([start, end]);
    +          // If the range might intersect letters, then expand it.
    +          // This case handling is too simplistic.
    +          // It does not deal with non-latin case folding.
    +          // It works for latin source code identifiers though.
    +          if (!(end < 65 || start > 122)) {
    +            if (!(end < 65 || start > 90)) {
    +              ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
    +            }
    +            if (!(end < 97 || start > 122)) {
    +              ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
    +            }
    +          }
    +        }
    +      }
    +  
    +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
    +      // -> [[1, 12], [14, 14], [16, 17]]
    +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
    +      var consolidatedRanges = [];
    +      var lastRange = [];
    +      for (var i = 0; i < ranges.length; ++i) {
    +        var range = ranges[i];
    +        if (range[0] <= lastRange[1] + 1) {
    +          lastRange[1] = Math.max(lastRange[1], range[1]);
    +        } else {
    +          consolidatedRanges.push(lastRange = range);
    +        }
    +      }
    +  
    +      for (var i = 0; i < consolidatedRanges.length; ++i) {
    +        var range = consolidatedRanges[i];
    +        out.push(encodeEscape(range[0]));
    +        if (range[1] > range[0]) {
    +          if (range[1] + 1 > range[0]) { out.push('-'); }
    +          out.push(encodeEscape(range[1]));
    +        }
    +      }
    +      out.push(']');
    +      return out.join('');
    +    }
    +  
    +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
    +      // Split into character sets, escape sequences, punctuation strings
    +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
    +      // include any of the above.
    +      var parts = regex.source.match(
    +          new RegExp(
    +              '(?:'
    +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
    +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
    +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
    +              + '|\\\\[0-9]+'  // a back-reference or octal escape
    +              + '|\\\\[^ux0-9]'  // other escape sequence
    +              + '|\\(\\?[:!=]'  // start of a non-capturing group
    +              + '|[\\(\\)\\^]'  // start/end of a group, or line start
    +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
    +              + ')',
    +              'g'));
    +      var n = parts.length;
    +  
    +      // Maps captured group numbers to the number they will occupy in
    +      // the output or to -1 if that has not been determined, or to
    +      // undefined if they need not be capturing in the output.
    +      var capturedGroups = [];
    +  
    +      // Walk over and identify back references to build the capturedGroups
    +      // mapping.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          // groups are 1-indexed, so max group index is count of '('
    +          ++groupIndex;
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue) {
    +            if (decimalValue <= groupIndex) {
    +              capturedGroups[decimalValue] = -1;
    +            } else {
    +              // Replace with an unambiguous escape sequence so that
    +              // an octal escape sequence does not turn into a backreference
    +              // to a capturing group from an earlier regex.
    +              parts[i] = encodeEscape(decimalValue);
    +            }
    +          }
    +        }
    +      }
    +  
    +      // Renumber groups and reduce capturing groups to non-capturing groups
    +      // where possible.
    +      for (var i = 1; i < capturedGroups.length; ++i) {
    +        if (-1 === capturedGroups[i]) {
    +          capturedGroups[i] = ++capturedGroupIndex;
    +        }
    +      }
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          ++groupIndex;
    +          if (!capturedGroups[groupIndex]) {
    +            parts[i] = '(?:';
    +          }
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            parts[i] = '\\' + capturedGroups[decimalValue];
    +          }
    +        }
    +      }
    +  
    +      // Remove any prefix anchors so that the output will match anywhere.
    +      // ^^ really does mean an anchored match though.
    +      for (var i = 0; i < n; ++i) {
    +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
    +      }
    +  
    +      // Expand letters to groups to handle mixing of case-sensitive and
    +      // case-insensitive patterns if necessary.
    +      if (regex.ignoreCase && needToFoldCase) {
    +        for (var i = 0; i < n; ++i) {
    +          var p = parts[i];
    +          var ch0 = p.charAt(0);
    +          if (p.length >= 2 && ch0 === '[') {
    +            parts[i] = caseFoldCharset(p);
    +          } else if (ch0 !== '\\') {
    +            // TODO: handle letters in numeric escapes.
    +            parts[i] = p.replace(
    +                /[a-zA-Z]/g,
    +                function (ch) {
    +                  var cc = ch.charCodeAt(0);
    +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
    +                });
    +          }
    +        }
    +      }
    +  
    +      return parts.join('');
    +    }
    +  
    +    var rewritten = [];
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
    +      rewritten.push(
    +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
    +    }
    +  
    +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
    +  }
    +
    +  /**
    +   * Split markup into a string of source code and an array mapping ranges in
    +   * that string to the text nodes in which they appear.
    +   *
    +   * <p>
    +   * The HTML DOM structure:</p>
    +   * <pre>
    +   * (Element   "p"
    +   *   (Element "b"
    +   *     (Text  "print "))       ; #1
    +   *   (Text    "'Hello '")      ; #2
    +   *   (Element "br")            ; #3
    +   *   (Text    "  + 'World';")) ; #4
    +   * </pre>
    +   * <p>
    +   * corresponds to the HTML
    +   * {@code <p><b>print </b>'Hello '<br>  + 'World';</p>}.</p>
    +   *
    +   * <p>
    +   * It will produce the output:</p>
    +   * <pre>
    +   * {
    +   *   sourceCode: "print 'Hello '\n  + 'World';",
    +   *   //                     1          2
    +   *   //           012345678901234 5678901234567
    +   *   spans: [0, #1, 6, #2, 14, #3, 15, #4]
    +   * }
    +   * </pre>
    +   * <p>
    +   * where #1 is a reference to the {@code "print "} text node above, and so
    +   * on for the other text nodes.
    +   * </p>
    +   *
    +   * <p>
    +   * The {@code} spans array is an array of pairs.  Even elements are the start
    +   * indices of substrings, and odd elements are the text nodes (or BR elements)
    +   * that contain the text for those substrings.
    +   * Substrings continue until the next index or the end of the source.
    +   * </p>
    +   *
    +   * @param {Node} node an HTML DOM subtree containing source-code.
    +   * @param {boolean} isPreformatted true if white-space in text nodes should
    +   *    be considered significant.
    +   * @return {Object} source code and the text nodes in which they occur.
    +   */
    +  function extractSourceSpans(node, isPreformatted) {
    +    var nocode = /(?:^|\s)nocode(?:\s|$)/;
    +  
    +    var chunks = [];
    +    var length = 0;
    +    var spans = [];
    +    var k = 0;
    +  
    +    function walk(node) {
    +      var type = node.nodeType;
    +      if (type == 1) {  // Element
    +        if (nocode.test(node.className)) { return; }
    +        for (var child = node.firstChild; child; child = child.nextSibling) {
    +          walk(child);
    +        }
    +        var nodeName = node.nodeName.toLowerCase();
    +        if ('br' === nodeName || 'li' === nodeName) {
    +          chunks[k] = '\n';
    +          spans[k << 1] = length++;
    +          spans[(k++ << 1) | 1] = node;
    +        }
    +      } else if (type == 3 || type == 4) {  // Text
    +        var text = node.nodeValue;
    +        if (text.length) {
    +          if (!isPreformatted) {
    +            text = text.replace(/[ \t\r\n]+/g, ' ');
    +          } else {
    +            text = text.replace(/\r\n?/g, '\n');  // Normalize newlines.
    +          }
    +          // TODO: handle tabs here?
    +          chunks[k] = text;
    +          spans[k << 1] = length;
    +          length += text.length;
    +          spans[(k++ << 1) | 1] = node;
    +        }
    +      }
    +    }
    +  
    +    walk(node);
    +  
    +    return {
    +      sourceCode: chunks.join('').replace(/\n$/, ''),
    +      spans: spans
    +    };
    +  }
    +
    +  /**
    +   * Apply the given language handler to sourceCode and add the resulting
    +   * decorations to out.
    +   * @param {number} basePos the index of sourceCode within the chunk of source
    +   *    whose decorations are already present on out.
    +   */
    +  function appendDecorations(basePos, sourceCode, langHandler, out) {
    +    if (!sourceCode) { return; }
    +    var job = {
    +      sourceCode: sourceCode,
    +      basePos: basePos
    +    };
    +    langHandler(job);
    +    out.push.apply(out, job.decorations);
    +  }
    +
    +  var notWs = /\S/;
    +
    +  /**
    +   * Given an element, if it contains only one child element and any text nodes
    +   * it contains contain only space characters, return the sole child element.
    +   * Otherwise returns undefined.
    +   * <p>
    +   * This is meant to return the CODE element in {@code <pre><code ...>} when
    +   * there is a single child element that contains all the non-space textual
    +   * content, but not to return anything where there are multiple child elements
    +   * as in {@code <pre><code>...</code><code>...</code></pre>} or when there
    +   * is textual content.
    +   */
    +  function childContentWrapper(element) {
    +    var wrapper = undefined;
    +    for (var c = element.firstChild; c; c = c.nextSibling) {
    +      var type = c.nodeType;
    +      wrapper = (type === 1)  // Element Node
    +          ? (wrapper ? element : c)
    +          : (type === 3)  // Text Node
    +          ? (notWs.test(c.nodeValue) ? element : wrapper)
    +          : wrapper;
    +    }
    +    return wrapper === element ? undefined : wrapper;
    +  }
    +
    +  /** Given triples of [style, pattern, context] returns a lexing function,
    +    * The lexing function interprets the patterns to find token boundaries and
    +    * returns a decoration list of the form
    +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
    +    * where index_n is an index into the sourceCode, and style_n is a style
    +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
    +    * all characters in sourceCode[index_n-1:index_n].
    +    *
    +    * The stylePatterns is a list whose elements have the form
    +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
    +    *
    +    * Style is a style constant like PR_PLAIN, or can be a string of the
    +    * form 'lang-FOO', where FOO is a language extension describing the
    +    * language of the portion of the token in $1 after pattern executes.
    +    * E.g., if style is 'lang-lisp', and group 1 contains the text
    +    * '(hello (world))', then that portion of the token will be passed to the
    +    * registered lisp handler for formatting.
    +    * The text before and after group 1 will be restyled using this decorator
    +    * so decorators should take care that this doesn't result in infinite
    +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
    +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
    +    * '<script>foo()<\/script>', which would cause the current decorator to
    +    * be called with '<script>' which would not match the same rule since
    +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
    +    * the generic tag rule.  The handler registered for the 'js' extension would
    +    * then be called with 'foo()', and finally, the current decorator would
    +    * be called with '<\/script>' which would not match the original rule and
    +    * so the generic tag rule would identify it as a tag.
    +    *
    +    * Pattern must only match prefixes, and if it matches a prefix, then that
    +    * match is considered a token with the same style.
    +    *
    +    * Context is applied to the last non-whitespace, non-comment token
    +    * recognized.
    +    *
    +    * Shortcut is an optional string of characters, any of which, if the first
    +    * character, gurantee that this pattern and only this pattern matches.
    +    *
    +    * @param {Array} shortcutStylePatterns patterns that always start with
    +    *   a known character.  Must have a shortcut string.
    +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
    +    *   order if the shortcut ones fail.  May have shortcuts.
    +    *
    +    * @return {function (Object)} a
    +    *   function that takes source code and returns a list of decorations.
    +    */
    +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
    +    var shortcuts = {};
    +    var tokenizer;
    +    (function () {
    +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
    +      var allRegexs = [];
    +      var regexKeys = {};
    +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
    +        var patternParts = allPatterns[i];
    +        var shortcutChars = patternParts[3];
    +        if (shortcutChars) {
    +          for (var c = shortcutChars.length; --c >= 0;) {
    +            shortcuts[shortcutChars.charAt(c)] = patternParts;
    +          }
    +        }
    +        var regex = patternParts[1];
    +        var k = '' + regex;
    +        if (!regexKeys.hasOwnProperty(k)) {
    +          allRegexs.push(regex);
    +          regexKeys[k] = null;
    +        }
    +      }
    +      allRegexs.push(/[\0-\uffff]/);
    +      tokenizer = combinePrefixPatterns(allRegexs);
    +    })();
    +
    +    var nPatterns = fallthroughStylePatterns.length;
    +
    +    /**
    +     * Lexes job.sourceCode and produces an output array job.decorations of
    +     * style classes preceded by the position at which they start in
    +     * job.sourceCode in order.
    +     *
    +     * @param {Object} job an object like <pre>{
    +     *    sourceCode: {string} sourceText plain text,
    +     *    basePos: {int} position of job.sourceCode in the larger chunk of
    +     *        sourceCode.
    +     * }</pre>
    +     */
    +    var decorate = function (job) {
    +      var sourceCode = job.sourceCode, basePos = job.basePos;
    +      /** Even entries are positions in source in ascending order.  Odd enties
    +        * are style markers (e.g., PR_COMMENT) that run from that position until
    +        * the end.
    +        * @type {Array.<number|string>}
    +        */
    +      var decorations = [basePos, PR_PLAIN];
    +      var pos = 0;  // index into sourceCode
    +      var tokens = sourceCode.match(tokenizer) || [];
    +      var styleCache = {};
    +
    +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
    +        var token = tokens[ti];
    +        var style = styleCache[token];
    +        var match = void 0;
    +
    +        var isEmbedded;
    +        if (typeof style === 'string') {
    +          isEmbedded = false;
    +        } else {
    +          var patternParts = shortcuts[token.charAt(0)];
    +          if (patternParts) {
    +            match = token.match(patternParts[1]);
    +            style = patternParts[0];
    +          } else {
    +            for (var i = 0; i < nPatterns; ++i) {
    +              patternParts = fallthroughStylePatterns[i];
    +              match = token.match(patternParts[1]);
    +              if (match) {
    +                style = patternParts[0];
    +                break;
    +              }
    +            }
    +
    +            if (!match) {  // make sure that we make progress
    +              style = PR_PLAIN;
    +            }
    +          }
    +
    +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
    +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
    +            isEmbedded = false;
    +            style = PR_SOURCE;
    +          }
    +
    +          if (!isEmbedded) { styleCache[token] = style; }
    +        }
    +
    +        var tokenStart = pos;
    +        pos += token.length;
    +
    +        if (!isEmbedded) {
    +          decorations.push(basePos + tokenStart, style);
    +        } else {  // Treat group 1 as an embedded block of source code.
    +          var embeddedSource = match[1];
    +          var embeddedSourceStart = token.indexOf(embeddedSource);
    +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
    +          if (match[2]) {
    +            // If embeddedSource can be blank, then it would match at the
    +            // beginning which would cause us to infinitely recurse on the
    +            // entire token, so we catch the right context in match[2].
    +            embeddedSourceEnd = token.length - match[2].length;
    +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
    +          }
    +          var lang = style.substring(5);
    +          // Decorate the left of the embedded source
    +          appendDecorations(
    +              basePos + tokenStart,
    +              token.substring(0, embeddedSourceStart),
    +              decorate, decorations);
    +          // Decorate the embedded source
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceStart,
    +              embeddedSource,
    +              langHandlerForExtension(lang, embeddedSource),
    +              decorations);
    +          // Decorate the right of the embedded section
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceEnd,
    +              token.substring(embeddedSourceEnd),
    +              decorate, decorations);
    +        }
    +      }
    +      job.decorations = decorations;
    +    };
    +    return decorate;
    +  }
    +
    +  /** returns a function that produces a list of decorations from source text.
    +    *
    +    * This code treats ", ', and ` as string delimiters, and \ as a string
    +    * escape.  It does not recognize perl's qq() style strings.
    +    * It has no special handling for double delimiter escapes as in basic, or
    +    * the tripled delimiters used in python, but should work on those regardless
    +    * although in those cases a single string literal may be broken up into
    +    * multiple adjacent string literals.
    +    *
    +    * It recognizes C, C++, and shell style comments.
    +    *
    +    * @param {Object} options a set of optional parameters.
    +    * @return {function (Object)} a function that examines the source code
    +    *     in the input job and builds the decoration list.
    +    */
    +  function sourceDecorator(options) {
    +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
    +    if (options['tripleQuotedStrings']) {
    +      // '''multi-line-string''', 'single-line-string', and double-quoted
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
    +           null, '\'"']);
    +    } else if (options['multiLineStrings']) {
    +      // 'multi-line-string', "multi-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
    +           null, '\'"`']);
    +    } else {
    +      // 'single-line-string', "single-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,
    +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
    +           null, '"\'']);
    +    }
    +    if (options['verbatimStrings']) {
    +      // verbatim-string-literal production from the C# grammar.  See issue 93.
    +      fallthroughStylePatterns.push(
    +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
    +    }
    +    var hc = options['hashComments'];
    +    if (hc) {
    +      if (options['cStyleComments']) {
    +        if (hc > 1) {  // multiline hash comments
    +          shortcutStylePatterns.push(
    +              [PR_COMMENT, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']);
    +        } else {
    +          // Stop C preprocessor declarations at an unclosed open comment
    +          shortcutStylePatterns.push(
    +              [PR_COMMENT, /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,
    +               null, '#']);
    +        }
    +        // #include <stdio.h>
    +        fallthroughStylePatterns.push(
    +            [PR_STRING,
    +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,
    +             null]);
    +      } else {
    +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
    +      }
    +    }
    +    if (options['cStyleComments']) {
    +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
    +      fallthroughStylePatterns.push(
    +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
    +    }
    +    var regexLiterals = options['regexLiterals'];
    +    if (regexLiterals) {
    +      /**
    +       * @const
    +       */
    +      var regexExcls = regexLiterals > 1
    +        ? ''  // Multiline regex literals
    +        : '\n\r';
    +      /**
    +       * @const
    +       */
    +      var regexAny = regexExcls ? '.' : '[\\S\\s]';
    +      /**
    +       * @const
    +       */
    +      var REGEX_LITERAL = (
    +          // A regular expression literal starts with a slash that is
    +          // not followed by * or / so that it is not confused with
    +          // comments.
    +          '/(?=[^/*' + regexExcls + '])'
    +          // and then contains any number of raw characters,
    +          + '(?:[^/\\x5B\\x5C' + regexExcls + ']'
    +          // escape sequences (\x5C),
    +          +    '|\\x5C' + regexAny
    +          // or non-nesting character sets (\x5B\x5D);
    +          +    '|\\x5B(?:[^\\x5C\\x5D' + regexExcls + ']'
    +          +             '|\\x5C' + regexAny + ')*(?:\\x5D|$))+'
    +          // finally closed by a /.
    +          + '/');
    +      fallthroughStylePatterns.push(
    +          ['lang-regex',
    +           RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
    +           ]);
    +    }
    +
    +    var types = options['types'];
    +    if (types) {
    +      fallthroughStylePatterns.push([PR_TYPE, types]);
    +    }
    +
    +    var keywords = ("" + options['keywords']).replace(/^ | $/g, '');
    +    if (keywords.length) {
    +      fallthroughStylePatterns.push(
    +          [PR_KEYWORD,
    +           new RegExp('^(?:' + keywords.replace(/[\s,]+/g, '|') + ')\\b'),
    +           null]);
    +    }
    +
    +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
    +
    +    var punctuation =
    +      // The Bash man page says
    +
    +      // A word is a sequence of characters considered as a single
    +      // unit by GRUB. Words are separated by metacharacters,
    +      // which are the following plus space, tab, and newline: { }
    +      // | & $ ; < >
    +      // ...
    +      
    +      // A word beginning with # causes that word and all remaining
    +      // characters on that line to be ignored.
    +
    +      // which means that only a '#' after /(?:^|[{}|&$;<>\s])/ starts a
    +      // comment but empirically
    +      // $ echo {#}
    +      // {#}
    +      // $ echo \$#
    +      // $#
    +      // $ echo }#
    +      // }#
    +
    +      // so /(?:^|[|&;<>\s])/ is more appropriate.
    +
    +      // http://gcc.gnu.org/onlinedocs/gcc-2.95.3/cpp_1.html#SEC3
    +      // suggests that this definition is compatible with a
    +      // default mode that tries to use a single token definition
    +      // to recognize both bash/python style comments and C
    +      // preprocessor directives.
    +
    +      // This definition of punctuation does not include # in the list of
    +      // follow-on exclusions, so # will not be broken before if preceeded
    +      // by a punctuation character.  We could try to exclude # after
    +      // [|&;<>] but that doesn't seem to cause many major problems.
    +      // If that does turn out to be a problem, we should change the below
    +      // when hc is truthy to include # in the run of punctuation characters
    +      // only when not followint [|&;<>].
    +      '^.[^\\s\\w.$@\'"`/\\\\]*';
    +    if (options['regexLiterals']) {
    +      punctuation += '(?!\s*\/)';
    +    }
    +
    +    fallthroughStylePatterns.push(
    +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
    +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_TYPE,        /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null],
    +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_LITERAL,
    +         new RegExp(
    +             '^(?:'
    +             // A hex number
    +             + '0x[a-f0-9]+'
    +             // or an octal or decimal number,
    +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
    +             // possibly in scientific notation
    +             + '(?:e[+\\-]?\\d+)?'
    +             + ')'
    +             // with an optional modifier like UL for unsigned long
    +             + '[a-z]*', 'i'),
    +         null, '0123456789'],
    +        // Don't treat escaped quotes in bash as starting strings.
    +        // See issue 144.
    +        [PR_PLAIN,       /^\\[\s\S]?/, null],
    +        [PR_PUNCTUATION, new RegExp(punctuation), null]);
    +
    +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
    +  }
    +
    +  var decorateSource = sourceDecorator({
    +        'keywords': ALL_KEYWORDS,
    +        'hashComments': true,
    +        'cStyleComments': true,
    +        'multiLineStrings': true,
    +        'regexLiterals': true
    +      });
    +
    +  /**
    +   * Given a DOM subtree, wraps it in a list, and puts each line into its own
    +   * list item.
    +   *
    +   * @param {Node} node modified in place.  Its content is pulled into an
    +   *     HTMLOListElement, and each line is moved into a separate list item.
    +   *     This requires cloning elements, so the input might not have unique
    +   *     IDs after numbering.
    +   * @param {boolean} isPreformatted true iff white-space in text nodes should
    +   *     be treated as significant.
    +   */
    +  function numberLines(node, opt_startLineNum, isPreformatted) {
    +    var nocode = /(?:^|\s)nocode(?:\s|$)/;
    +    var lineBreak = /\r\n?|\n/;
    +  
    +    var document = node.ownerDocument;
    +  
    +    var li = document.createElement('li');
    +    while (node.firstChild) {
    +      li.appendChild(node.firstChild);
    +    }
    +    // An array of lines.  We split below, so this is initialized to one
    +    // un-split line.
    +    var listItems = [li];
    +  
    +    function walk(node) {
    +      var type = node.nodeType;
    +      if (type == 1 && !nocode.test(node.className)) {  // Element
    +        if ('br' === node.nodeName) {
    +          breakAfter(node);
    +          // Discard the <BR> since it is now flush against a </LI>.
    +          if (node.parentNode) {
    +            node.parentNode.removeChild(node);
    +          }
    +        } else {
    +          for (var child = node.firstChild; child; child = child.nextSibling) {
    +            walk(child);
    +          }
    +        }
    +      } else if ((type == 3 || type == 4) && isPreformatted) {  // Text
    +        var text = node.nodeValue;
    +        var match = text.match(lineBreak);
    +        if (match) {
    +          var firstLine = text.substring(0, match.index);
    +          node.nodeValue = firstLine;
    +          var tail = text.substring(match.index + match[0].length);
    +          if (tail) {
    +            var parent = node.parentNode;
    +            parent.insertBefore(
    +              document.createTextNode(tail), node.nextSibling);
    +          }
    +          breakAfter(node);
    +          if (!firstLine) {
    +            // Don't leave blank text nodes in the DOM.
    +            node.parentNode.removeChild(node);
    +          }
    +        }
    +      }
    +    }
    +  
    +    // Split a line after the given node.
    +    function breakAfter(lineEndNode) {
    +      // If there's nothing to the right, then we can skip ending the line
    +      // here, and move root-wards since splitting just before an end-tag
    +      // would require us to create a bunch of empty copies.
    +      while (!lineEndNode.nextSibling) {
    +        lineEndNode = lineEndNode.parentNode;
    +        if (!lineEndNode) { return; }
    +      }
    +  
    +      function breakLeftOf(limit, copy) {
    +        // Clone shallowly if this node needs to be on both sides of the break.
    +        var rightSide = copy ? limit.cloneNode(false) : limit;
    +        var parent = limit.parentNode;
    +        if (parent) {
    +          // We clone the parent chain.
    +          // This helps us resurrect important styling elements that cross lines.
    +          // E.g. in <i>Foo<br>Bar</i>
    +          // should be rewritten to <li><i>Foo</i></li><li><i>Bar</i></li>.
    +          var parentClone = breakLeftOf(parent, 1);
    +          // Move the clone and everything to the right of the original
    +          // onto the cloned parent.
    +          var next = limit.nextSibling;
    +          parentClone.appendChild(rightSide);
    +          for (var sibling = next; sibling; sibling = next) {
    +            next = sibling.nextSibling;
    +            parentClone.appendChild(sibling);
    +          }
    +        }
    +        return rightSide;
    +      }
    +  
    +      var copiedListItem = breakLeftOf(lineEndNode.nextSibling, 0);
    +  
    +      // Walk the parent chain until we reach an unattached LI.
    +      for (var parent;
    +           // Check nodeType since IE invents document fragments.
    +           (parent = copiedListItem.parentNode) && parent.nodeType === 1;) {
    +        copiedListItem = parent;
    +      }
    +      // Put it on the list of lines for later processing.
    +      listItems.push(copiedListItem);
    +    }
    +  
    +    // Split lines while there are lines left to split.
    +    for (var i = 0;  // Number of lines that have been split so far.
    +         i < listItems.length;  // length updated by breakAfter calls.
    +         ++i) {
    +      walk(listItems[i]);
    +    }
    +  
    +    // Make sure numeric indices show correctly.
    +    if (opt_startLineNum === (opt_startLineNum|0)) {
    +      listItems[0].setAttribute('value', opt_startLineNum);
    +    }
    +  
    +    var ol = document.createElement('ol');
    +    ol.className = 'linenums';
    +    var offset = Math.max(0, ((opt_startLineNum - 1 /* zero index */)) | 0) || 0;
    +    for (var i = 0, n = listItems.length; i < n; ++i) {
    +      li = listItems[i];
    +      // Stick a class on the LIs so that stylesheets can
    +      // color odd/even rows, or any other row pattern that
    +      // is co-prime with 10.
    +      li.className = 'L' + ((i + offset) % 10);
    +      if (!li.firstChild) {
    +        li.appendChild(document.createTextNode('\xA0'));
    +      }
    +      ol.appendChild(li);
    +    }
    +  
    +    node.appendChild(ol);
    +  }
    +  /**
    +   * Breaks {@code job.sourceCode} around style boundaries in
    +   * {@code job.decorations} and modifies {@code job.sourceNode} in place.
    +   * @param {Object} job like <pre>{
    +   *    sourceCode: {string} source as plain text,
    +   *    sourceNode: {HTMLElement} the element containing the source,
    +   *    spans: {Array.<number|Node>} alternating span start indices into source
    +   *       and the text node or element (e.g. {@code <BR>}) corresponding to that
    +   *       span.
    +   *    decorations: {Array.<number|string} an array of style classes preceded
    +   *       by the position at which they start in job.sourceCode in order
    +   * }</pre>
    +   * @private
    +   */
    +  function recombineTagsAndDecorations(job) {
    +    var isIE8OrEarlier = /\bMSIE\s(\d+)/.exec(navigator.userAgent);
    +    isIE8OrEarlier = isIE8OrEarlier && +isIE8OrEarlier[1] <= 8;
    +    var newlineRe = /\n/g;
    +  
    +    var source = job.sourceCode;
    +    var sourceLength = source.length;
    +    // Index into source after the last code-unit recombined.
    +    var sourceIndex = 0;
    +  
    +    var spans = job.spans;
    +    var nSpans = spans.length;
    +    // Index into spans after the last span which ends at or before sourceIndex.
    +    var spanIndex = 0;
    +  
    +    var decorations = job.decorations;
    +    var nDecorations = decorations.length;
    +    // Index into decorations after the last decoration which ends at or before
    +    // sourceIndex.
    +    var decorationIndex = 0;
    +  
    +    // Remove all zero-length decorations.
    +    decorations[nDecorations] = sourceLength;
    +    var decPos, i;
    +    for (i = decPos = 0; i < nDecorations;) {
    +      if (decorations[i] !== decorations[i + 2]) {
    +        decorations[decPos++] = decorations[i++];
    +        decorations[decPos++] = decorations[i++];
    +      } else {
    +        i += 2;
    +      }
    +    }
    +    nDecorations = decPos;
    +  
    +    // Simplify decorations.
    +    for (i = decPos = 0; i < nDecorations;) {
    +      var startPos = decorations[i];
    +      // Conflate all adjacent decorations that use the same style.
    +      var startDec = decorations[i + 1];
    +      var end = i + 2;
    +      while (end + 2 <= nDecorations && decorations[end + 1] === startDec) {
    +        end += 2;
    +      }
    +      decorations[decPos++] = startPos;
    +      decorations[decPos++] = startDec;
    +      i = end;
    +    }
    +  
    +    nDecorations = decorations.length = decPos;
    +  
    +    var sourceNode = job.sourceNode;
    +    var oldDisplay;
    +    if (sourceNode) {
    +      oldDisplay = sourceNode.style.display;
    +      sourceNode.style.display = 'none';
    +    }
    +    try {
    +      var decoration = null;
    +      while (spanIndex < nSpans) {
    +        var spanStart = spans[spanIndex];
    +        var spanEnd = spans[spanIndex + 2] || sourceLength;
    +  
    +        var decEnd = decorations[decorationIndex + 2] || sourceLength;
    +  
    +        var end = Math.min(spanEnd, decEnd);
    +  
    +        var textNode = spans[spanIndex + 1];
    +        var styledText;
    +        if (textNode.nodeType !== 1  // Don't muck with <BR>s or <LI>s
    +            // Don't introduce spans around empty text nodes.
    +            && (styledText = source.substring(sourceIndex, end))) {
    +          // This may seem bizarre, and it is.  Emitting LF on IE causes the
    +          // code to display with spaces instead of line breaks.
    +          // Emitting Windows standard issue linebreaks (CRLF) causes a blank
    +          // space to appear at the beginning of every line but the first.
    +          // Emitting an old Mac OS 9 line separator makes everything spiffy.
    +          if (isIE8OrEarlier) {
    +            styledText = styledText.replace(newlineRe, '\r');
    +          }
    +          textNode.nodeValue = styledText;
    +          var document = textNode.ownerDocument;
    +          var span = document.createElement('span');
    +          span.className = decorations[decorationIndex + 1];
    +          var parentNode = textNode.parentNode;
    +          parentNode.replaceChild(span, textNode);
    +          span.appendChild(textNode);
    +          if (sourceIndex < spanEnd) {  // Split off a text node.
    +            spans[spanIndex + 1] = textNode
    +                // TODO: Possibly optimize by using '' if there's no flicker.
    +                = document.createTextNode(source.substring(end, spanEnd));
    +            parentNode.insertBefore(textNode, span.nextSibling);
    +          }
    +        }
    +  
    +        sourceIndex = end;
    +  
    +        if (sourceIndex >= spanEnd) {
    +          spanIndex += 2;
    +        }
    +        if (sourceIndex >= decEnd) {
    +          decorationIndex += 2;
    +        }
    +      }
    +    } finally {
    +      if (sourceNode) {
    +        sourceNode.style.display = oldDisplay;
    +      }
    +    }
    +  }
    +
    +  /** Maps language-specific file extensions to handlers. */
    +  var langHandlerRegistry = {};
    +  /** Register a language handler for the given file extensions.
    +    * @param {function (Object)} handler a function from source code to a list
    +    *      of decorations.  Takes a single argument job which describes the
    +    *      state of the computation.   The single parameter has the form
    +    *      {@code {
    +    *        sourceCode: {string} as plain text.
    +    *        decorations: {Array.<number|string>} an array of style classes
    +    *                     preceded by the position at which they start in
    +    *                     job.sourceCode in order.
    +    *                     The language handler should assigned this field.
    +    *        basePos: {int} the position of source in the larger source chunk.
    +    *                 All positions in the output decorations array are relative
    +    *                 to the larger source chunk.
    +    *      } }
    +    * @param {Array.<string>} fileExtensions
    +    */
    +  function registerLangHandler(handler, fileExtensions) {
    +    for (var i = fileExtensions.length; --i >= 0;) {
    +      var ext = fileExtensions[i];
    +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
    +        langHandlerRegistry[ext] = handler;
    +      } else if (win['console']) {
    +        console['warn']('cannot override language handler %s', ext);
    +      }
    +    }
    +  }
    +  function langHandlerForExtension(extension, source) {
    +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
    +      // Treat it as markup if the first non whitespace character is a < and
    +      // the last non-whitespace character is a >.
    +      extension = /^\s*</.test(source)
    +          ? 'default-markup'
    +          : 'default-code';
    +    }
    +    return langHandlerRegistry[extension];
    +  }
    +  registerLangHandler(decorateSource, ['default-code']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [],
    +          [
    +           [PR_PLAIN,       /^[^<?]+/],
    +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
    +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
    +           // Unescaped content in an unknown language
    +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
    +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
    +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
    +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
    +           // Unescaped content in javascript.  (Or possibly vbscript).
    +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
    +           // Contains unescaped stylesheet content
    +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
    +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
    +          ]),
    +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [
    +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
    +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
    +           ],
    +          [
    +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
    +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
    +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
    +           [PR_PUNCTUATION,  /^[=<>\/]+/],
    +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
    +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
    +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
    +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
    +           ]),
    +      ['in.tag']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CPP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true,
    +          'types': C_TYPES
    +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': 'null,true,false'
    +        }), ['json']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CSHARP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true,
    +          'verbatimStrings': true,
    +          'types': C_TYPES
    +        }), ['cs']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JAVA_KEYWORDS,
    +          'cStyleComments': true
    +        }), ['java']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': SH_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true
    +        }), ['bash', 'bsh', 'csh', 'sh']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PYTHON_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'tripleQuotedStrings': true
    +        }), ['cv', 'py', 'python']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PERL_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': 2  // multiline regex literals
    +        }), ['perl', 'pl', 'pm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': RUBY_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['rb', 'ruby']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JSCRIPT_KEYWORDS,
    +          'cStyleComments': true,
    +          'regexLiterals': true
    +        }), ['javascript', 'js']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': COFFEE_KEYWORDS,
    +          'hashComments': 3,  // ### style block comments
    +          'cStyleComments': true,
    +          'multilineStrings': true,
    +          'tripleQuotedStrings': true,
    +          'regexLiterals': true
    +        }), ['coffee']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': RUST_KEYWORDS,
    +          'cStyleComments': true,
    +          'multilineStrings': true
    +        }), ['rc', 'rs', 'rust']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
    +
    +  function applyDecorator(job) {
    +    var opt_langExtension = job.langExtension;
    +
    +    try {
    +      // Extract tags, and convert the source code to plain text.
    +      var sourceAndSpans = extractSourceSpans(job.sourceNode, job.pre);
    +      /** Plain text. @type {string} */
    +      var source = sourceAndSpans.sourceCode;
    +      job.sourceCode = source;
    +      job.spans = sourceAndSpans.spans;
    +      job.basePos = 0;
    +
    +      // Apply the appropriate language handler
    +      langHandlerForExtension(opt_langExtension, source)(job);
    +
    +      // Integrate the decorations and tags back into the source code,
    +      // modifying the sourceNode in place.
    +      recombineTagsAndDecorations(job);
    +    } catch (e) {
    +      if (win['console']) {
    +        console['log'](e && e['stack'] || e);
    +      }
    +    }
    +  }
    +
    +  /**
    +   * Pretty print a chunk of code.
    +   * @param sourceCodeHtml {string} The HTML to pretty print.
    +   * @param opt_langExtension {string} The language name to use.
    +   *     Typically, a filename extension like 'cpp' or 'java'.
    +   * @param opt_numberLines {number|boolean} True to number lines,
    +   *     or the 1-indexed number of the first line in sourceCodeHtml.
    +   */
    +  function $prettyPrintOne(sourceCodeHtml, opt_langExtension, opt_numberLines) {
    +    var container = document.createElement('div');
    +    // This could cause images to load and onload listeners to fire.
    +    // E.g. <img onerror="alert(1337)" src="nosuchimage.png">.
    +    // We assume that the inner HTML is from a trusted source.
    +    // The pre-tag is required for IE8 which strips newlines from innerHTML
    +    // when it is injected into a <pre> tag.
    +    // http://stackoverflow.com/questions/451486/pre-tag-loses-line-breaks-when-setting-innerhtml-in-ie
    +    // http://stackoverflow.com/questions/195363/inserting-a-newline-into-a-pre-tag-ie-javascript
    +    container.innerHTML = '<pre>' + sourceCodeHtml + '</pre>';
    +    container = container.firstChild;
    +    if (opt_numberLines) {
    +      numberLines(container, opt_numberLines, true);
    +    }
    +
    +    var job = {
    +      langExtension: opt_langExtension,
    +      numberLines: opt_numberLines,
    +      sourceNode: container,
    +      pre: 1
    +    };
    +    applyDecorator(job);
    +    return container.innerHTML;
    +  }
    +
    +   /**
    +    * Find all the {@code <pre>} and {@code <code>} tags in the DOM with
    +    * {@code class=prettyprint} and prettify them.
    +    *
    +    * @param {Function} opt_whenDone called when prettifying is done.
    +    * @param {HTMLElement|HTMLDocument} opt_root an element or document
    +    *   containing all the elements to pretty print.
    +    *   Defaults to {@code document.body}.
    +    */
    +  function $prettyPrint(opt_whenDone, opt_root) {
    +    var root = opt_root || document.body;
    +    var doc = root.ownerDocument || document;
    +    function byTagName(tn) { return root.getElementsByTagName(tn); }
    +    // fetch a list of nodes to rewrite
    +    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
    +    var elements = [];
    +    for (var i = 0; i < codeSegments.length; ++i) {
    +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
    +        elements.push(codeSegments[i][j]);
    +      }
    +    }
    +    codeSegments = null;
    +
    +    var clock = Date;
    +    if (!clock['now']) {
    +      clock = { 'now': function () { return +(new Date); } };
    +    }
    +
    +    // The loop is broken into a series of continuations to make sure that we
    +    // don't make the browser unresponsive when rewriting a large page.
    +    var k = 0;
    +    var prettyPrintingJob;
    +
    +    var langExtensionRe = /\blang(?:uage)?-([\w.]+)(?!\S)/;
    +    var prettyPrintRe = /\bprettyprint\b/;
    +    var prettyPrintedRe = /\bprettyprinted\b/;
    +    var preformattedTagNameRe = /pre|xmp/i;
    +    var codeRe = /^code$/i;
    +    var preCodeXmpRe = /^(?:pre|code|xmp)$/i;
    +    var EMPTY = {};
    +
    +    function doWork() {
    +      var endTime = (win['PR_SHOULD_USE_CONTINUATION'] ?
    +                     clock['now']() + 250 /* ms */ :
    +                     Infinity);
    +      for (; k < elements.length && clock['now']() < endTime; k++) {
    +        var cs = elements[k];
    +
    +        // Look for a preceding comment like
    +        // <?prettify lang="..." linenums="..."?>
    +        var attrs = EMPTY;
    +        {
    +          for (var preceder = cs; (preceder = preceder.previousSibling);) {
    +            var nt = preceder.nodeType;
    +            // <?foo?> is parsed by HTML 5 to a comment node (8)
    +            // like <!--?foo?-->, but in XML is a processing instruction
    +            var value = (nt === 7 || nt === 8) && preceder.nodeValue;
    +            if (value
    +                ? !/^\??prettify\b/.test(value)
    +                : (nt !== 3 || /\S/.test(preceder.nodeValue))) {
    +              // Skip over white-space text nodes but not others.
    +              break;
    +            }
    +            if (value) {
    +              attrs = {};
    +              value.replace(
    +                  /\b(\w+)=([\w:.%+-]+)/g,
    +                function (_, name, value) { attrs[name] = value; });
    +              break;
    +            }
    +          }
    +        }
    +
    +        var className = cs.className;
    +        if ((attrs !== EMPTY || prettyPrintRe.test(className))
    +            // Don't redo this if we've already done it.
    +            // This allows recalling pretty print to just prettyprint elements
    +            // that have been added to the page since last call.
    +            && !prettyPrintedRe.test(className)) {
    +
    +          // make sure this is not nested in an already prettified element
    +          var nested = false;
    +          for (var p = cs.parentNode; p; p = p.parentNode) {
    +            var tn = p.tagName;
    +            if (preCodeXmpRe.test(tn)
    +                && p.className && prettyPrintRe.test(p.className)) {
    +              nested = true;
    +              break;
    +            }
    +          }
    +          if (!nested) {
    +            // Mark done.  If we fail to prettyprint for whatever reason,
    +            // we shouldn't try again.
    +            cs.className += ' prettyprinted';
    +
    +            // If the classes includes a language extensions, use it.
    +            // Language extensions can be specified like
    +            //     <pre class="prettyprint lang-cpp">
    +            // the language extension "cpp" is used to find a language handler
    +            // as passed to PR.registerLangHandler.
    +            // HTML5 recommends that a language be specified using "language-"
    +            // as the prefix instead.  Google Code Prettify supports both.
    +            // http://dev.w3.org/html5/spec-author-view/the-code-element.html
    +            var langExtension = attrs['lang'];
    +            if (!langExtension) {
    +              langExtension = className.match(langExtensionRe);
    +              // Support <pre class="prettyprint"><code class="language-c">
    +              var wrapper;
    +              if (!langExtension && (wrapper = childContentWrapper(cs))
    +                  && codeRe.test(wrapper.tagName)) {
    +                langExtension = wrapper.className.match(langExtensionRe);
    +              }
    +
    +              if (langExtension) { langExtension = langExtension[1]; }
    +            }
    +
    +            var preformatted;
    +            if (preformattedTagNameRe.test(cs.tagName)) {
    +              preformatted = 1;
    +            } else {
    +              var currentStyle = cs['currentStyle'];
    +              var defaultView = doc.defaultView;
    +              var whitespace = (
    +                  currentStyle
    +                  ? currentStyle['whiteSpace']
    +                  : (defaultView
    +                     && defaultView.getComputedStyle)
    +                  ? defaultView.getComputedStyle(cs, null)
    +                  .getPropertyValue('white-space')
    +                  : 0);
    +              preformatted = whitespace
    +                  && 'pre' === whitespace.substring(0, 3);
    +            }
    +
    +            // Look for a class like linenums or linenums:<n> where <n> is the
    +            // 1-indexed number of the first line.
    +            var lineNums = attrs['linenums'];
    +            if (!(lineNums = lineNums === 'true' || +lineNums)) {
    +              lineNums = className.match(/\blinenums\b(?::(\d+))?/);
    +              lineNums =
    +                lineNums
    +                ? lineNums[1] && lineNums[1].length
    +                  ? +lineNums[1] : true
    +                : false;
    +            }
    +            if (lineNums) { numberLines(cs, lineNums, preformatted); }
    +
    +            // do the pretty printing
    +            prettyPrintingJob = {
    +              langExtension: langExtension,
    +              sourceNode: cs,
    +              numberLines: lineNums,
    +              pre: preformatted
    +            };
    +            applyDecorator(prettyPrintingJob);
    +          }
    +        }
    +      }
    +      if (k < elements.length) {
    +        // finish up in a continuation
    +        setTimeout(doWork, 250);
    +      } else if ('function' === typeof opt_whenDone) {
    +        opt_whenDone();
    +      }
    +    }
    +
    +    doWork();
    +  }
    +
    +  /**
    +   * Contains functions for creating and registering new language handlers.
    +   * @type {Object}
    +   */
    +  var PR = win['PR'] = {
    +        'createSimpleLexer': createSimpleLexer,
    +        'registerLangHandler': registerLangHandler,
    +        'sourceDecorator': sourceDecorator,
    +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
    +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
    +        'PR_COMMENT': PR_COMMENT,
    +        'PR_DECLARATION': PR_DECLARATION,
    +        'PR_KEYWORD': PR_KEYWORD,
    +        'PR_LITERAL': PR_LITERAL,
    +        'PR_NOCODE': PR_NOCODE,
    +        'PR_PLAIN': PR_PLAIN,
    +        'PR_PUNCTUATION': PR_PUNCTUATION,
    +        'PR_SOURCE': PR_SOURCE,
    +        'PR_STRING': PR_STRING,
    +        'PR_TAG': PR_TAG,
    +        'PR_TYPE': PR_TYPE,
    +        'prettyPrintOne':
    +           IN_GLOBAL_SCOPE
    +             ? (win['prettyPrintOne'] = $prettyPrintOne)
    +             : (prettyPrintOne = $prettyPrintOne),
    +        'prettyPrint': prettyPrint =
    +           IN_GLOBAL_SCOPE
    +             ? (win['prettyPrint'] = $prettyPrint)
    +             : (prettyPrint = $prettyPrint)
    +      };
    +
    +  // Make PR available via the Asynchronous Module Definition (AMD) API.
    +  // Per https://github.com/amdjs/amdjs-api/wiki/AMD:
    +  // The Asynchronous Module Definition (AMD) API specifies a
    +  // mechanism for defining modules such that the module and its
    +  // dependencies can be asynchronously loaded.
    +  // ...
    +  // To allow a clear indicator that a global define function (as
    +  // needed for script src browser loading) conforms to the AMD API,
    +  // any global define function SHOULD have a property called "amd"
    +  // whose value is an object. This helps avoid conflict with any
    +  // other existing JavaScript code that could have defined a define()
    +  // function that does not conform to the AMD API.
    +  if (typeof define === "function" && define['amd']) {
    +    define("google-code-prettify", [], function () {
    +      return PR; 
    +    });
    +  }
    +})();
    diff --git a/sitemap.xml b/sitemap.xml
    new file mode 100644
    index 0000000..b512a15
    --- /dev/null
    +++ b/sitemap.xml
    @@ -0,0 +1,31 @@
    +---
    +layout: null
    +---
    +<?xml version="1.0" encoding="UTF-8"?>
    +<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +  xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
    +  http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
    +  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    +  {% for post in site.posts %}
    +  <url>
    +    <loc>{{site.url}}{{ site.baseurl }}{{ post.url }}</loc>
    +    {% if post.lastmod == null %}
    +    <lastmod>{{ post.date | date_to_xmlschema }}</lastmod>
    +    {% else %}
    +    <lastmod>{{ post.lastmod | date_to_xmlschema }}</lastmod>
    +    {% endif %}
    +    <changefreq>weekly</changefreq>
    +    <priority>1.0</priority>
    +  </url>
    +  {% endfor %}
    +  {% for page in site.pages %}
    +  {% if page.sitemap != null and page.sitemap != empty %}
    +  <url>
    +    <loc>{{ site.url }}{{ site.baseurl }}{{ page.url }}</loc>
    +    <lastmod>{{ page.sitemap.lastmod | date_to_xmlschema }}</lastmod>
    +    <changefreq>{{ page.sitemap.changefreq }}</changefreq>
    +    <priority>{{ page.sitemap.priority }}</priority>
    +  </url>
    +  {% endif %}
    +  {% endfor %}
    +</urlset>