diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b9ebf43 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.DS_Store + +*.sln \ No newline at end of file diff --git a/GitHub changes.rtf b/GitHub changes.rtf deleted file mode 100644 index 5e35d0f..0000000 --- a/GitHub changes.rtf +++ /dev/null @@ -1,16 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210 -{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\margl1440\margr1440\vieww10800\viewh8400\viewkind0 -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural - -\f0\fs24 \cf0 1. Make changes on my local.\ -2. git add *\ -3. then do `git commit -am \'93[COMMIT MESSAGE]`\ -4. then git push origin master\ -5. Pull request: https://github.com/tccharles/gdi-boulder-intro-programming-concepts/compare/gdiboulder:master...tccharles:master\ -6. The Cojo has to merge it\ -\ -https://help.github.com/articles/using-pull-requests\ -\ -} \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index a99fa72..0000000 --- a/README.md +++ /dev/null @@ -1,63 +0,0 @@ -Intro to Programming Concepts -====================================== -![Girl Develop It](images/wordmark-tagline-white.png) - -## How to update these slides - -### 1. Fork this Repo - -To fork this project, click the "Fork" button in the GitHub.com repository. - -![Forking a repo](images/Bootcamp-Fork.png) - -### 2. Clone your fork - -You've successfully forked the **gdi-boulder-intro-programming-concepts** repository, -but so far it only exists on GitHub. To be able to work on the project, you will need to clone it to your local machine. - -Run the following in your terminal: -```ApacheConf -$ git clone https://github.com/username/gdi-boulder-intro-programming-concepts.git -# Clones your fork of the repository into the current directory in termina -``` - -### 3. Configure remotes -When a repository is cloned, it has a default remote called origin that points to -your fork on GitHub, not the original repository it was forked from. To keep -track of the original repository, you need to add another remote named upstream: - -Run the following in your terminal: -```ApacheConf -$ cd gdi-boulder-intro-programming-concepts -# Changes the active directory in the prompt to the newly cloned "gdi-boulder-intro-programming-concepts" directory -$ git remote add upstream https://github.com/gdiboulder/gdi-boulder-intro-programming-concepts.git -# Assigns the original repository to a remote called "upstream" -$ git fetch upstream -# Pulls in changes not present in your local repository, without modifying your files -``` - -### 4. Initiate Submodule -Our slides use a javascript framework called Reveal.js. Instead of adding the files to every repo, we've made a submodule that allows us to add them to any repo easily. - -When you clone the repo, the submodule folder is there, but currently empty. You must run two commands to get the submodule up and running. -Run the following in your terminal: -```ApacheConf -$ git submodule init -``` -This will initialize your local configuration file. - -```ApacheConf -$ git submodule update -``` -This will fetch all the data from that project and check out the appropriate commit listed in your superproject. - -## You're ready to make changes! - -When you're ready, commit and push your changes to your repo. - -Don't forget to do a pull request on the upstream repo so we can merge your changes in! - -## Questions? -E-mail us: [boulder@girldevelopit.com](mailto:boulder@girldevelopit.com) - -Tweet at us: [@gdiboulder](http://twitter.com/gdiboulder) diff --git a/While Loop Flowchart.pptx b/While Loop Flowchart.pptx deleted file mode 100644 index a392242..0000000 Binary files a/While Loop Flowchart.pptx and /dev/null differ diff --git a/css/print/paper.css b/css/print/paper.css new file mode 100644 index 0000000..893184d --- /dev/null +++ b/css/print/paper.css @@ -0,0 +1,176 @@ +/* Default Print Stylesheet Template + by Rob Glazebrook of CSSnewbie.com + Last Updated: June 4, 2008 + + Feel free (nay, compelled) to edit, append, and + manipulate this file as you see fit. */ + + +/* SECTION 1: Set default width, margin, float, and + background. This prevents elements from extending + beyond the edge of the printed page, and prevents + unnecessary background images from printing */ +body { + background: #fff; + font-size: 13pt; + width: auto; + height: auto; + border: 0; + margin: 0 5%; + padding: 0; + float: none !important; + overflow: visible; +} +html { + background: #fff; + width: auto; + height: auto; + overflow: visible; +} + +/* SECTION 2: Remove any elements not needed in print. + This would include navigation, ads, sidebars, etc. */ +.nestedarrow, +.controls, +.reveal .progress, +.reveal.overview, +.fork-reveal, +.share-reveal, +.state-background { + display: none !important; +} + +/* SECTION 3: Set body font face, size, and color. + Consider using a serif font for readability. */ +body, p, td, li, div, a { + font-size: 16pt!important; + font-family: Georgia, "Times New Roman", Times, serif !important; + color: #000; +} + +/* SECTION 4: Set heading font face, sizes, and color. + Differentiate your headings from your body text. + Perhaps use a large sans-serif for distinction. */ +h1,h2,h3,h4,h5,h6 { + color: #000!important; + height: auto; + line-height: normal; + font-family: Georgia, "Times New Roman", Times, serif !important; + text-shadow: 0 0 0 #000 !important; + text-align: left; + letter-spacing: normal; +} +/* Need to reduce the size of the fonts for printing */ +h1 { font-size: 26pt !important; } +h2 { font-size: 22pt !important; } +h3 { font-size: 20pt !important; } +h4 { font-size: 20pt !important; font-variant: small-caps; } +h5 { font-size: 19pt !important; } +h6 { font-size: 18pt !important; font-style: italic; } + +/* SECTION 5: Make hyperlinks more usable. + Ensure links are underlined, and consider appending + the URL to the end of the link for usability. */ +a:link, +a:visited { + color: #000 !important; + font-weight: bold; + text-decoration: underline; +} +/* +.reveal a:link:after, +.reveal a:visited:after { + content: " (" attr(href) ") "; + color: #222 !important; + font-size: 90%; +} +*/ + + +/* SECTION 6: more reveal.js specific additions by @skypanther */ +ul, ol, div, p { + visibility: visible; + position: static; + width: auto; + height: auto; + display: block; + overflow: visible; + margin: auto; + text-align: left !important; +} +.reveal .slides { + position: static; + width: auto; + height: auto; + + left: auto; + top: auto; + margin-left: auto; + margin-top: auto; + padding: auto; + + overflow: visible; + display: block; + + text-align: center; + -webkit-perspective: none; + -moz-perspective: none; + -ms-perspective: none; + perspective: none; + + -webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */ + -moz-perspective-origin: 50% 50%; + -ms-perspective-origin: 50% 50%; + perspective-origin: 50% 50%; +} +.reveal .slides>section, +.reveal .slides>section>section { + + visibility: visible !important; + position: static !important; + width: 90% !important; + height: auto !important; + display: block !important; + overflow: visible !important; + + left: 0% !important; + top: 0% !important; + margin-left: 0px !important; + margin-top: 0px !important; + padding: 20px 0px !important; + + opacity: 1 !important; + + -webkit-transform-style: flat !important; + -moz-transform-style: flat !important; + -ms-transform-style: flat !important; + transform-style: flat !important; + + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + transform: none !important; +} +.reveal section { + page-break-after: always !important; + display: block !important; +} +.reveal section .fragment { + opacity: 1 !important; + visibility: visible !important; + + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + transform: none !important; +} +.reveal section:last-of-type { + page-break-after: avoid !important; +} +.reveal section img { + display: block; + margin: 15px 0px; + background: rgba(255,255,255,1); + border: 1px solid #666; + box-shadow: none; +} \ No newline at end of file diff --git a/css/print/pdf.css b/css/print/pdf.css new file mode 100644 index 0000000..7b66ee5 --- /dev/null +++ b/css/print/pdf.css @@ -0,0 +1,190 @@ +/* Default Print Stylesheet Template + by Rob Glazebrook of CSSnewbie.com + Last Updated: June 4, 2008 + + Feel free (nay, compelled) to edit, append, and + manipulate this file as you see fit. */ + + +/* SECTION 1: Set default width, margin, float, and + background. This prevents elements from extending + beyond the edge of the printed page, and prevents + unnecessary background images from printing */ + +* { + -webkit-print-color-adjust: exact; +} + +body { + font-size: 18pt; + width: 297mm; + height: 229mm; + margin: 0 auto !important; + border: 0; + padding: 0; + float: none !important; + overflow: visible; +} + +html { + width: 100%; + height: 100%; + overflow: visible; +} + +@page { + size: letter landscape; + margin: 0; +} + +/* SECTION 2: Remove any elements not needed in print. + This would include navigation, ads, sidebars, etc. */ +.nestedarrow, +.controls, +.reveal .progress, +.reveal.overview, +.fork-reveal, +.share-reveal, +.state-background { + display: none !important; +} + +/* SECTION 3: Set body font face, size, and color. + Consider using a serif font for readability. */ +body, p, td, li, div { + font-size: 18pt; +} + +/* SECTION 4: Set heading font face, sizes, and color. + Differentiate your headings from your body text. + Perhaps use a large sans-serif for distinction. */ +h1,h2,h3,h4,h5,h6 { + text-shadow: 0 0 0 #000 !important; +} + +/* SECTION 5: Make hyperlinks more usable. + Ensure links are underlined, and consider appending + the URL to the end of the link for usability. */ +a:link, +a:visited { + font-weight: bold; + text-decoration: underline; +} + +.reveal pre code { + overflow: hidden !important; + font-family: monospace !important; +} + + +/* SECTION 6: more reveal.js specific additions by @skypanther */ +ul, ol, div, p { + visibility: visible; + position: static; + width: auto; + height: auto; + display: block; + overflow: visible; + margin: auto; +} +.reveal { + width: auto !important; + height: auto !important; + overflow: hidden !important; +} +.reveal .slides { + position: static; + width: 100%; + height: auto; + + left: auto; + top: auto; + margin: 0 !important; + padding: 0 !important; + + overflow: visible; + display: block; + + text-align: center; + + -webkit-perspective: none; + -moz-perspective: none; + -ms-perspective: none; + perspective: none; + + -webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */ + -moz-perspective-origin: 50% 50%; + -ms-perspective-origin: 50% 50%; + perspective-origin: 50% 50%; +} +.reveal .slides section { + + page-break-after: always !important; + + visibility: visible !important; + position: relative !important; + width: 100% !important; + height: 229mm !important; + min-height: 229mm !important; + display: block !important; + overflow: hidden !important; + + left: 0 !important; + top: 0 !important; + margin: 0 !important; + padding: 2cm 2cm 0 2cm !important; + box-sizing: border-box !important; + + opacity: 1 !important; + + -webkit-transform-style: flat !important; + -moz-transform-style: flat !important; + -ms-transform-style: flat !important; + transform-style: flat !important; + + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + transform: none !important; +} +.reveal section.stack { + margin: 0 !important; + padding: 0 !important; + page-break-after: avoid !important; + height: auto !important; + min-height: auto !important; +} +.reveal .absolute-element { + margin-left: 2.2cm; + margin-top: 1.8cm; +} +.reveal section .fragment { + opacity: 1 !important; + visibility: visible !important; + + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + transform: none !important; +} +.reveal section .slide-background { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 0; +} +.reveal section>* { + position: relative; + z-index: 1; +} +.reveal img { + box-shadow: none; +} +.reveal .roll { + overflow: visible; + line-height: 1em; +} +.reveal small a { + font-size: 16pt !important; +} diff --git a/css/reveal.css b/css/reveal.css new file mode 100644 index 0000000..a9b3888 --- /dev/null +++ b/css/reveal.css @@ -0,0 +1,1653 @@ +@charset "UTF-8"; + +/*! + * reveal.js + * http://lab.hakim.se/reveal-js + * MIT licensed + * + * Copyright (C) 2013 Hakim El Hattab, http://hakim.se + */ + + +/********************************************* + * RESET STYLES + *********************************************/ + +html, body, .reveal div, .reveal span, .reveal applet, .reveal object, .reveal iframe, +.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6, .reveal p, .reveal blockquote, .reveal pre, +.reveal a, .reveal abbr, .reveal acronym, .reveal address, .reveal big, .reveal cite, .reveal code, +.reveal del, .reveal dfn, .reveal em, .reveal img, .reveal ins, .reveal kbd, .reveal q, .reveal s, .reveal samp, +.reveal small, .reveal strike, .reveal strong, .reveal sub, .reveal sup, .reveal tt, .reveal var, +.reveal b, .reveal u, .reveal i, .reveal center, +.reveal dl, .reveal dt, .reveal dd, .reveal ol, .reveal ul, .reveal li, +.reveal fieldset, .reveal form, .reveal label, .reveal legend, +.reveal table, .reveal caption, .reveal tbody, .reveal tfoot, .reveal thead, .reveal tr, .reveal th, .reveal td, +.reveal article, .reveal aside, .reveal canvas, .reveal details, .reveal embed, +.reveal figure, .reveal figcaption, .reveal footer, .reveal header, .reveal hgroup, +.reveal menu, .reveal nav, .reveal output, .reveal ruby, .reveal section, .reveal summary, +.reveal time, .reveal mark, .reveal audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +.reveal article, .reveal aside, .reveal details, .reveal figcaption, .reveal figure, +.reveal footer, .reveal header, .reveal hgroup, .reveal menu, .reveal nav, .reveal section { + display: block; +} + + +/********************************************* + * GLOBAL STYLES + *********************************************/ + +html, +body { + width: 100%; + height: 100%; + overflow: hidden; +} + +body { + position: relative; + line-height: 1; +} + +::selection { + background: #FF5E99; + color: #fff; + text-shadow: none; +} + + +/********************************************* + * HEADERS + *********************************************/ + +.reveal h1, +.reveal h2, +.reveal h3, +.reveal h4, +.reveal h5, +.reveal h6 { + -webkit-hyphens: auto; + -moz-hyphens: auto; + hyphens: auto; + + word-wrap: break-word; + line-height: 1; +} + +.reveal h1 { font-size: 3.77em; } +.reveal h2 { font-size: 2.11em; } +.reveal h3 { font-size: 1.55em; } +.reveal h4 { font-size: 1em; } + + +/********************************************* + * VIEW FRAGMENTS + *********************************************/ + +.reveal .slides section .fragment { + opacity: 0; + + -webkit-transition: all .2s ease; + -moz-transition: all .2s ease; + -ms-transition: all .2s ease; + -o-transition: all .2s ease; + transition: all .2s ease; +} + .reveal .slides section .fragment.visible { + opacity: 1; + } + +.reveal .slides section .fragment.grow { + opacity: 1; +} + .reveal .slides section .fragment.grow.visible { + -webkit-transform: scale( 1.3 ); + -moz-transform: scale( 1.3 ); + -ms-transform: scale( 1.3 ); + -o-transform: scale( 1.3 ); + transform: scale( 1.3 ); + } + +.reveal .slides section .fragment.shrink { + opacity: 1; +} + .reveal .slides section .fragment.shrink.visible { + -webkit-transform: scale( 0.7 ); + -moz-transform: scale( 0.7 ); + -ms-transform: scale( 0.7 ); + -o-transform: scale( 0.7 ); + transform: scale( 0.7 ); + } + +.reveal .slides section .fragment.zoom-in { + opacity: 0; + + -webkit-transform: scale( 0.1 ); + -moz-transform: scale( 0.1 ); + -ms-transform: scale( 0.1 ); + -o-transform: scale( 0.1 ); + transform: scale( 0.1 ); +} + + .reveal .slides section .fragment.zoom-in.visible { + opacity: 1; + + -webkit-transform: scale( 1 ); + -moz-transform: scale( 1 ); + -ms-transform: scale( 1 ); + -o-transform: scale( 1 ); + transform: scale( 1 ); + } + +.reveal .slides section .fragment.roll-in { + opacity: 0; + + -webkit-transform: rotateX( 90deg ); + -moz-transform: rotateX( 90deg ); + -ms-transform: rotateX( 90deg ); + -o-transform: rotateX( 90deg ); + transform: rotateX( 90deg ); +} + .reveal .slides section .fragment.roll-in.visible { + opacity: 1; + + -webkit-transform: rotateX( 0 ); + -moz-transform: rotateX( 0 ); + -ms-transform: rotateX( 0 ); + -o-transform: rotateX( 0 ); + transform: rotateX( 0 ); + } + +.reveal .slides section .fragment.fade-out { + opacity: 1; +} + .reveal .slides section .fragment.fade-out.visible { + opacity: 0; + } + +.reveal .slides section .fragment.semi-fade-out { + opacity: 1; +} + .reveal .slides section .fragment.semi-fade-out.visible { + opacity: 0.5; + } + +.reveal .slides section .fragment.highlight-red, +.reveal .slides section .fragment.highlight-green, +.reveal .slides section .fragment.highlight-blue { + opacity: 1; +} + .reveal .slides section .fragment.highlight-red.visible { + color: #ff2c2d + } + .reveal .slides section .fragment.highlight-green.visible { + color: #17ff2e; + } + .reveal .slides section .fragment.highlight-blue.visible { + color: #1b91ff; + } + + +/********************************************* + * DEFAULT ELEMENT STYLES + *********************************************/ + +/* Fixes issue in Chrome where italic fonts did not appear when printing to PDF */ +.reveal:after { + content: ''; + font-style: italic; +} + +.reveal iframe { + z-index: 1; +} + +/* Ensure certain elements are never larger than the slide itself */ +.reveal img, +.reveal video, +.reveal iframe { + max-width: 95%; + max-height: 95%; +} + +/** Prevents layering issues in certain browser/transition combinations */ +.reveal a { + position: relative; +} + +.reveal strong, +.reveal b { + font-weight: bold; +} + +.reveal em, +.reveal i { + font-style: italic; +} + +.reveal ol, +.reveal ul { + display: inline-block; + + text-align: left; + margin: 0 0 0 1em; +} + +.reveal ol { + list-style-type: decimal; +} + +.reveal ul { + list-style-type: disc; +} + +.reveal ul ul { + list-style-type: square; +} + +.reveal ul ul ul { + list-style-type: circle; +} + +.reveal ul ul, +.reveal ul ol, +.reveal ol ol, +.reveal ol ul { + display: block; + margin-left: 40px; +} + +.reveal p { + margin-bottom: 10px; + line-height: 1.2em; +} + +.reveal q, +.reveal blockquote { + quotes: none; +} + +.reveal blockquote { + display: block; + position: relative; + width: 70%; + margin: 5px auto; + padding: 5px; + + font-style: italic; + background: rgba(255, 255, 255, 0.05); + box-shadow: 0px 0px 2px rgba(0,0,0,0.2); +} + .reveal blockquote p:first-child, + .reveal blockquote p:last-child { + display: inline-block; + } + +.reveal q { + font-style: italic; +} + +.reveal pre { + display: block; + position: relative; + width: 90%; + margin: 15px auto; + + text-align: left; + font-size: 0.55em; + font-family: monospace; + line-height: 1.2em; + + word-wrap: break-word; + + box-shadow: 0px 0px 6px rgba(0,0,0,0.3); +} +.reveal code { + font-family: monospace; +} +.reveal pre code { + padding: 5px; + overflow: auto; + max-height: 400px; + word-wrap: normal; +} +.reveal pre.stretch code { + height: 100%; + max-height: 100%; + + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.reveal table th, +.reveal table td { + text-align: left; + padding-right: .3em; +} + +.reveal table th { + text-shadow: rgb(255,255,255) 1px 1px 2px; +} + +.reveal sup { + vertical-align: super; +} +.reveal sub { + vertical-align: sub; +} + +.reveal small { + display: inline-block; + font-size: 0.6em; + line-height: 1.2em; + vertical-align: top; +} + +.reveal small * { + vertical-align: top; +} + +.reveal .stretch { + max-width: none; + max-height: none; +} + + +/********************************************* + * CONTROLS + *********************************************/ + +.reveal .controls { + display: none; + position: fixed; + width: 110px; + height: 110px; + z-index: 30; + right: 10px; + bottom: 10px; +} + +.reveal .controls div { + position: absolute; + opacity: 0.05; + width: 0; + height: 0; + border: 12px solid transparent; + + -moz-transform: scale(.9999); + + -webkit-transition: all 0.2s ease; + -moz-transition: all 0.2s ease; + -ms-transition: all 0.2s ease; + -o-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.reveal .controls div.enabled { + opacity: 0.7; + cursor: pointer; +} + +.reveal .controls div.enabled:active { + margin-top: 1px; +} + + .reveal .controls div.navigate-left { + top: 42px; + + border-right-width: 22px; + border-right-color: #eee; + } + .reveal .controls div.navigate-left.fragmented { + opacity: 0.3; + } + + .reveal .controls div.navigate-right { + left: 74px; + top: 42px; + + border-left-width: 22px; + border-left-color: #eee; + } + .reveal .controls div.navigate-right.fragmented { + opacity: 0.3; + } + + .reveal .controls div.navigate-up { + left: 42px; + + border-bottom-width: 22px; + border-bottom-color: #eee; + } + .reveal .controls div.navigate-up.fragmented { + opacity: 0.3; + } + + .reveal .controls div.navigate-down { + left: 42px; + top: 74px; + + border-top-width: 22px; + border-top-color: #eee; + } + .reveal .controls div.navigate-down.fragmented { + opacity: 0.3; + } + + +/********************************************* + * PROGRESS BAR + *********************************************/ + +.reveal .progress { + position: fixed; + display: none; + height: 3px; + width: 100%; + bottom: 0; + left: 0; + z-index: 10; +} + .reveal .progress:after { + content: ''; + display: 'block'; + position: absolute; + height: 20px; + width: 100%; + top: -20px; + } + .reveal .progress span { + display: block; + height: 100%; + width: 0px; + + -webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + } + + +/********************************************* + * SLIDES + *********************************************/ + +.reveal { + position: relative; + width: 100%; + height: 100%; + + -ms-touch-action: none; +} + +.reveal .slides { + position: absolute; + width: 100%; + height: 100%; + left: 50%; + top: 50%; + + overflow: visible; + z-index: 1; + text-align: center; + + -webkit-transition: -webkit-perspective .4s ease; + -moz-transition: -moz-perspective .4s ease; + -ms-transition: -ms-perspective .4s ease; + -o-transition: -o-perspective .4s ease; + transition: perspective .4s ease; + + -webkit-perspective: 600px; + -moz-perspective: 600px; + -ms-perspective: 600px; + perspective: 600px; + + -webkit-perspective-origin: 0px -100px; + -moz-perspective-origin: 0px -100px; + -ms-perspective-origin: 0px -100px; + perspective-origin: 0px -100px; +} + +.reveal .slides>section { + -ms-perspective: 600px; +} + +.reveal .slides>section, +.reveal .slides>section>section { + display: none; + position: absolute; + width: 100%; + padding: 20px 0px; + + z-index: 10; + line-height: 1.2em; + font-weight: normal; + + -webkit-transform-style: preserve-3d; + -moz-transform-style: preserve-3d; + -ms-transform-style: preserve-3d; + transform-style: preserve-3d; + + -webkit-transition: -webkit-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + -webkit-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + -moz-transition: -moz-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + -moz-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + -ms-transition: -ms-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + -ms-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + -o-transition: -o-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + -o-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + transition: transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), + opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); +} + +/* Global transition speed settings */ +.reveal[data-transition-speed="fast"] .slides section { + -webkit-transition-duration: 400ms; + -moz-transition-duration: 400ms; + -ms-transition-duration: 400ms; + transition-duration: 400ms; +} +.reveal[data-transition-speed="slow"] .slides section { + -webkit-transition-duration: 1200ms; + -moz-transition-duration: 1200ms; + -ms-transition-duration: 1200ms; + transition-duration: 1200ms; +} + +/* Slide-specific transition speed overrides */ +.reveal .slides section[data-transition-speed="fast"] { + -webkit-transition-duration: 400ms; + -moz-transition-duration: 400ms; + -ms-transition-duration: 400ms; + transition-duration: 400ms; +} +.reveal .slides section[data-transition-speed="slow"] { + -webkit-transition-duration: 1200ms; + -moz-transition-duration: 1200ms; + -ms-transition-duration: 1200ms; + transition-duration: 1200ms; +} + +.reveal .slides>section { + left: -50%; + top: -50%; +} + +.reveal .slides>section.stack { + padding-top: 0; + padding-bottom: 0; +} + +.reveal .slides>section.present, +.reveal .slides>section>section.present { + display: block; + z-index: 11; + opacity: 1; +} + +.reveal.center, +.reveal.center .slides, +.reveal.center .slides section { + min-height: auto !important; +} + +/* Don't allow interaction with invisible slides */ +.reveal .slides>section.future, +.reveal .slides>section>section.future, +.reveal .slides>section.past, +.reveal .slides>section>section.past { + pointer-events: none; +} + +.reveal.overview .slides>section, +.reveal.overview .slides>section>section { + pointer-events: auto; +} + + + +/********************************************* + * DEFAULT TRANSITION + *********************************************/ + +.reveal .slides>section[data-transition=default].past, +.reveal .slides>section.past { + display: block; + opacity: 0; + + -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); + -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); + -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); +} +.reveal .slides>section[data-transition=default].future, +.reveal .slides>section.future { + display: block; + opacity: 0; + + -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); + -moz-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); + -ms-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); +} + +.reveal .slides>section>section[data-transition=default].past, +.reveal .slides>section>section.past { + display: block; + opacity: 0; + + -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); + -moz-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); + -ms-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); + transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); +} +.reveal .slides>section>section[data-transition=default].future, +.reveal .slides>section>section.future { + display: block; + opacity: 0; + + -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); + -moz-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); + -ms-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); + transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); +} + + +/********************************************* + * CONCAVE TRANSITION + *********************************************/ + +.reveal .slides>section[data-transition=concave].past, +.reveal.concave .slides>section.past { + -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); + -moz-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); + -ms-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); +} +.reveal .slides>section[data-transition=concave].future, +.reveal.concave .slides>section.future { + -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); + -moz-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); + -ms-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); +} + +.reveal .slides>section>section[data-transition=concave].past, +.reveal.concave .slides>section>section.past { + -webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); + -moz-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); + -ms-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); + transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); +} +.reveal .slides>section>section[data-transition=concave].future, +.reveal.concave .slides>section>section.future { + -webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); + -moz-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); + -ms-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); + transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); +} + + +/********************************************* + * ZOOM TRANSITION + *********************************************/ + +.reveal .slides>section[data-transition=zoom].past, +.reveal.zoom .slides>section.past { + opacity: 0; + visibility: hidden; + + -webkit-transform: scale(16); + -moz-transform: scale(16); + -ms-transform: scale(16); + -o-transform: scale(16); + transform: scale(16); +} +.reveal .slides>section[data-transition=zoom].future, +.reveal.zoom .slides>section.future { + opacity: 0; + visibility: hidden; + + -webkit-transform: scale(0.2); + -moz-transform: scale(0.2); + -ms-transform: scale(0.2); + -o-transform: scale(0.2); + transform: scale(0.2); +} + +.reveal .slides>section>section[data-transition=zoom].past, +.reveal.zoom .slides>section>section.past { + -webkit-transform: translate(0, -150%); + -moz-transform: translate(0, -150%); + -ms-transform: translate(0, -150%); + -o-transform: translate(0, -150%); + transform: translate(0, -150%); +} +.reveal .slides>section>section[data-transition=zoom].future, +.reveal.zoom .slides>section>section.future { + -webkit-transform: translate(0, 150%); + -moz-transform: translate(0, 150%); + -ms-transform: translate(0, 150%); + -o-transform: translate(0, 150%); + transform: translate(0, 150%); +} + + +/********************************************* + * LINEAR TRANSITION + *********************************************/ + +.reveal.linear section { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; +} + +.reveal .slides>section[data-transition=linear].past, +.reveal.linear .slides>section.past { + -webkit-transform: translate(-150%, 0); + -moz-transform: translate(-150%, 0); + -ms-transform: translate(-150%, 0); + -o-transform: translate(-150%, 0); + transform: translate(-150%, 0); +} +.reveal .slides>section[data-transition=linear].future, +.reveal.linear .slides>section.future { + -webkit-transform: translate(150%, 0); + -moz-transform: translate(150%, 0); + -ms-transform: translate(150%, 0); + -o-transform: translate(150%, 0); + transform: translate(150%, 0); +} + +.reveal .slides>section>section[data-transition=linear].past, +.reveal.linear .slides>section>section.past { + -webkit-transform: translate(0, -150%); + -moz-transform: translate(0, -150%); + -ms-transform: translate(0, -150%); + -o-transform: translate(0, -150%); + transform: translate(0, -150%); +} +.reveal .slides>section>section[data-transition=linear].future, +.reveal.linear .slides>section>section.future { + -webkit-transform: translate(0, 150%); + -moz-transform: translate(0, 150%); + -ms-transform: translate(0, 150%); + -o-transform: translate(0, 150%); + transform: translate(0, 150%); +} + + +/********************************************* + * CUBE TRANSITION + *********************************************/ + +.reveal.cube .slides { + -webkit-perspective: 1300px; + -moz-perspective: 1300px; + -ms-perspective: 1300px; + perspective: 1300px; +} + +.reveal.cube .slides section { + padding: 30px; + min-height: 700px; + + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + .reveal.center.cube .slides section { + min-height: auto; + } + .reveal.cube .slides section:not(.stack):before { + content: ''; + position: absolute; + display: block; + width: 100%; + height: 100%; + left: 0; + top: 0; + background: rgba(0,0,0,0.1); + border-radius: 4px; + + -webkit-transform: translateZ( -20px ); + -moz-transform: translateZ( -20px ); + -ms-transform: translateZ( -20px ); + -o-transform: translateZ( -20px ); + transform: translateZ( -20px ); + } + .reveal.cube .slides section:not(.stack):after { + content: ''; + position: absolute; + display: block; + width: 90%; + height: 30px; + left: 5%; + bottom: 0; + background: none; + z-index: 1; + + border-radius: 4px; + box-shadow: 0px 95px 25px rgba(0,0,0,0.2); + + -webkit-transform: translateZ(-90px) rotateX( 65deg ); + -moz-transform: translateZ(-90px) rotateX( 65deg ); + -ms-transform: translateZ(-90px) rotateX( 65deg ); + -o-transform: translateZ(-90px) rotateX( 65deg ); + transform: translateZ(-90px) rotateX( 65deg ); + } + +.reveal.cube .slides>section.stack { + padding: 0; + background: none; +} + +.reveal.cube .slides>section.past { + -webkit-transform-origin: 100% 0%; + -moz-transform-origin: 100% 0%; + -ms-transform-origin: 100% 0%; + transform-origin: 100% 0%; + + -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg); + -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg); + -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg); + transform: translate3d(-100%, 0, 0) rotateY(-90deg); +} + +.reveal.cube .slides>section.future { + -webkit-transform-origin: 0% 0%; + -moz-transform-origin: 0% 0%; + -ms-transform-origin: 0% 0%; + transform-origin: 0% 0%; + + -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg); + -moz-transform: translate3d(100%, 0, 0) rotateY(90deg); + -ms-transform: translate3d(100%, 0, 0) rotateY(90deg); + transform: translate3d(100%, 0, 0) rotateY(90deg); +} + +.reveal.cube .slides>section>section.past { + -webkit-transform-origin: 0% 100%; + -moz-transform-origin: 0% 100%; + -ms-transform-origin: 0% 100%; + transform-origin: 0% 100%; + + -webkit-transform: translate3d(0, -100%, 0) rotateX(90deg); + -moz-transform: translate3d(0, -100%, 0) rotateX(90deg); + -ms-transform: translate3d(0, -100%, 0) rotateX(90deg); + transform: translate3d(0, -100%, 0) rotateX(90deg); +} + +.reveal.cube .slides>section>section.future { + -webkit-transform-origin: 0% 0%; + -moz-transform-origin: 0% 0%; + -ms-transform-origin: 0% 0%; + transform-origin: 0% 0%; + + -webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg); + -moz-transform: translate3d(0, 100%, 0) rotateX(-90deg); + -ms-transform: translate3d(0, 100%, 0) rotateX(-90deg); + transform: translate3d(0, 100%, 0) rotateX(-90deg); +} + + +/********************************************* + * PAGE TRANSITION + *********************************************/ + +.reveal.page .slides { + -webkit-perspective-origin: 0% 50%; + -moz-perspective-origin: 0% 50%; + -ms-perspective-origin: 0% 50%; + perspective-origin: 0% 50%; + + -webkit-perspective: 3000px; + -moz-perspective: 3000px; + -ms-perspective: 3000px; + perspective: 3000px; +} + +.reveal.page .slides section { + padding: 30px; + min-height: 700px; + + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + .reveal.page .slides section.past { + z-index: 12; + } + .reveal.page .slides section:not(.stack):before { + content: ''; + position: absolute; + display: block; + width: 100%; + height: 100%; + left: 0; + top: 0; + background: rgba(0,0,0,0.1); + + -webkit-transform: translateZ( -20px ); + -moz-transform: translateZ( -20px ); + -ms-transform: translateZ( -20px ); + -o-transform: translateZ( -20px ); + transform: translateZ( -20px ); + } + .reveal.page .slides section:not(.stack):after { + content: ''; + position: absolute; + display: block; + width: 90%; + height: 30px; + left: 5%; + bottom: 0; + background: none; + z-index: 1; + + border-radius: 4px; + box-shadow: 0px 95px 25px rgba(0,0,0,0.2); + + -webkit-transform: translateZ(-90px) rotateX( 65deg ); + } + +.reveal.page .slides>section.stack { + padding: 0; + background: none; +} + +.reveal.page .slides>section.past { + -webkit-transform-origin: 0% 0%; + -moz-transform-origin: 0% 0%; + -ms-transform-origin: 0% 0%; + transform-origin: 0% 0%; + + -webkit-transform: translate3d(-40%, 0, 0) rotateY(-80deg); + -moz-transform: translate3d(-40%, 0, 0) rotateY(-80deg); + -ms-transform: translate3d(-40%, 0, 0) rotateY(-80deg); + transform: translate3d(-40%, 0, 0) rotateY(-80deg); +} + +.reveal.page .slides>section.future { + -webkit-transform-origin: 100% 0%; + -moz-transform-origin: 100% 0%; + -ms-transform-origin: 100% 0%; + transform-origin: 100% 0%; + + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +.reveal.page .slides>section>section.past { + -webkit-transform-origin: 0% 0%; + -moz-transform-origin: 0% 0%; + -ms-transform-origin: 0% 0%; + transform-origin: 0% 0%; + + -webkit-transform: translate3d(0, -40%, 0) rotateX(80deg); + -moz-transform: translate3d(0, -40%, 0) rotateX(80deg); + -ms-transform: translate3d(0, -40%, 0) rotateX(80deg); + transform: translate3d(0, -40%, 0) rotateX(80deg); +} + +.reveal.page .slides>section>section.future { + -webkit-transform-origin: 0% 100%; + -moz-transform-origin: 0% 100%; + -ms-transform-origin: 0% 100%; + transform-origin: 0% 100%; + + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + + +/********************************************* + * FADE TRANSITION + *********************************************/ + +.reveal .slides section[data-transition=fade], +.reveal.fade .slides section, +.reveal.fade .slides>section>section { + -webkit-transform: none; + -moz-transform: none; + -ms-transform: none; + -o-transform: none; + transform: none; + + -webkit-transition: opacity 0.5s; + -moz-transition: opacity 0.5s; + -ms-transition: opacity 0.5s; + -o-transition: opacity 0.5s; + transition: opacity 0.5s; +} + + +.reveal.fade.overview .slides section, +.reveal.fade.overview .slides>section>section, +.reveal.fade.overview-deactivating .slides section, +.reveal.fade.overview-deactivating .slides>section>section { + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} + + +/********************************************* + * NO TRANSITION + *********************************************/ + +.reveal .slides section[data-transition=none], +.reveal.none .slides section { + -webkit-transform: none; + -moz-transform: none; + -ms-transform: none; + -o-transform: none; + transform: none; + + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} + + +/********************************************* + * OVERVIEW + *********************************************/ + +.reveal.overview .slides { + -webkit-perspective-origin: 0% 0%; + -moz-perspective-origin: 0% 0%; + -ms-perspective-origin: 0% 0%; + perspective-origin: 0% 0%; + + -webkit-perspective: 700px; + -moz-perspective: 700px; + -ms-perspective: 700px; + perspective: 700px; +} + +.reveal.overview .slides section { + height: 600px; + top: -300px !important; + overflow: hidden; + opacity: 1 !important; + visibility: visible !important; + cursor: pointer; + background: rgba(0,0,0,0.1); +} +.reveal.overview .slides section .fragment { + opacity: 1; +} +.reveal.overview .slides section:after, +.reveal.overview .slides section:before { + display: none !important; +} +.reveal.overview .slides section>section { + opacity: 1; + cursor: pointer; +} + .reveal.overview .slides section:hover { + background: rgba(0,0,0,0.3); + } + .reveal.overview .slides section.present { + background: rgba(0,0,0,0.3); + } +.reveal.overview .slides>section.stack { + padding: 0; + top: 0 !important; + background: none; + overflow: visible; +} + + +/********************************************* + * PAUSED MODE + *********************************************/ + +.reveal .pause-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: black; + visibility: hidden; + opacity: 0; + z-index: 100; + + -webkit-transition: all 1s ease; + -moz-transition: all 1s ease; + -ms-transition: all 1s ease; + -o-transition: all 1s ease; + transition: all 1s ease; +} +.reveal.paused .pause-overlay { + visibility: visible; + opacity: 1; +} + + +/********************************************* + * FALLBACK + *********************************************/ + +.no-transforms { + overflow-y: auto; +} + +.no-transforms .reveal .slides { + position: relative; + width: 80%; + height: auto !important; + top: 0; + left: 50%; + margin: 0; + text-align: center; +} + +.no-transforms .reveal .controls, +.no-transforms .reveal .progress { + display: none !important; +} + +.no-transforms .reveal .slides section { + display: block !important; + opacity: 1 !important; + position: relative !important; + height: auto; + min-height: auto; + top: 0; + left: -50%; + margin: 70px 0; + + -webkit-transform: none; + -moz-transform: none; + -ms-transform: none; + -o-transform: none; + transform: none; +} + +.no-transforms .reveal .slides section section { + left: 0; +} + +.reveal .no-transition, +.reveal .no-transition * { + -webkit-transition: none !important; + -moz-transition: none !important; + -ms-transition: none !important; + -o-transition: none !important; + transition: none !important; +} + + +/********************************************* + * BACKGROUND STATES [DEPRECATED] + *********************************************/ + +.reveal .state-background { + position: absolute; + width: 100%; + height: 100%; + background: rgba( 0, 0, 0, 0 ); + + -webkit-transition: background 800ms ease; + -moz-transition: background 800ms ease; + -ms-transition: background 800ms ease; + -o-transition: background 800ms ease; + transition: background 800ms ease; +} +.alert .reveal .state-background { + background: rgba( 200, 50, 30, 0.6 ); +} +.soothe .reveal .state-background { + background: rgba( 50, 200, 90, 0.4 ); +} +.blackout .reveal .state-background { + background: rgba( 0, 0, 0, 0.6 ); +} +.whiteout .reveal .state-background { + background: rgba( 255, 255, 255, 0.6 ); +} +.cobalt .reveal .state-background { + background: rgba( 22, 152, 213, 0.6 ); +} +.mint .reveal .state-background { + background: rgba( 22, 213, 75, 0.6 ); +} +.submerge .reveal .state-background { + background: rgba( 12, 25, 77, 0.6); +} +.lila .reveal .state-background { + background: rgba( 180, 50, 140, 0.6 ); +} +.sunset .reveal .state-background { + background: rgba( 255, 122, 0, 0.6 ); +} + + +/********************************************* + * PER-SLIDE BACKGROUNDS + *********************************************/ + +.reveal>.backgrounds { + position: absolute; + width: 100%; + height: 100%; +} + .reveal .slide-background { + position: absolute; + width: 100%; + height: 100%; + opacity: 0; + visibility: hidden; + + background-color: rgba( 0, 0, 0, 0 ); + background-position: 50% 50%; + background-repeat: no-repeat; + background-size: cover; + + -webkit-transition: all 600ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + -moz-transition: all 600ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + -ms-transition: all 600ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + -o-transition: all 600ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + transition: all 600ms cubic-bezier(0.260, 0.860, 0.440, 0.985); + } + .reveal .slide-background.present { + opacity: 1; + visibility: visible; + } + + .print-pdf .reveal .slide-background { + opacity: 1 !important; + visibility: visible !important; + } + +/* Immediate transition style */ +.reveal[data-background-transition=none]>.backgrounds .slide-background, +.reveal>.backgrounds .slide-background[data-background-transition=none] { + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} + +/* Linear sliding transition style */ +.reveal[data-background-transition=slide]>.backgrounds .slide-background, +.reveal>.backgrounds .slide-background[data-background-transition=slide] { + opacity: 1; + + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + + -webkit-transition-duration: 800ms; + -moz-transition-duration: 800ms; + -ms-transition-duration: 800ms; + -o-transition-duration: 800ms; + transition-duration: 800ms; +} + .reveal[data-background-transition=slide]>.backgrounds .slide-background.past, + .reveal>.backgrounds .slide-background.past[data-background-transition=slide] { + -webkit-transform: translate(-100%, 0); + -moz-transform: translate(-100%, 0); + -ms-transform: translate(-100%, 0); + -o-transform: translate(-100%, 0); + transform: translate(-100%, 0); + } + .reveal[data-background-transition=slide]>.backgrounds .slide-background.future, + .reveal>.backgrounds .slide-background.future[data-background-transition=slide] { + -webkit-transform: translate(100%, 0); + -moz-transform: translate(100%, 0); + -ms-transform: translate(100%, 0); + -o-transform: translate(100%, 0); + transform: translate(100%, 0); + } + + .reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past, + .reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide] { + -webkit-transform: translate(0, -100%); + -moz-transform: translate(0, -100%); + -ms-transform: translate(0, -100%); + -o-transform: translate(0, -100%); + transform: translate(0, -100%); + } + .reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future, + .reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide] { + -webkit-transform: translate(0, 100%); + -moz-transform: translate(0, 100%); + -ms-transform: translate(0, 100%); + -o-transform: translate(0, 100%); + transform: translate(0, 100%); + } + + +/* Global transition speed settings */ +.reveal[data-transition-speed="fast"]>.backgrounds .slide-background { + -webkit-transition-duration: 400ms; + -moz-transition-duration: 400ms; + -ms-transition-duration: 400ms; + transition-duration: 400ms; +} +.reveal[data-transition-speed="slow"]>.backgrounds .slide-background { + -webkit-transition-duration: 1200ms; + -moz-transition-duration: 1200ms; + -ms-transition-duration: 1200ms; + transition-duration: 1200ms; +} + + +/********************************************* + * RTL SUPPORT + *********************************************/ + +.reveal.rtl .slides, +.reveal.rtl .slides h1, +.reveal.rtl .slides h2, +.reveal.rtl .slides h3, +.reveal.rtl .slides h4, +.reveal.rtl .slides h5, +.reveal.rtl .slides h6 { + direction: rtl; + font-family: sans-serif; +} + +.reveal.rtl pre, +.reveal.rtl code { + direction: ltr; +} + +.reveal.rtl ol, +.reveal.rtl ul { + text-align: right; +} + +.reveal.rtl .progress span { + float: right +} + + +/********************************************* + * LINK PREVIEW OVERLAY + *********************************************/ + + .reveal .preview-link-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1000; + background: rgba( 0, 0, 0, 0.9 ); + opacity: 0; + visibility: hidden; + + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + transition: all 0.3s ease; + } + .reveal .preview-link-overlay.visible { + opacity: 1; + visibility: visible; + } + + .reveal .preview-link-overlay .spinner { + position: absolute; + display: block; + top: 50%; + left: 50%; + width: 32px; + height: 32px; + margin: -16px 0 0 -16px; + z-index: 10; + background-image: url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D); + + visibility: visible; + opacity: 0.6; + + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + transition: all 0.3s ease; + } + + .reveal .preview-link-overlay header { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 40px; + z-index: 2; + border-bottom: 1px solid #222; + } + .reveal .preview-link-overlay header a { + display: inline-block; + width: 40px; + height: 40px; + padding: 0 10px; + float: right; + opacity: 0.6; + + box-sizing: border-box; + } + .reveal .preview-link-overlay header a:hover { + opacity: 1; + } + .reveal .preview-link-overlay header a .icon { + display: inline-block; + width: 20px; + height: 20px; + + background-position: 50% 50%; + background-size: 100%; + background-repeat: no-repeat; + } + .reveal .preview-link-overlay header a.close .icon { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC); + } + .reveal .preview-link-overlay header a.external .icon { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==); + } + + .reveal .preview-link-overlay .viewport { + position: absolute; + top: 40px; + right: 0; + bottom: 0; + left: 0; + } + + .reveal .preview-link-overlay .viewport iframe { + width: 100%; + height: 100%; + max-width: 100%; + max-height: 100%; + border: 0; + + opacity: 0; + visibility: hidden; + + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + transition: all 0.3s ease; + } + + .reveal .preview-link-overlay.loaded .viewport iframe { + opacity: 1; + visibility: visible; + } + + .reveal .preview-link-overlay.loaded .spinner { + opacity: 0; + visibility: hidden; + + -webkit-transform: scale(0.2); + -moz-transform: scale(0.2); + -ms-transform: scale(0.2); + transform: scale(0.2); + } + + +/********************************************* + * ROLLING LINKS + *********************************************/ + +.reveal .roll { + display: inline-block; + line-height: 1.2; + overflow: hidden; + + vertical-align: top; + + -webkit-perspective: 400px; + -moz-perspective: 400px; + -ms-perspective: 400px; + perspective: 400px; + + -webkit-perspective-origin: 50% 50%; + -moz-perspective-origin: 50% 50%; + -ms-perspective-origin: 50% 50%; + perspective-origin: 50% 50%; +} + .reveal .roll:hover { + background: none; + text-shadow: none; + } +.reveal .roll span { + display: block; + position: relative; + padding: 0 2px; + + pointer-events: none; + + -webkit-transition: all 400ms ease; + -moz-transition: all 400ms ease; + -ms-transition: all 400ms ease; + transition: all 400ms ease; + + -webkit-transform-origin: 50% 0%; + -moz-transform-origin: 50% 0%; + -ms-transform-origin: 50% 0%; + transform-origin: 50% 0%; + + -webkit-transform-style: preserve-3d; + -moz-transform-style: preserve-3d; + -ms-transform-style: preserve-3d; + transform-style: preserve-3d; + + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; +} + .reveal .roll:hover span { + background: rgba(0,0,0,0.5); + + -webkit-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg ); + -moz-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg ); + -ms-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg ); + transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg ); + } +.reveal .roll span:after { + content: attr(data-title); + + display: block; + position: absolute; + left: 0; + top: 0; + padding: 0 2px; + + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; + + -webkit-transform-origin: 50% 0%; + -moz-transform-origin: 50% 0%; + -ms-transform-origin: 50% 0%; + transform-origin: 50% 0%; + + -webkit-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg ); + -moz-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg ); + -ms-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg ); + transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg ); +} + + +/********************************************* + * SPEAKER NOTES + *********************************************/ + +.reveal aside.notes { + display: none; +} + + +/********************************************* + * ZOOM PLUGIN + *********************************************/ + +.zoomed .reveal *, +.zoomed .reveal *:before, +.zoomed .reveal *:after { + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + transform: none !important; + + -webkit-backface-visibility: visible !important; + -moz-backface-visibility: visible !important; + -ms-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +.zoomed .reveal .progress, +.zoomed .reveal .controls { + opacity: 0; +} + +.zoomed .reveal .roll span { + background: none; +} + +.zoomed .reveal .roll span:after { + visibility: hidden; +} + + diff --git a/css/reveal.min.css b/css/reveal.min.css new file mode 100644 index 0000000..8db3675 --- /dev/null +++ b/css/reveal.min.css @@ -0,0 +1,7 @@ +@charset "UTF-8";/*! + * reveal.js + * http://lab.hakim.se/reveal-js + * MIT licensed + * + * Copyright (C) 2013 Hakim El Hattab, http://hakim.se + */ html,body,.reveal div,.reveal span,.reveal applet,.reveal object,.reveal iframe,.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6,.reveal p,.reveal blockquote,.reveal pre,.reveal a,.reveal abbr,.reveal acronym,.reveal address,.reveal big,.reveal cite,.reveal code,.reveal del,.reveal dfn,.reveal em,.reveal img,.reveal ins,.reveal kbd,.reveal q,.reveal s,.reveal samp,.reveal small,.reveal strike,.reveal strong,.reveal sub,.reveal sup,.reveal tt,.reveal var,.reveal b,.reveal u,.reveal i,.reveal center,.reveal dl,.reveal dt,.reveal dd,.reveal ol,.reveal ul,.reveal li,.reveal fieldset,.reveal form,.reveal label,.reveal legend,.reveal table,.reveal caption,.reveal tbody,.reveal tfoot,.reveal thead,.reveal tr,.reveal th,.reveal td,.reveal article,.reveal aside,.reveal canvas,.reveal details,.reveal embed,.reveal figure,.reveal figcaption,.reveal footer,.reveal header,.reveal hgroup,.reveal menu,.reveal nav,.reveal output,.reveal ruby,.reveal section,.reveal summary,.reveal time,.reveal mark,.reveal audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.reveal article,.reveal aside,.reveal details,.reveal figcaption,.reveal figure,.reveal footer,.reveal header,.reveal hgroup,.reveal menu,.reveal nav,.reveal section{display:block}html,body{width:100%;height:100%;overflow:hidden}body{position:relative;line-height:1}::selection{background:#FF5E99;color:#fff;text-shadow:none}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto;word-wrap:break-word;line-height:1}.reveal h1{font-size:3.77em}.reveal h2{font-size:2.11em}.reveal h3{font-size:1.55em}.reveal h4{font-size:1em}.reveal .slides section .fragment{opacity:0;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-ms-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.reveal .slides section .fragment.visible{opacity:1}.reveal .slides section .fragment.grow{opacity:1}.reveal .slides section .fragment.grow.visible{-webkit-transform:scale(1.3);-moz-transform:scale(1.3);-ms-transform:scale(1.3);-o-transform:scale(1.3);transform:scale(1.3)}.reveal .slides section .fragment.shrink{opacity:1}.reveal .slides section .fragment.shrink.visible{-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);-o-transform:scale(0.7);transform:scale(0.7)}.reveal .slides section .fragment.zoom-in{opacity:0;-webkit-transform:scale(0.1);-moz-transform:scale(0.1);-ms-transform:scale(0.1);-o-transform:scale(0.1);transform:scale(0.1)}.reveal .slides section .fragment.zoom-in.visible{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}.reveal .slides section .fragment.roll-in{opacity:0;-webkit-transform:rotateX(90deg);-moz-transform:rotateX(90deg);-ms-transform:rotateX(90deg);-o-transform:rotateX(90deg);transform:rotateX(90deg)}.reveal .slides section .fragment.roll-in.visible{opacity:1;-webkit-transform:rotateX(0);-moz-transform:rotateX(0);-ms-transform:rotateX(0);-o-transform:rotateX(0);transform:rotateX(0)}.reveal .slides section .fragment.fade-out{opacity:1}.reveal .slides section .fragment.fade-out.visible{opacity:0}.reveal .slides section .fragment.semi-fade-out{opacity:1}.reveal .slides section .fragment.semi-fade-out.visible{opacity:.5}.reveal .slides section .fragment.highlight-red,.reveal .slides section .fragment.highlight-green,.reveal .slides section .fragment.highlight-blue{opacity:1}.reveal .slides section .fragment.highlight-red.visible{color:#ff2c2d}.reveal .slides section .fragment.highlight-green.visible{color:#17ff2e}.reveal .slides section .fragment.highlight-blue.visible{color:#1b91ff}.reveal:after{content:'';font-style:italic}.reveal iframe{z-index:1}.reveal img,.reveal video,.reveal iframe{max-width:95%;max-height:95%}.reveal a{position:relative}.reveal strong,.reveal b{font-weight:700}.reveal em,.reveal i{font-style:italic}.reveal ol,.reveal ul{display:inline-block;text-align:left;margin:0 0 0 1em}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ul ul,.reveal ul ol,.reveal ol ol,.reveal ol ul{display:block;margin-left:40px}.reveal p{margin-bottom:10px;line-height:1.2em}.reveal q,.reveal blockquote{quotes:none}.reveal blockquote{display:block;position:relative;width:70%;margin:5px auto;padding:5px;font-style:italic;background:rgba(255,255,255,.05);box-shadow:0 0 2px rgba(0,0,0,.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{display:block;position:relative;width:90%;margin:15px auto;text-align:left;font-size:.55em;font-family:monospace;line-height:1.2em;word-wrap:break-word;box-shadow:0 0 6px rgba(0,0,0,.3)}.reveal code{font-family:monospace}.reveal pre code{padding:5px;overflow:auto;max-height:400px;word-wrap:normal}.reveal pre.stretch code{height:100%;max-height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal table th,.reveal table td{text-align:left;padding-right:.3em}.reveal table th{text-shadow:#fff 1px 1px 2px}.reveal sup{vertical-align:super}.reveal sub{vertical-align:sub}.reveal small{display:inline-block;font-size:.6em;line-height:1.2em;vertical-align:top}.reveal small *{vertical-align:top}.reveal .stretch{max-width:none;max-height:none}.reveal .controls{display:none;position:fixed;width:110px;height:110px;z-index:30;right:10px;bottom:10px}.reveal .controls div{position:absolute;opacity:.05;width:0;height:0;border:12px solid transparent;-moz-transform:scale(.9999);-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-ms-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.reveal .controls div.enabled{opacity:.7;cursor:pointer}.reveal .controls div.enabled:active{margin-top:1px}.reveal .controls div.navigate-left{top:42px;border-right-width:22px;border-right-color:#eee}.reveal .controls div.navigate-left.fragmented{opacity:.3}.reveal .controls div.navigate-right{left:74px;top:42px;border-left-width:22px;border-left-color:#eee}.reveal .controls div.navigate-right.fragmented{opacity:.3}.reveal .controls div.navigate-up{left:42px;border-bottom-width:22px;border-bottom-color:#eee}.reveal .controls div.navigate-up.fragmented{opacity:.3}.reveal .controls div.navigate-down{left:42px;top:74px;border-top-width:22px;border-top-color:#eee}.reveal .controls div.navigate-down.fragmented{opacity:.3}.reveal .progress{position:fixed;display:none;height:3px;width:100%;bottom:0;left:0;z-index:10}.reveal .progress:after{content:'';display:'block';position:absolute;height:20px;width:100%;top:-20px}.reveal .progress span{display:block;height:100%;width:0;-webkit-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-o-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);transition:width 800ms cubic-bezier(0.26,.86,.44,.985)}.reveal{position:relative;width:100%;height:100%;-ms-touch-action:none}.reveal .slides{position:absolute;width:100%;height:100%;left:50%;top:50%;overflow:visible;z-index:1;text-align:center;-webkit-transition:-webkit-perspective .4s ease;-moz-transition:-moz-perspective .4s ease;-ms-transition:-ms-perspective .4s ease;-o-transition:-o-perspective .4s ease;transition:perspective .4s ease;-webkit-perspective:600px;-moz-perspective:600px;-ms-perspective:600px;perspective:600px;-webkit-perspective-origin:0 -100px;-moz-perspective-origin:0 -100px;-ms-perspective-origin:0 -100px;perspective-origin:0 -100px}.reveal .slides>section{-ms-perspective:600px}.reveal .slides>section,.reveal .slides>section>section{display:none;position:absolute;width:100%;padding:20px 0;z-index:10;line-height:1.2em;font-weight:400;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:-webkit-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-webkit-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:-moz-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-moz-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:-ms-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-ms-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-o-transition:-o-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-o-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);transition:transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985)}.reveal[data-transition-speed=fast] .slides section{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal[data-transition-speed=slow] .slides section{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal .slides section[data-transition-speed=fast]{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal .slides section[data-transition-speed=slow]{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal .slides>section{left:-50%;top:-50%}.reveal .slides>section.stack{padding-top:0;padding-bottom:0}.reveal .slides>section.present,.reveal .slides>section>section.present{display:block;z-index:11;opacity:1}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:auto!important}.reveal .slides>section.future,.reveal .slides>section>section.future,.reveal .slides>section.past,.reveal .slides>section>section.past{pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section[data-transition=default].past,.reveal .slides>section.past{display:block;opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section.future{display:block;opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section.past{display:block;opacity:0;-webkit-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);-moz-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);-ms-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section.future{display:block;opacity:0;-webkit-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);-moz-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);-ms-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides>section[data-transition=concave].past,.reveal.concave .slides>section.past{-webkit-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=concave].future,.reveal.concave .slides>section.future{-webkit-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=concave].past,.reveal.concave .slides>section>section.past{-webkit-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);-moz-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);-ms-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0)}.reveal .slides>section>section[data-transition=concave].future,.reveal.concave .slides>section>section.future{-webkit-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);-moz-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);-ms-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0)}.reveal .slides>section[data-transition=zoom].past,.reveal.zoom .slides>section.past{opacity:0;visibility:hidden;-webkit-transform:scale(16);-moz-transform:scale(16);-ms-transform:scale(16);-o-transform:scale(16);transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal.zoom .slides>section.future{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal.zoom .slides>section>section.past{-webkit-transform:translate(0,-150%);-moz-transform:translate(0,-150%);-ms-transform:translate(0,-150%);-o-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=zoom].future,.reveal.zoom .slides>section>section.future{-webkit-transform:translate(0,150%);-moz-transform:translate(0,150%);-ms-transform:translate(0,150%);-o-transform:translate(0,150%);transform:translate(0,150%)}.reveal.linear section{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=linear].past,.reveal.linear .slides>section.past{-webkit-transform:translate(-150%,0);-moz-transform:translate(-150%,0);-ms-transform:translate(-150%,0);-o-transform:translate(-150%,0);transform:translate(-150%,0)}.reveal .slides>section[data-transition=linear].future,.reveal.linear .slides>section.future{-webkit-transform:translate(150%,0);-moz-transform:translate(150%,0);-ms-transform:translate(150%,0);-o-transform:translate(150%,0);transform:translate(150%,0)}.reveal .slides>section>section[data-transition=linear].past,.reveal.linear .slides>section>section.past{-webkit-transform:translate(0,-150%);-moz-transform:translate(0,-150%);-ms-transform:translate(0,-150%);-o-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal.linear .slides>section>section.future{-webkit-transform:translate(0,150%);-moz-transform:translate(0,150%);-ms-transform:translate(0,150%);-o-transform:translate(0,150%);transform:translate(0,150%)}.reveal.cube .slides{-webkit-perspective:1300px;-moz-perspective:1300px;-ms-perspective:1300px;perspective:1300px}.reveal.cube .slides section{padding:30px;min-height:700px;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal.center.cube .slides section{min-height:auto}.reveal.cube .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);border-radius:4px;-webkit-transform:translateZ(-20px);-moz-transform:translateZ(-20px);-ms-transform:translateZ(-20px);-o-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg);-moz-transform:translateZ(-90px) rotateX(65deg);-ms-transform:translateZ(-90px) rotateX(65deg);-o-transform:translateZ(-90px) rotateX(65deg);transform:translateZ(-90px) rotateX(65deg)}.reveal.cube .slides>section.stack{padding:0;background:0}.reveal.cube .slides>section.past{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg);-moz-transform:translate3d(-100%,0,0) rotateY(-90deg);-ms-transform:translate3d(-100%,0,0) rotateY(-90deg);transform:translate3d(-100%,0,0) rotateY(-90deg)}.reveal.cube .slides>section.future{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg);-moz-transform:translate3d(100%,0,0) rotateY(90deg);-ms-transform:translate3d(100%,0,0) rotateY(90deg);transform:translate3d(100%,0,0) rotateY(90deg)}.reveal.cube .slides>section>section.past{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,-100%,0) rotateX(90deg);-moz-transform:translate3d(0,-100%,0) rotateX(90deg);-ms-transform:translate3d(0,-100%,0) rotateX(90deg);transform:translate3d(0,-100%,0) rotateX(90deg)}.reveal.cube .slides>section>section.future{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,100%,0) rotateX(-90deg);-moz-transform:translate3d(0,100%,0) rotateX(-90deg);-ms-transform:translate3d(0,100%,0) rotateX(-90deg);transform:translate3d(0,100%,0) rotateX(-90deg)}.reveal.page .slides{-webkit-perspective-origin:0 50%;-moz-perspective-origin:0 50%;-ms-perspective-origin:0 50%;perspective-origin:0 50%;-webkit-perspective:3000px;-moz-perspective:3000px;-ms-perspective:3000px;perspective:3000px}.reveal.page .slides section{padding:30px;min-height:700px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);-webkit-transform:translateZ(-20px);-moz-transform:translateZ(-20px);-ms-transform:translateZ(-20px);-o-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg)}.reveal.page .slides>section.stack{padding:0;background:0}.reveal.page .slides>section.past{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(-40%,0,0) rotateY(-80deg);-moz-transform:translate3d(-40%,0,0) rotateY(-80deg);-ms-transform:translate3d(-40%,0,0) rotateY(-80deg);transform:translate3d(-40%,0,0) rotateY(-80deg)}.reveal.page .slides>section.future{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal.page .slides>section>section.past{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,-40%,0) rotateX(80deg);-moz-transform:translate3d(0,-40%,0) rotateX(80deg);-ms-transform:translate3d(0,-40%,0) rotateX(80deg);transform:translate3d(0,-40%,0) rotateX(80deg)}.reveal.page .slides>section>section.future{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section,.reveal.fade .slides>section>section{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none;-webkit-transition:opacity .5s;-moz-transition:opacity .5s;-ms-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section,.reveal.fade.overview-deactivating .slides section,.reveal.fade.overview-deactivating .slides>section>section{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none;-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal.overview .slides{-webkit-perspective-origin:0 0;-moz-perspective-origin:0 0;-ms-perspective-origin:0 0;perspective-origin:0 0;-webkit-perspective:700px;-moz-perspective:700px;-ms-perspective:700px;perspective:700px}.reveal.overview .slides section{height:600px;top:-300px!important;overflow:hidden;opacity:1!important;visibility:visible!important;cursor:pointer;background:rgba(0,0,0,.1)}.reveal.overview .slides section .fragment{opacity:1}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none!important}.reveal.overview .slides section>section{opacity:1;cursor:pointer}.reveal.overview .slides section:hover{background:rgba(0,0,0,.3)}.reveal.overview .slides section.present{background:rgba(0,0,0,.3)}.reveal.overview .slides>section.stack{padding:0;top:0!important;background:0;overflow:visible}.reveal .pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;visibility:hidden;opacity:0;z-index:100;-webkit-transition:all 1s ease;-moz-transition:all 1s ease;-ms-transition:all 1s ease;-o-transition:all 1s ease;transition:all 1s ease}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.no-transforms{overflow-y:auto}.no-transforms .reveal .slides{position:relative;width:80%;height:auto!important;top:0;left:50%;margin:0;text-align:center}.no-transforms .reveal .controls,.no-transforms .reveal .progress{display:none!important}.no-transforms .reveal .slides section{display:block!important;opacity:1!important;position:relative!important;height:auto;min-height:auto;top:0;left:-50%;margin:70px 0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.no-transforms .reveal .slides section section{left:0}.reveal .no-transition,.reveal .no-transition *{-webkit-transition:none!important;-moz-transition:none!important;-ms-transition:none!important;-o-transition:none!important;transition:none!important}.reveal .state-background{position:absolute;width:100%;height:100%;background:rgba(0,0,0,0);-webkit-transition:background 800ms ease;-moz-transition:background 800ms ease;-ms-transition:background 800ms ease;-o-transition:background 800ms ease;transition:background 800ms ease}.alert .reveal .state-background{background:rgba(200,50,30,.6)}.soothe .reveal .state-background{background:rgba(50,200,90,.4)}.blackout .reveal .state-background{background:rgba(0,0,0,.6)}.whiteout .reveal .state-background{background:rgba(255,255,255,.6)}.cobalt .reveal .state-background{background:rgba(22,152,213,.6)}.mint .reveal .state-background{background:rgba(22,213,75,.6)}.submerge .reveal .state-background{background:rgba(12,25,77,.6)}.lila .reveal .state-background{background:rgba(180,50,140,.6)}.sunset .reveal .state-background{background:rgba(255,122,0,.6)}.reveal>.backgrounds{position:absolute;width:100%;height:100%}.reveal .slide-background{position:absolute;width:100%;height:100%;opacity:0;visibility:hidden;background-color:rgba(0,0,0,0);background-position:50% 50%;background-repeat:no-repeat;background-size:cover;-webkit-transition:all 600ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:all 600ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:all 600ms cubic-bezier(0.26,.86,.44,.985);-o-transition:all 600ms cubic-bezier(0.26,.86,.44,.985);transition:all 600ms cubic-bezier(0.26,.86,.44,.985)}.reveal .slide-background.present{opacity:1;visibility:visible}.print-pdf .reveal .slide-background{opacity:1!important;visibility:visible!important}.reveal[data-background-transition=none]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=none]{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal[data-background-transition=slide]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=slide]{opacity:1;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition-duration:800ms;-moz-transition-duration:800ms;-ms-transition-duration:800ms;-o-transition-duration:800ms;transition-duration:800ms}.reveal[data-background-transition=slide]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=slide]{-webkit-transform:translate(-100%,0);-moz-transform:translate(-100%,0);-ms-transform:translate(-100%,0);-o-transform:translate(-100%,0);transform:translate(-100%,0)}.reveal[data-background-transition=slide]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=slide]{-webkit-transform:translate(100%,0);-moz-transform:translate(100%,0);-ms-transform:translate(100%,0);-o-transform:translate(100%,0);transform:translate(100%,0)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide]{-webkit-transform:translate(0,-100%);-moz-transform:translate(0,-100%);-ms-transform:translate(0,-100%);-o-transform:translate(0,-100%);transform:translate(0,-100%)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide]{-webkit-transform:translate(0,100%);-moz-transform:translate(0,100%);-ms-transform:translate(0,100%);-o-transform:translate(0,100%);transform:translate(0,100%)}.reveal[data-transition-speed=fast]>.backgrounds .slide-background{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal[data-transition-speed=slow]>.backgrounds .slide-background{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl pre,.reveal.rtl code{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{float:right}.reveal .preview-link-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(0,0,0,.9);opacity:0;visibility:hidden;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay.visible{opacity:1;visibility:visible}.reveal .preview-link-overlay .spinner{position:absolute;display:block;top:50%;left:50%;width:32px;height:32px;margin:-16px 0 0 -16px;z-index:10;background-image:url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);visibility:visible;opacity:.6;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay header{position:absolute;left:0;top:0;width:100%;height:40px;z-index:2;border-bottom:1px solid #222}.reveal .preview-link-overlay header a{display:inline-block;width:40px;height:40px;padding:0 10px;float:right;opacity:.6;box-sizing:border-box}.reveal .preview-link-overlay header a:hover{opacity:1}.reveal .preview-link-overlay header a .icon{display:inline-block;width:20px;height:20px;background-position:50% 50%;background-size:100%;background-repeat:no-repeat}.reveal .preview-link-overlay header a.close .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC)}.reveal .preview-link-overlay header a.external .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==)}.reveal .preview-link-overlay .viewport{position:absolute;top:40px;right:0;bottom:0;left:0}.reveal .preview-link-overlay .viewport iframe{width:100%;height:100%;max-width:100%;max-height:100%;border:0;opacity:0;visibility:hidden;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay.loaded .viewport iframe{opacity:1;visibility:visible}.reveal .preview-link-overlay.loaded .spinner{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);transform:scale(0.2)}.reveal .roll{display:inline-block;line-height:1.2;overflow:hidden;vertical-align:top;-webkit-perspective:400px;-moz-perspective:400px;-ms-perspective:400px;perspective:400px;-webkit-perspective-origin:50% 50%;-moz-perspective-origin:50% 50%;-ms-perspective-origin:50% 50%;perspective-origin:50% 50%}.reveal .roll:hover{background:0;text-shadow:none}.reveal .roll span{display:block;position:relative;padding:0 2px;pointer-events:none;-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;-ms-transition:all 400ms ease;transition:all 400ms ease;-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.reveal .roll:hover span{background:rgba(0,0,0,.5);-webkit-transform:translate3d(0px,0,-45px) rotateX(90deg);-moz-transform:translate3d(0px,0,-45px) rotateX(90deg);-ms-transform:translate3d(0px,0,-45px) rotateX(90deg);transform:translate3d(0px,0,-45px) rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);display:block;position:absolute;left:0;top:0;padding:0 2px;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:translate3d(0px,110%,0) rotateX(-90deg);-moz-transform:translate3d(0px,110%,0) rotateX(-90deg);-ms-transform:translate3d(0px,110%,0) rotateX(-90deg);transform:translate3d(0px,110%,0) rotateX(-90deg)}.reveal aside.notes{display:none}.zoomed .reveal *,.zoomed .reveal :before,.zoomed .reveal :after{-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;transform:none!important;-webkit-backface-visibility:visible!important;-moz-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}.zoomed .reveal .progress,.zoomed .reveal .controls{opacity:0}.zoomed .reveal .roll span{background:0}.zoomed .reveal .roll span:after{visibility:hidden} \ No newline at end of file diff --git a/css/site.css b/css/site.css new file mode 100644 index 0000000..47bf187 --- /dev/null +++ b/css/site.css @@ -0,0 +1,35 @@ +.blue-code { + color: blue; +} + +.green-code { + color: green; +} + +.pink-results { + color: darkred; +} + +.center-text { + text-align: center; +} + +.reveal table { + margin: 1em auto; + +} + +.reveal table th { + border-top: 0; + border-left: 1px solid black; + border-right: 1px solid black; + border-bottom: 1px solid black; + width: 200px; + text-align: center; + } + +.reveal table td { + border: 1px solid black; + width: 200px; + text-align: center; + } diff --git a/css/theme/README.md b/css/theme/README.md new file mode 100755 index 0000000..4a6f9be --- /dev/null +++ b/css/theme/README.md @@ -0,0 +1,11 @@ +Themes are written using Sass to keep things modular and reduce the need for repeated selectors across files. Find out how to install Sass here http://sass-lang.com/, once Sass is installed run the follwing command to start monitoring the source files for changes. + +After installing sass, you will also need to run the following: + +``` +gem install compass -v 0.12.7 +``` + +``` +compass watch -c compass.rb +``` diff --git a/css/theme/gdiaa.css b/css/theme/gdiaa.css new file mode 100644 index 0000000..e26af55 --- /dev/null +++ b/css/theme/gdiaa.css @@ -0,0 +1,2589 @@ +/* Girl Develop It Ann Arbor */ +/*! + * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url("../../fonts/FontAwesome/fontawesome-webfont.eot?v=4.0.3"); + src: url("../../fonts/FontAwesome/fontawesome-webfont.eot?#iefix&v=4.0.3") format("embedded-opentype"), url("../../fonts/FontAwesome/fontawesome-webfont.woff?v=4.0.3") format("woff"), url("../../fonts/FontAwesome/fontawesome-webfont.ttf?v=4.0.3") format("truetype"), url("../../fonts/FontAwesome/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular") format("svg"); + font-weight: normal; + font-style: normal; +} + +/* line 4, source/lib/font-awesome/_core.scss */ +.fa { + display: inline-block; + font-family: FontAwesome !important; + font-style: normal !important; + font-weight: normal !important; + line-height: 1 !important; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* makes the font 33% larger relative to the icon container */ +/* line 5, source/lib/font-awesome/_larger.scss */ +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -15%; +} + +/* line 10, source/lib/font-awesome/_larger.scss */ +.fa-2x { + font-size: 2em; +} + +/* line 11, source/lib/font-awesome/_larger.scss */ +.fa-3x { + font-size: 3em; +} + +/* line 12, source/lib/font-awesome/_larger.scss */ +.fa-4x { + font-size: 4em; +} + +/* line 13, source/lib/font-awesome/_larger.scss */ +.fa-5x { + font-size: 5em; +} + +/* line 3, source/lib/font-awesome/_fixed-width.scss */ +.fa-fw { + width: 1.28571em; + text-align: center; +} + +/* line 4, source/lib/font-awesome/_list.scss */ +.fa-ul { + padding-left: 0; + margin-left: 2.14286em; + list-style-type: none; +} +/* line 8, source/lib/font-awesome/_list.scss */ +.fa-ul > li { + position: relative; +} + +/* line 10, source/lib/font-awesome/_list.scss */ +.fa-li { + position: absolute; + left: -2.14286em; + width: 2.14286em; + top: 0.14286em; + text-align: center; +} +/* line 16, source/lib/font-awesome/_list.scss */ +.fa-li.fa-lg { + left: -1.85714em; +} + +/* line 4, source/lib/font-awesome/_bordered-pulled.scss */ +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} + +/* line 10, source/lib/font-awesome/_bordered-pulled.scss */ +.pull-right { + float: right; +} + +/* line 11, source/lib/font-awesome/_bordered-pulled.scss */ +.pull-left { + float: left; +} + +/* line 14, source/lib/font-awesome/_bordered-pulled.scss */ +.fa.pull-left { + margin-right: .3em; +} +/* line 15, source/lib/font-awesome/_bordered-pulled.scss */ +.fa.pull-right { + margin-left: .3em; +} + +/* line 4, source/lib/font-awesome/_spinning.scss */ +.fa-spin { + -webkit-animation: spin 2s infinite linear; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} + +@-moz-keyframes spin { + /* line 12, source/lib/font-awesome/_spinning.scss */ + 0% { + -moz-transform: rotate(0deg); + } + + /* line 13, source/lib/font-awesome/_spinning.scss */ + 100% { + -moz-transform: rotate(359deg); + } +} + +@-webkit-keyframes spin { + /* line 16, source/lib/font-awesome/_spinning.scss */ + 0% { + -webkit-transform: rotate(0deg); + } + + /* line 17, source/lib/font-awesome/_spinning.scss */ + 100% { + -webkit-transform: rotate(359deg); + } +} + +@-o-keyframes spin { + /* line 20, source/lib/font-awesome/_spinning.scss */ + 0% { + -o-transform: rotate(0deg); + } + + /* line 21, source/lib/font-awesome/_spinning.scss */ + 100% { + -o-transform: rotate(359deg); + } +} + +@-ms-keyframes spin { + /* line 24, source/lib/font-awesome/_spinning.scss */ + 0% { + -ms-transform: rotate(0deg); + } + + /* line 25, source/lib/font-awesome/_spinning.scss */ + 100% { + -ms-transform: rotate(359deg); + } +} + +@keyframes spin { + /* line 28, source/lib/font-awesome/_spinning.scss */ + 0% { + transform: rotate(0deg); + } + + /* line 29, source/lib/font-awesome/_spinning.scss */ + 100% { + transform: rotate(359deg); + } +} + +/* line 4, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); +} + +/* line 5, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); +} + +/* line 6, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); +} + +/* line 8, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: scale(-1, 1); + -moz-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +/* line 9, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: scale(1, -1); + -moz-transform: scale(1, -1); + -ms-transform: scale(1, -1); + -o-transform: scale(1, -1); + transform: scale(1, -1); +} + +/* line 4, source/lib/font-awesome/_stacked.scss */ +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} + +/* line 12, source/lib/font-awesome/_stacked.scss */ +.fa-stack-1x, .fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} + +/* line 18, source/lib/font-awesome/_stacked.scss */ +.fa-stack-1x { + line-height: inherit; +} + +/* line 19, source/lib/font-awesome/_stacked.scss */ +.fa-stack-2x { + font-size: 2em; +} + +/* line 20, source/lib/font-awesome/_stacked.scss */ +.fa-inverse { + color: white; +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +/* line 4, source/lib/font-awesome/_icons.scss */ +.fa-glass:before { + content: "\f000"; +} + +/* line 5, source/lib/font-awesome/_icons.scss */ +.fa-music:before { + content: "\f001"; +} + +/* line 6, source/lib/font-awesome/_icons.scss */ +.fa-search:before { + content: "\f002"; +} + +/* line 7, source/lib/font-awesome/_icons.scss */ +.fa-envelope-o:before { + content: "\f003"; +} + +/* line 8, source/lib/font-awesome/_icons.scss */ +.fa-heart:before { + content: "\f004"; +} + +/* line 9, source/lib/font-awesome/_icons.scss */ +.fa-star:before { + content: "\f005"; +} + +/* line 10, source/lib/font-awesome/_icons.scss */ +.fa-star-o:before { + content: "\f006"; +} + +/* line 11, source/lib/font-awesome/_icons.scss */ +.fa-user:before { + content: "\f007"; +} + +/* line 12, source/lib/font-awesome/_icons.scss */ +.fa-film:before { + content: "\f008"; +} + +/* line 13, source/lib/font-awesome/_icons.scss */ +.fa-th-large:before { + content: "\f009"; +} + +/* line 14, source/lib/font-awesome/_icons.scss */ +.fa-th:before { + content: "\f00a"; +} + +/* line 15, source/lib/font-awesome/_icons.scss */ +.fa-th-list:before { + content: "\f00b"; +} + +/* line 16, source/lib/font-awesome/_icons.scss */ +.fa-check:before { + content: "\f00c"; +} + +/* line 17, source/lib/font-awesome/_icons.scss */ +.fa-times:before { + content: "\f00d"; +} + +/* line 18, source/lib/font-awesome/_icons.scss */ +.fa-search-plus:before { + content: "\f00e"; +} + +/* line 19, source/lib/font-awesome/_icons.scss */ +.fa-search-minus:before { + content: "\f010"; +} + +/* line 20, source/lib/font-awesome/_icons.scss */ +.fa-power-off:before { + content: "\f011"; +} + +/* line 21, source/lib/font-awesome/_icons.scss */ +.fa-signal:before { + content: "\f012"; +} + +/* line 23, source/lib/font-awesome/_icons.scss */ +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} + +/* line 24, source/lib/font-awesome/_icons.scss */ +.fa-trash-o:before { + content: "\f014"; +} + +/* line 25, source/lib/font-awesome/_icons.scss */ +.fa-home:before { + content: "\f015"; +} + +/* line 26, source/lib/font-awesome/_icons.scss */ +.fa-file-o:before { + content: "\f016"; +} + +/* line 27, source/lib/font-awesome/_icons.scss */ +.fa-clock-o:before { + content: "\f017"; +} + +/* line 28, source/lib/font-awesome/_icons.scss */ +.fa-road:before { + content: "\f018"; +} + +/* line 29, source/lib/font-awesome/_icons.scss */ +.fa-download:before { + content: "\f019"; +} + +/* line 30, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} + +/* line 31, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} + +/* line 32, source/lib/font-awesome/_icons.scss */ +.fa-inbox:before { + content: "\f01c"; +} + +/* line 33, source/lib/font-awesome/_icons.scss */ +.fa-play-circle-o:before { + content: "\f01d"; +} + +/* line 35, source/lib/font-awesome/_icons.scss */ +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} + +/* line 36, source/lib/font-awesome/_icons.scss */ +.fa-refresh:before { + content: "\f021"; +} + +/* line 37, source/lib/font-awesome/_icons.scss */ +.fa-list-alt:before { + content: "\f022"; +} + +/* line 38, source/lib/font-awesome/_icons.scss */ +.fa-lock:before { + content: "\f023"; +} + +/* line 39, source/lib/font-awesome/_icons.scss */ +.fa-flag:before { + content: "\f024"; +} + +/* line 40, source/lib/font-awesome/_icons.scss */ +.fa-headphones:before { + content: "\f025"; +} + +/* line 41, source/lib/font-awesome/_icons.scss */ +.fa-volume-off:before { + content: "\f026"; +} + +/* line 42, source/lib/font-awesome/_icons.scss */ +.fa-volume-down:before { + content: "\f027"; +} + +/* line 43, source/lib/font-awesome/_icons.scss */ +.fa-volume-up:before { + content: "\f028"; +} + +/* line 44, source/lib/font-awesome/_icons.scss */ +.fa-qrcode:before { + content: "\f029"; +} + +/* line 45, source/lib/font-awesome/_icons.scss */ +.fa-barcode:before { + content: "\f02a"; +} + +/* line 46, source/lib/font-awesome/_icons.scss */ +.fa-tag:before { + content: "\f02b"; +} + +/* line 47, source/lib/font-awesome/_icons.scss */ +.fa-tags:before { + content: "\f02c"; +} + +/* line 48, source/lib/font-awesome/_icons.scss */ +.fa-book:before { + content: "\f02d"; +} + +/* line 49, source/lib/font-awesome/_icons.scss */ +.fa-bookmark:before { + content: "\f02e"; +} + +/* line 50, source/lib/font-awesome/_icons.scss */ +.fa-print:before { + content: "\f02f"; +} + +/* line 51, source/lib/font-awesome/_icons.scss */ +.fa-camera:before { + content: "\f030"; +} + +/* line 52, source/lib/font-awesome/_icons.scss */ +.fa-font:before { + content: "\f031"; +} + +/* line 53, source/lib/font-awesome/_icons.scss */ +.fa-bold:before { + content: "\f032"; +} + +/* line 54, source/lib/font-awesome/_icons.scss */ +.fa-italic:before { + content: "\f033"; +} + +/* line 55, source/lib/font-awesome/_icons.scss */ +.fa-text-height:before { + content: "\f034"; +} + +/* line 56, source/lib/font-awesome/_icons.scss */ +.fa-text-width:before { + content: "\f035"; +} + +/* line 57, source/lib/font-awesome/_icons.scss */ +.fa-align-left:before { + content: "\f036"; +} + +/* line 58, source/lib/font-awesome/_icons.scss */ +.fa-align-center:before { + content: "\f037"; +} + +/* line 59, source/lib/font-awesome/_icons.scss */ +.fa-align-right:before { + content: "\f038"; +} + +/* line 60, source/lib/font-awesome/_icons.scss */ +.fa-align-justify:before { + content: "\f039"; +} + +/* line 61, source/lib/font-awesome/_icons.scss */ +.fa-list:before { + content: "\f03a"; +} + +/* line 63, source/lib/font-awesome/_icons.scss */ +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} + +/* line 64, source/lib/font-awesome/_icons.scss */ +.fa-indent:before { + content: "\f03c"; +} + +/* line 65, source/lib/font-awesome/_icons.scss */ +.fa-video-camera:before { + content: "\f03d"; +} + +/* line 66, source/lib/font-awesome/_icons.scss */ +.fa-picture-o:before { + content: "\f03e"; +} + +/* line 67, source/lib/font-awesome/_icons.scss */ +.fa-pencil:before { + content: "\f040"; +} + +/* line 68, source/lib/font-awesome/_icons.scss */ +.fa-map-marker:before { + content: "\f041"; +} + +/* line 69, source/lib/font-awesome/_icons.scss */ +.fa-adjust:before { + content: "\f042"; +} + +/* line 70, source/lib/font-awesome/_icons.scss */ +.fa-tint:before { + content: "\f043"; +} + +/* line 72, source/lib/font-awesome/_icons.scss */ +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} + +/* line 73, source/lib/font-awesome/_icons.scss */ +.fa-share-square-o:before { + content: "\f045"; +} + +/* line 74, source/lib/font-awesome/_icons.scss */ +.fa-check-square-o:before { + content: "\f046"; +} + +/* line 75, source/lib/font-awesome/_icons.scss */ +.fa-arrows:before { + content: "\f047"; +} + +/* line 76, source/lib/font-awesome/_icons.scss */ +.fa-step-backward:before { + content: "\f048"; +} + +/* line 77, source/lib/font-awesome/_icons.scss */ +.fa-fast-backward:before { + content: "\f049"; +} + +/* line 78, source/lib/font-awesome/_icons.scss */ +.fa-backward:before { + content: "\f04a"; +} + +/* line 79, source/lib/font-awesome/_icons.scss */ +.fa-play:before { + content: "\f04b"; +} + +/* line 80, source/lib/font-awesome/_icons.scss */ +.fa-pause:before { + content: "\f04c"; +} + +/* line 81, source/lib/font-awesome/_icons.scss */ +.fa-stop:before { + content: "\f04d"; +} + +/* line 82, source/lib/font-awesome/_icons.scss */ +.fa-forward:before { + content: "\f04e"; +} + +/* line 83, source/lib/font-awesome/_icons.scss */ +.fa-fast-forward:before { + content: "\f050"; +} + +/* line 84, source/lib/font-awesome/_icons.scss */ +.fa-step-forward:before { + content: "\f051"; +} + +/* line 85, source/lib/font-awesome/_icons.scss */ +.fa-eject:before { + content: "\f052"; +} + +/* line 86, source/lib/font-awesome/_icons.scss */ +.fa-chevron-left:before { + content: "\f053"; +} + +/* line 87, source/lib/font-awesome/_icons.scss */ +.fa-chevron-right:before { + content: "\f054"; +} + +/* line 88, source/lib/font-awesome/_icons.scss */ +.fa-plus-circle:before { + content: "\f055"; +} + +/* line 89, source/lib/font-awesome/_icons.scss */ +.fa-minus-circle:before { + content: "\f056"; +} + +/* line 90, source/lib/font-awesome/_icons.scss */ +.fa-times-circle:before { + content: "\f057"; +} + +/* line 91, source/lib/font-awesome/_icons.scss */ +.fa-check-circle:before { + content: "\f058"; +} + +/* line 92, source/lib/font-awesome/_icons.scss */ +.fa-question-circle:before { + content: "\f059"; +} + +/* line 93, source/lib/font-awesome/_icons.scss */ +.fa-info-circle:before { + content: "\f05a"; +} + +/* line 94, source/lib/font-awesome/_icons.scss */ +.fa-crosshairs:before { + content: "\f05b"; +} + +/* line 95, source/lib/font-awesome/_icons.scss */ +.fa-times-circle-o:before { + content: "\f05c"; +} + +/* line 96, source/lib/font-awesome/_icons.scss */ +.fa-check-circle-o:before { + content: "\f05d"; +} + +/* line 97, source/lib/font-awesome/_icons.scss */ +.fa-ban:before { + content: "\f05e"; +} + +/* line 98, source/lib/font-awesome/_icons.scss */ +.fa-arrow-left:before { + content: "\f060"; +} + +/* line 99, source/lib/font-awesome/_icons.scss */ +.fa-arrow-right:before { + content: "\f061"; +} + +/* line 100, source/lib/font-awesome/_icons.scss */ +.fa-arrow-up:before { + content: "\f062"; +} + +/* line 101, source/lib/font-awesome/_icons.scss */ +.fa-arrow-down:before { + content: "\f063"; +} + +/* line 103, source/lib/font-awesome/_icons.scss */ +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} + +/* line 104, source/lib/font-awesome/_icons.scss */ +.fa-expand:before { + content: "\f065"; +} + +/* line 105, source/lib/font-awesome/_icons.scss */ +.fa-compress:before { + content: "\f066"; +} + +/* line 106, source/lib/font-awesome/_icons.scss */ +.fa-plus:before { + content: "\f067"; +} + +/* line 107, source/lib/font-awesome/_icons.scss */ +.fa-minus:before { + content: "\f068"; +} + +/* line 108, source/lib/font-awesome/_icons.scss */ +.fa-asterisk:before { + content: "\f069"; +} + +/* line 109, source/lib/font-awesome/_icons.scss */ +.fa-exclamation-circle:before { + content: "\f06a"; +} + +/* line 110, source/lib/font-awesome/_icons.scss */ +.fa-gift:before { + content: "\f06b"; +} + +/* line 111, source/lib/font-awesome/_icons.scss */ +.fa-leaf:before { + content: "\f06c"; +} + +/* line 112, source/lib/font-awesome/_icons.scss */ +.fa-fire:before { + content: "\f06d"; +} + +/* line 113, source/lib/font-awesome/_icons.scss */ +.fa-eye:before { + content: "\f06e"; +} + +/* line 114, source/lib/font-awesome/_icons.scss */ +.fa-eye-slash:before { + content: "\f070"; +} + +/* line 116, source/lib/font-awesome/_icons.scss */ +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} + +/* line 117, source/lib/font-awesome/_icons.scss */ +.fa-plane:before { + content: "\f072"; +} + +/* line 118, source/lib/font-awesome/_icons.scss */ +.fa-calendar:before { + content: "\f073"; +} + +/* line 119, source/lib/font-awesome/_icons.scss */ +.fa-random:before { + content: "\f074"; +} + +/* line 120, source/lib/font-awesome/_icons.scss */ +.fa-comment:before { + content: "\f075"; +} + +/* line 121, source/lib/font-awesome/_icons.scss */ +.fa-magnet:before { + content: "\f076"; +} + +/* line 122, source/lib/font-awesome/_icons.scss */ +.fa-chevron-up:before { + content: "\f077"; +} + +/* line 123, source/lib/font-awesome/_icons.scss */ +.fa-chevron-down:before { + content: "\f078"; +} + +/* line 124, source/lib/font-awesome/_icons.scss */ +.fa-retweet:before { + content: "\f079"; +} + +/* line 125, source/lib/font-awesome/_icons.scss */ +.fa-shopping-cart:before { + content: "\f07a"; +} + +/* line 126, source/lib/font-awesome/_icons.scss */ +.fa-folder:before { + content: "\f07b"; +} + +/* line 127, source/lib/font-awesome/_icons.scss */ +.fa-folder-open:before { + content: "\f07c"; +} + +/* line 128, source/lib/font-awesome/_icons.scss */ +.fa-arrows-v:before { + content: "\f07d"; +} + +/* line 129, source/lib/font-awesome/_icons.scss */ +.fa-arrows-h:before { + content: "\f07e"; +} + +/* line 130, source/lib/font-awesome/_icons.scss */ +.fa-bar-chart-o:before { + content: "\f080"; +} + +/* line 131, source/lib/font-awesome/_icons.scss */ +.fa-twitter-square:before { + content: "\f081"; +} + +/* line 132, source/lib/font-awesome/_icons.scss */ +.fa-facebook-square:before { + content: "\f082"; +} + +/* line 133, source/lib/font-awesome/_icons.scss */ +.fa-camera-retro:before { + content: "\f083"; +} + +/* line 134, source/lib/font-awesome/_icons.scss */ +.fa-key:before { + content: "\f084"; +} + +/* line 136, source/lib/font-awesome/_icons.scss */ +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} + +/* line 137, source/lib/font-awesome/_icons.scss */ +.fa-comments:before { + content: "\f086"; +} + +/* line 138, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-o-up:before { + content: "\f087"; +} + +/* line 139, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-o-down:before { + content: "\f088"; +} + +/* line 140, source/lib/font-awesome/_icons.scss */ +.fa-star-half:before { + content: "\f089"; +} + +/* line 141, source/lib/font-awesome/_icons.scss */ +.fa-heart-o:before { + content: "\f08a"; +} + +/* line 142, source/lib/font-awesome/_icons.scss */ +.fa-sign-out:before { + content: "\f08b"; +} + +/* line 143, source/lib/font-awesome/_icons.scss */ +.fa-linkedin-square:before { + content: "\f08c"; +} + +/* line 144, source/lib/font-awesome/_icons.scss */ +.fa-thumb-tack:before { + content: "\f08d"; +} + +/* line 145, source/lib/font-awesome/_icons.scss */ +.fa-external-link:before { + content: "\f08e"; +} + +/* line 146, source/lib/font-awesome/_icons.scss */ +.fa-sign-in:before { + content: "\f090"; +} + +/* line 147, source/lib/font-awesome/_icons.scss */ +.fa-trophy:before { + content: "\f091"; +} + +/* line 148, source/lib/font-awesome/_icons.scss */ +.fa-github-square:before { + content: "\f092"; +} + +/* line 149, source/lib/font-awesome/_icons.scss */ +.fa-upload:before { + content: "\f093"; +} + +/* line 150, source/lib/font-awesome/_icons.scss */ +.fa-lemon-o:before { + content: "\f094"; +} + +/* line 151, source/lib/font-awesome/_icons.scss */ +.fa-phone:before { + content: "\f095"; +} + +/* line 152, source/lib/font-awesome/_icons.scss */ +.fa-square-o:before { + content: "\f096"; +} + +/* line 153, source/lib/font-awesome/_icons.scss */ +.fa-bookmark-o:before { + content: "\f097"; +} + +/* line 154, source/lib/font-awesome/_icons.scss */ +.fa-phone-square:before { + content: "\f098"; +} + +/* line 155, source/lib/font-awesome/_icons.scss */ +.fa-twitter:before { + content: "\f099"; +} + +/* line 156, source/lib/font-awesome/_icons.scss */ +.fa-facebook:before { + content: "\f09a"; +} + +/* line 157, source/lib/font-awesome/_icons.scss */ +.fa-github:before { + content: "\f09b"; +} + +/* line 158, source/lib/font-awesome/_icons.scss */ +.fa-unlock:before { + content: "\f09c"; +} + +/* line 159, source/lib/font-awesome/_icons.scss */ +.fa-credit-card:before { + content: "\f09d"; +} + +/* line 160, source/lib/font-awesome/_icons.scss */ +.fa-rss:before { + content: "\f09e"; +} + +/* line 161, source/lib/font-awesome/_icons.scss */ +.fa-hdd-o:before { + content: "\f0a0"; +} + +/* line 162, source/lib/font-awesome/_icons.scss */ +.fa-bullhorn:before { + content: "\f0a1"; +} + +/* line 163, source/lib/font-awesome/_icons.scss */ +.fa-bell:before { + content: "\f0f3"; +} + +/* line 164, source/lib/font-awesome/_icons.scss */ +.fa-certificate:before { + content: "\f0a3"; +} + +/* line 165, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-right:before { + content: "\f0a4"; +} + +/* line 166, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-left:before { + content: "\f0a5"; +} + +/* line 167, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-up:before { + content: "\f0a6"; +} + +/* line 168, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-down:before { + content: "\f0a7"; +} + +/* line 169, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-left:before { + content: "\f0a8"; +} + +/* line 170, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-right:before { + content: "\f0a9"; +} + +/* line 171, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-up:before { + content: "\f0aa"; +} + +/* line 172, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-down:before { + content: "\f0ab"; +} + +/* line 173, source/lib/font-awesome/_icons.scss */ +.fa-globe:before { + content: "\f0ac"; +} + +/* line 174, source/lib/font-awesome/_icons.scss */ +.fa-wrench:before { + content: "\f0ad"; +} + +/* line 175, source/lib/font-awesome/_icons.scss */ +.fa-tasks:before { + content: "\f0ae"; +} + +/* line 176, source/lib/font-awesome/_icons.scss */ +.fa-filter:before { + content: "\f0b0"; +} + +/* line 177, source/lib/font-awesome/_icons.scss */ +.fa-briefcase:before { + content: "\f0b1"; +} + +/* line 178, source/lib/font-awesome/_icons.scss */ +.fa-arrows-alt:before { + content: "\f0b2"; +} + +/* line 180, source/lib/font-awesome/_icons.scss */ +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} + +/* line 182, source/lib/font-awesome/_icons.scss */ +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} + +/* line 183, source/lib/font-awesome/_icons.scss */ +.fa-cloud:before { + content: "\f0c2"; +} + +/* line 184, source/lib/font-awesome/_icons.scss */ +.fa-flask:before { + content: "\f0c3"; +} + +/* line 186, source/lib/font-awesome/_icons.scss */ +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} + +/* line 188, source/lib/font-awesome/_icons.scss */ +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} + +/* line 189, source/lib/font-awesome/_icons.scss */ +.fa-paperclip:before { + content: "\f0c6"; +} + +/* line 191, source/lib/font-awesome/_icons.scss */ +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} + +/* line 192, source/lib/font-awesome/_icons.scss */ +.fa-square:before { + content: "\f0c8"; +} + +/* line 193, source/lib/font-awesome/_icons.scss */ +.fa-bars:before { + content: "\f0c9"; +} + +/* line 194, source/lib/font-awesome/_icons.scss */ +.fa-list-ul:before { + content: "\f0ca"; +} + +/* line 195, source/lib/font-awesome/_icons.scss */ +.fa-list-ol:before { + content: "\f0cb"; +} + +/* line 196, source/lib/font-awesome/_icons.scss */ +.fa-strikethrough:before { + content: "\f0cc"; +} + +/* line 197, source/lib/font-awesome/_icons.scss */ +.fa-underline:before { + content: "\f0cd"; +} + +/* line 198, source/lib/font-awesome/_icons.scss */ +.fa-table:before { + content: "\f0ce"; +} + +/* line 199, source/lib/font-awesome/_icons.scss */ +.fa-magic:before { + content: "\f0d0"; +} + +/* line 200, source/lib/font-awesome/_icons.scss */ +.fa-truck:before { + content: "\f0d1"; +} + +/* line 201, source/lib/font-awesome/_icons.scss */ +.fa-pinterest:before { + content: "\f0d2"; +} + +/* line 202, source/lib/font-awesome/_icons.scss */ +.fa-pinterest-square:before { + content: "\f0d3"; +} + +/* line 203, source/lib/font-awesome/_icons.scss */ +.fa-google-plus-square:before { + content: "\f0d4"; +} + +/* line 204, source/lib/font-awesome/_icons.scss */ +.fa-google-plus:before { + content: "\f0d5"; +} + +/* line 205, source/lib/font-awesome/_icons.scss */ +.fa-money:before { + content: "\f0d6"; +} + +/* line 206, source/lib/font-awesome/_icons.scss */ +.fa-caret-down:before { + content: "\f0d7"; +} + +/* line 207, source/lib/font-awesome/_icons.scss */ +.fa-caret-up:before { + content: "\f0d8"; +} + +/* line 208, source/lib/font-awesome/_icons.scss */ +.fa-caret-left:before { + content: "\f0d9"; +} + +/* line 209, source/lib/font-awesome/_icons.scss */ +.fa-caret-right:before { + content: "\f0da"; +} + +/* line 210, source/lib/font-awesome/_icons.scss */ +.fa-columns:before { + content: "\f0db"; +} + +/* line 212, source/lib/font-awesome/_icons.scss */ +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} + +/* line 214, source/lib/font-awesome/_icons.scss */ +.fa-sort-down:before, +.fa-sort-asc:before { + content: "\f0dd"; +} + +/* line 216, source/lib/font-awesome/_icons.scss */ +.fa-sort-up:before, +.fa-sort-desc:before { + content: "\f0de"; +} + +/* line 217, source/lib/font-awesome/_icons.scss */ +.fa-envelope:before { + content: "\f0e0"; +} + +/* line 218, source/lib/font-awesome/_icons.scss */ +.fa-linkedin:before { + content: "\f0e1"; +} + +/* line 220, source/lib/font-awesome/_icons.scss */ +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} + +/* line 222, source/lib/font-awesome/_icons.scss */ +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} + +/* line 224, source/lib/font-awesome/_icons.scss */ +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} + +/* line 225, source/lib/font-awesome/_icons.scss */ +.fa-comment-o:before { + content: "\f0e5"; +} + +/* line 226, source/lib/font-awesome/_icons.scss */ +.fa-comments-o:before { + content: "\f0e6"; +} + +/* line 228, source/lib/font-awesome/_icons.scss */ +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} + +/* line 229, source/lib/font-awesome/_icons.scss */ +.fa-sitemap:before { + content: "\f0e8"; +} + +/* line 230, source/lib/font-awesome/_icons.scss */ +.fa-umbrella:before { + content: "\f0e9"; +} + +/* line 232, source/lib/font-awesome/_icons.scss */ +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} + +/* line 233, source/lib/font-awesome/_icons.scss */ +.fa-lightbulb-o:before { + content: "\f0eb"; +} + +/* line 234, source/lib/font-awesome/_icons.scss */ +.fa-exchange:before { + content: "\f0ec"; +} + +/* line 235, source/lib/font-awesome/_icons.scss */ +.fa-cloud-download:before { + content: "\f0ed"; +} + +/* line 236, source/lib/font-awesome/_icons.scss */ +.fa-cloud-upload:before { + content: "\f0ee"; +} + +/* line 237, source/lib/font-awesome/_icons.scss */ +.fa-user-md:before { + content: "\f0f0"; +} + +/* line 238, source/lib/font-awesome/_icons.scss */ +.fa-stethoscope:before { + content: "\f0f1"; +} + +/* line 239, source/lib/font-awesome/_icons.scss */ +.fa-suitcase:before { + content: "\f0f2"; +} + +/* line 240, source/lib/font-awesome/_icons.scss */ +.fa-bell-o:before { + content: "\f0a2"; +} + +/* line 241, source/lib/font-awesome/_icons.scss */ +.fa-coffee:before { + content: "\f0f4"; +} + +/* line 242, source/lib/font-awesome/_icons.scss */ +.fa-cutlery:before { + content: "\f0f5"; +} + +/* line 243, source/lib/font-awesome/_icons.scss */ +.fa-file-text-o:before { + content: "\f0f6"; +} + +/* line 244, source/lib/font-awesome/_icons.scss */ +.fa-building-o:before { + content: "\f0f7"; +} + +/* line 245, source/lib/font-awesome/_icons.scss */ +.fa-hospital-o:before { + content: "\f0f8"; +} + +/* line 246, source/lib/font-awesome/_icons.scss */ +.fa-ambulance:before { + content: "\f0f9"; +} + +/* line 247, source/lib/font-awesome/_icons.scss */ +.fa-medkit:before { + content: "\f0fa"; +} + +/* line 248, source/lib/font-awesome/_icons.scss */ +.fa-fighter-jet:before { + content: "\f0fb"; +} + +/* line 249, source/lib/font-awesome/_icons.scss */ +.fa-beer:before { + content: "\f0fc"; +} + +/* line 250, source/lib/font-awesome/_icons.scss */ +.fa-h-square:before { + content: "\f0fd"; +} + +/* line 251, source/lib/font-awesome/_icons.scss */ +.fa-plus-square:before { + content: "\f0fe"; +} + +/* line 252, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-left:before { + content: "\f100"; +} + +/* line 253, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-right:before { + content: "\f101"; +} + +/* line 254, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-up:before { + content: "\f102"; +} + +/* line 255, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-down:before { + content: "\f103"; +} + +/* line 256, source/lib/font-awesome/_icons.scss */ +.fa-angle-left:before { + content: "\f104"; +} + +/* line 257, source/lib/font-awesome/_icons.scss */ +.fa-angle-right:before { + content: "\f105"; +} + +/* line 258, source/lib/font-awesome/_icons.scss */ +.fa-angle-up:before { + content: "\f106"; +} + +/* line 259, source/lib/font-awesome/_icons.scss */ +.fa-angle-down:before { + content: "\f107"; +} + +/* line 260, source/lib/font-awesome/_icons.scss */ +.fa-desktop:before { + content: "\f108"; +} + +/* line 261, source/lib/font-awesome/_icons.scss */ +.fa-laptop:before { + content: "\f109"; +} + +/* line 262, source/lib/font-awesome/_icons.scss */ +.fa-tablet:before { + content: "\f10a"; +} + +/* line 264, source/lib/font-awesome/_icons.scss */ +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} + +/* line 265, source/lib/font-awesome/_icons.scss */ +.fa-circle-o:before { + content: "\f10c"; +} + +/* line 266, source/lib/font-awesome/_icons.scss */ +.fa-quote-left:before { + content: "\f10d"; +} + +/* line 267, source/lib/font-awesome/_icons.scss */ +.fa-quote-right:before { + content: "\f10e"; +} + +/* line 268, source/lib/font-awesome/_icons.scss */ +.fa-spinner:before { + content: "\f110"; +} + +/* line 269, source/lib/font-awesome/_icons.scss */ +.fa-circle:before { + content: "\f111"; +} + +/* line 271, source/lib/font-awesome/_icons.scss */ +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} + +/* line 272, source/lib/font-awesome/_icons.scss */ +.fa-github-alt:before { + content: "\f113"; +} + +/* line 273, source/lib/font-awesome/_icons.scss */ +.fa-folder-o:before { + content: "\f114"; +} + +/* line 274, source/lib/font-awesome/_icons.scss */ +.fa-folder-open-o:before { + content: "\f115"; +} + +/* line 275, source/lib/font-awesome/_icons.scss */ +.fa-smile-o:before { + content: "\f118"; +} + +/* line 276, source/lib/font-awesome/_icons.scss */ +.fa-frown-o:before { + content: "\f119"; +} + +/* line 277, source/lib/font-awesome/_icons.scss */ +.fa-meh-o:before { + content: "\f11a"; +} + +/* line 278, source/lib/font-awesome/_icons.scss */ +.fa-gamepad:before { + content: "\f11b"; +} + +/* line 279, source/lib/font-awesome/_icons.scss */ +.fa-keyboard-o:before { + content: "\f11c"; +} + +/* line 280, source/lib/font-awesome/_icons.scss */ +.fa-flag-o:before { + content: "\f11d"; +} + +/* line 281, source/lib/font-awesome/_icons.scss */ +.fa-flag-checkered:before { + content: "\f11e"; +} + +/* line 282, source/lib/font-awesome/_icons.scss */ +.fa-terminal:before { + content: "\f120"; +} + +/* line 283, source/lib/font-awesome/_icons.scss */ +.fa-code:before { + content: "\f121"; +} + +/* line 284, source/lib/font-awesome/_icons.scss */ +.fa-reply-all:before { + content: "\f122"; +} + +/* line 285, source/lib/font-awesome/_icons.scss */ +.fa-mail-reply-all:before { + content: "\f122"; +} + +/* line 288, source/lib/font-awesome/_icons.scss */ +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} + +/* line 289, source/lib/font-awesome/_icons.scss */ +.fa-location-arrow:before { + content: "\f124"; +} + +/* line 290, source/lib/font-awesome/_icons.scss */ +.fa-crop:before { + content: "\f125"; +} + +/* line 291, source/lib/font-awesome/_icons.scss */ +.fa-code-fork:before { + content: "\f126"; +} + +/* line 293, source/lib/font-awesome/_icons.scss */ +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} + +/* line 294, source/lib/font-awesome/_icons.scss */ +.fa-question:before { + content: "\f128"; +} + +/* line 295, source/lib/font-awesome/_icons.scss */ +.fa-info:before { + content: "\f129"; +} + +/* line 296, source/lib/font-awesome/_icons.scss */ +.fa-exclamation:before { + content: "\f12a"; +} + +/* line 297, source/lib/font-awesome/_icons.scss */ +.fa-superscript:before { + content: "\f12b"; +} + +/* line 298, source/lib/font-awesome/_icons.scss */ +.fa-subscript:before { + content: "\f12c"; +} + +/* line 299, source/lib/font-awesome/_icons.scss */ +.fa-eraser:before { + content: "\f12d"; +} + +/* line 300, source/lib/font-awesome/_icons.scss */ +.fa-puzzle-piece:before { + content: "\f12e"; +} + +/* line 301, source/lib/font-awesome/_icons.scss */ +.fa-microphone:before { + content: "\f130"; +} + +/* line 302, source/lib/font-awesome/_icons.scss */ +.fa-microphone-slash:before { + content: "\f131"; +} + +/* line 303, source/lib/font-awesome/_icons.scss */ +.fa-shield:before { + content: "\f132"; +} + +/* line 304, source/lib/font-awesome/_icons.scss */ +.fa-calendar-o:before { + content: "\f133"; +} + +/* line 305, source/lib/font-awesome/_icons.scss */ +.fa-fire-extinguisher:before { + content: "\f134"; +} + +/* line 306, source/lib/font-awesome/_icons.scss */ +.fa-rocket:before { + content: "\f135"; +} + +/* line 307, source/lib/font-awesome/_icons.scss */ +.fa-maxcdn:before { + content: "\f136"; +} + +/* line 308, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-left:before { + content: "\f137"; +} + +/* line 309, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-right:before { + content: "\f138"; +} + +/* line 310, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-up:before { + content: "\f139"; +} + +/* line 311, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-down:before { + content: "\f13a"; +} + +/* line 312, source/lib/font-awesome/_icons.scss */ +.fa-html5:before { + content: "\f13b"; +} + +/* line 313, source/lib/font-awesome/_icons.scss */ +.fa-css3:before { + content: "\f13c"; +} + +/* line 314, source/lib/font-awesome/_icons.scss */ +.fa-anchor:before { + content: "\f13d"; +} + +/* line 315, source/lib/font-awesome/_icons.scss */ +.fa-unlock-alt:before { + content: "\f13e"; +} + +/* line 316, source/lib/font-awesome/_icons.scss */ +.fa-bullseye:before { + content: "\f140"; +} + +/* line 317, source/lib/font-awesome/_icons.scss */ +.fa-ellipsis-h:before { + content: "\f141"; +} + +/* line 318, source/lib/font-awesome/_icons.scss */ +.fa-ellipsis-v:before { + content: "\f142"; +} + +/* line 319, source/lib/font-awesome/_icons.scss */ +.fa-rss-square:before { + content: "\f143"; +} + +/* line 320, source/lib/font-awesome/_icons.scss */ +.fa-play-circle:before { + content: "\f144"; +} + +/* line 321, source/lib/font-awesome/_icons.scss */ +.fa-ticket:before { + content: "\f145"; +} + +/* line 322, source/lib/font-awesome/_icons.scss */ +.fa-minus-square:before { + content: "\f146"; +} + +/* line 323, source/lib/font-awesome/_icons.scss */ +.fa-minus-square-o:before { + content: "\f147"; +} + +/* line 324, source/lib/font-awesome/_icons.scss */ +.fa-level-up:before { + content: "\f148"; +} + +/* line 325, source/lib/font-awesome/_icons.scss */ +.fa-level-down:before { + content: "\f149"; +} + +/* line 326, source/lib/font-awesome/_icons.scss */ +.fa-check-square:before { + content: "\f14a"; +} + +/* line 327, source/lib/font-awesome/_icons.scss */ +.fa-pencil-square:before { + content: "\f14b"; +} + +/* line 328, source/lib/font-awesome/_icons.scss */ +.fa-external-link-square:before { + content: "\f14c"; +} + +/* line 329, source/lib/font-awesome/_icons.scss */ +.fa-share-square:before { + content: "\f14d"; +} + +/* line 330, source/lib/font-awesome/_icons.scss */ +.fa-compass:before { + content: "\f14e"; +} + +/* line 332, source/lib/font-awesome/_icons.scss */ +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} + +/* line 334, source/lib/font-awesome/_icons.scss */ +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} + +/* line 336, source/lib/font-awesome/_icons.scss */ +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} + +/* line 338, source/lib/font-awesome/_icons.scss */ +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} + +/* line 339, source/lib/font-awesome/_icons.scss */ +.fa-gbp:before { + content: "\f154"; +} + +/* line 341, source/lib/font-awesome/_icons.scss */ +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} + +/* line 343, source/lib/font-awesome/_icons.scss */ +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} + +/* line 347, source/lib/font-awesome/_icons.scss */ +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} + +/* line 350, source/lib/font-awesome/_icons.scss */ +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} + +/* line 352, source/lib/font-awesome/_icons.scss */ +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} + +/* line 354, source/lib/font-awesome/_icons.scss */ +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} + +/* line 355, source/lib/font-awesome/_icons.scss */ +.fa-file:before { + content: "\f15b"; +} + +/* line 356, source/lib/font-awesome/_icons.scss */ +.fa-file-text:before { + content: "\f15c"; +} + +/* line 357, source/lib/font-awesome/_icons.scss */ +.fa-sort-alpha-asc:before { + content: "\f15d"; +} + +/* line 358, source/lib/font-awesome/_icons.scss */ +.fa-sort-alpha-desc:before { + content: "\f15e"; +} + +/* line 359, source/lib/font-awesome/_icons.scss */ +.fa-sort-amount-asc:before { + content: "\f160"; +} + +/* line 360, source/lib/font-awesome/_icons.scss */ +.fa-sort-amount-desc:before { + content: "\f161"; +} + +/* line 361, source/lib/font-awesome/_icons.scss */ +.fa-sort-numeric-asc:before { + content: "\f162"; +} + +/* line 362, source/lib/font-awesome/_icons.scss */ +.fa-sort-numeric-desc:before { + content: "\f163"; +} + +/* line 363, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-up:before { + content: "\f164"; +} + +/* line 364, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-down:before { + content: "\f165"; +} + +/* line 365, source/lib/font-awesome/_icons.scss */ +.fa-youtube-square:before { + content: "\f166"; +} + +/* line 366, source/lib/font-awesome/_icons.scss */ +.fa-youtube:before { + content: "\f167"; +} + +/* line 367, source/lib/font-awesome/_icons.scss */ +.fa-xing:before { + content: "\f168"; +} + +/* line 368, source/lib/font-awesome/_icons.scss */ +.fa-xing-square:before { + content: "\f169"; +} + +/* line 369, source/lib/font-awesome/_icons.scss */ +.fa-youtube-play:before { + content: "\f16a"; +} + +/* line 370, source/lib/font-awesome/_icons.scss */ +.fa-dropbox:before { + content: "\f16b"; +} + +/* line 371, source/lib/font-awesome/_icons.scss */ +.fa-stack-overflow:before { + content: "\f16c"; +} + +/* line 372, source/lib/font-awesome/_icons.scss */ +.fa-instagram:before { + content: "\f16d"; +} + +/* line 373, source/lib/font-awesome/_icons.scss */ +.fa-flickr:before { + content: "\f16e"; +} + +/* line 374, source/lib/font-awesome/_icons.scss */ +.fa-adn:before { + content: "\f170"; +} + +/* line 375, source/lib/font-awesome/_icons.scss */ +.fa-bitbucket:before { + content: "\f171"; +} + +/* line 376, source/lib/font-awesome/_icons.scss */ +.fa-bitbucket-square:before { + content: "\f172"; +} + +/* line 377, source/lib/font-awesome/_icons.scss */ +.fa-tumblr:before { + content: "\f173"; +} + +/* line 378, source/lib/font-awesome/_icons.scss */ +.fa-tumblr-square:before { + content: "\f174"; +} + +/* line 379, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-down:before { + content: "\f175"; +} + +/* line 380, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-up:before { + content: "\f176"; +} + +/* line 381, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-left:before { + content: "\f177"; +} + +/* line 382, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-right:before { + content: "\f178"; +} + +/* line 383, source/lib/font-awesome/_icons.scss */ +.fa-apple:before { + content: "\f179"; +} + +/* line 384, source/lib/font-awesome/_icons.scss */ +.fa-windows:before { + content: "\f17a"; +} + +/* line 385, source/lib/font-awesome/_icons.scss */ +.fa-android:before { + content: "\f17b"; +} + +/* line 386, source/lib/font-awesome/_icons.scss */ +.fa-linux:before { + content: "\f17c"; +} + +/* line 387, source/lib/font-awesome/_icons.scss */ +.fa-dribbble:before { + content: "\f17d"; +} + +/* line 388, source/lib/font-awesome/_icons.scss */ +.fa-skype:before { + content: "\f17e"; +} + +/* line 389, source/lib/font-awesome/_icons.scss */ +.fa-foursquare:before { + content: "\f180"; +} + +/* line 390, source/lib/font-awesome/_icons.scss */ +.fa-trello:before { + content: "\f181"; +} + +/* line 391, source/lib/font-awesome/_icons.scss */ +.fa-female:before { + content: "\f182"; +} + +/* line 392, source/lib/font-awesome/_icons.scss */ +.fa-male:before { + content: "\f183"; +} + +/* line 393, source/lib/font-awesome/_icons.scss */ +.fa-gittip:before { + content: "\f184"; +} + +/* line 394, source/lib/font-awesome/_icons.scss */ +.fa-sun-o:before { + content: "\f185"; +} + +/* line 395, source/lib/font-awesome/_icons.scss */ +.fa-moon-o:before { + content: "\f186"; +} + +/* line 396, source/lib/font-awesome/_icons.scss */ +.fa-archive:before { + content: "\f187"; +} + +/* line 397, source/lib/font-awesome/_icons.scss */ +.fa-bug:before { + content: "\f188"; +} + +/* line 398, source/lib/font-awesome/_icons.scss */ +.fa-vk:before { + content: "\f189"; +} + +/* line 399, source/lib/font-awesome/_icons.scss */ +.fa-weibo:before { + content: "\f18a"; +} + +/* line 400, source/lib/font-awesome/_icons.scss */ +.fa-renren:before { + content: "\f18b"; +} + +/* line 401, source/lib/font-awesome/_icons.scss */ +.fa-pagelines:before { + content: "\f18c"; +} + +/* line 402, source/lib/font-awesome/_icons.scss */ +.fa-stack-exchange:before { + content: "\f18d"; +} + +/* line 403, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} + +/* line 404, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-left:before { + content: "\f190"; +} + +/* line 406, source/lib/font-awesome/_icons.scss */ +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} + +/* line 407, source/lib/font-awesome/_icons.scss */ +.fa-dot-circle-o:before { + content: "\f192"; +} + +/* line 408, source/lib/font-awesome/_icons.scss */ +.fa-wheelchair:before { + content: "\f193"; +} + +/* line 409, source/lib/font-awesome/_icons.scss */ +.fa-vimeo-square:before { + content: "\f194"; +} + +/* line 411, source/lib/font-awesome/_icons.scss */ +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} + +/* line 412, source/lib/font-awesome/_icons.scss */ +.fa-plus-square-o:before { + content: "\f196"; +} + +/********************************************* + * GLOBAL STYLES + *********************************************/ +/* line 7, source/template/_theme.scss */ +html { + background: white; + background: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 100, color-stop(0%, #ffffff), color-stop(100%, #f2f2f2)); + background: -webkit-radial-gradient(#ffffff, #f2f2f2); + background: -moz-radial-gradient(#ffffff, #f2f2f2); + background: -o-radial-gradient(#ffffff, #f2f2f2); + background: radial-gradient(#ffffff, #f2f2f2); +} + +@font-face { + font-family: "Gotham"; + src: local("Gotham"), url("../../fonts/Gotham/Gotham-Medium.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Gotham-Book"; + src: local("Gotham-Book"), url("../../fonts/Gotham/Gotham-Book.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Gotham-Italic"; + src: local("Gotham-Italic"), url("../../fonts/Gotham/Gotham-MediumIta.otf") format("opentype"); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: "Gotham-Bold"; + src: local("Gotham-Bold"), url("../../fonts/Gotham/Gotham-Bold.otf") format("opentype"); + font-weight: bold; + font-style: bold; +} + +/* line 42, source/template/_theme.scss */ +.reveal { + font-family: "Gotham-Book", "Helvetica", Arial, sans-serif; + font-size: 36px; + font-weight: 200; + letter-spacing: -0.02em; + color: #333333; +} + +/* line 50, source/template/_theme.scss */ +::selection { + color: white; + background: rgba(11, 79, 81, 0.99); + text-shadow: none; +} + +/* line 56, source/template/_theme.scss */ +.reveal ul li { + line-height: 1.2em; + margin-bottom: 10px; +} + +/********************************************* + * HEADERS + *********************************************/ +/* line 72, source/template/_theme.scss */ +.reveal h1, +.reveal h2, +.reveal h3, +.reveal h4, +.reveal h5, +.reveal h6 { + margin: 0 0 20px 0; + color: #f05b62; + font-family: "Gotham-Bold", Impact, sans-serif; + line-height: 0.9em; + letter-spacing: 0.02em; + text-transform: none; + text-shadow: #cccccc; +} + +/* line 84, source/template/_theme.scss */ +.reveal h1 { + text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); +} + +/* line 88, source/template/_theme.scss */ +.reveal h1 { + font-size: 3.77em; +} + +/* line 89, source/template/_theme.scss */ +.reveal h2 { + font-size: 2.11em; +} + +/* line 90, source/template/_theme.scss */ +.reveal h3 { + font-size: 1.55em; +} + +/* line 91, source/template/_theme.scss */ +.reveal h4 { + font-size: 1em; +} + +/********************************************* +* OVERRIDES +**********************************************/ +/* line 96, source/template/_theme.scss */ +.left-align { + text-align: left; +} + +/* line 97, source/template/_theme.scss */ +.right-align { + text-align: right; +} + +/* line 98, source/template/_theme.scss */ +.left { + float: left; +} + +/* line 99, source/template/_theme.scss */ +.right { + float: right; +} + +/* line 100, source/template/_theme.scss */ +.clear { + clear: both; +} + +/* line 101, source/template/_theme.scss */ +.blue, .event__title { + color: #01A9B4 !important; +} + +/* line 102, source/template/_theme.scss */ +.green { + color: #92BB44 !important; +} + +/* line 103, source/template/_theme.scss */ +.yellow { + color: #EDAB23 !important; +} + +/* line 104, source/template/_theme.scss */ +.pink { + color: #F05B62 !important; +} + +/* line 105, source/template/_theme.scss */ +.red { + color: #8B0036 !important; +} + +/* line 106, source/template/_theme.scss */ +.grey { + color: #333333 !important; +} + +/* line 107, source/template/_theme.scss */ +.grey--light, .event__title small { + color: #666 !important; +} + +/********************************************* + * LINKS + *********************************************/ +/* line 114, source/template/_theme.scss */ +.reveal a:not(.image) { + -webkit-transition: color 0.15x ease; + -moz-transition: color 0.15x ease; + -o-transition: color 0.15x ease; + transition: color 0.15x ease; + color: #01a9b4; + text-decoration: none; +} + +/* line 119, source/template/_theme.scss */ +.reveal a:not(.image):hover { + color: #f9b8bb; + text-shadow: none; + border: none; +} + +/* line 126, source/template/_theme.scss */ +.reveal .roll span:after { + color: #fff; + background: #01a9b4; +} + +/********************************************* + * IMAGES + *********************************************/ +/* line 136, source/template/_theme.scss */ +.reveal section img { + margin: 15px; + background: rgba(255, 255, 255, 0.12); + border: 4px solid #333333; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); + -webkit-transition: all 0.2s linear; + -moz-transition: all 0.2s linear; + -o-transition: all 0.2s linear; + transition: all 0.2s linear; +} + +/* line 146, source/template/_theme.scss */ +.reveal a:hover img { + background: rgba(255, 255, 255, 0.2); + border-color: #01a9b4; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); +} + +/********************************************* + * NAVIGATION CONTROLS + *********************************************/ +/* line 159, source/template/_theme.scss */ +.reveal .controls .navigate-left, +.reveal .controls .navigate-left.enabled { + border-right-color: #01a9b4; +} + +/* line 164, source/template/_theme.scss */ +.reveal .controls .navigate-right, +.reveal .controls .navigate-right.enabled { + border-left-color: #01a9b4; +} + +/* line 169, source/template/_theme.scss */ +.reveal .controls .navigate-up, +.reveal .controls .navigate-up.enabled { + border-bottom-color: #01a9b4; +} + +/* line 174, source/template/_theme.scss */ +.reveal .controls .navigate-down, +.reveal .controls .navigate-down.enabled { + border-top-color: #01a9b4; +} + +/* line 178, source/template/_theme.scss */ +.reveal .controls div.navigate-left.enabled:hover { + border-right-color: #f9b8bb; +} + +/* line 182, source/template/_theme.scss */ +.reveal .controls div.navigate-right.enabled:hover { + border-left-color: #f9b8bb; +} + +/* line 186, source/template/_theme.scss */ +.reveal .controls div.navigate-up.enabled:hover { + border-bottom-color: #f9b8bb; +} + +/* line 190, source/template/_theme.scss */ +.reveal .controls div.navigate-down.enabled:hover { + border-top-color: #f9b8bb; +} + +/********************************************* + * PROGRESS BAR + *********************************************/ +/* line 199, source/template/_theme.scss */ +.reveal .progress { + background: rgba(0, 0, 0, 0.2); +} + +/* line 202, source/template/_theme.scss */ +.reveal .progress span { + background: #01a9b4; + -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); +} + +/********************************************* + * FOOTER + *********************************************/ +/* line 213, source/template/_theme.scss */ +.reveal footer { + position: fixed; + height: 40px; + width: 100%; + bottom: 3px; + left: 0; + z-index: 10; + font-size: 35%; + text-align: right; + background-image: url(../../images/pink-logo.png); + background-repeat: no-repeat; + background-size: auto 100%; +} +/* line 227, source/template/_theme.scss */ +.reveal .copyright { + margin: 15px 5px 0 100px; + font-style: italic; +} +/* line 231, source/template/_theme.scss */ +.reveal .copyright a img { + vertical-align: middle; +} + +/********************************************* + * EVENT + *********************************************/ +/* line 241, source/template/_theme.scss */ +.event__title { + text-transform: uppercase !important; +} + +/* line 8, source/gdiaa.scss */ +.reveal .center-align { + text-align: center; +} +/* line 10, source/gdiaa.scss */ +.reveal .copy--small { + font-size: .8em; +} +/* line 14, source/gdiaa.scss */ +.reveal .copy--xsmall { + font-size: .6em; +} +/* line 18, source/gdiaa.scss */ +.reveal strong { + text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); +} +/* line 22, source/gdiaa.scss */ +.reveal .horz--auto { + margin: inherit auto; +} +/* line 26, source/gdiaa.scss */ +.reveal .box { + margin: 2em 0; +} +/* line 30, source/gdiaa.scss */ +.reveal .box--top { + margin-top: 3em; +} +/* line 34, source/gdiaa.scss */ +.reveal .box--small { + margin: 1em 0; +} +/* line 39, source/gdiaa.scss */ +.reveal ul ul, .reveal ul ol, .reveal ol ul, .reveal ol ol { + margin-top: 10px; +} +/* line 43, source/gdiaa.scss */ +.reveal ul li:last-child, .reveal ol li:last-child { + margin-bottom: 0; +} +/* line 49, source/gdiaa.scss */ +.reveal .list--tall ol, .reveal .list--tall ul { + margin-top: 20px; +} +/* line 50, source/gdiaa.scss */ +.reveal .list--tall li { + margin-bottom: 20px; +} +/* line 54, source/gdiaa.scss */ +.reveal .list--xtall ol, .reveal .list--xtall ul { + margin-top: 40px; +} +/* line 55, source/gdiaa.scss */ +.reveal .list--xtall li { + margin-bottom: 40px; +} +/* line 58, source/gdiaa.scss */ +.reveal .list--bare { + list-style-type: none; +} +/* line 62, source/gdiaa.scss */ +.reveal .broken { + list-style-position: inside; + margin-top: .25em; +} +/* line 66, source/gdiaa.scss */ +.reveal .broken li { + display: block; + padding: .25em 1em; +} +/* line 72, source/gdiaa.scss */ +.reveal ol.broken { + counter-reset: counter; +} +/* line 76, source/gdiaa.scss */ +.reveal ol.broken li:before { + color: #ccc; + content: counter(counter) "."; + counter-increment: counter; + padding-right: .5em; +} +/* line 85, source/gdiaa.scss */ +.reveal .break { + border-top: 20px solid #efefef; + padding-top: 2em; +} +/* line 90, source/gdiaa.scss */ +.reveal section img { + margin: 0 15px; +} +/* line 94, source/gdiaa.scss */ +.reveal .img--bare { + border: none; + background: transparent; + box-shadow: none; +} +/* line 100, source/gdiaa.scss */ +.reveal .gist { + font-size: .5em; + line-height: 1.3em; + max-height: 475px; + overflow: scroll; +} + +/* line 108, source/gdiaa.scss */ +code { + background: #e8e8e8; +} + +/* line 112, source/gdiaa.scss */ +pre { + margin: 0; + width: auto; + box-shadow: none; +} +/* line 117, source/gdiaa.scss */ +pre code { + background: transparent; + border: 6px solid #fff; + box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); + min-height: 300px; + max-height: 475px; + padding: 5px 10px; +} diff --git a/css/theme/gdicool.css b/css/theme/gdicool.css new file mode 100755 index 0000000..cb85cd6 --- /dev/null +++ b/css/theme/gdicool.css @@ -0,0 +1,2463 @@ +/*! + * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url("../../fonts/FontAwesome/fontawesome-webfont.eot?v=4.0.3"); + src: url("../../fonts/FontAwesome/fontawesome-webfont.eot?#iefix&v=4.0.3") format("embedded-opentype"), url("../../fonts/FontAwesome/fontawesome-webfont.woff?v=4.0.3") format("woff"), url("../../fonts/FontAwesome/fontawesome-webfont.ttf?v=4.0.3") format("truetype"), url("../../fonts/FontAwesome/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular") format("svg"); + font-weight: normal; + font-style: normal; +} + +/* line 4, source/lib/font-awesome/_core.scss */ +.fa { + display: inline-block; + font-family: FontAwesome !important; + font-style: normal !important; + font-weight: normal !important; + line-height: 1 !important; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* makes the font 33% larger relative to the icon container */ +/* line 5, source/lib/font-awesome/_larger.scss */ +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -15%; +} + +/* line 10, source/lib/font-awesome/_larger.scss */ +.fa-2x { + font-size: 2em; +} + +/* line 11, source/lib/font-awesome/_larger.scss */ +.fa-3x { + font-size: 3em; +} + +/* line 12, source/lib/font-awesome/_larger.scss */ +.fa-4x { + font-size: 4em; +} + +/* line 13, source/lib/font-awesome/_larger.scss */ +.fa-5x { + font-size: 5em; +} + +/* line 3, source/lib/font-awesome/_fixed-width.scss */ +.fa-fw { + width: 1.28571em; + text-align: center; +} + +/* line 4, source/lib/font-awesome/_list.scss */ +.fa-ul { + padding-left: 0; + margin-left: 2.14286em; + list-style-type: none; +} +/* line 8, source/lib/font-awesome/_list.scss */ +.fa-ul > li { + position: relative; +} + +/* line 10, source/lib/font-awesome/_list.scss */ +.fa-li { + position: absolute; + left: -2.14286em; + width: 2.14286em; + top: 0.14286em; + text-align: center; +} +/* line 16, source/lib/font-awesome/_list.scss */ +.fa-li.fa-lg { + left: -1.85714em; +} + +/* line 4, source/lib/font-awesome/_bordered-pulled.scss */ +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} + +/* line 10, source/lib/font-awesome/_bordered-pulled.scss */ +.pull-right { + float: right; +} + +/* line 11, source/lib/font-awesome/_bordered-pulled.scss */ +.pull-left { + float: left; +} + +/* line 14, source/lib/font-awesome/_bordered-pulled.scss */ +.fa.pull-left { + margin-right: .3em; +} +/* line 15, source/lib/font-awesome/_bordered-pulled.scss */ +.fa.pull-right { + margin-left: .3em; +} + +/* line 4, source/lib/font-awesome/_spinning.scss */ +.fa-spin { + -webkit-animation: spin 2s infinite linear; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} + +@-moz-keyframes spin { + /* line 12, source/lib/font-awesome/_spinning.scss */ + 0% { + -moz-transform: rotate(0deg); + } + + /* line 13, source/lib/font-awesome/_spinning.scss */ + 100% { + -moz-transform: rotate(359deg); + } +} + +@-webkit-keyframes spin { + /* line 16, source/lib/font-awesome/_spinning.scss */ + 0% { + -webkit-transform: rotate(0deg); + } + + /* line 17, source/lib/font-awesome/_spinning.scss */ + 100% { + -webkit-transform: rotate(359deg); + } +} + +@-o-keyframes spin { + /* line 20, source/lib/font-awesome/_spinning.scss */ + 0% { + -o-transform: rotate(0deg); + } + + /* line 21, source/lib/font-awesome/_spinning.scss */ + 100% { + -o-transform: rotate(359deg); + } +} + +@-ms-keyframes spin { + /* line 24, source/lib/font-awesome/_spinning.scss */ + 0% { + -ms-transform: rotate(0deg); + } + + /* line 25, source/lib/font-awesome/_spinning.scss */ + 100% { + -ms-transform: rotate(359deg); + } +} + +@keyframes spin { + /* line 28, source/lib/font-awesome/_spinning.scss */ + 0% { + transform: rotate(0deg); + } + + /* line 29, source/lib/font-awesome/_spinning.scss */ + 100% { + transform: rotate(359deg); + } +} + +/* line 4, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); +} + +/* line 5, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); +} + +/* line 6, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); +} + +/* line 8, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: scale(-1, 1); + -moz-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +/* line 9, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: scale(1, -1); + -moz-transform: scale(1, -1); + -ms-transform: scale(1, -1); + -o-transform: scale(1, -1); + transform: scale(1, -1); +} + +/* line 4, source/lib/font-awesome/_stacked.scss */ +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} + +/* line 12, source/lib/font-awesome/_stacked.scss */ +.fa-stack-1x, .fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} + +/* line 18, source/lib/font-awesome/_stacked.scss */ +.fa-stack-1x { + line-height: inherit; +} + +/* line 19, source/lib/font-awesome/_stacked.scss */ +.fa-stack-2x { + font-size: 2em; +} + +/* line 20, source/lib/font-awesome/_stacked.scss */ +.fa-inverse { + color: white; +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +/* line 4, source/lib/font-awesome/_icons.scss */ +.fa-glass:before { + content: "\f000"; +} + +/* line 5, source/lib/font-awesome/_icons.scss */ +.fa-music:before { + content: "\f001"; +} + +/* line 6, source/lib/font-awesome/_icons.scss */ +.fa-search:before { + content: "\f002"; +} + +/* line 7, source/lib/font-awesome/_icons.scss */ +.fa-envelope-o:before { + content: "\f003"; +} + +/* line 8, source/lib/font-awesome/_icons.scss */ +.fa-heart:before { + content: "\f004"; +} + +/* line 9, source/lib/font-awesome/_icons.scss */ +.fa-star:before { + content: "\f005"; +} + +/* line 10, source/lib/font-awesome/_icons.scss */ +.fa-star-o:before { + content: "\f006"; +} + +/* line 11, source/lib/font-awesome/_icons.scss */ +.fa-user:before { + content: "\f007"; +} + +/* line 12, source/lib/font-awesome/_icons.scss */ +.fa-film:before { + content: "\f008"; +} + +/* line 13, source/lib/font-awesome/_icons.scss */ +.fa-th-large:before { + content: "\f009"; +} + +/* line 14, source/lib/font-awesome/_icons.scss */ +.fa-th:before { + content: "\f00a"; +} + +/* line 15, source/lib/font-awesome/_icons.scss */ +.fa-th-list:before { + content: "\f00b"; +} + +/* line 16, source/lib/font-awesome/_icons.scss */ +.fa-check:before { + content: "\f00c"; +} + +/* line 17, source/lib/font-awesome/_icons.scss */ +.fa-times:before { + content: "\f00d"; +} + +/* line 18, source/lib/font-awesome/_icons.scss */ +.fa-search-plus:before { + content: "\f00e"; +} + +/* line 19, source/lib/font-awesome/_icons.scss */ +.fa-search-minus:before { + content: "\f010"; +} + +/* line 20, source/lib/font-awesome/_icons.scss */ +.fa-power-off:before { + content: "\f011"; +} + +/* line 21, source/lib/font-awesome/_icons.scss */ +.fa-signal:before { + content: "\f012"; +} + +/* line 23, source/lib/font-awesome/_icons.scss */ +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} + +/* line 24, source/lib/font-awesome/_icons.scss */ +.fa-trash-o:before { + content: "\f014"; +} + +/* line 25, source/lib/font-awesome/_icons.scss */ +.fa-home:before { + content: "\f015"; +} + +/* line 26, source/lib/font-awesome/_icons.scss */ +.fa-file-o:before { + content: "\f016"; +} + +/* line 27, source/lib/font-awesome/_icons.scss */ +.fa-clock-o:before { + content: "\f017"; +} + +/* line 28, source/lib/font-awesome/_icons.scss */ +.fa-road:before { + content: "\f018"; +} + +/* line 29, source/lib/font-awesome/_icons.scss */ +.fa-download:before { + content: "\f019"; +} + +/* line 30, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} + +/* line 31, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} + +/* line 32, source/lib/font-awesome/_icons.scss */ +.fa-inbox:before { + content: "\f01c"; +} + +/* line 33, source/lib/font-awesome/_icons.scss */ +.fa-play-circle-o:before { + content: "\f01d"; +} + +/* line 35, source/lib/font-awesome/_icons.scss */ +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} + +/* line 36, source/lib/font-awesome/_icons.scss */ +.fa-refresh:before { + content: "\f021"; +} + +/* line 37, source/lib/font-awesome/_icons.scss */ +.fa-list-alt:before { + content: "\f022"; +} + +/* line 38, source/lib/font-awesome/_icons.scss */ +.fa-lock:before { + content: "\f023"; +} + +/* line 39, source/lib/font-awesome/_icons.scss */ +.fa-flag:before { + content: "\f024"; +} + +/* line 40, source/lib/font-awesome/_icons.scss */ +.fa-headphones:before { + content: "\f025"; +} + +/* line 41, source/lib/font-awesome/_icons.scss */ +.fa-volume-off:before { + content: "\f026"; +} + +/* line 42, source/lib/font-awesome/_icons.scss */ +.fa-volume-down:before { + content: "\f027"; +} + +/* line 43, source/lib/font-awesome/_icons.scss */ +.fa-volume-up:before { + content: "\f028"; +} + +/* line 44, source/lib/font-awesome/_icons.scss */ +.fa-qrcode:before { + content: "\f029"; +} + +/* line 45, source/lib/font-awesome/_icons.scss */ +.fa-barcode:before { + content: "\f02a"; +} + +/* line 46, source/lib/font-awesome/_icons.scss */ +.fa-tag:before { + content: "\f02b"; +} + +/* line 47, source/lib/font-awesome/_icons.scss */ +.fa-tags:before { + content: "\f02c"; +} + +/* line 48, source/lib/font-awesome/_icons.scss */ +.fa-book:before { + content: "\f02d"; +} + +/* line 49, source/lib/font-awesome/_icons.scss */ +.fa-bookmark:before { + content: "\f02e"; +} + +/* line 50, source/lib/font-awesome/_icons.scss */ +.fa-print:before { + content: "\f02f"; +} + +/* line 51, source/lib/font-awesome/_icons.scss */ +.fa-camera:before { + content: "\f030"; +} + +/* line 52, source/lib/font-awesome/_icons.scss */ +.fa-font:before { + content: "\f031"; +} + +/* line 53, source/lib/font-awesome/_icons.scss */ +.fa-bold:before { + content: "\f032"; +} + +/* line 54, source/lib/font-awesome/_icons.scss */ +.fa-italic:before { + content: "\f033"; +} + +/* line 55, source/lib/font-awesome/_icons.scss */ +.fa-text-height:before { + content: "\f034"; +} + +/* line 56, source/lib/font-awesome/_icons.scss */ +.fa-text-width:before { + content: "\f035"; +} + +/* line 57, source/lib/font-awesome/_icons.scss */ +.fa-align-left:before { + content: "\f036"; +} + +/* line 58, source/lib/font-awesome/_icons.scss */ +.fa-align-center:before { + content: "\f037"; +} + +/* line 59, source/lib/font-awesome/_icons.scss */ +.fa-align-right:before { + content: "\f038"; +} + +/* line 60, source/lib/font-awesome/_icons.scss */ +.fa-align-justify:before { + content: "\f039"; +} + +/* line 61, source/lib/font-awesome/_icons.scss */ +.fa-list:before { + content: "\f03a"; +} + +/* line 63, source/lib/font-awesome/_icons.scss */ +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} + +/* line 64, source/lib/font-awesome/_icons.scss */ +.fa-indent:before { + content: "\f03c"; +} + +/* line 65, source/lib/font-awesome/_icons.scss */ +.fa-video-camera:before { + content: "\f03d"; +} + +/* line 66, source/lib/font-awesome/_icons.scss */ +.fa-picture-o:before { + content: "\f03e"; +} + +/* line 67, source/lib/font-awesome/_icons.scss */ +.fa-pencil:before { + content: "\f040"; +} + +/* line 68, source/lib/font-awesome/_icons.scss */ +.fa-map-marker:before { + content: "\f041"; +} + +/* line 69, source/lib/font-awesome/_icons.scss */ +.fa-adjust:before { + content: "\f042"; +} + +/* line 70, source/lib/font-awesome/_icons.scss */ +.fa-tint:before { + content: "\f043"; +} + +/* line 72, source/lib/font-awesome/_icons.scss */ +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} + +/* line 73, source/lib/font-awesome/_icons.scss */ +.fa-share-square-o:before { + content: "\f045"; +} + +/* line 74, source/lib/font-awesome/_icons.scss */ +.fa-check-square-o:before { + content: "\f046"; +} + +/* line 75, source/lib/font-awesome/_icons.scss */ +.fa-arrows:before { + content: "\f047"; +} + +/* line 76, source/lib/font-awesome/_icons.scss */ +.fa-step-backward:before { + content: "\f048"; +} + +/* line 77, source/lib/font-awesome/_icons.scss */ +.fa-fast-backward:before { + content: "\f049"; +} + +/* line 78, source/lib/font-awesome/_icons.scss */ +.fa-backward:before { + content: "\f04a"; +} + +/* line 79, source/lib/font-awesome/_icons.scss */ +.fa-play:before { + content: "\f04b"; +} + +/* line 80, source/lib/font-awesome/_icons.scss */ +.fa-pause:before { + content: "\f04c"; +} + +/* line 81, source/lib/font-awesome/_icons.scss */ +.fa-stop:before { + content: "\f04d"; +} + +/* line 82, source/lib/font-awesome/_icons.scss */ +.fa-forward:before { + content: "\f04e"; +} + +/* line 83, source/lib/font-awesome/_icons.scss */ +.fa-fast-forward:before { + content: "\f050"; +} + +/* line 84, source/lib/font-awesome/_icons.scss */ +.fa-step-forward:before { + content: "\f051"; +} + +/* line 85, source/lib/font-awesome/_icons.scss */ +.fa-eject:before { + content: "\f052"; +} + +/* line 86, source/lib/font-awesome/_icons.scss */ +.fa-chevron-left:before { + content: "\f053"; +} + +/* line 87, source/lib/font-awesome/_icons.scss */ +.fa-chevron-right:before { + content: "\f054"; +} + +/* line 88, source/lib/font-awesome/_icons.scss */ +.fa-plus-circle:before { + content: "\f055"; +} + +/* line 89, source/lib/font-awesome/_icons.scss */ +.fa-minus-circle:before { + content: "\f056"; +} + +/* line 90, source/lib/font-awesome/_icons.scss */ +.fa-times-circle:before { + content: "\f057"; +} + +/* line 91, source/lib/font-awesome/_icons.scss */ +.fa-check-circle:before { + content: "\f058"; +} + +/* line 92, source/lib/font-awesome/_icons.scss */ +.fa-question-circle:before { + content: "\f059"; +} + +/* line 93, source/lib/font-awesome/_icons.scss */ +.fa-info-circle:before { + content: "\f05a"; +} + +/* line 94, source/lib/font-awesome/_icons.scss */ +.fa-crosshairs:before { + content: "\f05b"; +} + +/* line 95, source/lib/font-awesome/_icons.scss */ +.fa-times-circle-o:before { + content: "\f05c"; +} + +/* line 96, source/lib/font-awesome/_icons.scss */ +.fa-check-circle-o:before { + content: "\f05d"; +} + +/* line 97, source/lib/font-awesome/_icons.scss */ +.fa-ban:before { + content: "\f05e"; +} + +/* line 98, source/lib/font-awesome/_icons.scss */ +.fa-arrow-left:before { + content: "\f060"; +} + +/* line 99, source/lib/font-awesome/_icons.scss */ +.fa-arrow-right:before { + content: "\f061"; +} + +/* line 100, source/lib/font-awesome/_icons.scss */ +.fa-arrow-up:before { + content: "\f062"; +} + +/* line 101, source/lib/font-awesome/_icons.scss */ +.fa-arrow-down:before { + content: "\f063"; +} + +/* line 103, source/lib/font-awesome/_icons.scss */ +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} + +/* line 104, source/lib/font-awesome/_icons.scss */ +.fa-expand:before { + content: "\f065"; +} + +/* line 105, source/lib/font-awesome/_icons.scss */ +.fa-compress:before { + content: "\f066"; +} + +/* line 106, source/lib/font-awesome/_icons.scss */ +.fa-plus:before { + content: "\f067"; +} + +/* line 107, source/lib/font-awesome/_icons.scss */ +.fa-minus:before { + content: "\f068"; +} + +/* line 108, source/lib/font-awesome/_icons.scss */ +.fa-asterisk:before { + content: "\f069"; +} + +/* line 109, source/lib/font-awesome/_icons.scss */ +.fa-exclamation-circle:before { + content: "\f06a"; +} + +/* line 110, source/lib/font-awesome/_icons.scss */ +.fa-gift:before { + content: "\f06b"; +} + +/* line 111, source/lib/font-awesome/_icons.scss */ +.fa-leaf:before { + content: "\f06c"; +} + +/* line 112, source/lib/font-awesome/_icons.scss */ +.fa-fire:before { + content: "\f06d"; +} + +/* line 113, source/lib/font-awesome/_icons.scss */ +.fa-eye:before { + content: "\f06e"; +} + +/* line 114, source/lib/font-awesome/_icons.scss */ +.fa-eye-slash:before { + content: "\f070"; +} + +/* line 116, source/lib/font-awesome/_icons.scss */ +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} + +/* line 117, source/lib/font-awesome/_icons.scss */ +.fa-plane:before { + content: "\f072"; +} + +/* line 118, source/lib/font-awesome/_icons.scss */ +.fa-calendar:before { + content: "\f073"; +} + +/* line 119, source/lib/font-awesome/_icons.scss */ +.fa-random:before { + content: "\f074"; +} + +/* line 120, source/lib/font-awesome/_icons.scss */ +.fa-comment:before { + content: "\f075"; +} + +/* line 121, source/lib/font-awesome/_icons.scss */ +.fa-magnet:before { + content: "\f076"; +} + +/* line 122, source/lib/font-awesome/_icons.scss */ +.fa-chevron-up:before { + content: "\f077"; +} + +/* line 123, source/lib/font-awesome/_icons.scss */ +.fa-chevron-down:before { + content: "\f078"; +} + +/* line 124, source/lib/font-awesome/_icons.scss */ +.fa-retweet:before { + content: "\f079"; +} + +/* line 125, source/lib/font-awesome/_icons.scss */ +.fa-shopping-cart:before { + content: "\f07a"; +} + +/* line 126, source/lib/font-awesome/_icons.scss */ +.fa-folder:before { + content: "\f07b"; +} + +/* line 127, source/lib/font-awesome/_icons.scss */ +.fa-folder-open:before { + content: "\f07c"; +} + +/* line 128, source/lib/font-awesome/_icons.scss */ +.fa-arrows-v:before { + content: "\f07d"; +} + +/* line 129, source/lib/font-awesome/_icons.scss */ +.fa-arrows-h:before { + content: "\f07e"; +} + +/* line 130, source/lib/font-awesome/_icons.scss */ +.fa-bar-chart-o:before { + content: "\f080"; +} + +/* line 131, source/lib/font-awesome/_icons.scss */ +.fa-twitter-square:before { + content: "\f081"; +} + +/* line 132, source/lib/font-awesome/_icons.scss */ +.fa-facebook-square:before { + content: "\f082"; +} + +/* line 133, source/lib/font-awesome/_icons.scss */ +.fa-camera-retro:before { + content: "\f083"; +} + +/* line 134, source/lib/font-awesome/_icons.scss */ +.fa-key:before { + content: "\f084"; +} + +/* line 136, source/lib/font-awesome/_icons.scss */ +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} + +/* line 137, source/lib/font-awesome/_icons.scss */ +.fa-comments:before { + content: "\f086"; +} + +/* line 138, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-o-up:before { + content: "\f087"; +} + +/* line 139, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-o-down:before { + content: "\f088"; +} + +/* line 140, source/lib/font-awesome/_icons.scss */ +.fa-star-half:before { + content: "\f089"; +} + +/* line 141, source/lib/font-awesome/_icons.scss */ +.fa-heart-o:before { + content: "\f08a"; +} + +/* line 142, source/lib/font-awesome/_icons.scss */ +.fa-sign-out:before { + content: "\f08b"; +} + +/* line 143, source/lib/font-awesome/_icons.scss */ +.fa-linkedin-square:before { + content: "\f08c"; +} + +/* line 144, source/lib/font-awesome/_icons.scss */ +.fa-thumb-tack:before { + content: "\f08d"; +} + +/* line 145, source/lib/font-awesome/_icons.scss */ +.fa-external-link:before { + content: "\f08e"; +} + +/* line 146, source/lib/font-awesome/_icons.scss */ +.fa-sign-in:before { + content: "\f090"; +} + +/* line 147, source/lib/font-awesome/_icons.scss */ +.fa-trophy:before { + content: "\f091"; +} + +/* line 148, source/lib/font-awesome/_icons.scss */ +.fa-github-square:before { + content: "\f092"; +} + +/* line 149, source/lib/font-awesome/_icons.scss */ +.fa-upload:before { + content: "\f093"; +} + +/* line 150, source/lib/font-awesome/_icons.scss */ +.fa-lemon-o:before { + content: "\f094"; +} + +/* line 151, source/lib/font-awesome/_icons.scss */ +.fa-phone:before { + content: "\f095"; +} + +/* line 152, source/lib/font-awesome/_icons.scss */ +.fa-square-o:before { + content: "\f096"; +} + +/* line 153, source/lib/font-awesome/_icons.scss */ +.fa-bookmark-o:before { + content: "\f097"; +} + +/* line 154, source/lib/font-awesome/_icons.scss */ +.fa-phone-square:before { + content: "\f098"; +} + +/* line 155, source/lib/font-awesome/_icons.scss */ +.fa-twitter:before { + content: "\f099"; +} + +/* line 156, source/lib/font-awesome/_icons.scss */ +.fa-facebook:before { + content: "\f09a"; +} + +/* line 157, source/lib/font-awesome/_icons.scss */ +.fa-github:before { + content: "\f09b"; +} + +/* line 158, source/lib/font-awesome/_icons.scss */ +.fa-unlock:before { + content: "\f09c"; +} + +/* line 159, source/lib/font-awesome/_icons.scss */ +.fa-credit-card:before { + content: "\f09d"; +} + +/* line 160, source/lib/font-awesome/_icons.scss */ +.fa-rss:before { + content: "\f09e"; +} + +/* line 161, source/lib/font-awesome/_icons.scss */ +.fa-hdd-o:before { + content: "\f0a0"; +} + +/* line 162, source/lib/font-awesome/_icons.scss */ +.fa-bullhorn:before { + content: "\f0a1"; +} + +/* line 163, source/lib/font-awesome/_icons.scss */ +.fa-bell:before { + content: "\f0f3"; +} + +/* line 164, source/lib/font-awesome/_icons.scss */ +.fa-certificate:before { + content: "\f0a3"; +} + +/* line 165, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-right:before { + content: "\f0a4"; +} + +/* line 166, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-left:before { + content: "\f0a5"; +} + +/* line 167, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-up:before { + content: "\f0a6"; +} + +/* line 168, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-down:before { + content: "\f0a7"; +} + +/* line 169, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-left:before { + content: "\f0a8"; +} + +/* line 170, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-right:before { + content: "\f0a9"; +} + +/* line 171, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-up:before { + content: "\f0aa"; +} + +/* line 172, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-down:before { + content: "\f0ab"; +} + +/* line 173, source/lib/font-awesome/_icons.scss */ +.fa-globe:before { + content: "\f0ac"; +} + +/* line 174, source/lib/font-awesome/_icons.scss */ +.fa-wrench:before { + content: "\f0ad"; +} + +/* line 175, source/lib/font-awesome/_icons.scss */ +.fa-tasks:before { + content: "\f0ae"; +} + +/* line 176, source/lib/font-awesome/_icons.scss */ +.fa-filter:before { + content: "\f0b0"; +} + +/* line 177, source/lib/font-awesome/_icons.scss */ +.fa-briefcase:before { + content: "\f0b1"; +} + +/* line 178, source/lib/font-awesome/_icons.scss */ +.fa-arrows-alt:before { + content: "\f0b2"; +} + +/* line 180, source/lib/font-awesome/_icons.scss */ +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} + +/* line 182, source/lib/font-awesome/_icons.scss */ +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} + +/* line 183, source/lib/font-awesome/_icons.scss */ +.fa-cloud:before { + content: "\f0c2"; +} + +/* line 184, source/lib/font-awesome/_icons.scss */ +.fa-flask:before { + content: "\f0c3"; +} + +/* line 186, source/lib/font-awesome/_icons.scss */ +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} + +/* line 188, source/lib/font-awesome/_icons.scss */ +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} + +/* line 189, source/lib/font-awesome/_icons.scss */ +.fa-paperclip:before { + content: "\f0c6"; +} + +/* line 191, source/lib/font-awesome/_icons.scss */ +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} + +/* line 192, source/lib/font-awesome/_icons.scss */ +.fa-square:before { + content: "\f0c8"; +} + +/* line 193, source/lib/font-awesome/_icons.scss */ +.fa-bars:before { + content: "\f0c9"; +} + +/* line 194, source/lib/font-awesome/_icons.scss */ +.fa-list-ul:before { + content: "\f0ca"; +} + +/* line 195, source/lib/font-awesome/_icons.scss */ +.fa-list-ol:before { + content: "\f0cb"; +} + +/* line 196, source/lib/font-awesome/_icons.scss */ +.fa-strikethrough:before { + content: "\f0cc"; +} + +/* line 197, source/lib/font-awesome/_icons.scss */ +.fa-underline:before { + content: "\f0cd"; +} + +/* line 198, source/lib/font-awesome/_icons.scss */ +.fa-table:before { + content: "\f0ce"; +} + +/* line 199, source/lib/font-awesome/_icons.scss */ +.fa-magic:before { + content: "\f0d0"; +} + +/* line 200, source/lib/font-awesome/_icons.scss */ +.fa-truck:before { + content: "\f0d1"; +} + +/* line 201, source/lib/font-awesome/_icons.scss */ +.fa-pinterest:before { + content: "\f0d2"; +} + +/* line 202, source/lib/font-awesome/_icons.scss */ +.fa-pinterest-square:before { + content: "\f0d3"; +} + +/* line 203, source/lib/font-awesome/_icons.scss */ +.fa-google-plus-square:before { + content: "\f0d4"; +} + +/* line 204, source/lib/font-awesome/_icons.scss */ +.fa-google-plus:before { + content: "\f0d5"; +} + +/* line 205, source/lib/font-awesome/_icons.scss */ +.fa-money:before { + content: "\f0d6"; +} + +/* line 206, source/lib/font-awesome/_icons.scss */ +.fa-caret-down:before { + content: "\f0d7"; +} + +/* line 207, source/lib/font-awesome/_icons.scss */ +.fa-caret-up:before { + content: "\f0d8"; +} + +/* line 208, source/lib/font-awesome/_icons.scss */ +.fa-caret-left:before { + content: "\f0d9"; +} + +/* line 209, source/lib/font-awesome/_icons.scss */ +.fa-caret-right:before { + content: "\f0da"; +} + +/* line 210, source/lib/font-awesome/_icons.scss */ +.fa-columns:before { + content: "\f0db"; +} + +/* line 212, source/lib/font-awesome/_icons.scss */ +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} + +/* line 214, source/lib/font-awesome/_icons.scss */ +.fa-sort-down:before, +.fa-sort-asc:before { + content: "\f0dd"; +} + +/* line 216, source/lib/font-awesome/_icons.scss */ +.fa-sort-up:before, +.fa-sort-desc:before { + content: "\f0de"; +} + +/* line 217, source/lib/font-awesome/_icons.scss */ +.fa-envelope:before { + content: "\f0e0"; +} + +/* line 218, source/lib/font-awesome/_icons.scss */ +.fa-linkedin:before { + content: "\f0e1"; +} + +/* line 220, source/lib/font-awesome/_icons.scss */ +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} + +/* line 222, source/lib/font-awesome/_icons.scss */ +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} + +/* line 224, source/lib/font-awesome/_icons.scss */ +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} + +/* line 225, source/lib/font-awesome/_icons.scss */ +.fa-comment-o:before { + content: "\f0e5"; +} + +/* line 226, source/lib/font-awesome/_icons.scss */ +.fa-comments-o:before { + content: "\f0e6"; +} + +/* line 228, source/lib/font-awesome/_icons.scss */ +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} + +/* line 229, source/lib/font-awesome/_icons.scss */ +.fa-sitemap:before { + content: "\f0e8"; +} + +/* line 230, source/lib/font-awesome/_icons.scss */ +.fa-umbrella:before { + content: "\f0e9"; +} + +/* line 232, source/lib/font-awesome/_icons.scss */ +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} + +/* line 233, source/lib/font-awesome/_icons.scss */ +.fa-lightbulb-o:before { + content: "\f0eb"; +} + +/* line 234, source/lib/font-awesome/_icons.scss */ +.fa-exchange:before { + content: "\f0ec"; +} + +/* line 235, source/lib/font-awesome/_icons.scss */ +.fa-cloud-download:before { + content: "\f0ed"; +} + +/* line 236, source/lib/font-awesome/_icons.scss */ +.fa-cloud-upload:before { + content: "\f0ee"; +} + +/* line 237, source/lib/font-awesome/_icons.scss */ +.fa-user-md:before { + content: "\f0f0"; +} + +/* line 238, source/lib/font-awesome/_icons.scss */ +.fa-stethoscope:before { + content: "\f0f1"; +} + +/* line 239, source/lib/font-awesome/_icons.scss */ +.fa-suitcase:before { + content: "\f0f2"; +} + +/* line 240, source/lib/font-awesome/_icons.scss */ +.fa-bell-o:before { + content: "\f0a2"; +} + +/* line 241, source/lib/font-awesome/_icons.scss */ +.fa-coffee:before { + content: "\f0f4"; +} + +/* line 242, source/lib/font-awesome/_icons.scss */ +.fa-cutlery:before { + content: "\f0f5"; +} + +/* line 243, source/lib/font-awesome/_icons.scss */ +.fa-file-text-o:before { + content: "\f0f6"; +} + +/* line 244, source/lib/font-awesome/_icons.scss */ +.fa-building-o:before { + content: "\f0f7"; +} + +/* line 245, source/lib/font-awesome/_icons.scss */ +.fa-hospital-o:before { + content: "\f0f8"; +} + +/* line 246, source/lib/font-awesome/_icons.scss */ +.fa-ambulance:before { + content: "\f0f9"; +} + +/* line 247, source/lib/font-awesome/_icons.scss */ +.fa-medkit:before { + content: "\f0fa"; +} + +/* line 248, source/lib/font-awesome/_icons.scss */ +.fa-fighter-jet:before { + content: "\f0fb"; +} + +/* line 249, source/lib/font-awesome/_icons.scss */ +.fa-beer:before { + content: "\f0fc"; +} + +/* line 250, source/lib/font-awesome/_icons.scss */ +.fa-h-square:before { + content: "\f0fd"; +} + +/* line 251, source/lib/font-awesome/_icons.scss */ +.fa-plus-square:before { + content: "\f0fe"; +} + +/* line 252, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-left:before { + content: "\f100"; +} + +/* line 253, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-right:before { + content: "\f101"; +} + +/* line 254, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-up:before { + content: "\f102"; +} + +/* line 255, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-down:before { + content: "\f103"; +} + +/* line 256, source/lib/font-awesome/_icons.scss */ +.fa-angle-left:before { + content: "\f104"; +} + +/* line 257, source/lib/font-awesome/_icons.scss */ +.fa-angle-right:before { + content: "\f105"; +} + +/* line 258, source/lib/font-awesome/_icons.scss */ +.fa-angle-up:before { + content: "\f106"; +} + +/* line 259, source/lib/font-awesome/_icons.scss */ +.fa-angle-down:before { + content: "\f107"; +} + +/* line 260, source/lib/font-awesome/_icons.scss */ +.fa-desktop:before { + content: "\f108"; +} + +/* line 261, source/lib/font-awesome/_icons.scss */ +.fa-laptop:before { + content: "\f109"; +} + +/* line 262, source/lib/font-awesome/_icons.scss */ +.fa-tablet:before { + content: "\f10a"; +} + +/* line 264, source/lib/font-awesome/_icons.scss */ +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} + +/* line 265, source/lib/font-awesome/_icons.scss */ +.fa-circle-o:before { + content: "\f10c"; +} + +/* line 266, source/lib/font-awesome/_icons.scss */ +.fa-quote-left:before { + content: "\f10d"; +} + +/* line 267, source/lib/font-awesome/_icons.scss */ +.fa-quote-right:before { + content: "\f10e"; +} + +/* line 268, source/lib/font-awesome/_icons.scss */ +.fa-spinner:before { + content: "\f110"; +} + +/* line 269, source/lib/font-awesome/_icons.scss */ +.fa-circle:before { + content: "\f111"; +} + +/* line 271, source/lib/font-awesome/_icons.scss */ +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} + +/* line 272, source/lib/font-awesome/_icons.scss */ +.fa-github-alt:before { + content: "\f113"; +} + +/* line 273, source/lib/font-awesome/_icons.scss */ +.fa-folder-o:before { + content: "\f114"; +} + +/* line 274, source/lib/font-awesome/_icons.scss */ +.fa-folder-open-o:before { + content: "\f115"; +} + +/* line 275, source/lib/font-awesome/_icons.scss */ +.fa-smile-o:before { + content: "\f118"; +} + +/* line 276, source/lib/font-awesome/_icons.scss */ +.fa-frown-o:before { + content: "\f119"; +} + +/* line 277, source/lib/font-awesome/_icons.scss */ +.fa-meh-o:before { + content: "\f11a"; +} + +/* line 278, source/lib/font-awesome/_icons.scss */ +.fa-gamepad:before { + content: "\f11b"; +} + +/* line 279, source/lib/font-awesome/_icons.scss */ +.fa-keyboard-o:before { + content: "\f11c"; +} + +/* line 280, source/lib/font-awesome/_icons.scss */ +.fa-flag-o:before { + content: "\f11d"; +} + +/* line 281, source/lib/font-awesome/_icons.scss */ +.fa-flag-checkered:before { + content: "\f11e"; +} + +/* line 282, source/lib/font-awesome/_icons.scss */ +.fa-terminal:before { + content: "\f120"; +} + +/* line 283, source/lib/font-awesome/_icons.scss */ +.fa-code:before { + content: "\f121"; +} + +/* line 284, source/lib/font-awesome/_icons.scss */ +.fa-reply-all:before { + content: "\f122"; +} + +/* line 285, source/lib/font-awesome/_icons.scss */ +.fa-mail-reply-all:before { + content: "\f122"; +} + +/* line 288, source/lib/font-awesome/_icons.scss */ +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} + +/* line 289, source/lib/font-awesome/_icons.scss */ +.fa-location-arrow:before { + content: "\f124"; +} + +/* line 290, source/lib/font-awesome/_icons.scss */ +.fa-crop:before { + content: "\f125"; +} + +/* line 291, source/lib/font-awesome/_icons.scss */ +.fa-code-fork:before { + content: "\f126"; +} + +/* line 293, source/lib/font-awesome/_icons.scss */ +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} + +/* line 294, source/lib/font-awesome/_icons.scss */ +.fa-question:before { + content: "\f128"; +} + +/* line 295, source/lib/font-awesome/_icons.scss */ +.fa-info:before { + content: "\f129"; +} + +/* line 296, source/lib/font-awesome/_icons.scss */ +.fa-exclamation:before { + content: "\f12a"; +} + +/* line 297, source/lib/font-awesome/_icons.scss */ +.fa-superscript:before { + content: "\f12b"; +} + +/* line 298, source/lib/font-awesome/_icons.scss */ +.fa-subscript:before { + content: "\f12c"; +} + +/* line 299, source/lib/font-awesome/_icons.scss */ +.fa-eraser:before { + content: "\f12d"; +} + +/* line 300, source/lib/font-awesome/_icons.scss */ +.fa-puzzle-piece:before { + content: "\f12e"; +} + +/* line 301, source/lib/font-awesome/_icons.scss */ +.fa-microphone:before { + content: "\f130"; +} + +/* line 302, source/lib/font-awesome/_icons.scss */ +.fa-microphone-slash:before { + content: "\f131"; +} + +/* line 303, source/lib/font-awesome/_icons.scss */ +.fa-shield:before { + content: "\f132"; +} + +/* line 304, source/lib/font-awesome/_icons.scss */ +.fa-calendar-o:before { + content: "\f133"; +} + +/* line 305, source/lib/font-awesome/_icons.scss */ +.fa-fire-extinguisher:before { + content: "\f134"; +} + +/* line 306, source/lib/font-awesome/_icons.scss */ +.fa-rocket:before { + content: "\f135"; +} + +/* line 307, source/lib/font-awesome/_icons.scss */ +.fa-maxcdn:before { + content: "\f136"; +} + +/* line 308, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-left:before { + content: "\f137"; +} + +/* line 309, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-right:before { + content: "\f138"; +} + +/* line 310, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-up:before { + content: "\f139"; +} + +/* line 311, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-down:before { + content: "\f13a"; +} + +/* line 312, source/lib/font-awesome/_icons.scss */ +.fa-html5:before { + content: "\f13b"; +} + +/* line 313, source/lib/font-awesome/_icons.scss */ +.fa-css3:before { + content: "\f13c"; +} + +/* line 314, source/lib/font-awesome/_icons.scss */ +.fa-anchor:before { + content: "\f13d"; +} + +/* line 315, source/lib/font-awesome/_icons.scss */ +.fa-unlock-alt:before { + content: "\f13e"; +} + +/* line 316, source/lib/font-awesome/_icons.scss */ +.fa-bullseye:before { + content: "\f140"; +} + +/* line 317, source/lib/font-awesome/_icons.scss */ +.fa-ellipsis-h:before { + content: "\f141"; +} + +/* line 318, source/lib/font-awesome/_icons.scss */ +.fa-ellipsis-v:before { + content: "\f142"; +} + +/* line 319, source/lib/font-awesome/_icons.scss */ +.fa-rss-square:before { + content: "\f143"; +} + +/* line 320, source/lib/font-awesome/_icons.scss */ +.fa-play-circle:before { + content: "\f144"; +} + +/* line 321, source/lib/font-awesome/_icons.scss */ +.fa-ticket:before { + content: "\f145"; +} + +/* line 322, source/lib/font-awesome/_icons.scss */ +.fa-minus-square:before { + content: "\f146"; +} + +/* line 323, source/lib/font-awesome/_icons.scss */ +.fa-minus-square-o:before { + content: "\f147"; +} + +/* line 324, source/lib/font-awesome/_icons.scss */ +.fa-level-up:before { + content: "\f148"; +} + +/* line 325, source/lib/font-awesome/_icons.scss */ +.fa-level-down:before { + content: "\f149"; +} + +/* line 326, source/lib/font-awesome/_icons.scss */ +.fa-check-square:before { + content: "\f14a"; +} + +/* line 327, source/lib/font-awesome/_icons.scss */ +.fa-pencil-square:before { + content: "\f14b"; +} + +/* line 328, source/lib/font-awesome/_icons.scss */ +.fa-external-link-square:before { + content: "\f14c"; +} + +/* line 329, source/lib/font-awesome/_icons.scss */ +.fa-share-square:before { + content: "\f14d"; +} + +/* line 330, source/lib/font-awesome/_icons.scss */ +.fa-compass:before { + content: "\f14e"; +} + +/* line 332, source/lib/font-awesome/_icons.scss */ +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} + +/* line 334, source/lib/font-awesome/_icons.scss */ +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} + +/* line 336, source/lib/font-awesome/_icons.scss */ +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} + +/* line 338, source/lib/font-awesome/_icons.scss */ +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} + +/* line 339, source/lib/font-awesome/_icons.scss */ +.fa-gbp:before { + content: "\f154"; +} + +/* line 341, source/lib/font-awesome/_icons.scss */ +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} + +/* line 343, source/lib/font-awesome/_icons.scss */ +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} + +/* line 347, source/lib/font-awesome/_icons.scss */ +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} + +/* line 350, source/lib/font-awesome/_icons.scss */ +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} + +/* line 352, source/lib/font-awesome/_icons.scss */ +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} + +/* line 354, source/lib/font-awesome/_icons.scss */ +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} + +/* line 355, source/lib/font-awesome/_icons.scss */ +.fa-file:before { + content: "\f15b"; +} + +/* line 356, source/lib/font-awesome/_icons.scss */ +.fa-file-text:before { + content: "\f15c"; +} + +/* line 357, source/lib/font-awesome/_icons.scss */ +.fa-sort-alpha-asc:before { + content: "\f15d"; +} + +/* line 358, source/lib/font-awesome/_icons.scss */ +.fa-sort-alpha-desc:before { + content: "\f15e"; +} + +/* line 359, source/lib/font-awesome/_icons.scss */ +.fa-sort-amount-asc:before { + content: "\f160"; +} + +/* line 360, source/lib/font-awesome/_icons.scss */ +.fa-sort-amount-desc:before { + content: "\f161"; +} + +/* line 361, source/lib/font-awesome/_icons.scss */ +.fa-sort-numeric-asc:before { + content: "\f162"; +} + +/* line 362, source/lib/font-awesome/_icons.scss */ +.fa-sort-numeric-desc:before { + content: "\f163"; +} + +/* line 363, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-up:before { + content: "\f164"; +} + +/* line 364, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-down:before { + content: "\f165"; +} + +/* line 365, source/lib/font-awesome/_icons.scss */ +.fa-youtube-square:before { + content: "\f166"; +} + +/* line 366, source/lib/font-awesome/_icons.scss */ +.fa-youtube:before { + content: "\f167"; +} + +/* line 367, source/lib/font-awesome/_icons.scss */ +.fa-xing:before { + content: "\f168"; +} + +/* line 368, source/lib/font-awesome/_icons.scss */ +.fa-xing-square:before { + content: "\f169"; +} + +/* line 369, source/lib/font-awesome/_icons.scss */ +.fa-youtube-play:before { + content: "\f16a"; +} + +/* line 370, source/lib/font-awesome/_icons.scss */ +.fa-dropbox:before { + content: "\f16b"; +} + +/* line 371, source/lib/font-awesome/_icons.scss */ +.fa-stack-overflow:before { + content: "\f16c"; +} + +/* line 372, source/lib/font-awesome/_icons.scss */ +.fa-instagram:before { + content: "\f16d"; +} + +/* line 373, source/lib/font-awesome/_icons.scss */ +.fa-flickr:before { + content: "\f16e"; +} + +/* line 374, source/lib/font-awesome/_icons.scss */ +.fa-adn:before { + content: "\f170"; +} + +/* line 375, source/lib/font-awesome/_icons.scss */ +.fa-bitbucket:before { + content: "\f171"; +} + +/* line 376, source/lib/font-awesome/_icons.scss */ +.fa-bitbucket-square:before { + content: "\f172"; +} + +/* line 377, source/lib/font-awesome/_icons.scss */ +.fa-tumblr:before { + content: "\f173"; +} + +/* line 378, source/lib/font-awesome/_icons.scss */ +.fa-tumblr-square:before { + content: "\f174"; +} + +/* line 379, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-down:before { + content: "\f175"; +} + +/* line 380, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-up:before { + content: "\f176"; +} + +/* line 381, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-left:before { + content: "\f177"; +} + +/* line 382, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-right:before { + content: "\f178"; +} + +/* line 383, source/lib/font-awesome/_icons.scss */ +.fa-apple:before { + content: "\f179"; +} + +/* line 384, source/lib/font-awesome/_icons.scss */ +.fa-windows:before { + content: "\f17a"; +} + +/* line 385, source/lib/font-awesome/_icons.scss */ +.fa-android:before { + content: "\f17b"; +} + +/* line 386, source/lib/font-awesome/_icons.scss */ +.fa-linux:before { + content: "\f17c"; +} + +/* line 387, source/lib/font-awesome/_icons.scss */ +.fa-dribbble:before { + content: "\f17d"; +} + +/* line 388, source/lib/font-awesome/_icons.scss */ +.fa-skype:before { + content: "\f17e"; +} + +/* line 389, source/lib/font-awesome/_icons.scss */ +.fa-foursquare:before { + content: "\f180"; +} + +/* line 390, source/lib/font-awesome/_icons.scss */ +.fa-trello:before { + content: "\f181"; +} + +/* line 391, source/lib/font-awesome/_icons.scss */ +.fa-female:before { + content: "\f182"; +} + +/* line 392, source/lib/font-awesome/_icons.scss */ +.fa-male:before { + content: "\f183"; +} + +/* line 393, source/lib/font-awesome/_icons.scss */ +.fa-gittip:before { + content: "\f184"; +} + +/* line 394, source/lib/font-awesome/_icons.scss */ +.fa-sun-o:before { + content: "\f185"; +} + +/* line 395, source/lib/font-awesome/_icons.scss */ +.fa-moon-o:before { + content: "\f186"; +} + +/* line 396, source/lib/font-awesome/_icons.scss */ +.fa-archive:before { + content: "\f187"; +} + +/* line 397, source/lib/font-awesome/_icons.scss */ +.fa-bug:before { + content: "\f188"; +} + +/* line 398, source/lib/font-awesome/_icons.scss */ +.fa-vk:before { + content: "\f189"; +} + +/* line 399, source/lib/font-awesome/_icons.scss */ +.fa-weibo:before { + content: "\f18a"; +} + +/* line 400, source/lib/font-awesome/_icons.scss */ +.fa-renren:before { + content: "\f18b"; +} + +/* line 401, source/lib/font-awesome/_icons.scss */ +.fa-pagelines:before { + content: "\f18c"; +} + +/* line 402, source/lib/font-awesome/_icons.scss */ +.fa-stack-exchange:before { + content: "\f18d"; +} + +/* line 403, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} + +/* line 404, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-left:before { + content: "\f190"; +} + +/* line 406, source/lib/font-awesome/_icons.scss */ +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} + +/* line 407, source/lib/font-awesome/_icons.scss */ +.fa-dot-circle-o:before { + content: "\f192"; +} + +/* line 408, source/lib/font-awesome/_icons.scss */ +.fa-wheelchair:before { + content: "\f193"; +} + +/* line 409, source/lib/font-awesome/_icons.scss */ +.fa-vimeo-square:before { + content: "\f194"; +} + +/* line 411, source/lib/font-awesome/_icons.scss */ +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} + +/* line 412, source/lib/font-awesome/_icons.scss */ +.fa-plus-square-o:before { + content: "\f196"; +} + +/********************************************* + * GLOBAL STYLES + *********************************************/ +/* line 7, source/template/_theme.scss */ +html { + background: #92bb44; + background: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 100, color-stop(0%, #e9f1da), color-stop(100%, #f7fbfc)); + background: -webkit-radial-gradient(#e9f1da, #f7fbfc); + background: -moz-radial-gradient(#e9f1da, #f7fbfc); + background: -o-radial-gradient(#e9f1da, #f7fbfc); + background: radial-gradient(#e9f1da, #f7fbfc); +} + +@font-face { + font-family: "Gotham"; + src: local("Gotham"), url("../../fonts/Gotham/Gotham-Medium.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Gotham-Book"; + src: local("Gotham-Book"), url("../../fonts/Gotham/Gotham-Book.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Gotham-Italic"; + src: local("Gotham-Italic"), url("../../fonts/Gotham/Gotham-MediumIta.otf") format("opentype"); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: "Gotham-Bold"; + src: local("Gotham-Bold"), url("../../fonts/Gotham/Gotham-Bold.otf") format("opentype"); + font-weight: bold; + font-style: bold; +} + +/* line 42, source/template/_theme.scss */ +.reveal { + font-family: "Gotham-Book", "Helvetica", Arial, sans-serif; + font-size: 36px; + font-weight: 200; + letter-spacing: -0.02em; + color: #333333; +} + +/* line 50, source/template/_theme.scss */ +::selection { + color: white; + background: #134674; + text-shadow: none; +} + +/* line 56, source/template/_theme.scss */ +.reveal ul li { + line-height: 1.2em; + margin-bottom: 10px; +} + +/********************************************* + * HEADERS + *********************************************/ +/* line 72, source/template/_theme.scss */ +.reveal h1, +.reveal h2, +.reveal h3, +.reveal h4, +.reveal h5, +.reveal h6 { + margin: 0 0 20px 0; + color: #8b0036; + font-family: "Gotham-Bold", Impact, sans-serif; + line-height: 0.9em; + letter-spacing: 0.02em; + text-transform: uppercase; + text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); +} + +/* line 84, source/template/_theme.scss */ +.reveal h1 { + text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); +} + +/* line 88, source/template/_theme.scss */ +.reveal h1 { + font-size: 3.77em; +} + +/* line 89, source/template/_theme.scss */ +.reveal h2 { + font-size: 2.11em; +} + +/* line 90, source/template/_theme.scss */ +.reveal h3 { + font-size: 1.55em; +} + +/* line 91, source/template/_theme.scss */ +.reveal h4 { + font-size: 1em; +} + +/********************************************* +* OVERRIDES +**********************************************/ +/* line 96, source/template/_theme.scss */ +.left-align { + text-align: left; +} + +/* line 97, source/template/_theme.scss */ +.right-align { + text-align: right; +} + +/* line 98, source/template/_theme.scss */ +.left { + float: left; +} + +/* line 99, source/template/_theme.scss */ +.right { + float: right; +} + +/* line 100, source/template/_theme.scss */ +.clear { + clear: both; +} + +/* line 101, source/template/_theme.scss */ +.blue, .event__title { + color: #01A9B4 !important; +} + +/* line 102, source/template/_theme.scss */ +.green { + color: #92BB44 !important; +} + +/* line 103, source/template/_theme.scss */ +.yellow { + color: #EDAB23 !important; +} + +/* line 104, source/template/_theme.scss */ +.pink { + color: #F05B62 !important; +} + +/* line 105, source/template/_theme.scss */ +.red { + color: #8B0036 !important; +} + +/* line 106, source/template/_theme.scss */ +.grey { + color: #333333 !important; +} + +/* line 107, source/template/_theme.scss */ +.grey--light, .event__title small { + color: #666 !important; +} + +/********************************************* + * LINKS + *********************************************/ +/* line 114, source/template/_theme.scss */ +.reveal a:not(.image) { + -webkit-transition: color 0.15x ease; + -moz-transition: color 0.15x ease; + -o-transition: color 0.15x ease; + transition: color 0.15x ease; + color: #01a9b4; + text-decoration: none; +} + +/* line 119, source/template/_theme.scss */ +.reveal a:not(.image):hover { + color: #f9b8bb; + text-shadow: none; + border: none; +} + +/* line 126, source/template/_theme.scss */ +.reveal .roll span:after { + color: #fff; + background: #01a9b4; +} + +/********************************************* + * IMAGES + *********************************************/ +/* line 136, source/template/_theme.scss */ +.reveal section img { + margin: 15px; + background: rgba(255, 255, 255, 0.12); + border: 4px solid #333333; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); + -webkit-transition: all 0.2s linear; + -moz-transition: all 0.2s linear; + -o-transition: all 0.2s linear; + transition: all 0.2s linear; +} + +/* line 146, source/template/_theme.scss */ +.reveal a:hover img { + background: rgba(255, 255, 255, 0.2); + border-color: #01a9b4; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); +} + +/********************************************* + * NAVIGATION CONTROLS + *********************************************/ +/* line 159, source/template/_theme.scss */ +.reveal .controls .navigate-left, +.reveal .controls .navigate-left.enabled { + border-right-color: #01a9b4; +} + +/* line 164, source/template/_theme.scss */ +.reveal .controls .navigate-right, +.reveal .controls .navigate-right.enabled { + border-left-color: #01a9b4; +} + +/* line 169, source/template/_theme.scss */ +.reveal .controls .navigate-up, +.reveal .controls .navigate-up.enabled { + border-bottom-color: #01a9b4; +} + +/* line 174, source/template/_theme.scss */ +.reveal .controls .navigate-down, +.reveal .controls .navigate-down.enabled { + border-top-color: #01a9b4; +} + +/* line 178, source/template/_theme.scss */ +.reveal .controls div.navigate-left.enabled:hover { + border-right-color: #f9b8bb; +} + +/* line 182, source/template/_theme.scss */ +.reveal .controls div.navigate-right.enabled:hover { + border-left-color: #f9b8bb; +} + +/* line 186, source/template/_theme.scss */ +.reveal .controls div.navigate-up.enabled:hover { + border-bottom-color: #f9b8bb; +} + +/* line 190, source/template/_theme.scss */ +.reveal .controls div.navigate-down.enabled:hover { + border-top-color: #f9b8bb; +} + +/********************************************* + * PROGRESS BAR + *********************************************/ +/* line 199, source/template/_theme.scss */ +.reveal .progress { + background: rgba(0, 0, 0, 0.2); +} + +/* line 202, source/template/_theme.scss */ +.reveal .progress span { + background: #01a9b4; + -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); +} + +/********************************************* + * FOOTER + *********************************************/ +/* line 213, source/template/_theme.scss */ +.reveal footer { + position: fixed; + height: 40px; + width: 100%; + bottom: 3px; + left: 0; + z-index: 10; + font-size: 35%; + text-align: right; + background-image: url(../../images/pink-logo.png); + background-repeat: no-repeat; + background-size: auto 100%; +} +/* line 227, source/template/_theme.scss */ +.reveal .copyright { + margin: 15px 5px 0 100px; + font-style: italic; +} +/* line 231, source/template/_theme.scss */ +.reveal .copyright a img { + vertical-align: middle; +} + +/********************************************* + * EVENT + *********************************************/ +/* line 241, source/template/_theme.scss */ +.event__title { + text-transform: uppercase !important; +} diff --git a/css/theme/gdidefault.css b/css/theme/gdidefault.css new file mode 100755 index 0000000..322e705 --- /dev/null +++ b/css/theme/gdidefault.css @@ -0,0 +1,2463 @@ +/*! + * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url("../../fonts/FontAwesome/fontawesome-webfont.eot?v=4.0.3"); + src: url("../../fonts/FontAwesome/fontawesome-webfont.eot?#iefix&v=4.0.3") format("embedded-opentype"), url("../../fonts/FontAwesome/fontawesome-webfont.woff?v=4.0.3") format("woff"), url("../../fonts/FontAwesome/fontawesome-webfont.ttf?v=4.0.3") format("truetype"), url("../../fonts/FontAwesome/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular") format("svg"); + font-weight: normal; + font-style: normal; +} + +/* line 4, source/lib/font-awesome/_core.scss */ +.fa { + display: inline-block; + font-family: FontAwesome !important; + font-style: normal !important; + font-weight: normal !important; + line-height: 1 !important; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* makes the font 33% larger relative to the icon container */ +/* line 5, source/lib/font-awesome/_larger.scss */ +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -15%; +} + +/* line 10, source/lib/font-awesome/_larger.scss */ +.fa-2x { + font-size: 2em; +} + +/* line 11, source/lib/font-awesome/_larger.scss */ +.fa-3x { + font-size: 3em; +} + +/* line 12, source/lib/font-awesome/_larger.scss */ +.fa-4x { + font-size: 4em; +} + +/* line 13, source/lib/font-awesome/_larger.scss */ +.fa-5x { + font-size: 5em; +} + +/* line 3, source/lib/font-awesome/_fixed-width.scss */ +.fa-fw { + width: 1.28571em; + text-align: center; +} + +/* line 4, source/lib/font-awesome/_list.scss */ +.fa-ul { + padding-left: 0; + margin-left: 2.14286em; + list-style-type: none; +} +/* line 8, source/lib/font-awesome/_list.scss */ +.fa-ul > li { + position: relative; +} + +/* line 10, source/lib/font-awesome/_list.scss */ +.fa-li { + position: absolute; + left: -2.14286em; + width: 2.14286em; + top: 0.14286em; + text-align: center; +} +/* line 16, source/lib/font-awesome/_list.scss */ +.fa-li.fa-lg { + left: -1.85714em; +} + +/* line 4, source/lib/font-awesome/_bordered-pulled.scss */ +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} + +/* line 10, source/lib/font-awesome/_bordered-pulled.scss */ +.pull-right { + float: right; +} + +/* line 11, source/lib/font-awesome/_bordered-pulled.scss */ +.pull-left { + float: left; +} + +/* line 14, source/lib/font-awesome/_bordered-pulled.scss */ +.fa.pull-left { + margin-right: .3em; +} +/* line 15, source/lib/font-awesome/_bordered-pulled.scss */ +.fa.pull-right { + margin-left: .3em; +} + +/* line 4, source/lib/font-awesome/_spinning.scss */ +.fa-spin { + -webkit-animation: spin 2s infinite linear; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} + +@-moz-keyframes spin { + /* line 12, source/lib/font-awesome/_spinning.scss */ + 0% { + -moz-transform: rotate(0deg); + } + + /* line 13, source/lib/font-awesome/_spinning.scss */ + 100% { + -moz-transform: rotate(359deg); + } +} + +@-webkit-keyframes spin { + /* line 16, source/lib/font-awesome/_spinning.scss */ + 0% { + -webkit-transform: rotate(0deg); + } + + /* line 17, source/lib/font-awesome/_spinning.scss */ + 100% { + -webkit-transform: rotate(359deg); + } +} + +@-o-keyframes spin { + /* line 20, source/lib/font-awesome/_spinning.scss */ + 0% { + -o-transform: rotate(0deg); + } + + /* line 21, source/lib/font-awesome/_spinning.scss */ + 100% { + -o-transform: rotate(359deg); + } +} + +@-ms-keyframes spin { + /* line 24, source/lib/font-awesome/_spinning.scss */ + 0% { + -ms-transform: rotate(0deg); + } + + /* line 25, source/lib/font-awesome/_spinning.scss */ + 100% { + -ms-transform: rotate(359deg); + } +} + +@keyframes spin { + /* line 28, source/lib/font-awesome/_spinning.scss */ + 0% { + transform: rotate(0deg); + } + + /* line 29, source/lib/font-awesome/_spinning.scss */ + 100% { + transform: rotate(359deg); + } +} + +/* line 4, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); +} + +/* line 5, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); +} + +/* line 6, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); +} + +/* line 8, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: scale(-1, 1); + -moz-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +/* line 9, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: scale(1, -1); + -moz-transform: scale(1, -1); + -ms-transform: scale(1, -1); + -o-transform: scale(1, -1); + transform: scale(1, -1); +} + +/* line 4, source/lib/font-awesome/_stacked.scss */ +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} + +/* line 12, source/lib/font-awesome/_stacked.scss */ +.fa-stack-1x, .fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} + +/* line 18, source/lib/font-awesome/_stacked.scss */ +.fa-stack-1x { + line-height: inherit; +} + +/* line 19, source/lib/font-awesome/_stacked.scss */ +.fa-stack-2x { + font-size: 2em; +} + +/* line 20, source/lib/font-awesome/_stacked.scss */ +.fa-inverse { + color: white; +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +/* line 4, source/lib/font-awesome/_icons.scss */ +.fa-glass:before { + content: "\f000"; +} + +/* line 5, source/lib/font-awesome/_icons.scss */ +.fa-music:before { + content: "\f001"; +} + +/* line 6, source/lib/font-awesome/_icons.scss */ +.fa-search:before { + content: "\f002"; +} + +/* line 7, source/lib/font-awesome/_icons.scss */ +.fa-envelope-o:before { + content: "\f003"; +} + +/* line 8, source/lib/font-awesome/_icons.scss */ +.fa-heart:before { + content: "\f004"; +} + +/* line 9, source/lib/font-awesome/_icons.scss */ +.fa-star:before { + content: "\f005"; +} + +/* line 10, source/lib/font-awesome/_icons.scss */ +.fa-star-o:before { + content: "\f006"; +} + +/* line 11, source/lib/font-awesome/_icons.scss */ +.fa-user:before { + content: "\f007"; +} + +/* line 12, source/lib/font-awesome/_icons.scss */ +.fa-film:before { + content: "\f008"; +} + +/* line 13, source/lib/font-awesome/_icons.scss */ +.fa-th-large:before { + content: "\f009"; +} + +/* line 14, source/lib/font-awesome/_icons.scss */ +.fa-th:before { + content: "\f00a"; +} + +/* line 15, source/lib/font-awesome/_icons.scss */ +.fa-th-list:before { + content: "\f00b"; +} + +/* line 16, source/lib/font-awesome/_icons.scss */ +.fa-check:before { + content: "\f00c"; +} + +/* line 17, source/lib/font-awesome/_icons.scss */ +.fa-times:before { + content: "\f00d"; +} + +/* line 18, source/lib/font-awesome/_icons.scss */ +.fa-search-plus:before { + content: "\f00e"; +} + +/* line 19, source/lib/font-awesome/_icons.scss */ +.fa-search-minus:before { + content: "\f010"; +} + +/* line 20, source/lib/font-awesome/_icons.scss */ +.fa-power-off:before { + content: "\f011"; +} + +/* line 21, source/lib/font-awesome/_icons.scss */ +.fa-signal:before { + content: "\f012"; +} + +/* line 23, source/lib/font-awesome/_icons.scss */ +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} + +/* line 24, source/lib/font-awesome/_icons.scss */ +.fa-trash-o:before { + content: "\f014"; +} + +/* line 25, source/lib/font-awesome/_icons.scss */ +.fa-home:before { + content: "\f015"; +} + +/* line 26, source/lib/font-awesome/_icons.scss */ +.fa-file-o:before { + content: "\f016"; +} + +/* line 27, source/lib/font-awesome/_icons.scss */ +.fa-clock-o:before { + content: "\f017"; +} + +/* line 28, source/lib/font-awesome/_icons.scss */ +.fa-road:before { + content: "\f018"; +} + +/* line 29, source/lib/font-awesome/_icons.scss */ +.fa-download:before { + content: "\f019"; +} + +/* line 30, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} + +/* line 31, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} + +/* line 32, source/lib/font-awesome/_icons.scss */ +.fa-inbox:before { + content: "\f01c"; +} + +/* line 33, source/lib/font-awesome/_icons.scss */ +.fa-play-circle-o:before { + content: "\f01d"; +} + +/* line 35, source/lib/font-awesome/_icons.scss */ +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} + +/* line 36, source/lib/font-awesome/_icons.scss */ +.fa-refresh:before { + content: "\f021"; +} + +/* line 37, source/lib/font-awesome/_icons.scss */ +.fa-list-alt:before { + content: "\f022"; +} + +/* line 38, source/lib/font-awesome/_icons.scss */ +.fa-lock:before { + content: "\f023"; +} + +/* line 39, source/lib/font-awesome/_icons.scss */ +.fa-flag:before { + content: "\f024"; +} + +/* line 40, source/lib/font-awesome/_icons.scss */ +.fa-headphones:before { + content: "\f025"; +} + +/* line 41, source/lib/font-awesome/_icons.scss */ +.fa-volume-off:before { + content: "\f026"; +} + +/* line 42, source/lib/font-awesome/_icons.scss */ +.fa-volume-down:before { + content: "\f027"; +} + +/* line 43, source/lib/font-awesome/_icons.scss */ +.fa-volume-up:before { + content: "\f028"; +} + +/* line 44, source/lib/font-awesome/_icons.scss */ +.fa-qrcode:before { + content: "\f029"; +} + +/* line 45, source/lib/font-awesome/_icons.scss */ +.fa-barcode:before { + content: "\f02a"; +} + +/* line 46, source/lib/font-awesome/_icons.scss */ +.fa-tag:before { + content: "\f02b"; +} + +/* line 47, source/lib/font-awesome/_icons.scss */ +.fa-tags:before { + content: "\f02c"; +} + +/* line 48, source/lib/font-awesome/_icons.scss */ +.fa-book:before { + content: "\f02d"; +} + +/* line 49, source/lib/font-awesome/_icons.scss */ +.fa-bookmark:before { + content: "\f02e"; +} + +/* line 50, source/lib/font-awesome/_icons.scss */ +.fa-print:before { + content: "\f02f"; +} + +/* line 51, source/lib/font-awesome/_icons.scss */ +.fa-camera:before { + content: "\f030"; +} + +/* line 52, source/lib/font-awesome/_icons.scss */ +.fa-font:before { + content: "\f031"; +} + +/* line 53, source/lib/font-awesome/_icons.scss */ +.fa-bold:before { + content: "\f032"; +} + +/* line 54, source/lib/font-awesome/_icons.scss */ +.fa-italic:before { + content: "\f033"; +} + +/* line 55, source/lib/font-awesome/_icons.scss */ +.fa-text-height:before { + content: "\f034"; +} + +/* line 56, source/lib/font-awesome/_icons.scss */ +.fa-text-width:before { + content: "\f035"; +} + +/* line 57, source/lib/font-awesome/_icons.scss */ +.fa-align-left:before { + content: "\f036"; +} + +/* line 58, source/lib/font-awesome/_icons.scss */ +.fa-align-center:before { + content: "\f037"; +} + +/* line 59, source/lib/font-awesome/_icons.scss */ +.fa-align-right:before { + content: "\f038"; +} + +/* line 60, source/lib/font-awesome/_icons.scss */ +.fa-align-justify:before { + content: "\f039"; +} + +/* line 61, source/lib/font-awesome/_icons.scss */ +.fa-list:before { + content: "\f03a"; +} + +/* line 63, source/lib/font-awesome/_icons.scss */ +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} + +/* line 64, source/lib/font-awesome/_icons.scss */ +.fa-indent:before { + content: "\f03c"; +} + +/* line 65, source/lib/font-awesome/_icons.scss */ +.fa-video-camera:before { + content: "\f03d"; +} + +/* line 66, source/lib/font-awesome/_icons.scss */ +.fa-picture-o:before { + content: "\f03e"; +} + +/* line 67, source/lib/font-awesome/_icons.scss */ +.fa-pencil:before { + content: "\f040"; +} + +/* line 68, source/lib/font-awesome/_icons.scss */ +.fa-map-marker:before { + content: "\f041"; +} + +/* line 69, source/lib/font-awesome/_icons.scss */ +.fa-adjust:before { + content: "\f042"; +} + +/* line 70, source/lib/font-awesome/_icons.scss */ +.fa-tint:before { + content: "\f043"; +} + +/* line 72, source/lib/font-awesome/_icons.scss */ +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} + +/* line 73, source/lib/font-awesome/_icons.scss */ +.fa-share-square-o:before { + content: "\f045"; +} + +/* line 74, source/lib/font-awesome/_icons.scss */ +.fa-check-square-o:before { + content: "\f046"; +} + +/* line 75, source/lib/font-awesome/_icons.scss */ +.fa-arrows:before { + content: "\f047"; +} + +/* line 76, source/lib/font-awesome/_icons.scss */ +.fa-step-backward:before { + content: "\f048"; +} + +/* line 77, source/lib/font-awesome/_icons.scss */ +.fa-fast-backward:before { + content: "\f049"; +} + +/* line 78, source/lib/font-awesome/_icons.scss */ +.fa-backward:before { + content: "\f04a"; +} + +/* line 79, source/lib/font-awesome/_icons.scss */ +.fa-play:before { + content: "\f04b"; +} + +/* line 80, source/lib/font-awesome/_icons.scss */ +.fa-pause:before { + content: "\f04c"; +} + +/* line 81, source/lib/font-awesome/_icons.scss */ +.fa-stop:before { + content: "\f04d"; +} + +/* line 82, source/lib/font-awesome/_icons.scss */ +.fa-forward:before { + content: "\f04e"; +} + +/* line 83, source/lib/font-awesome/_icons.scss */ +.fa-fast-forward:before { + content: "\f050"; +} + +/* line 84, source/lib/font-awesome/_icons.scss */ +.fa-step-forward:before { + content: "\f051"; +} + +/* line 85, source/lib/font-awesome/_icons.scss */ +.fa-eject:before { + content: "\f052"; +} + +/* line 86, source/lib/font-awesome/_icons.scss */ +.fa-chevron-left:before { + content: "\f053"; +} + +/* line 87, source/lib/font-awesome/_icons.scss */ +.fa-chevron-right:before { + content: "\f054"; +} + +/* line 88, source/lib/font-awesome/_icons.scss */ +.fa-plus-circle:before { + content: "\f055"; +} + +/* line 89, source/lib/font-awesome/_icons.scss */ +.fa-minus-circle:before { + content: "\f056"; +} + +/* line 90, source/lib/font-awesome/_icons.scss */ +.fa-times-circle:before { + content: "\f057"; +} + +/* line 91, source/lib/font-awesome/_icons.scss */ +.fa-check-circle:before { + content: "\f058"; +} + +/* line 92, source/lib/font-awesome/_icons.scss */ +.fa-question-circle:before { + content: "\f059"; +} + +/* line 93, source/lib/font-awesome/_icons.scss */ +.fa-info-circle:before { + content: "\f05a"; +} + +/* line 94, source/lib/font-awesome/_icons.scss */ +.fa-crosshairs:before { + content: "\f05b"; +} + +/* line 95, source/lib/font-awesome/_icons.scss */ +.fa-times-circle-o:before { + content: "\f05c"; +} + +/* line 96, source/lib/font-awesome/_icons.scss */ +.fa-check-circle-o:before { + content: "\f05d"; +} + +/* line 97, source/lib/font-awesome/_icons.scss */ +.fa-ban:before { + content: "\f05e"; +} + +/* line 98, source/lib/font-awesome/_icons.scss */ +.fa-arrow-left:before { + content: "\f060"; +} + +/* line 99, source/lib/font-awesome/_icons.scss */ +.fa-arrow-right:before { + content: "\f061"; +} + +/* line 100, source/lib/font-awesome/_icons.scss */ +.fa-arrow-up:before { + content: "\f062"; +} + +/* line 101, source/lib/font-awesome/_icons.scss */ +.fa-arrow-down:before { + content: "\f063"; +} + +/* line 103, source/lib/font-awesome/_icons.scss */ +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} + +/* line 104, source/lib/font-awesome/_icons.scss */ +.fa-expand:before { + content: "\f065"; +} + +/* line 105, source/lib/font-awesome/_icons.scss */ +.fa-compress:before { + content: "\f066"; +} + +/* line 106, source/lib/font-awesome/_icons.scss */ +.fa-plus:before { + content: "\f067"; +} + +/* line 107, source/lib/font-awesome/_icons.scss */ +.fa-minus:before { + content: "\f068"; +} + +/* line 108, source/lib/font-awesome/_icons.scss */ +.fa-asterisk:before { + content: "\f069"; +} + +/* line 109, source/lib/font-awesome/_icons.scss */ +.fa-exclamation-circle:before { + content: "\f06a"; +} + +/* line 110, source/lib/font-awesome/_icons.scss */ +.fa-gift:before { + content: "\f06b"; +} + +/* line 111, source/lib/font-awesome/_icons.scss */ +.fa-leaf:before { + content: "\f06c"; +} + +/* line 112, source/lib/font-awesome/_icons.scss */ +.fa-fire:before { + content: "\f06d"; +} + +/* line 113, source/lib/font-awesome/_icons.scss */ +.fa-eye:before { + content: "\f06e"; +} + +/* line 114, source/lib/font-awesome/_icons.scss */ +.fa-eye-slash:before { + content: "\f070"; +} + +/* line 116, source/lib/font-awesome/_icons.scss */ +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} + +/* line 117, source/lib/font-awesome/_icons.scss */ +.fa-plane:before { + content: "\f072"; +} + +/* line 118, source/lib/font-awesome/_icons.scss */ +.fa-calendar:before { + content: "\f073"; +} + +/* line 119, source/lib/font-awesome/_icons.scss */ +.fa-random:before { + content: "\f074"; +} + +/* line 120, source/lib/font-awesome/_icons.scss */ +.fa-comment:before { + content: "\f075"; +} + +/* line 121, source/lib/font-awesome/_icons.scss */ +.fa-magnet:before { + content: "\f076"; +} + +/* line 122, source/lib/font-awesome/_icons.scss */ +.fa-chevron-up:before { + content: "\f077"; +} + +/* line 123, source/lib/font-awesome/_icons.scss */ +.fa-chevron-down:before { + content: "\f078"; +} + +/* line 124, source/lib/font-awesome/_icons.scss */ +.fa-retweet:before { + content: "\f079"; +} + +/* line 125, source/lib/font-awesome/_icons.scss */ +.fa-shopping-cart:before { + content: "\f07a"; +} + +/* line 126, source/lib/font-awesome/_icons.scss */ +.fa-folder:before { + content: "\f07b"; +} + +/* line 127, source/lib/font-awesome/_icons.scss */ +.fa-folder-open:before { + content: "\f07c"; +} + +/* line 128, source/lib/font-awesome/_icons.scss */ +.fa-arrows-v:before { + content: "\f07d"; +} + +/* line 129, source/lib/font-awesome/_icons.scss */ +.fa-arrows-h:before { + content: "\f07e"; +} + +/* line 130, source/lib/font-awesome/_icons.scss */ +.fa-bar-chart-o:before { + content: "\f080"; +} + +/* line 131, source/lib/font-awesome/_icons.scss */ +.fa-twitter-square:before { + content: "\f081"; +} + +/* line 132, source/lib/font-awesome/_icons.scss */ +.fa-facebook-square:before { + content: "\f082"; +} + +/* line 133, source/lib/font-awesome/_icons.scss */ +.fa-camera-retro:before { + content: "\f083"; +} + +/* line 134, source/lib/font-awesome/_icons.scss */ +.fa-key:before { + content: "\f084"; +} + +/* line 136, source/lib/font-awesome/_icons.scss */ +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} + +/* line 137, source/lib/font-awesome/_icons.scss */ +.fa-comments:before { + content: "\f086"; +} + +/* line 138, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-o-up:before { + content: "\f087"; +} + +/* line 139, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-o-down:before { + content: "\f088"; +} + +/* line 140, source/lib/font-awesome/_icons.scss */ +.fa-star-half:before { + content: "\f089"; +} + +/* line 141, source/lib/font-awesome/_icons.scss */ +.fa-heart-o:before { + content: "\f08a"; +} + +/* line 142, source/lib/font-awesome/_icons.scss */ +.fa-sign-out:before { + content: "\f08b"; +} + +/* line 143, source/lib/font-awesome/_icons.scss */ +.fa-linkedin-square:before { + content: "\f08c"; +} + +/* line 144, source/lib/font-awesome/_icons.scss */ +.fa-thumb-tack:before { + content: "\f08d"; +} + +/* line 145, source/lib/font-awesome/_icons.scss */ +.fa-external-link:before { + content: "\f08e"; +} + +/* line 146, source/lib/font-awesome/_icons.scss */ +.fa-sign-in:before { + content: "\f090"; +} + +/* line 147, source/lib/font-awesome/_icons.scss */ +.fa-trophy:before { + content: "\f091"; +} + +/* line 148, source/lib/font-awesome/_icons.scss */ +.fa-github-square:before { + content: "\f092"; +} + +/* line 149, source/lib/font-awesome/_icons.scss */ +.fa-upload:before { + content: "\f093"; +} + +/* line 150, source/lib/font-awesome/_icons.scss */ +.fa-lemon-o:before { + content: "\f094"; +} + +/* line 151, source/lib/font-awesome/_icons.scss */ +.fa-phone:before { + content: "\f095"; +} + +/* line 152, source/lib/font-awesome/_icons.scss */ +.fa-square-o:before { + content: "\f096"; +} + +/* line 153, source/lib/font-awesome/_icons.scss */ +.fa-bookmark-o:before { + content: "\f097"; +} + +/* line 154, source/lib/font-awesome/_icons.scss */ +.fa-phone-square:before { + content: "\f098"; +} + +/* line 155, source/lib/font-awesome/_icons.scss */ +.fa-twitter:before { + content: "\f099"; +} + +/* line 156, source/lib/font-awesome/_icons.scss */ +.fa-facebook:before { + content: "\f09a"; +} + +/* line 157, source/lib/font-awesome/_icons.scss */ +.fa-github:before { + content: "\f09b"; +} + +/* line 158, source/lib/font-awesome/_icons.scss */ +.fa-unlock:before { + content: "\f09c"; +} + +/* line 159, source/lib/font-awesome/_icons.scss */ +.fa-credit-card:before { + content: "\f09d"; +} + +/* line 160, source/lib/font-awesome/_icons.scss */ +.fa-rss:before { + content: "\f09e"; +} + +/* line 161, source/lib/font-awesome/_icons.scss */ +.fa-hdd-o:before { + content: "\f0a0"; +} + +/* line 162, source/lib/font-awesome/_icons.scss */ +.fa-bullhorn:before { + content: "\f0a1"; +} + +/* line 163, source/lib/font-awesome/_icons.scss */ +.fa-bell:before { + content: "\f0f3"; +} + +/* line 164, source/lib/font-awesome/_icons.scss */ +.fa-certificate:before { + content: "\f0a3"; +} + +/* line 165, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-right:before { + content: "\f0a4"; +} + +/* line 166, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-left:before { + content: "\f0a5"; +} + +/* line 167, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-up:before { + content: "\f0a6"; +} + +/* line 168, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-down:before { + content: "\f0a7"; +} + +/* line 169, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-left:before { + content: "\f0a8"; +} + +/* line 170, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-right:before { + content: "\f0a9"; +} + +/* line 171, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-up:before { + content: "\f0aa"; +} + +/* line 172, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-down:before { + content: "\f0ab"; +} + +/* line 173, source/lib/font-awesome/_icons.scss */ +.fa-globe:before { + content: "\f0ac"; +} + +/* line 174, source/lib/font-awesome/_icons.scss */ +.fa-wrench:before { + content: "\f0ad"; +} + +/* line 175, source/lib/font-awesome/_icons.scss */ +.fa-tasks:before { + content: "\f0ae"; +} + +/* line 176, source/lib/font-awesome/_icons.scss */ +.fa-filter:before { + content: "\f0b0"; +} + +/* line 177, source/lib/font-awesome/_icons.scss */ +.fa-briefcase:before { + content: "\f0b1"; +} + +/* line 178, source/lib/font-awesome/_icons.scss */ +.fa-arrows-alt:before { + content: "\f0b2"; +} + +/* line 180, source/lib/font-awesome/_icons.scss */ +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} + +/* line 182, source/lib/font-awesome/_icons.scss */ +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} + +/* line 183, source/lib/font-awesome/_icons.scss */ +.fa-cloud:before { + content: "\f0c2"; +} + +/* line 184, source/lib/font-awesome/_icons.scss */ +.fa-flask:before { + content: "\f0c3"; +} + +/* line 186, source/lib/font-awesome/_icons.scss */ +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} + +/* line 188, source/lib/font-awesome/_icons.scss */ +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} + +/* line 189, source/lib/font-awesome/_icons.scss */ +.fa-paperclip:before { + content: "\f0c6"; +} + +/* line 191, source/lib/font-awesome/_icons.scss */ +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} + +/* line 192, source/lib/font-awesome/_icons.scss */ +.fa-square:before { + content: "\f0c8"; +} + +/* line 193, source/lib/font-awesome/_icons.scss */ +.fa-bars:before { + content: "\f0c9"; +} + +/* line 194, source/lib/font-awesome/_icons.scss */ +.fa-list-ul:before { + content: "\f0ca"; +} + +/* line 195, source/lib/font-awesome/_icons.scss */ +.fa-list-ol:before { + content: "\f0cb"; +} + +/* line 196, source/lib/font-awesome/_icons.scss */ +.fa-strikethrough:before { + content: "\f0cc"; +} + +/* line 197, source/lib/font-awesome/_icons.scss */ +.fa-underline:before { + content: "\f0cd"; +} + +/* line 198, source/lib/font-awesome/_icons.scss */ +.fa-table:before { + content: "\f0ce"; +} + +/* line 199, source/lib/font-awesome/_icons.scss */ +.fa-magic:before { + content: "\f0d0"; +} + +/* line 200, source/lib/font-awesome/_icons.scss */ +.fa-truck:before { + content: "\f0d1"; +} + +/* line 201, source/lib/font-awesome/_icons.scss */ +.fa-pinterest:before { + content: "\f0d2"; +} + +/* line 202, source/lib/font-awesome/_icons.scss */ +.fa-pinterest-square:before { + content: "\f0d3"; +} + +/* line 203, source/lib/font-awesome/_icons.scss */ +.fa-google-plus-square:before { + content: "\f0d4"; +} + +/* line 204, source/lib/font-awesome/_icons.scss */ +.fa-google-plus:before { + content: "\f0d5"; +} + +/* line 205, source/lib/font-awesome/_icons.scss */ +.fa-money:before { + content: "\f0d6"; +} + +/* line 206, source/lib/font-awesome/_icons.scss */ +.fa-caret-down:before { + content: "\f0d7"; +} + +/* line 207, source/lib/font-awesome/_icons.scss */ +.fa-caret-up:before { + content: "\f0d8"; +} + +/* line 208, source/lib/font-awesome/_icons.scss */ +.fa-caret-left:before { + content: "\f0d9"; +} + +/* line 209, source/lib/font-awesome/_icons.scss */ +.fa-caret-right:before { + content: "\f0da"; +} + +/* line 210, source/lib/font-awesome/_icons.scss */ +.fa-columns:before { + content: "\f0db"; +} + +/* line 212, source/lib/font-awesome/_icons.scss */ +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} + +/* line 214, source/lib/font-awesome/_icons.scss */ +.fa-sort-down:before, +.fa-sort-asc:before { + content: "\f0dd"; +} + +/* line 216, source/lib/font-awesome/_icons.scss */ +.fa-sort-up:before, +.fa-sort-desc:before { + content: "\f0de"; +} + +/* line 217, source/lib/font-awesome/_icons.scss */ +.fa-envelope:before { + content: "\f0e0"; +} + +/* line 218, source/lib/font-awesome/_icons.scss */ +.fa-linkedin:before { + content: "\f0e1"; +} + +/* line 220, source/lib/font-awesome/_icons.scss */ +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} + +/* line 222, source/lib/font-awesome/_icons.scss */ +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} + +/* line 224, source/lib/font-awesome/_icons.scss */ +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} + +/* line 225, source/lib/font-awesome/_icons.scss */ +.fa-comment-o:before { + content: "\f0e5"; +} + +/* line 226, source/lib/font-awesome/_icons.scss */ +.fa-comments-o:before { + content: "\f0e6"; +} + +/* line 228, source/lib/font-awesome/_icons.scss */ +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} + +/* line 229, source/lib/font-awesome/_icons.scss */ +.fa-sitemap:before { + content: "\f0e8"; +} + +/* line 230, source/lib/font-awesome/_icons.scss */ +.fa-umbrella:before { + content: "\f0e9"; +} + +/* line 232, source/lib/font-awesome/_icons.scss */ +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} + +/* line 233, source/lib/font-awesome/_icons.scss */ +.fa-lightbulb-o:before { + content: "\f0eb"; +} + +/* line 234, source/lib/font-awesome/_icons.scss */ +.fa-exchange:before { + content: "\f0ec"; +} + +/* line 235, source/lib/font-awesome/_icons.scss */ +.fa-cloud-download:before { + content: "\f0ed"; +} + +/* line 236, source/lib/font-awesome/_icons.scss */ +.fa-cloud-upload:before { + content: "\f0ee"; +} + +/* line 237, source/lib/font-awesome/_icons.scss */ +.fa-user-md:before { + content: "\f0f0"; +} + +/* line 238, source/lib/font-awesome/_icons.scss */ +.fa-stethoscope:before { + content: "\f0f1"; +} + +/* line 239, source/lib/font-awesome/_icons.scss */ +.fa-suitcase:before { + content: "\f0f2"; +} + +/* line 240, source/lib/font-awesome/_icons.scss */ +.fa-bell-o:before { + content: "\f0a2"; +} + +/* line 241, source/lib/font-awesome/_icons.scss */ +.fa-coffee:before { + content: "\f0f4"; +} + +/* line 242, source/lib/font-awesome/_icons.scss */ +.fa-cutlery:before { + content: "\f0f5"; +} + +/* line 243, source/lib/font-awesome/_icons.scss */ +.fa-file-text-o:before { + content: "\f0f6"; +} + +/* line 244, source/lib/font-awesome/_icons.scss */ +.fa-building-o:before { + content: "\f0f7"; +} + +/* line 245, source/lib/font-awesome/_icons.scss */ +.fa-hospital-o:before { + content: "\f0f8"; +} + +/* line 246, source/lib/font-awesome/_icons.scss */ +.fa-ambulance:before { + content: "\f0f9"; +} + +/* line 247, source/lib/font-awesome/_icons.scss */ +.fa-medkit:before { + content: "\f0fa"; +} + +/* line 248, source/lib/font-awesome/_icons.scss */ +.fa-fighter-jet:before { + content: "\f0fb"; +} + +/* line 249, source/lib/font-awesome/_icons.scss */ +.fa-beer:before { + content: "\f0fc"; +} + +/* line 250, source/lib/font-awesome/_icons.scss */ +.fa-h-square:before { + content: "\f0fd"; +} + +/* line 251, source/lib/font-awesome/_icons.scss */ +.fa-plus-square:before { + content: "\f0fe"; +} + +/* line 252, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-left:before { + content: "\f100"; +} + +/* line 253, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-right:before { + content: "\f101"; +} + +/* line 254, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-up:before { + content: "\f102"; +} + +/* line 255, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-down:before { + content: "\f103"; +} + +/* line 256, source/lib/font-awesome/_icons.scss */ +.fa-angle-left:before { + content: "\f104"; +} + +/* line 257, source/lib/font-awesome/_icons.scss */ +.fa-angle-right:before { + content: "\f105"; +} + +/* line 258, source/lib/font-awesome/_icons.scss */ +.fa-angle-up:before { + content: "\f106"; +} + +/* line 259, source/lib/font-awesome/_icons.scss */ +.fa-angle-down:before { + content: "\f107"; +} + +/* line 260, source/lib/font-awesome/_icons.scss */ +.fa-desktop:before { + content: "\f108"; +} + +/* line 261, source/lib/font-awesome/_icons.scss */ +.fa-laptop:before { + content: "\f109"; +} + +/* line 262, source/lib/font-awesome/_icons.scss */ +.fa-tablet:before { + content: "\f10a"; +} + +/* line 264, source/lib/font-awesome/_icons.scss */ +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} + +/* line 265, source/lib/font-awesome/_icons.scss */ +.fa-circle-o:before { + content: "\f10c"; +} + +/* line 266, source/lib/font-awesome/_icons.scss */ +.fa-quote-left:before { + content: "\f10d"; +} + +/* line 267, source/lib/font-awesome/_icons.scss */ +.fa-quote-right:before { + content: "\f10e"; +} + +/* line 268, source/lib/font-awesome/_icons.scss */ +.fa-spinner:before { + content: "\f110"; +} + +/* line 269, source/lib/font-awesome/_icons.scss */ +.fa-circle:before { + content: "\f111"; +} + +/* line 271, source/lib/font-awesome/_icons.scss */ +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} + +/* line 272, source/lib/font-awesome/_icons.scss */ +.fa-github-alt:before { + content: "\f113"; +} + +/* line 273, source/lib/font-awesome/_icons.scss */ +.fa-folder-o:before { + content: "\f114"; +} + +/* line 274, source/lib/font-awesome/_icons.scss */ +.fa-folder-open-o:before { + content: "\f115"; +} + +/* line 275, source/lib/font-awesome/_icons.scss */ +.fa-smile-o:before { + content: "\f118"; +} + +/* line 276, source/lib/font-awesome/_icons.scss */ +.fa-frown-o:before { + content: "\f119"; +} + +/* line 277, source/lib/font-awesome/_icons.scss */ +.fa-meh-o:before { + content: "\f11a"; +} + +/* line 278, source/lib/font-awesome/_icons.scss */ +.fa-gamepad:before { + content: "\f11b"; +} + +/* line 279, source/lib/font-awesome/_icons.scss */ +.fa-keyboard-o:before { + content: "\f11c"; +} + +/* line 280, source/lib/font-awesome/_icons.scss */ +.fa-flag-o:before { + content: "\f11d"; +} + +/* line 281, source/lib/font-awesome/_icons.scss */ +.fa-flag-checkered:before { + content: "\f11e"; +} + +/* line 282, source/lib/font-awesome/_icons.scss */ +.fa-terminal:before { + content: "\f120"; +} + +/* line 283, source/lib/font-awesome/_icons.scss */ +.fa-code:before { + content: "\f121"; +} + +/* line 284, source/lib/font-awesome/_icons.scss */ +.fa-reply-all:before { + content: "\f122"; +} + +/* line 285, source/lib/font-awesome/_icons.scss */ +.fa-mail-reply-all:before { + content: "\f122"; +} + +/* line 288, source/lib/font-awesome/_icons.scss */ +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} + +/* line 289, source/lib/font-awesome/_icons.scss */ +.fa-location-arrow:before { + content: "\f124"; +} + +/* line 290, source/lib/font-awesome/_icons.scss */ +.fa-crop:before { + content: "\f125"; +} + +/* line 291, source/lib/font-awesome/_icons.scss */ +.fa-code-fork:before { + content: "\f126"; +} + +/* line 293, source/lib/font-awesome/_icons.scss */ +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} + +/* line 294, source/lib/font-awesome/_icons.scss */ +.fa-question:before { + content: "\f128"; +} + +/* line 295, source/lib/font-awesome/_icons.scss */ +.fa-info:before { + content: "\f129"; +} + +/* line 296, source/lib/font-awesome/_icons.scss */ +.fa-exclamation:before { + content: "\f12a"; +} + +/* line 297, source/lib/font-awesome/_icons.scss */ +.fa-superscript:before { + content: "\f12b"; +} + +/* line 298, source/lib/font-awesome/_icons.scss */ +.fa-subscript:before { + content: "\f12c"; +} + +/* line 299, source/lib/font-awesome/_icons.scss */ +.fa-eraser:before { + content: "\f12d"; +} + +/* line 300, source/lib/font-awesome/_icons.scss */ +.fa-puzzle-piece:before { + content: "\f12e"; +} + +/* line 301, source/lib/font-awesome/_icons.scss */ +.fa-microphone:before { + content: "\f130"; +} + +/* line 302, source/lib/font-awesome/_icons.scss */ +.fa-microphone-slash:before { + content: "\f131"; +} + +/* line 303, source/lib/font-awesome/_icons.scss */ +.fa-shield:before { + content: "\f132"; +} + +/* line 304, source/lib/font-awesome/_icons.scss */ +.fa-calendar-o:before { + content: "\f133"; +} + +/* line 305, source/lib/font-awesome/_icons.scss */ +.fa-fire-extinguisher:before { + content: "\f134"; +} + +/* line 306, source/lib/font-awesome/_icons.scss */ +.fa-rocket:before { + content: "\f135"; +} + +/* line 307, source/lib/font-awesome/_icons.scss */ +.fa-maxcdn:before { + content: "\f136"; +} + +/* line 308, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-left:before { + content: "\f137"; +} + +/* line 309, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-right:before { + content: "\f138"; +} + +/* line 310, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-up:before { + content: "\f139"; +} + +/* line 311, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-down:before { + content: "\f13a"; +} + +/* line 312, source/lib/font-awesome/_icons.scss */ +.fa-html5:before { + content: "\f13b"; +} + +/* line 313, source/lib/font-awesome/_icons.scss */ +.fa-css3:before { + content: "\f13c"; +} + +/* line 314, source/lib/font-awesome/_icons.scss */ +.fa-anchor:before { + content: "\f13d"; +} + +/* line 315, source/lib/font-awesome/_icons.scss */ +.fa-unlock-alt:before { + content: "\f13e"; +} + +/* line 316, source/lib/font-awesome/_icons.scss */ +.fa-bullseye:before { + content: "\f140"; +} + +/* line 317, source/lib/font-awesome/_icons.scss */ +.fa-ellipsis-h:before { + content: "\f141"; +} + +/* line 318, source/lib/font-awesome/_icons.scss */ +.fa-ellipsis-v:before { + content: "\f142"; +} + +/* line 319, source/lib/font-awesome/_icons.scss */ +.fa-rss-square:before { + content: "\f143"; +} + +/* line 320, source/lib/font-awesome/_icons.scss */ +.fa-play-circle:before { + content: "\f144"; +} + +/* line 321, source/lib/font-awesome/_icons.scss */ +.fa-ticket:before { + content: "\f145"; +} + +/* line 322, source/lib/font-awesome/_icons.scss */ +.fa-minus-square:before { + content: "\f146"; +} + +/* line 323, source/lib/font-awesome/_icons.scss */ +.fa-minus-square-o:before { + content: "\f147"; +} + +/* line 324, source/lib/font-awesome/_icons.scss */ +.fa-level-up:before { + content: "\f148"; +} + +/* line 325, source/lib/font-awesome/_icons.scss */ +.fa-level-down:before { + content: "\f149"; +} + +/* line 326, source/lib/font-awesome/_icons.scss */ +.fa-check-square:before { + content: "\f14a"; +} + +/* line 327, source/lib/font-awesome/_icons.scss */ +.fa-pencil-square:before { + content: "\f14b"; +} + +/* line 328, source/lib/font-awesome/_icons.scss */ +.fa-external-link-square:before { + content: "\f14c"; +} + +/* line 329, source/lib/font-awesome/_icons.scss */ +.fa-share-square:before { + content: "\f14d"; +} + +/* line 330, source/lib/font-awesome/_icons.scss */ +.fa-compass:before { + content: "\f14e"; +} + +/* line 332, source/lib/font-awesome/_icons.scss */ +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} + +/* line 334, source/lib/font-awesome/_icons.scss */ +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} + +/* line 336, source/lib/font-awesome/_icons.scss */ +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} + +/* line 338, source/lib/font-awesome/_icons.scss */ +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} + +/* line 339, source/lib/font-awesome/_icons.scss */ +.fa-gbp:before { + content: "\f154"; +} + +/* line 341, source/lib/font-awesome/_icons.scss */ +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} + +/* line 343, source/lib/font-awesome/_icons.scss */ +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} + +/* line 347, source/lib/font-awesome/_icons.scss */ +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} + +/* line 350, source/lib/font-awesome/_icons.scss */ +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} + +/* line 352, source/lib/font-awesome/_icons.scss */ +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} + +/* line 354, source/lib/font-awesome/_icons.scss */ +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} + +/* line 355, source/lib/font-awesome/_icons.scss */ +.fa-file:before { + content: "\f15b"; +} + +/* line 356, source/lib/font-awesome/_icons.scss */ +.fa-file-text:before { + content: "\f15c"; +} + +/* line 357, source/lib/font-awesome/_icons.scss */ +.fa-sort-alpha-asc:before { + content: "\f15d"; +} + +/* line 358, source/lib/font-awesome/_icons.scss */ +.fa-sort-alpha-desc:before { + content: "\f15e"; +} + +/* line 359, source/lib/font-awesome/_icons.scss */ +.fa-sort-amount-asc:before { + content: "\f160"; +} + +/* line 360, source/lib/font-awesome/_icons.scss */ +.fa-sort-amount-desc:before { + content: "\f161"; +} + +/* line 361, source/lib/font-awesome/_icons.scss */ +.fa-sort-numeric-asc:before { + content: "\f162"; +} + +/* line 362, source/lib/font-awesome/_icons.scss */ +.fa-sort-numeric-desc:before { + content: "\f163"; +} + +/* line 363, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-up:before { + content: "\f164"; +} + +/* line 364, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-down:before { + content: "\f165"; +} + +/* line 365, source/lib/font-awesome/_icons.scss */ +.fa-youtube-square:before { + content: "\f166"; +} + +/* line 366, source/lib/font-awesome/_icons.scss */ +.fa-youtube:before { + content: "\f167"; +} + +/* line 367, source/lib/font-awesome/_icons.scss */ +.fa-xing:before { + content: "\f168"; +} + +/* line 368, source/lib/font-awesome/_icons.scss */ +.fa-xing-square:before { + content: "\f169"; +} + +/* line 369, source/lib/font-awesome/_icons.scss */ +.fa-youtube-play:before { + content: "\f16a"; +} + +/* line 370, source/lib/font-awesome/_icons.scss */ +.fa-dropbox:before { + content: "\f16b"; +} + +/* line 371, source/lib/font-awesome/_icons.scss */ +.fa-stack-overflow:before { + content: "\f16c"; +} + +/* line 372, source/lib/font-awesome/_icons.scss */ +.fa-instagram:before { + content: "\f16d"; +} + +/* line 373, source/lib/font-awesome/_icons.scss */ +.fa-flickr:before { + content: "\f16e"; +} + +/* line 374, source/lib/font-awesome/_icons.scss */ +.fa-adn:before { + content: "\f170"; +} + +/* line 375, source/lib/font-awesome/_icons.scss */ +.fa-bitbucket:before { + content: "\f171"; +} + +/* line 376, source/lib/font-awesome/_icons.scss */ +.fa-bitbucket-square:before { + content: "\f172"; +} + +/* line 377, source/lib/font-awesome/_icons.scss */ +.fa-tumblr:before { + content: "\f173"; +} + +/* line 378, source/lib/font-awesome/_icons.scss */ +.fa-tumblr-square:before { + content: "\f174"; +} + +/* line 379, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-down:before { + content: "\f175"; +} + +/* line 380, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-up:before { + content: "\f176"; +} + +/* line 381, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-left:before { + content: "\f177"; +} + +/* line 382, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-right:before { + content: "\f178"; +} + +/* line 383, source/lib/font-awesome/_icons.scss */ +.fa-apple:before { + content: "\f179"; +} + +/* line 384, source/lib/font-awesome/_icons.scss */ +.fa-windows:before { + content: "\f17a"; +} + +/* line 385, source/lib/font-awesome/_icons.scss */ +.fa-android:before { + content: "\f17b"; +} + +/* line 386, source/lib/font-awesome/_icons.scss */ +.fa-linux:before { + content: "\f17c"; +} + +/* line 387, source/lib/font-awesome/_icons.scss */ +.fa-dribbble:before { + content: "\f17d"; +} + +/* line 388, source/lib/font-awesome/_icons.scss */ +.fa-skype:before { + content: "\f17e"; +} + +/* line 389, source/lib/font-awesome/_icons.scss */ +.fa-foursquare:before { + content: "\f180"; +} + +/* line 390, source/lib/font-awesome/_icons.scss */ +.fa-trello:before { + content: "\f181"; +} + +/* line 391, source/lib/font-awesome/_icons.scss */ +.fa-female:before { + content: "\f182"; +} + +/* line 392, source/lib/font-awesome/_icons.scss */ +.fa-male:before { + content: "\f183"; +} + +/* line 393, source/lib/font-awesome/_icons.scss */ +.fa-gittip:before { + content: "\f184"; +} + +/* line 394, source/lib/font-awesome/_icons.scss */ +.fa-sun-o:before { + content: "\f185"; +} + +/* line 395, source/lib/font-awesome/_icons.scss */ +.fa-moon-o:before { + content: "\f186"; +} + +/* line 396, source/lib/font-awesome/_icons.scss */ +.fa-archive:before { + content: "\f187"; +} + +/* line 397, source/lib/font-awesome/_icons.scss */ +.fa-bug:before { + content: "\f188"; +} + +/* line 398, source/lib/font-awesome/_icons.scss */ +.fa-vk:before { + content: "\f189"; +} + +/* line 399, source/lib/font-awesome/_icons.scss */ +.fa-weibo:before { + content: "\f18a"; +} + +/* line 400, source/lib/font-awesome/_icons.scss */ +.fa-renren:before { + content: "\f18b"; +} + +/* line 401, source/lib/font-awesome/_icons.scss */ +.fa-pagelines:before { + content: "\f18c"; +} + +/* line 402, source/lib/font-awesome/_icons.scss */ +.fa-stack-exchange:before { + content: "\f18d"; +} + +/* line 403, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} + +/* line 404, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-left:before { + content: "\f190"; +} + +/* line 406, source/lib/font-awesome/_icons.scss */ +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} + +/* line 407, source/lib/font-awesome/_icons.scss */ +.fa-dot-circle-o:before { + content: "\f192"; +} + +/* line 408, source/lib/font-awesome/_icons.scss */ +.fa-wheelchair:before { + content: "\f193"; +} + +/* line 409, source/lib/font-awesome/_icons.scss */ +.fa-vimeo-square:before { + content: "\f194"; +} + +/* line 411, source/lib/font-awesome/_icons.scss */ +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} + +/* line 412, source/lib/font-awesome/_icons.scss */ +.fa-plus-square-o:before { + content: "\f196"; +} + +/********************************************* + * GLOBAL STYLES + *********************************************/ +/* line 7, source/template/_theme.scss */ +html { + background: #2b2b2b; + background: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 100, color-stop(0%, #1c1e20), color-stop(100%, #555a5f)); + background: -webkit-radial-gradient(#1c1e20, #555a5f); + background: -moz-radial-gradient(#1c1e20, #555a5f); + background: -o-radial-gradient(#1c1e20, #555a5f); + background: radial-gradient(#1c1e20, #555a5f); +} + +@font-face { + font-family: "Gotham"; + src: local("Gotham"), url("../../fonts/Gotham/Gotham-Medium.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Gotham-Book"; + src: local("Gotham-Book"), url("../../fonts/Gotham/Gotham-Book.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Gotham-Italic"; + src: local("Gotham-Italic"), url("../../fonts/Gotham/Gotham-MediumIta.otf") format("opentype"); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: "Gotham-Bold"; + src: local("Gotham-Bold"), url("../../fonts/Gotham/Gotham-Bold.otf") format("opentype"); + font-weight: bold; + font-style: bold; +} + +/* line 42, source/template/_theme.scss */ +.reveal { + font-family: "Gotham-Book", "Helvetica", Arial, sans-serif; + font-size: 36px; + font-weight: 200; + letter-spacing: -0.02em; + color: #eeeeee; +} + +/* line 50, source/template/_theme.scss */ +::selection { + color: white; + background: #f9b8bb; + text-shadow: none; +} + +/* line 56, source/template/_theme.scss */ +.reveal ul li { + line-height: 1.2em; + margin-bottom: 10px; +} + +/********************************************* + * HEADERS + *********************************************/ +/* line 72, source/template/_theme.scss */ +.reveal h1, +.reveal h2, +.reveal h3, +.reveal h4, +.reveal h5, +.reveal h6 { + margin: 0 0 20px 0; + color: #f05b62; + font-family: "Gotham-Bold", Impact, sans-serif; + line-height: 0.9em; + letter-spacing: 0.02em; + text-transform: uppercase; + text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); +} + +/* line 84, source/template/_theme.scss */ +.reveal h1 { + text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); +} + +/* line 88, source/template/_theme.scss */ +.reveal h1 { + font-size: 3.77em; +} + +/* line 89, source/template/_theme.scss */ +.reveal h2 { + font-size: 2.11em; +} + +/* line 90, source/template/_theme.scss */ +.reveal h3 { + font-size: 1.55em; +} + +/* line 91, source/template/_theme.scss */ +.reveal h4 { + font-size: 1em; +} + +/********************************************* +* OVERRIDES +**********************************************/ +/* line 96, source/template/_theme.scss */ +.left-align { + text-align: left; +} + +/* line 97, source/template/_theme.scss */ +.right-align { + text-align: right; +} + +/* line 98, source/template/_theme.scss */ +.left { + float: left; +} + +/* line 99, source/template/_theme.scss */ +.right { + float: right; +} + +/* line 100, source/template/_theme.scss */ +.clear { + clear: both; +} + +/* line 101, source/template/_theme.scss */ +.blue, .event__title { + color: #01A9B4 !important; +} + +/* line 102, source/template/_theme.scss */ +.green { + color: #92BB44 !important; +} + +/* line 103, source/template/_theme.scss */ +.yellow { + color: #EDAB23 !important; +} + +/* line 104, source/template/_theme.scss */ +.pink { + color: #F05B62 !important; +} + +/* line 105, source/template/_theme.scss */ +.red { + color: #8B0036 !important; +} + +/* line 106, source/template/_theme.scss */ +.grey { + color: #333333 !important; +} + +/* line 107, source/template/_theme.scss */ +.grey--light, .event__title small { + color: #666 !important; +} + +/********************************************* + * LINKS + *********************************************/ +/* line 114, source/template/_theme.scss */ +.reveal a:not(.image) { + -webkit-transition: color 0.15x ease; + -moz-transition: color 0.15x ease; + -o-transition: color 0.15x ease; + transition: color 0.15x ease; + color: #01a9b4; + text-decoration: none; +} + +/* line 119, source/template/_theme.scss */ +.reveal a:not(.image):hover { + color: #f9b8bb; + text-shadow: none; + border: none; +} + +/* line 126, source/template/_theme.scss */ +.reveal .roll span:after { + color: #fff; + background: #01a9b4; +} + +/********************************************* + * IMAGES + *********************************************/ +/* line 136, source/template/_theme.scss */ +.reveal section img { + margin: 15px; + background: rgba(255, 255, 255, 0.12); + border: 4px solid #eeeeee; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); + -webkit-transition: all 0.2s linear; + -moz-transition: all 0.2s linear; + -o-transition: all 0.2s linear; + transition: all 0.2s linear; +} + +/* line 146, source/template/_theme.scss */ +.reveal a:hover img { + background: rgba(255, 255, 255, 0.2); + border-color: #01a9b4; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); +} + +/********************************************* + * NAVIGATION CONTROLS + *********************************************/ +/* line 159, source/template/_theme.scss */ +.reveal .controls .navigate-left, +.reveal .controls .navigate-left.enabled { + border-right-color: #01a9b4; +} + +/* line 164, source/template/_theme.scss */ +.reveal .controls .navigate-right, +.reveal .controls .navigate-right.enabled { + border-left-color: #01a9b4; +} + +/* line 169, source/template/_theme.scss */ +.reveal .controls .navigate-up, +.reveal .controls .navigate-up.enabled { + border-bottom-color: #01a9b4; +} + +/* line 174, source/template/_theme.scss */ +.reveal .controls .navigate-down, +.reveal .controls .navigate-down.enabled { + border-top-color: #01a9b4; +} + +/* line 178, source/template/_theme.scss */ +.reveal .controls div.navigate-left.enabled:hover { + border-right-color: #f9b8bb; +} + +/* line 182, source/template/_theme.scss */ +.reveal .controls div.navigate-right.enabled:hover { + border-left-color: #f9b8bb; +} + +/* line 186, source/template/_theme.scss */ +.reveal .controls div.navigate-up.enabled:hover { + border-bottom-color: #f9b8bb; +} + +/* line 190, source/template/_theme.scss */ +.reveal .controls div.navigate-down.enabled:hover { + border-top-color: #f9b8bb; +} + +/********************************************* + * PROGRESS BAR + *********************************************/ +/* line 199, source/template/_theme.scss */ +.reveal .progress { + background: rgba(0, 0, 0, 0.2); +} + +/* line 202, source/template/_theme.scss */ +.reveal .progress span { + background: #01a9b4; + -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); +} + +/********************************************* + * FOOTER + *********************************************/ +/* line 213, source/template/_theme.scss */ +.reveal footer { + position: fixed; + height: 40px; + width: 100%; + bottom: 3px; + left: 0; + z-index: 10; + font-size: 35%; + text-align: right; + background-image: url(../../images/pink-logo.png); + background-repeat: no-repeat; + background-size: auto 100%; +} +/* line 227, source/template/_theme.scss */ +.reveal .copyright { + margin: 15px 5px 0 100px; + font-style: italic; +} +/* line 231, source/template/_theme.scss */ +.reveal .copyright a img { + vertical-align: middle; +} + +/********************************************* + * EVENT + *********************************************/ +/* line 241, source/template/_theme.scss */ +.event__title { + text-transform: uppercase !important; +} diff --git a/css/theme/gdilight.css b/css/theme/gdilight.css new file mode 100755 index 0000000..8cb1cdb --- /dev/null +++ b/css/theme/gdilight.css @@ -0,0 +1,2463 @@ +/*! + * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url("../../fonts/FontAwesome/fontawesome-webfont.eot?v=4.0.3"); + src: url("../../fonts/FontAwesome/fontawesome-webfont.eot?#iefix&v=4.0.3") format("embedded-opentype"), url("../../fonts/FontAwesome/fontawesome-webfont.woff?v=4.0.3") format("woff"), url("../../fonts/FontAwesome/fontawesome-webfont.ttf?v=4.0.3") format("truetype"), url("../../fonts/FontAwesome/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular") format("svg"); + font-weight: normal; + font-style: normal; +} + +/* line 4, source/lib/font-awesome/_core.scss */ +.fa { + display: inline-block; + font-family: FontAwesome !important; + font-style: normal !important; + font-weight: normal !important; + line-height: 1 !important; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* makes the font 33% larger relative to the icon container */ +/* line 5, source/lib/font-awesome/_larger.scss */ +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -15%; +} + +/* line 10, source/lib/font-awesome/_larger.scss */ +.fa-2x { + font-size: 2em; +} + +/* line 11, source/lib/font-awesome/_larger.scss */ +.fa-3x { + font-size: 3em; +} + +/* line 12, source/lib/font-awesome/_larger.scss */ +.fa-4x { + font-size: 4em; +} + +/* line 13, source/lib/font-awesome/_larger.scss */ +.fa-5x { + font-size: 5em; +} + +/* line 3, source/lib/font-awesome/_fixed-width.scss */ +.fa-fw { + width: 1.28571em; + text-align: center; +} + +/* line 4, source/lib/font-awesome/_list.scss */ +.fa-ul { + padding-left: 0; + margin-left: 2.14286em; + list-style-type: none; +} +/* line 8, source/lib/font-awesome/_list.scss */ +.fa-ul > li { + position: relative; +} + +/* line 10, source/lib/font-awesome/_list.scss */ +.fa-li { + position: absolute; + left: -2.14286em; + width: 2.14286em; + top: 0.14286em; + text-align: center; +} +/* line 16, source/lib/font-awesome/_list.scss */ +.fa-li.fa-lg { + left: -1.85714em; +} + +/* line 4, source/lib/font-awesome/_bordered-pulled.scss */ +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} + +/* line 10, source/lib/font-awesome/_bordered-pulled.scss */ +.pull-right { + float: right; +} + +/* line 11, source/lib/font-awesome/_bordered-pulled.scss */ +.pull-left { + float: left; +} + +/* line 14, source/lib/font-awesome/_bordered-pulled.scss */ +.fa.pull-left { + margin-right: .3em; +} +/* line 15, source/lib/font-awesome/_bordered-pulled.scss */ +.fa.pull-right { + margin-left: .3em; +} + +/* line 4, source/lib/font-awesome/_spinning.scss */ +.fa-spin { + -webkit-animation: spin 2s infinite linear; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} + +@-moz-keyframes spin { + /* line 12, source/lib/font-awesome/_spinning.scss */ + 0% { + -moz-transform: rotate(0deg); + } + + /* line 13, source/lib/font-awesome/_spinning.scss */ + 100% { + -moz-transform: rotate(359deg); + } +} + +@-webkit-keyframes spin { + /* line 16, source/lib/font-awesome/_spinning.scss */ + 0% { + -webkit-transform: rotate(0deg); + } + + /* line 17, source/lib/font-awesome/_spinning.scss */ + 100% { + -webkit-transform: rotate(359deg); + } +} + +@-o-keyframes spin { + /* line 20, source/lib/font-awesome/_spinning.scss */ + 0% { + -o-transform: rotate(0deg); + } + + /* line 21, source/lib/font-awesome/_spinning.scss */ + 100% { + -o-transform: rotate(359deg); + } +} + +@-ms-keyframes spin { + /* line 24, source/lib/font-awesome/_spinning.scss */ + 0% { + -ms-transform: rotate(0deg); + } + + /* line 25, source/lib/font-awesome/_spinning.scss */ + 100% { + -ms-transform: rotate(359deg); + } +} + +@keyframes spin { + /* line 28, source/lib/font-awesome/_spinning.scss */ + 0% { + transform: rotate(0deg); + } + + /* line 29, source/lib/font-awesome/_spinning.scss */ + 100% { + transform: rotate(359deg); + } +} + +/* line 4, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); +} + +/* line 5, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); +} + +/* line 6, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); +} + +/* line 8, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: scale(-1, 1); + -moz-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +/* line 9, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: scale(1, -1); + -moz-transform: scale(1, -1); + -ms-transform: scale(1, -1); + -o-transform: scale(1, -1); + transform: scale(1, -1); +} + +/* line 4, source/lib/font-awesome/_stacked.scss */ +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} + +/* line 12, source/lib/font-awesome/_stacked.scss */ +.fa-stack-1x, .fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} + +/* line 18, source/lib/font-awesome/_stacked.scss */ +.fa-stack-1x { + line-height: inherit; +} + +/* line 19, source/lib/font-awesome/_stacked.scss */ +.fa-stack-2x { + font-size: 2em; +} + +/* line 20, source/lib/font-awesome/_stacked.scss */ +.fa-inverse { + color: white; +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +/* line 4, source/lib/font-awesome/_icons.scss */ +.fa-glass:before { + content: "\f000"; +} + +/* line 5, source/lib/font-awesome/_icons.scss */ +.fa-music:before { + content: "\f001"; +} + +/* line 6, source/lib/font-awesome/_icons.scss */ +.fa-search:before { + content: "\f002"; +} + +/* line 7, source/lib/font-awesome/_icons.scss */ +.fa-envelope-o:before { + content: "\f003"; +} + +/* line 8, source/lib/font-awesome/_icons.scss */ +.fa-heart:before { + content: "\f004"; +} + +/* line 9, source/lib/font-awesome/_icons.scss */ +.fa-star:before { + content: "\f005"; +} + +/* line 10, source/lib/font-awesome/_icons.scss */ +.fa-star-o:before { + content: "\f006"; +} + +/* line 11, source/lib/font-awesome/_icons.scss */ +.fa-user:before { + content: "\f007"; +} + +/* line 12, source/lib/font-awesome/_icons.scss */ +.fa-film:before { + content: "\f008"; +} + +/* line 13, source/lib/font-awesome/_icons.scss */ +.fa-th-large:before { + content: "\f009"; +} + +/* line 14, source/lib/font-awesome/_icons.scss */ +.fa-th:before { + content: "\f00a"; +} + +/* line 15, source/lib/font-awesome/_icons.scss */ +.fa-th-list:before { + content: "\f00b"; +} + +/* line 16, source/lib/font-awesome/_icons.scss */ +.fa-check:before { + content: "\f00c"; +} + +/* line 17, source/lib/font-awesome/_icons.scss */ +.fa-times:before { + content: "\f00d"; +} + +/* line 18, source/lib/font-awesome/_icons.scss */ +.fa-search-plus:before { + content: "\f00e"; +} + +/* line 19, source/lib/font-awesome/_icons.scss */ +.fa-search-minus:before { + content: "\f010"; +} + +/* line 20, source/lib/font-awesome/_icons.scss */ +.fa-power-off:before { + content: "\f011"; +} + +/* line 21, source/lib/font-awesome/_icons.scss */ +.fa-signal:before { + content: "\f012"; +} + +/* line 23, source/lib/font-awesome/_icons.scss */ +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} + +/* line 24, source/lib/font-awesome/_icons.scss */ +.fa-trash-o:before { + content: "\f014"; +} + +/* line 25, source/lib/font-awesome/_icons.scss */ +.fa-home:before { + content: "\f015"; +} + +/* line 26, source/lib/font-awesome/_icons.scss */ +.fa-file-o:before { + content: "\f016"; +} + +/* line 27, source/lib/font-awesome/_icons.scss */ +.fa-clock-o:before { + content: "\f017"; +} + +/* line 28, source/lib/font-awesome/_icons.scss */ +.fa-road:before { + content: "\f018"; +} + +/* line 29, source/lib/font-awesome/_icons.scss */ +.fa-download:before { + content: "\f019"; +} + +/* line 30, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} + +/* line 31, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} + +/* line 32, source/lib/font-awesome/_icons.scss */ +.fa-inbox:before { + content: "\f01c"; +} + +/* line 33, source/lib/font-awesome/_icons.scss */ +.fa-play-circle-o:before { + content: "\f01d"; +} + +/* line 35, source/lib/font-awesome/_icons.scss */ +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} + +/* line 36, source/lib/font-awesome/_icons.scss */ +.fa-refresh:before { + content: "\f021"; +} + +/* line 37, source/lib/font-awesome/_icons.scss */ +.fa-list-alt:before { + content: "\f022"; +} + +/* line 38, source/lib/font-awesome/_icons.scss */ +.fa-lock:before { + content: "\f023"; +} + +/* line 39, source/lib/font-awesome/_icons.scss */ +.fa-flag:before { + content: "\f024"; +} + +/* line 40, source/lib/font-awesome/_icons.scss */ +.fa-headphones:before { + content: "\f025"; +} + +/* line 41, source/lib/font-awesome/_icons.scss */ +.fa-volume-off:before { + content: "\f026"; +} + +/* line 42, source/lib/font-awesome/_icons.scss */ +.fa-volume-down:before { + content: "\f027"; +} + +/* line 43, source/lib/font-awesome/_icons.scss */ +.fa-volume-up:before { + content: "\f028"; +} + +/* line 44, source/lib/font-awesome/_icons.scss */ +.fa-qrcode:before { + content: "\f029"; +} + +/* line 45, source/lib/font-awesome/_icons.scss */ +.fa-barcode:before { + content: "\f02a"; +} + +/* line 46, source/lib/font-awesome/_icons.scss */ +.fa-tag:before { + content: "\f02b"; +} + +/* line 47, source/lib/font-awesome/_icons.scss */ +.fa-tags:before { + content: "\f02c"; +} + +/* line 48, source/lib/font-awesome/_icons.scss */ +.fa-book:before { + content: "\f02d"; +} + +/* line 49, source/lib/font-awesome/_icons.scss */ +.fa-bookmark:before { + content: "\f02e"; +} + +/* line 50, source/lib/font-awesome/_icons.scss */ +.fa-print:before { + content: "\f02f"; +} + +/* line 51, source/lib/font-awesome/_icons.scss */ +.fa-camera:before { + content: "\f030"; +} + +/* line 52, source/lib/font-awesome/_icons.scss */ +.fa-font:before { + content: "\f031"; +} + +/* line 53, source/lib/font-awesome/_icons.scss */ +.fa-bold:before { + content: "\f032"; +} + +/* line 54, source/lib/font-awesome/_icons.scss */ +.fa-italic:before { + content: "\f033"; +} + +/* line 55, source/lib/font-awesome/_icons.scss */ +.fa-text-height:before { + content: "\f034"; +} + +/* line 56, source/lib/font-awesome/_icons.scss */ +.fa-text-width:before { + content: "\f035"; +} + +/* line 57, source/lib/font-awesome/_icons.scss */ +.fa-align-left:before { + content: "\f036"; +} + +/* line 58, source/lib/font-awesome/_icons.scss */ +.fa-align-center:before { + content: "\f037"; +} + +/* line 59, source/lib/font-awesome/_icons.scss */ +.fa-align-right:before { + content: "\f038"; +} + +/* line 60, source/lib/font-awesome/_icons.scss */ +.fa-align-justify:before { + content: "\f039"; +} + +/* line 61, source/lib/font-awesome/_icons.scss */ +.fa-list:before { + content: "\f03a"; +} + +/* line 63, source/lib/font-awesome/_icons.scss */ +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} + +/* line 64, source/lib/font-awesome/_icons.scss */ +.fa-indent:before { + content: "\f03c"; +} + +/* line 65, source/lib/font-awesome/_icons.scss */ +.fa-video-camera:before { + content: "\f03d"; +} + +/* line 66, source/lib/font-awesome/_icons.scss */ +.fa-picture-o:before { + content: "\f03e"; +} + +/* line 67, source/lib/font-awesome/_icons.scss */ +.fa-pencil:before { + content: "\f040"; +} + +/* line 68, source/lib/font-awesome/_icons.scss */ +.fa-map-marker:before { + content: "\f041"; +} + +/* line 69, source/lib/font-awesome/_icons.scss */ +.fa-adjust:before { + content: "\f042"; +} + +/* line 70, source/lib/font-awesome/_icons.scss */ +.fa-tint:before { + content: "\f043"; +} + +/* line 72, source/lib/font-awesome/_icons.scss */ +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} + +/* line 73, source/lib/font-awesome/_icons.scss */ +.fa-share-square-o:before { + content: "\f045"; +} + +/* line 74, source/lib/font-awesome/_icons.scss */ +.fa-check-square-o:before { + content: "\f046"; +} + +/* line 75, source/lib/font-awesome/_icons.scss */ +.fa-arrows:before { + content: "\f047"; +} + +/* line 76, source/lib/font-awesome/_icons.scss */ +.fa-step-backward:before { + content: "\f048"; +} + +/* line 77, source/lib/font-awesome/_icons.scss */ +.fa-fast-backward:before { + content: "\f049"; +} + +/* line 78, source/lib/font-awesome/_icons.scss */ +.fa-backward:before { + content: "\f04a"; +} + +/* line 79, source/lib/font-awesome/_icons.scss */ +.fa-play:before { + content: "\f04b"; +} + +/* line 80, source/lib/font-awesome/_icons.scss */ +.fa-pause:before { + content: "\f04c"; +} + +/* line 81, source/lib/font-awesome/_icons.scss */ +.fa-stop:before { + content: "\f04d"; +} + +/* line 82, source/lib/font-awesome/_icons.scss */ +.fa-forward:before { + content: "\f04e"; +} + +/* line 83, source/lib/font-awesome/_icons.scss */ +.fa-fast-forward:before { + content: "\f050"; +} + +/* line 84, source/lib/font-awesome/_icons.scss */ +.fa-step-forward:before { + content: "\f051"; +} + +/* line 85, source/lib/font-awesome/_icons.scss */ +.fa-eject:before { + content: "\f052"; +} + +/* line 86, source/lib/font-awesome/_icons.scss */ +.fa-chevron-left:before { + content: "\f053"; +} + +/* line 87, source/lib/font-awesome/_icons.scss */ +.fa-chevron-right:before { + content: "\f054"; +} + +/* line 88, source/lib/font-awesome/_icons.scss */ +.fa-plus-circle:before { + content: "\f055"; +} + +/* line 89, source/lib/font-awesome/_icons.scss */ +.fa-minus-circle:before { + content: "\f056"; +} + +/* line 90, source/lib/font-awesome/_icons.scss */ +.fa-times-circle:before { + content: "\f057"; +} + +/* line 91, source/lib/font-awesome/_icons.scss */ +.fa-check-circle:before { + content: "\f058"; +} + +/* line 92, source/lib/font-awesome/_icons.scss */ +.fa-question-circle:before { + content: "\f059"; +} + +/* line 93, source/lib/font-awesome/_icons.scss */ +.fa-info-circle:before { + content: "\f05a"; +} + +/* line 94, source/lib/font-awesome/_icons.scss */ +.fa-crosshairs:before { + content: "\f05b"; +} + +/* line 95, source/lib/font-awesome/_icons.scss */ +.fa-times-circle-o:before { + content: "\f05c"; +} + +/* line 96, source/lib/font-awesome/_icons.scss */ +.fa-check-circle-o:before { + content: "\f05d"; +} + +/* line 97, source/lib/font-awesome/_icons.scss */ +.fa-ban:before { + content: "\f05e"; +} + +/* line 98, source/lib/font-awesome/_icons.scss */ +.fa-arrow-left:before { + content: "\f060"; +} + +/* line 99, source/lib/font-awesome/_icons.scss */ +.fa-arrow-right:before { + content: "\f061"; +} + +/* line 100, source/lib/font-awesome/_icons.scss */ +.fa-arrow-up:before { + content: "\f062"; +} + +/* line 101, source/lib/font-awesome/_icons.scss */ +.fa-arrow-down:before { + content: "\f063"; +} + +/* line 103, source/lib/font-awesome/_icons.scss */ +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} + +/* line 104, source/lib/font-awesome/_icons.scss */ +.fa-expand:before { + content: "\f065"; +} + +/* line 105, source/lib/font-awesome/_icons.scss */ +.fa-compress:before { + content: "\f066"; +} + +/* line 106, source/lib/font-awesome/_icons.scss */ +.fa-plus:before { + content: "\f067"; +} + +/* line 107, source/lib/font-awesome/_icons.scss */ +.fa-minus:before { + content: "\f068"; +} + +/* line 108, source/lib/font-awesome/_icons.scss */ +.fa-asterisk:before { + content: "\f069"; +} + +/* line 109, source/lib/font-awesome/_icons.scss */ +.fa-exclamation-circle:before { + content: "\f06a"; +} + +/* line 110, source/lib/font-awesome/_icons.scss */ +.fa-gift:before { + content: "\f06b"; +} + +/* line 111, source/lib/font-awesome/_icons.scss */ +.fa-leaf:before { + content: "\f06c"; +} + +/* line 112, source/lib/font-awesome/_icons.scss */ +.fa-fire:before { + content: "\f06d"; +} + +/* line 113, source/lib/font-awesome/_icons.scss */ +.fa-eye:before { + content: "\f06e"; +} + +/* line 114, source/lib/font-awesome/_icons.scss */ +.fa-eye-slash:before { + content: "\f070"; +} + +/* line 116, source/lib/font-awesome/_icons.scss */ +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} + +/* line 117, source/lib/font-awesome/_icons.scss */ +.fa-plane:before { + content: "\f072"; +} + +/* line 118, source/lib/font-awesome/_icons.scss */ +.fa-calendar:before { + content: "\f073"; +} + +/* line 119, source/lib/font-awesome/_icons.scss */ +.fa-random:before { + content: "\f074"; +} + +/* line 120, source/lib/font-awesome/_icons.scss */ +.fa-comment:before { + content: "\f075"; +} + +/* line 121, source/lib/font-awesome/_icons.scss */ +.fa-magnet:before { + content: "\f076"; +} + +/* line 122, source/lib/font-awesome/_icons.scss */ +.fa-chevron-up:before { + content: "\f077"; +} + +/* line 123, source/lib/font-awesome/_icons.scss */ +.fa-chevron-down:before { + content: "\f078"; +} + +/* line 124, source/lib/font-awesome/_icons.scss */ +.fa-retweet:before { + content: "\f079"; +} + +/* line 125, source/lib/font-awesome/_icons.scss */ +.fa-shopping-cart:before { + content: "\f07a"; +} + +/* line 126, source/lib/font-awesome/_icons.scss */ +.fa-folder:before { + content: "\f07b"; +} + +/* line 127, source/lib/font-awesome/_icons.scss */ +.fa-folder-open:before { + content: "\f07c"; +} + +/* line 128, source/lib/font-awesome/_icons.scss */ +.fa-arrows-v:before { + content: "\f07d"; +} + +/* line 129, source/lib/font-awesome/_icons.scss */ +.fa-arrows-h:before { + content: "\f07e"; +} + +/* line 130, source/lib/font-awesome/_icons.scss */ +.fa-bar-chart-o:before { + content: "\f080"; +} + +/* line 131, source/lib/font-awesome/_icons.scss */ +.fa-twitter-square:before { + content: "\f081"; +} + +/* line 132, source/lib/font-awesome/_icons.scss */ +.fa-facebook-square:before { + content: "\f082"; +} + +/* line 133, source/lib/font-awesome/_icons.scss */ +.fa-camera-retro:before { + content: "\f083"; +} + +/* line 134, source/lib/font-awesome/_icons.scss */ +.fa-key:before { + content: "\f084"; +} + +/* line 136, source/lib/font-awesome/_icons.scss */ +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} + +/* line 137, source/lib/font-awesome/_icons.scss */ +.fa-comments:before { + content: "\f086"; +} + +/* line 138, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-o-up:before { + content: "\f087"; +} + +/* line 139, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-o-down:before { + content: "\f088"; +} + +/* line 140, source/lib/font-awesome/_icons.scss */ +.fa-star-half:before { + content: "\f089"; +} + +/* line 141, source/lib/font-awesome/_icons.scss */ +.fa-heart-o:before { + content: "\f08a"; +} + +/* line 142, source/lib/font-awesome/_icons.scss */ +.fa-sign-out:before { + content: "\f08b"; +} + +/* line 143, source/lib/font-awesome/_icons.scss */ +.fa-linkedin-square:before { + content: "\f08c"; +} + +/* line 144, source/lib/font-awesome/_icons.scss */ +.fa-thumb-tack:before { + content: "\f08d"; +} + +/* line 145, source/lib/font-awesome/_icons.scss */ +.fa-external-link:before { + content: "\f08e"; +} + +/* line 146, source/lib/font-awesome/_icons.scss */ +.fa-sign-in:before { + content: "\f090"; +} + +/* line 147, source/lib/font-awesome/_icons.scss */ +.fa-trophy:before { + content: "\f091"; +} + +/* line 148, source/lib/font-awesome/_icons.scss */ +.fa-github-square:before { + content: "\f092"; +} + +/* line 149, source/lib/font-awesome/_icons.scss */ +.fa-upload:before { + content: "\f093"; +} + +/* line 150, source/lib/font-awesome/_icons.scss */ +.fa-lemon-o:before { + content: "\f094"; +} + +/* line 151, source/lib/font-awesome/_icons.scss */ +.fa-phone:before { + content: "\f095"; +} + +/* line 152, source/lib/font-awesome/_icons.scss */ +.fa-square-o:before { + content: "\f096"; +} + +/* line 153, source/lib/font-awesome/_icons.scss */ +.fa-bookmark-o:before { + content: "\f097"; +} + +/* line 154, source/lib/font-awesome/_icons.scss */ +.fa-phone-square:before { + content: "\f098"; +} + +/* line 155, source/lib/font-awesome/_icons.scss */ +.fa-twitter:before { + content: "\f099"; +} + +/* line 156, source/lib/font-awesome/_icons.scss */ +.fa-facebook:before { + content: "\f09a"; +} + +/* line 157, source/lib/font-awesome/_icons.scss */ +.fa-github:before { + content: "\f09b"; +} + +/* line 158, source/lib/font-awesome/_icons.scss */ +.fa-unlock:before { + content: "\f09c"; +} + +/* line 159, source/lib/font-awesome/_icons.scss */ +.fa-credit-card:before { + content: "\f09d"; +} + +/* line 160, source/lib/font-awesome/_icons.scss */ +.fa-rss:before { + content: "\f09e"; +} + +/* line 161, source/lib/font-awesome/_icons.scss */ +.fa-hdd-o:before { + content: "\f0a0"; +} + +/* line 162, source/lib/font-awesome/_icons.scss */ +.fa-bullhorn:before { + content: "\f0a1"; +} + +/* line 163, source/lib/font-awesome/_icons.scss */ +.fa-bell:before { + content: "\f0f3"; +} + +/* line 164, source/lib/font-awesome/_icons.scss */ +.fa-certificate:before { + content: "\f0a3"; +} + +/* line 165, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-right:before { + content: "\f0a4"; +} + +/* line 166, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-left:before { + content: "\f0a5"; +} + +/* line 167, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-up:before { + content: "\f0a6"; +} + +/* line 168, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-down:before { + content: "\f0a7"; +} + +/* line 169, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-left:before { + content: "\f0a8"; +} + +/* line 170, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-right:before { + content: "\f0a9"; +} + +/* line 171, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-up:before { + content: "\f0aa"; +} + +/* line 172, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-down:before { + content: "\f0ab"; +} + +/* line 173, source/lib/font-awesome/_icons.scss */ +.fa-globe:before { + content: "\f0ac"; +} + +/* line 174, source/lib/font-awesome/_icons.scss */ +.fa-wrench:before { + content: "\f0ad"; +} + +/* line 175, source/lib/font-awesome/_icons.scss */ +.fa-tasks:before { + content: "\f0ae"; +} + +/* line 176, source/lib/font-awesome/_icons.scss */ +.fa-filter:before { + content: "\f0b0"; +} + +/* line 177, source/lib/font-awesome/_icons.scss */ +.fa-briefcase:before { + content: "\f0b1"; +} + +/* line 178, source/lib/font-awesome/_icons.scss */ +.fa-arrows-alt:before { + content: "\f0b2"; +} + +/* line 180, source/lib/font-awesome/_icons.scss */ +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} + +/* line 182, source/lib/font-awesome/_icons.scss */ +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} + +/* line 183, source/lib/font-awesome/_icons.scss */ +.fa-cloud:before { + content: "\f0c2"; +} + +/* line 184, source/lib/font-awesome/_icons.scss */ +.fa-flask:before { + content: "\f0c3"; +} + +/* line 186, source/lib/font-awesome/_icons.scss */ +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} + +/* line 188, source/lib/font-awesome/_icons.scss */ +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} + +/* line 189, source/lib/font-awesome/_icons.scss */ +.fa-paperclip:before { + content: "\f0c6"; +} + +/* line 191, source/lib/font-awesome/_icons.scss */ +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} + +/* line 192, source/lib/font-awesome/_icons.scss */ +.fa-square:before { + content: "\f0c8"; +} + +/* line 193, source/lib/font-awesome/_icons.scss */ +.fa-bars:before { + content: "\f0c9"; +} + +/* line 194, source/lib/font-awesome/_icons.scss */ +.fa-list-ul:before { + content: "\f0ca"; +} + +/* line 195, source/lib/font-awesome/_icons.scss */ +.fa-list-ol:before { + content: "\f0cb"; +} + +/* line 196, source/lib/font-awesome/_icons.scss */ +.fa-strikethrough:before { + content: "\f0cc"; +} + +/* line 197, source/lib/font-awesome/_icons.scss */ +.fa-underline:before { + content: "\f0cd"; +} + +/* line 198, source/lib/font-awesome/_icons.scss */ +.fa-table:before { + content: "\f0ce"; +} + +/* line 199, source/lib/font-awesome/_icons.scss */ +.fa-magic:before { + content: "\f0d0"; +} + +/* line 200, source/lib/font-awesome/_icons.scss */ +.fa-truck:before { + content: "\f0d1"; +} + +/* line 201, source/lib/font-awesome/_icons.scss */ +.fa-pinterest:before { + content: "\f0d2"; +} + +/* line 202, source/lib/font-awesome/_icons.scss */ +.fa-pinterest-square:before { + content: "\f0d3"; +} + +/* line 203, source/lib/font-awesome/_icons.scss */ +.fa-google-plus-square:before { + content: "\f0d4"; +} + +/* line 204, source/lib/font-awesome/_icons.scss */ +.fa-google-plus:before { + content: "\f0d5"; +} + +/* line 205, source/lib/font-awesome/_icons.scss */ +.fa-money:before { + content: "\f0d6"; +} + +/* line 206, source/lib/font-awesome/_icons.scss */ +.fa-caret-down:before { + content: "\f0d7"; +} + +/* line 207, source/lib/font-awesome/_icons.scss */ +.fa-caret-up:before { + content: "\f0d8"; +} + +/* line 208, source/lib/font-awesome/_icons.scss */ +.fa-caret-left:before { + content: "\f0d9"; +} + +/* line 209, source/lib/font-awesome/_icons.scss */ +.fa-caret-right:before { + content: "\f0da"; +} + +/* line 210, source/lib/font-awesome/_icons.scss */ +.fa-columns:before { + content: "\f0db"; +} + +/* line 212, source/lib/font-awesome/_icons.scss */ +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} + +/* line 214, source/lib/font-awesome/_icons.scss */ +.fa-sort-down:before, +.fa-sort-asc:before { + content: "\f0dd"; +} + +/* line 216, source/lib/font-awesome/_icons.scss */ +.fa-sort-up:before, +.fa-sort-desc:before { + content: "\f0de"; +} + +/* line 217, source/lib/font-awesome/_icons.scss */ +.fa-envelope:before { + content: "\f0e0"; +} + +/* line 218, source/lib/font-awesome/_icons.scss */ +.fa-linkedin:before { + content: "\f0e1"; +} + +/* line 220, source/lib/font-awesome/_icons.scss */ +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} + +/* line 222, source/lib/font-awesome/_icons.scss */ +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} + +/* line 224, source/lib/font-awesome/_icons.scss */ +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} + +/* line 225, source/lib/font-awesome/_icons.scss */ +.fa-comment-o:before { + content: "\f0e5"; +} + +/* line 226, source/lib/font-awesome/_icons.scss */ +.fa-comments-o:before { + content: "\f0e6"; +} + +/* line 228, source/lib/font-awesome/_icons.scss */ +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} + +/* line 229, source/lib/font-awesome/_icons.scss */ +.fa-sitemap:before { + content: "\f0e8"; +} + +/* line 230, source/lib/font-awesome/_icons.scss */ +.fa-umbrella:before { + content: "\f0e9"; +} + +/* line 232, source/lib/font-awesome/_icons.scss */ +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} + +/* line 233, source/lib/font-awesome/_icons.scss */ +.fa-lightbulb-o:before { + content: "\f0eb"; +} + +/* line 234, source/lib/font-awesome/_icons.scss */ +.fa-exchange:before { + content: "\f0ec"; +} + +/* line 235, source/lib/font-awesome/_icons.scss */ +.fa-cloud-download:before { + content: "\f0ed"; +} + +/* line 236, source/lib/font-awesome/_icons.scss */ +.fa-cloud-upload:before { + content: "\f0ee"; +} + +/* line 237, source/lib/font-awesome/_icons.scss */ +.fa-user-md:before { + content: "\f0f0"; +} + +/* line 238, source/lib/font-awesome/_icons.scss */ +.fa-stethoscope:before { + content: "\f0f1"; +} + +/* line 239, source/lib/font-awesome/_icons.scss */ +.fa-suitcase:before { + content: "\f0f2"; +} + +/* line 240, source/lib/font-awesome/_icons.scss */ +.fa-bell-o:before { + content: "\f0a2"; +} + +/* line 241, source/lib/font-awesome/_icons.scss */ +.fa-coffee:before { + content: "\f0f4"; +} + +/* line 242, source/lib/font-awesome/_icons.scss */ +.fa-cutlery:before { + content: "\f0f5"; +} + +/* line 243, source/lib/font-awesome/_icons.scss */ +.fa-file-text-o:before { + content: "\f0f6"; +} + +/* line 244, source/lib/font-awesome/_icons.scss */ +.fa-building-o:before { + content: "\f0f7"; +} + +/* line 245, source/lib/font-awesome/_icons.scss */ +.fa-hospital-o:before { + content: "\f0f8"; +} + +/* line 246, source/lib/font-awesome/_icons.scss */ +.fa-ambulance:before { + content: "\f0f9"; +} + +/* line 247, source/lib/font-awesome/_icons.scss */ +.fa-medkit:before { + content: "\f0fa"; +} + +/* line 248, source/lib/font-awesome/_icons.scss */ +.fa-fighter-jet:before { + content: "\f0fb"; +} + +/* line 249, source/lib/font-awesome/_icons.scss */ +.fa-beer:before { + content: "\f0fc"; +} + +/* line 250, source/lib/font-awesome/_icons.scss */ +.fa-h-square:before { + content: "\f0fd"; +} + +/* line 251, source/lib/font-awesome/_icons.scss */ +.fa-plus-square:before { + content: "\f0fe"; +} + +/* line 252, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-left:before { + content: "\f100"; +} + +/* line 253, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-right:before { + content: "\f101"; +} + +/* line 254, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-up:before { + content: "\f102"; +} + +/* line 255, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-down:before { + content: "\f103"; +} + +/* line 256, source/lib/font-awesome/_icons.scss */ +.fa-angle-left:before { + content: "\f104"; +} + +/* line 257, source/lib/font-awesome/_icons.scss */ +.fa-angle-right:before { + content: "\f105"; +} + +/* line 258, source/lib/font-awesome/_icons.scss */ +.fa-angle-up:before { + content: "\f106"; +} + +/* line 259, source/lib/font-awesome/_icons.scss */ +.fa-angle-down:before { + content: "\f107"; +} + +/* line 260, source/lib/font-awesome/_icons.scss */ +.fa-desktop:before { + content: "\f108"; +} + +/* line 261, source/lib/font-awesome/_icons.scss */ +.fa-laptop:before { + content: "\f109"; +} + +/* line 262, source/lib/font-awesome/_icons.scss */ +.fa-tablet:before { + content: "\f10a"; +} + +/* line 264, source/lib/font-awesome/_icons.scss */ +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} + +/* line 265, source/lib/font-awesome/_icons.scss */ +.fa-circle-o:before { + content: "\f10c"; +} + +/* line 266, source/lib/font-awesome/_icons.scss */ +.fa-quote-left:before { + content: "\f10d"; +} + +/* line 267, source/lib/font-awesome/_icons.scss */ +.fa-quote-right:before { + content: "\f10e"; +} + +/* line 268, source/lib/font-awesome/_icons.scss */ +.fa-spinner:before { + content: "\f110"; +} + +/* line 269, source/lib/font-awesome/_icons.scss */ +.fa-circle:before { + content: "\f111"; +} + +/* line 271, source/lib/font-awesome/_icons.scss */ +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} + +/* line 272, source/lib/font-awesome/_icons.scss */ +.fa-github-alt:before { + content: "\f113"; +} + +/* line 273, source/lib/font-awesome/_icons.scss */ +.fa-folder-o:before { + content: "\f114"; +} + +/* line 274, source/lib/font-awesome/_icons.scss */ +.fa-folder-open-o:before { + content: "\f115"; +} + +/* line 275, source/lib/font-awesome/_icons.scss */ +.fa-smile-o:before { + content: "\f118"; +} + +/* line 276, source/lib/font-awesome/_icons.scss */ +.fa-frown-o:before { + content: "\f119"; +} + +/* line 277, source/lib/font-awesome/_icons.scss */ +.fa-meh-o:before { + content: "\f11a"; +} + +/* line 278, source/lib/font-awesome/_icons.scss */ +.fa-gamepad:before { + content: "\f11b"; +} + +/* line 279, source/lib/font-awesome/_icons.scss */ +.fa-keyboard-o:before { + content: "\f11c"; +} + +/* line 280, source/lib/font-awesome/_icons.scss */ +.fa-flag-o:before { + content: "\f11d"; +} + +/* line 281, source/lib/font-awesome/_icons.scss */ +.fa-flag-checkered:before { + content: "\f11e"; +} + +/* line 282, source/lib/font-awesome/_icons.scss */ +.fa-terminal:before { + content: "\f120"; +} + +/* line 283, source/lib/font-awesome/_icons.scss */ +.fa-code:before { + content: "\f121"; +} + +/* line 284, source/lib/font-awesome/_icons.scss */ +.fa-reply-all:before { + content: "\f122"; +} + +/* line 285, source/lib/font-awesome/_icons.scss */ +.fa-mail-reply-all:before { + content: "\f122"; +} + +/* line 288, source/lib/font-awesome/_icons.scss */ +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} + +/* line 289, source/lib/font-awesome/_icons.scss */ +.fa-location-arrow:before { + content: "\f124"; +} + +/* line 290, source/lib/font-awesome/_icons.scss */ +.fa-crop:before { + content: "\f125"; +} + +/* line 291, source/lib/font-awesome/_icons.scss */ +.fa-code-fork:before { + content: "\f126"; +} + +/* line 293, source/lib/font-awesome/_icons.scss */ +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} + +/* line 294, source/lib/font-awesome/_icons.scss */ +.fa-question:before { + content: "\f128"; +} + +/* line 295, source/lib/font-awesome/_icons.scss */ +.fa-info:before { + content: "\f129"; +} + +/* line 296, source/lib/font-awesome/_icons.scss */ +.fa-exclamation:before { + content: "\f12a"; +} + +/* line 297, source/lib/font-awesome/_icons.scss */ +.fa-superscript:before { + content: "\f12b"; +} + +/* line 298, source/lib/font-awesome/_icons.scss */ +.fa-subscript:before { + content: "\f12c"; +} + +/* line 299, source/lib/font-awesome/_icons.scss */ +.fa-eraser:before { + content: "\f12d"; +} + +/* line 300, source/lib/font-awesome/_icons.scss */ +.fa-puzzle-piece:before { + content: "\f12e"; +} + +/* line 301, source/lib/font-awesome/_icons.scss */ +.fa-microphone:before { + content: "\f130"; +} + +/* line 302, source/lib/font-awesome/_icons.scss */ +.fa-microphone-slash:before { + content: "\f131"; +} + +/* line 303, source/lib/font-awesome/_icons.scss */ +.fa-shield:before { + content: "\f132"; +} + +/* line 304, source/lib/font-awesome/_icons.scss */ +.fa-calendar-o:before { + content: "\f133"; +} + +/* line 305, source/lib/font-awesome/_icons.scss */ +.fa-fire-extinguisher:before { + content: "\f134"; +} + +/* line 306, source/lib/font-awesome/_icons.scss */ +.fa-rocket:before { + content: "\f135"; +} + +/* line 307, source/lib/font-awesome/_icons.scss */ +.fa-maxcdn:before { + content: "\f136"; +} + +/* line 308, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-left:before { + content: "\f137"; +} + +/* line 309, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-right:before { + content: "\f138"; +} + +/* line 310, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-up:before { + content: "\f139"; +} + +/* line 311, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-down:before { + content: "\f13a"; +} + +/* line 312, source/lib/font-awesome/_icons.scss */ +.fa-html5:before { + content: "\f13b"; +} + +/* line 313, source/lib/font-awesome/_icons.scss */ +.fa-css3:before { + content: "\f13c"; +} + +/* line 314, source/lib/font-awesome/_icons.scss */ +.fa-anchor:before { + content: "\f13d"; +} + +/* line 315, source/lib/font-awesome/_icons.scss */ +.fa-unlock-alt:before { + content: "\f13e"; +} + +/* line 316, source/lib/font-awesome/_icons.scss */ +.fa-bullseye:before { + content: "\f140"; +} + +/* line 317, source/lib/font-awesome/_icons.scss */ +.fa-ellipsis-h:before { + content: "\f141"; +} + +/* line 318, source/lib/font-awesome/_icons.scss */ +.fa-ellipsis-v:before { + content: "\f142"; +} + +/* line 319, source/lib/font-awesome/_icons.scss */ +.fa-rss-square:before { + content: "\f143"; +} + +/* line 320, source/lib/font-awesome/_icons.scss */ +.fa-play-circle:before { + content: "\f144"; +} + +/* line 321, source/lib/font-awesome/_icons.scss */ +.fa-ticket:before { + content: "\f145"; +} + +/* line 322, source/lib/font-awesome/_icons.scss */ +.fa-minus-square:before { + content: "\f146"; +} + +/* line 323, source/lib/font-awesome/_icons.scss */ +.fa-minus-square-o:before { + content: "\f147"; +} + +/* line 324, source/lib/font-awesome/_icons.scss */ +.fa-level-up:before { + content: "\f148"; +} + +/* line 325, source/lib/font-awesome/_icons.scss */ +.fa-level-down:before { + content: "\f149"; +} + +/* line 326, source/lib/font-awesome/_icons.scss */ +.fa-check-square:before { + content: "\f14a"; +} + +/* line 327, source/lib/font-awesome/_icons.scss */ +.fa-pencil-square:before { + content: "\f14b"; +} + +/* line 328, source/lib/font-awesome/_icons.scss */ +.fa-external-link-square:before { + content: "\f14c"; +} + +/* line 329, source/lib/font-awesome/_icons.scss */ +.fa-share-square:before { + content: "\f14d"; +} + +/* line 330, source/lib/font-awesome/_icons.scss */ +.fa-compass:before { + content: "\f14e"; +} + +/* line 332, source/lib/font-awesome/_icons.scss */ +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} + +/* line 334, source/lib/font-awesome/_icons.scss */ +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} + +/* line 336, source/lib/font-awesome/_icons.scss */ +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} + +/* line 338, source/lib/font-awesome/_icons.scss */ +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} + +/* line 339, source/lib/font-awesome/_icons.scss */ +.fa-gbp:before { + content: "\f154"; +} + +/* line 341, source/lib/font-awesome/_icons.scss */ +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} + +/* line 343, source/lib/font-awesome/_icons.scss */ +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} + +/* line 347, source/lib/font-awesome/_icons.scss */ +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} + +/* line 350, source/lib/font-awesome/_icons.scss */ +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} + +/* line 352, source/lib/font-awesome/_icons.scss */ +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} + +/* line 354, source/lib/font-awesome/_icons.scss */ +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} + +/* line 355, source/lib/font-awesome/_icons.scss */ +.fa-file:before { + content: "\f15b"; +} + +/* line 356, source/lib/font-awesome/_icons.scss */ +.fa-file-text:before { + content: "\f15c"; +} + +/* line 357, source/lib/font-awesome/_icons.scss */ +.fa-sort-alpha-asc:before { + content: "\f15d"; +} + +/* line 358, source/lib/font-awesome/_icons.scss */ +.fa-sort-alpha-desc:before { + content: "\f15e"; +} + +/* line 359, source/lib/font-awesome/_icons.scss */ +.fa-sort-amount-asc:before { + content: "\f160"; +} + +/* line 360, source/lib/font-awesome/_icons.scss */ +.fa-sort-amount-desc:before { + content: "\f161"; +} + +/* line 361, source/lib/font-awesome/_icons.scss */ +.fa-sort-numeric-asc:before { + content: "\f162"; +} + +/* line 362, source/lib/font-awesome/_icons.scss */ +.fa-sort-numeric-desc:before { + content: "\f163"; +} + +/* line 363, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-up:before { + content: "\f164"; +} + +/* line 364, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-down:before { + content: "\f165"; +} + +/* line 365, source/lib/font-awesome/_icons.scss */ +.fa-youtube-square:before { + content: "\f166"; +} + +/* line 366, source/lib/font-awesome/_icons.scss */ +.fa-youtube:before { + content: "\f167"; +} + +/* line 367, source/lib/font-awesome/_icons.scss */ +.fa-xing:before { + content: "\f168"; +} + +/* line 368, source/lib/font-awesome/_icons.scss */ +.fa-xing-square:before { + content: "\f169"; +} + +/* line 369, source/lib/font-awesome/_icons.scss */ +.fa-youtube-play:before { + content: "\f16a"; +} + +/* line 370, source/lib/font-awesome/_icons.scss */ +.fa-dropbox:before { + content: "\f16b"; +} + +/* line 371, source/lib/font-awesome/_icons.scss */ +.fa-stack-overflow:before { + content: "\f16c"; +} + +/* line 372, source/lib/font-awesome/_icons.scss */ +.fa-instagram:before { + content: "\f16d"; +} + +/* line 373, source/lib/font-awesome/_icons.scss */ +.fa-flickr:before { + content: "\f16e"; +} + +/* line 374, source/lib/font-awesome/_icons.scss */ +.fa-adn:before { + content: "\f170"; +} + +/* line 375, source/lib/font-awesome/_icons.scss */ +.fa-bitbucket:before { + content: "\f171"; +} + +/* line 376, source/lib/font-awesome/_icons.scss */ +.fa-bitbucket-square:before { + content: "\f172"; +} + +/* line 377, source/lib/font-awesome/_icons.scss */ +.fa-tumblr:before { + content: "\f173"; +} + +/* line 378, source/lib/font-awesome/_icons.scss */ +.fa-tumblr-square:before { + content: "\f174"; +} + +/* line 379, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-down:before { + content: "\f175"; +} + +/* line 380, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-up:before { + content: "\f176"; +} + +/* line 381, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-left:before { + content: "\f177"; +} + +/* line 382, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-right:before { + content: "\f178"; +} + +/* line 383, source/lib/font-awesome/_icons.scss */ +.fa-apple:before { + content: "\f179"; +} + +/* line 384, source/lib/font-awesome/_icons.scss */ +.fa-windows:before { + content: "\f17a"; +} + +/* line 385, source/lib/font-awesome/_icons.scss */ +.fa-android:before { + content: "\f17b"; +} + +/* line 386, source/lib/font-awesome/_icons.scss */ +.fa-linux:before { + content: "\f17c"; +} + +/* line 387, source/lib/font-awesome/_icons.scss */ +.fa-dribbble:before { + content: "\f17d"; +} + +/* line 388, source/lib/font-awesome/_icons.scss */ +.fa-skype:before { + content: "\f17e"; +} + +/* line 389, source/lib/font-awesome/_icons.scss */ +.fa-foursquare:before { + content: "\f180"; +} + +/* line 390, source/lib/font-awesome/_icons.scss */ +.fa-trello:before { + content: "\f181"; +} + +/* line 391, source/lib/font-awesome/_icons.scss */ +.fa-female:before { + content: "\f182"; +} + +/* line 392, source/lib/font-awesome/_icons.scss */ +.fa-male:before { + content: "\f183"; +} + +/* line 393, source/lib/font-awesome/_icons.scss */ +.fa-gittip:before { + content: "\f184"; +} + +/* line 394, source/lib/font-awesome/_icons.scss */ +.fa-sun-o:before { + content: "\f185"; +} + +/* line 395, source/lib/font-awesome/_icons.scss */ +.fa-moon-o:before { + content: "\f186"; +} + +/* line 396, source/lib/font-awesome/_icons.scss */ +.fa-archive:before { + content: "\f187"; +} + +/* line 397, source/lib/font-awesome/_icons.scss */ +.fa-bug:before { + content: "\f188"; +} + +/* line 398, source/lib/font-awesome/_icons.scss */ +.fa-vk:before { + content: "\f189"; +} + +/* line 399, source/lib/font-awesome/_icons.scss */ +.fa-weibo:before { + content: "\f18a"; +} + +/* line 400, source/lib/font-awesome/_icons.scss */ +.fa-renren:before { + content: "\f18b"; +} + +/* line 401, source/lib/font-awesome/_icons.scss */ +.fa-pagelines:before { + content: "\f18c"; +} + +/* line 402, source/lib/font-awesome/_icons.scss */ +.fa-stack-exchange:before { + content: "\f18d"; +} + +/* line 403, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} + +/* line 404, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-left:before { + content: "\f190"; +} + +/* line 406, source/lib/font-awesome/_icons.scss */ +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} + +/* line 407, source/lib/font-awesome/_icons.scss */ +.fa-dot-circle-o:before { + content: "\f192"; +} + +/* line 408, source/lib/font-awesome/_icons.scss */ +.fa-wheelchair:before { + content: "\f193"; +} + +/* line 409, source/lib/font-awesome/_icons.scss */ +.fa-vimeo-square:before { + content: "\f194"; +} + +/* line 411, source/lib/font-awesome/_icons.scss */ +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} + +/* line 412, source/lib/font-awesome/_icons.scss */ +.fa-plus-square-o:before { + content: "\f196"; +} + +/********************************************* + * GLOBAL STYLES + *********************************************/ +/* line 7, source/template/_theme.scss */ +html { + background: white; + background: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 100, color-stop(0%, #ffffff), color-stop(100%, #f2f2f2)); + background: -webkit-radial-gradient(#ffffff, #f2f2f2); + background: -moz-radial-gradient(#ffffff, #f2f2f2); + background: -o-radial-gradient(#ffffff, #f2f2f2); + background: radial-gradient(#ffffff, #f2f2f2); +} + +@font-face { + font-family: "Gotham"; + src: local("Gotham"), url("../../fonts/Gotham/Gotham-Medium.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Gotham-Book"; + src: local("Gotham-Book"), url("../../fonts/Gotham/Gotham-Book.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Gotham-Italic"; + src: local("Gotham-Italic"), url("../../fonts/Gotham/Gotham-MediumIta.otf") format("opentype"); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: "Gotham-Bold"; + src: local("Gotham-Bold"), url("../../fonts/Gotham/Gotham-Bold.otf") format("opentype"); + font-weight: bold; + font-style: bold; +} + +/* line 42, source/template/_theme.scss */ +.reveal { + font-family: "Gotham-Book", "Helvetica", Arial, sans-serif; + font-size: 36px; + font-weight: 200; + letter-spacing: -0.02em; + color: #333333; +} + +/* line 50, source/template/_theme.scss */ +::selection { + color: white; + background: rgba(11, 79, 81, 0.99); + text-shadow: none; +} + +/* line 56, source/template/_theme.scss */ +.reveal ul li { + line-height: 1.2em; + margin-bottom: 10px; +} + +/********************************************* + * HEADERS + *********************************************/ +/* line 72, source/template/_theme.scss */ +.reveal h1, +.reveal h2, +.reveal h3, +.reveal h4, +.reveal h5, +.reveal h6 { + margin: 0 0 20px 0; + color: #f05b62; + font-family: "Gotham-Bold", Impact, sans-serif; + line-height: 0.9em; + letter-spacing: 0.02em; + text-transform: none; + text-shadow: #cccccc; +} + +/* line 84, source/template/_theme.scss */ +.reveal h1 { + text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); +} + +/* line 88, source/template/_theme.scss */ +.reveal h1 { + font-size: 3.77em; +} + +/* line 89, source/template/_theme.scss */ +.reveal h2 { + font-size: 2.11em; +} + +/* line 90, source/template/_theme.scss */ +.reveal h3 { + font-size: 1.55em; +} + +/* line 91, source/template/_theme.scss */ +.reveal h4 { + font-size: 1em; +} + +/********************************************* +* OVERRIDES +**********************************************/ +/* line 96, source/template/_theme.scss */ +.left-align { + text-align: left; +} + +/* line 97, source/template/_theme.scss */ +.right-align { + text-align: right; +} + +/* line 98, source/template/_theme.scss */ +.left { + float: left; +} + +/* line 99, source/template/_theme.scss */ +.right { + float: right; +} + +/* line 100, source/template/_theme.scss */ +.clear { + clear: both; +} + +/* line 101, source/template/_theme.scss */ +.blue, .event__title { + color: #01A9B4 !important; +} + +/* line 102, source/template/_theme.scss */ +.green { + color: #92BB44 !important; +} + +/* line 103, source/template/_theme.scss */ +.yellow { + color: #EDAB23 !important; +} + +/* line 104, source/template/_theme.scss */ +.pink { + color: #F05B62 !important; +} + +/* line 105, source/template/_theme.scss */ +.red { + color: #8B0036 !important; +} + +/* line 106, source/template/_theme.scss */ +.grey { + color: #333333 !important; +} + +/* line 107, source/template/_theme.scss */ +.grey--light, .event__title small { + color: #666 !important; +} + +/********************************************* + * LINKS + *********************************************/ +/* line 114, source/template/_theme.scss */ +.reveal a:not(.image) { + -webkit-transition: color 0.15x ease; + -moz-transition: color 0.15x ease; + -o-transition: color 0.15x ease; + transition: color 0.15x ease; + color: #01a9b4; + text-decoration: none; +} + +/* line 119, source/template/_theme.scss */ +.reveal a:not(.image):hover { + color: #f9b8bb; + text-shadow: none; + border: none; +} + +/* line 126, source/template/_theme.scss */ +.reveal .roll span:after { + color: #fff; + background: #01a9b4; +} + +/********************************************* + * IMAGES + *********************************************/ +/* line 136, source/template/_theme.scss */ +.reveal section img { + margin: 15px; + background: rgba(255, 255, 255, 0.12); + border: 4px solid #333333; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); + -webkit-transition: all 0.2s linear; + -moz-transition: all 0.2s linear; + -o-transition: all 0.2s linear; + transition: all 0.2s linear; +} + +/* line 146, source/template/_theme.scss */ +.reveal a:hover img { + background: rgba(255, 255, 255, 0.2); + border-color: #01a9b4; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); +} + +/********************************************* + * NAVIGATION CONTROLS + *********************************************/ +/* line 159, source/template/_theme.scss */ +.reveal .controls .navigate-left, +.reveal .controls .navigate-left.enabled { + border-right-color: #01a9b4; +} + +/* line 164, source/template/_theme.scss */ +.reveal .controls .navigate-right, +.reveal .controls .navigate-right.enabled { + border-left-color: #01a9b4; +} + +/* line 169, source/template/_theme.scss */ +.reveal .controls .navigate-up, +.reveal .controls .navigate-up.enabled { + border-bottom-color: #01a9b4; +} + +/* line 174, source/template/_theme.scss */ +.reveal .controls .navigate-down, +.reveal .controls .navigate-down.enabled { + border-top-color: #01a9b4; +} + +/* line 178, source/template/_theme.scss */ +.reveal .controls div.navigate-left.enabled:hover { + border-right-color: #f9b8bb; +} + +/* line 182, source/template/_theme.scss */ +.reveal .controls div.navigate-right.enabled:hover { + border-left-color: #f9b8bb; +} + +/* line 186, source/template/_theme.scss */ +.reveal .controls div.navigate-up.enabled:hover { + border-bottom-color: #f9b8bb; +} + +/* line 190, source/template/_theme.scss */ +.reveal .controls div.navigate-down.enabled:hover { + border-top-color: #f9b8bb; +} + +/********************************************* + * PROGRESS BAR + *********************************************/ +/* line 199, source/template/_theme.scss */ +.reveal .progress { + background: rgba(0, 0, 0, 0.2); +} + +/* line 202, source/template/_theme.scss */ +.reveal .progress span { + background: #01a9b4; + -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); +} + +/********************************************* + * FOOTER + *********************************************/ +/* line 213, source/template/_theme.scss */ +.reveal footer { + position: fixed; + height: 40px; + width: 100%; + bottom: 3px; + left: 0; + z-index: 10; + font-size: 35%; + text-align: right; + background-image: url(../../images/pink-logo.png); + background-repeat: no-repeat; + background-size: auto 100%; +} +/* line 227, source/template/_theme.scss */ +.reveal .copyright { + margin: 15px 5px 0 100px; + font-style: italic; +} +/* line 231, source/template/_theme.scss */ +.reveal .copyright a img { + vertical-align: middle; +} + +/********************************************* + * EVENT + *********************************************/ +/* line 241, source/template/_theme.scss */ +.event__title { + text-transform: uppercase !important; +} diff --git a/css/theme/gdisunny.css b/css/theme/gdisunny.css new file mode 100755 index 0000000..f7a1638 --- /dev/null +++ b/css/theme/gdisunny.css @@ -0,0 +1,2463 @@ +/*! + * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url("../../fonts/FontAwesome/fontawesome-webfont.eot?v=4.0.3"); + src: url("../../fonts/FontAwesome/fontawesome-webfont.eot?#iefix&v=4.0.3") format("embedded-opentype"), url("../../fonts/FontAwesome/fontawesome-webfont.woff?v=4.0.3") format("woff"), url("../../fonts/FontAwesome/fontawesome-webfont.ttf?v=4.0.3") format("truetype"), url("../../fonts/FontAwesome/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular") format("svg"); + font-weight: normal; + font-style: normal; +} + +/* line 4, source/lib/font-awesome/_core.scss */ +.fa { + display: inline-block; + font-family: FontAwesome !important; + font-style: normal !important; + font-weight: normal !important; + line-height: 1 !important; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* makes the font 33% larger relative to the icon container */ +/* line 5, source/lib/font-awesome/_larger.scss */ +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -15%; +} + +/* line 10, source/lib/font-awesome/_larger.scss */ +.fa-2x { + font-size: 2em; +} + +/* line 11, source/lib/font-awesome/_larger.scss */ +.fa-3x { + font-size: 3em; +} + +/* line 12, source/lib/font-awesome/_larger.scss */ +.fa-4x { + font-size: 4em; +} + +/* line 13, source/lib/font-awesome/_larger.scss */ +.fa-5x { + font-size: 5em; +} + +/* line 3, source/lib/font-awesome/_fixed-width.scss */ +.fa-fw { + width: 1.28571em; + text-align: center; +} + +/* line 4, source/lib/font-awesome/_list.scss */ +.fa-ul { + padding-left: 0; + margin-left: 2.14286em; + list-style-type: none; +} +/* line 8, source/lib/font-awesome/_list.scss */ +.fa-ul > li { + position: relative; +} + +/* line 10, source/lib/font-awesome/_list.scss */ +.fa-li { + position: absolute; + left: -2.14286em; + width: 2.14286em; + top: 0.14286em; + text-align: center; +} +/* line 16, source/lib/font-awesome/_list.scss */ +.fa-li.fa-lg { + left: -1.85714em; +} + +/* line 4, source/lib/font-awesome/_bordered-pulled.scss */ +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} + +/* line 10, source/lib/font-awesome/_bordered-pulled.scss */ +.pull-right { + float: right; +} + +/* line 11, source/lib/font-awesome/_bordered-pulled.scss */ +.pull-left { + float: left; +} + +/* line 14, source/lib/font-awesome/_bordered-pulled.scss */ +.fa.pull-left { + margin-right: .3em; +} +/* line 15, source/lib/font-awesome/_bordered-pulled.scss */ +.fa.pull-right { + margin-left: .3em; +} + +/* line 4, source/lib/font-awesome/_spinning.scss */ +.fa-spin { + -webkit-animation: spin 2s infinite linear; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} + +@-moz-keyframes spin { + /* line 12, source/lib/font-awesome/_spinning.scss */ + 0% { + -moz-transform: rotate(0deg); + } + + /* line 13, source/lib/font-awesome/_spinning.scss */ + 100% { + -moz-transform: rotate(359deg); + } +} + +@-webkit-keyframes spin { + /* line 16, source/lib/font-awesome/_spinning.scss */ + 0% { + -webkit-transform: rotate(0deg); + } + + /* line 17, source/lib/font-awesome/_spinning.scss */ + 100% { + -webkit-transform: rotate(359deg); + } +} + +@-o-keyframes spin { + /* line 20, source/lib/font-awesome/_spinning.scss */ + 0% { + -o-transform: rotate(0deg); + } + + /* line 21, source/lib/font-awesome/_spinning.scss */ + 100% { + -o-transform: rotate(359deg); + } +} + +@-ms-keyframes spin { + /* line 24, source/lib/font-awesome/_spinning.scss */ + 0% { + -ms-transform: rotate(0deg); + } + + /* line 25, source/lib/font-awesome/_spinning.scss */ + 100% { + -ms-transform: rotate(359deg); + } +} + +@keyframes spin { + /* line 28, source/lib/font-awesome/_spinning.scss */ + 0% { + transform: rotate(0deg); + } + + /* line 29, source/lib/font-awesome/_spinning.scss */ + 100% { + transform: rotate(359deg); + } +} + +/* line 4, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); +} + +/* line 5, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); +} + +/* line 6, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); +} + +/* line 8, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: scale(-1, 1); + -moz-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +/* line 9, source/lib/font-awesome/_rotated-flipped.scss */ +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: scale(1, -1); + -moz-transform: scale(1, -1); + -ms-transform: scale(1, -1); + -o-transform: scale(1, -1); + transform: scale(1, -1); +} + +/* line 4, source/lib/font-awesome/_stacked.scss */ +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} + +/* line 12, source/lib/font-awesome/_stacked.scss */ +.fa-stack-1x, .fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} + +/* line 18, source/lib/font-awesome/_stacked.scss */ +.fa-stack-1x { + line-height: inherit; +} + +/* line 19, source/lib/font-awesome/_stacked.scss */ +.fa-stack-2x { + font-size: 2em; +} + +/* line 20, source/lib/font-awesome/_stacked.scss */ +.fa-inverse { + color: white; +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +/* line 4, source/lib/font-awesome/_icons.scss */ +.fa-glass:before { + content: "\f000"; +} + +/* line 5, source/lib/font-awesome/_icons.scss */ +.fa-music:before { + content: "\f001"; +} + +/* line 6, source/lib/font-awesome/_icons.scss */ +.fa-search:before { + content: "\f002"; +} + +/* line 7, source/lib/font-awesome/_icons.scss */ +.fa-envelope-o:before { + content: "\f003"; +} + +/* line 8, source/lib/font-awesome/_icons.scss */ +.fa-heart:before { + content: "\f004"; +} + +/* line 9, source/lib/font-awesome/_icons.scss */ +.fa-star:before { + content: "\f005"; +} + +/* line 10, source/lib/font-awesome/_icons.scss */ +.fa-star-o:before { + content: "\f006"; +} + +/* line 11, source/lib/font-awesome/_icons.scss */ +.fa-user:before { + content: "\f007"; +} + +/* line 12, source/lib/font-awesome/_icons.scss */ +.fa-film:before { + content: "\f008"; +} + +/* line 13, source/lib/font-awesome/_icons.scss */ +.fa-th-large:before { + content: "\f009"; +} + +/* line 14, source/lib/font-awesome/_icons.scss */ +.fa-th:before { + content: "\f00a"; +} + +/* line 15, source/lib/font-awesome/_icons.scss */ +.fa-th-list:before { + content: "\f00b"; +} + +/* line 16, source/lib/font-awesome/_icons.scss */ +.fa-check:before { + content: "\f00c"; +} + +/* line 17, source/lib/font-awesome/_icons.scss */ +.fa-times:before { + content: "\f00d"; +} + +/* line 18, source/lib/font-awesome/_icons.scss */ +.fa-search-plus:before { + content: "\f00e"; +} + +/* line 19, source/lib/font-awesome/_icons.scss */ +.fa-search-minus:before { + content: "\f010"; +} + +/* line 20, source/lib/font-awesome/_icons.scss */ +.fa-power-off:before { + content: "\f011"; +} + +/* line 21, source/lib/font-awesome/_icons.scss */ +.fa-signal:before { + content: "\f012"; +} + +/* line 23, source/lib/font-awesome/_icons.scss */ +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} + +/* line 24, source/lib/font-awesome/_icons.scss */ +.fa-trash-o:before { + content: "\f014"; +} + +/* line 25, source/lib/font-awesome/_icons.scss */ +.fa-home:before { + content: "\f015"; +} + +/* line 26, source/lib/font-awesome/_icons.scss */ +.fa-file-o:before { + content: "\f016"; +} + +/* line 27, source/lib/font-awesome/_icons.scss */ +.fa-clock-o:before { + content: "\f017"; +} + +/* line 28, source/lib/font-awesome/_icons.scss */ +.fa-road:before { + content: "\f018"; +} + +/* line 29, source/lib/font-awesome/_icons.scss */ +.fa-download:before { + content: "\f019"; +} + +/* line 30, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} + +/* line 31, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} + +/* line 32, source/lib/font-awesome/_icons.scss */ +.fa-inbox:before { + content: "\f01c"; +} + +/* line 33, source/lib/font-awesome/_icons.scss */ +.fa-play-circle-o:before { + content: "\f01d"; +} + +/* line 35, source/lib/font-awesome/_icons.scss */ +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} + +/* line 36, source/lib/font-awesome/_icons.scss */ +.fa-refresh:before { + content: "\f021"; +} + +/* line 37, source/lib/font-awesome/_icons.scss */ +.fa-list-alt:before { + content: "\f022"; +} + +/* line 38, source/lib/font-awesome/_icons.scss */ +.fa-lock:before { + content: "\f023"; +} + +/* line 39, source/lib/font-awesome/_icons.scss */ +.fa-flag:before { + content: "\f024"; +} + +/* line 40, source/lib/font-awesome/_icons.scss */ +.fa-headphones:before { + content: "\f025"; +} + +/* line 41, source/lib/font-awesome/_icons.scss */ +.fa-volume-off:before { + content: "\f026"; +} + +/* line 42, source/lib/font-awesome/_icons.scss */ +.fa-volume-down:before { + content: "\f027"; +} + +/* line 43, source/lib/font-awesome/_icons.scss */ +.fa-volume-up:before { + content: "\f028"; +} + +/* line 44, source/lib/font-awesome/_icons.scss */ +.fa-qrcode:before { + content: "\f029"; +} + +/* line 45, source/lib/font-awesome/_icons.scss */ +.fa-barcode:before { + content: "\f02a"; +} + +/* line 46, source/lib/font-awesome/_icons.scss */ +.fa-tag:before { + content: "\f02b"; +} + +/* line 47, source/lib/font-awesome/_icons.scss */ +.fa-tags:before { + content: "\f02c"; +} + +/* line 48, source/lib/font-awesome/_icons.scss */ +.fa-book:before { + content: "\f02d"; +} + +/* line 49, source/lib/font-awesome/_icons.scss */ +.fa-bookmark:before { + content: "\f02e"; +} + +/* line 50, source/lib/font-awesome/_icons.scss */ +.fa-print:before { + content: "\f02f"; +} + +/* line 51, source/lib/font-awesome/_icons.scss */ +.fa-camera:before { + content: "\f030"; +} + +/* line 52, source/lib/font-awesome/_icons.scss */ +.fa-font:before { + content: "\f031"; +} + +/* line 53, source/lib/font-awesome/_icons.scss */ +.fa-bold:before { + content: "\f032"; +} + +/* line 54, source/lib/font-awesome/_icons.scss */ +.fa-italic:before { + content: "\f033"; +} + +/* line 55, source/lib/font-awesome/_icons.scss */ +.fa-text-height:before { + content: "\f034"; +} + +/* line 56, source/lib/font-awesome/_icons.scss */ +.fa-text-width:before { + content: "\f035"; +} + +/* line 57, source/lib/font-awesome/_icons.scss */ +.fa-align-left:before { + content: "\f036"; +} + +/* line 58, source/lib/font-awesome/_icons.scss */ +.fa-align-center:before { + content: "\f037"; +} + +/* line 59, source/lib/font-awesome/_icons.scss */ +.fa-align-right:before { + content: "\f038"; +} + +/* line 60, source/lib/font-awesome/_icons.scss */ +.fa-align-justify:before { + content: "\f039"; +} + +/* line 61, source/lib/font-awesome/_icons.scss */ +.fa-list:before { + content: "\f03a"; +} + +/* line 63, source/lib/font-awesome/_icons.scss */ +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} + +/* line 64, source/lib/font-awesome/_icons.scss */ +.fa-indent:before { + content: "\f03c"; +} + +/* line 65, source/lib/font-awesome/_icons.scss */ +.fa-video-camera:before { + content: "\f03d"; +} + +/* line 66, source/lib/font-awesome/_icons.scss */ +.fa-picture-o:before { + content: "\f03e"; +} + +/* line 67, source/lib/font-awesome/_icons.scss */ +.fa-pencil:before { + content: "\f040"; +} + +/* line 68, source/lib/font-awesome/_icons.scss */ +.fa-map-marker:before { + content: "\f041"; +} + +/* line 69, source/lib/font-awesome/_icons.scss */ +.fa-adjust:before { + content: "\f042"; +} + +/* line 70, source/lib/font-awesome/_icons.scss */ +.fa-tint:before { + content: "\f043"; +} + +/* line 72, source/lib/font-awesome/_icons.scss */ +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} + +/* line 73, source/lib/font-awesome/_icons.scss */ +.fa-share-square-o:before { + content: "\f045"; +} + +/* line 74, source/lib/font-awesome/_icons.scss */ +.fa-check-square-o:before { + content: "\f046"; +} + +/* line 75, source/lib/font-awesome/_icons.scss */ +.fa-arrows:before { + content: "\f047"; +} + +/* line 76, source/lib/font-awesome/_icons.scss */ +.fa-step-backward:before { + content: "\f048"; +} + +/* line 77, source/lib/font-awesome/_icons.scss */ +.fa-fast-backward:before { + content: "\f049"; +} + +/* line 78, source/lib/font-awesome/_icons.scss */ +.fa-backward:before { + content: "\f04a"; +} + +/* line 79, source/lib/font-awesome/_icons.scss */ +.fa-play:before { + content: "\f04b"; +} + +/* line 80, source/lib/font-awesome/_icons.scss */ +.fa-pause:before { + content: "\f04c"; +} + +/* line 81, source/lib/font-awesome/_icons.scss */ +.fa-stop:before { + content: "\f04d"; +} + +/* line 82, source/lib/font-awesome/_icons.scss */ +.fa-forward:before { + content: "\f04e"; +} + +/* line 83, source/lib/font-awesome/_icons.scss */ +.fa-fast-forward:before { + content: "\f050"; +} + +/* line 84, source/lib/font-awesome/_icons.scss */ +.fa-step-forward:before { + content: "\f051"; +} + +/* line 85, source/lib/font-awesome/_icons.scss */ +.fa-eject:before { + content: "\f052"; +} + +/* line 86, source/lib/font-awesome/_icons.scss */ +.fa-chevron-left:before { + content: "\f053"; +} + +/* line 87, source/lib/font-awesome/_icons.scss */ +.fa-chevron-right:before { + content: "\f054"; +} + +/* line 88, source/lib/font-awesome/_icons.scss */ +.fa-plus-circle:before { + content: "\f055"; +} + +/* line 89, source/lib/font-awesome/_icons.scss */ +.fa-minus-circle:before { + content: "\f056"; +} + +/* line 90, source/lib/font-awesome/_icons.scss */ +.fa-times-circle:before { + content: "\f057"; +} + +/* line 91, source/lib/font-awesome/_icons.scss */ +.fa-check-circle:before { + content: "\f058"; +} + +/* line 92, source/lib/font-awesome/_icons.scss */ +.fa-question-circle:before { + content: "\f059"; +} + +/* line 93, source/lib/font-awesome/_icons.scss */ +.fa-info-circle:before { + content: "\f05a"; +} + +/* line 94, source/lib/font-awesome/_icons.scss */ +.fa-crosshairs:before { + content: "\f05b"; +} + +/* line 95, source/lib/font-awesome/_icons.scss */ +.fa-times-circle-o:before { + content: "\f05c"; +} + +/* line 96, source/lib/font-awesome/_icons.scss */ +.fa-check-circle-o:before { + content: "\f05d"; +} + +/* line 97, source/lib/font-awesome/_icons.scss */ +.fa-ban:before { + content: "\f05e"; +} + +/* line 98, source/lib/font-awesome/_icons.scss */ +.fa-arrow-left:before { + content: "\f060"; +} + +/* line 99, source/lib/font-awesome/_icons.scss */ +.fa-arrow-right:before { + content: "\f061"; +} + +/* line 100, source/lib/font-awesome/_icons.scss */ +.fa-arrow-up:before { + content: "\f062"; +} + +/* line 101, source/lib/font-awesome/_icons.scss */ +.fa-arrow-down:before { + content: "\f063"; +} + +/* line 103, source/lib/font-awesome/_icons.scss */ +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} + +/* line 104, source/lib/font-awesome/_icons.scss */ +.fa-expand:before { + content: "\f065"; +} + +/* line 105, source/lib/font-awesome/_icons.scss */ +.fa-compress:before { + content: "\f066"; +} + +/* line 106, source/lib/font-awesome/_icons.scss */ +.fa-plus:before { + content: "\f067"; +} + +/* line 107, source/lib/font-awesome/_icons.scss */ +.fa-minus:before { + content: "\f068"; +} + +/* line 108, source/lib/font-awesome/_icons.scss */ +.fa-asterisk:before { + content: "\f069"; +} + +/* line 109, source/lib/font-awesome/_icons.scss */ +.fa-exclamation-circle:before { + content: "\f06a"; +} + +/* line 110, source/lib/font-awesome/_icons.scss */ +.fa-gift:before { + content: "\f06b"; +} + +/* line 111, source/lib/font-awesome/_icons.scss */ +.fa-leaf:before { + content: "\f06c"; +} + +/* line 112, source/lib/font-awesome/_icons.scss */ +.fa-fire:before { + content: "\f06d"; +} + +/* line 113, source/lib/font-awesome/_icons.scss */ +.fa-eye:before { + content: "\f06e"; +} + +/* line 114, source/lib/font-awesome/_icons.scss */ +.fa-eye-slash:before { + content: "\f070"; +} + +/* line 116, source/lib/font-awesome/_icons.scss */ +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} + +/* line 117, source/lib/font-awesome/_icons.scss */ +.fa-plane:before { + content: "\f072"; +} + +/* line 118, source/lib/font-awesome/_icons.scss */ +.fa-calendar:before { + content: "\f073"; +} + +/* line 119, source/lib/font-awesome/_icons.scss */ +.fa-random:before { + content: "\f074"; +} + +/* line 120, source/lib/font-awesome/_icons.scss */ +.fa-comment:before { + content: "\f075"; +} + +/* line 121, source/lib/font-awesome/_icons.scss */ +.fa-magnet:before { + content: "\f076"; +} + +/* line 122, source/lib/font-awesome/_icons.scss */ +.fa-chevron-up:before { + content: "\f077"; +} + +/* line 123, source/lib/font-awesome/_icons.scss */ +.fa-chevron-down:before { + content: "\f078"; +} + +/* line 124, source/lib/font-awesome/_icons.scss */ +.fa-retweet:before { + content: "\f079"; +} + +/* line 125, source/lib/font-awesome/_icons.scss */ +.fa-shopping-cart:before { + content: "\f07a"; +} + +/* line 126, source/lib/font-awesome/_icons.scss */ +.fa-folder:before { + content: "\f07b"; +} + +/* line 127, source/lib/font-awesome/_icons.scss */ +.fa-folder-open:before { + content: "\f07c"; +} + +/* line 128, source/lib/font-awesome/_icons.scss */ +.fa-arrows-v:before { + content: "\f07d"; +} + +/* line 129, source/lib/font-awesome/_icons.scss */ +.fa-arrows-h:before { + content: "\f07e"; +} + +/* line 130, source/lib/font-awesome/_icons.scss */ +.fa-bar-chart-o:before { + content: "\f080"; +} + +/* line 131, source/lib/font-awesome/_icons.scss */ +.fa-twitter-square:before { + content: "\f081"; +} + +/* line 132, source/lib/font-awesome/_icons.scss */ +.fa-facebook-square:before { + content: "\f082"; +} + +/* line 133, source/lib/font-awesome/_icons.scss */ +.fa-camera-retro:before { + content: "\f083"; +} + +/* line 134, source/lib/font-awesome/_icons.scss */ +.fa-key:before { + content: "\f084"; +} + +/* line 136, source/lib/font-awesome/_icons.scss */ +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} + +/* line 137, source/lib/font-awesome/_icons.scss */ +.fa-comments:before { + content: "\f086"; +} + +/* line 138, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-o-up:before { + content: "\f087"; +} + +/* line 139, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-o-down:before { + content: "\f088"; +} + +/* line 140, source/lib/font-awesome/_icons.scss */ +.fa-star-half:before { + content: "\f089"; +} + +/* line 141, source/lib/font-awesome/_icons.scss */ +.fa-heart-o:before { + content: "\f08a"; +} + +/* line 142, source/lib/font-awesome/_icons.scss */ +.fa-sign-out:before { + content: "\f08b"; +} + +/* line 143, source/lib/font-awesome/_icons.scss */ +.fa-linkedin-square:before { + content: "\f08c"; +} + +/* line 144, source/lib/font-awesome/_icons.scss */ +.fa-thumb-tack:before { + content: "\f08d"; +} + +/* line 145, source/lib/font-awesome/_icons.scss */ +.fa-external-link:before { + content: "\f08e"; +} + +/* line 146, source/lib/font-awesome/_icons.scss */ +.fa-sign-in:before { + content: "\f090"; +} + +/* line 147, source/lib/font-awesome/_icons.scss */ +.fa-trophy:before { + content: "\f091"; +} + +/* line 148, source/lib/font-awesome/_icons.scss */ +.fa-github-square:before { + content: "\f092"; +} + +/* line 149, source/lib/font-awesome/_icons.scss */ +.fa-upload:before { + content: "\f093"; +} + +/* line 150, source/lib/font-awesome/_icons.scss */ +.fa-lemon-o:before { + content: "\f094"; +} + +/* line 151, source/lib/font-awesome/_icons.scss */ +.fa-phone:before { + content: "\f095"; +} + +/* line 152, source/lib/font-awesome/_icons.scss */ +.fa-square-o:before { + content: "\f096"; +} + +/* line 153, source/lib/font-awesome/_icons.scss */ +.fa-bookmark-o:before { + content: "\f097"; +} + +/* line 154, source/lib/font-awesome/_icons.scss */ +.fa-phone-square:before { + content: "\f098"; +} + +/* line 155, source/lib/font-awesome/_icons.scss */ +.fa-twitter:before { + content: "\f099"; +} + +/* line 156, source/lib/font-awesome/_icons.scss */ +.fa-facebook:before { + content: "\f09a"; +} + +/* line 157, source/lib/font-awesome/_icons.scss */ +.fa-github:before { + content: "\f09b"; +} + +/* line 158, source/lib/font-awesome/_icons.scss */ +.fa-unlock:before { + content: "\f09c"; +} + +/* line 159, source/lib/font-awesome/_icons.scss */ +.fa-credit-card:before { + content: "\f09d"; +} + +/* line 160, source/lib/font-awesome/_icons.scss */ +.fa-rss:before { + content: "\f09e"; +} + +/* line 161, source/lib/font-awesome/_icons.scss */ +.fa-hdd-o:before { + content: "\f0a0"; +} + +/* line 162, source/lib/font-awesome/_icons.scss */ +.fa-bullhorn:before { + content: "\f0a1"; +} + +/* line 163, source/lib/font-awesome/_icons.scss */ +.fa-bell:before { + content: "\f0f3"; +} + +/* line 164, source/lib/font-awesome/_icons.scss */ +.fa-certificate:before { + content: "\f0a3"; +} + +/* line 165, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-right:before { + content: "\f0a4"; +} + +/* line 166, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-left:before { + content: "\f0a5"; +} + +/* line 167, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-up:before { + content: "\f0a6"; +} + +/* line 168, source/lib/font-awesome/_icons.scss */ +.fa-hand-o-down:before { + content: "\f0a7"; +} + +/* line 169, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-left:before { + content: "\f0a8"; +} + +/* line 170, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-right:before { + content: "\f0a9"; +} + +/* line 171, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-up:before { + content: "\f0aa"; +} + +/* line 172, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-down:before { + content: "\f0ab"; +} + +/* line 173, source/lib/font-awesome/_icons.scss */ +.fa-globe:before { + content: "\f0ac"; +} + +/* line 174, source/lib/font-awesome/_icons.scss */ +.fa-wrench:before { + content: "\f0ad"; +} + +/* line 175, source/lib/font-awesome/_icons.scss */ +.fa-tasks:before { + content: "\f0ae"; +} + +/* line 176, source/lib/font-awesome/_icons.scss */ +.fa-filter:before { + content: "\f0b0"; +} + +/* line 177, source/lib/font-awesome/_icons.scss */ +.fa-briefcase:before { + content: "\f0b1"; +} + +/* line 178, source/lib/font-awesome/_icons.scss */ +.fa-arrows-alt:before { + content: "\f0b2"; +} + +/* line 180, source/lib/font-awesome/_icons.scss */ +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} + +/* line 182, source/lib/font-awesome/_icons.scss */ +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} + +/* line 183, source/lib/font-awesome/_icons.scss */ +.fa-cloud:before { + content: "\f0c2"; +} + +/* line 184, source/lib/font-awesome/_icons.scss */ +.fa-flask:before { + content: "\f0c3"; +} + +/* line 186, source/lib/font-awesome/_icons.scss */ +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} + +/* line 188, source/lib/font-awesome/_icons.scss */ +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} + +/* line 189, source/lib/font-awesome/_icons.scss */ +.fa-paperclip:before { + content: "\f0c6"; +} + +/* line 191, source/lib/font-awesome/_icons.scss */ +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} + +/* line 192, source/lib/font-awesome/_icons.scss */ +.fa-square:before { + content: "\f0c8"; +} + +/* line 193, source/lib/font-awesome/_icons.scss */ +.fa-bars:before { + content: "\f0c9"; +} + +/* line 194, source/lib/font-awesome/_icons.scss */ +.fa-list-ul:before { + content: "\f0ca"; +} + +/* line 195, source/lib/font-awesome/_icons.scss */ +.fa-list-ol:before { + content: "\f0cb"; +} + +/* line 196, source/lib/font-awesome/_icons.scss */ +.fa-strikethrough:before { + content: "\f0cc"; +} + +/* line 197, source/lib/font-awesome/_icons.scss */ +.fa-underline:before { + content: "\f0cd"; +} + +/* line 198, source/lib/font-awesome/_icons.scss */ +.fa-table:before { + content: "\f0ce"; +} + +/* line 199, source/lib/font-awesome/_icons.scss */ +.fa-magic:before { + content: "\f0d0"; +} + +/* line 200, source/lib/font-awesome/_icons.scss */ +.fa-truck:before { + content: "\f0d1"; +} + +/* line 201, source/lib/font-awesome/_icons.scss */ +.fa-pinterest:before { + content: "\f0d2"; +} + +/* line 202, source/lib/font-awesome/_icons.scss */ +.fa-pinterest-square:before { + content: "\f0d3"; +} + +/* line 203, source/lib/font-awesome/_icons.scss */ +.fa-google-plus-square:before { + content: "\f0d4"; +} + +/* line 204, source/lib/font-awesome/_icons.scss */ +.fa-google-plus:before { + content: "\f0d5"; +} + +/* line 205, source/lib/font-awesome/_icons.scss */ +.fa-money:before { + content: "\f0d6"; +} + +/* line 206, source/lib/font-awesome/_icons.scss */ +.fa-caret-down:before { + content: "\f0d7"; +} + +/* line 207, source/lib/font-awesome/_icons.scss */ +.fa-caret-up:before { + content: "\f0d8"; +} + +/* line 208, source/lib/font-awesome/_icons.scss */ +.fa-caret-left:before { + content: "\f0d9"; +} + +/* line 209, source/lib/font-awesome/_icons.scss */ +.fa-caret-right:before { + content: "\f0da"; +} + +/* line 210, source/lib/font-awesome/_icons.scss */ +.fa-columns:before { + content: "\f0db"; +} + +/* line 212, source/lib/font-awesome/_icons.scss */ +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} + +/* line 214, source/lib/font-awesome/_icons.scss */ +.fa-sort-down:before, +.fa-sort-asc:before { + content: "\f0dd"; +} + +/* line 216, source/lib/font-awesome/_icons.scss */ +.fa-sort-up:before, +.fa-sort-desc:before { + content: "\f0de"; +} + +/* line 217, source/lib/font-awesome/_icons.scss */ +.fa-envelope:before { + content: "\f0e0"; +} + +/* line 218, source/lib/font-awesome/_icons.scss */ +.fa-linkedin:before { + content: "\f0e1"; +} + +/* line 220, source/lib/font-awesome/_icons.scss */ +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} + +/* line 222, source/lib/font-awesome/_icons.scss */ +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} + +/* line 224, source/lib/font-awesome/_icons.scss */ +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} + +/* line 225, source/lib/font-awesome/_icons.scss */ +.fa-comment-o:before { + content: "\f0e5"; +} + +/* line 226, source/lib/font-awesome/_icons.scss */ +.fa-comments-o:before { + content: "\f0e6"; +} + +/* line 228, source/lib/font-awesome/_icons.scss */ +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} + +/* line 229, source/lib/font-awesome/_icons.scss */ +.fa-sitemap:before { + content: "\f0e8"; +} + +/* line 230, source/lib/font-awesome/_icons.scss */ +.fa-umbrella:before { + content: "\f0e9"; +} + +/* line 232, source/lib/font-awesome/_icons.scss */ +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} + +/* line 233, source/lib/font-awesome/_icons.scss */ +.fa-lightbulb-o:before { + content: "\f0eb"; +} + +/* line 234, source/lib/font-awesome/_icons.scss */ +.fa-exchange:before { + content: "\f0ec"; +} + +/* line 235, source/lib/font-awesome/_icons.scss */ +.fa-cloud-download:before { + content: "\f0ed"; +} + +/* line 236, source/lib/font-awesome/_icons.scss */ +.fa-cloud-upload:before { + content: "\f0ee"; +} + +/* line 237, source/lib/font-awesome/_icons.scss */ +.fa-user-md:before { + content: "\f0f0"; +} + +/* line 238, source/lib/font-awesome/_icons.scss */ +.fa-stethoscope:before { + content: "\f0f1"; +} + +/* line 239, source/lib/font-awesome/_icons.scss */ +.fa-suitcase:before { + content: "\f0f2"; +} + +/* line 240, source/lib/font-awesome/_icons.scss */ +.fa-bell-o:before { + content: "\f0a2"; +} + +/* line 241, source/lib/font-awesome/_icons.scss */ +.fa-coffee:before { + content: "\f0f4"; +} + +/* line 242, source/lib/font-awesome/_icons.scss */ +.fa-cutlery:before { + content: "\f0f5"; +} + +/* line 243, source/lib/font-awesome/_icons.scss */ +.fa-file-text-o:before { + content: "\f0f6"; +} + +/* line 244, source/lib/font-awesome/_icons.scss */ +.fa-building-o:before { + content: "\f0f7"; +} + +/* line 245, source/lib/font-awesome/_icons.scss */ +.fa-hospital-o:before { + content: "\f0f8"; +} + +/* line 246, source/lib/font-awesome/_icons.scss */ +.fa-ambulance:before { + content: "\f0f9"; +} + +/* line 247, source/lib/font-awesome/_icons.scss */ +.fa-medkit:before { + content: "\f0fa"; +} + +/* line 248, source/lib/font-awesome/_icons.scss */ +.fa-fighter-jet:before { + content: "\f0fb"; +} + +/* line 249, source/lib/font-awesome/_icons.scss */ +.fa-beer:before { + content: "\f0fc"; +} + +/* line 250, source/lib/font-awesome/_icons.scss */ +.fa-h-square:before { + content: "\f0fd"; +} + +/* line 251, source/lib/font-awesome/_icons.scss */ +.fa-plus-square:before { + content: "\f0fe"; +} + +/* line 252, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-left:before { + content: "\f100"; +} + +/* line 253, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-right:before { + content: "\f101"; +} + +/* line 254, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-up:before { + content: "\f102"; +} + +/* line 255, source/lib/font-awesome/_icons.scss */ +.fa-angle-double-down:before { + content: "\f103"; +} + +/* line 256, source/lib/font-awesome/_icons.scss */ +.fa-angle-left:before { + content: "\f104"; +} + +/* line 257, source/lib/font-awesome/_icons.scss */ +.fa-angle-right:before { + content: "\f105"; +} + +/* line 258, source/lib/font-awesome/_icons.scss */ +.fa-angle-up:before { + content: "\f106"; +} + +/* line 259, source/lib/font-awesome/_icons.scss */ +.fa-angle-down:before { + content: "\f107"; +} + +/* line 260, source/lib/font-awesome/_icons.scss */ +.fa-desktop:before { + content: "\f108"; +} + +/* line 261, source/lib/font-awesome/_icons.scss */ +.fa-laptop:before { + content: "\f109"; +} + +/* line 262, source/lib/font-awesome/_icons.scss */ +.fa-tablet:before { + content: "\f10a"; +} + +/* line 264, source/lib/font-awesome/_icons.scss */ +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} + +/* line 265, source/lib/font-awesome/_icons.scss */ +.fa-circle-o:before { + content: "\f10c"; +} + +/* line 266, source/lib/font-awesome/_icons.scss */ +.fa-quote-left:before { + content: "\f10d"; +} + +/* line 267, source/lib/font-awesome/_icons.scss */ +.fa-quote-right:before { + content: "\f10e"; +} + +/* line 268, source/lib/font-awesome/_icons.scss */ +.fa-spinner:before { + content: "\f110"; +} + +/* line 269, source/lib/font-awesome/_icons.scss */ +.fa-circle:before { + content: "\f111"; +} + +/* line 271, source/lib/font-awesome/_icons.scss */ +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} + +/* line 272, source/lib/font-awesome/_icons.scss */ +.fa-github-alt:before { + content: "\f113"; +} + +/* line 273, source/lib/font-awesome/_icons.scss */ +.fa-folder-o:before { + content: "\f114"; +} + +/* line 274, source/lib/font-awesome/_icons.scss */ +.fa-folder-open-o:before { + content: "\f115"; +} + +/* line 275, source/lib/font-awesome/_icons.scss */ +.fa-smile-o:before { + content: "\f118"; +} + +/* line 276, source/lib/font-awesome/_icons.scss */ +.fa-frown-o:before { + content: "\f119"; +} + +/* line 277, source/lib/font-awesome/_icons.scss */ +.fa-meh-o:before { + content: "\f11a"; +} + +/* line 278, source/lib/font-awesome/_icons.scss */ +.fa-gamepad:before { + content: "\f11b"; +} + +/* line 279, source/lib/font-awesome/_icons.scss */ +.fa-keyboard-o:before { + content: "\f11c"; +} + +/* line 280, source/lib/font-awesome/_icons.scss */ +.fa-flag-o:before { + content: "\f11d"; +} + +/* line 281, source/lib/font-awesome/_icons.scss */ +.fa-flag-checkered:before { + content: "\f11e"; +} + +/* line 282, source/lib/font-awesome/_icons.scss */ +.fa-terminal:before { + content: "\f120"; +} + +/* line 283, source/lib/font-awesome/_icons.scss */ +.fa-code:before { + content: "\f121"; +} + +/* line 284, source/lib/font-awesome/_icons.scss */ +.fa-reply-all:before { + content: "\f122"; +} + +/* line 285, source/lib/font-awesome/_icons.scss */ +.fa-mail-reply-all:before { + content: "\f122"; +} + +/* line 288, source/lib/font-awesome/_icons.scss */ +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} + +/* line 289, source/lib/font-awesome/_icons.scss */ +.fa-location-arrow:before { + content: "\f124"; +} + +/* line 290, source/lib/font-awesome/_icons.scss */ +.fa-crop:before { + content: "\f125"; +} + +/* line 291, source/lib/font-awesome/_icons.scss */ +.fa-code-fork:before { + content: "\f126"; +} + +/* line 293, source/lib/font-awesome/_icons.scss */ +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} + +/* line 294, source/lib/font-awesome/_icons.scss */ +.fa-question:before { + content: "\f128"; +} + +/* line 295, source/lib/font-awesome/_icons.scss */ +.fa-info:before { + content: "\f129"; +} + +/* line 296, source/lib/font-awesome/_icons.scss */ +.fa-exclamation:before { + content: "\f12a"; +} + +/* line 297, source/lib/font-awesome/_icons.scss */ +.fa-superscript:before { + content: "\f12b"; +} + +/* line 298, source/lib/font-awesome/_icons.scss */ +.fa-subscript:before { + content: "\f12c"; +} + +/* line 299, source/lib/font-awesome/_icons.scss */ +.fa-eraser:before { + content: "\f12d"; +} + +/* line 300, source/lib/font-awesome/_icons.scss */ +.fa-puzzle-piece:before { + content: "\f12e"; +} + +/* line 301, source/lib/font-awesome/_icons.scss */ +.fa-microphone:before { + content: "\f130"; +} + +/* line 302, source/lib/font-awesome/_icons.scss */ +.fa-microphone-slash:before { + content: "\f131"; +} + +/* line 303, source/lib/font-awesome/_icons.scss */ +.fa-shield:before { + content: "\f132"; +} + +/* line 304, source/lib/font-awesome/_icons.scss */ +.fa-calendar-o:before { + content: "\f133"; +} + +/* line 305, source/lib/font-awesome/_icons.scss */ +.fa-fire-extinguisher:before { + content: "\f134"; +} + +/* line 306, source/lib/font-awesome/_icons.scss */ +.fa-rocket:before { + content: "\f135"; +} + +/* line 307, source/lib/font-awesome/_icons.scss */ +.fa-maxcdn:before { + content: "\f136"; +} + +/* line 308, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-left:before { + content: "\f137"; +} + +/* line 309, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-right:before { + content: "\f138"; +} + +/* line 310, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-up:before { + content: "\f139"; +} + +/* line 311, source/lib/font-awesome/_icons.scss */ +.fa-chevron-circle-down:before { + content: "\f13a"; +} + +/* line 312, source/lib/font-awesome/_icons.scss */ +.fa-html5:before { + content: "\f13b"; +} + +/* line 313, source/lib/font-awesome/_icons.scss */ +.fa-css3:before { + content: "\f13c"; +} + +/* line 314, source/lib/font-awesome/_icons.scss */ +.fa-anchor:before { + content: "\f13d"; +} + +/* line 315, source/lib/font-awesome/_icons.scss */ +.fa-unlock-alt:before { + content: "\f13e"; +} + +/* line 316, source/lib/font-awesome/_icons.scss */ +.fa-bullseye:before { + content: "\f140"; +} + +/* line 317, source/lib/font-awesome/_icons.scss */ +.fa-ellipsis-h:before { + content: "\f141"; +} + +/* line 318, source/lib/font-awesome/_icons.scss */ +.fa-ellipsis-v:before { + content: "\f142"; +} + +/* line 319, source/lib/font-awesome/_icons.scss */ +.fa-rss-square:before { + content: "\f143"; +} + +/* line 320, source/lib/font-awesome/_icons.scss */ +.fa-play-circle:before { + content: "\f144"; +} + +/* line 321, source/lib/font-awesome/_icons.scss */ +.fa-ticket:before { + content: "\f145"; +} + +/* line 322, source/lib/font-awesome/_icons.scss */ +.fa-minus-square:before { + content: "\f146"; +} + +/* line 323, source/lib/font-awesome/_icons.scss */ +.fa-minus-square-o:before { + content: "\f147"; +} + +/* line 324, source/lib/font-awesome/_icons.scss */ +.fa-level-up:before { + content: "\f148"; +} + +/* line 325, source/lib/font-awesome/_icons.scss */ +.fa-level-down:before { + content: "\f149"; +} + +/* line 326, source/lib/font-awesome/_icons.scss */ +.fa-check-square:before { + content: "\f14a"; +} + +/* line 327, source/lib/font-awesome/_icons.scss */ +.fa-pencil-square:before { + content: "\f14b"; +} + +/* line 328, source/lib/font-awesome/_icons.scss */ +.fa-external-link-square:before { + content: "\f14c"; +} + +/* line 329, source/lib/font-awesome/_icons.scss */ +.fa-share-square:before { + content: "\f14d"; +} + +/* line 330, source/lib/font-awesome/_icons.scss */ +.fa-compass:before { + content: "\f14e"; +} + +/* line 332, source/lib/font-awesome/_icons.scss */ +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} + +/* line 334, source/lib/font-awesome/_icons.scss */ +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} + +/* line 336, source/lib/font-awesome/_icons.scss */ +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} + +/* line 338, source/lib/font-awesome/_icons.scss */ +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} + +/* line 339, source/lib/font-awesome/_icons.scss */ +.fa-gbp:before { + content: "\f154"; +} + +/* line 341, source/lib/font-awesome/_icons.scss */ +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} + +/* line 343, source/lib/font-awesome/_icons.scss */ +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} + +/* line 347, source/lib/font-awesome/_icons.scss */ +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} + +/* line 350, source/lib/font-awesome/_icons.scss */ +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} + +/* line 352, source/lib/font-awesome/_icons.scss */ +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} + +/* line 354, source/lib/font-awesome/_icons.scss */ +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} + +/* line 355, source/lib/font-awesome/_icons.scss */ +.fa-file:before { + content: "\f15b"; +} + +/* line 356, source/lib/font-awesome/_icons.scss */ +.fa-file-text:before { + content: "\f15c"; +} + +/* line 357, source/lib/font-awesome/_icons.scss */ +.fa-sort-alpha-asc:before { + content: "\f15d"; +} + +/* line 358, source/lib/font-awesome/_icons.scss */ +.fa-sort-alpha-desc:before { + content: "\f15e"; +} + +/* line 359, source/lib/font-awesome/_icons.scss */ +.fa-sort-amount-asc:before { + content: "\f160"; +} + +/* line 360, source/lib/font-awesome/_icons.scss */ +.fa-sort-amount-desc:before { + content: "\f161"; +} + +/* line 361, source/lib/font-awesome/_icons.scss */ +.fa-sort-numeric-asc:before { + content: "\f162"; +} + +/* line 362, source/lib/font-awesome/_icons.scss */ +.fa-sort-numeric-desc:before { + content: "\f163"; +} + +/* line 363, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-up:before { + content: "\f164"; +} + +/* line 364, source/lib/font-awesome/_icons.scss */ +.fa-thumbs-down:before { + content: "\f165"; +} + +/* line 365, source/lib/font-awesome/_icons.scss */ +.fa-youtube-square:before { + content: "\f166"; +} + +/* line 366, source/lib/font-awesome/_icons.scss */ +.fa-youtube:before { + content: "\f167"; +} + +/* line 367, source/lib/font-awesome/_icons.scss */ +.fa-xing:before { + content: "\f168"; +} + +/* line 368, source/lib/font-awesome/_icons.scss */ +.fa-xing-square:before { + content: "\f169"; +} + +/* line 369, source/lib/font-awesome/_icons.scss */ +.fa-youtube-play:before { + content: "\f16a"; +} + +/* line 370, source/lib/font-awesome/_icons.scss */ +.fa-dropbox:before { + content: "\f16b"; +} + +/* line 371, source/lib/font-awesome/_icons.scss */ +.fa-stack-overflow:before { + content: "\f16c"; +} + +/* line 372, source/lib/font-awesome/_icons.scss */ +.fa-instagram:before { + content: "\f16d"; +} + +/* line 373, source/lib/font-awesome/_icons.scss */ +.fa-flickr:before { + content: "\f16e"; +} + +/* line 374, source/lib/font-awesome/_icons.scss */ +.fa-adn:before { + content: "\f170"; +} + +/* line 375, source/lib/font-awesome/_icons.scss */ +.fa-bitbucket:before { + content: "\f171"; +} + +/* line 376, source/lib/font-awesome/_icons.scss */ +.fa-bitbucket-square:before { + content: "\f172"; +} + +/* line 377, source/lib/font-awesome/_icons.scss */ +.fa-tumblr:before { + content: "\f173"; +} + +/* line 378, source/lib/font-awesome/_icons.scss */ +.fa-tumblr-square:before { + content: "\f174"; +} + +/* line 379, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-down:before { + content: "\f175"; +} + +/* line 380, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-up:before { + content: "\f176"; +} + +/* line 381, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-left:before { + content: "\f177"; +} + +/* line 382, source/lib/font-awesome/_icons.scss */ +.fa-long-arrow-right:before { + content: "\f178"; +} + +/* line 383, source/lib/font-awesome/_icons.scss */ +.fa-apple:before { + content: "\f179"; +} + +/* line 384, source/lib/font-awesome/_icons.scss */ +.fa-windows:before { + content: "\f17a"; +} + +/* line 385, source/lib/font-awesome/_icons.scss */ +.fa-android:before { + content: "\f17b"; +} + +/* line 386, source/lib/font-awesome/_icons.scss */ +.fa-linux:before { + content: "\f17c"; +} + +/* line 387, source/lib/font-awesome/_icons.scss */ +.fa-dribbble:before { + content: "\f17d"; +} + +/* line 388, source/lib/font-awesome/_icons.scss */ +.fa-skype:before { + content: "\f17e"; +} + +/* line 389, source/lib/font-awesome/_icons.scss */ +.fa-foursquare:before { + content: "\f180"; +} + +/* line 390, source/lib/font-awesome/_icons.scss */ +.fa-trello:before { + content: "\f181"; +} + +/* line 391, source/lib/font-awesome/_icons.scss */ +.fa-female:before { + content: "\f182"; +} + +/* line 392, source/lib/font-awesome/_icons.scss */ +.fa-male:before { + content: "\f183"; +} + +/* line 393, source/lib/font-awesome/_icons.scss */ +.fa-gittip:before { + content: "\f184"; +} + +/* line 394, source/lib/font-awesome/_icons.scss */ +.fa-sun-o:before { + content: "\f185"; +} + +/* line 395, source/lib/font-awesome/_icons.scss */ +.fa-moon-o:before { + content: "\f186"; +} + +/* line 396, source/lib/font-awesome/_icons.scss */ +.fa-archive:before { + content: "\f187"; +} + +/* line 397, source/lib/font-awesome/_icons.scss */ +.fa-bug:before { + content: "\f188"; +} + +/* line 398, source/lib/font-awesome/_icons.scss */ +.fa-vk:before { + content: "\f189"; +} + +/* line 399, source/lib/font-awesome/_icons.scss */ +.fa-weibo:before { + content: "\f18a"; +} + +/* line 400, source/lib/font-awesome/_icons.scss */ +.fa-renren:before { + content: "\f18b"; +} + +/* line 401, source/lib/font-awesome/_icons.scss */ +.fa-pagelines:before { + content: "\f18c"; +} + +/* line 402, source/lib/font-awesome/_icons.scss */ +.fa-stack-exchange:before { + content: "\f18d"; +} + +/* line 403, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} + +/* line 404, source/lib/font-awesome/_icons.scss */ +.fa-arrow-circle-o-left:before { + content: "\f190"; +} + +/* line 406, source/lib/font-awesome/_icons.scss */ +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} + +/* line 407, source/lib/font-awesome/_icons.scss */ +.fa-dot-circle-o:before { + content: "\f192"; +} + +/* line 408, source/lib/font-awesome/_icons.scss */ +.fa-wheelchair:before { + content: "\f193"; +} + +/* line 409, source/lib/font-awesome/_icons.scss */ +.fa-vimeo-square:before { + content: "\f194"; +} + +/* line 411, source/lib/font-awesome/_icons.scss */ +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} + +/* line 412, source/lib/font-awesome/_icons.scss */ +.fa-plus-square-o:before { + content: "\f196"; +} + +/********************************************* + * GLOBAL STYLES + *********************************************/ +/* line 7, source/template/_theme.scss */ +html { + background: #f7fbfc; + background: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 100, color-stop(0%, #fcf3e0), color-stop(100%, #f7fbfc)); + background: -webkit-radial-gradient(#fcf3e0, #f7fbfc); + background: -moz-radial-gradient(#fcf3e0, #f7fbfc); + background: -o-radial-gradient(#fcf3e0, #f7fbfc); + background: radial-gradient(#fcf3e0, #f7fbfc); +} + +@font-face { + font-family: "Gotham"; + src: local("Gotham"), url("../../fonts/Gotham/Gotham-Medium.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Gotham-Book"; + src: local("Gotham-Book"), url("../../fonts/Gotham/Gotham-Book.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Gotham-Italic"; + src: local("Gotham-Italic"), url("../../fonts/Gotham/Gotham-MediumIta.otf") format("opentype"); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: "Gotham-Bold"; + src: local("Gotham-Bold"), url("../../fonts/Gotham/Gotham-Bold.otf") format("opentype"); + font-weight: bold; + font-style: bold; +} + +/* line 42, source/template/_theme.scss */ +.reveal { + font-family: "Gotham-Book", "Helvetica", Arial, sans-serif; + font-size: 36px; + font-weight: 200; + letter-spacing: -0.02em; + color: #333333; +} + +/* line 50, source/template/_theme.scss */ +::selection { + color: white; + background: #134674; + text-shadow: none; +} + +/* line 56, source/template/_theme.scss */ +.reveal ul li { + line-height: 1.2em; + margin-bottom: 10px; +} + +/********************************************* + * HEADERS + *********************************************/ +/* line 72, source/template/_theme.scss */ +.reveal h1, +.reveal h2, +.reveal h3, +.reveal h4, +.reveal h5, +.reveal h6 { + margin: 0 0 20px 0; + color: #f05b62; + font-family: "Gotham-Bold", Impact, sans-serif; + line-height: 0.9em; + letter-spacing: -0.08em; + text-transform: uppercase; + text-shadow: none; +} + +/* line 84, source/template/_theme.scss */ +.reveal h1 { + text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); +} + +/* line 88, source/template/_theme.scss */ +.reveal h1 { + font-size: 3.77em; +} + +/* line 89, source/template/_theme.scss */ +.reveal h2 { + font-size: 2.11em; +} + +/* line 90, source/template/_theme.scss */ +.reveal h3 { + font-size: 1.55em; +} + +/* line 91, source/template/_theme.scss */ +.reveal h4 { + font-size: 1em; +} + +/********************************************* +* OVERRIDES +**********************************************/ +/* line 96, source/template/_theme.scss */ +.left-align { + text-align: left; +} + +/* line 97, source/template/_theme.scss */ +.right-align { + text-align: right; +} + +/* line 98, source/template/_theme.scss */ +.left { + float: left; +} + +/* line 99, source/template/_theme.scss */ +.right { + float: right; +} + +/* line 100, source/template/_theme.scss */ +.clear { + clear: both; +} + +/* line 101, source/template/_theme.scss */ +.blue, .event__title { + color: #01A9B4 !important; +} + +/* line 102, source/template/_theme.scss */ +.green { + color: #92BB44 !important; +} + +/* line 103, source/template/_theme.scss */ +.yellow { + color: #EDAB23 !important; +} + +/* line 104, source/template/_theme.scss */ +.pink { + color: #F05B62 !important; +} + +/* line 105, source/template/_theme.scss */ +.red { + color: #8B0036 !important; +} + +/* line 106, source/template/_theme.scss */ +.grey { + color: #333333 !important; +} + +/* line 107, source/template/_theme.scss */ +.grey--light, .event__title small { + color: #666 !important; +} + +/********************************************* + * LINKS + *********************************************/ +/* line 114, source/template/_theme.scss */ +.reveal a:not(.image) { + -webkit-transition: color 0.15x ease; + -moz-transition: color 0.15x ease; + -o-transition: color 0.15x ease; + transition: color 0.15x ease; + color: #92bb44; + text-decoration: none; +} + +/* line 119, source/template/_theme.scss */ +.reveal a:not(.image):hover { + color: #f9b8bb; + text-shadow: none; + border: none; +} + +/* line 126, source/template/_theme.scss */ +.reveal .roll span:after { + color: #fff; + background: #92bb44; +} + +/********************************************* + * IMAGES + *********************************************/ +/* line 136, source/template/_theme.scss */ +.reveal section img { + margin: 15px; + background: rgba(255, 255, 255, 0.12); + border: 4px solid #333333; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); + -webkit-transition: all 0.2s linear; + -moz-transition: all 0.2s linear; + -o-transition: all 0.2s linear; + transition: all 0.2s linear; +} + +/* line 146, source/template/_theme.scss */ +.reveal a:hover img { + background: rgba(255, 255, 255, 0.2); + border-color: #92bb44; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); +} + +/********************************************* + * NAVIGATION CONTROLS + *********************************************/ +/* line 159, source/template/_theme.scss */ +.reveal .controls .navigate-left, +.reveal .controls .navigate-left.enabled { + border-right-color: #92bb44; +} + +/* line 164, source/template/_theme.scss */ +.reveal .controls .navigate-right, +.reveal .controls .navigate-right.enabled { + border-left-color: #92bb44; +} + +/* line 169, source/template/_theme.scss */ +.reveal .controls .navigate-up, +.reveal .controls .navigate-up.enabled { + border-bottom-color: #92bb44; +} + +/* line 174, source/template/_theme.scss */ +.reveal .controls .navigate-down, +.reveal .controls .navigate-down.enabled { + border-top-color: #92bb44; +} + +/* line 178, source/template/_theme.scss */ +.reveal .controls div.navigate-left.enabled:hover { + border-right-color: #f9b8bb; +} + +/* line 182, source/template/_theme.scss */ +.reveal .controls div.navigate-right.enabled:hover { + border-left-color: #f9b8bb; +} + +/* line 186, source/template/_theme.scss */ +.reveal .controls div.navigate-up.enabled:hover { + border-bottom-color: #f9b8bb; +} + +/* line 190, source/template/_theme.scss */ +.reveal .controls div.navigate-down.enabled:hover { + border-top-color: #f9b8bb; +} + +/********************************************* + * PROGRESS BAR + *********************************************/ +/* line 199, source/template/_theme.scss */ +.reveal .progress { + background: rgba(0, 0, 0, 0.2); +} + +/* line 202, source/template/_theme.scss */ +.reveal .progress span { + background: #92bb44; + -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); +} + +/********************************************* + * FOOTER + *********************************************/ +/* line 213, source/template/_theme.scss */ +.reveal footer { + position: fixed; + height: 40px; + width: 100%; + bottom: 3px; + left: 0; + z-index: 10; + font-size: 35%; + text-align: right; + background-image: url(../../images/pink-logo.png); + background-repeat: no-repeat; + background-size: auto 100%; +} +/* line 227, source/template/_theme.scss */ +.reveal .copyright { + margin: 15px 5px 0 100px; + font-style: italic; +} +/* line 231, source/template/_theme.scss */ +.reveal .copyright a img { + vertical-align: middle; +} + +/********************************************* + * EVENT + *********************************************/ +/* line 241, source/template/_theme.scss */ +.event__title { + text-transform: uppercase !important; +} diff --git a/css/theme/source/gdiaa.scss b/css/theme/source/gdiaa.scss new file mode 100644 index 0000000..0bf3ecb --- /dev/null +++ b/css/theme/source/gdiaa.scss @@ -0,0 +1,125 @@ +/* Girl Develop It Ann Arbor */ + +@import "gdilight"; + +.reveal { + // word-wrap: break-word; + + .center-align{ text-align: center} + + .copy--small { + font-size: .8em; + } + + .copy--xsmall { + font-size: .6em; + } + + strong { + text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); + } + + .horz--auto { + margin: inherit auto; + } + + .box { + margin: 2em 0; + } + + .box--top { + margin-top: 3em; + } + + .box--small { + margin: 1em 0; + } + + ul, ol { + ul, ol { + margin-top: 10px; + } + + li:last-child { + margin-bottom: 0; + } + } + + .list--tall { + ol, ul {margin-top: 20px;} + li {margin-bottom: 20px;} + } + + .list--xtall { + ol, ul {margin-top: 40px;} + li {margin-bottom: 40px;} + } + + .list--bare { + list-style-type: none; + } + + .broken { + list-style-position: inside; + margin-top: .25em; + + li { + display: block; + padding: .25em 1em; + } + } + + ol.broken { + counter-reset: counter; + + li { + &:before { + color: #ccc; + content: counter(counter) "." ; + counter-increment: counter; + padding-right: .5em; + } + } + } + + .break { + border-top: 20px solid #efefef; + padding-top: 2em; + } + + section img { + margin: 0 15px; + } + + .img--bare { + border: none; + background: transparent; + box-shadow: none; + } + + .gist { + font-size: .5em; + line-height: 1.3em; + max-height: 475px; + overflow: scroll + } +} + +code { + background: #e8e8e8; +} + +pre { + margin: 0; + width: auto; + box-shadow: none; + + code { + background: transparent; + border: 6px solid #fff; + box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); + min-height: 300px; + max-height: 475px; + padding: 5px 10px; + } +} diff --git a/css/theme/source/gdicool.scss b/css/theme/source/gdicool.scss new file mode 100755 index 0000000..d3b7498 --- /dev/null +++ b/css/theme/source/gdicool.scss @@ -0,0 +1,19 @@ +// Settings +@import "template/settings"; + + +// Override theme settings (see ../template/settings.scss) +$mainColor: #333; +$headingColor: #8B0036; +$backgroundColor: #92BB44; +$linkColor: #01A9B4; +$selectionBackgroundColor: #134674; + +// Background generator +@mixin bodyBackground() { + @include background( radial-gradient( lighten($backgroundColor, 40% ), #f7fbfc ) ); +} + + +// Theme +@import "template/theme"; diff --git a/css/theme/source/gdidefault.scss b/css/theme/source/gdidefault.scss new file mode 100755 index 0000000..24346a6 --- /dev/null +++ b/css/theme/source/gdidefault.scss @@ -0,0 +1,15 @@ +// Settings +@import "template/settings"; + + +// Override theme settings (see ../template/settings.scss) +$linkColor: #01A9B4; + +// Background generator +@mixin bodyBackground() { + @include background( radial-gradient( rgba(28,30,32,1), rgba(85,90,95,1) ) ); +} + + +// Theme +@import "template/theme"; diff --git a/css/theme/source/gdilight.scss b/css/theme/source/gdilight.scss new file mode 100755 index 0000000..f8c2f59 --- /dev/null +++ b/css/theme/source/gdilight.scss @@ -0,0 +1,19 @@ +// Settings +@import "template/settings"; + + +// Override theme settings (see ../template/settings.scss) +$mainColor: #333; +$headingTextShadow: #ccc; +$headingTextTransform: none; +$backgroundColor: #fff; +$linkColor: #01A9B4; +$selectionBackgroundColor: rgba(11, 79, 81, 0.99); + +@mixin bodyBackground() { + @include background( radial-gradient($backgroundColor, darken($backgroundColor, 5%)) ); +} + + +// Theme +@import "template/theme"; diff --git a/css/theme/source/gdisunny.scss b/css/theme/source/gdisunny.scss new file mode 100755 index 0000000..ff1fccd --- /dev/null +++ b/css/theme/source/gdisunny.scss @@ -0,0 +1,20 @@ +// Settings +@import "template/settings"; + + +// Override theme settings (see ../template/settings.scss) +$mainColor: #333; +$headingLetterSpacing: -0.08em; +$headingTextShadow: none; +$backgroundColor: #f7fbfc; +$linkColor: #92BB44; +$selectionBackgroundColor: #134674; + +// Background generator +@mixin bodyBackground() { + @include background( radial-gradient( lighten(#EDAB23, 40% ), #f7fbfc ) ); +} + + +// Theme +@import "template/theme"; diff --git a/css/theme/source/lib/font-awesome/_bordered-pulled.scss b/css/theme/source/lib/font-awesome/_bordered-pulled.scss new file mode 100644 index 0000000..9d3fdf3 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_bordered-pulled.scss @@ -0,0 +1,16 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em $fa-border-color; + border-radius: .1em; +} + +.pull-right { float: right; } +.pull-left { float: left; } + +.#{$fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/css/theme/source/lib/font-awesome/_core.scss b/css/theme/source/lib/font-awesome/_core.scss new file mode 100644 index 0000000..1671a4f --- /dev/null +++ b/css/theme/source/lib/font-awesome/_core.scss @@ -0,0 +1,12 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix} { + display: inline-block; + font-family: FontAwesome !important; + font-style: normal !important; + font-weight: normal !important; + line-height: 1 !important; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/css/theme/source/lib/font-awesome/_fixed-width.scss b/css/theme/source/lib/font-awesome/_fixed-width.scss new file mode 100644 index 0000000..b221c98 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/css/theme/source/lib/font-awesome/_font-awesome.scss b/css/theme/source/lib/font-awesome/_font-awesome.scss new file mode 100644 index 0000000..96d2f22 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_font-awesome.scss @@ -0,0 +1,17 @@ +/*! + * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables"; +@import "mixins"; +@import "path"; +@import "core"; +@import "larger"; +@import "fixed-width"; +@import "list"; +@import "bordered-pulled"; +@import "spinning"; +@import "rotated-flipped"; +@import "stacked"; +@import "icons"; diff --git a/css/theme/source/lib/font-awesome/_icons.scss b/css/theme/source/lib/font-awesome/_icons.scss new file mode 100644 index 0000000..7490cf3 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_icons.scss @@ -0,0 +1,412 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } +.#{$fa-css-prefix}-music:before { content: $fa-var-music; } +.#{$fa-css-prefix}-search:before { content: $fa-var-search; } +.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } +.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } +.#{$fa-css-prefix}-star:before { content: $fa-var-star; } +.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } +.#{$fa-css-prefix}-user:before { content: $fa-var-user; } +.#{$fa-css-prefix}-film:before { content: $fa-var-film; } +.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } +.#{$fa-css-prefix}-th:before { content: $fa-var-th; } +.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } +.#{$fa-css-prefix}-check:before { content: $fa-var-check; } +.#{$fa-css-prefix}-times:before { content: $fa-var-times; } +.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } +.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } +.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } +.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } +.#{$fa-css-prefix}-gear:before, +.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } +.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } +.#{$fa-css-prefix}-home:before { content: $fa-var-home; } +.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } +.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } +.#{$fa-css-prefix}-road:before { content: $fa-var-road; } +.#{$fa-css-prefix}-download:before { content: $fa-var-download; } +.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } +.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } +.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } +.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } +.#{$fa-css-prefix}-rotate-right:before, +.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } +.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } +.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } +.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } +.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } +.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } +.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } +.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } +.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } +.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } +.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } +.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } +.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } +.#{$fa-css-prefix}-book:before { content: $fa-var-book; } +.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } +.#{$fa-css-prefix}-print:before { content: $fa-var-print; } +.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } +.#{$fa-css-prefix}-font:before { content: $fa-var-font; } +.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } +.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } +.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } +.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } +.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } +.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } +.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } +.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } +.#{$fa-css-prefix}-list:before { content: $fa-var-list; } +.#{$fa-css-prefix}-dedent:before, +.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } +.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } +.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } +.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } +.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } +.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } +.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } +.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } +.#{$fa-css-prefix}-edit:before, +.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } +.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } +.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } +.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } +.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } +.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } +.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } +.#{$fa-css-prefix}-play:before { content: $fa-var-play; } +.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } +.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } +.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } +.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } +.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } +.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } +.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } +.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } +.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } +.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } +.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } +.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } +.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } +.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } +.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } +.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } +.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } +.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } +.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } +.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } +.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } +.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } +.#{$fa-css-prefix}-mail-forward:before, +.#{$fa-css-prefix}-share:before { content: $fa-var-share; } +.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } +.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } +.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } +.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } +.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } +.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } +.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } +.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } +.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } +.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } +.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } +.#{$fa-css-prefix}-warning:before, +.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } +.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } +.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } +.#{$fa-css-prefix}-random:before { content: $fa-var-random; } +.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } +.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } +.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } +.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } +.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } +.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } +.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } +.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } +.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } +.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } +.#{$fa-css-prefix}-bar-chart-o:before { content: $fa-var-bar-chart-o; } +.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } +.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } +.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } +.#{$fa-css-prefix}-key:before { content: $fa-var-key; } +.#{$fa-css-prefix}-gears:before, +.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } +.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } +.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } +.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } +.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } +.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } +.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } +.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } +.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } +.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } +.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } +.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } +.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } +.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } +.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } +.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } +.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } +.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } +.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } +.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } +.#{$fa-css-prefix}-github:before { content: $fa-var-github; } +.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } +.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } +.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } +.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } +.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } +.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } +.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } +.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } +.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } +.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } +.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } +.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } +.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } +.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } +.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } +.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } +.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } +.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } +.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } +.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } +.#{$fa-css-prefix}-group:before, +.#{$fa-css-prefix}-users:before { content: $fa-var-users; } +.#{$fa-css-prefix}-chain:before, +.#{$fa-css-prefix}-link:before { content: $fa-var-link; } +.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } +.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } +.#{$fa-css-prefix}-cut:before, +.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } +.#{$fa-css-prefix}-copy:before, +.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } +.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } +.#{$fa-css-prefix}-save:before, +.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } +.#{$fa-css-prefix}-square:before { content: $fa-var-square; } +.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } +.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } +.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } +.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } +.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } +.#{$fa-css-prefix}-table:before { content: $fa-var-table; } +.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } +.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } +.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } +.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } +.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } +.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } +.#{$fa-css-prefix}-money:before { content: $fa-var-money; } +.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } +.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } +.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } +.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } +.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } +.#{$fa-css-prefix}-unsorted:before, +.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } +.#{$fa-css-prefix}-sort-down:before, +.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } +.#{$fa-css-prefix}-sort-up:before, +.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } +.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } +.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } +.#{$fa-css-prefix}-rotate-left:before, +.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } +.#{$fa-css-prefix}-legal:before, +.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } +.#{$fa-css-prefix}-dashboard:before, +.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } +.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } +.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } +.#{$fa-css-prefix}-flash:before, +.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } +.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } +.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } +.#{$fa-css-prefix}-paste:before, +.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } +.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } +.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } +.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } +.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } +.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } +.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } +.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } +.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } +.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } +.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } +.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } +.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } +.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } +.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } +.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } +.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } +.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } +.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } +.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } +.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } +.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } +.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } +.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } +.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } +.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } +.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } +.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } +.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } +.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } +.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } +.#{$fa-css-prefix}-mobile-phone:before, +.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } +.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } +.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } +.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } +.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } +.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } +.#{$fa-css-prefix}-mail-reply:before, +.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } +.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } +.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } +.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } +.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } +.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } +.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } +.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } +.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } +.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } +.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } +.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } +.#{$fa-css-prefix}-code:before { content: $fa-var-code; } +.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } +.#{$fa-css-prefix}-mail-reply-all:before { content: $fa-var-mail-reply-all; } +.#{$fa-css-prefix}-star-half-empty:before, +.#{$fa-css-prefix}-star-half-full:before, +.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } +.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } +.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } +.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } +.#{$fa-css-prefix}-unlink:before, +.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } +.#{$fa-css-prefix}-question:before { content: $fa-var-question; } +.#{$fa-css-prefix}-info:before { content: $fa-var-info; } +.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } +.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } +.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } +.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } +.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } +.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } +.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } +.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } +.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } +.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } +.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } +.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } +.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } +.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } +.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } +.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } +.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } +.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } +.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } +.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } +.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } +.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } +.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } +.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } +.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } +.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } +.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } +.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } +.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } +.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } +.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } +.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } +.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } +.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } +.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } +.#{$fa-css-prefix}-toggle-down:before, +.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } +.#{$fa-css-prefix}-toggle-up:before, +.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } +.#{$fa-css-prefix}-toggle-right:before, +.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } +.#{$fa-css-prefix}-euro:before, +.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } +.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } +.#{$fa-css-prefix}-dollar:before, +.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } +.#{$fa-css-prefix}-rupee:before, +.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } +.#{$fa-css-prefix}-cny:before, +.#{$fa-css-prefix}-rmb:before, +.#{$fa-css-prefix}-yen:before, +.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } +.#{$fa-css-prefix}-ruble:before, +.#{$fa-css-prefix}-rouble:before, +.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } +.#{$fa-css-prefix}-won:before, +.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } +.#{$fa-css-prefix}-bitcoin:before, +.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } +.#{$fa-css-prefix}-file:before { content: $fa-var-file; } +.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } +.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } +.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } +.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } +.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } +.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } +.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } +.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } +.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } +.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } +.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } +.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } +.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } +.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } +.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } +.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } +.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } +.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } +.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } +.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } +.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } +.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } +.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } +.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } +.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } +.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } +.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } +.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } +.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } +.#{$fa-css-prefix}-android:before { content: $fa-var-android; } +.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } +.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } +.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } +.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } +.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } +.#{$fa-css-prefix}-female:before { content: $fa-var-female; } +.#{$fa-css-prefix}-male:before { content: $fa-var-male; } +.#{$fa-css-prefix}-gittip:before { content: $fa-var-gittip; } +.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } +.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } +.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } +.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } +.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } +.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } +.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } +.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } +.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } +.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } +.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } +.#{$fa-css-prefix}-toggle-left:before, +.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } +.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } +.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } +.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } +.#{$fa-css-prefix}-turkish-lira:before, +.#{$fa-css-prefix}-try:before { content: $fa-var-try; } +.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } diff --git a/css/theme/source/lib/font-awesome/_larger.scss b/css/theme/source/lib/font-awesome/_larger.scss new file mode 100644 index 0000000..41e9a81 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_larger.scss @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$fa-css-prefix}-2x { font-size: 2em; } +.#{$fa-css-prefix}-3x { font-size: 3em; } +.#{$fa-css-prefix}-4x { font-size: 4em; } +.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/css/theme/source/lib/font-awesome/_list.scss b/css/theme/source/lib/font-awesome/_list.scss new file mode 100644 index 0000000..7d1e4d5 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_list.scss @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + padding-left: 0; + margin-left: $fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.#{$fa-css-prefix}-li { + position: absolute; + left: -$fa-li-width; + width: $fa-li-width; + top: (2em / 14); + text-align: center; + &.#{$fa-css-prefix}-lg { + left: -$fa-li-width + (4em / 14); + } +} diff --git a/css/theme/source/lib/font-awesome/_mixins.scss b/css/theme/source/lib/font-awesome/_mixins.scss new file mode 100644 index 0000000..9f55596 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_mixins.scss @@ -0,0 +1,20 @@ +// Mixins +// -------------------------- + +@mixin fa-icon-rotate($degrees, $rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: rotate($degrees); + -moz-transform: rotate($degrees); + -ms-transform: rotate($degrees); + -o-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); + -webkit-transform: scale($horiz, $vert); + -moz-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + -o-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} diff --git a/css/theme/source/lib/font-awesome/_path.scss b/css/theme/source/lib/font-awesome/_path.scss new file mode 100644 index 0000000..fd21c35 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_path.scss @@ -0,0 +1,14 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); + src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), + url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), + url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); + //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/css/theme/source/lib/font-awesome/_rotated-flipped.scss b/css/theme/source/lib/font-awesome/_rotated-flipped.scss new file mode 100644 index 0000000..343fa55 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_rotated-flipped.scss @@ -0,0 +1,9 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } diff --git a/css/theme/source/lib/font-awesome/_spinning.scss b/css/theme/source/lib/font-awesome/_spinning.scss new file mode 100644 index 0000000..ba1e4f1 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_spinning.scss @@ -0,0 +1,30 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: spin 2s infinite linear; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} + +@-moz-keyframes spin { + 0% { -moz-transform: rotate(0deg); } + 100% { -moz-transform: rotate(359deg); } +} +@-webkit-keyframes spin { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(359deg); } +} +@-o-keyframes spin { + 0% { -o-transform: rotate(0deg); } + 100% { -o-transform: rotate(359deg); } +} +@-ms-keyframes spin { + 0% { -ms-transform: rotate(0deg); } + 100% { -ms-transform: rotate(359deg); } +} +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(359deg); } +} diff --git a/css/theme/source/lib/font-awesome/_stacked.scss b/css/theme/source/lib/font-awesome/_stacked.scss new file mode 100644 index 0000000..aef7403 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_stacked.scss @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$fa-css-prefix}-stack-1x { line-height: inherit; } +.#{$fa-css-prefix}-stack-2x { font-size: 2em; } +.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/css/theme/source/lib/font-awesome/_variables.scss b/css/theme/source/lib/font-awesome/_variables.scss new file mode 100644 index 0000000..e2ec304 --- /dev/null +++ b/css/theme/source/lib/font-awesome/_variables.scss @@ -0,0 +1,381 @@ +// Variables +// -------------------------- + +$fa-font-path: "../../fonts/FontAwesome" !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-css-prefix: fa !default; +$fa-version: "4.0.3" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: (30em / 14) !default; + +$fa-var-glass: "\f000"; +$fa-var-music: "\f001"; +$fa-var-search: "\f002"; +$fa-var-envelope-o: "\f003"; +$fa-var-heart: "\f004"; +$fa-var-star: "\f005"; +$fa-var-star-o: "\f006"; +$fa-var-user: "\f007"; +$fa-var-film: "\f008"; +$fa-var-th-large: "\f009"; +$fa-var-th: "\f00a"; +$fa-var-th-list: "\f00b"; +$fa-var-check: "\f00c"; +$fa-var-times: "\f00d"; +$fa-var-search-plus: "\f00e"; +$fa-var-search-minus: "\f010"; +$fa-var-power-off: "\f011"; +$fa-var-signal: "\f012"; +$fa-var-cog: "\f013"; +$fa-var-trash-o: "\f014"; +$fa-var-home: "\f015"; +$fa-var-file-o: "\f016"; +$fa-var-clock-o: "\f017"; +$fa-var-road: "\f018"; +$fa-var-download: "\f019"; +$fa-var-arrow-circle-o-down: "\f01a"; +$fa-var-arrow-circle-o-up: "\f01b"; +$fa-var-inbox: "\f01c"; +$fa-var-play-circle-o: "\f01d"; +$fa-var-repeat: "\f01e"; +$fa-var-refresh: "\f021"; +$fa-var-list-alt: "\f022"; +$fa-var-lock: "\f023"; +$fa-var-flag: "\f024"; +$fa-var-headphones: "\f025"; +$fa-var-volume-off: "\f026"; +$fa-var-volume-down: "\f027"; +$fa-var-volume-up: "\f028"; +$fa-var-qrcode: "\f029"; +$fa-var-barcode: "\f02a"; +$fa-var-tag: "\f02b"; +$fa-var-tags: "\f02c"; +$fa-var-book: "\f02d"; +$fa-var-bookmark: "\f02e"; +$fa-var-print: "\f02f"; +$fa-var-camera: "\f030"; +$fa-var-font: "\f031"; +$fa-var-bold: "\f032"; +$fa-var-italic: "\f033"; +$fa-var-text-height: "\f034"; +$fa-var-text-width: "\f035"; +$fa-var-align-left: "\f036"; +$fa-var-align-center: "\f037"; +$fa-var-align-right: "\f038"; +$fa-var-align-justify: "\f039"; +$fa-var-list: "\f03a"; +$fa-var-outdent: "\f03b"; +$fa-var-indent: "\f03c"; +$fa-var-video-camera: "\f03d"; +$fa-var-picture-o: "\f03e"; +$fa-var-pencil: "\f040"; +$fa-var-map-marker: "\f041"; +$fa-var-adjust: "\f042"; +$fa-var-tint: "\f043"; +$fa-var-pencil-square-o: "\f044"; +$fa-var-share-square-o: "\f045"; +$fa-var-check-square-o: "\f046"; +$fa-var-arrows: "\f047"; +$fa-var-step-backward: "\f048"; +$fa-var-fast-backward: "\f049"; +$fa-var-backward: "\f04a"; +$fa-var-play: "\f04b"; +$fa-var-pause: "\f04c"; +$fa-var-stop: "\f04d"; +$fa-var-forward: "\f04e"; +$fa-var-fast-forward: "\f050"; +$fa-var-step-forward: "\f051"; +$fa-var-eject: "\f052"; +$fa-var-chevron-left: "\f053"; +$fa-var-chevron-right: "\f054"; +$fa-var-plus-circle: "\f055"; +$fa-var-minus-circle: "\f056"; +$fa-var-times-circle: "\f057"; +$fa-var-check-circle: "\f058"; +$fa-var-question-circle: "\f059"; +$fa-var-info-circle: "\f05a"; +$fa-var-crosshairs: "\f05b"; +$fa-var-times-circle-o: "\f05c"; +$fa-var-check-circle-o: "\f05d"; +$fa-var-ban: "\f05e"; +$fa-var-arrow-left: "\f060"; +$fa-var-arrow-right: "\f061"; +$fa-var-arrow-up: "\f062"; +$fa-var-arrow-down: "\f063"; +$fa-var-share: "\f064"; +$fa-var-expand: "\f065"; +$fa-var-compress: "\f066"; +$fa-var-plus: "\f067"; +$fa-var-minus: "\f068"; +$fa-var-asterisk: "\f069"; +$fa-var-exclamation-circle: "\f06a"; +$fa-var-gift: "\f06b"; +$fa-var-leaf: "\f06c"; +$fa-var-fire: "\f06d"; +$fa-var-eye: "\f06e"; +$fa-var-eye-slash: "\f070"; +$fa-var-exclamation-triangle: "\f071"; +$fa-var-plane: "\f072"; +$fa-var-calendar: "\f073"; +$fa-var-random: "\f074"; +$fa-var-comment: "\f075"; +$fa-var-magnet: "\f076"; +$fa-var-chevron-up: "\f077"; +$fa-var-chevron-down: "\f078"; +$fa-var-retweet: "\f079"; +$fa-var-shopping-cart: "\f07a"; +$fa-var-folder: "\f07b"; +$fa-var-folder-open: "\f07c"; +$fa-var-arrows-v: "\f07d"; +$fa-var-arrows-h: "\f07e"; +$fa-var-bar-chart-o: "\f080"; +$fa-var-twitter-square: "\f081"; +$fa-var-facebook-square: "\f082"; +$fa-var-camera-retro: "\f083"; +$fa-var-key: "\f084"; +$fa-var-cogs: "\f085"; +$fa-var-comments: "\f086"; +$fa-var-thumbs-o-up: "\f087"; +$fa-var-thumbs-o-down: "\f088"; +$fa-var-star-half: "\f089"; +$fa-var-heart-o: "\f08a"; +$fa-var-sign-out: "\f08b"; +$fa-var-linkedin-square: "\f08c"; +$fa-var-thumb-tack: "\f08d"; +$fa-var-external-link: "\f08e"; +$fa-var-sign-in: "\f090"; +$fa-var-trophy: "\f091"; +$fa-var-github-square: "\f092"; +$fa-var-upload: "\f093"; +$fa-var-lemon-o: "\f094"; +$fa-var-phone: "\f095"; +$fa-var-square-o: "\f096"; +$fa-var-bookmark-o: "\f097"; +$fa-var-phone-square: "\f098"; +$fa-var-twitter: "\f099"; +$fa-var-facebook: "\f09a"; +$fa-var-github: "\f09b"; +$fa-var-unlock: "\f09c"; +$fa-var-credit-card: "\f09d"; +$fa-var-rss: "\f09e"; +$fa-var-hdd-o: "\f0a0"; +$fa-var-bullhorn: "\f0a1"; +$fa-var-bell: "\f0f3"; +$fa-var-certificate: "\f0a3"; +$fa-var-hand-o-right: "\f0a4"; +$fa-var-hand-o-left: "\f0a5"; +$fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-o-down: "\f0a7"; +$fa-var-arrow-circle-left: "\f0a8"; +$fa-var-arrow-circle-right: "\f0a9"; +$fa-var-arrow-circle-up: "\f0aa"; +$fa-var-arrow-circle-down: "\f0ab"; +$fa-var-globe: "\f0ac"; +$fa-var-wrench: "\f0ad"; +$fa-var-tasks: "\f0ae"; +$fa-var-filter: "\f0b0"; +$fa-var-briefcase: "\f0b1"; +$fa-var-arrows-alt: "\f0b2"; +$fa-var-users: "\f0c0"; +$fa-var-link: "\f0c1"; +$fa-var-cloud: "\f0c2"; +$fa-var-flask: "\f0c3"; +$fa-var-scissors: "\f0c4"; +$fa-var-files-o: "\f0c5"; +$fa-var-paperclip: "\f0c6"; +$fa-var-floppy-o: "\f0c7"; +$fa-var-square: "\f0c8"; +$fa-var-bars: "\f0c9"; +$fa-var-list-ul: "\f0ca"; +$fa-var-list-ol: "\f0cb"; +$fa-var-strikethrough: "\f0cc"; +$fa-var-underline: "\f0cd"; +$fa-var-table: "\f0ce"; +$fa-var-magic: "\f0d0"; +$fa-var-truck: "\f0d1"; +$fa-var-pinterest: "\f0d2"; +$fa-var-pinterest-square: "\f0d3"; +$fa-var-google-plus-square: "\f0d4"; +$fa-var-google-plus: "\f0d5"; +$fa-var-money: "\f0d6"; +$fa-var-caret-down: "\f0d7"; +$fa-var-caret-up: "\f0d8"; +$fa-var-caret-left: "\f0d9"; +$fa-var-caret-right: "\f0da"; +$fa-var-columns: "\f0db"; +$fa-var-sort: "\f0dc"; +$fa-var-sort-asc: "\f0dd"; +$fa-var-sort-desc: "\f0de"; +$fa-var-envelope: "\f0e0"; +$fa-var-linkedin: "\f0e1"; +$fa-var-undo: "\f0e2"; +$fa-var-gavel: "\f0e3"; +$fa-var-tachometer: "\f0e4"; +$fa-var-comment-o: "\f0e5"; +$fa-var-comments-o: "\f0e6"; +$fa-var-bolt: "\f0e7"; +$fa-var-sitemap: "\f0e8"; +$fa-var-umbrella: "\f0e9"; +$fa-var-clipboard: "\f0ea"; +$fa-var-lightbulb-o: "\f0eb"; +$fa-var-exchange: "\f0ec"; +$fa-var-cloud-download: "\f0ed"; +$fa-var-cloud-upload: "\f0ee"; +$fa-var-user-md: "\f0f0"; +$fa-var-stethoscope: "\f0f1"; +$fa-var-suitcase: "\f0f2"; +$fa-var-bell-o: "\f0a2"; +$fa-var-coffee: "\f0f4"; +$fa-var-cutlery: "\f0f5"; +$fa-var-file-text-o: "\f0f6"; +$fa-var-building-o: "\f0f7"; +$fa-var-hospital-o: "\f0f8"; +$fa-var-ambulance: "\f0f9"; +$fa-var-medkit: "\f0fa"; +$fa-var-fighter-jet: "\f0fb"; +$fa-var-beer: "\f0fc"; +$fa-var-h-square: "\f0fd"; +$fa-var-plus-square: "\f0fe"; +$fa-var-angle-double-left: "\f100"; +$fa-var-angle-double-right: "\f101"; +$fa-var-angle-double-up: "\f102"; +$fa-var-angle-double-down: "\f103"; +$fa-var-angle-left: "\f104"; +$fa-var-angle-right: "\f105"; +$fa-var-angle-up: "\f106"; +$fa-var-angle-down: "\f107"; +$fa-var-desktop: "\f108"; +$fa-var-laptop: "\f109"; +$fa-var-tablet: "\f10a"; +$fa-var-mobile: "\f10b"; +$fa-var-circle-o: "\f10c"; +$fa-var-quote-left: "\f10d"; +$fa-var-quote-right: "\f10e"; +$fa-var-spinner: "\f110"; +$fa-var-circle: "\f111"; +$fa-var-reply: "\f112"; +$fa-var-github-alt: "\f113"; +$fa-var-folder-o: "\f114"; +$fa-var-folder-open-o: "\f115"; +$fa-var-smile-o: "\f118"; +$fa-var-frown-o: "\f119"; +$fa-var-meh-o: "\f11a"; +$fa-var-gamepad: "\f11b"; +$fa-var-keyboard-o: "\f11c"; +$fa-var-flag-o: "\f11d"; +$fa-var-flag-checkered: "\f11e"; +$fa-var-terminal: "\f120"; +$fa-var-code: "\f121"; +$fa-var-reply-all: "\f122"; +$fa-var-mail-reply-all: "\f122"; +$fa-var-star-half-o: "\f123"; +$fa-var-location-arrow: "\f124"; +$fa-var-crop: "\f125"; +$fa-var-code-fork: "\f126"; +$fa-var-chain-broken: "\f127"; +$fa-var-question: "\f128"; +$fa-var-info: "\f129"; +$fa-var-exclamation: "\f12a"; +$fa-var-superscript: "\f12b"; +$fa-var-subscript: "\f12c"; +$fa-var-eraser: "\f12d"; +$fa-var-puzzle-piece: "\f12e"; +$fa-var-microphone: "\f130"; +$fa-var-microphone-slash: "\f131"; +$fa-var-shield: "\f132"; +$fa-var-calendar-o: "\f133"; +$fa-var-fire-extinguisher: "\f134"; +$fa-var-rocket: "\f135"; +$fa-var-maxcdn: "\f136"; +$fa-var-chevron-circle-left: "\f137"; +$fa-var-chevron-circle-right: "\f138"; +$fa-var-chevron-circle-up: "\f139"; +$fa-var-chevron-circle-down: "\f13a"; +$fa-var-html5: "\f13b"; +$fa-var-css3: "\f13c"; +$fa-var-anchor: "\f13d"; +$fa-var-unlock-alt: "\f13e"; +$fa-var-bullseye: "\f140"; +$fa-var-ellipsis-h: "\f141"; +$fa-var-ellipsis-v: "\f142"; +$fa-var-rss-square: "\f143"; +$fa-var-play-circle: "\f144"; +$fa-var-ticket: "\f145"; +$fa-var-minus-square: "\f146"; +$fa-var-minus-square-o: "\f147"; +$fa-var-level-up: "\f148"; +$fa-var-level-down: "\f149"; +$fa-var-check-square: "\f14a"; +$fa-var-pencil-square: "\f14b"; +$fa-var-external-link-square: "\f14c"; +$fa-var-share-square: "\f14d"; +$fa-var-compass: "\f14e"; +$fa-var-caret-square-o-down: "\f150"; +$fa-var-caret-square-o-up: "\f151"; +$fa-var-caret-square-o-right: "\f152"; +$fa-var-eur: "\f153"; +$fa-var-gbp: "\f154"; +$fa-var-usd: "\f155"; +$fa-var-inr: "\f156"; +$fa-var-jpy: "\f157"; +$fa-var-rub: "\f158"; +$fa-var-krw: "\f159"; +$fa-var-btc: "\f15a"; +$fa-var-file: "\f15b"; +$fa-var-file-text: "\f15c"; +$fa-var-sort-alpha-asc: "\f15d"; +$fa-var-sort-alpha-desc: "\f15e"; +$fa-var-sort-amount-asc: "\f160"; +$fa-var-sort-amount-desc: "\f161"; +$fa-var-sort-numeric-asc: "\f162"; +$fa-var-sort-numeric-desc: "\f163"; +$fa-var-thumbs-up: "\f164"; +$fa-var-thumbs-down: "\f165"; +$fa-var-youtube-square: "\f166"; +$fa-var-youtube: "\f167"; +$fa-var-xing: "\f168"; +$fa-var-xing-square: "\f169"; +$fa-var-youtube-play: "\f16a"; +$fa-var-dropbox: "\f16b"; +$fa-var-stack-overflow: "\f16c"; +$fa-var-instagram: "\f16d"; +$fa-var-flickr: "\f16e"; +$fa-var-adn: "\f170"; +$fa-var-bitbucket: "\f171"; +$fa-var-bitbucket-square: "\f172"; +$fa-var-tumblr: "\f173"; +$fa-var-tumblr-square: "\f174"; +$fa-var-long-arrow-down: "\f175"; +$fa-var-long-arrow-up: "\f176"; +$fa-var-long-arrow-left: "\f177"; +$fa-var-long-arrow-right: "\f178"; +$fa-var-apple: "\f179"; +$fa-var-windows: "\f17a"; +$fa-var-android: "\f17b"; +$fa-var-linux: "\f17c"; +$fa-var-dribbble: "\f17d"; +$fa-var-skype: "\f17e"; +$fa-var-foursquare: "\f180"; +$fa-var-trello: "\f181"; +$fa-var-female: "\f182"; +$fa-var-male: "\f183"; +$fa-var-gittip: "\f184"; +$fa-var-sun-o: "\f185"; +$fa-var-moon-o: "\f186"; +$fa-var-archive: "\f187"; +$fa-var-bug: "\f188"; +$fa-var-vk: "\f189"; +$fa-var-weibo: "\f18a"; +$fa-var-renren: "\f18b"; +$fa-var-pagelines: "\f18c"; +$fa-var-stack-exchange: "\f18d"; +$fa-var-arrow-circle-o-right: "\f18e"; +$fa-var-arrow-circle-o-left: "\f190"; +$fa-var-caret-square-o-left: "\f191"; +$fa-var-dot-circle-o: "\f192"; +$fa-var-wheelchair: "\f193"; +$fa-var-vimeo-square: "\f194"; +$fa-var-try: "\f195"; +$fa-var-plus-square-o: "\f196"; + diff --git a/css/theme/source/template/_mixins.scss b/css/theme/source/template/_mixins.scss new file mode 100755 index 0000000..e69de29 diff --git a/css/theme/source/template/_settings.scss b/css/theme/source/template/_settings.scss new file mode 100755 index 0000000..d4e13b0 --- /dev/null +++ b/css/theme/source/template/_settings.scss @@ -0,0 +1,35 @@ +// Libraries +@import "compass/css3"; +@import "../lib/font-awesome/font-awesome"; + + +// Base settings for all themes that can optionally be + +// Background of the presentation +$backgroundColor: #2b2b2b; + +// Primary/body text +$mainFont: 'Gotham-Book', 'Helvetica', Arial, sans-serif; +$mainFontSize: 36px; +$mainColor: #eee; + +// Headings +$headingFont: 'Gotham-Bold', Impact, sans-serif; +$headingColor: #F05B62; +$headingLineHeight: 0.9em; +$headingLetterSpacing: 0.02em; +$headingTextTransform: uppercase; +$headingTextShadow: 0px 0px 6px rgba(0,0,0,0.2); +$heading1TextShadow: $headingTextShadow; + +// Links and actions +$linkColor: #F05B62; +$linkColorHover: lighten( $linkColor, 20% ); + +// Text selection +$selectionBackgroundColor: lighten( $linkColor, 20% ); +$selectionColor: #fff; + + +// Mixins +@import "mixins"; diff --git a/css/theme/source/template/_theme.scss b/css/theme/source/template/_theme.scss new file mode 100755 index 0000000..4ba44b1 --- /dev/null +++ b/css/theme/source/template/_theme.scss @@ -0,0 +1,246 @@ +// Base theme template for reveal.js + +/********************************************* + * GLOBAL STYLES + *********************************************/ + +html { + background: $backgroundColor; + @include bodyBackground(); +} + +// Include theme-specific fonts +@font-face { + font-family: "Gotham"; + src: local("Gotham"), + url("../../fonts/Gotham/Gotham-Medium.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "Gotham-Book"; + src: local("Gotham-Book"), + url("../../fonts/Gotham/Gotham-Book.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "Gotham-Italic"; + src: local("Gotham-Italic"), + url("../../fonts/Gotham/Gotham-MediumIta.otf") format("opentype"); + font-weight: normal; + font-style: italic; +} +@font-face { + font-family: "Gotham-Bold"; + src: local("Gotham-Bold"), + url("../../fonts/Gotham/Gotham-Bold.otf") format("opentype"); + font-weight: bold; + font-style: bold; +} + +.reveal { + font-family: $mainFont; + font-size: $mainFontSize; + font-weight: 200; + letter-spacing: -0.02em; + color: $mainColor; +} + +::selection { + color: $selectionColor; + background: $selectionBackgroundColor; + text-shadow: none; +} + +.reveal ul li { + line-height: 1.2em; + margin-bottom: 10px; +} + + + +/********************************************* + * HEADERS + *********************************************/ + +.reveal h1, +.reveal h2, +.reveal h3, +.reveal h4, +.reveal h5, +.reveal h6 { + margin: 0 0 20px 0; + color: $headingColor; + + font-family: $headingFont; + line-height: $headingLineHeight; + letter-spacing: $headingLetterSpacing; + + text-transform: $headingTextTransform; + text-shadow: $headingTextShadow; +} + +.reveal h1 { + text-shadow: $heading1TextShadow; +} + +.reveal h1 { font-size: 3.77em; } +.reveal h2 { font-size: 2.11em; } +.reveal h3 { font-size: 1.55em; } +.reveal h4 { font-size: 1em; } + +/********************************************* +* OVERRIDES +**********************************************/ +.left-align{text-align:left} +.right-align{ text-align:right} +.left{float:left} +.right{float:right} +.clear{clear:both} +.blue{color:#01A9B4 !important;} +.green{color:#92BB44 !important;} +.yellow{color:#EDAB23 !important;} +.pink{color:#F05B62 !important;} +.red{color:#8B0036 !important;} +.grey{color:#333333 !important;} +.grey--light{color:#666 !important;} + + +/********************************************* + * LINKS + *********************************************/ + +.reveal a:not(.image) { + @include transition(color .15x ease); + color: $linkColor; + text-decoration: none; +} +.reveal a:not(.image):hover { + color: $linkColorHover; + + text-shadow: none; + border: none; +} + +.reveal .roll span:after { + color: #fff; + background: $linkColor; +} + + +/********************************************* + * IMAGES + *********************************************/ + +.reveal section img { + margin: 15px; + background: rgba(255,255,255,0.12); + border: 4px solid $mainColor; + + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); + + @include transition(all .2s linear); +} + +.reveal a:hover img { + background: rgba(255,255,255,0.2); + border-color: $linkColor; + + box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); +} + + +/********************************************* + * NAVIGATION CONTROLS + *********************************************/ + +.reveal .controls .navigate-left, +.reveal .controls .navigate-left.enabled { + border-right-color: $linkColor; +} + +.reveal .controls .navigate-right, +.reveal .controls .navigate-right.enabled { + border-left-color: $linkColor; +} + +.reveal .controls .navigate-up, +.reveal .controls .navigate-up.enabled { + border-bottom-color: $linkColor; +} + +.reveal .controls .navigate-down, +.reveal .controls .navigate-down.enabled { + border-top-color: $linkColor; +} + +.reveal .controls div.navigate-left.enabled:hover { + border-right-color: $linkColorHover; +} + +.reveal .controls div.navigate-right.enabled:hover { + border-left-color: $linkColorHover; +} + +.reveal .controls div.navigate-up.enabled:hover { + border-bottom-color: $linkColorHover; +} + +.reveal .controls div.navigate-down.enabled:hover { + border-top-color: $linkColorHover; +} + + +/********************************************* + * PROGRESS BAR + *********************************************/ + +.reveal .progress { + background: rgba(0,0,0,0.2); +} + .reveal .progress span { + background: $linkColor; + + @include transition(width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985)); + } + + +/********************************************* + * FOOTER + *********************************************/ +.reveal { + footer { + position: fixed; + height: 40px; + width: 100%; + bottom: 3px; + left: 0; + z-index: 10; + font-size: 35%; + text-align:right; + background-image: url(../../images/pink-logo.png); + background-repeat: no-repeat; + background-size: auto 100%; + } + + .copyright { + margin:15px 5px 0 100px; + font-style: italic; + + a img { + vertical-align: middle; + } + } +} + +/********************************************* + * EVENT + *********************************************/ + +.event__title { + @extend .blue; + text-transform: uppercase !important; + + small { @extend .grey--light; } +} diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..4c73757 Binary files /dev/null and b/favicon.ico differ diff --git a/fonts/FontAwesome/FontAwesome.otf b/fonts/FontAwesome/FontAwesome.otf new file mode 100644 index 0000000..8b0f54e Binary files /dev/null and b/fonts/FontAwesome/FontAwesome.otf differ diff --git a/fonts/FontAwesome/fontawesome-webfont.eot b/fonts/FontAwesome/fontawesome-webfont.eot new file mode 100644 index 0000000..7c79c6a Binary files /dev/null and b/fonts/FontAwesome/fontawesome-webfont.eot differ diff --git a/fonts/FontAwesome/fontawesome-webfont.svg b/fonts/FontAwesome/fontawesome-webfont.svg new file mode 100644 index 0000000..45fdf33 --- /dev/null +++ b/fonts/FontAwesome/fontawesome-webfont.svg @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/FontAwesome/fontawesome-webfont.ttf b/fonts/FontAwesome/fontawesome-webfont.ttf new file mode 100644 index 0000000..e89738d Binary files /dev/null and b/fonts/FontAwesome/fontawesome-webfont.ttf differ diff --git a/fonts/FontAwesome/fontawesome-webfont.woff b/fonts/FontAwesome/fontawesome-webfont.woff new file mode 100644 index 0000000..8c1748a Binary files /dev/null and b/fonts/FontAwesome/fontawesome-webfont.woff differ diff --git a/fonts/Gotham/Gotham-Bold.otf b/fonts/Gotham/Gotham-Bold.otf new file mode 100644 index 0000000..8486e9c Binary files /dev/null and b/fonts/Gotham/Gotham-Bold.otf differ diff --git a/fonts/Gotham/Gotham-BoldIta.otf b/fonts/Gotham/Gotham-BoldIta.otf new file mode 100644 index 0000000..86ec1ff Binary files /dev/null and b/fonts/Gotham/Gotham-BoldIta.otf differ diff --git a/fonts/Gotham/Gotham-BoldItalic.otf b/fonts/Gotham/Gotham-BoldItalic.otf new file mode 100644 index 0000000..f3610f8 Binary files /dev/null and b/fonts/Gotham/Gotham-BoldItalic.otf differ diff --git a/fonts/Gotham/Gotham-Book.otf b/fonts/Gotham/Gotham-Book.otf new file mode 100644 index 0000000..d729c4e Binary files /dev/null and b/fonts/Gotham/Gotham-Book.otf differ diff --git a/fonts/Gotham/Gotham-BookIta.otf b/fonts/Gotham/Gotham-BookIta.otf new file mode 100644 index 0000000..d297122 Binary files /dev/null and b/fonts/Gotham/Gotham-BookIta.otf differ diff --git a/fonts/Gotham/Gotham-BookItalic.otf b/fonts/Gotham/Gotham-BookItalic.otf new file mode 100644 index 0000000..0f4379f Binary files /dev/null and b/fonts/Gotham/Gotham-BookItalic.otf differ diff --git a/fonts/Gotham/Gotham-Medium.otf b/fonts/Gotham/Gotham-Medium.otf new file mode 100644 index 0000000..484e6b2 Binary files /dev/null and b/fonts/Gotham/Gotham-Medium.otf differ diff --git a/fonts/Gotham/Gotham-MediumIta.otf b/fonts/Gotham/Gotham-MediumIta.otf new file mode 100644 index 0000000..98a48b0 Binary files /dev/null and b/fonts/Gotham/Gotham-MediumIta.otf differ diff --git a/fonts/Gotham/Gotham-MediumItalic.otf b/fonts/Gotham/Gotham-MediumItalic.otf new file mode 100644 index 0000000..bcfabe1 Binary files /dev/null and b/fonts/Gotham/Gotham-MediumItalic.otf differ diff --git a/fonts/Gotham/league_gothic-webfont.eot b/fonts/Gotham/league_gothic-webfont.eot new file mode 100644 index 0000000..598dcbc Binary files /dev/null and b/fonts/Gotham/league_gothic-webfont.eot differ diff --git a/fonts/Gotham/league_gothic-webfont.svg b/fonts/Gotham/league_gothic-webfont.svg new file mode 100644 index 0000000..201cfe1 --- /dev/null +++ b/fonts/Gotham/league_gothic-webfont.svg @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/Gotham/league_gothic-webfont.ttf b/fonts/Gotham/league_gothic-webfont.ttf new file mode 100644 index 0000000..29f896a Binary files /dev/null and b/fonts/Gotham/league_gothic-webfont.ttf differ diff --git a/fonts/Gotham/league_gothic-webfont.woff b/fonts/Gotham/league_gothic-webfont.woff new file mode 100644 index 0000000..71117fb Binary files /dev/null and b/fonts/Gotham/league_gothic-webfont.woff differ diff --git a/fonts/Gotham/league_gothic_license b/fonts/Gotham/league_gothic_license new file mode 100644 index 0000000..29513e9 --- /dev/null +++ b/fonts/Gotham/league_gothic_license @@ -0,0 +1,2 @@ +SIL Open Font License (OFL) +http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL diff --git a/images/.DS_Store b/images/.DS_Store deleted file mode 100644 index b820c19..0000000 Binary files a/images/.DS_Store and /dev/null differ diff --git a/images/Bootcamp-Fork.png b/images/Bootcamp-Fork.png deleted file mode 100644 index 08967d6..0000000 Binary files a/images/Bootcamp-Fork.png and /dev/null differ diff --git a/images/error.png b/images/error.png new file mode 100644 index 0000000..2dd9b99 Binary files /dev/null and b/images/error.png differ diff --git a/images/gdi_logo_badge.png b/images/gdi_logo_badge.png index 797ea96..dd31530 100644 Binary files a/images/gdi_logo_badge.png and b/images/gdi_logo_badge.png differ diff --git a/images/loop-illustration.png b/images/loop-illustration.png deleted file mode 100644 index 45ae8fd..0000000 Binary files a/images/loop-illustration.png and /dev/null differ diff --git a/images/pink-logo.png b/images/pink-logo.png new file mode 100755 index 0000000..40e0ec1 Binary files /dev/null and b/images/pink-logo.png differ diff --git a/images/repl.png b/images/repl.png new file mode 100644 index 0000000..04d540f Binary files /dev/null and b/images/repl.png differ diff --git a/images/replRun.png b/images/replRun.png new file mode 100644 index 0000000..486fe5f Binary files /dev/null and b/images/replRun.png differ diff --git a/images/ronda1.jpg b/images/ronda1.jpg new file mode 100644 index 0000000..433a098 Binary files /dev/null and b/images/ronda1.jpg differ diff --git a/images/sponsors/.DS_Store b/images/sponsors/.DS_Store deleted file mode 100644 index 5008ddf..0000000 Binary files a/images/sponsors/.DS_Store and /dev/null differ diff --git a/images/sponsors/salesforce.jpg b/images/sponsors/salesforce.jpg deleted file mode 100644 index a3c8984..0000000 Binary files a/images/sponsors/salesforce.jpg and /dev/null differ diff --git a/images/sponsors/sendgrid.jpg b/images/sponsors/sendgrid.jpg deleted file mode 100644 index 5e34917..0000000 Binary files a/images/sponsors/sendgrid.jpg and /dev/null differ diff --git a/images/sponsors/simpleenergy.png b/images/sponsors/simpleenergy.png deleted file mode 100644 index 5ff892a..0000000 Binary files a/images/sponsors/simpleenergy.png and /dev/null differ diff --git a/images/variables.png b/images/variables.png new file mode 100644 index 0000000..ef1fc28 Binary files /dev/null and b/images/variables.png differ diff --git a/images/variables1.png b/images/variables1.png new file mode 100644 index 0000000..63316b4 Binary files /dev/null and b/images/variables1.png differ diff --git a/index.html b/index.html index db72a2e..5672500 100644 --- a/index.html +++ b/index.html @@ -1,444 +1,795 @@ - + - - - - - Intro to Programming Concepts for True Beginners - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
- -

Introduction to Programming Concepts (for True Beginners!)

-
-
-

Thanks to our sponsor:

- -
-
-

Thanks to our sponsor:

- -
- -
-

Class notes

- -
- -
-

A few quick announcements

-
- -
-

Upcoming Events

-

Introduction to Javascript & jQuery

-

Saturday, July 26, 2014

-

Simple Energy

-
- -
-

Welcome!

-
-

Girl Develop It is here to provide affordable and accessible programs to learn software through mentorship and hands-on instruction.

-

Some "rules"

-
    -
  • We are here for you!
  • -
  • Every question is important
  • -
  • Help each other
  • -
  • Have fun
  • -
-
-
- -
-

Your instructors

-
    -
  • Teri Charles
  • -
  • Jen Skiendzielewski
  • - -
-
- -
-

Computer Programs

-
    -
  • Computer programs are everywhere.
  • -
      -
    • Run parts of your car.
    • -
    • Let you check your email.
    • -
    • Underlie that favorite app on your smartphone.
    • -
    -
  • But what are they, really?
  • -
      -
- -
-

What is a Computer Program?

-
    -
  • At its core, a computer program is a way of getting something done.
  • -
-
- -
-

Programming Languages

-
    -
  • A programming language is basically a set of strings (letters, numbers, commands) that is changed into machine code that the computer can understand.
  • -
-
- -
-

Programming Languages

- -
    -
  • To develop websites, you might use HTML, JavaScript, Python, Java, PHP.
  • -
  • To create databases and move information in and out of them, you might use MySQL, SQL, Dbase.
  • -
  • To write applications like Microsoft Word or Adobe Acrobat, you might use C++, Java, Visual Basic
  • -
-
- -
-

Important to Remember

-
    -
  • One of the most important things to remember is that when programming, you are doing something for people, and that the computer and the program mediate that. ~Michael Bolton (Software Tester extraordinaire)
  • -
-
- -
-

Computers are dumb

-
    -
  • Computers can only do what they have instructions for-- and they take those instructions VERY literally.
  • -
-
- -
-

Demonstration

-
- -
-

Memory

-
    -
  • A computer doesn’t have a memory like we do. Sure, a computer has “memory”-- In fact it has a couple of kinds...
  • -
-
- -
-

Kinds of Memory - ROM

-
    -
  • ROM or Read-only memory is the more permanent kind.
  • -
-
- -
-

Kinds of Memory - Storage

-
    -
  • More permanent, more long term memory.
  • -
      -
- -
-

Kinds of Memory - RAM

-
    -
  • RAM or Random-access memory is less permanent.
  • -
-
- -
-

Programming structures

-
    -
  • No matter what programming language you use, the structures that are available are fairly similar.
  • -
      -
    • Variables
    • -
    • Logical structures:
    • -
        -
      • If/Else statements
      • -
      • Loops
      • -
      -
    -
-
- -
-

Variables

-
    -
  • A variable is essentially a storage container for information.
  • -
  • Examples:
  • -
      -
    • age = 28
    • -
    • color = blue
    • -
    -
  • There are different kinds of variables based on the information that you want to store.
  • -
-
- -
-

Integer Variables

-
    -
  • Integer variables are used to store positive or negative whole numbers.
  • -
-
- -
-

String Variables

-
    -
  • String variables are used to store text.
  • -
-
- -
-

Numbers as strings

-
    -
  • You can store a number as a string variable.
  • -
  • If you store a number as a string variable, you can’t use it in any math calculations.
  • -
-
- -
-

Boolean Variables

-
    -
  • Boolean variables are used to store the value TRUE or FALSE (yes or no).
  • -
-
- -
-

Logical structures

-
    -
  • Now that you can store data, you probably want to do something with it.
  • -
-
- -
-

Operators

-
    -
  • Operators are words or symbols that let you compare, combine, or evaulate something to produce an output.
  • - -
  • A few xamples: -
      -
    • = (equal to)
    • -
    • > (greater than)
    • -
    • < (less than)
    • -
    • >= (greater than or equal to)
    • -
    • < = (less than or equal to)
    • -
    • != (not equal)
    • -
    • and
    • -
    • or
    • -
    -
-
- -
-

If/Then/Else

-
    -
  • If/Then/Else statements evaluate a condition and take actions based on the result.
  • -
-
- -
-

Let's Do Some If/Then/Else! (1/4)

-
- -
-

If/Then/Else Excercises (2/4)

-
    -
  • For this excercise, we're using Ruby.
  • -
  • Go to repl.it, which is an online terminal to practice writing code.
  • -
  • Choose 'Ruby'.
  • -
-
- -
-

IF Excercise (3/4)

-

-cart_total = 8
-
-if cart_total > 2
-    print "You get free shipping!"
-end
-				
-
    -
  • Change the numbers to see what happens.
  • -
  • Change the operators (greater than, less than, etc.)
  • -
-
- -
-

IF/THEN/ELSE Excercise (4/4)

-

-cart_total = 8
-
-if cart_total > 2
-    print "You get free shipping!"
-else
-    print "You'll have to pay for shipping."
-end
-				
-
    -
  • Change the numbers to see what happens.
  • -
  • Change the operators (greater than, less than, etc.)
  • -
  • Change the string statements.
  • -
-
- -
-

Loops

-
    -
  • A loop is a list of instructions that repeats until a certain condition is reached.
  • -
-
- -
-

Let's Do Some Loops! (1/4)

-
- -
-

Loop Excercise (2/4)

-
    -
  • For this excercise, we're using Python.
  • -
  • Go to repl.it, which is an online terminal to practice writing code.
  • -
  • Choose 'Python'.
  • -
-
- -
-

Loop (while) Excercise (3/4)

-

-papers_to_deliver = 65
-
-while papers_to_deliver > 0:
-    print papers_to_deliver
-    papers_to_deliver = papers_to_deliver - 1
-print 'Out of papers! Go home!';
-				
-
    -
  • Change the numbers to see what happens.
  • -
  • Change the operators (greater than, less than, etc.)
  • -
  • Change the string statements.
  • -
  • See the next slide that will explain what is happening in the loop (via a diagram).
  • -
-
- -
- -
- -
-

Beware the Infinite Loop!

-
    -
  • An infinite loop is a loop that will never meet the condition to stop. It will keep going until it's used up all your computer's (or server's) memory (RAM). This is bad!
  • -
  • Example: In the While loop:
  • -
      -
    • If the "papers_to_deliver = papers_to_deliver - 1" line was missing, it would keep looping because 65 is always greater than 0!
    • -
    • If "papers_to_deliver = papers_to_deliver - 1" was changed to "+ 1", it would keep adding 1 to 65 forever!
    • -
    -
-
- -
-

Project Implementation
Example

-
    -
  • When companies implement a new program, they take various things into consideration:
  • -
-
    -
  1. Possible languages to use: -
      -
    • Python: computer program
    • -
    • SQL: manage the data
    • -
    • HTML/CSS: web development to share on the Internet
    • -
    -
  2. Programming structures:
  3. -
      -
    • Variables: place to store the information such as, colors, amounts, etc.
    • -
    • Detailed steps to tell the computer what to do.
    • -
    • Loops: Instructions that keeps repeating as neccessary.
    • -
    -
-
- -
-

Coding Classes Resources (most are free) and Books

- -
-
- - - -
- - - - - - - + + + + + + + diff --git a/index2.html b/index2.html deleted file mode 100644 index 7d84139..0000000 --- a/index2.html +++ /dev/null @@ -1,545 +0,0 @@ - - - - - - - Intro to Programming Concepts for True Beginners - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
- -

Introduction to Programming Concepts (for True Beginners!)

-
-
-

Thanks to our sponsor:

- -
-
-

Thanks to our sponsor:

- -
- -
-

Class notes

- -
- -
-

A few quick announcements

-
- -
-

Upcoming Events

-

Introduction to Javascript & jQuery

-

Saturday, July 26, 2014

-

Simple Energy

-
- -
-

Welcome!

-
-

Girl Develop It is here to provide affordable and accessible programs to learn software through mentorship and hands-on instruction.

-

Some "rules"

-
    -
  • We are here for you!
  • -
  • Every question is important
  • -
  • Help each other
  • -
  • Have fun
  • -
-
-
- -
-

Your instructors

-
    -
  • Teri Charles
  • -
  • Jen Skiendzielewski
  • - -
-
- - - - - -
-

Computer Programs

-
    -
  • Computer programs are everywhere. They: -
      -
    • Run parts of your car.
    • -
    • Let you check your email.
    • -
    • Underlie that favorite app on your smartphone.
    • -
    -
  • But what are they, really?
  • -
      -
- -
-

What is a Computer Program?

-
    -
  • At its core, a computer program is a way of getting something done.
  • -
  • One of the ways to accomplish "getting something done" is a list of instructions that tells the computer exactly what to do and allows interaction with human beings.
  • -
  • Those instructions have to be written in a "language" that the computer can understand.
  • -
-
- -
-

Programming Languages (1/2)

-
    -
  • A programming language is basically a set of strings (letters, numbers, commands) that is changed into machine code that the computer can understand.
  • -
  • The language you use for a program depends on a number of things:
  • -
      -
    • How the program will be used.
    • -
    • What you want the program to do.
    • -
    • What languages you know.
    • -
    -
-
- -
-

Programming Languages (2/2)

-
    -
  • Computers don’t exactly understand programming languages (such as Java or Python). They need to be transformed into the computer language that they can understand.
  • -
  • That computer language is strings of 1’s and 0’s-- binary numbers that most people can’t read easily-- to be able to do anything with them.
  • -
      -
    • For example, the letter 'A' in a computer has the binary representation: 01000001.
    • -
    -
  • Despite being able to decipher those unintelligible strings of 1’s and 0’s, computers are actually pretty dumb.
  • -
-
- -
-

Programming Languages

- -
    -
  • To develop websites, you might use HTML, JavaScript, Python, Java, PHP.
  • -
  • To create databases and move information in and out of them, you might use MySQL, SQL, Dbase.
  • -
  • To write applications like Microsoft Word or Adobe Acrobat, you might use C++, Java, Visual Basic
  • -
-
- -
-

Important to Remember

-
    -
  • One of the most important things to remember is that when programming, you are doing something for people, and that the computer and the program mediate that. ~Michael Bolton (Software Tester extraordinaire)
  • -
-
- -
-

Computers are dumb

-
    -
  • Computers can only do what they have instructions for-- and they take those instructions VERY literally.
  • -
  • As a result, you have to tell them every single thing you want them to do and every single thing to take into consideration.
  • -
  • If you leave any instructions out (or put them in the “wrong” order), the results might not be what you expect.
  • -
-
- -
-

Demonstration

-
    -
  • One person is the "program", and one person is the "computer".
  • -
  • The "computer" has to do literally what the "program" says to do!
  • -
  • We did one person (program) telling the other person (computer) what to do verbatim (answering the phone)
  • -
- -
-

Memory

-
    -
  • A computer doesn’t have a memory like we do. Sure, a computer has “memory”-- In fact it has a couple of kinds...
  • -
-
- -
-

Kinds of Memory - ROM

-
    -
  • ROM or Read-only memory is the more permanent kind.
  • -
  • ROM is used in the computer so that the processor does not have to look for important pieces of data when switched on, like the operating system.
  • -
  • For the most part, you cannot edit files in ROM and data on it cannot be erased by turning off your computer.
  • -
-
- -
-

Kinds of Memory - Storage

-
    -
  • More permanent, more long term memory.
  • -
  • This memory is what the computer uses to store programs and files that you create.
  • -
  • Examples would be the hard drive on the computer, thumb drive, or external hard drive.
  • -
      -
- -
-

Kinds of Memory - RAM

-
    -
  • RAM or Random-access memory is less permanent.
  • -
  • RAM is the memory that the computer uses to do its "thinking" (such as when you're working on a Word document, the changes you make before you hit Save, are stored in RAM).
  • -
  • When computer is turned off, data in RAM is gone and cannot be recovered unless it has been saved.
  • -
-
- -
-

Programming structures

-
    -
  • No matter what programming language you use, the structures that are available are fairly similar.
  • -
      -
    • Variables
    • -
    • Logical structures:
    • -
        -
      • If/Else statements
      • -
      • Loops
      • -
      -
    -
-
- -
-

Variables

-
    -
  • A variable is essentially a storage container for information.
  • -
  • Examples:
  • -
      -
    • age = 28
    • -
    • color = blue
    • -
    -
  • There are different kinds of variables based on the information that you want to store.
  • -
-
- -
-

Integer Variables

-
    -
  • Integer variables are used to store positive or negative whole numbers.
  • -
  • Examples:
  • -
      -
    • Amazon: number of books you can order is an integer (also the number in 'cart').
    • -
    • More than likely, Amazon stores this field as an integer because they’ll want to do calculations with it. If you order 2 copies of a book, the program multiplies the price by 2 to get the total cost.
    • -
    • Another example is in eBay. When you select something to order, the quantity is an integer. See what happens when you put in the letter 'a' or a special character like '@'.
    • -
    -
-
- -
-

String Variables

-
    -
  • String variables are used to store text.
  • -
  • Examples:
  • -
      -
    • Staying with Amazon, if you went into your profile, fields like name, address, state, and city are strings.
    • -
    • Usually when a string is created in the program, it's surrounded by quotation marks.
    • -
    -
-
- -
-

Numbers as strings

-
    -
  • You can store a number as a string variable.
  • -
  • If you store a number as a string variable, you can’t use it in any math calculations.
  • -
  • For example, credit card numbers are integers but you would never use them in a mathematical calculation.
  • -
  • Another example would be postal codes. Even though the USA uses only numbers, not all countries do. So if you make your zip code field an integer, no other country can use it except the USA.
  • -
-
- -
-

Boolean Variables

-
    -
  • Boolean variables are used to store the value TRUE or FALSE (yes or no).
  • -
  • You define a condition, then use a Boolean to tell the computer whether that condition is true or false.
  • -
  • Example:
  • -
      -
    • Amazon: If the login equals true, your name shows up, your cart is populated, etc.
    • -
    -
-
- -
-

Logical structures

-
    -
  • Now that you can store data, you probably want to do something with it.
  • -
  • Logical structures provide the framework for using that data to "get stuff done".
  • -
  • If you understand the concepts, you can learn how to represent them in most programming languages.
  • -
-
- -
-

Operators

-
    -
  • Operators are words or symbols that let you compare, combine, or evaulate something to produce an output.
  • - -
  • A few xamples: -
      -
    • = (equal to)
    • -
    • > (greater than)
    • -
    • < (less than)
    • -
    • >= (greater than or equal to)
    • -
    • < = (less than or equal to)
    • -
    • != (not equal)
    • -
    • and
    • -
    • or
    • -
    -
-
- -
-

If/Then/Else

-
    -
  • If/Then/Else statements evaluate a condition and take actions based on the result:
  • -
      -
    • If the condition is true, the computer does the action or actions that are listed after the IF statement (in some languages, the "Then" is implied).
    • -
    • If the condition is false, the computer does the action or actions that are listed in the Else statement.
    • -
    -
-
- -
-

If/Then/Else Examples

-
    -
  • Still staying with Amazon.
  • -
      -
    • "IF" you're logged in, show your name and cart numbers. "ELSE", show the login page.
    • -
    • "IF" you're an Amazon Prime member, you get free shipping. "ELSE", you get to pay for shipping!
    • -
    -
-
- -
-

Let's Do Some If/Then/Else! (1/4)

-
- -
-

If/Then/Else Excercises (2/4)

-
    -
  • For this excercise, we're using Ruby.
  • -
  • Go to repl.it, which is an online terminal to practice writing code.
  • -
  • Choose 'Ruby'.
  • -
-
- -
-

IF Excercise (3/4)

-

-cart_total = 8
-
-if cart_total > 2
-    print "You get free shipping!"
-end
-				
-
    -
  • Change the numbers to see what happens.
  • -
  • Change the operators (greater than, less than, etc.)
  • -
-
- -
-

IF/THEN/ELSE Excercise (4/4)

-
    -
  • ELSE is the companion to the IF statement. An IF/THEN/ELSE statement says "If the statement is true, run this block of code; if it's not true, run the code after the else statement."
  • -
-

-cart_total = 8
-
-if cart_total > 2
-    print "You get free shipping!"
-else
-    print "You'll have to pay for shipping."
-end
-				
-
    -
  • Change the numbers to see what happens.
  • -
  • Change the operators (greater than, less than, etc.)
  • -
  • Change the string statements.
  • -
-
- -
-

Loops (1/2)

-
    -
  • A loop is a list of instructions that repeats until a certain condition is reached.
  • -
  • Two kinds of loops are For Loops and While Loops.
  • -
-
- -
-

Why Use Loops? (2/2)

-
    -
  • Using loops is very powerful. One of the main reasons to use loops is to reduce your lines of code.
  • -
  • Depending on what you're doing, you could have hundreds of lines of code using "IF/THEN/ELSE", or you could write a simple Loop statement.
  • -
-
- -
-

Let's Do Some Loops! (1/4)

-
- -
-

Loop Excercise (2/4)

-
    -
  • For this excercise, we're using Python.
  • -
  • Go to repl.it, which is an online terminal to practice writing code.
  • -
  • Choose 'Python'.
  • -
-
- -
-

Loop (while) Excercise (3/4)

-

-papers_to_deliver = 65
-
-while papers_to_deliver > 0:
-    print papers_to_deliver
-    papers_to_deliver = papers_to_deliver - 1
-print 'Out of papers! Go home!';
-				
-
    -
  • Change the numbers to see what happens.
  • -
  • Change the operators (greater than, less than, etc.)
  • -
  • Change the string statements.
  • -
  • See the next slide that will explain what is happening in the loop (via a diagram).
  • -
-
- -
- -
- -
-

WHILE Loop Examples

-
    -
  • Amazon or eBay: "WHILE" it's today, display the daily deals.
  • -
  • Amazon cart: "WHILE" it's this book, display the book's image, title, price, etc.
  • -
-
- -
-

Beware the Infinite Loop!

-
    -
  • An infinite loop is a loop that will never meet the condition to stop. It will keep going until it's used up all your computer's (or server's) memory (RAM). This is bad!
  • -
  • Example: In the While loop:
  • -
      -
    • If the "papers_to_deliver = papers_to_deliver - 1" line was missing, it would keep looping because 65 is always greater than 0!
    • -
    • If "papers_to_deliver = papers_to_deliver - 1" was changed to "+ 1", it would keep adding 1 to 65 forever!
    • -
    -
-
- -
-

Project Implementation
Example

-
    -
  • When companies implement a new program, they take various things into consideration:
  • -
-
    -
  1. Possible languages to use: -
      -
    • Python: computer program
    • -
    • SQL: manage the data
    • -
    • HTML/CSS: web development to share on the Internet
    • -
    -
  2. Programming structures:
  3. -
      -
    • Variables: place to store the information such as, colors, amounts, etc.
    • -
    • Detailed steps to tell the computer what to do.
    • -
    • Loops: Instructions that keeps repeating as neccessary.
    • -
    -
-
- -
-

Coding Classes Resources (most are free) and Books

- -
-
- - - -
- - - - - - - - - diff --git a/js/jquery.min.js b/js/jquery.min.js new file mode 100644 index 0000000..da41706 --- /dev/null +++ b/js/jquery.min.js @@ -0,0 +1,6 @@ +/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-1.10.2.min.map +*/ +(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
t
",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("', + '' + ].join(''); + + dom.preview.querySelector( 'iframe' ).addEventListener( 'load', function( event ) { + dom.preview.classList.add( 'loaded' ); + }, false ); + + dom.preview.querySelector( '.close' ).addEventListener( 'click', function( event ) { + closePreview(); + event.preventDefault(); + }, false ); + + dom.preview.querySelector( '.external' ).addEventListener( 'click', function( event ) { + closePreview(); + }, false ); + + setTimeout( function() { + dom.preview.classList.add( 'visible' ); + }, 1 ); + + } + + /** + * Closes the iframe preview window. + */ + function closePreview() { + + if( dom.preview ) { + dom.preview.setAttribute( 'src', '' ); + dom.preview.parentNode.removeChild( dom.preview ); + dom.preview = null; + } + + } + + /** + * Return a sorted fragments list, ordered by an increasing + * "data-fragment-index" attribute. + * + * Fragments will be revealed in the order that they are returned by + * this function, so you can use the index attributes to control the + * order of fragment appearance. + * + * To maintain a sensible default fragment order, fragments are presumed + * to be passed in document order. This function adds a "fragment-index" + * attribute to each node if such an attribute is not already present, + * and sets that attribute to an integer value which is the position of + * the fragment within the fragments list. + */ + function sortFragments( fragments ) { + + var a = toArray( fragments ); + + a.forEach( function( el, idx ) { + if( !el.hasAttribute( 'data-fragment-index' ) ) { + el.setAttribute( 'data-fragment-index', idx ); + } + } ); + + a.sort( function( l, r ) { + return l.getAttribute( 'data-fragment-index' ) - r.getAttribute( 'data-fragment-index'); + } ); + + return a; + + } + + /** + * Applies JavaScript-controlled layout rules to the + * presentation. + */ + function layout() { + + if( dom.wrapper && !isPrintingPDF() ) { + + // Available space to scale within + var availableWidth = dom.wrapper.offsetWidth, + availableHeight = dom.wrapper.offsetHeight; + + // Reduce available space by margin + availableWidth -= ( availableHeight * config.margin ); + availableHeight -= ( availableHeight * config.margin ); + + // Dimensions of the content + var slideWidth = config.width, + slideHeight = config.height, + slidePadding = 20; // TODO Dig this out of DOM + + // Layout the contents of the slides + layoutSlideContents( config.width, config.height, slidePadding ); + + // Slide width may be a percentage of available width + if( typeof slideWidth === 'string' && /%$/.test( slideWidth ) ) { + slideWidth = parseInt( slideWidth, 10 ) / 100 * availableWidth; + } + + // Slide height may be a percentage of available height + if( typeof slideHeight === 'string' && /%$/.test( slideHeight ) ) { + slideHeight = parseInt( slideHeight, 10 ) / 100 * availableHeight; + } + + dom.slides.style.width = slideWidth + 'px'; + dom.slides.style.height = slideHeight + 'px'; + + // Determine scale of content to fit within available space + scale = Math.min( availableWidth / slideWidth, availableHeight / slideHeight ); + + // Respect max/min scale settings + scale = Math.max( scale, config.minScale ); + scale = Math.min( scale, config.maxScale ); + + // Prefer applying scale via zoom since Chrome blurs scaled content + // with nested transforms + if( typeof dom.slides.style.zoom !== 'undefined' && !navigator.userAgent.match( /(iphone|ipod|ipad|android)/gi ) ) { + dom.slides.style.zoom = scale; + } + // Apply scale transform as a fallback + else { + transformElement( dom.slides, 'translate(-50%, -50%) scale('+ scale +') translate(50%, 50%)' ); + } + + // Select all slides, vertical and horizontal + var slides = toArray( document.querySelectorAll( SLIDES_SELECTOR ) ); + + for( var i = 0, len = slides.length; i < len; i++ ) { + var slide = slides[ i ]; + + // Don't bother updating invisible slides + if( slide.style.display === 'none' ) { + continue; + } + + if( config.center ) { + // Vertical stacks are not centred since their section + // children will be + if( slide.classList.contains( 'stack' ) ) { + slide.style.top = 0; + } + else { + slide.style.top = Math.max( - ( getAbsoluteHeight( slide ) / 2 ) - slidePadding, -slideHeight / 2 ) + 'px'; + } + } + else { + slide.style.top = ''; + } + + } + + updateProgress(); + + } + + } + + /** + * Applies layout logic to the contents of all slides in + * the presentation. + */ + function layoutSlideContents( width, height, padding ) { + + // Handle sizing of elements with the 'stretch' class + toArray( dom.slides.querySelectorAll( 'section > .stretch' ) ).forEach( function( element ) { + + // Determine how much vertical space we can use + var remainingHeight = getRemainingHeight( element, ( height - ( padding * 2 ) ) ); + + // Consider the aspect ratio of media elements + if( /(img|video)/gi.test( element.nodeName ) ) { + var nw = element.naturalWidth || element.videoWidth, + nh = element.naturalHeight || element.videoHeight; + + var es = Math.min( width / nw, remainingHeight / nh ); + + element.style.width = ( nw * es ) + 'px'; + element.style.height = ( nh * es ) + 'px'; + + } + else { + element.style.width = width + 'px'; + element.style.height = remainingHeight + 'px'; + } + + } ); + + } + + /** + * Stores the vertical index of a stack so that the same + * vertical slide can be selected when navigating to and + * from the stack. + * + * @param {HTMLElement} stack The vertical stack element + * @param {int} v Index to memorize + */ + function setPreviousVerticalIndex( stack, v ) { + + if( typeof stack === 'object' && typeof stack.setAttribute === 'function' ) { + stack.setAttribute( 'data-previous-indexv', v || 0 ); + } + + } + + /** + * Retrieves the vertical index which was stored using + * #setPreviousVerticalIndex() or 0 if no previous index + * exists. + * + * @param {HTMLElement} stack The vertical stack element + */ + function getPreviousVerticalIndex( stack ) { + + if( typeof stack === 'object' && typeof stack.setAttribute === 'function' && stack.classList.contains( 'stack' ) ) { + // Prefer manually defined start-indexv + var attributeName = stack.hasAttribute( 'data-start-indexv' ) ? 'data-start-indexv' : 'data-previous-indexv'; + + return parseInt( stack.getAttribute( attributeName ) || 0, 10 ); + } + + return 0; + + } + + /** + * Displays the overview of slides (quick nav) by + * scaling down and arranging all slide elements. + * + * Experimental feature, might be dropped if perf + * can't be improved. + */ + function activateOverview() { + + // Only proceed if enabled in config + if( config.overview ) { + + // Don't auto-slide while in overview mode + cancelAutoSlide(); + + var wasActive = dom.wrapper.classList.contains( 'overview' ); + + // Vary the depth of the overview based on screen size + var depth = window.innerWidth < 400 ? 1000 : 2500; + + dom.wrapper.classList.add( 'overview' ); + dom.wrapper.classList.remove( 'overview-deactivating' ); + + clearTimeout( activateOverviewTimeout ); + clearTimeout( deactivateOverviewTimeout ); + + // Not the pretties solution, but need to let the overview + // class apply first so that slides are measured accurately + // before we can position them + activateOverviewTimeout = setTimeout( function() { + + var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ); + + for( var i = 0, len1 = horizontalSlides.length; i < len1; i++ ) { + var hslide = horizontalSlides[i], + hoffset = config.rtl ? -105 : 105; + + hslide.setAttribute( 'data-index-h', i ); + + // Apply CSS transform + transformElement( hslide, 'translateZ(-'+ depth +'px) translate(' + ( ( i - indexh ) * hoffset ) + '%, 0%)' ); + + if( hslide.classList.contains( 'stack' ) ) { + + var verticalSlides = hslide.querySelectorAll( 'section' ); + + for( var j = 0, len2 = verticalSlides.length; j < len2; j++ ) { + var verticalIndex = i === indexh ? indexv : getPreviousVerticalIndex( hslide ); + + var vslide = verticalSlides[j]; + + vslide.setAttribute( 'data-index-h', i ); + vslide.setAttribute( 'data-index-v', j ); + + // Apply CSS transform + transformElement( vslide, 'translate(0%, ' + ( ( j - verticalIndex ) * 105 ) + '%)' ); + + // Navigate to this slide on click + vslide.addEventListener( 'click', onOverviewSlideClicked, true ); + } + + } + else { + + // Navigate to this slide on click + hslide.addEventListener( 'click', onOverviewSlideClicked, true ); + + } + } + + updateSlidesVisibility(); + + layout(); + + if( !wasActive ) { + // Notify observers of the overview showing + dispatchEvent( 'overviewshown', { + 'indexh': indexh, + 'indexv': indexv, + 'currentSlide': currentSlide + } ); + } + + }, 10 ); + + } + + } + + /** + * Exits the slide overview and enters the currently + * active slide. + */ + function deactivateOverview() { + + // Only proceed if enabled in config + if( config.overview ) { + + clearTimeout( activateOverviewTimeout ); + clearTimeout( deactivateOverviewTimeout ); + + dom.wrapper.classList.remove( 'overview' ); + + // Temporarily add a class so that transitions can do different things + // depending on whether they are exiting/entering overview, or just + // moving from slide to slide + dom.wrapper.classList.add( 'overview-deactivating' ); + + deactivateOverviewTimeout = setTimeout( function () { + dom.wrapper.classList.remove( 'overview-deactivating' ); + }, 1 ); + + // Select all slides + toArray( document.querySelectorAll( SLIDES_SELECTOR ) ).forEach( function( slide ) { + // Resets all transforms to use the external styles + transformElement( slide, '' ); + + slide.removeEventListener( 'click', onOverviewSlideClicked, true ); + } ); + + slide( indexh, indexv ); + + cueAutoSlide(); + + // Notify observers of the overview hiding + dispatchEvent( 'overviewhidden', { + 'indexh': indexh, + 'indexv': indexv, + 'currentSlide': currentSlide + } ); + + } + } + + /** + * Toggles the slide overview mode on and off. + * + * @param {Boolean} override Optional flag which overrides the + * toggle logic and forcibly sets the desired state. True means + * overview is open, false means it's closed. + */ + function toggleOverview( override ) { + + if( typeof override === 'boolean' ) { + override ? activateOverview() : deactivateOverview(); + } + else { + isOverview() ? deactivateOverview() : activateOverview(); + } + + } + + /** + * Checks if the overview is currently active. + * + * @return {Boolean} true if the overview is active, + * false otherwise + */ + function isOverview() { + + return dom.wrapper.classList.contains( 'overview' ); + + } + + /** + * Checks if the current or specified slide is vertical + * (nested within another slide). + * + * @param {HTMLElement} slide [optional] The slide to check + * orientation of + */ + function isVerticalSlide( slide ) { + + // Prefer slide argument, otherwise use current slide + slide = slide ? slide : currentSlide; + + return slide && slide.parentNode && !!slide.parentNode.nodeName.match( /section/i ); + + } + + /** + * Handling the fullscreen functionality via the fullscreen API + * + * @see http://fullscreen.spec.whatwg.org/ + * @see https://developer.mozilla.org/en-US/docs/DOM/Using_fullscreen_mode + */ + function enterFullscreen() { + + var element = document.body; + + // Check which implementation is available + var requestMethod = element.requestFullScreen || + element.webkitRequestFullscreen || + element.webkitRequestFullScreen || + element.mozRequestFullScreen || + element.msRequestFullScreen; + + if( requestMethod ) { + requestMethod.apply( element ); + } + + } + + /** + * Enters the paused mode which fades everything on screen to + * black. + */ + function pause() { + + var wasPaused = dom.wrapper.classList.contains( 'paused' ); + + cancelAutoSlide(); + dom.wrapper.classList.add( 'paused' ); + + if( wasPaused === false ) { + dispatchEvent( 'paused' ); + } + + } + + /** + * Exits from the paused mode. + */ + function resume() { + + var wasPaused = dom.wrapper.classList.contains( 'paused' ); + dom.wrapper.classList.remove( 'paused' ); + + cueAutoSlide(); + + if( wasPaused ) { + dispatchEvent( 'resumed' ); + } + + } + + /** + * Toggles the paused mode on and off. + */ + function togglePause() { + + if( isPaused() ) { + resume(); + } + else { + pause(); + } + + } + + /** + * Checks if we are currently in the paused mode. + */ + function isPaused() { + + return dom.wrapper.classList.contains( 'paused' ); + + } + + /** + * Steps from the current point in the presentation to the + * slide which matches the specified horizontal and vertical + * indices. + * + * @param {int} h Horizontal index of the target slide + * @param {int} v Vertical index of the target slide + * @param {int} f Optional index of a fragment within the + * target slide to activate + * @param {int} o Optional origin for use in multimaster environments + */ + function slide( h, v, f, o ) { + + // Remember where we were at before + previousSlide = currentSlide; + + // Query all horizontal slides in the deck + var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ); + + // If no vertical index is specified and the upcoming slide is a + // stack, resume at its previous vertical index + if( v === undefined ) { + v = getPreviousVerticalIndex( horizontalSlides[ h ] ); + } + + // If we were on a vertical stack, remember what vertical index + // it was on so we can resume at the same position when returning + if( previousSlide && previousSlide.parentNode && previousSlide.parentNode.classList.contains( 'stack' ) ) { + setPreviousVerticalIndex( previousSlide.parentNode, indexv ); + } + + // Remember the state before this slide + var stateBefore = state.concat(); + + // Reset the state array + state.length = 0; + + var indexhBefore = indexh || 0, + indexvBefore = indexv || 0; + + // Activate and transition to the new slide + indexh = updateSlides( HORIZONTAL_SLIDES_SELECTOR, h === undefined ? indexh : h ); + indexv = updateSlides( VERTICAL_SLIDES_SELECTOR, v === undefined ? indexv : v ); + + // Update the visibility of slides now that the indices have changed + updateSlidesVisibility(); + + layout(); + + // Apply the new state + stateLoop: for( var i = 0, len = state.length; i < len; i++ ) { + // Check if this state existed on the previous slide. If it + // did, we will avoid adding it repeatedly + for( var j = 0; j < stateBefore.length; j++ ) { + if( stateBefore[j] === state[i] ) { + stateBefore.splice( j, 1 ); + continue stateLoop; + } + } + + document.documentElement.classList.add( state[i] ); + + // Dispatch custom event matching the state's name + dispatchEvent( state[i] ); + } + + // Clean up the remains of the previous state + while( stateBefore.length ) { + document.documentElement.classList.remove( stateBefore.pop() ); + } + + // If the overview is active, re-activate it to update positions + if( isOverview() ) { + activateOverview(); + } + + // Find the current horizontal slide and any possible vertical slides + // within it + var currentHorizontalSlide = horizontalSlides[ indexh ], + currentVerticalSlides = currentHorizontalSlide.querySelectorAll( 'section' ); + + // Store references to the previous and current slides + currentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide; + + + // Show fragment, if specified + if( typeof f !== 'undefined' ) { + var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment' ) ); + + toArray( fragments ).forEach( function( fragment, indexf ) { + if( indexf < f ) { + fragment.classList.add( 'visible' ); + } + else { + fragment.classList.remove( 'visible' ); + } + } ); + } + + // Dispatch an event if the slide changed + var slideChanged = ( indexh !== indexhBefore || indexv !== indexvBefore ); + if( slideChanged ) { + dispatchEvent( 'slidechanged', { + 'indexh': indexh, + 'indexv': indexv, + 'previousSlide': previousSlide, + 'currentSlide': currentSlide, + 'origin': o + } ); + } + else { + // Ensure that the previous slide is never the same as the current + previousSlide = null; + } + + // Solves an edge case where the previous slide maintains the + // 'present' class when navigating between adjacent vertical + // stacks + if( previousSlide ) { + previousSlide.classList.remove( 'present' ); + + // Reset all slides upon navigate to home + // Issue: #285 + if ( document.querySelector( HOME_SLIDE_SELECTOR ).classList.contains( 'present' ) ) { + // Launch async task + setTimeout( function () { + var slides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.stack') ), i; + for( i in slides ) { + if( slides[i] ) { + // Reset stack + setPreviousVerticalIndex( slides[i], 0 ); + } + } + }, 0 ); + } + } + + // Handle embedded content + if( slideChanged ) { + stopEmbeddedContent( previousSlide ); + startEmbeddedContent( currentSlide ); + } + + updateControls(); + updateProgress(); + updateBackground(); + + // Update the URL hash + writeURL(); + + } + + /** + * Syncs the presentation with the current DOM. Useful + * when new slides or control elements are added or when + * the configuration has changed. + */ + function sync() { + + // Subscribe to input + removeEventListeners(); + addEventListeners(); + + // Force a layout to make sure the current config is accounted for + layout(); + + // Reflect the current autoSlide value + autoSlide = config.autoSlide; + + // Start auto-sliding if it's enabled + cueAutoSlide(); + + // Re-create the slide backgrounds + createBackgrounds(); + + updateControls(); + updateProgress(); + updateBackground(); + + } + + /** + * Updates one dimension of slides by showing the slide + * with the specified index. + * + * @param {String} selector A CSS selector that will fetch + * the group of slides we are working with + * @param {Number} index The index of the slide that should be + * shown + * + * @return {Number} The index of the slide that is now shown, + * might differ from the passed in index if it was out of + * bounds. + */ + function updateSlides( selector, index ) { + + // Select all slides and convert the NodeList result to + // an array + var slides = toArray( document.querySelectorAll( selector ) ), + slidesLength = slides.length; + + if( slidesLength ) { + + // Should the index loop? + if( config.loop ) { + index %= slidesLength; + + if( index < 0 ) { + index = slidesLength + index; + } + } + + // Enforce max and minimum index bounds + index = Math.max( Math.min( index, slidesLength - 1 ), 0 ); + + for( var i = 0; i < slidesLength; i++ ) { + var element = slides[i]; + + var reverse = config.rtl && !isVerticalSlide( element ); + + element.classList.remove( 'past' ); + element.classList.remove( 'present' ); + element.classList.remove( 'future' ); + + // http://www.w3.org/html/wg/drafts/html/master/editing.html#the-hidden-attribute + element.setAttribute( 'hidden', '' ); + + if( i < index ) { + // Any element previous to index is given the 'past' class + element.classList.add( reverse ? 'future' : 'past' ); + } + else if( i > index ) { + // Any element subsequent to index is given the 'future' class + element.classList.add( reverse ? 'past' : 'future' ); + + var fragments = toArray( element.querySelectorAll( '.fragment.visible' ) ); + + // No fragments in future slides should be visible ahead of time + while( fragments.length ) { + fragments.pop().classList.remove( 'visible' ); + } + } + + // If this element contains vertical slides + if( element.querySelector( 'section' ) ) { + element.classList.add( 'stack' ); + } + } + + // Mark the current slide as present + slides[index].classList.add( 'present' ); + slides[index].removeAttribute( 'hidden' ); + + // If this slide has a state associated with it, add it + // onto the current state of the deck + var slideState = slides[index].getAttribute( 'data-state' ); + if( slideState ) { + state = state.concat( slideState.split( ' ' ) ); + } + + // If this slide has a data-autoslide attribute associated use this as + // autoSlide value otherwise use the global configured time + var slideAutoSlide = slides[index].getAttribute( 'data-autoslide' ); + if( slideAutoSlide ) { + autoSlide = parseInt( slideAutoSlide, 10 ); + } + else { + autoSlide = config.autoSlide; + } + + cueAutoSlide(); + + } + else { + // Since there are no slides we can't be anywhere beyond the + // zeroth index + index = 0; + } + + return index; + + } + + /** + * Optimization method; hide all slides that are far away + * from the present slide. + */ + function updateSlidesVisibility() { + + // Select all slides and convert the NodeList result to + // an array + var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ), + horizontalSlidesLength = horizontalSlides.length, + distanceX, + distanceY; + + if( horizontalSlidesLength ) { + + // The number of steps away from the present slide that will + // be visible + var viewDistance = isOverview() ? 10 : config.viewDistance; + + // Limit view distance on weaker devices + if( isMobileDevice ) { + viewDistance = isOverview() ? 6 : 1; + } + + for( var x = 0; x < horizontalSlidesLength; x++ ) { + var horizontalSlide = horizontalSlides[x]; + + var verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) ), + verticalSlidesLength = verticalSlides.length; + + // Loops so that it measures 1 between the first and last slides + distanceX = Math.abs( ( indexh - x ) % ( horizontalSlidesLength - viewDistance ) ) || 0; + + // Show the horizontal slide if it's within the view distance + horizontalSlide.style.display = distanceX > viewDistance ? 'none' : 'block'; + + if( verticalSlidesLength ) { + + var oy = getPreviousVerticalIndex( horizontalSlide ); + + for( var y = 0; y < verticalSlidesLength; y++ ) { + var verticalSlide = verticalSlides[y]; + + distanceY = x === indexh ? Math.abs( indexv - y ) : Math.abs( y - oy ); + + verticalSlide.style.display = ( distanceX + distanceY ) > viewDistance ? 'none' : 'block'; + } + + } + } + + } + + } + + /** + * Updates the progress bar to reflect the current slide. + */ + function updateProgress() { + + // Update progress if enabled + if( config.progress && dom.progress ) { + + var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ); + + // The number of past and total slides + var totalCount = document.querySelectorAll( SLIDES_SELECTOR + ':not(.stack)' ).length; + var pastCount = 0; + + // Step through all slides and count the past ones + mainLoop: for( var i = 0; i < horizontalSlides.length; i++ ) { + + var horizontalSlide = horizontalSlides[i]; + var verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) ); + + for( var j = 0; j < verticalSlides.length; j++ ) { + + // Stop as soon as we arrive at the present + if( verticalSlides[j].classList.contains( 'present' ) ) { + break mainLoop; + } + + pastCount++; + + } + + // Stop as soon as we arrive at the present + if( horizontalSlide.classList.contains( 'present' ) ) { + break; + } + + // Don't count the wrapping section for vertical slides + if( horizontalSlide.classList.contains( 'stack' ) === false ) { + pastCount++; + } + + } + + dom.progressbar.style.width = ( pastCount / ( totalCount - 1 ) ) * window.innerWidth + 'px'; + + } + + } + + /** + * Updates the state of all control/navigation arrows. + */ + function updateControls() { + + var routes = availableRoutes(); + var fragments = availableFragments(); + + // Remove the 'enabled' class from all directions + dom.controlsLeft.concat( dom.controlsRight ) + .concat( dom.controlsUp ) + .concat( dom.controlsDown ) + .concat( dom.controlsPrev ) + .concat( dom.controlsNext ).forEach( function( node ) { + node.classList.remove( 'enabled' ); + node.classList.remove( 'fragmented' ); + } ); + + // Add the 'enabled' class to the available routes + if( routes.left ) dom.controlsLeft.forEach( function( el ) { el.classList.add( 'enabled' ); } ); + if( routes.right ) dom.controlsRight.forEach( function( el ) { el.classList.add( 'enabled' ); } ); + if( routes.up ) dom.controlsUp.forEach( function( el ) { el.classList.add( 'enabled' ); } ); + if( routes.down ) dom.controlsDown.forEach( function( el ) { el.classList.add( 'enabled' ); } ); + + // Prev/next buttons + if( routes.left || routes.up ) dom.controlsPrev.forEach( function( el ) { el.classList.add( 'enabled' ); } ); + if( routes.right || routes.down ) dom.controlsNext.forEach( function( el ) { el.classList.add( 'enabled' ); } ); + + // Highlight fragment directions + if( currentSlide ) { + + // Always apply fragment decorator to prev/next buttons + if( fragments.prev ) dom.controlsPrev.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } ); + if( fragments.next ) dom.controlsNext.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } ); + + // Apply fragment decorators to directional buttons based on + // what slide axis they are in + if( isVerticalSlide( currentSlide ) ) { + if( fragments.prev ) dom.controlsUp.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } ); + if( fragments.next ) dom.controlsDown.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } ); + } + else { + if( fragments.prev ) dom.controlsLeft.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } ); + if( fragments.next ) dom.controlsRight.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } ); + } + + } + + } + + /** + * Updates the background elements to reflect the current + * slide. + */ + function updateBackground() { + + // Update the classes of all backgrounds to match the + // states of their slides (past/present/future) + toArray( dom.background.childNodes ).forEach( function( backgroundh, h ) { + + // Reverse past/future classes when in RTL mode + var horizontalPast = config.rtl ? 'future' : 'past', + horizontalFuture = config.rtl ? 'past' : 'future'; + + backgroundh.className = 'slide-background ' + ( h < indexh ? horizontalPast : h > indexh ? horizontalFuture : 'present' ); + + toArray( backgroundh.childNodes ).forEach( function( backgroundv, v ) { + + backgroundv.className = 'slide-background ' + ( v < indexv ? 'past' : v > indexv ? 'future' : 'present' ); + + } ); + + } ); + + // Allow the first background to apply without transition + setTimeout( function() { + dom.background.classList.remove( 'no-transition' ); + }, 1 ); + + } + + /** + * Determine what available routes there are for navigation. + * + * @return {Object} containing four booleans: left/right/up/down + */ + function availableRoutes() { + + var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ), + verticalSlides = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR ); + + var routes = { + left: indexh > 0 || config.loop, + right: indexh < horizontalSlides.length - 1 || config.loop, + up: indexv > 0, + down: indexv < verticalSlides.length - 1 + }; + + // reverse horizontal controls for rtl + if( config.rtl ) { + var left = routes.left; + routes.left = routes.right; + routes.right = left; + } + + return routes; + + } + + /** + * Returns an object describing the available fragment + * directions. + * + * @return {Object} two boolean properties: prev/next + */ + function availableFragments() { + + if( currentSlide && config.fragments ) { + var fragments = currentSlide.querySelectorAll( '.fragment' ); + var hiddenFragments = currentSlide.querySelectorAll( '.fragment:not(.visible)' ); + + return { + prev: fragments.length - hiddenFragments.length > 0, + next: !!hiddenFragments.length + }; + } + else { + return { prev: false, next: false }; + } + + } + + /** + * Start playback of any embedded content inside of + * the targeted slide. + */ + function startEmbeddedContent( slide ) { + + if( slide ) { + // HTML5 media elements + toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) { + if( el.hasAttribute( 'data-autoplay' ) ) { + el.play(); + } + } ); + + // YouTube embeds + toArray( slide.querySelectorAll( 'iframe[src*="youtube.com/embed/"]' ) ).forEach( function( el ) { + if( el.hasAttribute( 'data-autoplay' ) ) { + el.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*'); + } + }); + } + + } + + /** + * Stop playback of any embedded content inside of + * the targeted slide. + */ + function stopEmbeddedContent( slide ) { + + if( slide ) { + // HTML5 media elements + toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) { + if( !el.hasAttribute( 'data-ignore' ) ) { + el.pause(); + } + } ); + + // YouTube embeds + toArray( slide.querySelectorAll( 'iframe[src*="youtube.com/embed/"]' ) ).forEach( function( el ) { + if( !el.hasAttribute( 'data-ignore' ) && typeof el.contentWindow.postMessage === 'function' ) { + el.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*'); + } + }); + } + + } + + /** + * Reads the current URL (hash) and navigates accordingly. + */ + function readURL() { + + var hash = window.location.hash; + + // Attempt to parse the hash as either an index or name + var bits = hash.slice( 2 ).split( '/' ), + name = hash.replace( /#|\//gi, '' ); + + // If the first bit is invalid and there is a name we can + // assume that this is a named link + if( isNaN( parseInt( bits[0], 10 ) ) && name.length ) { + // Find the slide with the specified name + var element = document.querySelector( '#' + name ); + + if( element ) { + // Find the position of the named slide and navigate to it + var indices = Reveal.getIndices( element ); + slide( indices.h, indices.v ); + } + // If the slide doesn't exist, navigate to the current slide + else { + slide( indexh || 0, indexv || 0 ); + } + } + else { + // Read the index components of the hash + var h = parseInt( bits[0], 10 ) || 0, + v = parseInt( bits[1], 10 ) || 0; + + if( h !== indexh || v !== indexv ) { + slide( h, v ); + } + } + + } + + /** + * Updates the page URL (hash) to reflect the current + * state. + * + * @param {Number} delay The time in ms to wait before + * writing the hash + */ + function writeURL( delay ) { + + if( config.history ) { + + // Make sure there's never more than one timeout running + clearTimeout( writeURLTimeout ); + + // If a delay is specified, timeout this call + if( typeof delay === 'number' ) { + writeURLTimeout = setTimeout( writeURL, delay ); + } + else { + var url = '/'; + + // If the current slide has an ID, use that as a named link + if( currentSlide && typeof currentSlide.getAttribute( 'id' ) === 'string' ) { + url = '/' + currentSlide.getAttribute( 'id' ); + } + // Otherwise use the /h/v index + else { + if( indexh > 0 || indexv > 0 ) url += indexh; + if( indexv > 0 ) url += '/' + indexv; + } + + window.location.hash = url; + } + } + + } + + /** + * Retrieves the h/v location of the current, or specified, + * slide. + * + * @param {HTMLElement} slide If specified, the returned + * index will be for this slide rather than the currently + * active one + * + * @return {Object} { h: , v: , f: } + */ + function getIndices( slide ) { + + // By default, return the current indices + var h = indexh, + v = indexv, + f; + + // If a slide is specified, return the indices of that slide + if( slide ) { + var isVertical = isVerticalSlide( slide ); + var slideh = isVertical ? slide.parentNode : slide; + + // Select all horizontal slides + var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ); + + // Now that we know which the horizontal slide is, get its index + h = Math.max( horizontalSlides.indexOf( slideh ), 0 ); + + // If this is a vertical slide, grab the vertical index + if( isVertical ) { + v = Math.max( toArray( slide.parentNode.querySelectorAll( 'section' ) ).indexOf( slide ), 0 ); + } + } + + if( !slide && currentSlide ) { + var hasFragments = currentSlide.querySelectorAll( '.fragment' ).length > 0; + if( hasFragments ) { + var visibleFragments = currentSlide.querySelectorAll( '.fragment.visible' ); + f = visibleFragments.length; + } + } + + return { h: h, v: v, f: f }; + + } + + /** + * Navigate to the next slide fragment. + * + * @return {Boolean} true if there was a next fragment, + * false otherwise + */ + function nextFragment() { + + if( currentSlide && config.fragments ) { + var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment:not(.visible)' ) ); + + if( fragments.length ) { + // Find the index of the next fragment + var index = fragments[0].getAttribute( 'data-fragment-index' ); + + // Find all fragments with the same index + fragments = currentSlide.querySelectorAll( '.fragment[data-fragment-index="'+ index +'"]' ); + + toArray( fragments ).forEach( function( element ) { + element.classList.add( 'visible' ); + } ); + + // Notify subscribers of the change + dispatchEvent( 'fragmentshown', { fragment: fragments[0], fragments: fragments } ); + + updateControls(); + return true; + } + } + + return false; + + } + + /** + * Navigate to the previous slide fragment. + * + * @return {Boolean} true if there was a previous fragment, + * false otherwise + */ + function previousFragment() { + + if( currentSlide && config.fragments ) { + var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment.visible' ) ); + + if( fragments.length ) { + // Find the index of the previous fragment + var index = fragments[ fragments.length - 1 ].getAttribute( 'data-fragment-index' ); + + // Find all fragments with the same index + fragments = currentSlide.querySelectorAll( '.fragment[data-fragment-index="'+ index +'"]' ); + + toArray( fragments ).forEach( function( f ) { + f.classList.remove( 'visible' ); + } ); + + // Notify subscribers of the change + dispatchEvent( 'fragmenthidden', { fragment: fragments[0], fragments: fragments } ); + + updateControls(); + return true; + } + } + + return false; + + } + + /** + * Cues a new automated slide if enabled in the config. + */ + function cueAutoSlide() { + + clearTimeout( autoSlideTimeout ); + + // Cue the next auto-slide if enabled + if( autoSlide && !isPaused() && !isOverview() ) { + autoSlideTimeout = setTimeout( navigateNext, autoSlide ); + } + + } + + /** + * Cancels any ongoing request to auto-slide. + */ + function cancelAutoSlide() { + + clearTimeout( autoSlideTimeout ); + + } + + function navigateLeft() { + + // Reverse for RTL + if( config.rtl ) { + if( ( isOverview() || nextFragment() === false ) && availableRoutes().left ) { + slide( indexh + 1 ); + } + } + // Normal navigation + else if( ( isOverview() || previousFragment() === false ) && availableRoutes().left ) { + slide( indexh - 1 ); + } + + } + + function navigateRight() { + + // Reverse for RTL + if( config.rtl ) { + if( ( isOverview() || previousFragment() === false ) && availableRoutes().right ) { + slide( indexh - 1 ); + } + } + // Normal navigation + else if( ( isOverview() || nextFragment() === false ) && availableRoutes().right ) { + slide( indexh + 1 ); + } + + } + + function navigateUp() { + + // Prioritize hiding fragments + if( ( isOverview() || previousFragment() === false ) && availableRoutes().up ) { + slide( indexh, indexv - 1 ); + } + + } + + function navigateDown() { + + // Prioritize revealing fragments + if( ( isOverview() || nextFragment() === false ) && availableRoutes().down ) { + slide( indexh, indexv + 1 ); + } + + } + + /** + * Navigates backwards, prioritized in the following order: + * 1) Previous fragment + * 2) Previous vertical slide + * 3) Previous horizontal slide + */ + function navigatePrev() { + + // Prioritize revealing fragments + if( previousFragment() === false ) { + if( availableRoutes().up ) { + navigateUp(); + } + else { + // Fetch the previous horizontal slide, if there is one + var previousSlide = document.querySelector( HORIZONTAL_SLIDES_SELECTOR + '.past:nth-child(' + indexh + ')' ); + + if( previousSlide ) { + var v = ( previousSlide.querySelectorAll( 'section' ).length - 1 ) || undefined; + var h = indexh - 1; + slide( h, v ); + } + } + } + + } + + /** + * Same as #navigatePrev() but navigates forwards. + */ + function navigateNext() { + + // Prioritize revealing fragments + if( nextFragment() === false ) { + availableRoutes().down ? navigateDown() : navigateRight(); + } + + // If auto-sliding is enabled we need to cue up + // another timeout + cueAutoSlide(); + + } + + + // --------------------------------------------------------------------// + // ----------------------------- EVENTS -------------------------------// + // --------------------------------------------------------------------// + + + /** + * Handler for the document level 'keydown' event. + * + * @param {Object} event + */ + function onDocumentKeyDown( event ) { + + // Check if there's a focused element that could be using + // the keyboard + var activeElement = document.activeElement; + var hasFocus = !!( document.activeElement && ( document.activeElement.type || document.activeElement.href || document.activeElement.contentEditable !== 'inherit' ) ); + + // Disregard the event if there's a focused element or a + // keyboard modifier key is present + if( hasFocus || (event.shiftKey && event.keyCode !== 32) || event.altKey || event.ctrlKey || event.metaKey ) return; + + // While paused only allow "unpausing" keyboard events (b and .) + if( isPaused() && [66,190,191].indexOf( event.keyCode ) === -1 ) { + return false; + } + + var triggered = false; + + // 1. User defined key bindings + if( typeof config.keyboard === 'object' ) { + + for( var key in config.keyboard ) { + + // Check if this binding matches the pressed key + if( parseInt( key, 10 ) === event.keyCode ) { + + var value = config.keyboard[ key ]; + + // Callback function + if( typeof value === 'function' ) { + value.apply( null, [ event ] ); + } + // String shortcuts to reveal.js API + else if( typeof value === 'string' && typeof Reveal[ value ] === 'function' ) { + Reveal[ value ].call(); + } + + triggered = true; + + } + + } + + } + + // 2. System defined key bindings + if( triggered === false ) { + + // Assume true and try to prove false + triggered = true; + + switch( event.keyCode ) { + // p, page up + case 80: case 33: navigatePrev(); break; + // n, page down + case 78: case 34: navigateNext(); break; + // h, left + case 72: case 37: navigateLeft(); break; + // l, right + case 76: case 39: navigateRight(); break; + // k, up + case 75: case 38: navigateUp(); break; + // j, down + case 74: case 40: navigateDown(); break; + // home + case 36: slide( 0 ); break; + // end + case 35: slide( Number.MAX_VALUE ); break; + // space + case 32: isOverview() ? deactivateOverview() : event.shiftKey ? navigatePrev() : navigateNext(); break; + // return + case 13: isOverview() ? deactivateOverview() : triggered = false; break; + // b, period, Logitech presenter tools "black screen" button + case 66: case 190: case 191: togglePause(); break; + // f + case 70: enterFullscreen(); break; + default: + triggered = false; + } + + } + + // If the input resulted in a triggered action we should prevent + // the browsers default behavior + if( triggered ) { + event.preventDefault(); + } + // ESC or O key + else if ( ( event.keyCode === 27 || event.keyCode === 79 ) && supports3DTransforms ) { + toggleOverview(); + + event.preventDefault(); + } + + // If auto-sliding is enabled we need to cue up + // another timeout + cueAutoSlide(); + + } + + /** + * Handler for the 'touchstart' event, enables support for + * swipe and pinch gestures. + */ + function onTouchStart( event ) { + + touch.startX = event.touches[0].clientX; + touch.startY = event.touches[0].clientY; + touch.startCount = event.touches.length; + + // If there's two touches we need to memorize the distance + // between those two points to detect pinching + if( event.touches.length === 2 && config.overview ) { + touch.startSpan = distanceBetween( { + x: event.touches[1].clientX, + y: event.touches[1].clientY + }, { + x: touch.startX, + y: touch.startY + } ); + } + + } + + /** + * Handler for the 'touchmove' event. + */ + function onTouchMove( event ) { + + // Each touch should only trigger one action + if( !touch.captured ) { + var currentX = event.touches[0].clientX; + var currentY = event.touches[0].clientY; + + // If the touch started with two points and still has + // two active touches; test for the pinch gesture + if( event.touches.length === 2 && touch.startCount === 2 && config.overview ) { + + // The current distance in pixels between the two touch points + var currentSpan = distanceBetween( { + x: event.touches[1].clientX, + y: event.touches[1].clientY + }, { + x: touch.startX, + y: touch.startY + } ); + + // If the span is larger than the desire amount we've got + // ourselves a pinch + if( Math.abs( touch.startSpan - currentSpan ) > touch.threshold ) { + touch.captured = true; + + if( currentSpan < touch.startSpan ) { + activateOverview(); + } + else { + deactivateOverview(); + } + } + + event.preventDefault(); + + } + // There was only one touch point, look for a swipe + else if( event.touches.length === 1 && touch.startCount !== 2 ) { + + var deltaX = currentX - touch.startX, + deltaY = currentY - touch.startY; + + if( deltaX > touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) { + touch.captured = true; + navigateLeft(); + } + else if( deltaX < -touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) { + touch.captured = true; + navigateRight(); + } + else if( deltaY > touch.threshold ) { + touch.captured = true; + navigateUp(); + } + else if( deltaY < -touch.threshold ) { + touch.captured = true; + navigateDown(); + } + + // If we're embedded, only block touch events if they have + // triggered an action + if( config.embedded ) { + if( touch.captured || isVerticalSlide( currentSlide ) ) { + event.preventDefault(); + } + } + // Not embedded? Block them all to avoid needless tossing + // around of the viewport in iOS + else { + event.preventDefault(); + } + + } + } + // There's a bug with swiping on some Android devices unless + // the default action is always prevented + else if( navigator.userAgent.match( /android/gi ) ) { + event.preventDefault(); + } + + } + + /** + * Handler for the 'touchend' event. + */ + function onTouchEnd( event ) { + + touch.captured = false; + + } + + /** + * Convert pointer down to touch start. + */ + function onPointerDown( event ) { + + if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) { + event.touches = [{ clientX: event.clientX, clientY: event.clientY }]; + onTouchStart( event ); + } + + } + + /** + * Convert pointer move to touch move. + */ + function onPointerMove( event ) { + + if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) { + event.touches = [{ clientX: event.clientX, clientY: event.clientY }]; + onTouchMove( event ); + } + + } + + /** + * Convert pointer up to touch end. + */ + function onPointerUp( event ) { + + if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) { + event.touches = [{ clientX: event.clientX, clientY: event.clientY }]; + onTouchEnd( event ); + } + + } + + /** + * Handles mouse wheel scrolling, throttled to avoid skipping + * multiple slides. + */ + function onDocumentMouseScroll( event ) { + + if( Date.now() - lastMouseWheelStep > 600 ) { + + lastMouseWheelStep = Date.now(); + + var delta = event.detail || -event.wheelDelta; + if( delta > 0 ) { + navigateNext(); + } + else { + navigatePrev(); + } + + } + + } + + /** + * Clicking on the progress bar results in a navigation to the + * closest approximate horizontal slide using this equation: + * + * ( clickX / presentationWidth ) * numberOfSlides + */ + function onProgressClicked( event ) { + + event.preventDefault(); + + var slidesTotal = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).length; + var slideIndex = Math.floor( ( event.clientX / dom.wrapper.offsetWidth ) * slidesTotal ); + + slide( slideIndex ); + + } + + /** + * Event handler for navigation control buttons. + */ + function onNavigateLeftClicked( event ) { event.preventDefault(); navigateLeft(); } + function onNavigateRightClicked( event ) { event.preventDefault(); navigateRight(); } + function onNavigateUpClicked( event ) { event.preventDefault(); navigateUp(); } + function onNavigateDownClicked( event ) { event.preventDefault(); navigateDown(); } + function onNavigatePrevClicked( event ) { event.preventDefault(); navigatePrev(); } + function onNavigateNextClicked( event ) { event.preventDefault(); navigateNext(); } + + /** + * Handler for the window level 'hashchange' event. + */ + function onWindowHashChange( event ) { + + readURL(); + + } + + /** + * Handler for the window level 'resize' event. + */ + function onWindowResize( event ) { + + layout(); + + } + + /** + * Invoked when a slide is and we're in the overview. + */ + function onOverviewSlideClicked( event ) { + + // TODO There's a bug here where the event listeners are not + // removed after deactivating the overview. + if( eventsAreBound && isOverview() ) { + event.preventDefault(); + + var element = event.target; + + while( element && !element.nodeName.match( /section/gi ) ) { + element = element.parentNode; + } + + if( element && !element.classList.contains( 'disabled' ) ) { + + deactivateOverview(); + + if( element.nodeName.match( /section/gi ) ) { + var h = parseInt( element.getAttribute( 'data-index-h' ), 10 ), + v = parseInt( element.getAttribute( 'data-index-v' ), 10 ); + + slide( h, v ); + } + + } + } + + } + + /** + * Handles clicks on links that are set to preview in the + * iframe overlay. + */ + function onPreviewLinkClicked( event ) { + + var url = event.target.getAttribute( 'href' ); + if( url ) { + openPreview( url ); + event.preventDefault(); + } + + } + + + // --------------------------------------------------------------------// + // ------------------------------- API --------------------------------// + // --------------------------------------------------------------------// + + + return { + initialize: initialize, + configure: configure, + sync: sync, + + // Navigation methods + slide: slide, + left: navigateLeft, + right: navigateRight, + up: navigateUp, + down: navigateDown, + prev: navigatePrev, + next: navigateNext, + prevFragment: previousFragment, + nextFragment: nextFragment, + + // Deprecated aliases + navigateTo: slide, + navigateLeft: navigateLeft, + navigateRight: navigateRight, + navigateUp: navigateUp, + navigateDown: navigateDown, + navigatePrev: navigatePrev, + navigateNext: navigateNext, + + // Forces an update in slide layout + layout: layout, + + // Returns an object with the available routes as booleans (left/right/top/bottom) + availableRoutes: availableRoutes, + + // Returns an object with the available fragments as booleans (prev/next) + availableFragments: availableFragments, + + // Toggles the overview mode on/off + toggleOverview: toggleOverview, + + // Toggles the "black screen" mode on/off + togglePause: togglePause, + + // State checks + isOverview: isOverview, + isPaused: isPaused, + + // Adds or removes all internal event listeners (such as keyboard) + addEventListeners: addEventListeners, + removeEventListeners: removeEventListeners, + + // Returns the indices of the current, or specified, slide + getIndices: getIndices, + + // Returns the slide at the specified index, y is optional + getSlide: function( x, y ) { + var horizontalSlide = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR )[ x ]; + var verticalSlides = horizontalSlide && horizontalSlide.querySelectorAll( 'section' ); + + if( typeof y !== 'undefined' ) { + return verticalSlides ? verticalSlides[ y ] : undefined; + } + + return horizontalSlide; + }, + + // Returns the previous slide element, may be null + getPreviousSlide: function() { + return previousSlide; + }, + + // Returns the current slide element + getCurrentSlide: function() { + return currentSlide; + }, + + // Returns the current scale of the presentation content + getScale: function() { + return scale; + }, + + // Returns the current configuration object + getConfig: function() { + return config; + }, + + // Helper method, retrieves query string as a key/value hash + getQueryHash: function() { + var query = {}; + + location.search.replace( /[A-Z0-9]+?=(\w*)/gi, function(a) { + query[ a.split( '=' ).shift() ] = a.split( '=' ).pop(); + } ); + + return query; + }, + + // Returns true if we're currently on the first slide + isFirstSlide: function() { + return document.querySelector( SLIDES_SELECTOR + '.past' ) == null ? true : false; + }, + + // Returns true if we're currently on the last slide + isLastSlide: function() { + if( currentSlide ) { + // Does this slide has next a sibling? + if( currentSlide.nextElementSibling ) return false; + + // If it's vertical, does its parent have a next sibling? + if( isVerticalSlide( currentSlide ) && currentSlide.parentNode.nextElementSibling ) return false; + + return true; + } + + return false; + }, + + // Checks if reveal.js has been loaded and is ready for use + isReady: function() { + return loaded; + }, + + // Forward event binding to the reveal DOM element + addEventListener: function( type, listener, useCapture ) { + if( 'addEventListener' in window ) { + ( dom.wrapper || document.querySelector( '.reveal' ) ).addEventListener( type, listener, useCapture ); + } + }, + removeEventListener: function( type, listener, useCapture ) { + if( 'addEventListener' in window ) { + ( dom.wrapper || document.querySelector( '.reveal' ) ).removeEventListener( type, listener, useCapture ); + } + } + }; + +})(); diff --git a/js/reveal.min.js b/js/reveal.min.js new file mode 100644 index 0000000..b3985aa --- /dev/null +++ b/js/reveal.min.js @@ -0,0 +1,8 @@ +/*! + * reveal.js 2.6.0-dev (2013-09-11, 21:54) + * http://lab.hakim.se/reveal-js + * MIT licensed + * + * Copyright (C) 2013 Hakim El Hattab, http://hakim.se + */ +var Reveal=function(){"use strict";function a(a){return b(),Kb||Jb?(window.addEventListener("load",C,!1),l(Qb,a),s(),c(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function b(){Jb="WebkitPerspective"in document.body.style||"MozPerspective"in document.body.style||"msPerspective"in document.body.style||"OPerspective"in document.body.style||"perspective"in document.body.style,Kb="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style,Lb=navigator.userAgent.match(/(iphone|ipod|android)/gi)}function c(){function a(){c.length&&head.js.apply(null,c),d()}for(var b=[],c=[],e=0,f=Qb.dependencies.length;f>e;e++){var g=Qb.dependencies[e];(!g.condition||g.condition())&&(g.async?c.push(g.src):b.push(g.src),"function"==typeof g.callback&&head.ready(g.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],g.callback))}b.length?(head.ready(a),head.js.apply(null,b)):a()}function d(){f(),e(),i(),_(),setTimeout(function(){Vb.slides.classList.remove("no-transition"),Rb=!0,u("ready",{indexh:Fb,indexv:Gb,currentSlide:Ib})},1)}function e(){var a=m(document.querySelectorAll(Nb));a.forEach(function(a){var b=m(a.querySelectorAll("section"));b.forEach(function(a,b){b>0&&a.classList.add("future")})})}function f(){Vb.theme=document.querySelector("#theme"),Vb.wrapper=document.querySelector(".reveal"),Vb.slides=document.querySelector(".reveal .slides"),Vb.slides.classList.add("no-transition"),Vb.background=g(Vb.wrapper,"div","backgrounds",null),Vb.progress=g(Vb.wrapper,"div","progress",""),Vb.progressbar=Vb.progress.querySelector("span"),g(Vb.wrapper,"aside","controls",''),g(Vb.wrapper,"div","state-background",null),g(Vb.wrapper,"div","pause-overlay",null),Vb.controls=document.querySelector(".reveal .controls"),Vb.controlsLeft=m(document.querySelectorAll(".navigate-left")),Vb.controlsRight=m(document.querySelectorAll(".navigate-right")),Vb.controlsUp=m(document.querySelectorAll(".navigate-up")),Vb.controlsDown=m(document.querySelectorAll(".navigate-down")),Vb.controlsPrev=m(document.querySelectorAll(".navigate-prev")),Vb.controlsNext=m(document.querySelectorAll(".navigate-next"))}function g(a,b,c,d){var e=a.querySelector("."+c);return e||(e=document.createElement(b),e.classList.add(c),null!==d&&(e.innerHTML=d),a.appendChild(e)),e}function h(){function a(a,b){var c={background:a.getAttribute("data-background"),backgroundSize:a.getAttribute("data-background-size"),backgroundImage:a.getAttribute("data-background-image"),backgroundColor:a.getAttribute("data-background-color"),backgroundRepeat:a.getAttribute("data-background-repeat"),backgroundPosition:a.getAttribute("data-background-position"),backgroundTransition:a.getAttribute("data-background-transition")},d=document.createElement("div");return d.className="slide-background",c.background&&(/^(http|file|\/\/)/gi.test(c.background)||/\.(png|jpg|jpeg|gif|bmp)$/gi.test(c.background)?d.style.backgroundImage="url("+c.background+")":d.style.background=c.background),c.backgroundSize&&(d.style.backgroundSize=c.backgroundSize),c.backgroundImage&&(d.style.backgroundImage='url("'+c.backgroundImage+'")'),c.backgroundColor&&(d.style.backgroundColor=c.backgroundColor),c.backgroundRepeat&&(d.style.backgroundRepeat=c.backgroundRepeat),c.backgroundPosition&&(d.style.backgroundPosition=c.backgroundPosition),c.backgroundTransition&&d.setAttribute("data-background-transition",c.backgroundTransition),b.appendChild(d),d}r()&&document.body.classList.add("print-pdf"),Vb.background.innerHTML="",Vb.background.classList.add("no-transition"),m(document.querySelectorAll(Nb)).forEach(function(b){var c;c=r()?a(b,b):a(b,Vb.background),m(b.querySelectorAll("section")).forEach(function(b){r()?a(b,b):a(b,c)})})}function i(a){if(Vb.wrapper.classList.remove(Qb.transition),"object"==typeof a&&l(Qb,a),Jb===!1&&(Qb.transition="linear"),Vb.wrapper.classList.add(Qb.transition),Vb.wrapper.setAttribute("data-transition-speed",Qb.transitionSpeed),Vb.wrapper.setAttribute("data-background-transition",Qb.backgroundTransition),Vb.controls.style.display=Qb.controls?"block":"none",Vb.progress.style.display=Qb.progress?"block":"none",Qb.rtl?Vb.wrapper.classList.add("rtl"):Vb.wrapper.classList.remove("rtl"),Qb.center?Vb.wrapper.classList.add("center"):Vb.wrapper.classList.remove("center"),Qb.mouseWheel?(document.addEventListener("DOMMouseScroll",tb,!1),document.addEventListener("mousewheel",tb,!1)):(document.removeEventListener("DOMMouseScroll",tb,!1),document.removeEventListener("mousewheel",tb,!1)),Qb.rollingLinks?v():w(),Qb.previewLinks?x():(y(),x("[data-preview-link]")),Qb.theme&&Vb.theme){var b=Vb.theme.getAttribute("href"),c=/[^\/]*?(?=\.css)/,d=b.match(c)[0];Qb.theme!==d&&(b=b.replace(c,Qb.theme),Vb.theme.setAttribute("href",b))}R()}function j(){_b=!0,window.addEventListener("hashchange",Bb,!1),window.addEventListener("resize",Cb,!1),Qb.touch&&(Vb.wrapper.addEventListener("touchstart",nb,!1),Vb.wrapper.addEventListener("touchmove",ob,!1),Vb.wrapper.addEventListener("touchend",pb,!1),window.navigator.msPointerEnabled&&(Vb.wrapper.addEventListener("MSPointerDown",qb,!1),Vb.wrapper.addEventListener("MSPointerMove",rb,!1),Vb.wrapper.addEventListener("MSPointerUp",sb,!1))),Qb.keyboard&&document.addEventListener("keydown",mb,!1),Qb.progress&&Vb.progress&&Vb.progress.addEventListener("click",ub,!1),["touchstart","click"].forEach(function(a){Vb.controlsLeft.forEach(function(b){b.addEventListener(a,vb,!1)}),Vb.controlsRight.forEach(function(b){b.addEventListener(a,wb,!1)}),Vb.controlsUp.forEach(function(b){b.addEventListener(a,xb,!1)}),Vb.controlsDown.forEach(function(b){b.addEventListener(a,yb,!1)}),Vb.controlsPrev.forEach(function(b){b.addEventListener(a,zb,!1)}),Vb.controlsNext.forEach(function(b){b.addEventListener(a,Ab,!1)})})}function k(){_b=!1,document.removeEventListener("keydown",mb,!1),window.removeEventListener("hashchange",Bb,!1),window.removeEventListener("resize",Cb,!1),Vb.wrapper.removeEventListener("touchstart",nb,!1),Vb.wrapper.removeEventListener("touchmove",ob,!1),Vb.wrapper.removeEventListener("touchend",pb,!1),window.navigator.msPointerEnabled&&(Vb.wrapper.removeEventListener("MSPointerDown",qb,!1),Vb.wrapper.removeEventListener("MSPointerMove",rb,!1),Vb.wrapper.removeEventListener("MSPointerUp",sb,!1)),Qb.progress&&Vb.progress&&Vb.progress.removeEventListener("click",ub,!1),["touchstart","click"].forEach(function(a){Vb.controlsLeft.forEach(function(b){b.removeEventListener(a,vb,!1)}),Vb.controlsRight.forEach(function(b){b.removeEventListener(a,wb,!1)}),Vb.controlsUp.forEach(function(b){b.removeEventListener(a,xb,!1)}),Vb.controlsDown.forEach(function(b){b.removeEventListener(a,yb,!1)}),Vb.controlsPrev.forEach(function(b){b.removeEventListener(a,zb,!1)}),Vb.controlsNext.forEach(function(b){b.removeEventListener(a,Ab,!1)})})}function l(a,b){for(var c in b)a[c]=b[c]}function m(a){return Array.prototype.slice.call(a)}function n(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}function o(a,b){a.style.WebkitTransform=b,a.style.MozTransform=b,a.style.msTransform=b,a.style.OTransform=b,a.style.transform=b}function p(a){var b=0;if(a){var c=0;m(a.childNodes).forEach(function(a){"number"==typeof a.offsetTop&&a.style&&("absolute"===a.style.position&&(c+=1),b=Math.max(b,a.offsetTop+a.offsetHeight))}),0===c&&(b=a.offsetHeight)}return b}function q(a,b){if(b=b||0,a){var c=a.parentNode,d=c.childNodes;m(d).forEach(function(c){if("number"==typeof c.offsetHeight&&c!==a){var d=window.getComputedStyle(c),e=parseInt(d.marginTop,10),f=parseInt(d.marginBottom,10);b-=c.offsetHeight+e+f}});var e=window.getComputedStyle(a);b-=parseInt(e.marginTop,10)+parseInt(e.marginBottom,10)}return b}function r(){return/print-pdf/gi.test(window.location.search)}function s(){Qb.hideAddressBar&&Lb&&(window.addEventListener("load",t,!1),window.addEventListener("orientationchange",t,!1))}function t(){0!==window.orientation||/crios/gi.test(navigator.userAgent)?(document.documentElement.style.overflow="",document.body.style.height="100%"):(document.documentElement.style.overflow="scroll",document.body.style.height="120%"),setTimeout(function(){window.scrollTo(0,1)},10)}function u(a,b){var c=document.createEvent("HTMLEvents",1,2);c.initEvent(a,!0,!0),l(c,b),Vb.wrapper.dispatchEvent(c)}function v(){if(Jb&&!("msPerspective"in document.body.style))for(var a=document.querySelectorAll(Mb+" a:not(.image)"),b=0,c=a.length;c>b;b++){var d=a[b];if(!(!d.textContent||d.querySelector("*")||d.className&&d.classList.contains(d,"roll"))){var e=document.createElement("span");e.setAttribute("data-title",d.text),e.innerHTML=d.innerHTML,d.classList.add("roll"),d.innerHTML="",d.appendChild(e)}}}function w(){for(var a=document.querySelectorAll(Mb+" a.roll"),b=0,c=a.length;c>b;b++){var d=a[b],e=d.querySelector("span");e&&(d.classList.remove("roll"),d.innerHTML=e.innerHTML)}}function x(a){var b=m(document.querySelectorAll(a?a:"a"));b.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.addEventListener("click",Eb,!1)})}function y(){var a=m(document.querySelectorAll("a"));a.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.removeEventListener("click",Eb,!1)})}function z(a){A(),Vb.preview=document.createElement("div"),Vb.preview.classList.add("preview-link-overlay"),Vb.wrapper.appendChild(Vb.preview),Vb.preview.innerHTML=["
",'','',"
",'
','
','',"
"].join(""),Vb.preview.querySelector("iframe").addEventListener("load",function(){Vb.preview.classList.add("loaded")},!1),Vb.preview.querySelector(".close").addEventListener("click",function(a){A(),a.preventDefault()},!1),Vb.preview.querySelector(".external").addEventListener("click",function(){A()},!1),setTimeout(function(){Vb.preview.classList.add("visible")},1)}function A(){Vb.preview&&(Vb.preview.setAttribute("src",""),Vb.preview.parentNode.removeChild(Vb.preview),Vb.preview=null)}function B(a){var b=m(a);return b.forEach(function(a,b){a.hasAttribute("data-fragment-index")||a.setAttribute("data-fragment-index",b)}),b.sort(function(a,b){return a.getAttribute("data-fragment-index")-b.getAttribute("data-fragment-index")}),b}function C(){if(Vb.wrapper&&!r()){var a=Vb.wrapper.offsetWidth,b=Vb.wrapper.offsetHeight;a-=b*Qb.margin,b-=b*Qb.margin;var c=Qb.width,d=Qb.height,e=20;D(Qb.width,Qb.height,e),"string"==typeof c&&/%$/.test(c)&&(c=parseInt(c,10)/100*a),"string"==typeof d&&/%$/.test(d)&&(d=parseInt(d,10)/100*b),Vb.slides.style.width=c+"px",Vb.slides.style.height=d+"px",Ub=Math.min(a/c,b/d),Ub=Math.max(Ub,Qb.minScale),Ub=Math.min(Ub,Qb.maxScale),"undefined"==typeof Vb.slides.style.zoom||navigator.userAgent.match(/(iphone|ipod|ipad|android)/gi)?o(Vb.slides,"translate(-50%, -50%) scale("+Ub+") translate(50%, 50%)"):Vb.slides.style.zoom=Ub;for(var f=m(document.querySelectorAll(Mb)),g=0,h=f.length;h>g;g++){var i=f[g];"none"!==i.style.display&&(i.style.top=Qb.center?i.classList.contains("stack")?0:Math.max(-(p(i)/2)-e,-d/2)+"px":"")}U()}}function D(a,b,c){m(Vb.slides.querySelectorAll("section > .stretch")).forEach(function(d){var e=q(d,b-2*c);if(/(img|video)/gi.test(d.nodeName)){var f=d.naturalWidth||d.videoWidth,g=d.naturalHeight||d.videoHeight,h=Math.min(a/f,e/g);d.style.width=f*h+"px",d.style.height=g*h+"px"}else d.style.width=a+"px",d.style.height=e+"px"})}function E(a,b){"object"==typeof a&&"function"==typeof a.setAttribute&&a.setAttribute("data-previous-indexv",b||0)}function F(a){if("object"==typeof a&&"function"==typeof a.setAttribute&&a.classList.contains("stack")){var b=a.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(a.getAttribute(b)||0,10)}return 0}function G(){if(Qb.overview){fb();var a=Vb.wrapper.classList.contains("overview"),b=window.innerWidth<400?1e3:2500;Vb.wrapper.classList.add("overview"),Vb.wrapper.classList.remove("overview-deactivating"),clearTimeout(Zb),clearTimeout($b),Zb=setTimeout(function(){for(var c=document.querySelectorAll(Nb),d=0,e=c.length;e>d;d++){var f=c[d],g=Qb.rtl?-105:105;if(f.setAttribute("data-index-h",d),o(f,"translateZ(-"+b+"px) translate("+(d-Fb)*g+"%, 0%)"),f.classList.contains("stack"))for(var h=f.querySelectorAll("section"),i=0,j=h.length;j>i;i++){var k=d===Fb?Gb:F(f),l=h[i];l.setAttribute("data-index-h",d),l.setAttribute("data-index-v",i),o(l,"translate(0%, "+105*(i-k)+"%)"),l.addEventListener("click",Db,!0)}else f.addEventListener("click",Db,!0)}T(),C(),a||u("overviewshown",{indexh:Fb,indexv:Gb,currentSlide:Ib})},10)}}function H(){Qb.overview&&(clearTimeout(Zb),clearTimeout($b),Vb.wrapper.classList.remove("overview"),Vb.wrapper.classList.add("overview-deactivating"),$b=setTimeout(function(){Vb.wrapper.classList.remove("overview-deactivating")},1),m(document.querySelectorAll(Mb)).forEach(function(a){o(a,""),a.removeEventListener("click",Db,!0)}),Q(Fb,Gb),eb(),u("overviewhidden",{indexh:Fb,indexv:Gb,currentSlide:Ib}))}function I(a){"boolean"==typeof a?a?G():H():J()?H():G()}function J(){return Vb.wrapper.classList.contains("overview")}function K(a){return a=a?a:Ib,a&&a.parentNode&&!!a.parentNode.nodeName.match(/section/i)}function L(){var a=document.body,b=a.requestFullScreen||a.webkitRequestFullscreen||a.webkitRequestFullScreen||a.mozRequestFullScreen||a.msRequestFullScreen;b&&b.apply(a)}function M(){var a=Vb.wrapper.classList.contains("paused");fb(),Vb.wrapper.classList.add("paused"),a===!1&&u("paused")}function N(){var a=Vb.wrapper.classList.contains("paused");Vb.wrapper.classList.remove("paused"),eb(),a&&u("resumed")}function O(){P()?N():M()}function P(){return Vb.wrapper.classList.contains("paused")}function Q(a,b,c,d){Hb=Ib;var e=document.querySelectorAll(Nb);void 0===b&&(b=F(e[a])),Hb&&Hb.parentNode&&Hb.parentNode.classList.contains("stack")&&E(Hb.parentNode,Gb);var f=Tb.concat();Tb.length=0;var g=Fb||0,h=Gb||0;Fb=S(Nb,void 0===a?Fb:a),Gb=S(Ob,void 0===b?Gb:b),T(),C();a:for(var i=0,j=Tb.length;j>i;i++){for(var k=0;kb?a.classList.add("visible"):a.classList.remove("visible")})}var p=Fb!==g||Gb!==h;p?u("slidechanged",{indexh:Fb,indexv:Gb,previousSlide:Hb,currentSlide:Ib,origin:d}):Hb=null,Hb&&(Hb.classList.remove("present"),document.querySelector(Pb).classList.contains("present")&&setTimeout(function(){var a,b=m(document.querySelectorAll(Nb+".stack"));for(a in b)b[a]&&E(b[a],0)},0)),p&&($(Hb),Z(Ib)),V(),U(),W(),ab()}function R(){k(),j(),C(),Sb=Qb.autoSlide,eb(),h(),V(),U(),W()}function S(a,b){var c=m(document.querySelectorAll(a)),d=c.length;if(d){Qb.loop&&(b%=d,0>b&&(b=d+b)),b=Math.max(Math.min(b,d-1),0);for(var e=0;d>e;e++){var f=c[e],g=Qb.rtl&&!K(f);if(f.classList.remove("past"),f.classList.remove("present"),f.classList.remove("future"),f.setAttribute("hidden",""),b>e)f.classList.add(g?"future":"past");else if(e>b){f.classList.add(g?"past":"future");for(var h=m(f.querySelectorAll(".fragment.visible"));h.length;)h.pop().classList.remove("visible")}f.querySelector("section")&&f.classList.add("stack")}c[b].classList.add("present"),c[b].removeAttribute("hidden");var i=c[b].getAttribute("data-state");i&&(Tb=Tb.concat(i.split(" ")));var j=c[b].getAttribute("data-autoslide");Sb=j?parseInt(j,10):Qb.autoSlide,eb()}else b=0;return b}function T(){var a,b,c=m(document.querySelectorAll(Nb)),d=c.length;if(d){var e=J()?10:Qb.viewDistance;Lb&&(e=J()?6:1);for(var f=0;d>f;f++){var g=c[f],h=m(g.querySelectorAll("section")),i=h.length;if(a=Math.abs((Fb-f)%(d-e))||0,g.style.display=a>e?"none":"block",i)for(var j=F(g),k=0;i>k;k++){var l=h[k];b=f===Fb?Math.abs(Gb-k):Math.abs(k-j),l.style.display=a+b>e?"none":"block"}}}}function U(){if(Qb.progress&&Vb.progress){var a=m(document.querySelectorAll(Nb)),b=document.querySelectorAll(Mb+":not(.stack)").length,c=0;a:for(var d=0;db?c:b>Fb?d:"present"),m(a.childNodes).forEach(function(a,b){a.className="slide-background "+(Gb>b?"past":b>Gb?"future":"present")})}),setTimeout(function(){Vb.background.classList.remove("no-transition")},1)}function X(){var a=document.querySelectorAll(Nb),b=document.querySelectorAll(Ob),c={left:Fb>0||Qb.loop,right:Fb0,down:Gb0,next:!!b.length}}return{prev:!1,next:!1}}function Z(a){a&&(m(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-autoplay")&&a.play()}),m(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-autoplay")&&a.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")}))}function $(a){a&&(m(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-ignore")||a.pause()}),m(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-ignore")||"function"!=typeof a.contentWindow.postMessage||a.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}))}function _(){var a=window.location.hash,b=a.slice(2).split("/"),c=a.replace(/#|\//gi,"");if(isNaN(parseInt(b[0],10))&&c.length){var d=document.querySelector("#"+c);if(d){var e=Reveal.getIndices(d);Q(e.h,e.v)}else Q(Fb||0,Gb||0)}else{var f=parseInt(b[0],10)||0,g=parseInt(b[1],10)||0;(f!==Fb||g!==Gb)&&Q(f,g)}}function ab(a){if(Qb.history)if(clearTimeout(Yb),"number"==typeof a)Yb=setTimeout(ab,a);else{var b="/";Ib&&"string"==typeof Ib.getAttribute("id")?b="/"+Ib.getAttribute("id"):((Fb>0||Gb>0)&&(b+=Fb),Gb>0&&(b+="/"+Gb)),window.location.hash=b}}function bb(a){var b,c=Fb,d=Gb;if(a){var e=K(a),f=e?a.parentNode:a,g=m(document.querySelectorAll(Nb));c=Math.max(g.indexOf(f),0),e&&(d=Math.max(m(a.parentNode.querySelectorAll("section")).indexOf(a),0))}if(!a&&Ib){var h=Ib.querySelectorAll(".fragment").length>0;if(h){var i=Ib.querySelectorAll(".fragment.visible");b=i.length}}return{h:c,v:d,f:b}}function cb(){if(Ib&&Qb.fragments){var a=B(Ib.querySelectorAll(".fragment:not(.visible)"));if(a.length){var b=a[0].getAttribute("data-fragment-index");return a=Ib.querySelectorAll('.fragment[data-fragment-index="'+b+'"]'),m(a).forEach(function(a){a.classList.add("visible")}),u("fragmentshown",{fragment:a[0],fragments:a}),V(),!0}}return!1}function db(){if(Ib&&Qb.fragments){var a=B(Ib.querySelectorAll(".fragment.visible"));if(a.length){var b=a[a.length-1].getAttribute("data-fragment-index");return a=Ib.querySelectorAll('.fragment[data-fragment-index="'+b+'"]'),m(a).forEach(function(a){a.classList.remove("visible")}),u("fragmenthidden",{fragment:a[0],fragments:a}),V(),!0}}return!1}function eb(){clearTimeout(Xb),!Sb||P()||J()||(Xb=setTimeout(lb,Sb))}function fb(){clearTimeout(Xb)}function gb(){Qb.rtl?(J()||cb()===!1)&&X().left&&Q(Fb+1):(J()||db()===!1)&&X().left&&Q(Fb-1)}function hb(){Qb.rtl?(J()||db()===!1)&&X().right&&Q(Fb-1):(J()||cb()===!1)&&X().right&&Q(Fb+1)}function ib(){(J()||db()===!1)&&X().up&&Q(Fb,Gb-1)}function jb(){(J()||cb()===!1)&&X().down&&Q(Fb,Gb+1)}function kb(){if(db()===!1)if(X().up)ib();else{var a=document.querySelector(Nb+".past:nth-child("+Fb+")");if(a){var b=a.querySelectorAll("section").length-1||void 0,c=Fb-1;Q(c,b)}}}function lb(){cb()===!1&&(X().down?jb():hb()),eb()}function mb(a){document.activeElement;var b=!(!document.activeElement||!document.activeElement.type&&!document.activeElement.href&&"inherit"===document.activeElement.contentEditable);if(!(b||a.shiftKey&&32!==a.keyCode||a.altKey||a.ctrlKey||a.metaKey)){if(P()&&-1===[66,190,191].indexOf(a.keyCode))return!1;var c=!1;if("object"==typeof Qb.keyboard)for(var d in Qb.keyboard)if(parseInt(d,10)===a.keyCode){var e=Qb.keyboard[d];"function"==typeof e?e.apply(null,[a]):"string"==typeof e&&"function"==typeof Reveal[e]&&Reveal[e].call(),c=!0}if(c===!1)switch(c=!0,a.keyCode){case 80:case 33:kb();break;case 78:case 34:lb();break;case 72:case 37:gb();break;case 76:case 39:hb();break;case 75:case 38:ib();break;case 74:case 40:jb();break;case 36:Q(0);break;case 35:Q(Number.MAX_VALUE);break;case 32:J()?H():a.shiftKey?kb():lb();break;case 13:J()?H():c=!1;break;case 66:case 190:case 191:O();break;case 70:L();break;default:c=!1}c?a.preventDefault():27!==a.keyCode&&79!==a.keyCode||!Jb||(I(),a.preventDefault()),eb()}}function nb(a){ac.startX=a.touches[0].clientX,ac.startY=a.touches[0].clientY,ac.startCount=a.touches.length,2===a.touches.length&&Qb.overview&&(ac.startSpan=n({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:ac.startX,y:ac.startY}))}function ob(a){if(ac.captured)navigator.userAgent.match(/android/gi)&&a.preventDefault();else{var b=a.touches[0].clientX,c=a.touches[0].clientY;if(2===a.touches.length&&2===ac.startCount&&Qb.overview){var d=n({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:ac.startX,y:ac.startY});Math.abs(ac.startSpan-d)>ac.threshold&&(ac.captured=!0,dac.threshold&&Math.abs(e)>Math.abs(f)?(ac.captured=!0,gb()):e<-ac.threshold&&Math.abs(e)>Math.abs(f)?(ac.captured=!0,hb()):f>ac.threshold?(ac.captured=!0,ib()):f<-ac.threshold&&(ac.captured=!0,jb()),Qb.embedded?(ac.captured||K(Ib))&&a.preventDefault():a.preventDefault()}}}function pb(){ac.captured=!1}function qb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],nb(a))}function rb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],ob(a))}function sb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],pb(a))}function tb(a){if(Date.now()-Wb>600){Wb=Date.now();var b=a.detail||-a.wheelDelta;b>0?lb():kb()}}function ub(a){a.preventDefault();var b=m(document.querySelectorAll(Nb)).length,c=Math.floor(a.clientX/Vb.wrapper.offsetWidth*b);Q(c)}function vb(a){a.preventDefault(),gb()}function wb(a){a.preventDefault(),hb()}function xb(a){a.preventDefault(),ib()}function yb(a){a.preventDefault(),jb()}function zb(a){a.preventDefault(),kb()}function Ab(a){a.preventDefault(),lb()}function Bb(){_()}function Cb(){C()}function Db(a){if(_b&&J()){a.preventDefault();for(var b=a.target;b&&!b.nodeName.match(/section/gi);)b=b.parentNode;if(b&&!b.classList.contains("disabled")&&(H(),b.nodeName.match(/section/gi))){var c=parseInt(b.getAttribute("data-index-h"),10),d=parseInt(b.getAttribute("data-index-v"),10);Q(c,d)}}}function Eb(a){var b=a.target.getAttribute("href");b&&(z(b),a.preventDefault())}var Fb,Gb,Hb,Ib,Jb,Kb,Lb,Mb=".reveal .slides section",Nb=".reveal .slides>section",Ob=".reveal .slides>section.present>section",Pb=".reveal .slides>section:first-child",Qb={width:960,height:700,margin:.1,minScale:.2,maxScale:1,controls:!0,progress:!0,history:!1,keyboard:!0,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,fragments:!0,embedded:!1,autoSlide:0,mouseWheel:!1,rollingLinks:!1,hideAddressBar:!0,previewLinks:!1,theme:null,transition:"default",transitionSpeed:"default",backgroundTransition:"default",viewDistance:3,dependencies:[]},Rb=!1,Sb=0,Tb=[],Ub=1,Vb={},Wb=0,Xb=0,Yb=0,Zb=0,$b=0,_b=!1,ac={startX:0,startY:0,startSpan:0,startCount:0,captured:!1,threshold:40};return{initialize:a,configure:i,sync:R,slide:Q,left:gb,right:hb,up:ib,down:jb,prev:kb,next:lb,prevFragment:db,nextFragment:cb,navigateTo:Q,navigateLeft:gb,navigateRight:hb,navigateUp:ib,navigateDown:jb,navigatePrev:kb,navigateNext:lb,layout:C,availableRoutes:X,availableFragments:Y,toggleOverview:I,togglePause:O,isOverview:J,isPaused:P,addEventListeners:j,removeEventListeners:k,getIndices:bb,getSlide:function(a,b){var c=document.querySelectorAll(Nb)[a],d=c&&c.querySelectorAll("section");return"undefined"!=typeof b?d?d[b]:void 0:c},getPreviousSlide:function(){return Hb},getCurrentSlide:function(){return Ib},getScale:function(){return Ub},getConfig:function(){return Qb},getQueryHash:function(){var a={};return location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(b){a[b.split("=").shift()]=b.split("=").pop()}),a},isFirstSlide:function(){return null==document.querySelector(Mb+".past")?!0:!1},isLastSlide:function(){return Ib?Ib.nextElementSibling?!1:K(Ib)&&Ib.parentNode.nextElementSibling?!1:!0:!1},isReady:function(){return Rb},addEventListener:function(a,b,c){"addEventListener"in window&&(Vb.wrapper||document.querySelector(".reveal")).addEventListener(a,b,c)},removeEventListener:function(a,b,c){"addEventListener"in window&&(Vb.wrapper||document.querySelector(".reveal")).removeEventListener(a,b,c)}}}(); \ No newline at end of file diff --git a/lib/css/dark.css b/lib/css/dark.css new file mode 100755 index 0000000..cf2c44d --- /dev/null +++ b/lib/css/dark.css @@ -0,0 +1,52 @@ +/* Tomorrow Night Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +.tomorrow-comment, pre .comment, pre .title { + color: #969896; +} + +.tomorrow-red, pre .variable, pre .attribute, pre .tag, pre .regexp, pre .ruby .constant, pre .xml .tag .title, pre .xml .pi, pre .xml .doctype, pre .html .doctype, pre .css .id, pre .css .class, pre .css .pseudo { + color: #cc6666; +} + +.tomorrow-orange, pre .number, pre .preprocessor, pre .built_in, pre .literal, pre .params, pre .constant { + color: #de935f; +} + +.tomorrow-yellow, pre .class, pre .ruby .class .title, pre .css .rules .attribute { + color: #f0c674; +} + +.tomorrow-green, pre .string, pre .value, pre .inheritance, pre .header, pre .ruby .symbol, pre .xml .cdata { + color: #b5bd68; +} + +.tomorrow-aqua, pre .css .hexcolor { + color: #8abeb7; +} + +.tomorrow-blue, pre .function, pre .python .decorator, pre .python .title, pre .ruby .function .title, pre .ruby .title .keyword, pre .perl .sub, pre .javascript .title, pre .coffeescript .title { + color: #81a2be; +} + +.tomorrow-purple, pre .keyword, pre .javascript .function { + color: #b294bb; +} + +pre code { + display: block; + background: #1d1f21; + color: #c5c8c6; + padding: 0.5em; +} + +pre .coffeescript .javascript, +pre .javascript .xml, +pre .tex .formula, +pre .xml .javascript, +pre .xml .vbscript, +pre .xml .css, +pre .xml .cdata { + opacity: 0.5; +} diff --git a/lib/css/light.css b/lib/css/light.css new file mode 100755 index 0000000..a2240f2 --- /dev/null +++ b/lib/css/light.css @@ -0,0 +1,49 @@ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +.tomorrow-comment, pre .comment, pre .title { + color: #8e908c; +} + +.tomorrow-red, pre .variable, pre .attribute, pre .tag, pre .regexp, pre .ruby .constant, pre .xml .tag .title, pre .xml .pi, pre .xml .doctype, pre .html .doctype, pre .css .id, pre .css .class, pre .css .pseudo { + color: #c82829; +} + +.tomorrow-orange, pre .number, pre .preprocessor, pre .built_in, pre .literal, pre .params, pre .constant { + color: #f5871f; +} + +.tomorrow-yellow, pre .class, pre .ruby .class .title, pre .css .rules .attribute { + color: #eab700; +} + +.tomorrow-green, pre .string, pre .value, pre .inheritance, pre .header, pre .ruby .symbol, pre .xml .cdata { + color: #718c00; +} + +.tomorrow-aqua, pre .css .hexcolor { + color: #3e999f; +} + +.tomorrow-blue, pre .function, pre .python .decorator, pre .python .title, pre .ruby .function .title, pre .ruby .title .keyword, pre .perl .sub, pre .javascript .title, pre .coffeescript .title { + color: #4271ae; +} + +.tomorrow-purple, pre .keyword, pre .javascript .function { + color: #8959a8; +} + +pre code { + display: block; + background: white; + color: #4d4d4c; + padding: 0.5em; +} + +pre .coffeescript .javascript, +pre .javascript .xml, +pre .tex .formula, +pre .xml .javascript, +pre .xml .vbscript, +pre .xml .css, +pre .xml .cdata { + opacity: 0.5; +} diff --git a/lib/css/rainbow.css b/lib/css/rainbow.css new file mode 100644 index 0000000..f4399e8 --- /dev/null +++ b/lib/css/rainbow.css @@ -0,0 +1,115 @@ +/* + +Style with support for rainbow parens + +*/ + +pre ::-moz-selection{ background: #FF5E99; color:#fff; text-shadow: none; } +pre ::selection { background:#FF5E99; color:#fff; text-shadow: none; } + +pre code { + display: block; padding: 0.5em; + background: #474949; color: #D1D9E1; +} + + +pre .body, +pre .collection { + color: #D1D9E1; +} + +pre .comment, +pre .template_comment, +pre .diff .header, +pre .doctype, +pre .lisp .string, +pre .javadoc { + color: #969896; + font-style: italic; +} + +pre .keyword, +pre .clojure .attribute, +pre .winutils, +pre .javascript .title, +pre .addition, +pre .css .tag { + color: #cc99cc; +} + +pre .number { color: #f99157; } + +pre .command, +pre .string, +pre .tag .value, +pre .phpdoc, +pre .tex .formula, +pre .regexp, +pre .hexcolor { + color: #8abeb7; +} + +pre .title, +pre .localvars, +pre .function .title, +pre .chunk, +pre .decorator, +pre .built_in, +pre .lisp .title, +pre .identifier +{ + color: #b5bd68; +} + +pre .class .keyword +{ + color: #f2777a; +} + +pre .variable, +pre .lisp .body, +pre .smalltalk .number, +pre .constant, +pre .class .title, +pre .parent, +pre .haskell .label, +pre .id, +pre .lisp .title, +pre .clojure .title .built_in { + color: #ffcc66; +} + +pre .tag .title, +pre .rules .property, +pre .django .tag .keyword, +pre .clojure .title .built_in { + font-weight: bold; +} + +pre .attribute, +pre .clojure .title { + color: #81a2be; +} + +pre .preprocessor, +pre .pragma, +pre .pi, +pre .shebang, +pre .symbol, +pre .symbol .string, +pre .diff .change, +pre .special, +pre .attr_selector, +pre .important, +pre .subst, +pre .cdata { + color: #f99157; +} + +pre .deletion { + color: #dc322f; +} + +pre .tex .formula { + background: #eee8d5; +} diff --git a/lib/css/zenburn.css b/lib/css/zenburn.css new file mode 100644 index 0000000..ab74139 --- /dev/null +++ b/lib/css/zenburn.css @@ -0,0 +1,114 @@ +/* + +Zenburn style from voldmar.ru (c) Vladimir Epifanov +based on dark.css by Ivan Sagalaev + +*/ + +pre code { + display: block; padding: 0.5em; + background: #3F3F3F; + color: #DCDCDC; +} + +pre .keyword, +pre .tag, +pre .css .class, +pre .css .id, +pre .lisp .title, +pre .nginx .title, +pre .request, +pre .status, +pre .clojure .attribute { + color: #E3CEAB; +} + +pre .django .template_tag, +pre .django .variable, +pre .django .filter .argument { + color: #DCDCDC; +} + +pre .number, +pre .date { + color: #8CD0D3; +} + +pre .dos .envvar, +pre .dos .stream, +pre .variable, +pre .apache .sqbracket { + color: #EFDCBC; +} + +pre .dos .flow, +pre .diff .change, +pre .python .exception, +pre .python .built_in, +pre .literal, +pre .tex .special { + color: #EFEFAF; +} + +pre .diff .chunk, +pre .subst { + color: #8F8F8F; +} + +pre .dos .keyword, +pre .python .decorator, +pre .title, +pre .haskell .type, +pre .diff .header, +pre .ruby .class .parent, +pre .apache .tag, +pre .nginx .built_in, +pre .tex .command, +pre .prompt { + color: #efef8f; +} + +pre .dos .winutils, +pre .ruby .symbol, +pre .ruby .symbol .string, +pre .ruby .string { + color: #DCA3A3; +} + +pre .diff .deletion, +pre .string, +pre .tag .value, +pre .preprocessor, +pre .built_in, +pre .sql .aggregate, +pre .javadoc, +pre .smalltalk .class, +pre .smalltalk .localvars, +pre .smalltalk .array, +pre .css .rules .value, +pre .attr_selector, +pre .pseudo, +pre .apache .cbracket, +pre .tex .formula { + color: #CC9393; +} + +pre .shebang, +pre .diff .addition, +pre .comment, +pre .java .annotation, +pre .template_comment, +pre .pi, +pre .doctype { + color: #7F9F7F; +} + +pre .coffeescript .javascript, +pre .javascript .xml, +pre .tex .formula, +pre .xml .javascript, +pre .xml .vbscript, +pre .xml .css, +pre .xml .cdata { + opacity: 0.5; +} \ No newline at end of file diff --git a/lib/font/league_gothic-webfont.eot b/lib/font/league_gothic-webfont.eot new file mode 100755 index 0000000..598dcbc Binary files /dev/null and b/lib/font/league_gothic-webfont.eot differ diff --git a/lib/font/league_gothic-webfont.svg b/lib/font/league_gothic-webfont.svg new file mode 100644 index 0000000..201cfe1 --- /dev/null +++ b/lib/font/league_gothic-webfont.svg @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib/font/league_gothic-webfont.ttf b/lib/font/league_gothic-webfont.ttf new file mode 100644 index 0000000..29f896a Binary files /dev/null and b/lib/font/league_gothic-webfont.ttf differ diff --git a/lib/font/league_gothic-webfont.woff b/lib/font/league_gothic-webfont.woff new file mode 100644 index 0000000..71117fb Binary files /dev/null and b/lib/font/league_gothic-webfont.woff differ diff --git a/lib/font/league_gothic_license b/lib/font/league_gothic_license new file mode 100644 index 0000000..29513e9 --- /dev/null +++ b/lib/font/league_gothic_license @@ -0,0 +1,2 @@ +SIL Open Font License (OFL) +http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL diff --git a/lib/js/classList.js b/lib/js/classList.js new file mode 100644 index 0000000..44f2b4c --- /dev/null +++ b/lib/js/classList.js @@ -0,0 +1,2 @@ +/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/ +if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(j){var a="classList",f="prototype",m=(j.HTMLElement||j.Element)[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p + Copyright Tero Piirainen (tipiirai) + License MIT / http://bit.ly/mit-license + Version 0.96 + + http://headjs.com +*/(function(a){function z(){d||(d=!0,s(e,function(a){p(a)}))}function y(c,d){var e=a.createElement("script");e.type="text/"+(c.type||"javascript"),e.src=c.src||c,e.async=!1,e.onreadystatechange=e.onload=function(){var a=e.readyState;!d.done&&(!a||/loaded|complete/.test(a))&&(d.done=!0,d())},(a.body||b).appendChild(e)}function x(a,b){if(a.state==o)return b&&b();if(a.state==n)return k.ready(a.name,b);if(a.state==m)return a.onpreload.push(function(){x(a,b)});a.state=n,y(a.url,function(){a.state=o,b&&b(),s(g[a.name],function(a){p(a)}),u()&&d&&s(g.ALL,function(a){p(a)})})}function w(a,b){a.state===undefined&&(a.state=m,a.onpreload=[],y({src:a.url,type:"cache"},function(){v(a)}))}function v(a){a.state=l,s(a.onpreload,function(a){a.call()})}function u(a){a=a||h;var b;for(var c in a){if(a.hasOwnProperty(c)&&a[c].state!=o)return!1;b=!0}return b}function t(a){return Object.prototype.toString.call(a)=="[object Function]"}function s(a,b){if(!!a){typeof a=="object"&&(a=[].slice.call(a));for(var c=0;c 1 && lines[ 0 ].trim() === '' ) { + lines.shift(); + } + // the last line is expected to be an empty line - remove it + if ( lines.length > 1 && lines[ lines.length - 1 ].trim() === '' ) { + lines.pop(); + } + + // how much white-space do we need to remove form each line? + offset = lines[ 0 ].match( /^\s*/ )[ 0 ].length; + + // remove the exess white-space from the beginning of each line + lines = lines.map( function ( line ) { + return line.slice( offset ); + }); + + // set this new content to the PRE element + $( element ).text( lines.join( '\n' ) ); + } + + // TODO: doesn't seem to work + // Now escape html unless prevented by author + if( !element.hasAttribute( 'data-noescape' )) { + element.innerHTML = element.innerHTML.replace(//g,">"); + } + + // trim whitespace if data-trim attribute is present + if( element.hasAttribute( 'data-trim' ) && typeof element.innerHTML.trim === 'function' ) { + element.innerHTML = element.innerHTML.trim(); + } + + // re-highlight when focus is lost (for edited code) + element.addEventListener( 'focusout', function( event ) { + hljs.highlightBlock( event.currentTarget ); + }, false ); + } + } +})(); + +// END CUSTOM REVEAL.JS INTEGRATION + + +/* +Syntax highlighting with language autodetection. +http://softwaremaniacs.org/soft/highlight/ +*/ +var hljs=new function(){function m(p){return p.replace(/"}while(y.length||z.length){var v=u().splice(0,1)[0];w+=m(x.substr(r,v.offset-r));r=v.offset;if(v.event=="start"){w+=s(v.node);t.push(v.node)}else{if(v.event=="stop"){var q=t.length;do{q--;var p=t[q];w+=("")}while(p!=v.node);t.splice(q,1);while(q'+m(L[0])+""}else{N+=m(L[0])}P=O.lR.lastIndex;L=O.lR.exec(M)}N+=m(M.substr(P,M.length-P));return N}function K(r,M){if(M.sL&&d[M.sL]){var L=e(M.sL,r);t+=L.keyword_count;return L.value}else{return F(r,M)}}function I(M,r){var L=M.cN?'':"";if(M.rB){q+=L;M.buffer=""}else{if(M.eB){q+=m(r)+L;M.buffer=""}else{q+=L;M.buffer=r}}C.push(M);B+=M.r}function E(O,L,Q){var R=C[C.length-1];if(Q){q+=K(R.buffer+O,R);return false}var M=z(L,R);if(M){q+=K(R.buffer+O,R);I(M,L);return M.rB}var r=w(C.length-1,L);if(r){var N=R.cN?"":"";if(R.rE){q+=K(R.buffer+O,R)+N}else{if(R.eE){q+=K(R.buffer+O,R)+N+m(L)}else{q+=K(R.buffer+O+L,R)+N}}while(r>1){N=C[C.length-2].cN?"":"";q+=N;r--;C.length--}var P=C[C.length-1];C.length--;C[C.length-1].buffer="";if(P.starts){I(P.starts,"")}return R.rE}if(x(L,R)){throw"Illegal"}}var H=d[J];var C=[H.dM];var B=0;var t=0;var q="";try{var v=0;H.dM.buffer="";do{var y=s(D,v);var u=E(y[0],y[1],y[2]);v+=y[0].length;if(!u){v+=y[1].length}}while(!y[2]);if(C.length>1){throw"Illegal"}return{r:B,keyword_count:t,value:q}}catch(G){if(G=="Illegal"){return{r:0,keyword_count:0,value:m(D)}}else{throw G}}}function f(t){var r={keyword_count:0,r:0,value:m(t)};var q=r;for(var p in d){if(!d.hasOwnProperty(p)){continue}var s=e(p,t);s.language=p;if(s.keyword_count+s.r>q.keyword_count+q.r){q=s}if(s.keyword_count+s.r>r.keyword_count+r.r){q=r;r=s}}if(q.language){r.second_best=q}return r}function h(r,q,p){if(q){r=r.replace(/^((<[^>]+>|\t)+)/gm,function(t,w,v,u){return w.replace(/\t/g,q)})}if(p){r=r.replace(/\n/g,"
")}return r}function o(u,x,q){var y=g(u,q);var s=a(u);if(s=="no-highlight"){return}if(s){var w=e(s,y)}else{var w=f(y);s=w.language}var p=b(u);if(p.length){var r=document.createElement("pre");r.innerHTML=w.value;w.value=l(p,b(r),y)}w.value=h(w.value,x,q);var t=u.className;if(!t.match("(\\s|^)(language-)?"+s+"(\\s|$)")){t=t?(t+" "+s):s}if(/MSIE [678]/.test(navigator.userAgent)&&u.tagName=="CODE"&&u.parentNode.tagName=="PRE"){var r=u.parentNode;var v=document.createElement("div");v.innerHTML="
"+w.value+"
";u=v.firstChild.firstChild;v.firstChild.cN=r.cN;r.parentNode.replaceChild(v.firstChild,r)}else{u.innerHTML=w.value}u.className=t;u.result={language:s,kw:w.keyword_count,re:w.r};if(w.second_best){u.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function k(){if(k.called){return}k.called=true;var r=document.getElementsByTagName("pre");for(var p=0;p|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\.",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.inherit=function(p,s){var r={};for(var q in p){r[q]=p[q]}if(s){for(var q in s){r[q]=s[q]}}return r}}();hljs.LANGUAGES.cs={dM:{k:{"abstract":1,as:1,base:1,bool:1,"break":1,"byte":1,"case":1,"catch":1,"char":1,checked:1,"class":1,"const":1,"continue":1,decimal:1,"default":1,delegate:1,"do":1,"do":1,"double":1,"else":1,"enum":1,event:1,explicit:1,extern:1,"false":1,"finally":1,fixed:1,"float":1,"for":1,foreach:1,"goto":1,"if":1,implicit:1,"in":1,"int":1,"interface":1,internal:1,is:1,lock:1,"long":1,namespace:1,"new":1,"null":1,object:1,operator:1,out:1,override:1,params:1,"private":1,"protected":1,"public":1,readonly:1,ref:1,"return":1,sbyte:1,sealed:1,"short":1,sizeof:1,stackalloc:1,"static":1,string:1,struct:1,"switch":1,"this":1,"throw":1,"true":1,"try":1,"typeof":1,uint:1,ulong:1,unchecked:1,unsafe:1,ushort:1,using:1,virtual:1,"volatile":1,"void":1,"while":1,ascending:1,descending:1,from:1,get:1,group:1,into:1,join:1,let:1,orderby:1,partial:1,select:1,set:1,value:1,"var":1,where:1,yield:1},c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:""}]},hljs.CLCM,hljs.CBLCLM,{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},hljs.ASM,hljs.QSM,hljs.CNM]}};hljs.LANGUAGES.ruby=function(){var g="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var a="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var n={keyword:{and:1,"false":1,then:1,defined:1,module:1,"in":1,"return":1,redo:1,"if":1,BEGIN:1,retry:1,end:1,"for":1,"true":1,self:1,when:1,next:1,until:1,"do":1,begin:1,unless:1,END:1,rescue:1,nil:1,"else":1,"break":1,undef:1,not:1,"super":1,"class":1,"case":1,require:1,yield:1,alias:1,"while":1,ensure:1,elsif:1,or:1,def:1},keymethods:{__id__:1,__send__:1,abort:1,abs:1,"all?":1,allocate:1,ancestors:1,"any?":1,arity:1,assoc:1,at:1,at_exit:1,autoload:1,"autoload?":1,"between?":1,binding:1,binmode:1,"block_given?":1,call:1,callcc:1,caller:1,capitalize:1,"capitalize!":1,casecmp:1,"catch":1,ceil:1,center:1,chomp:1,"chomp!":1,chop:1,"chop!":1,chr:1,"class":1,class_eval:1,"class_variable_defined?":1,class_variables:1,clear:1,clone:1,close:1,close_read:1,close_write:1,"closed?":1,coerce:1,collect:1,"collect!":1,compact:1,"compact!":1,concat:1,"const_defined?":1,const_get:1,const_missing:1,const_set:1,constants:1,count:1,crypt:1,"default":1,default_proc:1,"delete":1,"delete!":1,delete_at:1,delete_if:1,detect:1,display:1,div:1,divmod:1,downcase:1,"downcase!":1,downto:1,dump:1,dup:1,each:1,each_byte:1,each_index:1,each_key:1,each_line:1,each_pair:1,each_value:1,each_with_index:1,"empty?":1,entries:1,eof:1,"eof?":1,"eql?":1,"equal?":1,"eval":1,exec:1,exit:1,"exit!":1,extend:1,fail:1,fcntl:1,fetch:1,fileno:1,fill:1,find:1,find_all:1,first:1,flatten:1,"flatten!":1,floor:1,flush:1,for_fd:1,foreach:1,fork:1,format:1,freeze:1,"frozen?":1,fsync:1,getc:1,gets:1,global_variables:1,grep:1,gsub:1,"gsub!":1,"has_key?":1,"has_value?":1,hash:1,hex:1,id:1,include:1,"include?":1,included_modules:1,index:1,indexes:1,indices:1,induced_from:1,inject:1,insert:1,inspect:1,instance_eval:1,instance_method:1,instance_methods:1,"instance_of?":1,"instance_variable_defined?":1,instance_variable_get:1,instance_variable_set:1,instance_variables:1,"integer?":1,intern:1,invert:1,ioctl:1,"is_a?":1,isatty:1,"iterator?":1,join:1,"key?":1,keys:1,"kind_of?":1,lambda:1,last:1,length:1,lineno:1,ljust:1,load:1,local_variables:1,loop:1,lstrip:1,"lstrip!":1,map:1,"map!":1,match:1,max:1,"member?":1,merge:1,"merge!":1,method:1,"method_defined?":1,method_missing:1,methods:1,min:1,module_eval:1,modulo:1,name:1,nesting:1,"new":1,next:1,"next!":1,"nil?":1,nitems:1,"nonzero?":1,object_id:1,oct:1,open:1,pack:1,partition:1,pid:1,pipe:1,pop:1,popen:1,pos:1,prec:1,prec_f:1,prec_i:1,print:1,printf:1,private_class_method:1,private_instance_methods:1,"private_method_defined?":1,private_methods:1,proc:1,protected_instance_methods:1,"protected_method_defined?":1,protected_methods:1,public_class_method:1,public_instance_methods:1,"public_method_defined?":1,public_methods:1,push:1,putc:1,puts:1,quo:1,raise:1,rand:1,rassoc:1,read:1,read_nonblock:1,readchar:1,readline:1,readlines:1,readpartial:1,rehash:1,reject:1,"reject!":1,remainder:1,reopen:1,replace:1,require:1,"respond_to?":1,reverse:1,"reverse!":1,reverse_each:1,rewind:1,rindex:1,rjust:1,round:1,rstrip:1,"rstrip!":1,scan:1,seek:1,select:1,send:1,set_trace_func:1,shift:1,singleton_method_added:1,singleton_methods:1,size:1,sleep:1,slice:1,"slice!":1,sort:1,"sort!":1,sort_by:1,split:1,sprintf:1,squeeze:1,"squeeze!":1,srand:1,stat:1,step:1,store:1,strip:1,"strip!":1,sub:1,"sub!":1,succ:1,"succ!":1,sum:1,superclass:1,swapcase:1,"swapcase!":1,sync:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,taint:1,"tainted?":1,tell:1,test:1,"throw":1,times:1,to_a:1,to_ary:1,to_f:1,to_hash:1,to_i:1,to_int:1,to_io:1,to_proc:1,to_s:1,to_str:1,to_sym:1,tr:1,"tr!":1,tr_s:1,"tr_s!":1,trace_var:1,transpose:1,trap:1,truncate:1,"tty?":1,type:1,ungetc:1,uniq:1,"uniq!":1,unpack:1,unshift:1,untaint:1,untrace_var:1,upcase:1,"upcase!":1,update:1,upto:1,"value?":1,values:1,values_at:1,warn:1,write:1,write_nonblock:1,"zero?":1,zip:1}};var h={cN:"yardoctag",b:"@[A-Za-z]+"};var d={cN:"comment",b:"#",e:"$",c:[h]};var c={cN:"comment",b:"^\\=begin",e:"^\\=end",c:[h],r:10};var b={cN:"comment",b:"^__END__",e:"\\n$"};var u={cN:"subst",b:"#\\{",e:"}",l:g,k:n};var p=[hljs.BE,u];var s={cN:"string",b:"'",e:"'",c:p,r:0};var r={cN:"string",b:'"',e:'"',c:p,r:0};var q={cN:"string",b:"%[qw]?\\(",e:"\\)",c:p,r:10};var o={cN:"string",b:"%[qw]?\\[",e:"\\]",c:p,r:10};var m={cN:"string",b:"%[qw]?{",e:"}",c:p,r:10};var l={cN:"string",b:"%[qw]?<",e:">",c:p,r:10};var k={cN:"string",b:"%[qw]?/",e:"/",c:p,r:10};var j={cN:"string",b:"%[qw]?%",e:"%",c:p,r:10};var i={cN:"string",b:"%[qw]?-",e:"-",c:p,r:10};var t={cN:"string",b:"%[qw]?\\|",e:"\\|",c:p,r:10};var e={cN:"function",b:"\\bdef\\s+",e:" |$|;",l:g,k:n,c:[{cN:"title",b:a,l:g,k:n},{cN:"params",b:"\\(",e:"\\)",l:g,k:n},d,c,b]};var f={cN:"identifier",b:g,l:g,k:n,r:0};var v=[d,c,b,s,r,q,o,m,l,k,j,i,t,{cN:"class",b:"\\b(class|module)\\b",e:"$|;",k:{"class":1,module:1},c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+hljs.IR+"::)?"+hljs.IR}]},d,c,b]},e,{cN:"constant",b:"(::)?([A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[s,r,q,o,m,l,k,j,i,t,f],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},f,{b:"("+hljs.RSR+")\\s*",c:[d,c,b,{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[hljs.BE]}],r:0}];u.c=v;e.c[1].c=v;return{dM:{l:g,k:n,c:v}}}();hljs.LANGUAGES.javascript={dM:{k:{keyword:{"in":1,"if":1,"for":1,"while":1,"finally":1,"var":1,"new":1,"function":1,"do":1,"return":1,"void":1,"else":1,"break":1,"catch":1,"instanceof":1,"with":1,"throw":1,"case":1,"default":1,"try":1,"this":1,"switch":1,"continue":1,"typeof":1,"delete":1},literal:{"true":1,"false":1,"null":1}},c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM,hljs.CNM,{b:"("+hljs.RSR+"|case|return|throw)\\s*",k:{"return":1,"throw":1,"case":1},c:[hljs.CLCM,hljs.CBLCLM,{cN:"regexp",b:"/",e:"/[gim]*",c:[{b:"\\\\/"}]}],r:0},{cN:"function",b:"\\bfunction\\b",e:"{",k:{"function":1},c:[{cN:"title",b:"[A-Za-z$_][0-9A-Za-z$_]*"},{cN:"params",b:"\\(",e:"\\)",c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM]}]}]}};hljs.LANGUAGES.css=function(){var a={cN:"function",b:hljs.IR+"\\(",e:"\\)",c:[{eW:true,eE:true,c:[hljs.NM,hljs.ASM,hljs.QSM]}]};return{cI:true,dM:{i:"[=/|']",c:[hljs.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:{"font-face":1,page:1}},{cN:"at_rule",b:"@",e:"[{;]",eE:true,k:{"import":1,page:1,media:1,charset:1},c:[a,hljs.ASM,hljs.QSM,hljs.NM]},{cN:"tag",b:hljs.IR,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[hljs.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[a,hljs.NM,hljs.QSM,hljs.ASM,hljs.CBLCLM,{cN:"hexcolor",b:"\\#[0-9A-F]+"},{cN:"important",b:"!important"}]}}]}]}]}}}();hljs.LANGUAGES.xml=function(){var b="[A-Za-z0-9\\._:-]+";var a={eW:true,c:[{cN:"attribute",b:b,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,dM:{c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"",k:{title:{style:1}},c:[a],starts:{cN:"css",e:"",rE:true,sL:"css"}},{cN:"tag",b:"",k:{title:{script:1}},c:[a],starts:{cN:"javascript",e:"<\/script>",rE:true,sL:"javascript"}},{cN:"vbscript",b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"",c:[{cN:"title",b:"[^ />]+"},a]}]}}}();hljs.LANGUAGES.java={dM:{k:{"false":1,"synchronized":1,"int":1,"abstract":1,"float":1,"private":1,"char":1,"interface":1,"boolean":1,"static":1,"null":1,"if":1,"const":1,"for":1,"true":1,"while":1,"long":1,"throw":1,strictfp:1,"finally":1,"protected":1,"extends":1,"import":1,"native":1,"final":1,"implements":1,"return":1,"void":1,"enum":1,"else":1,"break":1,"transient":1,"new":1,"catch":1,"instanceof":1,"byte":1,"super":1,"class":1,"volatile":1,"case":1,assert:1,"short":1,"package":1,"default":1,"double":1,"public":1,"try":1,"this":1,"switch":1,"continue":1,"throws":1},c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},hljs.CLCM,hljs.CBLCLM,hljs.ASM,hljs.QSM,{cN:"class",b:"(class |interface )",e:"{",k:{"class":1,"interface":1},i:":",c:[{b:"(implements|extends)",k:{"extends":1,"implements":1},r:10},{cN:"title",b:hljs.UIR}]},hljs.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}};hljs.LANGUAGES.php={cI:true,dM:{k:{and:1,include_once:1,list:1,"abstract":1,global:1,"private":1,echo:1,"interface":1,as:1,"static":1,endswitch:1,array:1,"null":1,"if":1,endwhile:1,or:1,"const":1,"for":1,endforeach:1,self:1,"var":1,"while":1,isset:1,"public":1,"protected":1,exit:1,foreach:1,"throw":1,elseif:1,"extends":1,include:1,__FILE__:1,empty:1,require_once:1,"function":1,"do":1,xor:1,"return":1,"implements":1,parent:1,clone:1,use:1,__CLASS__:1,__LINE__:1,"else":1,"break":1,print:1,"eval":1,"new":1,"catch":1,__METHOD__:1,"class":1,"case":1,exception:1,php_user_filter:1,"default":1,die:1,require:1,__FUNCTION__:1,enddeclare:1,"final":1,"try":1,"this":1,"switch":1,"continue":1,endfor:1,endif:1,declare:1,unset:1,"true":1,"false":1,namespace:1},c:[hljs.CLCM,hljs.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+",r:10}]},hljs.CNM,hljs.inherit(hljs.ASM,{i:null}),hljs.inherit(hljs.QSM,{i:null}),{cN:"variable",b:"\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"},{cN:"preprocessor",b:"<\\?php",r:10},{cN:"preprocessor",b:"\\?>"}]}};hljs.LANGUAGES.python=function(){var c={cN:"string",b:"(u|b)?r?'''",e:"'''",r:10};var b={cN:"string",b:'(u|b)?r?"""',e:'"""',r:10};var a={cN:"string",b:"(u|r|ur|b|br)'",e:"'",c:[hljs.BE],r:10};var f={cN:"string",b:'(u|r|ur|b|br)"',e:'"',c:[hljs.BE],r:10};var d={cN:"title",b:hljs.UIR};var e={cN:"params",b:"\\(",e:"\\)",c:[c,b,a,f,hljs.ASM,hljs.QSM]};return{dM:{k:{keyword:{and:1,elif:1,is:1,global:1,as:1,"in":1,"if":1,from:1,raise:1,"for":1,except:1,"finally":1,print:1,"import":1,pass:1,"return":1,exec:1,"else":1,"break":1,not:1,"with":1,"class":1,assert:1,yield:1,"try":1,"while":1,"continue":1,del:1,or:1,def:1,lambda:1,nonlocal:10},built_in:{None:1,True:1,False:1,Ellipsis:1,NotImplemented:1}},i:"(|\\?)",c:[hljs.HCM,c,b,a,f,hljs.ASM,hljs.QSM,{cN:"function",b:"\\bdef ",e:":",i:"$",k:{def:1},c:[d,e],r:10},{cN:"class",b:"\\bclass ",e:":",i:"[${]",k:{"class":1},c:[d,e],r:10},hljs.CNM,{cN:"decorator",b:"@",e:"$"}]}}}();hljs.LANGUAGES.perl=function(){var c={getpwent:1,getservent:1,quotemeta:1,msgrcv:1,scalar:1,kill:1,dbmclose:1,undef:1,lc:1,ma:1,syswrite:1,tr:1,send:1,umask:1,sysopen:1,shmwrite:1,vec:1,qx:1,utime:1,local:1,oct:1,semctl:1,localtime:1,readpipe:1,"do":1,"return":1,format:1,read:1,sprintf:1,dbmopen:1,pop:1,getpgrp:1,not:1,getpwnam:1,rewinddir:1,qq:1,fileno:1,qw:1,endprotoent:1,wait:1,sethostent:1,bless:1,s:1,opendir:1,"continue":1,each:1,sleep:1,endgrent:1,shutdown:1,dump:1,chomp:1,connect:1,getsockname:1,die:1,socketpair:1,close:1,flock:1,exists:1,index:1,shmget:1,sub:1,"for":1,endpwent:1,redo:1,lstat:1,msgctl:1,setpgrp:1,abs:1,exit:1,select:1,print:1,ref:1,gethostbyaddr:1,unshift:1,fcntl:1,syscall:1,"goto":1,getnetbyaddr:1,join:1,gmtime:1,symlink:1,semget:1,splice:1,x:1,getpeername:1,recv:1,log:1,setsockopt:1,cos:1,last:1,reverse:1,gethostbyname:1,getgrnam:1,study:1,formline:1,endhostent:1,times:1,chop:1,length:1,gethostent:1,getnetent:1,pack:1,getprotoent:1,getservbyname:1,rand:1,mkdir:1,pos:1,chmod:1,y:1,substr:1,endnetent:1,printf:1,next:1,open:1,msgsnd:1,readdir:1,use:1,unlink:1,getsockopt:1,getpriority:1,rindex:1,wantarray:1,hex:1,system:1,getservbyport:1,endservent:1,"int":1,chr:1,untie:1,rmdir:1,prototype:1,tell:1,listen:1,fork:1,shmread:1,ucfirst:1,setprotoent:1,"else":1,sysseek:1,link:1,getgrgid:1,shmctl:1,waitpid:1,unpack:1,getnetbyname:1,reset:1,chdir:1,grep:1,split:1,require:1,caller:1,lcfirst:1,until:1,warn:1,"while":1,values:1,shift:1,telldir:1,getpwuid:1,my:1,getprotobynumber:1,"delete":1,and:1,sort:1,uc:1,defined:1,srand:1,accept:1,"package":1,seekdir:1,getprotobyname:1,semop:1,our:1,rename:1,seek:1,"if":1,q:1,chroot:1,sysread:1,setpwent:1,no:1,crypt:1,getc:1,chown:1,sqrt:1,write:1,setnetent:1,setpriority:1,foreach:1,tie:1,sin:1,msgget:1,map:1,stat:1,getlogin:1,unless:1,elsif:1,truncate:1,exec:1,keys:1,glob:1,tied:1,closedir:1,ioctl:1,socket:1,readlink:1,"eval":1,xor:1,readline:1,binmode:1,setservent:1,eof:1,ord:1,bind:1,alarm:1,pipe:1,atan2:1,getgrent:1,exp:1,time:1,push:1,setgrent:1,gt:1,lt:1,or:1,ne:1,m:1};var d={cN:"subst",b:"[$@]\\{",e:"}",k:c,r:10};var b={cN:"variable",b:"\\$\\d"};var a={cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"};var g=[hljs.BE,d,b,a];var f={b:"->",c:[{b:hljs.IR},{b:"{",e:"}"}]};var e=[b,a,hljs.HCM,{cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5},f,{cN:"string",b:"q[qwxr]?\\s*\\(",e:"\\)",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\[",e:"\\]",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\{",e:"\\}",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\|",e:"\\|",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\<",e:"\\>",c:g,r:5},{cN:"string",b:"qw\\s+q",e:"q",c:g,r:5},{cN:"string",b:"'",e:"'",c:[hljs.BE],r:0},{cN:"string",b:'"',e:'"',c:g,r:0},{cN:"string",b:"`",e:"`",c:[hljs.BE]},{cN:"string",b:"{\\w+}",r:0},{cN:"string",b:"-?\\w+\\s*\\=\\>",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[hljs.BE],r:0},{cN:"sub",b:"\\bsub\\b",e:"(\\s*\\(.*?\\))?[;{]",k:{sub:1},r:5},{cN:"operator",b:"-\\w\\b",r:0},{cN:"pod",b:"\\=\\w",e:"\\=cut"}];d.c=e;f.c[1].c=e;return{dM:{k:c,c:e}}}();hljs.LANGUAGES.cpp=function(){var b={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1,alignof:1,char16_t:1,char32_t:1,constexpr:1,decltype:1,noexcept:1,nullptr:1,static_assert:1,thread_local:1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1,unordered_set:1,unordered_map:1,unordered_multiset:1,unordered_multimap:1,array:1,shared_ptr:1}};var a={cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10};a.c=[a];return{dM:{k:b,i:"=this.size)return undefined;if(i>=this._buf.length)return undefined;return this._buf[(this.pos-i-1)%this.size]};CircularBuffer.prototype.push=function(o){this._buf[this.pos%this.size]=o;return this.pos++}},{}],3:[function(require,module,exports){var Connection=module.exports=require("./base_connection");Connection.prototype.setupSocket=function(){var connection=this;var socket=new WebSocket(this.getUrl());socket.onopen=function(){connection.handleOpen()};socket.onmessage=function(message){connection.handleData(message.data)};socket.onclose=function(){connection.handleClose()};return socket};Connection.prototype.startHeartbeat=function(){if(!this.protocol.sendHeartbeat||this.heartbeatTimer)return;var connection=this;var propertyName=null;if(typeof document.hidden!=="undefined"){propertyName="hidden"}else if(typeof document.mozHidden!=="undefined"){propertyName="mozHidden"}else if(typeof document.msHidden!=="undefined"){propertyName="msHidden"}else if(typeof document.webkitHidden!=="undefined"){propertyName="webkitHidden"}else{propertyName=undefined}var windowVisible=true;var focusListener=window.addEventListener("focus",function(e){windowVisible=true});var blurListener=window.addEventListener("blur",function(e){windowVisible=false});this.on("disconnect",function(){if(connection.heartbeatTimer){clearTimeout(connection.heartbeatTimer);delete connection.heartbeatTimer}window.removeEventListener(focusListener);window.removeEventListener(blurListener)});this.heartbeatTimer=setInterval(function(){var isVisible=propertyName===undefined?true:document[propertyName]===false;if(isVisible&&windowVisible){connection.sendHeartbeat()}else{connection.setHeartbeatState(false)}},this.opts.heartbeatInterval)}},{"./base_connection":1}],4:[function(require,module,exports){!function(process){var Frame=require("./frame"),CircularBuffer=require("./circular_buffer"),Pipeline=require("./pipeline"),EventEmitter=require("events").EventEmitter,gestureListener=require("./gesture").gestureListener,_=require("underscore");var Controller=module.exports=function(opts){var inNode=typeof process!=="undefined"&&process.title==="node";opts=_.defaults(opts||{},{inNode:inNode});this.inNode=opts.inNode;opts=_.defaults(opts||{},{frameEventName:this.useAnimationLoop()?"animationFrame":"deviceFrame",supressAnimationLoop:false});this.supressAnimationLoop=opts.supressAnimationLoop;this.frameEventName=opts.frameEventName;this.history=new CircularBuffer(200);this.lastFrame=Frame.Invalid;this.lastValidFrame=Frame.Invalid;this.lastConnectionFrame=Frame.Invalid;this.accumulatedGestures=[];if(opts.connectionType===undefined){this.connectionType=this.inBrowser()?require("./connection"):require("./node_connection")}else{this.connectionType=opts.connectionType}this.connection=new this.connectionType(opts);this.setupConnectionEvents()};Controller.prototype.gesture=function(type,cb){var creator=gestureListener(this,type);if(cb!==undefined){creator.stop(cb)}return creator};Controller.prototype.inBrowser=function(){return!this.inNode};Controller.prototype.useAnimationLoop=function(){return this.inBrowser()&&typeof chrome==="undefined"};Controller.prototype.connect=function(){var controller=this;if(this.connection.connect()&&this.inBrowser()&&!controller.supressAnimationLoop){var callback=function(){controller.emit("animationFrame",controller.lastConnectionFrame);window.requestAnimFrame(callback)};window.requestAnimFrame(callback)}};Controller.prototype.disconnect=function(){this.connection.disconnect()};Controller.prototype.frame=function(num){return this.history.get(num)||Frame.Invalid};Controller.prototype.loop=function(callback){switch(callback.length){case 1:this.on(this.frameEventName,callback);break;case 2:var controller=this;var scheduler=null;var immediateRunnerCallback=function(frame){callback(frame,function(){if(controller.lastFrame!=frame){immediateRunnerCallback(controller.lastFrame)}else{controller.once(controller.frameEventName,immediateRunnerCallback)}})};this.once(this.frameEventName,immediateRunnerCallback);break}this.connect()};Controller.prototype.addStep=function(step){if(!this.pipeline)this.pipeline=new Pipeline(this);this.pipeline.addStep(step)};Controller.prototype.processFrame=function(frame){if(frame.gestures){this.accumulatedGestures=this.accumulatedGestures.concat(frame.gestures)}if(this.pipeline){frame=this.pipeline.run(frame);if(!frame)frame=Frame.Invalid}this.lastConnectionFrame=frame;this.emit("deviceFrame",frame)};Controller.prototype.processFinishedFrame=function(frame){this.lastFrame=frame;if(frame.valid){this.lastValidFrame=frame}frame.controller=this;frame.historyIdx=this.history.push(frame);if(frame.gestures){frame.gestures=this.accumulatedGestures;this.accumulatedGestures=[];for(var gestureIdx=0;gestureIdx!=frame.gestures.length;gestureIdx++){this.emit("gesture",frame.gestures[gestureIdx],frame)}}this.emit("frame",frame)};Controller.prototype.setupConnectionEvents=function(){var controller=this;this.connection.on("frame",function(frame){controller.processFrame(frame)});this.on(this.frameEventName,function(frame){controller.processFinishedFrame(frame)});this.connection.on("disconnect",function(){controller.emit("disconnect")});this.connection.on("ready",function(){controller.emit("ready")});this.connection.on("connect",function(){controller.emit("connect")});this.connection.on("focus",function(){controller.emit("focus")});this.connection.on("blur",function(){controller.emit("blur")});this.connection.on("protocol",function(protocol){controller.emit("protocol",protocol)});this.connection.on("deviceConnect",function(evt){controller.emit(evt.state?"deviceConnected":"deviceDisconnected")})};_.extend(Controller.prototype,EventEmitter.prototype)}(require("__browserify_process"))},{"./circular_buffer":2,"./connection":3,"./frame":5,"./gesture":6,"./node_connection":16,"./pipeline":10,__browserify_process:18,events:17,underscore:20}],5:[function(require,module,exports){var Hand=require("./hand"),Pointable=require("./pointable"),createGesture=require("./gesture").createGesture,glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,InteractionBox=require("./interaction_box"),_=require("underscore");var Frame=module.exports=function(data){this.valid=true;this.id=data.id;this.timestamp=data.timestamp;this.hands=[];this.handsMap={};this.pointables=[];this.tools=[];this.fingers=[];if(data.interactionBox){this.interactionBox=new InteractionBox(data.interactionBox)}this.gestures=[];this.pointablesMap={};this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.data=data;this.type="frame";this.currentFrameRate=data.currentFrameRate;var handMap={};for(var handIdx=0,handCount=data.hands.length;handIdx!=handCount;handIdx++){var hand=new Hand(data.hands[handIdx]);hand.frame=this;this.hands.push(hand);this.handsMap[hand.id]=hand;handMap[hand.id]=handIdx}for(var pointableIdx=0,pointableCount=data.pointables.length;pointableIdx!=pointableCount;pointableIdx++){var pointable=new Pointable(data.pointables[pointableIdx]);pointable.frame=this;this.pointables.push(pointable);this.pointablesMap[pointable.id]=pointable;(pointable.tool?this.tools:this.fingers).push(pointable);if(pointable.handId!==undefined&&handMap.hasOwnProperty(pointable.handId)){var hand=this.hands[handMap[pointable.handId]];hand.pointables.push(pointable);(pointable.tool?hand.tools:hand.fingers).push(pointable)}}if(data.gestures){for(var gestureIdx=0,gestureCount=data.gestures.length;gestureIdx!=gestureCount;gestureIdx++){this.gestures.push(createGesture(data.gestures[gestureIdx]))}}};Frame.prototype.tool=function(id){var pointable=this.pointable(id);return pointable.tool?pointable:Pointable.Invalid};Frame.prototype.pointable=function(id){return this.pointablesMap[id]||Pointable.Invalid};Frame.prototype.finger=function(id){var pointable=this.pointable(id);return!pointable.tool?pointable:Pointable.Invalid};Frame.prototype.hand=function(id){return this.handsMap[id]||Hand.Invalid};Frame.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Frame.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceFrame._rotation[5],this._rotation[2]-sinceFrame._rotation[6],this._rotation[3]-sinceFrame._rotation[1]])};Frame.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);return mat3.multiply(mat3.create(),sinceFrame._rotation,transpose)};Frame.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;return Math.exp(this._scaleFactor-sinceFrame._scaleFactor)};Frame.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.subtract(vec3.create(),this._translation,sinceFrame._translation)};Frame.prototype.toString=function(){var str="Frame [ id:"+this.id+" | timestamp:"+this.timestamp+" | Hand count:("+this.hands.length+") | Pointable count:("+this.pointables.length+")";if(this.gestures)str+=" | Gesture count:("+this.gestures.length+")";str+=" ]";return str};Frame.prototype.dump=function(){var out="";out+="Frame Info:
";out+=this.toString();out+="

Hands:
";for(var handIdx=0,handCount=this.hands.length;handIdx!=handCount;handIdx++){out+=" "+this.hands[handIdx].toString()+"
"}out+="

Pointables:
";for(var pointableIdx=0,pointableCount=this.pointables.length;pointableIdx!=pointableCount;pointableIdx++){out+=" "+this.pointables[pointableIdx].toString()+"
"}if(this.gestures){out+="

Gestures:
";for(var gestureIdx=0,gestureCount=this.gestures.length;gestureIdx!=gestureCount;gestureIdx++){out+=" "+this.gestures[gestureIdx].toString()+"
"}}out+="

Raw JSON:
";out+=JSON.stringify(this.data);return out};Frame.Invalid={valid:false,hands:[],fingers:[],tools:[],gestures:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},hand:function(){return Hand.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"gl-matrix":19,underscore:20}],6:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3,EventEmitter=require("events").EventEmitter,_=require("underscore");var createGesture=exports.createGesture=function(data){var gesture;switch(data.type){case"circle":gesture=new CircleGesture(data);break;case"swipe":gesture=new SwipeGesture(data);break;case"screenTap":gesture=new ScreenTapGesture(data);break;case"keyTap":gesture=new KeyTapGesture(data);break;default:throw"unkown gesture type"}gesture.id=data.id;gesture.handIds=data.handIds;gesture.pointableIds=data.pointableIds;gesture.duration=data.duration;gesture.state=data.state;gesture.type=data.type;return gesture};var gestureListener=exports.gestureListener=function(controller,type){var handlers={};var gestureMap={};var gestureCreator=function(){var candidateGesture=gestureMap[gesture.id];if(candidateGesture!==undefined)gesture.update(gesture,frame);if(gesture.state=="start"||gesture.state=="stop"){if(type==gesture.type&&gestureMap[gesture.id]===undefined){gestureMap[gesture.id]=new Gesture(gesture,frame);gesture.update(gesture,frame)}if(gesture.state=="stop"){delete gestureMap[gesture.id]}}};controller.on("gesture",function(gesture,frame){if(gesture.type==type){if(gesture.state=="start"||gesture.state=="stop"){if(gestureMap[gesture.id]===undefined){var gestureTracker=new Gesture(gesture,frame);gestureMap[gesture.id]=gestureTracker;_.each(handlers,function(cb,name){gestureTracker.on(name,cb)})}}gestureMap[gesture.id].update(gesture,frame);if(gesture.state=="stop"){delete gestureMap[gesture.id]}}});var builder={start:function(cb){handlers["start"]=cb;return builder},stop:function(cb){handlers["stop"]=cb;return builder},complete:function(cb){handlers["stop"]=cb;return builder},update:function(cb){handlers["update"]=cb;return builder}};return builder};var Gesture=exports.Gesture=function(gesture,frame){this.gestures=[gesture];this.frames=[frame]};Gesture.prototype.update=function(gesture,frame){this.gestures.push(gesture);this.frames.push(frame);this.emit(gesture.state,this)};_.extend(Gesture.prototype,EventEmitter.prototype);var CircleGesture=function(data){this.center=data.center;this.normal=data.normal;this.progress=data.progress;this.radius=data.radius};CircleGesture.prototype.toString=function(){return"CircleGesture ["+JSON.stringify(this)+"]"};var SwipeGesture=function(data){this.startPosition=data.startPosition;this.position=data.position;this.direction=data.direction;this.speed=data.speed};SwipeGesture.prototype.toString=function(){return"SwipeGesture ["+JSON.stringify(this)+"]"};var ScreenTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};ScreenTapGesture.prototype.toString=function(){return"ScreenTapGesture ["+JSON.stringify(this)+"]"};var KeyTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};KeyTapGesture.prototype.toString=function(){return"KeyTapGesture ["+JSON.stringify(this)+"]"}},{events:17,"gl-matrix":19,underscore:20}],7:[function(require,module,exports){var Pointable=require("./pointable"),glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,_=require("underscore");var Hand=module.exports=function(data){this.id=data.id;this.palmPosition=data.palmPosition;this.direction=data.direction;this.palmVelocity=data.palmVelocity;this.palmNormal=data.palmNormal;this.sphereCenter=data.sphereCenter;this.sphereRadius=data.sphereRadius;this.valid=true;this.pointables=[];this.fingers=[];this.tools=[];this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.timeVisible=data.timeVisible;this.stabilizedPalmPosition=data.stabilizedPalmPosition};Hand.prototype.finger=function(id){var finger=this.frame.finger(id);return finger&&finger.handId==this.id?finger:Pointable.Invalid};Hand.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Hand.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceHand._rotation[5],this._rotation[2]-sinceHand._rotation[6],this._rotation[3]-sinceHand._rotation[1]])};Hand.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);var m=mat3.multiply(mat3.create(),sinceHand._rotation,transpose);return m};Hand.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 1;return Math.exp(this._scaleFactor-sinceHand._scaleFactor)};Hand.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return[this._translation[0]-sinceHand._translation[0],this._translation[1]-sinceHand._translation[1],this._translation[2]-sinceHand._translation[2]]};Hand.prototype.toString=function(){return"Hand [ id: "+this.id+" | palm velocity:"+this.palmVelocity+" | sphere center:"+this.sphereCenter+" ] "};Hand.Invalid={valid:false,fingers:[],tools:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./pointable":11,"gl-matrix":19,underscore:20}],8:[function(require,module,exports){!function(){module.exports={Controller:require("./controller"),Frame:require("./frame"),Gesture:require("./gesture"),Hand:require("./hand"),Pointable:require("./pointable"),InteractionBox:require("./interaction_box"),Connection:require("./connection"),CircularBuffer:require("./circular_buffer"),UI:require("./ui"),glMatrix:require("gl-matrix"),mat3:require("gl-matrix").mat3,vec3:require("gl-matrix").vec3,loopController:undefined,loop:function(opts,callback){if(callback===undefined){callback=opts;opts={}}if(!this.loopController)this.loopController=new this.Controller(opts);this.loopController.loop(callback)}}}()},{"./circular_buffer":2,"./connection":3,"./controller":4,"./frame":5,"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"./ui":13,"gl-matrix":19}],9:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var InteractionBox=module.exports=function(data){this.valid=true;this.center=data.center;this.size=data.size;this.width=data.size[0];this.height=data.size[1];this.depth=data.size[2]};InteractionBox.prototype.denormalizePoint=function(normalizedPosition){return vec3.fromValues((normalizedPosition[0]-.5)*this.size[0]+this.center[0],(normalizedPosition[1]-.5)*this.size[1]+this.center[1],(normalizedPosition[2]-.5)*this.size[2]+this.center[2])};InteractionBox.prototype.normalizePoint=function(position,clamp){var vec=vec3.fromValues((position[0]-this.center[0])/this.size[0]+.5,(position[1]-this.center[1])/this.size[1]+.5,(position[2]-this.center[2])/this.size[2]+.5);if(clamp){vec[0]=Math.min(Math.max(vec[0],0),1);vec[1]=Math.min(Math.max(vec[1],0),1);vec[2]=Math.min(Math.max(vec[2],0),1)}return vec};InteractionBox.prototype.toString=function(){return"InteractionBox [ width:"+this.width+" | height:"+this.height+" | depth:"+this.depth+" ]"};InteractionBox.Invalid={valid:false}},{"gl-matrix":19}],10:[function(require,module,exports){var Pipeline=module.exports=function(){this.steps=[]};Pipeline.prototype.addStep=function(step){this.steps.push(step)};Pipeline.prototype.run=function(frame){var stepsLength=this.steps.length;for(var i=0;i!=stepsLength;i++){if(!frame)break;frame=this.steps[i](frame)}return frame}},{}],11:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var Pointable=module.exports=function(data){this.valid=true;this.id=data.id;this.handId=data.handId;this.length=data.length;this.tool=data.tool;this.width=data.width;this.direction=data.direction;this.stabilizedTipPosition=data.stabilizedTipPosition;this.tipPosition=data.tipPosition;this.tipVelocity=data.tipVelocity;this.touchZone=data.touchZone;this.touchDistance=data.touchDistance;this.timeVisible=data.timeVisible};Pointable.prototype.toString=function(){if(this.tool==true){return"Pointable [ id:"+this.id+" "+this.length+"mmx | with:"+this.width+"mm | direction:"+this.direction+" ]"}else{return"Pointable [ id:"+this.id+" "+this.length+"mmx | direction: "+this.direction+" ]"}};Pointable.Invalid={valid:false}},{"gl-matrix":19}],12:[function(require,module,exports){var Frame=require("./frame");var Event=function(data){this.type=data.type;this.state=data.state};var chooseProtocol=exports.chooseProtocol=function(header){var protocol;switch(header.version){case 1:protocol=JSONProtocol(1,function(data){return new Frame(data)});break;case 2:protocol=JSONProtocol(2,function(data){return new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;case 3:protocol=JSONProtocol(3,function(data){return data.event?new Event(data.event):new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;default:throw"unrecognized version"}return protocol};var JSONProtocol=function(version,cb){var protocol=cb;protocol.encode=function(message){return JSON.stringify(message)};protocol.version=version;protocol.versionLong="Version "+version;protocol.type="protocol";return protocol}},{"./frame":5}],13:[function(require,module,exports){exports.UI={Region:require("./ui/region"),Cursor:require("./ui/cursor")}},{"./ui/cursor":14,"./ui/region":15}],14:[function(require,module,exports){var Cursor=module.exports=function(){return function(frame){var pointable=frame.pointables.sort(function(a,b){return a.z-b.z})[0];if(pointable&&pointable.valid){frame.cursorPosition=pointable.tipPosition}return frame}}},{}],15:[function(require,module,exports){var EventEmitter=require("events").EventEmitter,_=require("underscore");var Region=module.exports=function(start,end){this.start=new Vector(start);this.end=new Vector(end);this.enteredFrame=null};Region.prototype.hasPointables=function(frame){for(var i=0;i!=frame.pointables.length;i++){var position=frame.pointables[i].tipPosition;if(position.x>=this.start.x&&position.x<=this.end.x&&position.y>=this.start.y&&position.y<=this.end.y&&position.z>=this.start.z&&position.z<=this.end.z){return true}}return false};Region.prototype.listener=function(opts){var region=this;if(opts&&opts.nearThreshold)this.setupNearRegion(opts.nearThreshold);return function(frame){return region.updatePosition(frame)}};Region.prototype.clipper=function(){var region=this;return function(frame){region.updatePosition(frame);return region.enteredFrame?frame:null}};Region.prototype.setupNearRegion=function(distance){var nearRegion=this.nearRegion=new Region([this.start.x-distance,this.start.y-distance,this.start.z-distance],[this.end.x+distance,this.end.y+distance,this.end.z+distance]);var region=this;nearRegion.on("enter",function(frame){region.emit("near",frame)});nearRegion.on("exit",function(frame){region.emit("far",frame)});region.on("exit",function(frame){region.emit("near",frame)})};Region.prototype.updatePosition=function(frame){if(this.nearRegion)this.nearRegion.updatePosition(frame);if(this.hasPointables(frame)&&this.enteredFrame==null){this.enteredFrame=frame;this.emit("enter",this.enteredFrame)}else if(!this.hasPointables(frame)&&this.enteredFrame!=null){this.enteredFrame=null;this.emit("exit",this.enteredFrame)}return frame};Region.prototype.normalize=function(position){return new Vector([(position.x-this.start.x)/(this.end.x-this.start.x),(position.y-this.start.y)/(this.end.y-this.start.y),(position.z-this.start.z)/(this.end.z-this.start.z)])};Region.prototype.mapToXY=function(position,width,height){var normalized=this.normalize(position);var x=normalized.x,y=normalized.y;if(x>1)x=1;else if(x<-1)x=-1;if(y>1)y=1;else if(y<-1)y=-1;return[(x+1)/2*width,(1-y)/2*height,normalized.z]};_.extend(Region.prototype,EventEmitter.prototype)},{events:17,underscore:20}],16:[function(require,module,exports){},{}],17:[function(require,module,exports){!function(process){if(!process.EventEmitter)process.EventEmitter=function(){};var EventEmitter=exports.EventEmitter=process.EventEmitter;var isArray=typeof Array.isArray==="function"?Array.isArray:function(xs){return Object.prototype.toString.call(xs)==="[object Array]"};function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;i0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);console.trace()}}this._events[type].push(listener)}else{this._events[type]=[this._events[type],listener]}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){var self=this;self.on(type,function g(){self.removeListener(type,g);listener.apply(this,arguments)});return this};EventEmitter.prototype.removeListener=function(type,listener){if("function"!==typeof listener){throw new Error("removeListener only takes instances of Function")}if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(i<0)return this;list.splice(i,1);if(list.length==0)delete this._events[type]}else if(this._events[type]===listener){delete this._events[type]}return this};EventEmitter.prototype.removeAllListeners=function(type){if(arguments.length===0){this._events={};return this}if(type&&this._events&&this._events[type])this._events[type]=null;return this};EventEmitter.prototype.listeners=function(type){if(!this._events)this._events={};if(!this._events[type])this._events[type]=[];if(!isArray(this._events[type])){this._events[type]=[this._events[type]]}return this._events[type]}}(require("__browserify_process"))},{__browserify_process:18}],18:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}if(canPost){var queue=[];window.addEventListener("message",function(ev){if(ev.source===window&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],19:[function(require,module,exports){!function(){!function(){"use strict";var shim={};if(typeof exports==="undefined"){if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){shim.exports={};define(function(){return shim.exports})}else{shim.exports=window}}else{shim.exports=exports}!function(exports){var vec2={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec2.create=function(){return new Float32Array(2)};vec2.clone=function(a){var out=new Float32Array(2);out[0]=a[0];out[1]=a[1];return out};vec2.fromValues=function(x,y){var out=new Float32Array(2);out[0]=x;out[1]=y;return out};vec2.copy=function(out,a){out[0]=a[0];out[1]=a[1];return out};vec2.set=function(out,x,y){out[0]=x;out[1]=y;return out};vec2.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];return out};vec2.sub=vec2.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];return out};vec2.mul=vec2.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];return out};vec2.div=vec2.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];return out};vec2.min=function(out,a,b){out[0]=Math.min(a[0],b[0]); +out[1]=Math.min(a[1],b[1]);return out};vec2.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);return out};vec2.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;return out};vec2.dist=vec2.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return Math.sqrt(x*x+y*y)};vec2.sqrDist=vec2.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return x*x+y*y};vec2.len=vec2.length=function(a){var x=a[0],y=a[1];return Math.sqrt(x*x+y*y)};vec2.sqrLen=vec2.squaredLength=function(a){var x=a[0],y=a[1];return x*x+y*y};vec2.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];return out};vec2.normalize=function(out,a){var x=a[0],y=a[1];var len=x*x+y*y;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len}return out};vec2.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]};vec2.cross=function(out,a,b){var z=a[0]*b[1]-a[1]*b[0];out[0]=out[1]=0;out[2]=z;return out};vec2.lerp=function(out,a,b,t){var ax=a[0],ay=a[1];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);return out};vec2.transformMat2=function(out,a,m){var x=a[0],y=a[1];out[0]=x*m[0]+y*m[1];out[1]=x*m[2]+y*m[3];return out};vec2.forEach=function(){var vec=new Float32Array(2);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=2}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len}return out};vec3.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]};vec3.cross=function(out,a,b){var ax=a[0],ay=a[1],az=a[2],bx=b[0],by=b[1],bz=b[2];out[0]=ay*bz-az*by;out[1]=az*bx-ax*bz;out[2]=ax*by-ay*bx;return out};vec3.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);return out};vec3.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12];out[1]=m[1]*x+m[5]*y+m[9]*z+m[13];out[2]=m[2]*x+m[6]*y+m[10]*z+m[14];return out};vec3.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec3.forEach=function(){var vec=new Float32Array(3);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=3}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len;out[3]=a[3]*len}return out};vec4.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]};vec4.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2],aw=a[3];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);out[3]=aw+t*(b[3]-aw);return out};vec4.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2],w=a[3];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12]*w;out[1]=m[1]*x+m[5]*y+m[9]*z+m[13]*w;out[2]=m[2]*x+m[6]*y+m[10]*z+m[14]*w;out[3]=m[3]*x+m[7]*y+m[11]*z+m[15]*w;return out};vec4.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec4.forEach=function(){var vec=new Float32Array(4);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=4}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i=1){if(out!==a){out[0]=ax;out[1]=ay;out[2]=az;out[3]=aw}return out}halfTheta=Math.acos(cosHalfTheta);sinHalfTheta=Math.sqrt(1-cosHalfTheta*cosHalfTheta);if(Math.abs(sinHalfTheta)<.001){out[0]=ax*.5+bx*.5;out[1]=ay*.5+by*.5;out[2]=az*.5+bz*.5;out[3]=aw*.5+bw*.5;return out}ratioA=Math.sin((1-t)*halfTheta)/sinHalfTheta;ratioB=Math.sin(t*halfTheta)/sinHalfTheta;out[0]=ax*ratioA+bx*ratioB;out[1]=ay*ratioA+by*ratioB;out[2]=az*ratioA+bz*ratioB;out[3]=aw*ratioA+bw*ratioB;return out};quat.invert=function(out,a){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],dot=a0*a0+a1*a1+a2*a2+a3*a3,invDot=dot?1/dot:0;out[0]=-a0*invDot;out[1]=-a1*invDot;out[2]=-a2*invDot;out[3]=a3*invDot;return out};quat.conjugate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=a[3];return out};quat.len=quat.length=vec4.length;quat.sqrLen=quat.squaredLength=vec4.squaredLength;quat.normalize=vec4.normalize;quat.str=function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.quat=quat}}(shim.exports)}()}()},{}],20:[function(require,module,exports){!function(){!function(){var root=this;var previousUnderscore=root._;var breaker={};var ArrayProto=Array.prototype,ObjProto=Object.prototype,FuncProto=Function.prototype;var push=ArrayProto.push,slice=ArrayProto.slice,concat=ArrayProto.concat,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty;var nativeForEach=ArrayProto.forEach,nativeMap=ArrayProto.map,nativeReduce=ArrayProto.reduce,nativeReduceRight=ArrayProto.reduceRight,nativeFilter=ArrayProto.filter,nativeEvery=ArrayProto.every,nativeSome=ArrayProto.some,nativeIndexOf=ArrayProto.indexOf,nativeLastIndexOf=ArrayProto.lastIndexOf,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeBind=FuncProto.bind;var _=function(obj){if(obj instanceof _)return obj;if(!(this instanceof _))return new _(obj);this._wrapped=obj};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=_}exports._=_}else{root._=_}_.VERSION="1.4.4";var each=_.each=_.forEach=function(obj,iterator,context){if(obj==null)return;if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context)}else if(obj.length===+obj.length){for(var i=0,l=obj.length;i2;if(obj==null)obj=[];if(nativeReduce&&obj.reduce===nativeReduce){if(context)iterator=_.bind(iterator,context);return initial?obj.reduce(iterator,memo):obj.reduce(iterator)}each(obj,function(value,index,list){if(!initial){memo=value;initial=true}else{memo=iterator.call(context,memo,value,index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.reduceRight=_.foldr=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduceRight&&obj.reduceRight===nativeReduceRight){if(context)iterator=_.bind(iterator,context);return initial?obj.reduceRight(iterator,memo):obj.reduceRight(iterator)}var length=obj.length;if(length!==+length){var keys=_.keys(obj);length=keys.length}each(obj,function(value,index,list){index=keys?keys[--length]:--length;if(!initial){memo=obj[index];initial=true}else{memo=iterator.call(context,memo,obj[index],index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.find=_.detect=function(obj,iterator,context){var result;any(obj,function(value,index,list){if(iterator.call(context,value,index,list)){result=value;return true}});return result};_.filter=_.select=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeFilter&&obj.filter===nativeFilter)return obj.filter(iterator,context);each(obj,function(value,index,list){if(iterator.call(context,value,index,list))results[results.length]=value});return results};_.reject=function(obj,iterator,context){return _.filter(obj,function(value,index,list){return!iterator.call(context,value,index,list)},context)};_.every=_.all=function(obj,iterator,context){iterator||(iterator=_.identity);var result=true;if(obj==null)return result;if(nativeEvery&&obj.every===nativeEvery)return obj.every(iterator,context);each(obj,function(value,index,list){if(!(result=result&&iterator.call(context,value,index,list)))return breaker});return!!result};var any=_.some=_.any=function(obj,iterator,context){iterator||(iterator=_.identity);var result=false;if(obj==null)return result;if(nativeSome&&obj.some===nativeSome)return obj.some(iterator,context);each(obj,function(value,index,list){if(result||(result=iterator.call(context,value,index,list)))return breaker});return!!result};_.contains=_.include=function(obj,target){if(obj==null)return false;if(nativeIndexOf&&obj.indexOf===nativeIndexOf)return obj.indexOf(target)!=-1;return any(obj,function(value){return value===target})};_.invoke=function(obj,method){var args=slice.call(arguments,2);var isFunc=_.isFunction(method);return _.map(obj,function(value){return(isFunc?method:value[method]).apply(value,args)})};_.pluck=function(obj,key){return _.map(obj,function(value){return value[key]})};_.where=function(obj,attrs,first){if(_.isEmpty(attrs))return first?null:[];return _[first?"find":"filter"](obj,function(value){for(var key in attrs){if(attrs[key]!==value[key])return false}return true})};_.findWhere=function(obj,attrs){return _.where(obj,attrs,true)};_.max=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.max.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return-Infinity;var result={computed:-Infinity,value:-Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed>=result.computed&&(result={value:value,computed:computed})});return result.value};_.min=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.min.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return Infinity;var result={computed:Infinity,value:Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computedb||a===void 0)return 1;if(a>>1;iterator.call(context,array[mid])=0})})};_.difference=function(array){var rest=concat.apply(ArrayProto,slice.call(arguments,1));return _.filter(array,function(value){return!_.contains(rest,value)})};_.zip=function(){var args=slice.call(arguments);var length=_.max(_.pluck(args,"length"));var results=new Array(length);for(var i=0;i=0;i--){args=[funcs[i].apply(this,args)]}return args[0]}};_.after=function(times,func){if(times<=0)return func();return function(){if(--times<1){return func.apply(this,arguments)}}};_.keys=nativeKeys||function(obj){if(obj!==Object(obj))throw new TypeError("Invalid object");var keys=[];for(var key in obj)if(_.has(obj,key))keys[keys.length]=key;return keys};_.values=function(obj){var values=[];for(var key in obj)if(_.has(obj,key))values.push(obj[key]);return values};_.pairs=function(obj){var pairs=[];for(var key in obj)if(_.has(obj,key))pairs.push([key,obj[key]]);return pairs};_.invert=function(obj){var result={};for(var key in obj)if(_.has(obj,key))result[obj[key]]=key;return result};_.functions=_.methods=function(obj){var names=[];for(var key in obj){if(_.isFunction(obj[key]))names.push(key)}return names.sort()};_.extend=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){obj[prop]=source[prop]}}});return obj};_.pick=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));each(keys,function(key){if(key in obj)copy[key]=obj[key]});return copy};_.omit=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));for(var key in obj){if(!_.contains(keys,key))copy[key]=obj[key]}return copy};_.defaults=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){if(obj[prop]==null)obj[prop]=source[prop]}}});return obj};_.clone=function(obj){if(!_.isObject(obj))return obj;return _.isArray(obj)?obj.slice():_.extend({},obj)};_.tap=function(obj,interceptor){interceptor(obj);return obj};var eq=function(a,b,aStack,bStack){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;if(a instanceof _)a=a._wrapped;if(b instanceof _)b=b._wrapped;var className=toString.call(a);if(className!=toString.call(b))return false;switch(className){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if(typeof a!="object"||typeof b!="object")return false;var length=aStack.length;while(length--){if(aStack[length]==a)return bStack[length]==b}aStack.push(a);bStack.push(b);var size=0,result=true;if(className=="[object Array]"){size=a.length;result=size==b.length;if(result){while(size--){if(!(result=eq(a[size],b[size],aStack,bStack)))break}}}else{var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(_.isFunction(aCtor)&&aCtor instanceof aCtor&&_.isFunction(bCtor)&&bCtor instanceof bCtor)){return false}for(var key in a){if(_.has(a,key)){size++;if(!(result=_.has(b,key)&&eq(a[key],b[key],aStack,bStack)))break}}if(result){for(key in b){if(_.has(b,key)&&!size--)break}result=!size}}aStack.pop();bStack.pop();return result};_.isEqual=function(a,b){return eq(a,b,[],[])};_.isEmpty=function(obj){if(obj==null)return true;if(_.isArray(obj)||_.isString(obj))return obj.length===0;for(var key in obj)if(_.has(obj,key))return false;return true};_.isElement=function(obj){return!!(obj&&obj.nodeType===1)};_.isArray=nativeIsArray||function(obj){return toString.call(obj)=="[object Array]"};_.isObject=function(obj){return obj===Object(obj)};each(["Arguments","Function","String","Number","Date","RegExp"],function(name){_["is"+name]=function(obj){return toString.call(obj)=="[object "+name+"]"}});if(!_.isArguments(arguments)){_.isArguments=function(obj){return!!(obj&&_.has(obj,"callee"))}}if(typeof/./!=="function"){_.isFunction=function(obj){return typeof obj==="function"}}_.isFinite=function(obj){return isFinite(obj)&&!isNaN(parseFloat(obj))};_.isNaN=function(obj){return _.isNumber(obj)&&obj!=+obj};_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)=="[object Boolean]"};_.isNull=function(obj){return obj===null};_.isUndefined=function(obj){return obj===void 0};_.has=function(obj,key){return hasOwnProperty.call(obj,key)};_.noConflict=function(){root._=previousUnderscore;return this};_.identity=function(value){return value};_.times=function(n,iterator,context){var accum=Array(n);for(var i=0;i":">",'"':""","'":"'","/":"/"}};entityMap.unescape=_.invert(entityMap.escape);var entityRegexes={escape:new RegExp("["+_.keys(entityMap.escape).join("")+"]","g"),unescape:new RegExp("("+_.keys(entityMap.unescape).join("|")+")","g")};_.each(["escape","unescape"],function(method){_[method]=function(string){if(string==null)return"";return(""+string).replace(entityRegexes[method],function(match){return entityMap[method][match]})}});_.result=function(object,property){if(object==null)return null;var value=object[property];return _.isFunction(value)?value.call(object):value};_.mixin=function(obj){each(_.functions(obj),function(name){var func=_[name]=obj[name];_.prototype[name]=function(){var args=[this._wrapped];push.apply(args,arguments);return result.call(this,func.apply(_,args))}})};var idCounter=0;_.uniqueId=function(prefix){var id=++idCounter+"";return prefix?prefix+id:id};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/;var escapes={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"};var escaper=/\\|'|\r|\n|\t|\u2028|\u2029/g;_.template=function(text,data,settings){var render;settings=_.defaults({},settings,_.templateSettings);var matcher=new RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g");var index=0;var source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=text.slice(index,offset).replace(escaper,function(match){return"\\"+escapes[match]});if(escape){source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'"}if(interpolate){source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'"}if(evaluate){source+="';\n"+evaluate+"\n__p+='"}index=offset+match.length;return match});source+="';\n";if(!settings.variable)source="with(obj||{}){\n"+source+"}\n";source="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";try{render=new Function(settings.variable||"obj","_",source)}catch(e){e.source=source;throw e}if(data)return render(data,_);var template=function(data){return render.call(this,data,_)};template.source="function("+(settings.variable||"obj")+"){\n"+source+"}";return template};_.chain=function(obj){return _(obj).chain()};var result=function(obj){return this._chain?_(obj).chain():obj};_.mixin(_);each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){var obj=this._wrapped;method.apply(obj,arguments);if((name=="shift"||name=="splice")&&obj.length===0)delete obj[0];return result.call(this,obj)}});each(["concat","join","slice"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){return result.call(this,method.apply(this._wrapped,arguments))}});_.extend(_.prototype,{chain:function(){this._chain=true;return this},value:function(){return this._wrapped}})}.call(this)}()},{}],21:[function(require,module,exports){window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1e3/60)}}();Leap=require("../lib/index")},{"../lib/index":8}]},{},[21]); + +/* + * Leap Motion integration for Reveal.js. + * James Sun [sun16] + * Rory Hardy [gneatgeek] + */ + +(function () { + var body = document.body, + controller = new Leap.Controller({ enableGestures: true }), + lastGesture = 0, + leapConfig = Reveal.getConfig().leap, + pointer = document.createElement( 'div' ), + config = { + autoCenter : true, // Center pointer around detected position. + gestureDelay : 500, // How long to delay between gestures. + naturalSwipe : true, // Swipe as if it were a touch screen. + pointerColor : '#00aaff', // Default color of the pointer. + pointerOpacity : 0.7, // Default opacity of the pointer. + pointerSize : 15, // Default minimum height/width of the pointer. + pointerTolerance : 120 // Bigger = slower pointer. + }, + entered, enteredPosition, now, size, tipPosition; // Other vars we need later, but don't need to redeclare. + + // Merge user defined settings with defaults + if( leapConfig ) { + for( key in leapConfig ) { + config[key] = leapConfig[key]; + } + } + + pointer.id = 'leap'; + + pointer.style.position = 'absolute'; + pointer.style.visibility = 'hidden'; + pointer.style.zIndex = 50; + pointer.style.opacity = config.pointerOpacity; + pointer.style.backgroundColor = config.pointerColor; + + body.appendChild( pointer ); + + // Leap's loop + controller.on( 'frame', function ( frame ) { + // Timing code to rate limit gesture execution + now = new Date().getTime(); + + // Pointer: 1 to 2 fingers. Strictly one finger works but may cause innaccuracies. + // The innaccuracies were observed on a development model and may not be an issue with consumer models. + if( frame.fingers.length > 0 && frame.fingers.length < 3 ) { + // Invert direction and multiply by 3 for greater effect. + size = -3 * frame.fingers[0].tipPosition[2]; + + if( size < config.pointerSize ) { + size = config.pointerSize; + } + + pointer.style.width = size + 'px'; + pointer.style.height = size + 'px'; + pointer.style.borderRadius = size - 5 + 'px'; + pointer.style.visibility = 'visible'; + + if( config.autoCenter ) { + tipPosition = frame.fingers[0].tipPosition; + + // Check whether the finger has entered the z range of the Leap Motion. Used for the autoCenter option. + if( !entered ) { + entered = true; + enteredPosition = frame.fingers[0].tipPosition; + } + + pointer.style.top = + (-1 * (( tipPosition[1] - enteredPosition[1] ) * body.offsetHeight / config.pointerTolerance )) + + ( body.offsetHeight / 2 ) + 'px'; + + pointer.style.left = + (( tipPosition[0] - enteredPosition[0] ) * body.offsetWidth / config.pointerTolerance ) + + ( body.offsetWidth / 2 ) + 'px'; + } + else { + pointer.style.top = ( 1 - (( tipPosition[1] - 50) / config.pointerTolerance )) * + body.offsetHeight + 'px'; + + pointer.style.left = ( tipPosition[0] * body.offsetWidth / config.pointerTolerance ) + + ( body.offsetWidth / 2 ) + 'px'; + } + } + else { + // Hide pointer on exit + entered = false; + pointer.style.visibility = 'hidden'; + } + + // Gestures + if( frame.gestures.length > 0 && (now - lastGesture) > config.gestureDelay ) { + var gesture = frame.gestures[0]; + + // One hand gestures + if( frame.hands.length === 1 ) { + // Swipe gestures. 3+ fingers. + if( frame.fingers.length > 2 && gesture.type === 'swipe' ) { + // Define here since some gestures will throw undefined for these. + var x = gesture.direction[0], + y = gesture.direction[1]; + + // Left/right swipe gestures + if( Math.abs( x ) > Math.abs( y )) { + if( x > 0 ) { + config.naturalSwipe ? Reveal.left() : Reveal.right(); + } + else { + config.naturalSwipe ? Reveal.right() : Reveal.left(); + } + } + // Up/down swipe gestures + else { + if( y > 0 ) { + config.naturalSwipe ? Reveal.down() : Reveal.up(); + } + else { + config.naturalSwipe ? Reveal.up() : Reveal.down(); + } + } + + lastGesture = now; + } + } + // Two hand gestures + else if( frame.hands.length === 2 ) { + // Upward two hand swipe gesture + if( gesture.direction[1] > 0 && gesture.type === 'swipe' ) { + Reveal.toggleOverview(); + } + + lastGesture = now; + } + } + }); + + controller.connect(); +})(); diff --git a/plugin/markdown/example.html b/plugin/markdown/example.html new file mode 100644 index 0000000..0b07aa5 --- /dev/null +++ b/plugin/markdown/example.html @@ -0,0 +1,98 @@ + + + + + + + reveal.js - Markdown Demo + + + + + + + +
+ +
+ + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + + + + + + + diff --git a/plugin/markdown/example.md b/plugin/markdown/example.md new file mode 100644 index 0000000..6f6f577 --- /dev/null +++ b/plugin/markdown/example.md @@ -0,0 +1,31 @@ +# Markdown Demo + + + +## External 1.1 + +Content 1.1 + +Note: This will only appear in the speaker notes window. + + +## External 1.2 + +Content 1.2 + + + +## External 2 + +Content 2.1 + + + +## External 3.1 + +Content 3.1 + + +## External 3.2 + +Content 3.2 diff --git a/plugin/markdown/markdown.js b/plugin/markdown/markdown.js new file mode 100755 index 0000000..42c847f --- /dev/null +++ b/plugin/markdown/markdown.js @@ -0,0 +1,320 @@ +/** + * The reveal.js markdown plugin. Handles parsing of + * markdown inside of presentations as well as loading + * of external markdown documents. + */ +(function( root, factory ) { + if( typeof exports === 'object' ) { + module.exports = factory( require( './marked' ) ); + } + else { + // Browser globals (root is window) + root.RevealMarkdown = factory( root.marked ); + root.RevealMarkdown.initialize(); + } +}( this, function( marked ) { + + if( typeof marked === 'undefined' ) { + throw 'The reveal.js Markdown plugin requires marked to be loaded'; + } + + if( typeof hljs !== 'undefined' ) { + marked.setOptions({ + highlight: function( lang, code ) { + return hljs.highlightAuto( lang, code ).value; + } + }); + } + + var DEFAULT_SLIDE_SEPARATOR = '^\n---\n$', + DEFAULT_NOTES_SEPARATOR = 'note:'; + + + /** + * Retrieves the markdown contents of a slide section + * element. Normalizes leading tabs/whitespace. + */ + function getMarkdownFromSlide( section ) { + + var template = section.querySelector( 'script' ); + + // strip leading whitespace so it isn't evaluated as code + var text = ( template || section ).textContent; + + var leadingWs = text.match( /^\n?(\s*)/ )[1].length, + leadingTabs = text.match( /^\n?(\t*)/ )[1].length; + + if( leadingTabs > 0 ) { + text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' ); + } + else if( leadingWs > 1 ) { + text = text.replace( new RegExp('\\n? {' + leadingWs + '}','g'), '\n' ); + } + + return text; + + } + + /** + * Given a markdown slide section element, this will + * return all arguments that aren't related to markdown + * parsing. Used to forward any other user-defined arguments + * to the output markdown slide. + */ + function getForwardedAttributes( section ) { + + var attributes = section.attributes; + var result = []; + + for( var i = 0, len = attributes.length; i < len; i++ ) { + var name = attributes[i].name, + value = attributes[i].value; + + // disregard attributes that are used for markdown loading/parsing + if( /data\-(markdown|separator|vertical|notes)/gi.test( name ) ) continue; + + if( value ) { + result.push( name + '=' + value ); + } + else { + result.push( name ); + } + } + + return result.join( ' ' ); + + } + + /** + * Inspects the given options and fills out default + * values for what's not defined. + */ + function getSlidifyOptions( options ) { + + options = options || {}; + options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR; + options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR; + options.attributes = options.attributes || ''; + + return options; + + } + + /** + * Helper function for constructing a markdown slide. + */ + function createMarkdownSlide( content, options ) { + + options = getSlidifyOptions( options ); + + var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) ); + + if( notesMatch.length === 2 ) { + content = notesMatch[0] + ''; + } + + return ''; + + } + + /** + * Parses a data string into multiple slides based + * on the passed in separator arguments. + */ + function slidify( markdown, options ) { + + options = getSlidifyOptions( options ); + + var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ), + horizontalSeparatorRegex = new RegExp( options.separator ); + + var matches, + lastIndex = 0, + isHorizontal, + wasHorizontal = true, + content, + sectionStack = []; + + // iterate until all blocks between separators are stacked up + while( matches = separatorRegex.exec( markdown ) ) { + notes = null; + + // determine direction (horizontal by default) + isHorizontal = horizontalSeparatorRegex.test( matches[0] ); + + if( !isHorizontal && wasHorizontal ) { + // create vertical stack + sectionStack.push( [] ); + } + + // pluck slide content from markdown input + content = markdown.substring( lastIndex, matches.index ); + + if( isHorizontal && wasHorizontal ) { + // add to horizontal stack + sectionStack.push( content ); + } + else { + // add to vertical stack + sectionStack[sectionStack.length-1].push( content ); + } + + lastIndex = separatorRegex.lastIndex; + wasHorizontal = isHorizontal; + } + + // add the remaining slide + ( wasHorizontal ? sectionStack : sectionStack[sectionStack.length-1] ).push( markdown.substring( lastIndex ) ); + + var markdownSections = ''; + + // flatten the hierarchical stack, and insert
tags + for( var i = 0, len = sectionStack.length; i < len; i++ ) { + // vertical + if( sectionStack[i].propertyIsEnumerable( length ) && typeof sectionStack[i].splice === 'function' ) { + markdownSections += '
'; + + sectionStack[i].forEach( function( child ) { + markdownSections += '
' + createMarkdownSlide( child, options ) + '
'; + } ); + + markdownSections += '
'; + } + else { + markdownSections += '
' + createMarkdownSlide( sectionStack[i], options ) + '
'; + } + } + + return markdownSections; + + } + + /** + * Parses any current data-markdown slides, splits + * multi-slide markdown into separate sections and + * handles loading of external markdown. + */ + function processSlides() { + + var sections = document.querySelectorAll( '[data-markdown]'), + section; + + for( var i = 0, len = sections.length; i < len; i++ ) { + + section = sections[i]; + + if( section.getAttribute( 'data-markdown' ).length ) { + + var xhr = new XMLHttpRequest(), + url = section.getAttribute( 'data-markdown' ); + + datacharset = section.getAttribute( 'data-charset' ); + + // see https://developer.mozilla.org/en-US/docs/Web/API/element.getAttribute#Notes + if( datacharset != null && datacharset != '' ) { + xhr.overrideMimeType( 'text/html; charset=' + datacharset ); + } + + xhr.onreadystatechange = function() { + if( xhr.readyState === 4 ) { + if ( xhr.status >= 200 && xhr.status < 300 ) { + + section.outerHTML = slidify( xhr.responseText, { + separator: section.getAttribute( 'data-separator' ), + verticalSeparator: section.getAttribute( 'data-vertical' ), + notesSeparator: section.getAttribute( 'data-notes' ), + attributes: getForwardedAttributes( section ) + }); + + } + else { + + section.outerHTML = '
' + + 'ERROR: The attempt to fetch ' + url + ' failed with HTTP status ' + xhr.status + '.' + + 'Check your browser\'s JavaScript console for more details.' + + '

Remember that you need to serve the presentation HTML from a HTTP server.

' + + '
'; + + } + } + }; + + xhr.open( 'GET', url, false ); + + try { + xhr.send(); + } + catch ( e ) { + alert( 'Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e ); + } + + } + else if( section.getAttribute( 'data-separator' ) || section.getAttribute( 'data-vertical' ) || section.getAttribute( 'data-notes' ) ) { + + section.outerHTML = slidify( getMarkdownFromSlide( section ), { + separator: section.getAttribute( 'data-separator' ), + verticalSeparator: section.getAttribute( 'data-vertical' ), + notesSeparator: section.getAttribute( 'data-notes' ), + attributes: getForwardedAttributes( section ) + }); + + } + else { + + section.innerHTML = createMarkdownSlide( getMarkdownFromSlide( section ) ); + + } + } + + } + + /** + * Converts any current data-markdown slides in the + * DOM to HTML. + */ + function convertSlides() { + + var sections = document.querySelectorAll( '[data-markdown]'); + + for( var i = 0, len = sections.length; i < len; i++ ) { + + var section = sections[i]; + + // Only parse the same slide once + if( !section.getAttribute( 'data-markdown-parsed' ) ) { + + section.setAttribute( 'data-markdown-parsed', true ) + + var notes = section.querySelector( 'aside.notes' ); + var markdown = getMarkdownFromSlide( section ); + + section.innerHTML = marked( markdown ); + + // If there were notes, we need to re-add them after + // having overwritten the section's HTML + if( notes ) { + section.appendChild( notes ); + } + + } + + } + + } + + // API + return { + + initialize: function() { + processSlides(); + convertSlides(); + }, + + // TODO: Do these belong in the API? + processSlides: processSlides, + convertSlides: convertSlides, + slidify: slidify + + }; + +})); diff --git a/plugin/markdown/marked.js b/plugin/markdown/marked.js new file mode 100644 index 0000000..ca558fb --- /dev/null +++ b/plugin/markdown/marked.js @@ -0,0 +1,37 @@ +/** + * marked - a markdown parser + * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed) + * https://github.com/chjj/marked + */ + +(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){3,} *\n*/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/, +text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr",/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b";block.html=replace(block.html)("comment",/\x3c!--[\s\S]*?--\x3e/)("closed", +/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1", +"\\2")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm)if(this.options.tables)this.rules=block.tables;else this.rules=block.gfm}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)}; +Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1)this.tokens.push({type:"space"})}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm, +"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g, +"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i ?/gm,"");this.token(cap,top);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length); +bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i1&&b.length>1)){src=cap.slice(i+ +1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item[item.length-1]==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script",text:cap[0]});continue}if(top&& +(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^\x3c!--[\s\S]*?--\x3e|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, +code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, +em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal; +if(!this.links)throw new Error("Tokens array requires a `links` property.");if(this.options.gfm)if(this.options.breaks)this.rules=inline.breaks;else this.rules=inline.gfm;else if(this.options.pedantic)this.rules=inline.pedantic}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length); +out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1][6]===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+=''+text+"";continue}if(cap=this.rules.url.exec(src)){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=''+text+"";continue}if(cap=this.rules.tag.exec(src)){src=src.substring(cap[0].length); +out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);out+=this.outputLink(cap,{href:cap[2],title:cap[3]});continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0][0];src=cap[0].substring(1)+src;continue}out+=this.outputLink(cap,link);continue}if(cap=this.rules.strong.exec(src)){src= +src.substring(cap[0].length);out+=""+this.output(cap[2]||cap[1])+"";continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=""+this.output(cap[2]||cap[1])+"";continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=""+escape(cap[2],true)+"";continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+="
";continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=""+ +this.output(cap[1])+"";continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(cap[0]);continue}if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0));}return out};InlineLexer.prototype.outputLink=function(cap,link){if(cap[0][0]!=="!")return'"+this.output(cap[1])+"";else return''+escape(cap[1])+'"};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,"\u2014").replace(/'([^']*)'/g,"\u2018$1\u2019").replace(/"([^"]*)"/g,"\u201c$1\u201d").replace(/\.{3}/g,"\u2026")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i0.5)ch="x"+ch.toString(16);out+="&#"+ch+";"}return out};function Parser(options){this.tokens=[];this.token=null; +this.options=options||marked.defaults}Parser.parse=function(src,options){var parser=new Parser(options);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options);this.tokens=src.reverse();var out="";while(this.next())out+=this.tok();return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text; +while(this.peek().type==="text")body+="\n"+this.next().text;return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case "space":return"";case "hr":return"
\n";case "heading":return""+this.inline.output(this.token.text)+"\n";case "code":if(this.options.highlight){var code=this.options.highlight(this.token.text,this.token.lang);if(code!=null&&code!==this.token.text){this.token.escaped=true;this.token.text=code}}if(!this.token.escaped)this.token.text= +escape(this.token.text,true);return"
"+this.token.text+"
\n";case "table":var body="",heading,i,row,cell,j;body+="
\n\n";for(i=0;i'+heading+"\n":"\n"}body+="\n\n";body+="\n";for(i=0;i'+cell+"\n":"\n"}body+="\n"}body+="\n";return"
"+heading+"
"+cell+"
\n"+body+"
\n";case "blockquote_start":var body="";while(this.next().type!=="blockquote_end")body+=this.tok();return"
\n"+body+"
\n";case "list_start":var type=this.token.ordered?"ol":"ul",body="";while(this.next().type!=="list_end")body+= +this.tok();return"<"+type+">\n"+body+"\n";case "list_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.token.type==="text"?this.parseText():this.tok();return"
  • "+body+"
  • \n";case "loose_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.tok();return"
  • "+body+"
  • \n";case "html":return!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;case "paragraph":return"

    "+this.inline.output(this.token.text)+ +"

    \n";case "text":return"

    "+this.parseText()+"

    \n"}};function escape(html,encode){return html.replace(!encode?/&(?!#?\w+;)/g:/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i= +1,target,key;for(;iAn error occured:

    "+escape(e.message+"",true)+"
    ";throw e;}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:""};marked.Parser=Parser;marked.parser=Parser.parse;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output; +marked.parse=marked;if(typeof exports==="object")module.exports=marked;else if(typeof define==="function"&&define.amd)define(function(){return marked});else this.marked=marked}).call(function(){return this||(typeof window!=="undefined"?window:global)}()); diff --git a/plugin/math/math.js b/plugin/math/math.js new file mode 100755 index 0000000..d55d9d1 --- /dev/null +++ b/plugin/math/math.js @@ -0,0 +1,64 @@ +/** + * A plugin which enables rendering of math equations inside + * of reveal.js slides. Essentially a thin wrapper for MathJax. + * + * @author Hakim El Hattab + */ +var RevealMath = window.RevealMath || (function(){ + + var options = Reveal.getConfig().math || {}; + options.mathjax = options.mathjax || 'http://cdn.mathjax.org/mathjax/latest/MathJax.js'; + options.config = options.config || 'TeX-AMS_HTML-full'; + + loadScript( options.mathjax + '?config=' + options.config, function() { + + MathJax.Hub.Config({ + messageStyle: 'none', + tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] }, + skipStartupTypeset: true + }); + + // Typeset followed by an immediate reveal.js layout since + // the typesetting process could affect slide height + MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub ] ); + MathJax.Hub.Queue( Reveal.layout ); + + // Reprocess equations in slides when they turn visible + Reveal.addEventListener( 'slidechanged', function( event ) { + + MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] ); + + } ); + + } ); + + function loadScript( url, callback ) { + + var head = document.querySelector( 'head' ); + var script = document.createElement( 'script' ); + script.type = 'text/javascript'; + script.src = url; + + // Wrapper for callback to make sure it only fires once + var finish = function() { + if( typeof callback === 'function' ) { + callback.call(); + callback = null; + } + } + + script.onload = finish; + + // IE + script.onreadystatechange = function() { + if ( this.readyState === 'loaded' ) { + finish(); + } + } + + // Normal browsers + head.appendChild( script ); + + } + +})(); diff --git a/plugin/multiplex/client.js b/plugin/multiplex/client.js new file mode 100644 index 0000000..e6179f6 --- /dev/null +++ b/plugin/multiplex/client.js @@ -0,0 +1,13 @@ +(function() { + var multiplex = Reveal.getConfig().multiplex; + var socketId = multiplex.id; + var socket = io.connect(multiplex.url); + + socket.on(multiplex.id, function(data) { + // ignore data from sockets that aren't ours + if (data.socketId !== socketId) { return; } + if( window.location.host === 'localhost:1947' ) return; + + Reveal.slide(data.indexh, data.indexv, data.indexf, 'remote'); + }); +}()); diff --git a/plugin/multiplex/index.js b/plugin/multiplex/index.js new file mode 100644 index 0000000..6f5d8b1 --- /dev/null +++ b/plugin/multiplex/index.js @@ -0,0 +1,56 @@ +var express = require('express'); +var fs = require('fs'); +var io = require('socket.io'); +var crypto = require('crypto'); + +var app = express.createServer(); +var staticDir = express.static; + +io = io.listen(app); + +var opts = { + port: 1948, + baseDir : __dirname + '/../../' +}; + +io.sockets.on('connection', function(socket) { + socket.on('slidechanged', function(slideData) { + if (typeof slideData.secret == 'undefined' || slideData.secret == null || slideData.secret === '') return; + if (createHash(slideData.secret) === slideData.socketId) { + slideData.secret = null; + socket.broadcast.emit(slideData.socketId, slideData); + }; + }); +}); + +app.configure(function() { + [ 'css', 'js', 'plugin', 'lib' ].forEach(function(dir) { + app.use('/' + dir, staticDir(opts.baseDir + dir)); + }); +}); + +app.get("/", function(req, res) { + res.writeHead(200, {'Content-Type': 'text/html'}); + fs.createReadStream(opts.baseDir + '/index.html').pipe(res); +}); + +app.get("/token", function(req,res) { + var ts = new Date().getTime(); + var rand = Math.floor(Math.random()*9999999); + var secret = ts.toString() + rand.toString(); + res.send({secret: secret, socketId: createHash(secret)}); +}); + +var createHash = function(secret) { + var cipher = crypto.createCipher('blowfish', secret); + return(cipher.final('hex')); +}; + +// Actually listen +app.listen(opts.port || null); + +var brown = '\033[33m', + green = '\033[32m', + reset = '\033[0m'; + +console.log( brown + "reveal.js:" + reset + " Multiplex running on port " + green + opts.port + reset ); \ No newline at end of file diff --git a/plugin/multiplex/master.js b/plugin/multiplex/master.js new file mode 100644 index 0000000..b6a7eb7 --- /dev/null +++ b/plugin/multiplex/master.js @@ -0,0 +1,51 @@ +(function() { + // Don't emit events from inside of notes windows + if ( window.location.search.match( /receiver/gi ) ) { return; } + + var multiplex = Reveal.getConfig().multiplex; + + var socket = io.connect(multiplex.url); + + var notify = function( slideElement, indexh, indexv, origin ) { + if( typeof origin === 'undefined' && origin !== 'remote' ) { + var nextindexh; + var nextindexv; + + var fragmentindex = Reveal.getIndices().f; + if (typeof fragmentindex == 'undefined') { + fragmentindex = 0; + } + + if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') { + nextindexh = indexh; + nextindexv = indexv + 1; + } else { + nextindexh = indexh + 1; + nextindexv = 0; + } + + var slideData = { + indexh : indexh, + indexv : indexv, + indexf : fragmentindex, + nextindexh : nextindexh, + nextindexv : nextindexv, + secret: multiplex.secret, + socketId : multiplex.id + }; + + socket.emit('slidechanged', slideData); + } + } + + Reveal.addEventListener( 'slidechanged', function( event ) { + notify( event.currentSlide, event.indexh, event.indexv, event.origin ); + } ); + + var fragmentNotify = function( event ) { + notify( Reveal.getCurrentSlide(), Reveal.getIndices().h, Reveal.getIndices().v, event.origin ); + }; + + Reveal.addEventListener( 'fragmentshown', fragmentNotify ); + Reveal.addEventListener( 'fragmenthidden', fragmentNotify ); +}()); \ No newline at end of file diff --git a/plugin/notes-server/client.js b/plugin/notes-server/client.js new file mode 100644 index 0000000..156cb9a --- /dev/null +++ b/plugin/notes-server/client.js @@ -0,0 +1,57 @@ +(function() { + // don't emit events from inside the previews themselves + if ( window.location.search.match( /receiver/gi ) ) { return; } + + var socket = io.connect(window.location.origin); + var socketId = Math.random().toString().slice(2); + + console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId); + window.open(window.location.origin + '/notes/' + socketId, 'notes-' + socketId); + + // Fires when a fragment is shown + Reveal.addEventListener( 'fragmentshown', function( event ) { + var fragmentData = { + fragment : 'next', + socketId : socketId + }; + socket.emit('fragmentchanged', fragmentData); + } ); + + // Fires when a fragment is hidden + Reveal.addEventListener( 'fragmenthidden', function( event ) { + var fragmentData = { + fragment : 'previous', + socketId : socketId + }; + socket.emit('fragmentchanged', fragmentData); + } ); + + // Fires when slide is changed + Reveal.addEventListener( 'slidechanged', function( event ) { + var nextindexh; + var nextindexv; + var slideElement = event.currentSlide; + + if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') { + nextindexh = event.indexh; + nextindexv = event.indexv + 1; + } else { + nextindexh = event.indexh + 1; + nextindexv = 0; + } + + var notes = slideElement.querySelector('aside.notes'); + var slideData = { + notes : notes ? notes.innerHTML : '', + indexh : event.indexh, + indexv : event.indexv, + nextindexh : nextindexh, + nextindexv : nextindexv, + socketId : socketId, + markdown : notes ? typeof notes.getAttribute('data-markdown') === 'string' : false + + }; + + socket.emit('slidechanged', slideData); + } ); +}()); diff --git a/plugin/notes-server/index.js b/plugin/notes-server/index.js new file mode 100644 index 0000000..5535c90 --- /dev/null +++ b/plugin/notes-server/index.js @@ -0,0 +1,59 @@ +var express = require('express'); +var fs = require('fs'); +var io = require('socket.io'); +var _ = require('underscore'); +var Mustache = require('mustache'); + +var app = express.createServer(); +var staticDir = express.static; + +io = io.listen(app); + +var opts = { + port : 1947, + baseDir : __dirname + '/../../' +}; + +io.sockets.on('connection', function(socket) { + socket.on('slidechanged', function(slideData) { + socket.broadcast.emit('slidedata', slideData); + }); + socket.on('fragmentchanged', function(fragmentData) { + socket.broadcast.emit('fragmentdata', fragmentData); + }); +}); + +app.configure(function() { + [ 'css', 'js', 'images', 'plugin', 'lib' ].forEach(function(dir) { + app.use('/' + dir, staticDir(opts.baseDir + dir)); + }); +}); + +app.get("/", function(req, res) { + res.writeHead(200, {'Content-Type': 'text/html'}); + fs.createReadStream(opts.baseDir + '/index.html').pipe(res); +}); + +app.get("/notes/:socketId", function(req, res) { + + fs.readFile(opts.baseDir + 'plugin/notes-server/notes.html', function(err, data) { + res.send(Mustache.to_html(data.toString(), { + socketId : req.params.socketId + })); + }); + // fs.createReadStream(opts.baseDir + 'notes-server/notes.html').pipe(res); +}); + +// Actually listen +app.listen(opts.port || null); + +var brown = '\033[33m', + green = '\033[32m', + reset = '\033[0m'; + +var slidesLocation = "http://localhost" + ( opts.port ? ( ':' + opts.port ) : '' ); + +console.log( brown + "reveal.js - Speaker Notes" + reset ); +console.log( "1. Open the slides at " + green + slidesLocation + reset ); +console.log( "2. Click on the link your JS console to go to the notes page" ); +console.log( "3. Advance through your slides and your notes will advance automatically" ); diff --git a/plugin/notes-server/notes.html b/plugin/notes-server/notes.html new file mode 100644 index 0000000..25d1a62 --- /dev/null +++ b/plugin/notes-server/notes.html @@ -0,0 +1,142 @@ + + + + + + + + reveal.js - Slide Notes + + + + + + +
    + +
    + +
    + + UPCOMING: +
    +
    + + + + + + + + diff --git a/plugin/notes/notes.html b/plugin/notes/notes.html new file mode 100644 index 0000000..0e1238f --- /dev/null +++ b/plugin/notes/notes.html @@ -0,0 +1,263 @@ + + + + + + reveal.js - Slide Notes + + + + + + +
    + +
    + +
    + + UPCOMING: +
    + +
    +
    +

    Time

    + 0:00:00 AM +
    +
    +

    Elapsed

    + 00:00:00 +
    +
    + +
    + + + + + diff --git a/plugin/notes/notes.js b/plugin/notes/notes.js new file mode 100644 index 0000000..9a82c3c --- /dev/null +++ b/plugin/notes/notes.js @@ -0,0 +1,78 @@ +/** + * Handles opening of and synchronization with the reveal.js + * notes window. + */ +var RevealNotes = (function() { + + function openNotes() { + var jsFileLocation = document.querySelector('script[src$="notes.js"]').src; // this js file path + jsFileLocation = jsFileLocation.replace(/notes\.js(\?.*)?$/, ''); // the js folder path + var notesPopup = window.open( jsFileLocation + 'notes.html', 'reveal.js - Notes', 'width=1120,height=850' ); + + // Fires when slide is changed + Reveal.addEventListener( 'slidechanged', post ); + + // Fires when a fragment is shown + Reveal.addEventListener( 'fragmentshown', post ); + + // Fires when a fragment is hidden + Reveal.addEventListener( 'fragmenthidden', post ); + + /** + * Posts the current slide data to the notes window + */ + function post() { + var slideElement = Reveal.getCurrentSlide(), + slideIndices = Reveal.getIndices(), + messageData; + + var notes = slideElement.querySelector( 'aside.notes' ), + nextindexh, + nextindexv; + + if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) { + nextindexh = slideIndices.h; + nextindexv = slideIndices.v + 1; + } else { + nextindexh = slideIndices.h + 1; + nextindexv = 0; + } + + messageData = { + notes : notes ? notes.innerHTML : '', + indexh : slideIndices.h, + indexv : slideIndices.v, + indexf : slideIndices.f, + nextindexh : nextindexh, + nextindexv : nextindexv, + markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false + }; + + notesPopup.postMessage( JSON.stringify( messageData ), '*' ); + } + + // Navigate to the current slide when the notes are loaded + notesPopup.addEventListener( 'load', function( event ) { + post(); + }, false ); + } + + // If the there's a 'notes' query set, open directly + if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) { + openNotes(); + } + + // Open the notes when the 's' key is hit + document.addEventListener( 'keydown', function( event ) { + // Disregard the event if the target is editable or a + // modifier is present + if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return; + + if( event.keyCode === 83 ) { + event.preventDefault(); + openNotes(); + } + }, false ); + + return { open: openNotes }; +})(); diff --git a/plugin/postmessage/example.html b/plugin/postmessage/example.html new file mode 100644 index 0000000..cc57a7b --- /dev/null +++ b/plugin/postmessage/example.html @@ -0,0 +1,39 @@ + + + + + +
    + + + +
    + + + + + diff --git a/plugin/postmessage/postmessage.js b/plugin/postmessage/postmessage.js new file mode 100644 index 0000000..d0f4140 --- /dev/null +++ b/plugin/postmessage/postmessage.js @@ -0,0 +1,42 @@ +/* + + simple postmessage plugin + + Useful when a reveal slideshow is inside an iframe. + It allows to call reveal methods from outside. + + Example: + var reveal = window.frames[0]; + + // Reveal.prev(); + reveal.postMessage(JSON.stringify({method: 'prev', args: []}), '*'); + // Reveal.next(); + reveal.postMessage(JSON.stringify({method: 'next', args: []}), '*'); + // Reveal.slide(2, 2); + reveal.postMessage(JSON.stringify({method: 'slide', args: [2,2]}), '*'); + + Add to the slideshow: + + dependencies: [ + ... + { src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } } + ] + +*/ + +(function (){ + + window.addEventListener( "message", function ( event ) { + var data = JSON.parse( event.data ), + method = data.method, + args = data.args; + + if( typeof Reveal[method] === 'function' ) { + Reveal[method].apply( Reveal, data.args ); + } + }, false); + +}()); + + + diff --git a/plugin/print-pdf/print-pdf.js b/plugin/print-pdf/print-pdf.js new file mode 100644 index 0000000..6b6cad6 --- /dev/null +++ b/plugin/print-pdf/print-pdf.js @@ -0,0 +1,44 @@ +/** + * phantomjs script for printing presentations to PDF. + * + * Example: + * phantomjs print-pdf.js "http://lab.hakim.se/reveal-js?print-pdf" reveal-demo.pdf + * + * By Manuel Bieh (https://github.com/manuelbieh) + */ + +// html2pdf.js +var page = new WebPage(); +var system = require( 'system' ); + +page.viewportSize = { + width: 1024, + height: 768 +}; + +page.paperSize = { + format: 'letter', + orientation: 'landscape', + margin: { + left: '0', + right: '0', + top: '0', + bottom: '0' + } +}; + +var revealFile = system.args[1] || 'index.html?print-pdf'; +var slideFile = system.args[2] || 'slides.pdf'; + +if( slideFile.match( /\.pdf$/gi ) === null ) { + slideFile += '.pdf'; +} + +console.log( 'Printing PDF...' ); + +page.open( revealFile, function( status ) { + console.log( 'Printed succesfully' ); + page.render( slideFile ); + phantom.exit(); +} ); + diff --git a/plugin/remotes/remotes.js b/plugin/remotes/remotes.js new file mode 100644 index 0000000..294c2b5 --- /dev/null +++ b/plugin/remotes/remotes.js @@ -0,0 +1,39 @@ +/** + * Touch-based remote controller for your presentation courtesy + * of the folks at http://remotes.io + */ + +(function(window){ + + /** + * Detects if we are dealing with a touch enabled device (with some false positives) + * Borrowed from modernizr: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touch.js + */ + var hasTouch = (function(){ + return ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch; + })(); + + /** + * Detects if notes are enable and the current page is opened inside an /iframe + * this prevents loading Remotes.io several times + */ + var isNotesAndIframe = (function(){ + return window.RevealNotes && !(self == top); + })(); + + if(!hasTouch && !isNotesAndIframe){ + head.ready( 'remotes.ne.min.js', function() { + new Remotes("preview") + .on("swipe-left", function(e){ Reveal.right(); }) + .on("swipe-right", function(e){ Reveal.left(); }) + .on("swipe-up", function(e){ Reveal.down(); }) + .on("swipe-down", function(e){ Reveal.up(); }) + .on("tap", function(e){ Reveal.next(); }) + .on("zoom-out", function(e){ Reveal.toggleOverview(true); }) + .on("zoom-in", function(e){ Reveal.toggleOverview(false); }) + ; + } ); + + head.js('https://raw.github.com/Remotes/Remotes/master/dist/remotes.ne.min.js'); + } +})(window); \ No newline at end of file diff --git a/plugin/search/search.js b/plugin/search/search.js new file mode 100644 index 0000000..ae6582e --- /dev/null +++ b/plugin/search/search.js @@ -0,0 +1,196 @@ +/* + * Handles finding a text string anywhere in the slides and showing the next occurrence to the user + * by navigatating to that slide and highlighting it. + * + * By Jon Snyder , February 2013 + */ + +var RevealSearch = (function() { + + var matchedSlides; + var currentMatchedIndex; + var searchboxDirty; + var myHilitor; + +// Original JavaScript code by Chirp Internet: www.chirp.com.au +// Please acknowledge use of this code by including this header. +// 2/2013 jon: modified regex to display any match, not restricted to word boundaries. + +function Hilitor(id, tag) +{ + + var targetNode = document.getElementById(id) || document.body; + var hiliteTag = tag || "EM"; + var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM|SPAN)$"); + var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"]; + var wordColor = []; + var colorIdx = 0; + var matchRegex = ""; + var matchingSlides = []; + + this.setRegex = function(input) + { + input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|"); + matchRegex = new RegExp("(" + input + ")","i"); + } + + this.getRegex = function() + { + return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " "); + } + + // recursively apply word highlighting + this.hiliteWords = function(node) + { + if(node == undefined || !node) return; + if(!matchRegex) return; + if(skipTags.test(node.nodeName)) return; + + if(node.hasChildNodes()) { + for(var i=0; i < node.childNodes.length; i++) + this.hiliteWords(node.childNodes[i]); + } + if(node.nodeType == 3) { // NODE_TEXT + if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) { + //find the slide's section element and save it in our list of matching slides + var secnode = node.parentNode; + while (secnode.nodeName != 'SECTION') { + secnode = secnode.parentNode; + } + + var slideIndex = Reveal.getIndices(secnode); + var slidelen = matchingSlides.length; + var alreadyAdded = false; + for (var i=0; i < slidelen; i++) { + if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) { + alreadyAdded = true; + } + } + if (! alreadyAdded) { + matchingSlides.push(slideIndex); + } + + if(!wordColor[regs[0].toLowerCase()]) { + wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length]; + } + + var match = document.createElement(hiliteTag); + match.appendChild(document.createTextNode(regs[0])); + match.style.backgroundColor = wordColor[regs[0].toLowerCase()]; + match.style.fontStyle = "inherit"; + match.style.color = "#000"; + + var after = node.splitText(regs.index); + after.nodeValue = after.nodeValue.substring(regs[0].length); + node.parentNode.insertBefore(match, after); + } + } + }; + + // remove highlighting + this.remove = function() + { + var arr = document.getElementsByTagName(hiliteTag); + while(arr.length && (el = arr[0])) { + el.parentNode.replaceChild(el.firstChild, el); + } + }; + + // start highlighting at target node + this.apply = function(input) + { + if(input == undefined || !input) return; + this.remove(); + this.setRegex(input); + this.hiliteWords(targetNode); + return matchingSlides; + }; + +} + + function openSearch() { + //ensure the search term input dialog is visible and has focus: + var inputbox = document.getElementById("searchinput"); + inputbox.style.display = "inline"; + inputbox.focus(); + inputbox.select(); + } + + function toggleSearch() { + var inputbox = document.getElementById("searchinput"); + if (inputbox.style.display !== "inline") { + openSearch(); + } + else { + inputbox.style.display = "none"; + myHilitor.remove(); + } + } + + function doSearch() { + //if there's been a change in the search term, perform a new search: + if (searchboxDirty) { + var searchstring = document.getElementById("searchinput").value; + + //find the keyword amongst the slides + myHilitor = new Hilitor("slidecontent"); + matchedSlides = myHilitor.apply(searchstring); + currentMatchedIndex = 0; + } + + //navigate to the next slide that has the keyword, wrapping to the first if necessary + if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) { + currentMatchedIndex = 0; + } + if (matchedSlides.length > currentMatchedIndex) { + Reveal.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v); + currentMatchedIndex++; + } + } + + var dom = {}; + dom.wrapper = document.querySelector( '.reveal' ); + + if( !dom.wrapper.querySelector( '.searchbox' ) ) { + var searchElement = document.createElement( 'div' ); + searchElement.id = "searchinputdiv"; + searchElement.classList.add( 'searchdiv' ); + searchElement.style.position = 'absolute'; + searchElement.style.top = '10px'; + searchElement.style.left = '10px'; + //embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/: + searchElement.innerHTML = ''; + dom.wrapper.appendChild( searchElement ); + } + + document.getElementById("searchbutton").addEventListener( 'click', function(event) { + doSearch(); + }, false ); + + document.getElementById("searchinput").addEventListener( 'keyup', function( event ) { + switch (event.keyCode) { + case 13: + event.preventDefault(); + doSearch(); + searchboxDirty = false; + break; + default: + searchboxDirty = true; + } + }, false ); + + // Open the search when the 's' key is hit (yes, this conflicts with the notes plugin, disabling for now) + /* + document.addEventListener( 'keydown', function( event ) { + // Disregard the event if the target is editable or a + // modifier is present + if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return; + + if( event.keyCode === 83 ) { + event.preventDefault(); + openSearch(); + } + }, false ); +*/ + return { open: openSearch }; +})(); diff --git a/plugin/zoom-js/zoom.js b/plugin/zoom-js/zoom.js new file mode 100644 index 0000000..b67ae16 --- /dev/null +++ b/plugin/zoom-js/zoom.js @@ -0,0 +1,256 @@ +// Custom reveal.js integration +(function(){ + var isEnabled = true; + + document.querySelector( '.reveal' ).addEventListener( 'mousedown', function( event ) { + if( event.altKey && isEnabled ) { + event.preventDefault(); + zoom.to({ element: event.target, pan: false }); + } + } ); + + Reveal.addEventListener( 'overviewshown', function() { isEnabled = false; } ); + Reveal.addEventListener( 'overviewhidden', function() { isEnabled = true; } ); +})(); + +/*! + * zoom.js 0.2 (modified version for use with reveal.js) + * http://lab.hakim.se/zoom-js + * MIT licensed + * + * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se + */ +var zoom = (function(){ + + // The current zoom level (scale) + var level = 1; + + // The current mouse position, used for panning + var mouseX = 0, + mouseY = 0; + + // Timeout before pan is activated + var panEngageTimeout = -1, + panUpdateInterval = -1; + + var currentOptions = null; + + // Check for transform support so that we can fallback otherwise + var supportsTransforms = 'WebkitTransform' in document.body.style || + 'MozTransform' in document.body.style || + 'msTransform' in document.body.style || + 'OTransform' in document.body.style || + 'transform' in document.body.style; + + if( supportsTransforms ) { + // The easing that will be applied when we zoom in/out + document.body.style.transition = 'transform 0.8s ease'; + document.body.style.OTransition = '-o-transform 0.8s ease'; + document.body.style.msTransition = '-ms-transform 0.8s ease'; + document.body.style.MozTransition = '-moz-transform 0.8s ease'; + document.body.style.WebkitTransition = '-webkit-transform 0.8s ease'; + } + + // Zoom out if the user hits escape + document.addEventListener( 'keyup', function( event ) { + if( level !== 1 && event.keyCode === 27 ) { + zoom.out(); + } + }, false ); + + // Monitor mouse movement for panning + document.addEventListener( 'mousemove', function( event ) { + if( level !== 1 ) { + mouseX = event.clientX; + mouseY = event.clientY; + } + }, false ); + + /** + * Applies the CSS required to zoom in, prioritizes use of CSS3 + * transforms but falls back on zoom for IE. + * + * @param {Number} pageOffsetX + * @param {Number} pageOffsetY + * @param {Number} elementOffsetX + * @param {Number} elementOffsetY + * @param {Number} scale + */ + function magnify( pageOffsetX, pageOffsetY, elementOffsetX, elementOffsetY, scale ) { + + if( supportsTransforms ) { + var origin = pageOffsetX +'px '+ pageOffsetY +'px', + transform = 'translate('+ -elementOffsetX +'px,'+ -elementOffsetY +'px) scale('+ scale +')'; + + document.body.style.transformOrigin = origin; + document.body.style.OTransformOrigin = origin; + document.body.style.msTransformOrigin = origin; + document.body.style.MozTransformOrigin = origin; + document.body.style.WebkitTransformOrigin = origin; + + document.body.style.transform = transform; + document.body.style.OTransform = transform; + document.body.style.msTransform = transform; + document.body.style.MozTransform = transform; + document.body.style.WebkitTransform = transform; + } + else { + // Reset all values + if( scale === 1 ) { + document.body.style.position = ''; + document.body.style.left = ''; + document.body.style.top = ''; + document.body.style.width = ''; + document.body.style.height = ''; + document.body.style.zoom = ''; + } + // Apply scale + else { + document.body.style.position = 'relative'; + document.body.style.left = ( - ( pageOffsetX + elementOffsetX ) / scale ) + 'px'; + document.body.style.top = ( - ( pageOffsetY + elementOffsetY ) / scale ) + 'px'; + document.body.style.width = ( scale * 100 ) + '%'; + document.body.style.height = ( scale * 100 ) + '%'; + document.body.style.zoom = scale; + } + } + + level = scale; + + if( level !== 1 && document.documentElement.classList ) { + document.documentElement.classList.add( 'zoomed' ); + } + else { + document.documentElement.classList.remove( 'zoomed' ); + } + } + + /** + * Pan the document when the mosue cursor approaches the edges + * of the window. + */ + function pan() { + var range = 0.12, + rangeX = window.innerWidth * range, + rangeY = window.innerHeight * range, + scrollOffset = getScrollOffset(); + + // Up + if( mouseY < rangeY ) { + window.scroll( scrollOffset.x, scrollOffset.y - ( 1 - ( mouseY / rangeY ) ) * ( 14 / level ) ); + } + // Down + else if( mouseY > window.innerHeight - rangeY ) { + window.scroll( scrollOffset.x, scrollOffset.y + ( 1 - ( window.innerHeight - mouseY ) / rangeY ) * ( 14 / level ) ); + } + + // Left + if( mouseX < rangeX ) { + window.scroll( scrollOffset.x - ( 1 - ( mouseX / rangeX ) ) * ( 14 / level ), scrollOffset.y ); + } + // Right + else if( mouseX > window.innerWidth - rangeX ) { + window.scroll( scrollOffset.x + ( 1 - ( window.innerWidth - mouseX ) / rangeX ) * ( 14 / level ), scrollOffset.y ); + } + } + + function getScrollOffset() { + return { + x: window.scrollX !== undefined ? window.scrollX : window.pageXOffset, + y: window.scrollY !== undefined ? window.scrollY : window.pageXYffset + } + } + + return { + /** + * Zooms in on either a rectangle or HTML element. + * + * @param {Object} options + * - element: HTML element to zoom in on + * OR + * - x/y: coordinates in non-transformed space to zoom in on + * - width/height: the portion of the screen to zoom in on + * - scale: can be used instead of width/height to explicitly set scale + */ + to: function( options ) { + // Due to an implementation limitation we can't zoom in + // to another element without zooming out first + if( level !== 1 ) { + zoom.out(); + } + else { + options.x = options.x || 0; + options.y = options.y || 0; + + // If an element is set, that takes precedence + if( !!options.element ) { + // Space around the zoomed in element to leave on screen + var padding = 20; + + options.width = options.element.getBoundingClientRect().width + ( padding * 2 ); + options.height = options.element.getBoundingClientRect().height + ( padding * 2 ); + options.x = options.element.getBoundingClientRect().left - padding; + options.y = options.element.getBoundingClientRect().top - padding; + } + + // If width/height values are set, calculate scale from those values + if( options.width !== undefined && options.height !== undefined ) { + options.scale = Math.max( Math.min( window.innerWidth / options.width, window.innerHeight / options.height ), 1 ); + } + + if( options.scale > 1 ) { + options.x *= options.scale; + options.y *= options.scale; + + var scrollOffset = getScrollOffset(); + + if( options.element ) { + scrollOffset.x -= ( window.innerWidth - ( options.width * options.scale ) ) / 2; + } + + magnify( scrollOffset.x, scrollOffset.y, options.x, options.y, options.scale ); + + if( options.pan !== false ) { + + // Wait with engaging panning as it may conflict with the + // zoom transition + panEngageTimeout = setTimeout( function() { + panUpdateInterval = setInterval( pan, 1000 / 60 ); + }, 800 ); + + } + } + + currentOptions = options; + } + }, + + /** + * Resets the document zoom state to its default. + */ + out: function() { + clearTimeout( panEngageTimeout ); + clearInterval( panUpdateInterval ); + + var scrollOffset = getScrollOffset(); + + if( currentOptions && currentOptions.element ) { + scrollOffset.x -= ( window.innerWidth - ( currentOptions.width * currentOptions.scale ) ) / 2; + } + + magnify( scrollOffset.x, scrollOffset.y, 0, 0, 1 ); + + level = 1; + }, + + // Alias + magnify: function( options ) { this.to( options ) }, + reset: function() { this.out() }, + + zoomLevel: function() { + return level; + } + } + +})(); + diff --git a/reveal b/reveal deleted file mode 160000 index 579aec9..0000000 --- a/reveal +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 579aec98aea8402b0cb08eb330fa716f5d9c9cbb