diff --git a/react-paris-or-angular-paris/.gitignore b/react-paris-or-angular-paris/.gitignore
new file mode 100644
index 0000000..3c3629e
--- /dev/null
+++ b/react-paris-or-angular-paris/.gitignore
@@ -0,0 +1 @@
+node_modules
diff --git a/react-paris-or-angular-paris/README.md b/react-paris-or-angular-paris/README.md
new file mode 100644
index 0000000..c3b8434
--- /dev/null
+++ b/react-paris-or-angular-paris/README.md
@@ -0,0 +1,44 @@
+# ReactJS Paris or AngularJS Paris
+
+Written for the [React-Europe hackathon](https://github.com/react-europe/hackathon). A simple game to guess whether a person has joined ReactJS or AngularJS meetup. Uses [Meetup API](http://www.meetup.com/meetup_api/).
+
+
+
+
+## Running Instructions
+
+```
+npm install
+npm start
+# open http://localhost:3000
+```
+
+## Credit
+
+**Author**: Shu Uesugi (shu@chibicode.com)
+
+**Photo Credit**: From [Unsplash](http://tumblr.unsplash.com/post/85385403379/download-by-louis-pellissier) ([CC0](http://creativecommons.org/publicdomain/zero/1.0/) License)
+
+**License**:
+
+The MIT License (MIT)
+
+Copyright (c) 2015 Shusaku Uesugi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/react-paris-or-angular-paris/app.js b/react-paris-or-angular-paris/app.js
new file mode 100644
index 0000000..24e34f9
--- /dev/null
+++ b/react-paris-or-angular-paris/app.js
@@ -0,0 +1,58 @@
+var express = require('express');
+var path = require('path');
+var favicon = require('serve-favicon');
+var logger = require('morgan');
+var cookieParser = require('cookie-parser');
+var bodyParser = require('body-parser');
+
+var routes = require('./routes/index');
+
+var app = express();
+
+// view engine setup
+app.set('views', path.join(__dirname, 'views'));
+app.set('view engine', 'jade');
+
+// uncomment after placing your favicon in /public
+//app.use(favicon(__dirname + '/public/favicon.ico'));
+app.use(logger('dev'));
+app.use(bodyParser.json());
+app.use(bodyParser.urlencoded({ extended: false }));
+app.use(cookieParser());
+app.use(express.static(path.join(__dirname, 'public')));
+
+app.use('/', routes);
+
+// catch 404 and forward to error handler
+app.use(function(req, res, next) {
+ var err = new Error('Not Found');
+ err.status = 404;
+ next(err);
+});
+
+// error handlers
+
+// development error handler
+// will print stacktrace
+if (app.get('env') === 'development') {
+ app.use(function(err, req, res, next) {
+ res.status(err.status || 500);
+ res.render('error', {
+ message: err.message,
+ error: err
+ });
+ });
+}
+
+// production error handler
+// no stacktraces leaked to user
+app.use(function(err, req, res, next) {
+ res.status(err.status || 500);
+ res.render('error', {
+ message: err.message,
+ error: {}
+ });
+});
+
+
+module.exports = app;
diff --git a/react-paris-or-angular-paris/bin/www b/react-paris-or-angular-paris/bin/www
new file mode 100755
index 0000000..e49de30
--- /dev/null
+++ b/react-paris-or-angular-paris/bin/www
@@ -0,0 +1,90 @@
+#!/usr/bin/env node
+
+/**
+ * Module dependencies.
+ */
+
+var app = require('../app');
+var debug = require('debug')('paris-react-angular:server');
+var http = require('http');
+
+/**
+ * Get port from environment and store in Express.
+ */
+
+var port = normalizePort(process.env.PORT || '3000');
+app.set('port', port);
+
+/**
+ * Create HTTP server.
+ */
+
+var server = http.createServer(app);
+
+/**
+ * Listen on provided port, on all network interfaces.
+ */
+
+server.listen(port);
+server.on('error', onError);
+server.on('listening', onListening);
+
+/**
+ * Normalize a port into a number, string, or false.
+ */
+
+function normalizePort(val) {
+ var port = parseInt(val, 10);
+
+ if (isNaN(port)) {
+ // named pipe
+ return val;
+ }
+
+ if (port >= 0) {
+ // port number
+ return port;
+ }
+
+ return false;
+}
+
+/**
+ * Event listener for HTTP server "error" event.
+ */
+
+function onError(error) {
+ if (error.syscall !== 'listen') {
+ throw error;
+ }
+
+ var bind = typeof port === 'string'
+ ? 'Pipe ' + port
+ : 'Port ' + port;
+
+ // handle specific listen errors with friendly messages
+ switch (error.code) {
+ case 'EACCES':
+ console.error(bind + ' requires elevated privileges');
+ process.exit(1);
+ break;
+ case 'EADDRINUSE':
+ console.error(bind + ' is already in use');
+ process.exit(1);
+ break;
+ default:
+ throw error;
+ }
+}
+
+/**
+ * Event listener for HTTP server "listening" event.
+ */
+
+function onListening() {
+ var addr = server.address();
+ var bind = typeof addr === 'string'
+ ? 'pipe ' + addr
+ : 'port ' + addr.port;
+ debug('Listening on ' + bind);
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/.bower.json b/react-paris-or-angular-paris/bower_components/spinkit/.bower.json
new file mode 100644
index 0000000..8679e47
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/.bower.json
@@ -0,0 +1,30 @@
+{
+ "name": "SpinKit",
+ "version": "1.0.1",
+ "homepage": "https://github.com/tobiasahlin/SpinKit",
+ "authors": [
+ "Tobias Ahlin"
+ ],
+ "description": "A collection of loading indicators animated with CSS",
+ "main": "css/spinkit.css",
+ "keywords": [
+ "css",
+ "scss",
+ "web"
+ ],
+ "license": "MIT",
+ "ignore": [
+ "**/.*",
+ "node_modules"
+ ],
+ "_release": "1.0.1",
+ "_resolution": {
+ "type": "version",
+ "tag": "1.0.1",
+ "commit": "8505d1baab43a842758cab11b103f6374644207a"
+ },
+ "_source": "git://github.com/tobiasahlin/SpinKit.git",
+ "_target": "~1.0.1",
+ "_originalSource": "spinkit",
+ "_direct": true
+}
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/CHANGELOG.md b/react-paris-or-angular-paris/bower_components/spinkit/CHANGELOG.md
new file mode 100644
index 0000000..4aa01ec
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/CHANGELOG.md
@@ -0,0 +1,3 @@
+# 1.0.1
+
+* Fix: Missed sass variables for background-color
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/CONTRIBUTING.md b/react-paris-or-angular-paris/bower_components/spinkit/CONTRIBUTING.md
new file mode 100644
index 0000000..1f6c569
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/CONTRIBUTING.md
@@ -0,0 +1,22 @@
+# Pull Request Guidelines
+
+We all love Pull Requests so if you have something you'd like to share with the community we'd be happy to help you out with contributing. But before you create your PR please read and understand the following. :heart:
+
+## Code
+
+If you're submitting a new animation, make sure that it looks identical in [all browsers that support CSS animations](http://caniuse.com/css-animation).
+
+The animation styles should be put in an [SCSS](http://sass-lang.com/) file which you place in [scss/spinners/](https://github.com/tobiasahlin/SpinKit/blob/master/scss/spinners). It must also be imported in [scss/spinkit.scss](https://github.com/tobiasahlin/SpinKit/blob/master/scss/spinkit.scss). Carefully look at the existing spinners to make sure you follow the same conventions and that you list an example on top of the page exactly like the other spinners (we extract this when generating the HTML files). Don't use any browser prefixes as this will be added automatically to the generated CSS files by [autoprefixer](https://github.com/postcss/autoprefixer).
+
+To generate the CSS and HTML files you need to have [node.js](http://nodejs.org/) installed on your system. After that you need to issue `npm install` from the SpinKit project directory to install [gulp](https://github.com/gulpjs/gulp) and other dependencies listed in `package.json`. After doing this you should be able to just call `gulp build` to generate the files. These files should be included in your pull requests.
+
+
+## Style
+
+Following the same code style makes all of our lives a bit easier, currently we ask that you use:
+
+- 2 spaces for indenting
+- No trailing spaces
+- One trailing newline at the end of each file
+
+If you use Sublime Text (or any other editor with the same capability) you can install EditorConfig (through [Sublime Package Control](https://sublime.wbond.net/installation)), which will pick up our project's `.editorconfig` and make your file conform to above rules on each save.
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/LICENSE b/react-paris-or-angular-paris/bower_components/spinkit/LICENSE
new file mode 100644
index 0000000..547f627
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Tobias Ahlin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/README.md b/react-paris-or-angular-paris/bower_components/spinkit/README.md
new file mode 100644
index 0000000..3221b73
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/README.md
@@ -0,0 +1,70 @@
+# [SpinKit](http://tobiasahlin.com/spinkit/)
+
+Simple loading spinners animated with CSS. See [demo](http://tobiasahlin.com/spinkit/).
+
+SpinKit uses CSS animations to create smooth and easily customizable animations. The goal is not to offer a solution that works in every browser—if you're supporting browsers that haven't implemented the CSS `animation` property (e.g. IE9 and below), you'll want to detect support for the `animation` property, and implement a fallback (see below.)
+
+## Usage
+
+### Regular CSS
+
+Grab the HTML and CSS for a spinner and include it in your project. Note that a hidden spinner (`opacity: 0`, or `visibility: hidden`) will still animate. After hiding a spinner, it's recommended to remove it from the DOM, set `display: none` or pause the animation by setting `animation-play-state: paused`.
+
+SpinKit can also be installed to your project with `bower`:
+
+```bash
+$ bower install spinkit
+```
+
+### SCSS
+
+If you're using SCSS in your project then you can include just the styles for the spinners that you want by adding the following to your main file:
+
+```scss
+@import '../bower_components/spinkit/scss/spinners/1-rotating-plane',
+ '../bower_components/spinkit/scss/spinners/3-wave';
+```
+
+Please note that you currently need to use [autoprefixer](https://github.com/postcss/autoprefixer) in your project if you want to support all browsers. If you're compiling your SCSS with gulp you can use [gulp-autoprefixer](https://github.com/sindresorhus/gulp-autoprefixer) or if you use grunt then [grunt-autoprefixer](https://github.com/nDmitry/grunt-autoprefixer) is a good choice.
+
+There are some variables that can be overridden if you use SCSS. The defaults are listed in [scss/_variables.scss](https://github.com/tobiasahlin/SpinKit/blob/master/scss/_variables.scss).
+
+## Old web browser compatibility
+
+With support for CSS animations in every current browser and [almost 90% of all browsers in use today](http://caniuse.com/#feat=css-animation), the need for GIF and JavaScript fallbacks is decreasing quickly. If you still need to support those last few then this section is for you.
+
+### Implementing a fallback spinner
+
+An easy way to provide a fallback animation is to check for support for the `animation` property, and replace the spinner with a GIF if it's not supported.
+
+```javascript
+function browserSupportsCSSProperty(propertyName) {
+ var elm = document.createElement('div');
+ propertyName = propertyName.toLowerCase();
+
+ if (elm.style[propertyName] != undefined)
+ return true;
+
+ var propertyNameCapital = propertyName.charAt(0).toUpperCase() + propertyName.substr(1),
+ domPrefixes = 'Webkit Moz ms O'.split(' ');
+
+ for (var i = 0; i < domPrefixes.length; i++) {
+ if (elm.style[domPrefixes[i] + propertyNameCapital] != undefined)
+ return true;
+ }
+
+ return false;
+}
+```
+
+Use it to check for `animation` support:
+
+```javascript
+if (!browserSupportsCSSProperty('animation')) {
+ // fallback…
+}
+```
+
+## Contributing
+
+See [CONTRIBUTING.md](https://github.com/tobiasahlin/SpinKit/blob/master/CONTRIBUTING.md) for details.
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/bower.json b/react-paris-or-angular-paris/bower_components/spinkit/bower.json
new file mode 100644
index 0000000..8d79c8e
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/bower.json
@@ -0,0 +1,20 @@
+{
+ "name": "SpinKit",
+ "version": "1.0.0",
+ "homepage": "https://github.com/tobiasahlin/SpinKit",
+ "authors": [
+ "Tobias Ahlin"
+ ],
+ "description": "A collection of loading indicators animated with CSS",
+ "main": "css/spinkit.css",
+ "keywords": [
+ "css",
+ "scss",
+ "web"
+ ],
+ "license": "MIT",
+ "ignore": [
+ "**/.*",
+ "node_modules"
+ ]
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinkit.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinkit.css
new file mode 100644
index 0000000..9521490
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinkit.css
@@ -0,0 +1,758 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-rotating-plane.sk-spinner {
+ width: 30px;
+ height: 30px;
+ background-color: #333;
+ margin: 0 auto;
+ -webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out;
+ animation: sk-rotatePlane 1.2s infinite ease-in-out; }
+
+@-webkit-keyframes sk-rotatePlane {
+ 0% {
+ -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(0deg) rotateY(0deg); }
+
+ 50% {
+ -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); }
+
+ 100% {
+ -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+ transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } }
+
+@keyframes sk-rotatePlane {
+ 0% {
+ -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(0deg) rotateY(0deg); }
+
+ 50% {
+ -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); }
+
+ 100% {
+ -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+ transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } }
+
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-double-bounce.sk-spinner {
+ width: 40px;
+ height: 40px;
+ position: relative;
+ margin: 0 auto; }
+.sk-spinner-double-bounce .sk-double-bounce1, .sk-spinner-double-bounce .sk-double-bounce2 {
+ width: 100%;
+ height: 100%;
+ border-radius: 50%;
+ background-color: #333;
+ opacity: 0.6;
+ position: absolute;
+ top: 0;
+ left: 0;
+ -webkit-animation: sk-doubleBounce 2s infinite ease-in-out;
+ animation: sk-doubleBounce 2s infinite ease-in-out; }
+.sk-spinner-double-bounce .sk-double-bounce2 {
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s; }
+
+@-webkit-keyframes sk-doubleBounce {
+ 0%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+@keyframes sk-doubleBounce {
+ 0%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-wave.sk-spinner {
+ margin: 0 auto;
+ width: 50px;
+ height: 30px;
+ text-align: center;
+ font-size: 10px; }
+.sk-spinner-wave div {
+ background-color: #333;
+ height: 100%;
+ width: 6px;
+ display: inline-block;
+ -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
+ animation: sk-waveStretchDelay 1.2s infinite ease-in-out; }
+.sk-spinner-wave .sk-rect2 {
+ -webkit-animation-delay: -1.1s;
+ animation-delay: -1.1s; }
+.sk-spinner-wave .sk-rect3 {
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s; }
+.sk-spinner-wave .sk-rect4 {
+ -webkit-animation-delay: -0.9s;
+ animation-delay: -0.9s; }
+.sk-spinner-wave .sk-rect5 {
+ -webkit-animation-delay: -0.8s;
+ animation-delay: -0.8s; }
+
+@-webkit-keyframes sk-waveStretchDelay {
+ 0%, 40%, 100% {
+ -webkit-transform: scaleY(0.4);
+ transform: scaleY(0.4); }
+
+ 20% {
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1); } }
+
+@keyframes sk-waveStretchDelay {
+ 0%, 40%, 100% {
+ -webkit-transform: scaleY(0.4);
+ transform: scaleY(0.4); }
+
+ 20% {
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1); } }
+
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-wandering-cubes.sk-spinner {
+ margin: 0 auto;
+ width: 32px;
+ height: 32px;
+ position: relative; }
+.sk-spinner-wandering-cubes .sk-cube1, .sk-spinner-wandering-cubes .sk-cube2 {
+ background-color: #333;
+ width: 10px;
+ height: 10px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ -webkit-animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;
+ animation: sk-wanderingCubeMove 1.8s infinite ease-in-out; }
+.sk-spinner-wandering-cubes .sk-cube2 {
+ -webkit-animation-delay: -0.9s;
+ animation-delay: -0.9s; }
+
+@-webkit-keyframes sk-wanderingCubeMove {
+ 25% {
+ -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
+ transform: translateX(42px) rotate(-90deg) scale(0.5); }
+
+ 50% {
+ /* Hack to make FF rotate in the right direction */
+ -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
+ transform: translateX(42px) translateY(42px) rotate(-179deg); }
+
+ 50.1% {
+ -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
+ transform: translateX(42px) translateY(42px) rotate(-180deg); }
+
+ 75% {
+ -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
+ transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); }
+
+ 100% {
+ -webkit-transform: rotate(-360deg);
+ transform: rotate(-360deg); } }
+
+@keyframes sk-wanderingCubeMove {
+ 25% {
+ -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
+ transform: translateX(42px) rotate(-90deg) scale(0.5); }
+
+ 50% {
+ /* Hack to make FF rotate in the right direction */
+ -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
+ transform: translateX(42px) translateY(42px) rotate(-179deg); }
+
+ 50.1% {
+ -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
+ transform: translateX(42px) translateY(42px) rotate(-180deg); }
+
+ 75% {
+ -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
+ transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); }
+
+ 100% {
+ -webkit-transform: rotate(-360deg);
+ transform: rotate(-360deg); } }
+
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-pulse.sk-spinner {
+ width: 40px;
+ height: 40px;
+ margin: 0 auto;
+ background-color: #333;
+ border-radius: 100%;
+ -webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out;
+ animation: sk-pulseScaleOut 1s infinite ease-in-out; }
+
+@-webkit-keyframes sk-pulseScaleOut {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0; } }
+
+@keyframes sk-pulseScaleOut {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0; } }
+
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-chasing-dots.sk-spinner {
+ margin: 0 auto;
+ width: 40px;
+ height: 40px;
+ position: relative;
+ text-align: center;
+ -webkit-animation: sk-chasingDotsRotate 2s infinite linear;
+ animation: sk-chasingDotsRotate 2s infinite linear; }
+.sk-spinner-chasing-dots .sk-dot1, .sk-spinner-chasing-dots .sk-dot2 {
+ width: 60%;
+ height: 60%;
+ display: inline-block;
+ position: absolute;
+ top: 0;
+ background-color: #333;
+ border-radius: 100%;
+ -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out;
+ animation: sk-chasingDotsBounce 2s infinite ease-in-out; }
+.sk-spinner-chasing-dots .sk-dot2 {
+ top: auto;
+ bottom: 0px;
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s; }
+
+@-webkit-keyframes sk-chasingDotsRotate {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
+
+@keyframes sk-chasingDotsRotate {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
+
+@-webkit-keyframes sk-chasingDotsBounce {
+ 0%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+@keyframes sk-chasingDotsBounce {
+ 0%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-three-bounce.sk-spinner {
+ margin: 0 auto;
+ width: 70px;
+ text-align: center; }
+.sk-spinner-three-bounce div {
+ width: 18px;
+ height: 18px;
+ background-color: #333;
+ border-radius: 100%;
+ display: inline-block;
+ -webkit-animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
+ animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
+ /* Prevent first frame from flickering when animation starts */
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both; }
+.sk-spinner-three-bounce .sk-bounce1 {
+ -webkit-animation-delay: -0.32s;
+ animation-delay: -0.32s; }
+.sk-spinner-three-bounce .sk-bounce2 {
+ -webkit-animation-delay: -0.16s;
+ animation-delay: -0.16s; }
+
+@-webkit-keyframes sk-threeBounceDelay {
+ 0%, 80%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 40% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+@keyframes sk-threeBounceDelay {
+ 0%, 80%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 40% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+.sk-spinner-circle.sk-spinner {
+ margin: 0 auto;
+ width: 22px;
+ height: 22px;
+ position: relative; }
+.sk-spinner-circle .sk-circle {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0; }
+.sk-spinner-circle .sk-circle:before {
+ content: '';
+ display: block;
+ margin: 0 auto;
+ width: 20%;
+ height: 20%;
+ background-color: #333;
+ border-radius: 100%;
+ -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
+ animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
+ /* Prevent first frame from flickering when animation starts */
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both; }
+.sk-spinner-circle .sk-circle2 {
+ -webkit-transform: rotate(30deg);
+ -ms-transform: rotate(30deg);
+ transform: rotate(30deg); }
+.sk-spinner-circle .sk-circle3 {
+ -webkit-transform: rotate(60deg);
+ -ms-transform: rotate(60deg);
+ transform: rotate(60deg); }
+.sk-spinner-circle .sk-circle4 {
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg); }
+.sk-spinner-circle .sk-circle5 {
+ -webkit-transform: rotate(120deg);
+ -ms-transform: rotate(120deg);
+ transform: rotate(120deg); }
+.sk-spinner-circle .sk-circle6 {
+ -webkit-transform: rotate(150deg);
+ -ms-transform: rotate(150deg);
+ transform: rotate(150deg); }
+.sk-spinner-circle .sk-circle7 {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg); }
+.sk-spinner-circle .sk-circle8 {
+ -webkit-transform: rotate(210deg);
+ -ms-transform: rotate(210deg);
+ transform: rotate(210deg); }
+.sk-spinner-circle .sk-circle9 {
+ -webkit-transform: rotate(240deg);
+ -ms-transform: rotate(240deg);
+ transform: rotate(240deg); }
+.sk-spinner-circle .sk-circle10 {
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ transform: rotate(270deg); }
+.sk-spinner-circle .sk-circle11 {
+ -webkit-transform: rotate(300deg);
+ -ms-transform: rotate(300deg);
+ transform: rotate(300deg); }
+.sk-spinner-circle .sk-circle12 {
+ -webkit-transform: rotate(330deg);
+ -ms-transform: rotate(330deg);
+ transform: rotate(330deg); }
+.sk-spinner-circle .sk-circle2:before {
+ -webkit-animation-delay: -1.1s;
+ animation-delay: -1.1s; }
+.sk-spinner-circle .sk-circle3:before {
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s; }
+.sk-spinner-circle .sk-circle4:before {
+ -webkit-animation-delay: -0.9s;
+ animation-delay: -0.9s; }
+.sk-spinner-circle .sk-circle5:before {
+ -webkit-animation-delay: -0.8s;
+ animation-delay: -0.8s; }
+.sk-spinner-circle .sk-circle6:before {
+ -webkit-animation-delay: -0.7s;
+ animation-delay: -0.7s; }
+.sk-spinner-circle .sk-circle7:before {
+ -webkit-animation-delay: -0.6s;
+ animation-delay: -0.6s; }
+.sk-spinner-circle .sk-circle8:before {
+ -webkit-animation-delay: -0.5s;
+ animation-delay: -0.5s; }
+.sk-spinner-circle .sk-circle9:before {
+ -webkit-animation-delay: -0.4s;
+ animation-delay: -0.4s; }
+.sk-spinner-circle .sk-circle10:before {
+ -webkit-animation-delay: -0.3s;
+ animation-delay: -0.3s; }
+.sk-spinner-circle .sk-circle11:before {
+ -webkit-animation-delay: -0.2s;
+ animation-delay: -0.2s; }
+.sk-spinner-circle .sk-circle12:before {
+ -webkit-animation-delay: -0.1s;
+ animation-delay: -0.1s; }
+
+@-webkit-keyframes sk-circleBounceDelay {
+ 0%, 80%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 40% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+@keyframes sk-circleBounceDelay {
+ 0%, 80%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 40% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+.sk-spinner-cube-grid {
+ /*
+ * Spinner positions
+ * 1 2 3
+ * 4 5 6
+ * 7 8 9
+ */ }
+ .sk-spinner-cube-grid.sk-spinner {
+ width: 30px;
+ height: 30px;
+ margin: 0 auto; }
+ .sk-spinner-cube-grid .sk-cube {
+ width: 33%;
+ height: 33%;
+ background-color: #333;
+ float: left;
+ -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
+ animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(1) {
+ -webkit-animation-delay: 0.2s;
+ animation-delay: 0.2s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(2) {
+ -webkit-animation-delay: 0.3s;
+ animation-delay: 0.3s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(3) {
+ -webkit-animation-delay: 0.4s;
+ animation-delay: 0.4s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(4) {
+ -webkit-animation-delay: 0.1s;
+ animation-delay: 0.1s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(5) {
+ -webkit-animation-delay: 0.2s;
+ animation-delay: 0.2s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(6) {
+ -webkit-animation-delay: 0.3s;
+ animation-delay: 0.3s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(7) {
+ -webkit-animation-delay: 0s;
+ animation-delay: 0s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(8) {
+ -webkit-animation-delay: 0.1s;
+ animation-delay: 0.1s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(9) {
+ -webkit-animation-delay: 0.2s;
+ animation-delay: 0.2s; }
+
+@-webkit-keyframes sk-cubeGridScaleDelay {
+ 0%, 70%, 100% {
+ -webkit-transform: scale3D(1, 1, 1);
+ transform: scale3D(1, 1, 1); }
+
+ 35% {
+ -webkit-transform: scale3D(0, 0, 1);
+ transform: scale3D(0, 0, 1); } }
+
+@keyframes sk-cubeGridScaleDelay {
+ 0%, 70%, 100% {
+ -webkit-transform: scale3D(1, 1, 1);
+ transform: scale3D(1, 1, 1); }
+
+ 35% {
+ -webkit-transform: scale3D(0, 0, 1);
+ transform: scale3D(0, 0, 1); } }
+
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ */
+.sk-spinner-wordpress.sk-spinner {
+ background-color: #333;
+ width: 30px;
+ height: 30px;
+ border-radius: 30px;
+ position: relative;
+ margin: 0 auto;
+ -webkit-animation: sk-innerCircle 1s linear infinite;
+ animation: sk-innerCircle 1s linear infinite; }
+.sk-spinner-wordpress .sk-inner-circle {
+ display: block;
+ background-color: #fff;
+ width: 8px;
+ height: 8px;
+ position: absolute;
+ border-radius: 8px;
+ top: 5px;
+ left: 5px; }
+
+@-webkit-keyframes sk-innerCircle {
+ 0% {
+ -webkit-transform: rotate(0);
+ transform: rotate(0); }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
+
+@keyframes sk-innerCircle {
+ 0% {
+ -webkit-transform: rotate(0);
+ transform: rotate(0); }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
+
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+.sk-spinner-fading-circle.sk-spinner {
+ margin: 0 auto;
+ width: 22px;
+ height: 22px;
+ position: relative; }
+.sk-spinner-fading-circle .sk-circle {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0; }
+.sk-spinner-fading-circle .sk-circle:before {
+ content: '';
+ display: block;
+ margin: 0 auto;
+ width: 18%;
+ height: 18%;
+ background-color: #333;
+ border-radius: 100%;
+ -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
+ animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
+ /* Prevent first frame from flickering when animation starts */
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both; }
+.sk-spinner-fading-circle .sk-circle2 {
+ -webkit-transform: rotate(30deg);
+ -ms-transform: rotate(30deg);
+ transform: rotate(30deg); }
+.sk-spinner-fading-circle .sk-circle3 {
+ -webkit-transform: rotate(60deg);
+ -ms-transform: rotate(60deg);
+ transform: rotate(60deg); }
+.sk-spinner-fading-circle .sk-circle4 {
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg); }
+.sk-spinner-fading-circle .sk-circle5 {
+ -webkit-transform: rotate(120deg);
+ -ms-transform: rotate(120deg);
+ transform: rotate(120deg); }
+.sk-spinner-fading-circle .sk-circle6 {
+ -webkit-transform: rotate(150deg);
+ -ms-transform: rotate(150deg);
+ transform: rotate(150deg); }
+.sk-spinner-fading-circle .sk-circle7 {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg); }
+.sk-spinner-fading-circle .sk-circle8 {
+ -webkit-transform: rotate(210deg);
+ -ms-transform: rotate(210deg);
+ transform: rotate(210deg); }
+.sk-spinner-fading-circle .sk-circle9 {
+ -webkit-transform: rotate(240deg);
+ -ms-transform: rotate(240deg);
+ transform: rotate(240deg); }
+.sk-spinner-fading-circle .sk-circle10 {
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ transform: rotate(270deg); }
+.sk-spinner-fading-circle .sk-circle11 {
+ -webkit-transform: rotate(300deg);
+ -ms-transform: rotate(300deg);
+ transform: rotate(300deg); }
+.sk-spinner-fading-circle .sk-circle12 {
+ -webkit-transform: rotate(330deg);
+ -ms-transform: rotate(330deg);
+ transform: rotate(330deg); }
+.sk-spinner-fading-circle .sk-circle2:before {
+ -webkit-animation-delay: -1.1s;
+ animation-delay: -1.1s; }
+.sk-spinner-fading-circle .sk-circle3:before {
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s; }
+.sk-spinner-fading-circle .sk-circle4:before {
+ -webkit-animation-delay: -0.9s;
+ animation-delay: -0.9s; }
+.sk-spinner-fading-circle .sk-circle5:before {
+ -webkit-animation-delay: -0.8s;
+ animation-delay: -0.8s; }
+.sk-spinner-fading-circle .sk-circle6:before {
+ -webkit-animation-delay: -0.7s;
+ animation-delay: -0.7s; }
+.sk-spinner-fading-circle .sk-circle7:before {
+ -webkit-animation-delay: -0.6s;
+ animation-delay: -0.6s; }
+.sk-spinner-fading-circle .sk-circle8:before {
+ -webkit-animation-delay: -0.5s;
+ animation-delay: -0.5s; }
+.sk-spinner-fading-circle .sk-circle9:before {
+ -webkit-animation-delay: -0.4s;
+ animation-delay: -0.4s; }
+.sk-spinner-fading-circle .sk-circle10:before {
+ -webkit-animation-delay: -0.3s;
+ animation-delay: -0.3s; }
+.sk-spinner-fading-circle .sk-circle11:before {
+ -webkit-animation-delay: -0.2s;
+ animation-delay: -0.2s; }
+.sk-spinner-fading-circle .sk-circle12:before {
+ -webkit-animation-delay: -0.1s;
+ animation-delay: -0.1s; }
+
+@-webkit-keyframes sk-circleFadeDelay {
+ 0%, 39%, 100% {
+ opacity: 0; }
+
+ 40% {
+ opacity: 1; } }
+
+@keyframes sk-circleFadeDelay {
+ 0%, 39%, 100% {
+ opacity: 0; }
+
+ 40% {
+ opacity: 1; } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/1-rotating-plane.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/1-rotating-plane.css
new file mode 100644
index 0000000..5468e8a
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/1-rotating-plane.css
@@ -0,0 +1,39 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-rotating-plane.sk-spinner {
+ width: 30px;
+ height: 30px;
+ background-color: #333;
+ margin: 0 auto;
+ -webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out;
+ animation: sk-rotatePlane 1.2s infinite ease-in-out; }
+
+@-webkit-keyframes sk-rotatePlane {
+ 0% {
+ -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(0deg) rotateY(0deg); }
+
+ 50% {
+ -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); }
+
+ 100% {
+ -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+ transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } }
+
+@keyframes sk-rotatePlane {
+ 0% {
+ -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(0deg) rotateY(0deg); }
+
+ 50% {
+ -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); }
+
+ 100% {
+ -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+ transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/10-fading-circle.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/10-fading-circle.css
new file mode 100644
index 0000000..0299824
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/10-fading-circle.css
@@ -0,0 +1,134 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+.sk-spinner-fading-circle.sk-spinner {
+ margin: 0 auto;
+ width: 22px;
+ height: 22px;
+ position: relative; }
+.sk-spinner-fading-circle .sk-circle {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0; }
+.sk-spinner-fading-circle .sk-circle:before {
+ content: '';
+ display: block;
+ margin: 0 auto;
+ width: 18%;
+ height: 18%;
+ background-color: #333;
+ border-radius: 100%;
+ -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
+ animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
+ /* Prevent first frame from flickering when animation starts */
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both; }
+.sk-spinner-fading-circle .sk-circle2 {
+ -webkit-transform: rotate(30deg);
+ -ms-transform: rotate(30deg);
+ transform: rotate(30deg); }
+.sk-spinner-fading-circle .sk-circle3 {
+ -webkit-transform: rotate(60deg);
+ -ms-transform: rotate(60deg);
+ transform: rotate(60deg); }
+.sk-spinner-fading-circle .sk-circle4 {
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg); }
+.sk-spinner-fading-circle .sk-circle5 {
+ -webkit-transform: rotate(120deg);
+ -ms-transform: rotate(120deg);
+ transform: rotate(120deg); }
+.sk-spinner-fading-circle .sk-circle6 {
+ -webkit-transform: rotate(150deg);
+ -ms-transform: rotate(150deg);
+ transform: rotate(150deg); }
+.sk-spinner-fading-circle .sk-circle7 {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg); }
+.sk-spinner-fading-circle .sk-circle8 {
+ -webkit-transform: rotate(210deg);
+ -ms-transform: rotate(210deg);
+ transform: rotate(210deg); }
+.sk-spinner-fading-circle .sk-circle9 {
+ -webkit-transform: rotate(240deg);
+ -ms-transform: rotate(240deg);
+ transform: rotate(240deg); }
+.sk-spinner-fading-circle .sk-circle10 {
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ transform: rotate(270deg); }
+.sk-spinner-fading-circle .sk-circle11 {
+ -webkit-transform: rotate(300deg);
+ -ms-transform: rotate(300deg);
+ transform: rotate(300deg); }
+.sk-spinner-fading-circle .sk-circle12 {
+ -webkit-transform: rotate(330deg);
+ -ms-transform: rotate(330deg);
+ transform: rotate(330deg); }
+.sk-spinner-fading-circle .sk-circle2:before {
+ -webkit-animation-delay: -1.1s;
+ animation-delay: -1.1s; }
+.sk-spinner-fading-circle .sk-circle3:before {
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s; }
+.sk-spinner-fading-circle .sk-circle4:before {
+ -webkit-animation-delay: -0.9s;
+ animation-delay: -0.9s; }
+.sk-spinner-fading-circle .sk-circle5:before {
+ -webkit-animation-delay: -0.8s;
+ animation-delay: -0.8s; }
+.sk-spinner-fading-circle .sk-circle6:before {
+ -webkit-animation-delay: -0.7s;
+ animation-delay: -0.7s; }
+.sk-spinner-fading-circle .sk-circle7:before {
+ -webkit-animation-delay: -0.6s;
+ animation-delay: -0.6s; }
+.sk-spinner-fading-circle .sk-circle8:before {
+ -webkit-animation-delay: -0.5s;
+ animation-delay: -0.5s; }
+.sk-spinner-fading-circle .sk-circle9:before {
+ -webkit-animation-delay: -0.4s;
+ animation-delay: -0.4s; }
+.sk-spinner-fading-circle .sk-circle10:before {
+ -webkit-animation-delay: -0.3s;
+ animation-delay: -0.3s; }
+.sk-spinner-fading-circle .sk-circle11:before {
+ -webkit-animation-delay: -0.2s;
+ animation-delay: -0.2s; }
+.sk-spinner-fading-circle .sk-circle12:before {
+ -webkit-animation-delay: -0.1s;
+ animation-delay: -0.1s; }
+
+@-webkit-keyframes sk-circleFadeDelay {
+ 0%, 39%, 100% {
+ opacity: 0; }
+
+ 40% {
+ opacity: 1; } }
+
+@keyframes sk-circleFadeDelay {
+ 0%, 39%, 100% {
+ opacity: 0; }
+
+ 40% {
+ opacity: 1; } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/2-double-bounce.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/2-double-bounce.css
new file mode 100644
index 0000000..b7f0f9d
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/2-double-bounce.css
@@ -0,0 +1,46 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-double-bounce.sk-spinner {
+ width: 40px;
+ height: 40px;
+ position: relative;
+ margin: 0 auto; }
+.sk-spinner-double-bounce .sk-double-bounce1, .sk-spinner-double-bounce .sk-double-bounce2 {
+ width: 100%;
+ height: 100%;
+ border-radius: 50%;
+ background-color: #333;
+ opacity: 0.6;
+ position: absolute;
+ top: 0;
+ left: 0;
+ -webkit-animation: sk-doubleBounce 2s infinite ease-in-out;
+ animation: sk-doubleBounce 2s infinite ease-in-out; }
+.sk-spinner-double-bounce .sk-double-bounce2 {
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s; }
+
+@-webkit-keyframes sk-doubleBounce {
+ 0%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+@keyframes sk-doubleBounce {
+ 0%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/3-wave.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/3-wave.css
new file mode 100644
index 0000000..41be5d5
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/3-wave.css
@@ -0,0 +1,55 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-wave.sk-spinner {
+ margin: 0 auto;
+ width: 50px;
+ height: 30px;
+ text-align: center;
+ font-size: 10px; }
+.sk-spinner-wave div {
+ background-color: #333;
+ height: 100%;
+ width: 6px;
+ display: inline-block;
+ -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
+ animation: sk-waveStretchDelay 1.2s infinite ease-in-out; }
+.sk-spinner-wave .sk-rect2 {
+ -webkit-animation-delay: -1.1s;
+ animation-delay: -1.1s; }
+.sk-spinner-wave .sk-rect3 {
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s; }
+.sk-spinner-wave .sk-rect4 {
+ -webkit-animation-delay: -0.9s;
+ animation-delay: -0.9s; }
+.sk-spinner-wave .sk-rect5 {
+ -webkit-animation-delay: -0.8s;
+ animation-delay: -0.8s; }
+
+@-webkit-keyframes sk-waveStretchDelay {
+ 0%, 40%, 100% {
+ -webkit-transform: scaleY(0.4);
+ transform: scaleY(0.4); }
+
+ 20% {
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1); } }
+
+@keyframes sk-waveStretchDelay {
+ 0%, 40%, 100% {
+ -webkit-transform: scaleY(0.4);
+ transform: scaleY(0.4); }
+
+ 20% {
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1); } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/4-wandering-cubes.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/4-wandering-cubes.css
new file mode 100644
index 0000000..8b030cb
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/4-wandering-cubes.css
@@ -0,0 +1,70 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-wandering-cubes.sk-spinner {
+ margin: 0 auto;
+ width: 32px;
+ height: 32px;
+ position: relative; }
+.sk-spinner-wandering-cubes .sk-cube1, .sk-spinner-wandering-cubes .sk-cube2 {
+ background-color: #333;
+ width: 10px;
+ height: 10px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ -webkit-animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;
+ animation: sk-wanderingCubeMove 1.8s infinite ease-in-out; }
+.sk-spinner-wandering-cubes .sk-cube2 {
+ -webkit-animation-delay: -0.9s;
+ animation-delay: -0.9s; }
+
+@-webkit-keyframes sk-wanderingCubeMove {
+ 25% {
+ -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
+ transform: translateX(42px) rotate(-90deg) scale(0.5); }
+
+ 50% {
+ /* Hack to make FF rotate in the right direction */
+ -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
+ transform: translateX(42px) translateY(42px) rotate(-179deg); }
+
+ 50.1% {
+ -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
+ transform: translateX(42px) translateY(42px) rotate(-180deg); }
+
+ 75% {
+ -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
+ transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); }
+
+ 100% {
+ -webkit-transform: rotate(-360deg);
+ transform: rotate(-360deg); } }
+
+@keyframes sk-wanderingCubeMove {
+ 25% {
+ -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
+ transform: translateX(42px) rotate(-90deg) scale(0.5); }
+
+ 50% {
+ /* Hack to make FF rotate in the right direction */
+ -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
+ transform: translateX(42px) translateY(42px) rotate(-179deg); }
+
+ 50.1% {
+ -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
+ transform: translateX(42px) translateY(42px) rotate(-180deg); }
+
+ 75% {
+ -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
+ transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); }
+
+ 100% {
+ -webkit-transform: rotate(-360deg);
+ transform: rotate(-360deg); } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/5-pulse.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/5-pulse.css
new file mode 100644
index 0000000..d02372d
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/5-pulse.css
@@ -0,0 +1,34 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-pulse.sk-spinner {
+ width: 40px;
+ height: 40px;
+ margin: 0 auto;
+ background-color: #333;
+ border-radius: 100%;
+ -webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out;
+ animation: sk-pulseScaleOut 1s infinite ease-in-out; }
+
+@-webkit-keyframes sk-pulseScaleOut {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0; } }
+
+@keyframes sk-pulseScaleOut {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0; } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/6-chasing-dots.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/6-chasing-dots.css
new file mode 100644
index 0000000..7b26f3c
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/6-chasing-dots.css
@@ -0,0 +1,60 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-chasing-dots.sk-spinner {
+ margin: 0 auto;
+ width: 40px;
+ height: 40px;
+ position: relative;
+ text-align: center;
+ -webkit-animation: sk-chasingDotsRotate 2s infinite linear;
+ animation: sk-chasingDotsRotate 2s infinite linear; }
+.sk-spinner-chasing-dots .sk-dot1, .sk-spinner-chasing-dots .sk-dot2 {
+ width: 60%;
+ height: 60%;
+ display: inline-block;
+ position: absolute;
+ top: 0;
+ background-color: #333;
+ border-radius: 100%;
+ -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out;
+ animation: sk-chasingDotsBounce 2s infinite ease-in-out; }
+.sk-spinner-chasing-dots .sk-dot2 {
+ top: auto;
+ bottom: 0px;
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s; }
+
+@-webkit-keyframes sk-chasingDotsRotate {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
+
+@keyframes sk-chasingDotsRotate {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
+
+@-webkit-keyframes sk-chasingDotsBounce {
+ 0%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+@keyframes sk-chasingDotsBounce {
+ 0%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/7-three-bounce.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/7-three-bounce.css
new file mode 100644
index 0000000..b4e18f9
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/7-three-bounce.css
@@ -0,0 +1,49 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+.sk-spinner-three-bounce.sk-spinner {
+ margin: 0 auto;
+ width: 70px;
+ text-align: center; }
+.sk-spinner-three-bounce div {
+ width: 18px;
+ height: 18px;
+ background-color: #333;
+ border-radius: 100%;
+ display: inline-block;
+ -webkit-animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
+ animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
+ /* Prevent first frame from flickering when animation starts */
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both; }
+.sk-spinner-three-bounce .sk-bounce1 {
+ -webkit-animation-delay: -0.32s;
+ animation-delay: -0.32s; }
+.sk-spinner-three-bounce .sk-bounce2 {
+ -webkit-animation-delay: -0.16s;
+ animation-delay: -0.16s; }
+
+@-webkit-keyframes sk-threeBounceDelay {
+ 0%, 80%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 40% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+@keyframes sk-threeBounceDelay {
+ 0%, 80%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 40% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/8-circle.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/8-circle.css
new file mode 100644
index 0000000..b8d1cbc
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/8-circle.css
@@ -0,0 +1,138 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+.sk-spinner-circle.sk-spinner {
+ margin: 0 auto;
+ width: 22px;
+ height: 22px;
+ position: relative; }
+.sk-spinner-circle .sk-circle {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0; }
+.sk-spinner-circle .sk-circle:before {
+ content: '';
+ display: block;
+ margin: 0 auto;
+ width: 20%;
+ height: 20%;
+ background-color: #333;
+ border-radius: 100%;
+ -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
+ animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
+ /* Prevent first frame from flickering when animation starts */
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both; }
+.sk-spinner-circle .sk-circle2 {
+ -webkit-transform: rotate(30deg);
+ -ms-transform: rotate(30deg);
+ transform: rotate(30deg); }
+.sk-spinner-circle .sk-circle3 {
+ -webkit-transform: rotate(60deg);
+ -ms-transform: rotate(60deg);
+ transform: rotate(60deg); }
+.sk-spinner-circle .sk-circle4 {
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg); }
+.sk-spinner-circle .sk-circle5 {
+ -webkit-transform: rotate(120deg);
+ -ms-transform: rotate(120deg);
+ transform: rotate(120deg); }
+.sk-spinner-circle .sk-circle6 {
+ -webkit-transform: rotate(150deg);
+ -ms-transform: rotate(150deg);
+ transform: rotate(150deg); }
+.sk-spinner-circle .sk-circle7 {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg); }
+.sk-spinner-circle .sk-circle8 {
+ -webkit-transform: rotate(210deg);
+ -ms-transform: rotate(210deg);
+ transform: rotate(210deg); }
+.sk-spinner-circle .sk-circle9 {
+ -webkit-transform: rotate(240deg);
+ -ms-transform: rotate(240deg);
+ transform: rotate(240deg); }
+.sk-spinner-circle .sk-circle10 {
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ transform: rotate(270deg); }
+.sk-spinner-circle .sk-circle11 {
+ -webkit-transform: rotate(300deg);
+ -ms-transform: rotate(300deg);
+ transform: rotate(300deg); }
+.sk-spinner-circle .sk-circle12 {
+ -webkit-transform: rotate(330deg);
+ -ms-transform: rotate(330deg);
+ transform: rotate(330deg); }
+.sk-spinner-circle .sk-circle2:before {
+ -webkit-animation-delay: -1.1s;
+ animation-delay: -1.1s; }
+.sk-spinner-circle .sk-circle3:before {
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s; }
+.sk-spinner-circle .sk-circle4:before {
+ -webkit-animation-delay: -0.9s;
+ animation-delay: -0.9s; }
+.sk-spinner-circle .sk-circle5:before {
+ -webkit-animation-delay: -0.8s;
+ animation-delay: -0.8s; }
+.sk-spinner-circle .sk-circle6:before {
+ -webkit-animation-delay: -0.7s;
+ animation-delay: -0.7s; }
+.sk-spinner-circle .sk-circle7:before {
+ -webkit-animation-delay: -0.6s;
+ animation-delay: -0.6s; }
+.sk-spinner-circle .sk-circle8:before {
+ -webkit-animation-delay: -0.5s;
+ animation-delay: -0.5s; }
+.sk-spinner-circle .sk-circle9:before {
+ -webkit-animation-delay: -0.4s;
+ animation-delay: -0.4s; }
+.sk-spinner-circle .sk-circle10:before {
+ -webkit-animation-delay: -0.3s;
+ animation-delay: -0.3s; }
+.sk-spinner-circle .sk-circle11:before {
+ -webkit-animation-delay: -0.2s;
+ animation-delay: -0.2s; }
+.sk-spinner-circle .sk-circle12:before {
+ -webkit-animation-delay: -0.1s;
+ animation-delay: -0.1s; }
+
+@-webkit-keyframes sk-circleBounceDelay {
+ 0%, 80%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 40% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
+
+@keyframes sk-circleBounceDelay {
+ 0%, 80%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0); }
+
+ 40% {
+ -webkit-transform: scale(1);
+ transform: scale(1); } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/9-cube-grid.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/9-cube-grid.css
new file mode 100644
index 0000000..3cfa82e
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/9-cube-grid.css
@@ -0,0 +1,79 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+.sk-spinner-cube-grid {
+ /*
+ * Spinner positions
+ * 1 2 3
+ * 4 5 6
+ * 7 8 9
+ */ }
+ .sk-spinner-cube-grid.sk-spinner {
+ width: 30px;
+ height: 30px;
+ margin: 0 auto; }
+ .sk-spinner-cube-grid .sk-cube {
+ width: 33%;
+ height: 33%;
+ background-color: #333;
+ float: left;
+ -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
+ animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(1) {
+ -webkit-animation-delay: 0.2s;
+ animation-delay: 0.2s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(2) {
+ -webkit-animation-delay: 0.3s;
+ animation-delay: 0.3s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(3) {
+ -webkit-animation-delay: 0.4s;
+ animation-delay: 0.4s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(4) {
+ -webkit-animation-delay: 0.1s;
+ animation-delay: 0.1s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(5) {
+ -webkit-animation-delay: 0.2s;
+ animation-delay: 0.2s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(6) {
+ -webkit-animation-delay: 0.3s;
+ animation-delay: 0.3s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(7) {
+ -webkit-animation-delay: 0s;
+ animation-delay: 0s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(8) {
+ -webkit-animation-delay: 0.1s;
+ animation-delay: 0.1s; }
+ .sk-spinner-cube-grid .sk-cube:nth-child(9) {
+ -webkit-animation-delay: 0.2s;
+ animation-delay: 0.2s; }
+
+@-webkit-keyframes sk-cubeGridScaleDelay {
+ 0%, 70%, 100% {
+ -webkit-transform: scale3D(1, 1, 1);
+ transform: scale3D(1, 1, 1); }
+
+ 35% {
+ -webkit-transform: scale3D(0, 0, 1);
+ transform: scale3D(0, 0, 1); } }
+
+@keyframes sk-cubeGridScaleDelay {
+ 0%, 70%, 100% {
+ -webkit-transform: scale3D(1, 1, 1);
+ transform: scale3D(1, 1, 1); }
+
+ 35% {
+ -webkit-transform: scale3D(0, 0, 1);
+ transform: scale3D(0, 0, 1); } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/9-wordpress.css b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/9-wordpress.css
new file mode 100644
index 0000000..19a919b
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/css/spinners/9-wordpress.css
@@ -0,0 +1,44 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ */
+.sk-spinner-wordpress.sk-spinner {
+ background-color: #333;
+ width: 30px;
+ height: 30px;
+ border-radius: 30px;
+ position: relative;
+ margin: 0 auto;
+ -webkit-animation: sk-innerCircle 1s linear infinite;
+ animation: sk-innerCircle 1s linear infinite; }
+.sk-spinner-wordpress .sk-inner-circle {
+ display: block;
+ background-color: #fff;
+ width: 8px;
+ height: 8px;
+ position: absolute;
+ border-radius: 8px;
+ top: 5px;
+ left: 5px; }
+
+@-webkit-keyframes sk-innerCircle {
+ 0% {
+ -webkit-transform: rotate(0);
+ transform: rotate(0); }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
+
+@keyframes sk-innerCircle {
+ 0% {
+ -webkit-transform: rotate(0);
+ transform: rotate(0); }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/examples/1-rotating-plane.html b/react-paris-or-angular-paris/bower_components/spinkit/examples/1-rotating-plane.html
new file mode 100644
index 0000000..cdb2743
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/examples/1-rotating-plane.html
@@ -0,0 +1,53 @@
+
+
+
+ 1 rotating plane
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/examples/10-fading-circle.html b/react-paris-or-angular-paris/bower_components/spinkit/examples/10-fading-circle.html
new file mode 100644
index 0000000..c7ff00b
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/examples/10-fading-circle.html
@@ -0,0 +1,161 @@
+
+
+
+ 10 fading circle
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/examples/2-double-bounce.html b/react-paris-or-angular-paris/bower_components/spinkit/examples/2-double-bounce.html
new file mode 100644
index 0000000..7f2ca60
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/examples/2-double-bounce.html
@@ -0,0 +1,63 @@
+
+
+
+ 2 double bounce
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/examples/3-wave.html b/react-paris-or-angular-paris/bower_components/spinkit/examples/3-wave.html
new file mode 100644
index 0000000..7a65a2d
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/examples/3-wave.html
@@ -0,0 +1,75 @@
+
+
+
+ 3 wave
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/examples/4-wandering-cubes.html b/react-paris-or-angular-paris/bower_components/spinkit/examples/4-wandering-cubes.html
new file mode 100644
index 0000000..cd2de52
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/examples/4-wandering-cubes.html
@@ -0,0 +1,87 @@
+
+
+
+ 4 wandering cubes
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/examples/5-pulse.html b/react-paris-or-angular-paris/bower_components/spinkit/examples/5-pulse.html
new file mode 100644
index 0000000..bd6f193
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/examples/5-pulse.html
@@ -0,0 +1,48 @@
+
+
+
+ 5 pulse
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/examples/6-chasing-dots.html b/react-paris-or-angular-paris/bower_components/spinkit/examples/6-chasing-dots.html
new file mode 100644
index 0000000..5350ce9
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/examples/6-chasing-dots.html
@@ -0,0 +1,77 @@
+
+
+
+ 6 chasing dots
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/examples/7-three-bounce.html b/react-paris-or-angular-paris/bower_components/spinkit/examples/7-three-bounce.html
new file mode 100644
index 0000000..d04271f
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/examples/7-three-bounce.html
@@ -0,0 +1,67 @@
+
+
+
+ 7 three bounce
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/examples/8-circle.html b/react-paris-or-angular-paris/bower_components/spinkit/examples/8-circle.html
new file mode 100644
index 0000000..39c17c8
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/examples/8-circle.html
@@ -0,0 +1,165 @@
+
+
+
+ 8 circle
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/examples/9-cube-grid.html b/react-paris-or-angular-paris/bower_components/spinkit/examples/9-cube-grid.html
new file mode 100644
index 0000000..972e0b1
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/examples/9-cube-grid.html
@@ -0,0 +1,103 @@
+
+
+
+ 9 cube grid
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/examples/9-wordpress.html b/react-paris-or-angular-paris/bower_components/spinkit/examples/9-wordpress.html
new file mode 100644
index 0000000..fe8c625
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/examples/9-wordpress.html
@@ -0,0 +1,60 @@
+
+
+
+ 9 wordpress
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/gulpfile.js b/react-paris-or-angular-paris/bower_components/spinkit/gulpfile.js
new file mode 100644
index 0000000..596d9a5
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/gulpfile.js
@@ -0,0 +1,96 @@
+'use strict';
+var _ = require('lodash');
+var fs = require('fs');
+var Q = require('q');
+var gulp = require('gulp');
+var autoprefixer = require('gulp-autoprefixer');
+var sass = require('gulp-sass');
+var del = require('del');
+
+var htmlDir = './examples',
+ cssDir = './css',
+ scssDir = './scss',
+ htmlTmpl = '\n\
+\n\
+\n\
+ <%= title %> \n\
+ \n\
+\n\
+\n\
+ <%= bodyContent %>\n\
+\n\
+';
+
+var getHtmlUsageExample = function(cssContent) {
+ return cssContent.match(/Usage:([\s\S]+\*.+\>)/)[1].replace(/ \*/g, '');
+};
+
+gulp.task('clean-styles', function(cb) {
+ del([cssDir], cb);
+});
+
+
+gulp.task('styles', ['clean-styles'], function() {
+ return gulp.src(scssDir + '/**/*.scss')
+ .pipe(sass({errLogToConsole: true}))
+ .pipe(autoprefixer('last 2 versions', {map: false}))
+ .pipe(gulp.dest(cssDir));
+});
+
+
+gulp.task('clean-html', function(cb) {
+ del([htmlDir], cb);
+});
+
+
+// Generates HTML files from the usage examples found in the CSS files
+gulp.task('html', ['styles', 'clean-html'], function() {
+ var spinnersDir = cssDir + '/spinners/';
+ var allDeferred = Q.defer();
+
+ fs.mkdirSync(htmlDir);
+
+ fs.readdir(spinnersDir, function(err, filenames) {
+ var promises = filenames.map(function(filename) {
+ if (filename.indexOf('.css') === -1) { return; }
+ var deferred = Q.defer();
+ var title = filename.replace('.css', '').replace(/-/g, ' ');
+ var cssFilepath = spinnersDir + filename;
+ var htmlFilename = filename.replace('.css', '.html');
+
+ var readCssFile = function(err, cssContent) {
+ if (err) { console.log(err); deferred.reject(err); }
+ var bodyContent = getHtmlUsageExample(cssContent);
+ var html = _.template(htmlTmpl, {
+ css: cssContent,
+ title: title,
+ bodyContent: bodyContent
+ });
+ fs.writeFile(htmlDir + '/' + htmlFilename, html, function(err, data) {
+ if (err) { console.log(err); deferred.reject(err); }
+ deferred.resolve();
+ });
+ };
+
+ fs.readFile(cssFilepath, {encoding: 'utf8'}, readCssFile);
+ return deferred.promise;
+ });
+ Q.all(promises).then(allDeferred.resolve);
+
+ });
+
+ return allDeferred;
+});
+
+
+gulp.task('build', ['html', 'styles']);
+
+
+gulp.task('default', ['build']);
+
+
+gulp.task('watch', ['build'], function() {
+ gulp.watch(scssDir + '/**/*.scss', ['build']);
+});
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/package.json b/react-paris-or-angular-paris/bower_components/spinkit/package.json
new file mode 100644
index 0000000..32240f0
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "SpinKit",
+ "version": "1.0.1",
+ "description": "A collection of loading indicators animated with CSS",
+ "main": "gulpfile.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/tobiasahlin/SpinKit.git"
+ },
+ "author": "Tobias Ahlin",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/tobiasahlin/SpinKit/issues"
+ },
+ "homepage": "https://github.com/tobiasahlin/SpinKit",
+ "devDependencies": {
+ "del": "^1.1.1",
+ "gulp": "^3.8.8",
+ "gulp-autoprefixer": "^2.0.0",
+ "gulp-sass": "^1.2.4",
+ "lodash": "^2.4.1",
+ "q": "^1.0.1"
+ }
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/_variables.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/_variables.scss
new file mode 100644
index 0000000..b465643
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/_variables.scss
@@ -0,0 +1,2 @@
+$spinkit-spinner-margin: 0 auto !default;
+$spinkit-spinner-color: #333 !default;
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinkit.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinkit.scss
new file mode 100644
index 0000000..b2490a8
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinkit.scss
@@ -0,0 +1,12 @@
+@import
+ "spinners/1-rotating-plane",
+ "spinners/2-double-bounce",
+ "spinners/3-wave",
+ "spinners/4-wandering-cubes",
+ "spinners/5-pulse",
+ "spinners/6-chasing-dots",
+ "spinners/7-three-bounce",
+ "spinners/8-circle",
+ "spinners/9-cube-grid",
+ "spinners/9-wordpress",
+ "spinners/10-fading-circle";
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/1-rotating-plane.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/1-rotating-plane.scss
new file mode 100644
index 0000000..a6374f0
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/1-rotating-plane.scss
@@ -0,0 +1,28 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+@import "../variables";
+
+.sk-spinner-rotating-plane {
+ &.sk-spinner {
+ width: 30px;
+ height: 30px;
+ background-color: $spinkit-spinner-color;
+
+ margin: $spinkit-spinner-margin;
+ animation: sk-rotatePlane 1.2s infinite ease-in-out;
+ }
+}
+
+@keyframes sk-rotatePlane {
+ 0% {
+ transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+ } 50% {
+ transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+ } 100% {
+ transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+ }
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/10-fading-circle.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/10-fading-circle.scss
new file mode 100644
index 0000000..2de6e60
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/10-fading-circle.scss
@@ -0,0 +1,82 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+@import "../variables";
+
+.sk-spinner-fading-circle {
+
+ &.sk-spinner {
+ margin: $spinkit-spinner-margin;
+ width: 22px;
+ height: 22px;
+ position: relative;
+ }
+
+ .sk-circle {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ }
+
+ .sk-circle:before {
+ content: '';
+ display: block;
+ margin: 0 auto;
+ width: 18%;
+ height: 18%;
+ background-color: $spinkit-spinner-color;
+
+ border-radius: 100%;
+ animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
+ /* Prevent first frame from flickering when animation starts */
+ animation-fill-mode: both;
+ }
+
+ .sk-circle2 { transform: rotate(30deg) }
+ .sk-circle3 { transform: rotate(60deg) }
+ .sk-circle4 { transform: rotate(90deg) }
+ .sk-circle5 { transform: rotate(120deg) }
+ .sk-circle6 { transform: rotate(150deg) }
+ .sk-circle7 { transform: rotate(180deg) }
+ .sk-circle8 { transform: rotate(210deg) }
+ .sk-circle9 { transform: rotate(240deg) }
+ .sk-circle10 { transform: rotate(270deg) }
+ .sk-circle11 { transform: rotate(300deg) }
+ .sk-circle12 { transform: rotate(330deg) }
+
+ .sk-circle2:before { animation-delay: -1.1s }
+ .sk-circle3:before { animation-delay: -1.0s }
+ .sk-circle4:before { animation-delay: -0.9s }
+ .sk-circle5:before { animation-delay: -0.8s }
+ .sk-circle6:before { animation-delay: -0.7s }
+ .sk-circle7:before { animation-delay: -0.6s }
+ .sk-circle8:before { animation-delay: -0.5s }
+ .sk-circle9:before { animation-delay: -0.4s }
+ .sk-circle10:before { animation-delay: -0.3s }
+ .sk-circle11:before { animation-delay: -0.2s }
+ .sk-circle12:before { animation-delay: -0.1s }
+
+}
+
+@keyframes sk-circleFadeDelay {
+ 0%, 39%, 100% { opacity: 0 }
+ 40% { opacity: 1 }
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/2-double-bounce.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/2-double-bounce.scss
new file mode 100644
index 0000000..6434010
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/2-double-bounce.scss
@@ -0,0 +1,42 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+@import "../variables";
+
+.sk-spinner-double-bounce {
+ &.sk-spinner {
+ width: 40px;
+ height: 40px;
+
+ position: relative;
+ margin: $spinkit-spinner-margin;
+ }
+
+ .sk-double-bounce1, .sk-double-bounce2 {
+ width: 100%;
+ height: 100%;
+ border-radius: 50%;
+ background-color: $spinkit-spinner-color;
+ opacity: 0.6;
+ position: absolute;
+ top: 0;
+ left: 0;
+
+ animation: sk-doubleBounce 2.0s infinite ease-in-out;
+ }
+
+ .sk-double-bounce2 {
+ animation-delay: -1.0s;
+ }
+}
+
+@keyframes sk-doubleBounce {
+ 0%, 100% { transform: scale(0.0) }
+ 50% { transform: scale(1.0) }
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/3-wave.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/3-wave.scss
new file mode 100644
index 0000000..3324aa5
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/3-wave.scss
@@ -0,0 +1,42 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+@import "../variables";
+
+.sk-spinner-wave {
+ &.sk-spinner {
+ margin: $spinkit-spinner-margin;
+ width: 50px;
+ height: 30px;
+ text-align: center;
+ font-size: 10px;
+ }
+
+ div {
+ background-color: $spinkit-spinner-color;
+ height: 100%;
+ width: 6px;
+ display: inline-block;
+
+ animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
+ }
+
+ .sk-rect2 { animation-delay: -1.1s }
+ .sk-rect3 { animation-delay: -1.0s }
+ .sk-rect4 { animation-delay: -0.9s }
+ .sk-rect5 { animation-delay: -0.8s }
+}
+
+@keyframes sk-waveStretchDelay {
+ 0%, 40%, 100% { transform: scaleY(0.4) }
+ 20% { transform: scaleY(1.0) }
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/4-wandering-cubes.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/4-wandering-cubes.scss
new file mode 100644
index 0000000..ca4995f
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/4-wandering-cubes.scss
@@ -0,0 +1,49 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+@import "../variables";
+
+.sk-spinner-wandering-cubes {
+ &.sk-spinner {
+ margin: $spinkit-spinner-margin;
+ width: 32px;
+ height: 32px;
+ position: relative;
+ }
+
+ .sk-cube1, .sk-cube2 {
+ background-color: $spinkit-spinner-color;
+ width: 10px;
+ height: 10px;
+ position: absolute;
+ top: 0;
+ left: 0;
+
+ animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;
+ }
+
+ .sk-cube2 {
+ animation-delay: -0.9s;
+ }
+}
+
+@keyframes sk-wanderingCubeMove {
+ 25% {
+ transform: translateX(42px) rotate(-90deg) scale(0.5);
+ } 50% {
+ /* Hack to make FF rotate in the right direction */
+ transform: translateX(42px) translateY(42px) rotate(-179deg);
+ } 50.1% {
+ transform: translateX(42px) translateY(42px) rotate(-180deg);
+ } 75% {
+ transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
+ } 100% {
+ transform: rotate(-360deg);
+ }
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/5-pulse.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/5-pulse.scss
new file mode 100644
index 0000000..b967937
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/5-pulse.scss
@@ -0,0 +1,28 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+@import "../variables";
+
+.sk-spinner-pulse {
+ &.sk-spinner {
+ width: 40px;
+ height: 40px;
+ margin: $spinkit-spinner-margin;
+ background-color: $spinkit-spinner-color;
+
+ border-radius: 100%;
+ animation: sk-pulseScaleOut 1.0s infinite ease-in-out;
+ }
+}
+
+@keyframes sk-pulseScaleOut {
+ 0% {
+ transform: scale(0.0);
+ } 100% {
+ transform: scale(1.0);
+ opacity: 0;
+ }
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/6-chasing-dots.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/6-chasing-dots.scss
new file mode 100644
index 0000000..557eb2f
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/6-chasing-dots.scss
@@ -0,0 +1,54 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+@import "../variables";
+
+.sk-spinner-chasing-dots {
+ &.sk-spinner {
+ margin: $spinkit-spinner-margin;
+ width: 40px;
+ height: 40px;
+ position: relative;
+ text-align: center;
+
+ animation: sk-chasingDotsRotate 2.0s infinite linear;
+ }
+
+ .sk-dot1, .sk-dot2 {
+ width: 60%;
+ height: 60%;
+ display: inline-block;
+ position: absolute;
+ top: 0;
+ background-color: $spinkit-spinner-color;
+ border-radius: 100%;
+
+ animation: sk-chasingDotsBounce 2.0s infinite ease-in-out;
+ }
+
+ .sk-dot2 {
+ top: auto;
+ bottom: 0px;
+ animation-delay: -1.0s;
+ }
+}
+
+@keyframes sk-chasingDotsRotate {
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes sk-chasingDotsBounce {
+ 0%, 100% {
+ transform: scale(0.0);
+ } 50% {
+ transform: scale(1.0);
+ }
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/7-three-bounce.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/7-three-bounce.scss
new file mode 100644
index 0000000..0400f9d
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/7-three-bounce.scss
@@ -0,0 +1,47 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ */
+ @import "../variables";
+
+.sk-spinner-three-bounce {
+ &.sk-spinner {
+ margin: $spinkit-spinner-margin;
+ width: 70px;
+ text-align: center;
+ }
+
+ div {
+ width: 18px;
+ height: 18px;
+ background-color: $spinkit-spinner-color;
+
+ border-radius: 100%;
+ display: inline-block;
+ animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
+ /* Prevent first frame from flickering when animation starts */
+ animation-fill-mode: both;
+ }
+
+ .sk-bounce1 {
+ animation-delay: -0.32s;
+ }
+
+ .sk-bounce2 {
+ animation-delay: -0.16s;
+ }
+}
+
+@keyframes sk-threeBounceDelay {
+ 0%, 80%, 100% {
+ transform: scale(0.0);
+ } 40% {
+ transform: scale(1.0);
+ }
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/8-circle.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/8-circle.scss
new file mode 100644
index 0000000..6a71df3
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/8-circle.scss
@@ -0,0 +1,80 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+@import "../variables";
+
+.sk-spinner-circle {
+ &.sk-spinner {
+ margin: $spinkit-spinner-margin;
+ width: 22px;
+ height: 22px;
+ position: relative;
+ }
+
+ .sk-circle {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ }
+
+ .sk-circle:before {
+ content: '';
+ display: block;
+ margin: 0 auto;
+ width: 20%;
+ height: 20%;
+ background-color: $spinkit-spinner-color;
+
+ border-radius: 100%;
+ animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
+ /* Prevent first frame from flickering when animation starts */
+ animation-fill-mode: both;
+ }
+
+ .sk-circle2 { transform: rotate(30deg) }
+ .sk-circle3 { transform: rotate(60deg) }
+ .sk-circle4 { transform: rotate(90deg) }
+ .sk-circle5 { transform: rotate(120deg) }
+ .sk-circle6 { transform: rotate(150deg) }
+ .sk-circle7 { transform: rotate(180deg) }
+ .sk-circle8 { transform: rotate(210deg) }
+ .sk-circle9 { transform: rotate(240deg) }
+ .sk-circle10 { transform: rotate(270deg) }
+ .sk-circle11 { transform: rotate(300deg) }
+ .sk-circle12 { transform: rotate(330deg) }
+
+ .sk-circle2:before { animation-delay: -1.1s }
+ .sk-circle3:before { animation-delay: -1.0s }
+ .sk-circle4:before { animation-delay: -0.9s }
+ .sk-circle5:before { animation-delay: -0.8s }
+ .sk-circle6:before { animation-delay: -0.7s }
+ .sk-circle7:before { animation-delay: -0.6s }
+ .sk-circle8:before { animation-delay: -0.5s }
+ .sk-circle9:before { animation-delay: -0.4s }
+ .sk-circle10:before { animation-delay: -0.3s }
+ .sk-circle11:before { animation-delay: -0.2s }
+ .sk-circle12:before { animation-delay: -0.1s }
+}
+
+@keyframes sk-circleBounceDelay {
+ 0%, 80%, 100% { transform: scale(0.0) }
+ 40% { transform: scale(1.0) }
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/9-cube-grid.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/9-cube-grid.scss
new file mode 100644
index 0000000..44ba3e8
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/9-cube-grid.scss
@@ -0,0 +1,55 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+@import "../variables";
+
+.sk-spinner-cube-grid {
+ &.sk-spinner {
+ width: 30px;
+ height: 30px;
+ margin: $spinkit-spinner-margin;
+ }
+
+ .sk-cube {
+ width: 33%;
+ height: 33%;
+ background-color: $spinkit-spinner-color;
+ float: left;
+ animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
+ }
+
+ /*
+ * Spinner positions
+ * 1 2 3
+ * 4 5 6
+ * 7 8 9
+ */
+
+ .sk-cube:nth-child(1) { animation-delay: 0.2s }
+ .sk-cube:nth-child(2) { animation-delay: 0.3s }
+ .sk-cube:nth-child(3) { animation-delay: 0.4s }
+ .sk-cube:nth-child(4) { animation-delay: 0.1s }
+ .sk-cube:nth-child(5) { animation-delay: 0.2s }
+ .sk-cube:nth-child(6) { animation-delay: 0.3s }
+ .sk-cube:nth-child(7) { animation-delay: 0.0s }
+ .sk-cube:nth-child(8) { animation-delay: 0.1s }
+ .sk-cube:nth-child(9) { animation-delay: 0.2s }
+}
+
+@keyframes sk-cubeGridScaleDelay {
+ 0%, 70%, 100% { transform:scale3D(1.0, 1.0, 1.0) }
+ 35% { transform:scale3D(0.0, 0.0, 1.0) }
+}
diff --git a/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/9-wordpress.scss b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/9-wordpress.scss
new file mode 100644
index 0000000..2b78e57
--- /dev/null
+++ b/react-paris-or-angular-paris/bower_components/spinkit/scss/spinners/9-wordpress.scss
@@ -0,0 +1,37 @@
+/*
+ * Usage:
+ *
+ *
+ *
+ *
+ *
+ */
+@import "../variables";
+
+.sk-spinner-wordpress {
+ &.sk-spinner {
+ background-color: $spinkit-spinner-color;
+ width: 30px;
+ height: 30px;
+ border-radius: 30px;
+ position: relative;
+ margin: $spinkit-spinner-margin;
+ animation: sk-innerCircle 1s linear infinite;
+ }
+
+ .sk-inner-circle {
+ display: block;
+ background-color: #fff;
+ width: 8px;
+ height: 8px;
+ position: absolute;
+ border-radius: 8px;
+ top: 5px;
+ left: 5px;
+ }
+}
+
+@keyframes sk-innerCircle {
+ 0% { transform: rotate(0) }
+ 100% { transform: rotate(360deg) }
+}
diff --git a/react-paris-or-angular-paris/docs/ss1.png b/react-paris-or-angular-paris/docs/ss1.png
new file mode 100644
index 0000000..36d6181
Binary files /dev/null and b/react-paris-or-angular-paris/docs/ss1.png differ
diff --git a/react-paris-or-angular-paris/gulpfile.js b/react-paris-or-angular-paris/gulpfile.js
new file mode 100644
index 0000000..5e1723f
--- /dev/null
+++ b/react-paris-or-angular-paris/gulpfile.js
@@ -0,0 +1,103 @@
+'use strict';
+
+var gulp = require('gulp'),
+ changed = require('gulp-changed'),
+ sass = require('gulp-sass'),
+ csso = require('gulp-csso'),
+ autoprefixer = require('autoprefixer-core'),
+ browserify = require('browserify'),
+ watchify = require('watchify'),
+ source = require('vinyl-source-stream'),
+ buffer = require('vinyl-buffer'),
+ eslint = require('gulp-eslint'),
+ babelify = require('babelify'),
+ uglify = require('gulp-uglify'),
+ del = require('del'),
+ notify = require('gulp-notify'),
+ browserSync = require('browser-sync'),
+ sourcemaps = require('gulp-sourcemaps'),
+ postcss = require('gulp-postcss'),
+ reload = browserSync.reload,
+ p = {
+ jsx: './scripts/app.jsx',
+ scss: 'styles/main.scss',
+ bundle: 'app.js',
+ distJs: 'public/js',
+ distCss: 'public/css'
+ };
+
+gulp.task('clean', function(cb) {
+ del(['dist'], cb);
+});
+
+gulp.task('browserSync', function() {
+ browserSync({
+ server: {
+ baseDir: './'
+ }
+ });
+});
+
+gulp.task('watchify', function() {
+ var bundler = watchify(browserify(p.jsx, watchify.args));
+
+ function rebundle() {
+ return bundler
+ .bundle()
+ .on('error', notify.onError())
+ .pipe(source(p.bundle))
+ .pipe(gulp.dest(p.distJs))
+ .pipe(reload({stream: true}));
+ }
+
+ bundler.transform(babelify)
+ .on('update', rebundle);
+ return rebundle();
+});
+
+gulp.task('browserify', function() {
+ browserify(p.jsx)
+ .transform(babelify)
+ .bundle()
+ .pipe(source(p.bundle))
+ .pipe(buffer())
+ .pipe(sourcemaps.init({loadMaps: true}))
+ .pipe(uglify())
+ .pipe(sourcemaps.write('./'))
+ .pipe(gulp.dest(p.distJs));
+});
+
+gulp.task('styles', function() {
+ return gulp.src(p.scss)
+ .pipe(changed(p.distCss))
+ .pipe(sass({errLogToConsole: true}))
+ .on('error', notify.onError())
+ .pipe(postcss([autoprefixer('last 1 version')]))
+ .pipe(csso())
+ .pipe(gulp.dest(p.distCss))
+ .pipe(reload({stream: true}));
+});
+
+gulp.task('lint', function() {
+ return gulp.src('scripts/**/*.jsx')
+ .pipe(eslint())
+ .pipe(eslint.format());
+});
+
+gulp.task('watchTask', function() {
+ gulp.watch(p.scss, ['styles']);
+ gulp.watch('scripts/**/*.jsx', ['lint']);
+});
+
+gulp.task('watch', ['clean'], function() {
+ gulp.start(['watchTask', 'watchify', 'styles']);
+});
+
+gulp.task('build', ['clean'], function() {
+ process.env.NODE_ENV = 'production';
+ gulp.start(['browserify', 'styles']);
+});
+
+gulp.task('default', function() {
+ console.log('Run "gulp watch or gulp build"');
+});
diff --git a/react-paris-or-angular-paris/package.json b/react-paris-or-angular-paris/package.json
new file mode 100644
index 0000000..dc605ea
--- /dev/null
+++ b/react-paris-or-angular-paris/package.json
@@ -0,0 +1,50 @@
+{
+ "name": "paris-react-angular",
+ "version": "0.0.0",
+ "private": true,
+ "scripts": {
+ "start": "node ./bin/www"
+ },
+ "dependencies": {
+ "body-parser": "~1.12.4",
+ "cookie-parser": "~1.3.5",
+ "debug": "~2.2.0",
+ "express": "~4.12.4",
+ "jade": "~1.9.2",
+ "lodash": "^3.10.0",
+ "moment": "^2.10.3",
+ "morgan": "~1.5.3",
+ "nodemon": "^1.3.7",
+ "react": "^0.13.3",
+ "request": "^2.58.0",
+ "request-promise": "^0.4.2",
+ "serve-favicon": "~2.2.1",
+ "superagent": "^1.2.0"
+ },
+ "devDependencies": {
+ "autoprefixer-core": "^5.2.1",
+ "babel": "^5.5.8",
+ "babel-eslint": "^3.1.15",
+ "babelify": "^6.1.2",
+ "browser-sync": "^2.7.11",
+ "browserify": "^10.2.4",
+ "chai": "^3.0.0",
+ "del": "^1.2.0",
+ "eslint": "^0.23.0",
+ "eslint-plugin-react": "^2.5.2",
+ "gulp": "^3.9.0",
+ "gulp-changed": "^1.2.1",
+ "gulp-csso": "^1.0.0",
+ "gulp-eslint": "^0.14.0",
+ "gulp-notify": "^2.2.0",
+ "gulp-postcss": "^5.1.9",
+ "gulp-sass": "^2.0.1",
+ "gulp-sourcemaps": "^1.5.2",
+ "gulp-uglify": "^1.2.0",
+ "mocha": "^2.2.5",
+ "react-tools": "^0.13.3",
+ "vinyl-buffer": "^1.0.0",
+ "vinyl-source-stream": "^1.1.0",
+ "watchify": "^3.2.2"
+ }
+}
diff --git a/react-paris-or-angular-paris/public/css/main.css b/react-paris-or-angular-paris/public/css/main.css
new file mode 100644
index 0000000..b86d0b3
--- /dev/null
+++ b/react-paris-or-angular-paris/public/css/main.css
@@ -0,0 +1,5 @@
+/*!
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}hr{height:0;box-sizing:content-box}pre{overflow:auto}samp{font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*,*:before,*:after{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url("../fonts/glyphicons-halflings-regular.eot");src:url("../fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"),url("../fonts/glyphicons-halflings-regular.woff2") format("woff2"),url("../fonts/glyphicons-halflings-regular.woff") format("woff"),url("../fonts/glyphicons-halflings-regular.ttf") format("truetype"),url("../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before,.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before,.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{box-sizing:border-box}*:before,*:after{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-size:14px;line-height:1.42857143;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover,a.text-primary:focus{color:#286090}.text-success{color:#3c763d}a.text-success:hover,a.text-success:focus{color:#2b542c}.text-info{color:#31708f}a.text-info:hover,a.text-info:focus{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover,a.text-warning:focus{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover,a.text-danger:focus{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover,a.bg-primary:focus{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}code,kbd{padding:2px 4px;font-size:90%}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-12{float:left;width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-12{float:left;width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-12{float:left;width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-12{float:left;width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777}caption,th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th{padding:8px;line-height:1.42857143;border-top:1px solid #ddd}.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered,.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type="search"]{box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:1px 0 0;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{padding-top:7px}output,.form-control{display:block;font-size:14px;line-height:1.42857143;color:#555}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:34px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline,.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.333333px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:focus,.btn-default.focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#fff;background-color:#398439;border-color:#255625}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:focus,.btn-warning.focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;transition-timing-function:ease;transition-duration:.35s;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid \9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn{float:left}.btn-group>.btn,.btn-group-vertical>.btn{position:relative}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon{white-space:nowrap}.input-group-addon,.input-group-btn{width:1%;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin:8px -15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text,.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text,.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron,.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:linear-gradient(45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title,.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-right:15px;padding-left:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open,.modal{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.42857143px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{left:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel,.carousel-inner{position:relative}.carousel-inner{width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:linear-gradient(to right,rgba(0,0,0,.5)0%,rgba(0,0,0,.0001)100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:linear-gradient(to right,rgba(0,0,0,.0001)0%,rgba(0,0,0,.5)100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:transparent;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}.sk-spinner-double-bounce.sk-spinner{width:40px;height:40px;position:relative;margin:0 auto}.sk-spinner-double-bounce .sk-double-bounce1,.sk-spinner-double-bounce .sk-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:sk-doubleBounce 2s infinite ease-in-out;animation:sk-doubleBounce 2s infinite ease-in-out}.sk-spinner-double-bounce .sk-double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes sk-doubleBounce{0%,100%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes sk-doubleBounce{0%,100%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}html,body{height:100%}body{color:#fff;font-family:"avenir next",helvetica,arial,sans-serif;background-repeat:no-repeat;background-image:url(/images/paris.jpg);background-position:center;background-size:cover}.lead{font-weight:400}.container{padding:50px 0}.small-hr{margin-top:100px;margin-bottom:20px;width:25%}.small-hr,.text-quiet{opacity:.5}
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/public/images/paris.jpg b/react-paris-or-angular-paris/public/images/paris.jpg
new file mode 100644
index 0000000..41276d3
Binary files /dev/null and b/react-paris-or-angular-paris/public/images/paris.jpg differ
diff --git a/react-paris-or-angular-paris/public/js/app.js b/react-paris-or-angular-paris/public/js/app.js
new file mode 100644
index 0000000..6bfd990
--- /dev/null
+++ b/react-paris-or-angular-paris/public/js/app.js
@@ -0,0 +1,7 @@
+!function e(t,n,r){function o(i,s){if(!n[i]){if(!t[i]){var u="function"==typeof require&&require;if(!s&&u)return u(i,!0);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[i]={exports:{}};t[i][0].call(l.exports,function(e){var n=t[i][1][e];return o(n?n:e)},l,l.exports,e,t,n,r)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i0)for(n in kn)r=kn[n],o=t[r],"undefined"!=typeof o&&(e[r]=o);return e}function m(e){h(this,e),this._d=new Date(+e._d),An===!1&&(An=!0,n.updateOffset(this),An=!1)}function v(e){return e instanceof m||null!=e&&null!=e._isAMomentObject}function g(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=t>=0?Math.floor(t):Math.ceil(t)),n}function y(e,t,n){var r,o=Math.min(e.length,t.length),a=Math.abs(e.length-t.length),i=0;for(r=0;o>r;r++)(n&&e[r]!==t[r]||!n&&g(e[r])!==g(t[r]))&&i++;return i+a}function E(){}function C(e){return e?e.toLowerCase().replace("_","-"):e}function _(e){for(var t,n,r,o,a=0;a0;){if(r=M(o.slice(0,t).join("-")))return r;if(n&&n.length>=t&&y(o,n,!0)>=t-1)break;t--}a++}return null}function M(n){var r=null;if(!Un[n]&&"undefined"!=typeof t&&t&&t.exports)try{r=Nn._abbr,e("./locale/"+n),R(r)}catch(o){}return Un[n]}function R(e,t){var n;return e&&(n="undefined"==typeof t?D(e):b(e,t),n&&(Nn=n)),Nn._abbr}function b(e,t){return null!==t?(t.abbr=e,Un[e]||(Un[e]=new E),Un[e].set(t),R(e),Un[e]):(delete Un[e],null)}function D(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Nn;if(!o(e)){if(t=M(e))return t;e=[e]}return _(e)}function w(e,t){var n=e.toLowerCase();Ln[n]=Ln[n+"s"]=Ln[t]=e}function x(e){return"string"==typeof e?Ln[e]||Ln[e.toLowerCase()]:void 0}function O(e){var t,n,r={};for(n in e)s(e,n)&&(t=x(n),t&&(r[t]=e[n]));return r}function T(e,t){return function(r){return null!=r?(I(this,e,r),n.updateOffset(this,t),this):P(this,e)}}function P(e,t){return e._d["get"+(e._isUTC?"UTC":"")+t]()}function I(e,t,n){return e._d["set"+(e._isUTC?"UTC":"")+t](n)}function S(e,t){var n;if("object"==typeof e)for(n in e)this.set(n,e[n]);else if(e=x(e),"function"==typeof this[e])return this[e](t);return this}function N(e,t,n){for(var r=""+Math.abs(e),o=e>=0;r.lengtht;t++)r[t]=Yn[r[t]]?Yn[r[t]]:A(r[t]);return function(o){var a="";for(t=0;n>t;t++)a+=r[t]instanceof Function?r[t].call(o,e):r[t];return a}}function L(e,t){return e.isValid()?(t=F(t,e.localeData()),Bn[t]||(Bn[t]=U(t)),Bn[t](e)):e.localeData().invalidDate()}function F(e,t){function n(e){return t.longDateFormat(e)||e}var r=5;for(jn.lastIndex=0;r>=0&&jn.test(e);)e=e.replace(jn,n),jn.lastIndex=0,r-=1;return e}function j(e,t,n){nr[e]="function"==typeof t?t:function(e){return e&&n?n:t}}function B(e,t){return s(nr,e)?nr[e](t._strict,t._locale):new RegExp(Y(e))}function Y(e){return e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,r,o){return t||n||r||o}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function V(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),"number"==typeof t&&(r=function(e,n){n[t]=g(e)}),n=0;nr;r++){if(o=c([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(o,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(o,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(a="^"+this.months(o,"")+"|^"+this.monthsShort(o,""),this._monthsParse[r]=new RegExp(a.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}}function Q(e,t){var n;return"string"==typeof t&&(t=e.localeData().monthsParse(t),"number"!=typeof t)?e:(n=Math.min(e.date(),G(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e)}function X(e){return null!=e?(Q(this,e),n.updateOffset(this,!0),this):P(this,"Month")}function Z(){return G(this.year(),this.month())}function J(e){var t,n=e._a;return n&&-2===p(e).overflow&&(t=n[ar]<0||n[ar]>11?ar:n[ir]<1||n[ir]>G(n[or],n[ar])?ir:n[sr]<0||n[sr]>24||24===n[sr]&&(0!==n[ur]||0!==n[cr]||0!==n[lr])?sr:n[ur]<0||n[ur]>59?ur:n[cr]<0||n[cr]>59?cr:n[lr]<0||n[lr]>999?lr:-1,p(e)._overflowDayOfYear&&(or>t||t>ir)&&(t=ir),p(e).overflow=t),e}function $(e){n.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function ee(e,t){var n=!0,r=e+"\n"+(new Error).stack;return u(function(){return n&&($(r),n=!1),t.apply(this,arguments)},t)}function te(e,t){fr[e]||($(t),fr[e]=!0)}function ne(e){var t,n,r=e._i,o=hr.exec(r);if(o){for(p(e).iso=!0,t=0,n=mr.length;n>t;t++)if(mr[t][1].exec(r)){e._f=mr[t][0]+(o[6]||" ");break}for(t=0,n=vr.length;n>t;t++)if(vr[t][1].exec(r)){e._f+=vr[t][0];break}r.match($n)&&(e._f+="Z"),_e(e)}else e._isValid=!1}function re(e){var t=gr.exec(e._i);return null!==t?void(e._d=new Date(+t[1])):(ne(e),void(e._isValid===!1&&(delete e._isValid,n.createFromInputFallback(e))))}function oe(e,t,n,r,o,a,i){var s=new Date(e,t,n,r,o,a,i);return 1970>e&&s.setFullYear(e),s}function ae(e){var t=new Date(Date.UTC.apply(null,arguments));return 1970>e&&t.setUTCFullYear(e),t}function ie(e){return se(e)?366:365}function se(e){return e%4===0&&e%100!==0||e%400===0}function ue(){return se(this.year())}function ce(e,t,n){var r,o=n-t,a=n-e.day();return a>o&&(a-=7),o-7>a&&(a+=7),r=Oe(e).add(a,"d"),{week:Math.ceil(r.dayOfYear()/7),year:r.year()}}function le(e){return ce(e,this._week.dow,this._week.doy).week}function pe(){return this._week.dow}function de(){return this._week.doy}function fe(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function he(e){var t=ce(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function me(e,t,n,r,o){var a,i,s=ae(e,0,1).getUTCDay();return s=0===s?7:s,n=null!=n?n:o,a=o-s+(s>r?7:0)-(o>s?7:0),i=7*(t-1)+(n-o)+a+1,{year:i>0?e:e-1,dayOfYear:i>0?i:ie(e-1)+i}}function ve(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function ge(e,t,n){return null!=e?e:null!=t?t:n}function ye(e){var t=new Date;return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function Ee(e){var t,n,r,o,a=[];if(!e._d){for(r=ye(e),e._w&&null==e._a[ir]&&null==e._a[ar]&&Ce(e),e._dayOfYear&&(o=ge(e._a[or],r[or]),e._dayOfYear>ie(o)&&(p(e)._overflowDayOfYear=!0),n=ae(o,0,e._dayOfYear),e._a[ar]=n.getUTCMonth(),e._a[ir]=n.getUTCDate()),t=0;3>t&&null==e._a[t];++t)e._a[t]=a[t]=r[t];for(;7>t;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[sr]&&0===e._a[ur]&&0===e._a[cr]&&0===e._a[lr]&&(e._nextDay=!0,e._a[sr]=0),e._d=(e._useUTC?ae:oe).apply(null,a),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[sr]=24)}}function Ce(e){var t,n,r,o,a,i,s;t=e._w,null!=t.GG||null!=t.W||null!=t.E?(a=1,i=4,n=ge(t.GG,e._a[or],ce(Oe(),1,4).year),r=ge(t.W,1),o=ge(t.E,1)):(a=e._locale._week.dow,i=e._locale._week.doy,n=ge(t.gg,e._a[or],ce(Oe(),a,i).year),r=ge(t.w,1),null!=t.d?(o=t.d,a>o&&++r):o=null!=t.e?t.e+a:a),s=me(n,r,o,i,a),e._a[or]=s.year,e._dayOfYear=s.dayOfYear}function _e(e){if(e._f===n.ISO_8601)return void ne(e);e._a=[],p(e).empty=!0;var t,r,o,a,i,s=""+e._i,u=s.length,c=0;for(o=F(e._f,e._locale).match(Fn)||[],t=0;t0&&p(e).unusedInput.push(i),s=s.slice(s.indexOf(r)+r.length),c+=r.length),Yn[a]?(r?p(e).empty=!1:p(e).unusedTokens.push(a),W(a,r,e)):e._strict&&!r&&p(e).unusedTokens.push(a);p(e).charsLeftOver=u-c,s.length>0&&p(e).unusedInput.push(s),p(e).bigHour===!0&&e._a[sr]<=12&&e._a[sr]>0&&(p(e).bigHour=void 0),e._a[sr]=Me(e._locale,e._a[sr],e._meridiem),Ee(e),J(e)}function Me(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?(r=e.isPM(n),r&&12>t&&(t+=12),r||12!==t||(t=0),t):t}function Re(e){var t,n,r,o,a;if(0===e._f.length)return p(e).invalidFormat=!0,void(e._d=new Date(0/0));for(o=0;oa)&&(r=a,n=t));u(e,n||t)}function be(e){if(!e._d){var t=O(e._i);e._a=[t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],Ee(e)}}function De(e){var t,n=e._i,r=e._f;return e._locale=e._locale||D(e._l),null===n||void 0===r&&""===n?f({nullInput:!0}):("string"==typeof n&&(e._i=n=e._locale.preparse(n)),v(n)?new m(J(n)):(o(r)?Re(e):r?_e(e):a(n)?e._d=n:we(e),t=new m(J(e)),t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t))}function we(e){var t=e._i;void 0===t?e._d=new Date:a(t)?e._d=new Date(+t):"string"==typeof t?re(e):o(t)?(e._a=i(t.slice(0),function(e){return parseInt(e,10)}),Ee(e)):"object"==typeof t?be(e):"number"==typeof t?e._d=new Date(t):n.createFromInputFallback(e)}function xe(e,t,n,r,o){var a={};return"boolean"==typeof n&&(r=n,n=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=o,a._l=n,a._i=e,a._f=t,a._strict=r,De(a)}function Oe(e,t,n,r){return xe(e,t,n,r,!1)}function Te(e,t){var n,r;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Oe();for(n=t[0],r=1;re&&(e=-e,n="-"),n+N(~~(e/60),2)+t+N(~~e%60,2)})}function Ae(e){var t=(e||"").match($n)||[],n=t[t.length-1]||[],r=(n+"").match(Mr)||["-",0,0],o=+(60*r[1])+g(r[2]);return"+"===r[0]?o:-o}function Ue(e,t){var r,o;return t._isUTC?(r=t.clone(),o=(v(e)||a(e)?+e:+Oe(e))-+r,r._d.setTime(+r._d+o),n.updateOffset(r,!1),r):Oe(e).local()}function Le(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Fe(e,t){var r,o=this._offset||0;return null!=e?("string"==typeof e&&(e=Ae(e)),Math.abs(e)<16&&(e=60*e),!this._isUTC&&t&&(r=Le(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),o!==e&&(!t||this._changeInProgress?et(this,Qe(e-o,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?o:Le(this)}function je(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function Be(e){return this.utcOffset(0,e)}function Ye(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Le(this),"m")),this}function Ve(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ae(this._i)),this}function He(e){return e=e?Oe(e).utcOffset():0,(this.utcOffset()-e)%60===0}function We(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ge(){if(this._a){var e=this._isUTC?c(this._a):Oe(this._a);return this.isValid()&&y(this._a,e.toArray())>0}return!1}function qe(){return!this._isUTC}function Ke(){return this._isUTC}function ze(){return this._isUTC&&0===this._offset}function Qe(e,t){var n,r,o,a=e,i=null;return Ne(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:"number"==typeof e?(a={},t?a[t]=e:a.milliseconds=e):(i=Rr.exec(e))?(n="-"===i[1]?-1:1,a={y:0,d:g(i[ir])*n,h:g(i[sr])*n,m:g(i[ur])*n,s:g(i[cr])*n,ms:g(i[lr])*n}):(i=br.exec(e))?(n="-"===i[1]?-1:1,a={y:Xe(i[2],n),M:Xe(i[3],n),d:Xe(i[4],n),h:Xe(i[5],n),m:Xe(i[6],n),s:Xe(i[7],n),w:Xe(i[8],n)}):null==a?a={}:"object"==typeof a&&("from"in a||"to"in a)&&(o=Je(Oe(a.from),Oe(a.to)),a={},a.ms=o.milliseconds,a.M=o.months),r=new Se(a),Ne(e)&&s(e,"_locale")&&(r._locale=e._locale),r}function Xe(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Ze(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Je(e,t){var n;return t=Ue(t,e),e.isBefore(t)?n=Ze(e,t):(n=Ze(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n}function $e(e,t){return function(n,r){var o,a;return null===r||isNaN(+r)||(te(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period)."),a=n,n=r,r=a),n="string"==typeof n?+n:n,o=Qe(n,r),et(this,o,e),this}}function et(e,t,r,o){var a=t._milliseconds,i=t._days,s=t._months;o=null==o?!0:o,a&&e._d.setTime(+e._d+a*r),i&&I(e,"Date",P(e,"Date")+i*r),s&&Q(e,P(e,"Month")+s*r),o&&n.updateOffset(e,i||s)}function tt(e){var t=e||Oe(),n=Ue(t,this).startOf("day"),r=this.diff(n,"days",!0),o=-6>r?"sameElse":-1>r?"lastWeek":0>r?"lastDay":1>r?"sameDay":2>r?"nextDay":7>r?"nextWeek":"sameElse";return this.format(this.localeData().calendar(o,this,Oe(t)))}function nt(){return new m(this)}function rt(e,t){var n;return t=x("undefined"!=typeof t?t:"millisecond"),"millisecond"===t?(e=v(e)?e:Oe(e),+this>+e):(n=v(e)?+e:+Oe(e),n<+this.clone().startOf(t))}function ot(e,t){var n;return t=x("undefined"!=typeof t?t:"millisecond"),"millisecond"===t?(e=v(e)?e:Oe(e),+e>+this):(n=v(e)?+e:+Oe(e),+this.clone().endOf(t)e?Math.ceil(e):Math.floor(e)}function ut(e,t,n){var r,o,a=Ue(e,this),i=6e4*(a.utcOffset()-this.utcOffset());return t=x(t),"year"===t||"month"===t||"quarter"===t?(o=ct(this,a),"quarter"===t?o/=3:"year"===t&&(o/=12)):(r=this-a,o="second"===t?r/1e3:"minute"===t?r/6e4:"hour"===t?r/36e5:"day"===t?(r-i)/864e5:"week"===t?(r-i)/6048e5:r),n?o:st(o)}function ct(e,t){var n,r,o=12*(t.year()-e.year())+(t.month()-e.month()),a=e.clone().add(o,"months");return 0>t-a?(n=e.clone().add(o-1,"months"),r=(t-a)/(a-n)):(n=e.clone().add(o+1,"months"),r=(t-a)/(n-a)),-(o+r)}function lt(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function pt(){var e=this.clone().utc();return 0t;t++)if(this._weekdaysParse[t]||(n=Oe([2e3,1]).day(t),r="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[t]=new RegExp(r.replace(".",""),"i")),this._weekdaysParse[t].test(e))return t}function Bt(e){var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=At(e,this.localeData()),this.add(e-t,"d")):t}function Yt(e){var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function Vt(e){return null==e?this.day()||7:this.day(this.day()%7?e:e-7)}function Ht(e,t){k(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Wt(e,t){return t._meridiemParse}function Gt(e){return"p"===(e+"").toLowerCase().charAt(0)}function qt(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}function Kt(e){k(0,[e,3],0,"millisecond")}function zt(){return this._isUTC?"UTC":""}function Qt(){return this._isUTC?"Coordinated Universal Time":""}function Xt(e){return Oe(1e3*e)}function Zt(){return Oe.apply(null,arguments).parseZone()}function Jt(e,t,n){var r=this._calendar[e];return"function"==typeof r?r.call(t,n):r}function $t(e){var t=this._longDateFormat[e];return!t&&this._longDateFormat[e.toUpperCase()]&&(t=this._longDateFormat[e.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e]=t),t}function en(){return this._invalidDate}function tn(e){return this._ordinal.replace("%d",e)}function nn(e){return e}function rn(e,t,n,r){var o=this._relativeTime[n];return"function"==typeof o?o(e,t,n,r):o.replace(/%d/i,e)}function on(e,t){var n=this._relativeTime[e>0?"future":"past"];return"function"==typeof n?n(t):n.replace(/%s/i,t)}function an(e){var t,n;for(n in e)t=e[n],"function"==typeof t?this[n]=t:this["_"+n]=t;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function sn(e,t,n,r){var o=D(),a=c().set(r,t);return o[n](a,e)}function un(e,t,n,r,o){if("number"==typeof e&&(t=e,e=void 0),e=e||"",null!=t)return sn(e,t,n,o);var a,i=[];for(a=0;r>a;a++)i[a]=sn(e,a,n,o);return i}function cn(e,t){return un(e,t,"months",12,"month")}function ln(e,t){return un(e,t,"monthsShort",12,"month")}function pn(e,t){return un(e,t,"weekdays",7,"day")}function dn(e,t){return un(e,t,"weekdaysShort",7,"day")}function fn(e,t){return un(e,t,"weekdaysMin",7,"day")}function hn(){var e=this._data;return this._milliseconds=qr(this._milliseconds),this._days=qr(this._days),this._months=qr(this._months),e.milliseconds=qr(e.milliseconds),e.seconds=qr(e.seconds),e.minutes=qr(e.minutes),e.hours=qr(e.hours),e.months=qr(e.months),e.years=qr(e.years),this}function mn(e,t,n,r){var o=Qe(t,n);return e._milliseconds+=r*o._milliseconds,e._days+=r*o._days,e._months+=r*o._months,e._bubble()}function vn(e,t){return mn(this,e,t,1)}function gn(e,t){return mn(this,e,t,-1)}function yn(){var e,t,n,r=this._milliseconds,o=this._days,a=this._months,i=this._data,s=0;return i.milliseconds=r%1e3,e=st(r/1e3),i.seconds=e%60,t=st(e/60),i.minutes=t%60,n=st(t/60),i.hours=n%24,o+=st(n/24),s=st(En(o)),o-=st(Cn(s)),a+=st(o/30),o%=30,s+=st(a/12),a%=12,i.days=o,i.months=a,i.years=s,this}function En(e){return 400*e/146097}function Cn(e){return 146097*e/400}function _n(e){var t,n,r=this._milliseconds;if(e=x(e),"month"===e||"year"===e)return t=this._days+r/864e5,n=this._months+12*En(t),"month"===e?n:n/12;switch(t=this._days+Math.round(Cn(this._months/12)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}}function Mn(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12)}function Rn(e){return function(){return this.as(e)}}function bn(e){return e=x(e),this[e+"s"]()}function Dn(e){return function(){return this._data[e]}}function wn(){return st(this.days()/7)}function xn(e,t,n,r,o){return o.relativeTime(t||1,!!n,e,r)}function On(e,t,n){var r=Qe(e).abs(),o=uo(r.as("s")),a=uo(r.as("m")),i=uo(r.as("h")),s=uo(r.as("d")),u=uo(r.as("M")),c=uo(r.as("y")),l=o0,l[4]=n,xn.apply(null,l)}function Tn(e,t){return void 0===co[e]?!1:void 0===t?co[e]:(co[e]=t,!0)}function Pn(e){var t=this.localeData(),n=On(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}function In(){var e=lo(this.years()),t=lo(this.months()),n=lo(this.days()),r=lo(this.hours()),o=lo(this.minutes()),a=lo(this.seconds()+this.milliseconds()/1e3),i=this.asSeconds();return i?(0>i?"-":"")+"P"+(e?e+"Y":"")+(t?t+"M":"")+(n?n+"D":"")+(r||o||a?"T":"")+(r?r+"H":"")+(o?o+"M":"")+(a?a+"S":""):"P0D"}var Sn,Nn,kn=n.momentProperties=[],An=!1,Un={},Ln={},Fn=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,jn=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Bn={},Yn={},Vn=/\d/,Hn=/\d\d/,Wn=/\d{3}/,Gn=/\d{4}/,qn=/[+-]?\d{6}/,Kn=/\d\d?/,zn=/\d{1,3}/,Qn=/\d{1,4}/,Xn=/[+-]?\d{1,6}/,Zn=/\d+/,Jn=/[+-]?\d+/,$n=/Z|[+-]\d\d:?\d\d/gi,er=/[+-]?\d+(\.\d{1,3})?/,tr=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,nr={},rr={},or=0,ar=1,ir=2,sr=3,ur=4,cr=5,lr=6;k("M",["MM",2],"Mo",function(){return this.month()+1}),k("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),k("MMMM",0,0,function(e){return this.localeData().months(this,e)}),w("month","M"),j("M",Kn),j("MM",Kn,Hn),j("MMM",tr),j("MMMM",tr),V(["M","MM"],function(e,t){t[ar]=g(e)-1}),V(["MMM","MMMM"],function(e,t,n,r){var o=n._locale.monthsParse(e,r,n._strict);null!=o?t[ar]=o:p(n).invalidMonth=e});var pr="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),dr="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),fr={};n.suppressDeprecationWarnings=!1;var hr=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],vr=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],gr=/^\/?Date\((\-?\d+)/i;n.createFromInputFallback=ee("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),k(0,["YY",2],0,function(){return this.year()%100}),k(0,["YYYY",4],0,"year"),k(0,["YYYYY",5],0,"year"),k(0,["YYYYYY",6,!0],0,"year"),w("year","y"),j("Y",Jn),j("YY",Kn,Hn),j("YYYY",Qn,Gn),j("YYYYY",Xn,qn),j("YYYYYY",Xn,qn),V(["YYYY","YYYYY","YYYYYY"],or),V("YY",function(e,t){t[or]=n.parseTwoDigitYear(e)}),n.parseTwoDigitYear=function(e){return g(e)+(g(e)>68?1900:2e3)};var yr=T("FullYear",!1);k("w",["ww",2],"wo","week"),k("W",["WW",2],"Wo","isoWeek"),w("week","w"),w("isoWeek","W"),j("w",Kn),j("ww",Kn,Hn),j("W",Kn),j("WW",Kn,Hn),H(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=g(e)});var Er={dow:0,doy:6};k("DDD",["DDDD",3],"DDDo","dayOfYear"),w("dayOfYear","DDD"),j("DDD",zn),j("DDDD",Wn),V(["DDD","DDDD"],function(e,t,n){n._dayOfYear=g(e)}),n.ISO_8601=function(){};var Cr=ee("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var e=Oe.apply(null,arguments);return this>e?this:e}),_r=ee("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var e=Oe.apply(null,arguments);return e>this?this:e});ke("Z",":"),ke("ZZ",""),j("Z",$n),j("ZZ",$n),V(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Ae(e)});var Mr=/([\+\-]|\d\d)/gi;n.updateOffset=function(){};var Rr=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,br=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Qe.fn=Se.prototype;var Dr=$e(1,"add"),wr=$e(-1,"subtract");n.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var xr=ee("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});k(0,["gg",2],0,function(){return this.weekYear()%100}),k(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ot("gggg","weekYear"),Ot("ggggg","weekYear"),Ot("GGGG","isoWeekYear"),Ot("GGGGG","isoWeekYear"),w("weekYear","gg"),w("isoWeekYear","GG"),j("G",Jn),j("g",Jn),j("GG",Kn,Hn),j("gg",Kn,Hn),j("GGGG",Qn,Gn),j("gggg",Qn,Gn),j("GGGGG",Xn,qn),j("ggggg",Xn,qn),H(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,r){t[r.substr(0,2)]=g(e)}),H(["gg","GG"],function(e,t,r,o){t[o]=n.parseTwoDigitYear(e)}),k("Q",0,0,"quarter"),w("quarter","Q"),j("Q",Vn),V("Q",function(e,t){t[ar]=3*(g(e)-1)}),k("D",["DD",2],"Do","date"),w("date","D"),j("D",Kn),j("DD",Kn,Hn),j("Do",function(e,t){return e?t._ordinalParse:t._ordinalParseLenient}),V(["D","DD"],ir),V("Do",function(e,t){t[ir]=g(e.match(Kn)[0],10)});var Or=T("Date",!0);k("d",0,"do","day"),k("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),k("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),k("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),k("e",0,0,"weekday"),k("E",0,0,"isoWeekday"),w("day","d"),w("weekday","e"),w("isoWeekday","E"),j("d",Kn),j("e",Kn),j("E",Kn),j("dd",tr),j("ddd",tr),j("dddd",tr),H(["dd","ddd","dddd"],function(e,t,n){var r=n._locale.weekdaysParse(e);null!=r?t.d=r:p(n).invalidWeekday=e}),H(["d","e","E"],function(e,t,n,r){t[r]=g(e)});var Tr="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Pr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ir="Su_Mo_Tu_We_Th_Fr_Sa".split("_");k("H",["HH",2],0,"hour"),k("h",["hh",2],0,function(){return this.hours()%12||12}),Ht("a",!0),Ht("A",!1),w("hour","h"),j("a",Wt),j("A",Wt),j("H",Kn),j("h",Kn),j("HH",Kn,Hn),j("hh",Kn,Hn),V(["H","HH"],sr),V(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),V(["h","hh"],function(e,t,n){t[sr]=g(e),p(n).bigHour=!0});var Sr=/[ap]\.?m?\.?/i,Nr=T("Hours",!0);k("m",["mm",2],0,"minute"),w("minute","m"),j("m",Kn),j("mm",Kn,Hn),V(["m","mm"],ur);var kr=T("Minutes",!1);k("s",["ss",2],0,"second"),w("second","s"),j("s",Kn),j("ss",Kn,Hn),V(["s","ss"],cr);var Ar=T("Seconds",!1);k("S",0,0,function(){return~~(this.millisecond()/100)}),k(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),Kt("SSS"),Kt("SSSS"),w("millisecond","ms"),j("S",zn,Vn),j("SS",zn,Hn),j("SSS",zn,Wn),j("SSSS",Zn),V(["S","SS","SSS","SSSS"],function(e,t){t[lr]=g(1e3*("0."+e))});var Ur=T("Milliseconds",!1);k("z",0,0,"zoneAbbr"),k("zz",0,0,"zoneName");var Lr=m.prototype;Lr.add=Dr,Lr.calendar=tt,Lr.clone=nt,Lr.diff=ut,Lr.endOf=Ct,Lr.format=dt,Lr.from=ft,Lr.fromNow=ht,Lr.to=mt,Lr.toNow=vt,Lr.get=S,Lr.invalidAt=xt,Lr.isAfter=rt,Lr.isBefore=ot,Lr.isBetween=at,Lr.isSame=it,Lr.isValid=Dt,Lr.lang=xr,Lr.locale=gt,Lr.localeData=yt,Lr.max=_r,Lr.min=Cr,Lr.parsingFlags=wt,Lr.set=S,Lr.startOf=Et,Lr.subtract=wr,Lr.toArray=bt,Lr.toDate=Rt,Lr.toISOString=pt,Lr.toJSON=pt,Lr.toString=lt,Lr.unix=Mt,Lr.valueOf=_t,Lr.year=yr,Lr.isLeapYear=ue,Lr.weekYear=Pt,Lr.isoWeekYear=It,Lr.quarter=Lr.quarters=kt,Lr.month=X,Lr.daysInMonth=Z,Lr.week=Lr.weeks=fe,Lr.isoWeek=Lr.isoWeeks=he,Lr.weeksInYear=Nt,Lr.isoWeeksInYear=St,Lr.date=Or,Lr.day=Lr.days=Bt,Lr.weekday=Yt,Lr.isoWeekday=Vt,Lr.dayOfYear=ve,Lr.hour=Lr.hours=Nr,Lr.minute=Lr.minutes=kr,Lr.second=Lr.seconds=Ar,Lr.millisecond=Lr.milliseconds=Ur,Lr.utcOffset=Fe,Lr.utc=Be,Lr.local=Ye,Lr.parseZone=Ve,Lr.hasAlignedHourOffset=He,Lr.isDST=We,Lr.isDSTShifted=Ge,Lr.isLocal=qe,Lr.isUtcOffset=Ke,Lr.isUtc=ze,Lr.isUTC=ze,Lr.zoneAbbr=zt,Lr.zoneName=Qt,Lr.dates=ee("dates accessor is deprecated. Use date instead.",Or),Lr.months=ee("months accessor is deprecated. Use month instead",X),Lr.years=ee("years accessor is deprecated. Use year instead",yr),Lr.zone=ee("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",je);var Fr=Lr,jr={sameDay:"[Today at] LT",
+nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Br={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},Yr="Invalid date",Vr="%d",Hr=/\d{1,2}/,Wr={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Gr=E.prototype;Gr._calendar=jr,Gr.calendar=Jt,Gr._longDateFormat=Br,Gr.longDateFormat=$t,Gr._invalidDate=Yr,Gr.invalidDate=en,Gr._ordinal=Vr,Gr.ordinal=tn,Gr._ordinalParse=Hr,Gr.preparse=nn,Gr.postformat=nn,Gr._relativeTime=Wr,Gr.relativeTime=rn,Gr.pastFuture=on,Gr.set=an,Gr.months=q,Gr._months=pr,Gr.monthsShort=K,Gr._monthsShort=dr,Gr.monthsParse=z,Gr.week=le,Gr._week=Er,Gr.firstDayOfYear=de,Gr.firstDayOfWeek=pe,Gr.weekdays=Ut,Gr._weekdays=Tr,Gr.weekdaysMin=Ft,Gr._weekdaysMin=Ir,Gr.weekdaysShort=Lt,Gr._weekdaysShort=Pr,Gr.weekdaysParse=jt,Gr.isPM=Gt,Gr._meridiemParse=Sr,Gr.meridiem=qt,R("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===g(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),n.lang=ee("moment.lang is deprecated. Use moment.locale instead.",R),n.langData=ee("moment.langData is deprecated. Use moment.localeData instead.",D);var qr=Math.abs,Kr=Rn("ms"),zr=Rn("s"),Qr=Rn("m"),Xr=Rn("h"),Zr=Rn("d"),Jr=Rn("w"),$r=Rn("M"),eo=Rn("y"),to=Dn("milliseconds"),no=Dn("seconds"),ro=Dn("minutes"),oo=Dn("hours"),ao=Dn("days"),io=Dn("months"),so=Dn("years"),uo=Math.round,co={s:45,m:45,h:22,d:26,M:11},lo=Math.abs,po=Se.prototype;po.abs=hn,po.add=vn,po.subtract=gn,po.as=_n,po.asMilliseconds=Kr,po.asSeconds=zr,po.asMinutes=Qr,po.asHours=Xr,po.asDays=Zr,po.asWeeks=Jr,po.asMonths=$r,po.asYears=eo,po.valueOf=Mn,po._bubble=yn,po.get=bn,po.milliseconds=to,po.seconds=no,po.minutes=ro,po.hours=oo,po.days=ao,po.weeks=wn,po.months=io,po.years=so,po.humanize=Pn,po.toISOString=In,po.toString=In,po.toJSON=In,po.locale=gt,po.localeData=yt,po.toIsoString=ee("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",In),po.lang=xr,k("X",0,0,"unix"),k("x",0,0,"valueOf"),j("x",Jn),j("X",er),V("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),V("x",function(e,t,n){n._d=new Date(g(e))}),n.version="2.10.3",r(Oe),n.fn=Fr,n.min=Pe,n.max=Ie,n.utc=c,n.unix=Xt,n.months=cn,n.isDate=a,n.locale=R,n.invalid=f,n.duration=Qe,n.isMoment=v,n.weekdays=pn,n.parseZone=Zt,n.localeData=D,n.isDuration=Ne,n.monthsShort=ln,n.weekdaysMin=fn,n.defineLocale=b,n.weekdaysShort=dn,n.normalizeUnits=x,n.relativeTimeThreshold=Tn;var fo=n;return fo})},{}],2:[function(e,t,n){"use strict";var r=e("./focusNode"),o={componentDidMount:function(){this.props.autoFocus&&r(this.getDOMNode())}};t.exports=o},{"./focusNode":120}],3:[function(e,t,n){"use strict";function r(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function o(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}function a(e){switch(e){case O.topCompositionStart:return T.compositionStart;case O.topCompositionEnd:return T.compositionEnd;case O.topCompositionUpdate:return T.compositionUpdate}}function i(e,t){return e===O.topKeyDown&&t.keyCode===_}function s(e,t){switch(e){case O.topKeyUp:return-1!==C.indexOf(t.keyCode);case O.topKeyDown:return t.keyCode!==_;case O.topKeyPress:case O.topMouseDown:case O.topBlur:return!0;default:return!1}}function u(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}function c(e,t,n,r){var o,c;if(M?o=a(e):I?s(e,r)&&(o=T.compositionEnd):i(e,r)&&(o=T.compositionStart),!o)return null;D&&(I||o!==T.compositionStart?o===T.compositionEnd&&I&&(c=I.getData()):I=v.getPooled(t));var l=g.getPooled(o,n,r);if(c)l.data=c;else{var p=u(r);null!==p&&(l.data=p)}return h.accumulateTwoPhaseDispatches(l),l}function l(e,t){switch(e){case O.topCompositionEnd:return u(t);case O.topKeyPress:var n=t.which;return n!==w?null:(P=!0,x);case O.topTextInput:var r=t.data;return r===x&&P?null:r;default:return null}}function p(e,t){if(I){if(e===O.topCompositionEnd||s(e,t)){var n=I.getData();return v.release(I),I=null,n}return null}switch(e){case O.topPaste:return null;case O.topKeyPress:return t.which&&!o(t)?String.fromCharCode(t.which):null;case O.topCompositionEnd:return D?null:t.data;default:return null}}function d(e,t,n,r){var o;if(o=b?l(e,r):p(e,r),!o)return null;var a=y.getPooled(T.beforeInput,n,r);return a.data=o,h.accumulateTwoPhaseDispatches(a),a}var f=e("./EventConstants"),h=e("./EventPropagators"),m=e("./ExecutionEnvironment"),v=e("./FallbackCompositionState"),g=e("./SyntheticCompositionEvent"),y=e("./SyntheticInputEvent"),E=e("./keyOf"),C=[9,13,27,32],_=229,M=m.canUseDOM&&"CompositionEvent"in window,R=null;m.canUseDOM&&"documentMode"in document&&(R=document.documentMode);var b=m.canUseDOM&&"TextEvent"in window&&!R&&!r(),D=m.canUseDOM&&(!M||R&&R>8&&11>=R),w=32,x=String.fromCharCode(w),O=f.topLevelTypes,T={beforeInput:{phasedRegistrationNames:{bubbled:E({onBeforeInput:null}),captured:E({onBeforeInputCapture:null})},dependencies:[O.topCompositionEnd,O.topKeyPress,O.topTextInput,O.topPaste]},compositionEnd:{phasedRegistrationNames:{bubbled:E({onCompositionEnd:null}),captured:E({onCompositionEndCapture:null})},dependencies:[O.topBlur,O.topCompositionEnd,O.topKeyDown,O.topKeyPress,O.topKeyUp,O.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:E({onCompositionStart:null}),captured:E({onCompositionStartCapture:null})},dependencies:[O.topBlur,O.topCompositionStart,O.topKeyDown,O.topKeyPress,O.topKeyUp,O.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:E({onCompositionUpdate:null}),captured:E({onCompositionUpdateCapture:null})},dependencies:[O.topBlur,O.topCompositionUpdate,O.topKeyDown,O.topKeyPress,O.topKeyUp,O.topMouseDown]}},P=!1,I=null,S={eventTypes:T,extractEvents:function(e,t,n,r){return[c(e,t,n,r),d(e,t,n,r)]}};t.exports=S},{"./EventConstants":15,"./EventPropagators":20,"./ExecutionEnvironment":21,"./FallbackCompositionState":22,"./SyntheticCompositionEvent":94,"./SyntheticInputEvent":98,"./keyOf":142}],4:[function(e,t,n){"use strict";function r(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0},a=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){a.forEach(function(t){o[r(t,e)]=o[e]})});var i={background:{backgroundImage:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundColor:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0}},s={isUnitlessNumber:o,shorthandPropertyExpansions:i};t.exports=s},{}],5:[function(e,t,n){"use strict";var r=e("./CSSProperty"),o=e("./ExecutionEnvironment"),a=(e("./camelizeStyleName"),e("./dangerousStyleValue")),i=e("./hyphenateStyleName"),s=e("./memoizeStringOnly"),u=(e("./warning"),s(function(e){return i(e)})),c="cssFloat";o.canUseDOM&&void 0===document.documentElement.style.cssFloat&&(c="styleFloat");var l={createMarkupForStyles:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];null!=r&&(t+=u(n)+":",t+=a(n,r)+";")}return t||null},setValueForStyles:function(e,t){var n=e.style;for(var o in t)if(t.hasOwnProperty(o)){var i=a(o,t[o]);if("float"===o&&(o=c),i)n[o]=i;else{var s=r.shorthandPropertyExpansions[o];if(s)for(var u in s)n[u]="";else n[o]=""}}}};t.exports=l},{"./CSSProperty":4,"./ExecutionEnvironment":21,"./camelizeStyleName":109,"./dangerousStyleValue":114,"./hyphenateStyleName":134,"./memoizeStringOnly":144,"./warning":155}],6:[function(e,t,n){"use strict";function r(){this._callbacks=null,this._contexts=null}var o=e("./PooledClass"),a=e("./Object.assign"),i=e("./invariant");a(r.prototype,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,t=this._contexts;if(e){i(e.length===t.length),this._callbacks=null,this._contexts=null;for(var n=0,r=e.length;r>n;n++)e[n].call(t[n]);e.length=0,t.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),o.addPoolingTo(r),t.exports=r},{"./Object.assign":27,"./PooledClass":28,"./invariant":136}],7:[function(e,t,n){"use strict";function r(e){return"SELECT"===e.nodeName||"INPUT"===e.nodeName&&"file"===e.type}function o(e){var t=R.getPooled(O.change,P,e);C.accumulateTwoPhaseDispatches(t),M.batchedUpdates(a,t)}function a(e){E.enqueueEvents(e),E.processEventQueue()}function i(e,t){T=e,P=t,T.attachEvent("onchange",o)}function s(){T&&(T.detachEvent("onchange",o),T=null,P=null)}function u(e,t,n){return e===x.topChange?n:void 0}function c(e,t,n){e===x.topFocus?(s(),i(t,n)):e===x.topBlur&&s()}function l(e,t){T=e,P=t,I=e.value,S=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(T,"value",A),T.attachEvent("onpropertychange",d)}function p(){T&&(delete T.value,T.detachEvent("onpropertychange",d),T=null,P=null,I=null,S=null)}function d(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==I&&(I=t,o(e))}}function f(e,t,n){return e===x.topInput?n:void 0}function h(e,t,n){e===x.topFocus?(p(),l(t,n)):e===x.topBlur&&p()}function m(e,t,n){return e!==x.topSelectionChange&&e!==x.topKeyUp&&e!==x.topKeyDown||!T||T.value===I?void 0:(I=T.value,P)}function v(e){return"INPUT"===e.nodeName&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){return e===x.topClick?n:void 0}var y=e("./EventConstants"),E=e("./EventPluginHub"),C=e("./EventPropagators"),_=e("./ExecutionEnvironment"),M=e("./ReactUpdates"),R=e("./SyntheticEvent"),b=e("./isEventSupported"),D=e("./isTextInputElement"),w=e("./keyOf"),x=y.topLevelTypes,O={change:{phasedRegistrationNames:{bubbled:w({onChange:null}),captured:w({onChangeCapture:null})},dependencies:[x.topBlur,x.topChange,x.topClick,x.topFocus,x.topInput,x.topKeyDown,x.topKeyUp,x.topSelectionChange]}},T=null,P=null,I=null,S=null,N=!1;_.canUseDOM&&(N=b("change")&&(!("documentMode"in document)||document.documentMode>8));var k=!1;_.canUseDOM&&(k=b("input")&&(!("documentMode"in document)||document.documentMode>9));var A={get:function(){return S.get.call(this)},set:function(e){I=""+e,S.set.call(this,e)}},U={eventTypes:O,extractEvents:function(e,t,n,o){var a,i;if(r(t)?N?a=u:i=c:D(t)?k?a=f:(a=m,i=h):v(t)&&(a=g),a){var s=a(e,t,n);if(s){var l=R.getPooled(O.change,s,o);return C.accumulateTwoPhaseDispatches(l),l}}i&&i(e,t,n)}};t.exports=U},{"./EventConstants":15,"./EventPluginHub":17,"./EventPropagators":20,"./ExecutionEnvironment":21,"./ReactUpdates":88,"./SyntheticEvent":96,"./isEventSupported":137,"./isTextInputElement":139,"./keyOf":142}],8:[function(e,t,n){"use strict";var r=0,o={createReactRootIndex:function(){return r++}};t.exports=o},{}],9:[function(e,t,n){"use strict";function r(e,t,n){e.insertBefore(t,e.childNodes[n]||null)}var o=e("./Danger"),a=e("./ReactMultiChildUpdateTypes"),i=e("./setTextContent"),s=e("./invariant"),u={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,updateTextContent:i,processUpdates:function(e,t){for(var n,u=null,c=null,l=0;lt||o.hasOverloadedBooleanValue[e]&&t===!1}var o=e("./DOMProperty"),a=e("./quoteAttributeValueForBrowser"),i=(e("./warning"),{createMarkupForID:function(e){return o.ID_ATTRIBUTE_NAME+"="+a(e)},createMarkupForProperty:function(e,t){if(o.isStandardName.hasOwnProperty(e)&&o.isStandardName[e]){if(r(e,t))return"";var n=o.getAttributeName[e];return o.hasBooleanValue[e]||o.hasOverloadedBooleanValue[e]&&t===!0?n:n+"="+a(t)}return o.isCustomAttribute(e)?null==t?"":e+"="+a(t):null},setValueForProperty:function(e,t,n){if(o.isStandardName.hasOwnProperty(t)&&o.isStandardName[t]){var a=o.getMutationMethod[t];if(a)a(e,n);else if(r(t,n))this.deleteValueForProperty(e,t);else if(o.mustUseAttribute[t])e.setAttribute(o.getAttributeName[t],""+n);else{var i=o.getPropertyName[t];o.hasSideEffects[t]&&""+e[i]==""+n||(e[i]=n)}}else o.isCustomAttribute(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForProperty:function(e,t){if(o.isStandardName.hasOwnProperty(t)&&o.isStandardName[t]){var n=o.getMutationMethod[t];if(n)n(e,void 0);else if(o.mustUseAttribute[t])e.removeAttribute(o.getAttributeName[t]);else{var r=o.getPropertyName[t],a=o.getDefaultValueForProperty(e.nodeName,r);o.hasSideEffects[t]&&""+e[r]===a||(e[r]=a)}}else o.isCustomAttribute(t)&&e.removeAttribute(t)}});t.exports=i},{"./DOMProperty":10,"./quoteAttributeValueForBrowser":148,"./warning":155}],12:[function(e,t,n){"use strict";function r(e){return e.substring(1,e.indexOf(" "))}var o=e("./ExecutionEnvironment"),a=e("./createNodesFromMarkup"),i=e("./emptyFunction"),s=e("./getMarkupWrap"),u=e("./invariant"),c=/^(<[^ \/>]+)/,l="data-danger-index",p={dangerouslyRenderMarkup:function(e){u(o.canUseDOM);for(var t,n={},p=0;pu;u++){var l=s[u];if(l){var p=l.extractEvents(e,t,n,o);p&&(i=a(i,p))}}return i},enqueueEvents:function(e){e&&(c=a(c,e))},processEventQueue:function(){var e=c;c=null,i(e,l),s(!c)},__purge:function(){u={}},__getListenerBank:function(){return u}};t.exports=d},{"./EventPluginRegistry":18,"./EventPluginUtils":19,"./accumulateInto":106,"./forEachAccumulated":121,"./invariant":136}],18:[function(e,t,n){"use strict";function r(){if(s)for(var e in u){var t=u[e],n=s.indexOf(e);if(i(n>-1),!c.plugins[n]){i(t.extractEvents),c.plugins[n]=t;var r=t.eventTypes;for(var a in r)i(o(r[a],t,a))}}}function o(e,t,n){i(!c.eventNameDispatchConfigs.hasOwnProperty(n)),c.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var s=r[o];a(s,t,n)}return!0}return e.registrationName?(a(e.registrationName,t,n),!0):!1}function a(e,t,n){i(!c.registrationNameModules[e]),c.registrationNameModules[e]=t,c.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var i=e("./invariant"),s=null,u={},c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){i(!s),s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];u.hasOwnProperty(n)&&u[n]===o||(i(!u[n]),u[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=c.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=c.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=c},{"./invariant":136}],19:[function(e,t,n){"use strict";function r(e){return e===v.topMouseUp||e===v.topTouchEnd||e===v.topTouchCancel}function o(e){return e===v.topMouseMove||e===v.topTouchMove}function a(e){return e===v.topMouseDown||e===v.topTouchStart}function i(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;oe&&n[e]===o[e];e++);var i=r-e;for(t=1;i>=t&&n[r-t]===o[a-t];t++);var s=t>1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),o.addPoolingTo(r),t.exports=r},{"./Object.assign":27,"./PooledClass":28,"./getTextContentAccessor":131}],23:[function(e,t,n){"use strict";var r,o=e("./DOMProperty"),a=e("./ExecutionEnvironment"),i=o.injection.MUST_USE_ATTRIBUTE,s=o.injection.MUST_USE_PROPERTY,u=o.injection.HAS_BOOLEAN_VALUE,c=o.injection.HAS_SIDE_EFFECTS,l=o.injection.HAS_NUMERIC_VALUE,p=o.injection.HAS_POSITIVE_NUMERIC_VALUE,d=o.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(a.canUseDOM){var f=document.implementation;r=f&&f.hasFeature&&f.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var h={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:i|u,allowTransparency:i,alt:null,async:u,autoComplete:null,autoPlay:u,cellPadding:null,cellSpacing:null,charSet:i,checked:s|u,classID:i,className:r?i:s,cols:i|p,colSpan:null,content:null,contentEditable:null,contextMenu:i,controls:s|u,coords:null,crossOrigin:null,data:null,dateTime:i,defer:u,dir:null,disabled:i|u,download:d,draggable:null,encType:null,form:i,formAction:i,formEncType:i,formMethod:i,formNoValidate:u,formTarget:i,frameBorder:i,headers:null,height:i,hidden:i|u,high:null,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:s,label:null,lang:null,list:i,loop:s|u,low:null,manifest:i,marginHeight:null,marginWidth:null,max:null,maxLength:i,media:i,mediaGroup:null,method:null,min:null,multiple:s|u,muted:s|u,name:null,noValidate:u,open:u,optimum:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:s|u,rel:null,required:u,role:i,rows:i|p,rowSpan:null,sandbox:null,scope:null,scoped:u,scrolling:null,seamless:i|u,selected:s|u,shape:null,size:i|p,sizes:i,span:p,spellCheck:null,src:null,srcDoc:s,srcSet:i,start:l,step:null,style:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:s|c,width:i,wmode:i,autoCapitalize:null,autoCorrect:null,itemProp:i,itemScope:i|u,itemType:i,itemID:i,itemRef:i,property:null,unselectable:i},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",encType:"encoding",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};t.exports=h},{"./DOMProperty":10,"./ExecutionEnvironment":21}],24:[function(e,t,n){"use strict";function r(e){c(null==e.props.checkedLink||null==e.props.valueLink)}function o(e){r(e),c(null==e.props.value&&null==e.props.onChange)}function a(e){r(e),c(null==e.props.checked&&null==e.props.onChange)}function i(e){this.props.valueLink.requestChange(e.target.value)}function s(e){this.props.checkedLink.requestChange(e.target.checked)}var u=e("./ReactPropTypes"),c=e("./invariant"),l={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},p={Mixin:{propTypes:{value:function(e,t,n){return!e[t]||l[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:u.func}},getValue:function(e){return e.props.valueLink?(o(e),e.props.valueLink.value):e.props.value},getChecked:function(e){return e.props.checkedLink?(a(e),e.props.checkedLink.value):e.props.checked},getOnChange:function(e){return e.props.valueLink?(o(e),i):e.props.checkedLink?(a(e),s):e.props.onChange}};t.exports=p},{"./ReactPropTypes":79,"./invariant":136}],25:[function(e,t,n){"use strict";function r(e){e.remove()}var o=e("./ReactBrowserEventEmitter"),a=e("./accumulateInto"),i=e("./forEachAccumulated"),s=e("./invariant"),u={trapBubbledEvent:function(e,t){s(this.isMounted());var n=this.getDOMNode();s(n);var r=o.trapBubbledEvent(e,t,n);this._localEventListeners=a(this._localEventListeners,r)},componentWillUnmount:function(){this._localEventListeners&&i(this._localEventListeners,r)}};t.exports=u},{"./ReactBrowserEventEmitter":31,"./accumulateInto":106,"./forEachAccumulated":121,"./invariant":136}],26:[function(e,t,n){"use strict";var r=e("./EventConstants"),o=e("./emptyFunction"),a=r.topLevelTypes,i={eventTypes:null,extractEvents:function(e,t,n,r){if(e===a.topTouchStart){var i=r.target;i&&!i.onclick&&(i.onclick=o)}}};t.exports=i},{"./EventConstants":15,"./emptyFunction":115}],27:[function(e,t,n){"use strict";function r(e,t){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var n=Object(e),r=Object.prototype.hasOwnProperty,o=1;oc;c++){var d=s[c];a.hasOwnProperty(d)&&a[d]||(d===u.topWheel?l("wheel")?v.ReactEventListener.trapBubbledEvent(u.topWheel,"wheel",n):l("mousewheel")?v.ReactEventListener.trapBubbledEvent(u.topWheel,"mousewheel",n):v.ReactEventListener.trapBubbledEvent(u.topWheel,"DOMMouseScroll",n):d===u.topScroll?l("scroll",!0)?v.ReactEventListener.trapCapturedEvent(u.topScroll,"scroll",n):v.ReactEventListener.trapBubbledEvent(u.topScroll,"scroll",v.ReactEventListener.WINDOW_HANDLE):d===u.topFocus||d===u.topBlur?(l("focus",!0)?(v.ReactEventListener.trapCapturedEvent(u.topFocus,"focus",n),v.ReactEventListener.trapCapturedEvent(u.topBlur,"blur",n)):l("focusin")&&(v.ReactEventListener.trapBubbledEvent(u.topFocus,"focusin",n),v.ReactEventListener.trapBubbledEvent(u.topBlur,"focusout",n)),a[u.topBlur]=!0,a[u.topFocus]=!0):h.hasOwnProperty(d)&&v.ReactEventListener.trapBubbledEvent(d,h[d],n),a[d]=!0)}},trapBubbledEvent:function(e,t,n){return v.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return v.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!d){var e=u.refreshScrollValues;v.ReactEventListener.monitorScrollValue(e),d=!0}},eventNameDispatchConfigs:a.eventNameDispatchConfigs,registrationNameModules:a.registrationNameModules,putListener:a.putListener,getListener:a.getListener,deleteListener:a.deleteListener,deleteAllListeners:a.deleteAllListeners});t.exports=v},{"./EventConstants":15,"./EventPluginHub":17,"./EventPluginRegistry":18,"./Object.assign":27,"./ReactEventEmitterMixin":62,"./ViewportMetrics":105,"./isEventSupported":137}],32:[function(e,t,n){"use strict";var r=e("./ReactReconciler"),o=e("./flattenChildren"),a=e("./instantiateReactComponent"),i=e("./shouldUpdateReactComponent"),s={instantiateChildren:function(e,t,n){var r=o(e);for(var i in r)if(r.hasOwnProperty(i)){var s=r[i],u=a(s,null);r[i]=u}return r},updateChildren:function(e,t,n,s){var u=o(t);if(!u&&!e)return null;var c;for(c in u)if(u.hasOwnProperty(c)){var l=e&&e[c],p=l&&l._currentElement,d=u[c];if(i(p,d))r.receiveComponent(l,d,n,s),u[c]=l;else{l&&r.unmountComponent(l,c);var f=a(d,null);u[c]=f}}for(c in e)!e.hasOwnProperty(c)||u&&u.hasOwnProperty(c)||r.unmountComponent(e[c]);return u},unmountChildren:function(e){for(var t in e){var n=e[t];r.unmountComponent(n)}}};t.exports=s},{"./ReactReconciler":82,"./flattenChildren":119,"./instantiateReactComponent":135,"./shouldUpdateReactComponent":152}],33:[function(e,t,n){"use strict";function r(e,t){this.forEachFunction=e,this.forEachContext=t}function o(e,t,n,r){var o=e;o.forEachFunction.call(o.forEachContext,t,r)}function a(e,t,n){if(null==e)return e;var a=r.getPooled(t,n);f(e,o,a),r.release(a)}function i(e,t,n){this.mapResult=e,this.mapFunction=t,this.mapContext=n}function s(e,t,n,r){var o=e,a=o.mapResult,i=!a.hasOwnProperty(n);if(i){var s=o.mapFunction.call(o.mapContext,t,r);a[n]=s}}function u(e,t,n){if(null==e)return e;var r={},o=i.getPooled(r,t,n);return f(e,s,o),i.release(o),d.create(r)}function c(e,t,n,r){return null}function l(e,t){return f(e,c,null)}var p=e("./PooledClass"),d=e("./ReactFragment"),f=e("./traverseAllChildren"),h=(e("./warning"),p.twoArgumentPooler),m=p.threeArgumentPooler;p.addPoolingTo(r,h),p.addPoolingTo(i,m);var v={forEach:a,map:u,count:l};t.exports=v},{"./PooledClass":28,"./ReactFragment":64,"./traverseAllChildren":154,"./warning":155}],34:[function(e,t,n){"use strict";function r(e,t){var n=b.hasOwnProperty(t)?b[t]:null;w.hasOwnProperty(t)&&y(n===M.OVERRIDE_BASE),e.hasOwnProperty(t)&&y(n===M.DEFINE_MANY||n===M.DEFINE_MANY_MERGED)}function o(e,t){if(t){y("function"!=typeof t),y(!d.isValidElement(t));var n=e.prototype;t.hasOwnProperty(_)&&D.mixins(e,t.mixins);for(var o in t)if(t.hasOwnProperty(o)&&o!==_){var a=t[o];if(r(n,o),D.hasOwnProperty(o))D[o](e,a);else{var i=b.hasOwnProperty(o),c=n.hasOwnProperty(o),l=a&&a.__reactDontBind,p="function"==typeof a,f=p&&!i&&!c&&!l;if(f)n.__reactAutoBindMap||(n.__reactAutoBindMap={}),n.__reactAutoBindMap[o]=a,n[o]=a;else if(c){var h=b[o];y(i&&(h===M.DEFINE_MANY_MERGED||h===M.DEFINE_MANY)),h===M.DEFINE_MANY_MERGED?n[o]=s(n[o],a):h===M.DEFINE_MANY&&(n[o]=u(n[o],a))}else n[o]=a}}}}function a(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in D;y(!o);var a=n in e;y(!a),e[n]=r}}}function i(e,t){y(e&&t&&"object"==typeof e&&"object"==typeof t);for(var n in t)t.hasOwnProperty(n)&&(y(void 0===e[n]),e[n]=t[n]);return e}function s(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return i(o,n),i(o,r),o}}function u(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function c(e,t){var n=t.bind(e);return n}function l(e){for(var t in e.__reactAutoBindMap)if(e.__reactAutoBindMap.hasOwnProperty(t)){var n=e.__reactAutoBindMap[t];e[t]=c(e,f.guard(n,e.constructor.displayName+"."+t))}}var p=e("./ReactComponent"),d=(e("./ReactCurrentOwner"),e("./ReactElement")),f=e("./ReactErrorUtils"),h=e("./ReactInstanceMap"),m=e("./ReactLifeCycle"),v=(e("./ReactPropTypeLocations"),e("./ReactPropTypeLocationNames"),e("./ReactUpdateQueue")),g=e("./Object.assign"),y=e("./invariant"),E=e("./keyMirror"),C=e("./keyOf"),_=(e("./warning"),C({mixins:null})),M=E({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),R=[],b={mixins:M.DEFINE_MANY,statics:M.DEFINE_MANY,propTypes:M.DEFINE_MANY,contextTypes:M.DEFINE_MANY,childContextTypes:M.DEFINE_MANY,getDefaultProps:M.DEFINE_MANY_MERGED,getInitialState:M.DEFINE_MANY_MERGED,getChildContext:M.DEFINE_MANY_MERGED,render:M.DEFINE_ONCE,componentWillMount:M.DEFINE_MANY,componentDidMount:M.DEFINE_MANY,componentWillReceiveProps:M.DEFINE_MANY,shouldComponentUpdate:M.DEFINE_ONCE,componentWillUpdate:M.DEFINE_MANY,componentDidUpdate:M.DEFINE_MANY,componentWillUnmount:M.DEFINE_MANY,updateComponent:M.OVERRIDE_BASE},D={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n";return this._createOpenTagMarkupAndPutListeners(t)+this._createContentMarkup(t,n)+o},_createOpenTagMarkupAndPutListeners:function(e){var t=this._currentElement.props,n="<"+this._tag;for(var r in t)if(t.hasOwnProperty(r)){var a=t[r];if(null!=a)if(_.hasOwnProperty(r))o(this._rootNodeID,r,a,e);else{r===R&&(a&&(a=this._previousStyleCopy=m({},t.style)),a=s.createMarkupForStyles(a));var i=c.createMarkupForProperty(r,a);i&&(n+=" "+i)}}if(e.renderToStaticMarkup)return n+">";var u=c.createMarkupForID(this._rootNodeID);return n+" "+u+">"},_createContentMarkup:function(e,t){var n="";("listing"===this._tag||"pre"===this._tag||"textarea"===this._tag)&&(n="\n");var r=this._currentElement.props,o=r.dangerouslySetInnerHTML;if(null!=o){if(null!=o.__html)return n+o.__html}else{var a=M[typeof r.children]?r.children:null,i=null!=a?null:r.children;if(null!=a)return n+v(a);if(null!=i){var s=this.mountChildren(i,e,t);return n+s.join("")}}return n},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,n,o){r(this._currentElement.props),this._updateDOMProperties(t.props,e),this._updateDOMChildren(t.props,e,o)},_updateDOMProperties:function(e,t){var n,r,a,i=this._currentElement.props;for(n in e)if(!i.hasOwnProperty(n)&&e.hasOwnProperty(n))if(n===R){var s=this._previousStyleCopy;for(r in s)s.hasOwnProperty(r)&&(a=a||{},a[r]="");this._previousStyleCopy=null}else _.hasOwnProperty(n)?E(this._rootNodeID,n):(u.isStandardName[n]||u.isCustomAttribute(n))&&D.deletePropertyByID(this._rootNodeID,n);for(n in i){var c=i[n],l=n===R?this._previousStyleCopy:e[n];if(i.hasOwnProperty(n)&&c!==l)if(n===R)if(c?c=this._previousStyleCopy=m({},c):this._previousStyleCopy=null,l){for(r in l)!l.hasOwnProperty(r)||c&&c.hasOwnProperty(r)||(a=a||{},a[r]="");for(r in c)c.hasOwnProperty(r)&&l[r]!==c[r]&&(a=a||{},a[r]=c[r])}else a=c;else _.hasOwnProperty(n)?o(this._rootNodeID,n,c,t):(u.isStandardName[n]||u.isCustomAttribute(n))&&D.updatePropertyByID(this._rootNodeID,n,c)}a&&D.updateStylesByID(this._rootNodeID,a)},_updateDOMChildren:function(e,t,n){var r=this._currentElement.props,o=M[typeof e.children]?e.children:null,a=M[typeof r.children]?r.children:null,i=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=r.dangerouslySetInnerHTML&&r.dangerouslySetInnerHTML.__html,u=null!=o?null:e.children,c=null!=a?null:r.children,l=null!=o||null!=i,p=null!=a||null!=s;null!=u&&null==c?this.updateChildren(null,t,n):l&&!p&&this.updateTextContent(""),null!=a?o!==a&&this.updateTextContent(""+a):null!=s?i!==s&&D.updateInnerHTMLByID(this._rootNodeID,s):null!=c&&this.updateChildren(c,t,n)},unmountComponent:function(){this.unmountChildren(),l.deleteAllListeners(this._rootNodeID),p.unmountIDFromEnvironment(this._rootNodeID),this._rootNodeID=null}},h.measureMethods(i,"ReactDOMComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent"}),m(i.prototype,i.Mixin,f.Mixin),i.injection={injectIDOperations:function(e){i.BackendIDOperations=D=e}},t.exports=i},{"./CSSPropertyOperations":5,"./DOMProperty":10,"./DOMPropertyOperations":11,"./Object.assign":27,"./ReactBrowserEventEmitter":31,"./ReactComponentBrowserEnvironment":36,"./ReactMount":71,"./ReactMultiChild":72,"./ReactPerf":76,"./escapeTextContentForBrowser":117,"./invariant":136,"./isEventSupported":137,"./keyOf":142,"./warning":155}],44:[function(e,t,n){"use strict";var r=e("./EventConstants"),o=e("./LocalEventTrapMixin"),a=e("./ReactBrowserComponentMixin"),i=e("./ReactClass"),s=e("./ReactElement"),u=s.createFactory("form"),c=i.createClass({displayName:"ReactDOMForm",tagName:"FORM",mixins:[a,o],render:function(){return u(this.props)},componentDidMount:function(){this.trapBubbledEvent(r.topLevelTypes.topReset,"reset"),this.trapBubbledEvent(r.topLevelTypes.topSubmit,"submit")}});t.exports=c},{"./EventConstants":15,"./LocalEventTrapMixin":25,"./ReactBrowserComponentMixin":30,"./ReactClass":34,"./ReactElement":58}],45:[function(e,t,n){"use strict";var r=e("./CSSPropertyOperations"),o=e("./DOMChildrenOperations"),a=e("./DOMPropertyOperations"),i=e("./ReactMount"),s=e("./ReactPerf"),u=e("./invariant"),c=e("./setInnerHTML"),l={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},p={updatePropertyByID:function(e,t,n){var r=i.getNode(e);u(!l.hasOwnProperty(t)),null!=n?a.setValueForProperty(r,t,n):a.deleteValueForProperty(r,t)},deletePropertyByID:function(e,t,n){var r=i.getNode(e);u(!l.hasOwnProperty(t)),a.deleteValueForProperty(r,t,n)},updateStylesByID:function(e,t){var n=i.getNode(e);r.setValueForStyles(n,t)},updateInnerHTMLByID:function(e,t){var n=i.getNode(e);c(n,t)},updateTextContentByID:function(e,t){var n=i.getNode(e);o.updateTextContent(n,t)},dangerouslyReplaceNodeWithMarkupByID:function(e,t){var n=i.getNode(e);o.dangerouslyReplaceNodeWithMarkup(n,t)},dangerouslyProcessChildrenUpdates:function(e,t){for(var n=0;nc;c++){var h=u[c];if(h!==a&&h.form===a.form){var v=l.getID(h);f(v);var g=m[v];f(g),p.asap(r,g)}}}return t}});t.exports=v},{"./AutoFocusMixin":2,"./DOMPropertyOperations":11,"./LinkedValueUtils":24,"./Object.assign":27,"./ReactBrowserComponentMixin":30,"./ReactClass":34,"./ReactElement":58,"./ReactMount":71,"./ReactUpdates":88,"./invariant":136}],49:[function(e,t,n){"use strict";var r=e("./ReactBrowserComponentMixin"),o=e("./ReactClass"),a=e("./ReactElement"),i=(e("./warning"),a.createFactory("option")),s=o.createClass({displayName:"ReactDOMOption",tagName:"OPTION",mixins:[r],componentWillMount:function(){},render:function(){return i(this.props,this.props.children)}});t.exports=s},{"./ReactBrowserComponentMixin":30,"./ReactClass":34,"./ReactElement":58,"./warning":155}],50:[function(e,t,n){"use strict";function r(){if(this._pendingUpdate){this._pendingUpdate=!1;var e=s.getValue(this);null!=e&&this.isMounted()&&a(this,e)}}function o(e,t,n){if(null==e[t])return null;if(e.multiple){if(!Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to must be an array if `multiple` is true.")}else if(Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to must be a scalar value if `multiple` is false.")}function a(e,t){var n,r,o,a=e.getDOMNode().options;if(e.props.multiple){for(n={},r=0,o=t.length;o>r;r++)n[""+t[r]]=!0;for(r=0,o=a.length;o>r;r++){var i=n.hasOwnProperty(a[r].value);a[r].selected!==i&&(a[r].selected=i)}}else{for(n=""+t,r=0,o=a.length;o>r;r++)if(a[r].value===n)return void(a[r].selected=!0);a.length&&(a[0].selected=!0)}}var i=e("./AutoFocusMixin"),s=e("./LinkedValueUtils"),u=e("./ReactBrowserComponentMixin"),c=e("./ReactClass"),l=e("./ReactElement"),p=e("./ReactUpdates"),d=e("./Object.assign"),f=l.createFactory("select"),h=c.createClass({displayName:"ReactDOMSelect",tagName:"SELECT",mixins:[i,s.Mixin,u],propTypes:{defaultValue:o,value:o},render:function(){var e=d({},this.props);return e.onChange=this._handleChange,e.value=null,f(e,this.props.children)},componentWillMount:function(){this._pendingUpdate=!1},componentDidMount:function(){var e=s.getValue(this);null!=e?a(this,e):null!=this.props.defaultValue&&a(this,this.props.defaultValue)},componentDidUpdate:function(e){var t=s.getValue(this);null!=t?(this._pendingUpdate=!1,a(this,t)):!e.multiple!=!this.props.multiple&&(null!=this.props.defaultValue?a(this,this.props.defaultValue):a(this,this.props.multiple?[]:""))},_handleChange:function(e){var t,n=s.getOnChange(this);return n&&(t=n.call(this,e)),this._pendingUpdate=!0,p.asap(r,this),t}});t.exports=h},{"./AutoFocusMixin":2,"./LinkedValueUtils":24,"./Object.assign":27,"./ReactBrowserComponentMixin":30,"./ReactClass":34,"./ReactElement":58,"./ReactUpdates":88}],51:[function(e,t,n){"use strict";function r(e,t,n,r){return e===n&&t===r}function o(e){var t=document.selection,n=t.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(e),o.setEndPoint("EndToStart",n);var a=o.text.length,i=a+r;return{start:a,end:i}}function a(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,o=t.anchorOffset,a=t.focusNode,i=t.focusOffset,s=t.getRangeAt(0),u=r(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),c=u?0:s.toString().length,l=s.cloneRange();l.selectNodeContents(e),l.setEnd(s.startContainer,s.startOffset);var p=r(l.startContainer,l.startOffset,l.endContainer,l.endOffset),d=p?0:l.toString().length,f=d+c,h=document.createRange();h.setStart(n,o),h.setEnd(a,i);var m=h.collapsed;return{start:m?f:d,end:m?d:f}}function i(e,t){var n,r,o=document.selection.createRange().duplicate();"undefined"==typeof t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[l()].length,o=Math.min(t.start,r),a="undefined"==typeof t.end?o:Math.min(t.end,r);if(!n.extend&&o>a){var i=a;a=o,o=i}var s=c(e,o),u=c(e,a);if(s&&u){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),o>a?(n.addRange(p),n.extend(u.node,u.offset)):(p.setEnd(u.node,u.offset),n.addRange(p))}}}var u=e("./ExecutionEnvironment"),c=e("./getNodeForCharacterOffset"),l=e("./getTextContentAccessor"),p=u.canUseDOM&&"selection"in document&&!("getSelection"in window),d={getOffsets:p?o:a,setOffsets:p?i:s};t.exports=d},{"./ExecutionEnvironment":21,"./getNodeForCharacterOffset":129,"./getTextContentAccessor":131}],52:[function(e,t,n){"use strict";var r=e("./DOMPropertyOperations"),o=e("./ReactComponentBrowserEnvironment"),a=e("./ReactDOMComponent"),i=e("./Object.assign"),s=e("./escapeTextContentForBrowser"),u=function(e){};i(u.prototype,{construct:function(e){this._currentElement=e,this._stringText=""+e,this._rootNodeID=null,this._mountIndex=0},mountComponent:function(e,t,n){this._rootNodeID=e;var o=s(this._stringText);return t.renderToStaticMarkup?o:""+o+" "},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;n!==this._stringText&&(this._stringText=n,a.BackendIDOperations.updateTextContentByID(this._rootNodeID,n))}},unmountComponent:function(){o.unmountIDFromEnvironment(this._rootNodeID)}}),t.exports=u},{"./DOMPropertyOperations":11,"./Object.assign":27,"./ReactComponentBrowserEnvironment":36,"./ReactDOMComponent":43,"./escapeTextContentForBrowser":117}],53:[function(e,t,n){"use strict";function r(){this.isMounted()&&this.forceUpdate()}var o=e("./AutoFocusMixin"),a=e("./DOMPropertyOperations"),i=e("./LinkedValueUtils"),s=e("./ReactBrowserComponentMixin"),u=e("./ReactClass"),c=e("./ReactElement"),l=e("./ReactUpdates"),p=e("./Object.assign"),d=e("./invariant"),f=(e("./warning"),c.createFactory("textarea")),h=u.createClass({displayName:"ReactDOMTextarea",tagName:"TEXTAREA",mixins:[o,i.Mixin,s],getInitialState:function(){var e=this.props.defaultValue,t=this.props.children;null!=t&&(d(null==e),Array.isArray(t)&&(d(t.length<=1),t=t[0]),e=""+t),null==e&&(e="");var n=i.getValue(this);return{initialValue:""+(null!=n?n:e)}},render:function(){var e=p({},this.props);return d(null==e.dangerouslySetInnerHTML),e.defaultValue=null,e.value=null,e.onChange=this._handleChange,f(e,this.state.initialValue)},componentDidUpdate:function(e,t,n){var r=i.getValue(this);if(null!=r){var o=this.getDOMNode();a.setValueForProperty(o,"value",""+r)}},_handleChange:function(e){var t,n=i.getOnChange(this);return n&&(t=n.call(this,e)),l.asap(r,this),t}});t.exports=h},{"./AutoFocusMixin":2,"./DOMPropertyOperations":11,"./LinkedValueUtils":24,"./Object.assign":27,"./ReactBrowserComponentMixin":30,"./ReactClass":34,"./ReactElement":58,"./ReactUpdates":88,"./invariant":136,"./warning":155}],54:[function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=e("./ReactUpdates"),a=e("./Transaction"),i=e("./Object.assign"),s=e("./emptyFunction"),u={initialize:s,close:function(){d.isBatchingUpdates=!1}},c={initialize:s,close:o.flushBatchedUpdates.bind(o)},l=[c,u];i(r.prototype,a.Mixin,{getTransactionWrappers:function(){return l}});var p=new r,d={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o){var a=d.isBatchingUpdates;d.isBatchingUpdates=!0,a?e(t,n,r,o):p.perform(e,null,t,n,r,o)}};t.exports=d},{"./Object.assign":27,"./ReactUpdates":88,"./Transaction":104,"./emptyFunction":115}],55:[function(e,t,n){"use strict";function r(e){return h.createClass({tagName:e.toUpperCase(),render:function(){return new O(e,null,null,null,null,this.props)}})}function o(){P.EventEmitter.injectReactEventListener(T),P.EventPluginHub.injectEventPluginOrder(u),P.EventPluginHub.injectInstanceHandle(I),P.EventPluginHub.injectMount(S),P.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:U,EnterLeaveEventPlugin:c,ChangeEventPlugin:i,MobileSafariClickEventPlugin:d,SelectEventPlugin:k,BeforeInputEventPlugin:a}),P.NativeComponent.injectGenericComponentClass(g),P.NativeComponent.injectTextComponentClass(x),P.NativeComponent.injectAutoWrapper(r),P.Class.injectMixin(f),P.NativeComponent.injectComponentClasses({button:y,form:E,iframe:M,img:C,input:R,option:b,select:D,textarea:w,html:F("html"),head:F("head"),body:F("body")}),P.DOMProperty.injectDOMPropertyConfig(p),P.DOMProperty.injectDOMPropertyConfig(L),P.EmptyComponent.injectEmptyComponent("noscript"),P.Updates.injectReconcileTransaction(N),P.Updates.injectBatchingStrategy(v),P.RootIndex.injectCreateReactRootIndex(l.canUseDOM?s.createReactRootIndex:A.createReactRootIndex),P.Component.injectEnvironment(m),P.DOMComponent.injectIDOperations(_)}var a=e("./BeforeInputEventPlugin"),i=e("./ChangeEventPlugin"),s=e("./ClientReactRootIndex"),u=e("./DefaultEventPluginOrder"),c=e("./EnterLeaveEventPlugin"),l=e("./ExecutionEnvironment"),p=e("./HTMLDOMPropertyConfig"),d=e("./MobileSafariClickEventPlugin"),f=e("./ReactBrowserComponentMixin"),h=e("./ReactClass"),m=e("./ReactComponentBrowserEnvironment"),v=e("./ReactDefaultBatchingStrategy"),g=e("./ReactDOMComponent"),y=e("./ReactDOMButton"),E=e("./ReactDOMForm"),C=e("./ReactDOMImg"),_=e("./ReactDOMIDOperations"),M=e("./ReactDOMIframe"),R=e("./ReactDOMInput"),b=e("./ReactDOMOption"),D=e("./ReactDOMSelect"),w=e("./ReactDOMTextarea"),x=e("./ReactDOMTextComponent"),O=e("./ReactElement"),T=e("./ReactEventListener"),P=e("./ReactInjection"),I=e("./ReactInstanceHandles"),S=e("./ReactMount"),N=e("./ReactReconcileTransaction"),k=e("./SelectEventPlugin"),A=e("./ServerReactRootIndex"),U=e("./SimpleEventPlugin"),L=e("./SVGDOMPropertyConfig"),F=e("./createFullPageComponent");t.exports={inject:o}},{"./BeforeInputEventPlugin":3,"./ChangeEventPlugin":7,"./ClientReactRootIndex":8,"./DefaultEventPluginOrder":13,"./EnterLeaveEventPlugin":14,"./ExecutionEnvironment":21,"./HTMLDOMPropertyConfig":23,"./MobileSafariClickEventPlugin":26,"./ReactBrowserComponentMixin":30,"./ReactClass":34,"./ReactComponentBrowserEnvironment":36,"./ReactDOMButton":42,"./ReactDOMComponent":43,"./ReactDOMForm":44,"./ReactDOMIDOperations":45,"./ReactDOMIframe":46,"./ReactDOMImg":47,"./ReactDOMInput":48,"./ReactDOMOption":49,"./ReactDOMSelect":50,"./ReactDOMTextComponent":52,"./ReactDOMTextarea":53,"./ReactDefaultBatchingStrategy":54,"./ReactDefaultPerf":56,"./ReactElement":58,"./ReactEventListener":63,"./ReactInjection":65,"./ReactInstanceHandles":67,"./ReactMount":71,"./ReactReconcileTransaction":81,"./SVGDOMPropertyConfig":89,"./SelectEventPlugin":90,"./ServerReactRootIndex":91,"./SimpleEventPlugin":92,"./createFullPageComponent":112}],56:[function(e,t,n){"use strict";function r(e){return Math.floor(100*e)/100}function o(e,t,n){e[t]=(e[t]||0)+n}var a=e("./DOMProperty"),i=e("./ReactDefaultPerfAnalysis"),s=e("./ReactMount"),u=e("./ReactPerf"),c=e("./performanceNow"),l={_allMeasurements:[],_mountStack:[0],_injected:!1,start:function(){l._injected||u.injection.injectMeasure(l.measure),l._allMeasurements.length=0,u.enableMeasure=!0},stop:function(){u.enableMeasure=!1},getLastMeasurements:function(){return l._allMeasurements},printExclusive:function(e){e=e||l._allMeasurements;var t=i.getExclusiveSummary(e);console.table(t.map(function(e){return{"Component class name":e.componentName,"Total inclusive time (ms)":r(e.inclusive),"Exclusive mount time (ms)":r(e.exclusive),"Exclusive render time (ms)":r(e.render),"Mount time per instance (ms)":r(e.exclusive/e.count),"Render time per instance (ms)":r(e.render/e.count),Instances:e.count}}))},printInclusive:function(e){e=e||l._allMeasurements;var t=i.getInclusiveSummary(e);console.table(t.map(function(e){return{"Owner > component":e.componentName,"Inclusive time (ms)":r(e.time),Instances:e.count}})),console.log("Total time:",i.getTotalTime(e).toFixed(2)+" ms")},getMeasurementsSummaryMap:function(e){var t=i.getInclusiveSummary(e,!0);return t.map(function(e){return{"Owner > component":e.componentName,"Wasted time (ms)":e.time,Instances:e.count}})},printWasted:function(e){e=e||l._allMeasurements,console.table(l.getMeasurementsSummaryMap(e)),console.log("Total time:",i.getTotalTime(e).toFixed(2)+" ms")},printDOM:function(e){e=e||l._allMeasurements;var t=i.getDOMSummary(e);console.table(t.map(function(e){var t={};return t[a.ID_ATTRIBUTE_NAME]=e.id,t.type=e.type,t.args=JSON.stringify(e.args),t})),console.log("Total time:",i.getTotalTime(e).toFixed(2)+" ms")},_recordWrite:function(e,t,n,r){var o=l._allMeasurements[l._allMeasurements.length-1].writes;o[e]=o[e]||[],o[e].push({type:t,time:n,args:r})},measure:function(e,t,n){return function(){for(var r=[],a=0,i=arguments.length;i>a;a++)r.push(arguments[a]);var u,p,d;if("_renderNewRootComponent"===t||"flushBatchedUpdates"===t)return l._allMeasurements.push({exclusive:{},inclusive:{},render:{},counts:{},writes:{},displayNames:{},totalTime:0}),d=c(),p=n.apply(this,r),l._allMeasurements[l._allMeasurements.length-1].totalTime=c()-d,p;if("_mountImageIntoNode"===t||"ReactDOMIDOperations"===e){if(d=c(),p=n.apply(this,r),u=c()-d,"_mountImageIntoNode"===t){var f=s.getID(r[1]);l._recordWrite(f,t,u,r[0])}else"dangerouslyProcessChildrenUpdates"===t?r[0].forEach(function(e){var t={};null!==e.fromIndex&&(t.fromIndex=e.fromIndex),null!==e.toIndex&&(t.toIndex=e.toIndex),null!==e.textContent&&(t.textContent=e.textContent),null!==e.markupIndex&&(t.markup=r[1][e.markupIndex]),l._recordWrite(e.parentID,e.type,u,t)}):l._recordWrite(r[0],t,u,Array.prototype.slice.call(r,1));return p}if("ReactCompositeComponent"!==e||"mountComponent"!==t&&"updateComponent"!==t&&"_renderValidatedComponent"!==t)return n.apply(this,r);if("string"==typeof this._currentElement.type)return n.apply(this,r);var h="mountComponent"===t?r[0]:this._rootNodeID,m="_renderValidatedComponent"===t,v="mountComponent"===t,g=l._mountStack,y=l._allMeasurements[l._allMeasurements.length-1];if(m?o(y.counts,h,1):v&&g.push(0),d=c(),p=n.apply(this,r),u=c()-d,m)o(y.render,h,u);else if(v){var E=g.pop();g[g.length-1]+=u,o(y.exclusive,h,u-E),o(y.inclusive,h,u)}else o(y.inclusive,h,u);return y.displayNames[h]={current:this.getName(),owner:this._currentElement._owner?this._currentElement._owner.getName():""},p}}};t.exports=l},{"./DOMProperty":10,"./ReactDefaultPerfAnalysis":57,"./ReactMount":71,"./ReactPerf":76,"./performanceNow":147}],57:[function(e,t,n){function r(e){for(var t=0,n=0;n=c&&s.push(n[t]);return s.sort(function(e,t){return t.exclusive-e.exclusive}),s}function i(e,t){for(var n,r={},o=0;o "+d.current,r[n]=r[n]||{componentName:n,time:0,count:0},i.inclusive[p]&&(r[n].time+=i.inclusive[p]),i.counts[p]&&(r[n].count+=i.counts[p])}}var f=[];for(n in r)r[n].time>=c&&f.push(r[n]);return f.sort(function(e,t){return t.time-e.time}),f}function s(e){var t={},n=Object.keys(e.writes),r=u({},e.exclusive,e.inclusive);for(var o in r){for(var a=!1,i=0;i0&&(t[o]=!0)}return t}var u=e("./Object.assign"),c=1.2,l={_mountImageIntoNode:"set innerHTML",INSERT_MARKUP:"set innerHTML",MOVE_EXISTING:"move",REMOVE_NODE:"remove",TEXT_CONTENT:"set textContent",updatePropertyByID:"update attribute",deletePropertyByID:"delete attribute",updateStylesByID:"update styles",updateInnerHTMLByID:"set innerHTML",dangerouslyReplaceNodeWithMarkupByID:"replace"},p={getExclusiveSummary:a,getInclusiveSummary:i,getDOMSummary:o,getTotalTime:r};t.exports=p},{"./Object.assign":27}],58:[function(e,t,n){"use strict";var r=e("./ReactContext"),o=e("./ReactCurrentOwner"),a=e("./Object.assign"),i=(e("./warning"),{key:!0,ref:!0}),s=function(e,t,n,r,o,a){this.type=e,this.key=t,this.ref=n,this._owner=r,this._context=o,this.props=a};s.prototype={_isReactElement:!0},s.createElement=function(e,t,n){var a,u={},c=null,l=null;if(null!=t){l=void 0===t.ref?null:t.ref,c=void 0===t.key?null:""+t.key;for(a in t)t.hasOwnProperty(a)&&!i.hasOwnProperty(a)&&(u[a]=t[a])}var p=arguments.length-2;if(1===p)u.children=n;else if(p>1){for(var d=Array(p),f=0;p>f;f++)d[f]=arguments[f+2];u.children=d}if(e&&e.defaultProps){var h=e.defaultProps;for(a in h)"undefined"==typeof u[a]&&(u[a]=h[a])}return new s(e,c,l,o.current,r.current,u)},s.createFactory=function(e){var t=s.createElement.bind(null,e);return t.type=e,t},s.cloneAndReplaceProps=function(e,t){var n=new s(e.type,e.key,e.ref,e._owner,e._context,t);return n},s.cloneElement=function(e,t,n){var r,u=a({},e.props),c=e.key,l=e.ref,p=e._owner;if(null!=t){void 0!==t.ref&&(l=t.ref,p=o.current),void 0!==t.key&&(c=""+t.key);for(r in t)t.hasOwnProperty(r)&&!i.hasOwnProperty(r)&&(u[r]=t[r])}var d=arguments.length-2;if(1===d)u.children=n;else if(d>1){for(var f=Array(d),h=0;d>h;h++)f[h]=arguments[h+2];u.children=f}return new s(e.type,c,l,p,e._context,u)},s.isValidElement=function(e){var t=!(!e||!e._isReactElement);return t},t.exports=s},{"./Object.assign":27,"./ReactContext":39,"./ReactCurrentOwner":40,"./warning":155}],59:[function(e,t,n){"use strict";function r(){if(y.current){var e=y.current.getName();if(e)return" Check the render method of `"+e+"`."}return""}function o(e){var t=e&&e.getPublicInstance();if(!t)return void 0;var n=t.constructor;return n?n.displayName||n.name||void 0:void 0}function a(){var e=y.current;return e&&o(e)||void 0}function i(e,t){e._store.validated||null!=e.key||(e._store.validated=!0,u('Each child in an array or iterator should have a unique "key" prop.',e,t))}function s(e,t,n){b.test(e)&&u("Child objects should have non-numeric keys so ordering is preserved.",t,n)}function u(e,t,n){var r=a(),i="string"==typeof n?n:n.displayName||n.name,s=r||i,u=M[e]||(M[e]={});if(!u.hasOwnProperty(s)){u[s]=!0;var c="";if(t&&t._owner&&t._owner!==y.current){var l=o(t._owner);c=" It was passed a child from "+l+"."}}}function c(e,t){if(Array.isArray(e))for(var n=0;n ");var s="";o&&(s=" The element was created by "+o+".")}}function d(e,t){return e!==e?t!==t:0===e&&0===t?1/e===1/t:e===t}function f(e){if(e._store){var t=e._store.originalProps,n=e.props;for(var r in n)n.hasOwnProperty(r)&&(t.hasOwnProperty(r)&&d(t[r],n[r])||(p(r,e),t[r]=n[r]))}}function h(e){if(null!=e.type){var t=E.getComponentClassForElement(e),n=t.displayName||t.name;t.propTypes&&l(n,t.propTypes,e.props,g.prop),"function"==typeof t.getDefaultProps}}var m=e("./ReactElement"),v=e("./ReactFragment"),g=e("./ReactPropTypeLocations"),y=(e("./ReactPropTypeLocationNames"),e("./ReactCurrentOwner")),E=e("./ReactNativeComponent"),C=e("./getIteratorFn"),_=e("./invariant"),M=(e("./warning"),{}),R={},b=/^\d+$/,D={},w={checkAndWarnForMutatedProps:f,createElement:function(e,t,n){var r=m.createElement.apply(this,arguments);if(null==r)return r;for(var o=2;oo;o++){t=e.ancestors[o];var i=p.getID(t)||"";v._handleTopLevel(e.topLevelType,t,i,e.nativeEvent)}}function i(e){var t=m(window);e(t)}var s=e("./EventListener"),u=e("./ExecutionEnvironment"),c=e("./PooledClass"),l=e("./ReactInstanceHandles"),p=e("./ReactMount"),d=e("./ReactUpdates"),f=e("./Object.assign"),h=e("./getEventTarget"),m=e("./getUnboundedScrollPosition");f(o.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),c.addPoolingTo(o,c.twoArgumentPooler);var v={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:u.canUseDOM?window:null,setHandleTopLevel:function(e){v._handleTopLevel=e},setEnabled:function(e){v._enabled=!!e},isEnabled:function(){return v._enabled},trapBubbledEvent:function(e,t,n){var r=n;return r?s.listen(r,t,v.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){var r=n;return r?s.capture(r,t,v.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=i.bind(null,e);s.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(v._enabled){var n=o.getPooled(e,t);try{d.batchedUpdates(a,n)}finally{o.release(n)}}}};t.exports=v},{"./EventListener":16,"./ExecutionEnvironment":21,"./Object.assign":27,"./PooledClass":28,"./ReactInstanceHandles":67,"./ReactMount":71,"./ReactUpdates":88,"./getEventTarget":126,"./getUnboundedScrollPosition":132}],64:[function(e,t,n){"use strict";var r=(e("./ReactElement"),e("./warning"),{create:function(e){return e},extract:function(e){return e},extractIfFragment:function(e){return e}});t.exports=r},{"./ReactElement":58,"./warning":155}],65:[function(e,t,n){"use strict";var r=e("./DOMProperty"),o=e("./EventPluginHub"),a=e("./ReactComponentEnvironment"),i=e("./ReactClass"),s=e("./ReactEmptyComponent"),u=e("./ReactBrowserEventEmitter"),c=e("./ReactNativeComponent"),l=e("./ReactDOMComponent"),p=e("./ReactPerf"),d=e("./ReactRootIndex"),f=e("./ReactUpdates"),h={Component:a.injection,Class:i.injection,DOMComponent:l.injection,DOMProperty:r.injection,EmptyComponent:s.injection,EventPluginHub:o.injection,EventEmitter:u.injection,NativeComponent:c.injection,Perf:p.injection,RootIndex:d.injection,Updates:f.injection};t.exports=h},{"./DOMProperty":10,"./EventPluginHub":17,"./ReactBrowserEventEmitter":31,"./ReactClass":34,"./ReactComponentEnvironment":37,"./ReactDOMComponent":43,"./ReactEmptyComponent":60,"./ReactNativeComponent":74,"./ReactPerf":76,"./ReactRootIndex":84,"./ReactUpdates":88}],66:[function(e,t,n){"use strict";function r(e){return a(document.documentElement,e)}var o=e("./ReactDOMSelection"),a=e("./containsNode"),i=e("./focusNode"),s=e("./getActiveElement"),u={hasSelectionCapabilities:function(e){return e&&("INPUT"===e.nodeName&&"text"===e.type||"TEXTAREA"===e.nodeName||"true"===e.contentEditable)},getSelectionInformation:function(){var e=s();return{focusedElem:e,selectionRange:u.hasSelectionCapabilities(e)?u.getSelection(e):null}},restoreSelection:function(e){var t=s(),n=e.focusedElem,o=e.selectionRange;t!==n&&r(n)&&(u.hasSelectionCapabilities(n)&&u.setSelection(n,o),i(n))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&"INPUT"===e.nodeName){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=o.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,r=t.end;if("undefined"==typeof r&&(r=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(r,e.value.length);else if(document.selection&&"INPUT"===e.nodeName){var a=e.createTextRange();a.collapse(!0),a.moveStart("character",n),a.moveEnd("character",r-n),a.select()}else o.setOffsets(e,t)}};t.exports=u},{"./ReactDOMSelection":51,"./containsNode":110,"./focusNode":120,"./getActiveElement":122}],67:[function(e,t,n){"use strict";function r(e){return f+e.toString(36)}function o(e,t){return e.charAt(t)===f||t===e.length}function a(e){return""===e||e.charAt(0)===f&&e.charAt(e.length-1)!==f}function i(e,t){return 0===t.indexOf(e)&&o(t,e.length)}function s(e){return e?e.substr(0,e.lastIndexOf(f)):""}function u(e,t){if(d(a(e)&&a(t)),d(i(e,t)),e===t)return e;var n,r=e.length+h;for(n=r;n=i;i++)if(o(e,i)&&o(t,i))r=i;else if(e.charAt(i)!==t.charAt(i))break;var s=e.substr(0,r);return d(a(s)),s}function l(e,t,n,r,o,a){e=e||"",t=t||"",d(e!==t);var c=i(t,e);d(c||i(e,t));for(var l=0,p=c?s:u,f=e;;f=p(f,t)){var h;if(o&&f===e||a&&f===t||(h=n(f,c,r)),h===!1||f===t)break;d(l++1){var t=e.indexOf(f,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var a=c(e,t);a!==e&&l(e,a,n,r,!1,!0),a!==t&&l(a,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(l("",e,t,n,!0,!1),l(e,"",t,n,!1,!0))},traverseAncestors:function(e,t,n){l("",e,t,n,!0,!1)},_getFirstCommonAncestorID:c,_getNextDescendantID:u,isAncestorIDOf:i,SEPARATOR:f};t.exports=v},{"./ReactRootIndex":84,"./invariant":136}],68:[function(e,t,n){"use strict";var r={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};t.exports=r},{}],69:[function(e,t,n){"use strict";var r={currentlyMountingInstance:null,currentlyUnmountingInstance:null};t.exports=r},{}],70:[function(e,t,n){"use strict";var r=e("./adler32"),o={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return e.replace(">"," "+o.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var n=t.getAttribute(o.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var a=r(e);return a===n}};t.exports=o},{"./adler32":107}],71:[function(e,t,n){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;n>r;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function o(e){var t=T(e);return t&&H.getID(t)}function a(e){var t=i(e);if(t)if(U.hasOwnProperty(t)){var n=U[t];n!==e&&(I(!l(n,t)),U[t]=e)}else U[t]=e;return t}function i(e){return e&&e.getAttribute&&e.getAttribute(A)||""}function s(e,t){var n=i(e);n!==t&&delete U[n],e.setAttribute(A,t),U[t]=e}function u(e){return U.hasOwnProperty(e)&&l(U[e],e)||(U[e]=H.findReactNodeByID(e)),U[e]}function c(e){var t=_.get(e)._rootNodeID;return E.isNullComponentID(t)?null:(U.hasOwnProperty(t)&&l(U[t],t)||(U[t]=H.findReactNodeByID(t)),U[t])}function l(e,t){if(e){I(i(e)===t);var n=H.findReactContainerForID(t);if(n&&O(n,e))return!0}return!1}function p(e){delete U[e]}function d(e){var t=U[e];return t&&l(t,e)?void(V=t):!1}function f(e){V=null,C.traverseAncestors(e,d);var t=V;return V=null,t}function h(e,t,n,r,o){var a=b.mountComponent(e,t,r,x);e._isTopLevel=!0,H._mountImageIntoNode(a,n,o)}function m(e,t,n,r){var o=w.ReactReconcileTransaction.getPooled();o.perform(h,null,e,t,n,o,r),w.ReactReconcileTransaction.release(o)}var v=e("./DOMProperty"),g=e("./ReactBrowserEventEmitter"),y=(e("./ReactCurrentOwner"),e("./ReactElement")),E=(e("./ReactElementValidator"),e("./ReactEmptyComponent")),C=e("./ReactInstanceHandles"),_=e("./ReactInstanceMap"),M=e("./ReactMarkupChecksum"),R=e("./ReactPerf"),b=e("./ReactReconciler"),D=e("./ReactUpdateQueue"),w=e("./ReactUpdates"),x=e("./emptyObject"),O=e("./containsNode"),T=e("./getReactRootElementInContainer"),P=e("./instantiateReactComponent"),I=e("./invariant"),S=e("./setInnerHTML"),N=e("./shouldUpdateReactComponent"),k=(e("./warning"),C.SEPARATOR),A=v.ID_ATTRIBUTE_NAME,U={},L=1,F=9,j={},B={},Y=[],V=null,H={_instancesByReactRootID:j,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){return H.scrollMonitor(n,function(){D.enqueueElementInternal(e,t),r&&D.enqueueCallbackInternal(e,r)}),e},_registerComponent:function(e,t){I(t&&(t.nodeType===L||t.nodeType===F)),g.ensureScrollValueMonitoring();var n=H.registerContainer(t);return j[n]=e,n},_renderNewRootComponent:function(e,t,n){var r=P(e,null),o=H._registerComponent(r,t);return w.batchedUpdates(m,r,o,t,n),r},render:function(e,t,n){I(y.isValidElement(e));var r=j[o(t)];if(r){var a=r._currentElement;if(N(a,e))return H._updateRootComponent(r,e,t,n).getPublicInstance();H.unmountComponentAtNode(t)}var i=T(t),s=i&&H.isRenderedByReact(i),u=s&&!r,c=H._renderNewRootComponent(e,t,u).getPublicInstance();return n&&n.call(c),c},constructAndRenderComponent:function(e,t,n){var r=y.createElement(e,t);return H.render(r,n)},constructAndRenderComponentByID:function(e,t,n){var r=document.getElementById(n);return I(r),H.constructAndRenderComponent(e,t,r)},registerContainer:function(e){var t=o(e);return t&&(t=C.getReactRootIDFromNodeID(t)),t||(t=C.createReactRootID()),B[t]=e,t},unmountComponentAtNode:function(e){I(e&&(e.nodeType===L||e.nodeType===F));var t=o(e),n=j[t];return n?(H.unmountComponentFromNode(n,e),delete j[t],delete B[t],!0):!1},unmountComponentFromNode:function(e,t){for(b.unmountComponent(e),
+t.nodeType===F&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)},findReactContainerForID:function(e){var t=C.getReactRootIDFromNodeID(e),n=B[t];return n},findReactNodeByID:function(e){var t=H.findReactContainerForID(e);return H.findComponentRoot(t,e)},isRenderedByReact:function(e){if(1!==e.nodeType)return!1;var t=H.getID(e);return t?t.charAt(0)===k:!1},getFirstReactDOM:function(e){for(var t=e;t&&t.parentNode!==t;){if(H.isRenderedByReact(t))return t;t=t.parentNode}return null},findComponentRoot:function(e,t){var n=Y,r=0,o=f(t)||e;for(n[0]=o.firstChild,n.length=1;r>",M=s(),R=d(),b={array:o("array"),bool:o("boolean"),func:o("function"),number:o("number"),object:o("object"),string:o("string"),any:a(),arrayOf:i,element:M,instanceOf:u,node:R,objectOf:l,oneOf:c,oneOfType:p,shape:f};t.exports=b},{"./ReactElement":58,"./ReactFragment":64,"./ReactPropTypeLocationNames":77,"./emptyFunction":115}],80:[function(e,t,n){"use strict";function r(){this.listenersToPut=[]}var o=e("./PooledClass"),a=e("./ReactBrowserEventEmitter"),i=e("./Object.assign");i(r.prototype,{enqueuePutListener:function(e,t,n){this.listenersToPut.push({rootNodeID:e,propKey:t,propValue:n})},putListeners:function(){for(var e=0;en;n++){var r=g[n],o=r._pendingCallbacks;if(r._pendingCallbacks=null,f.performUpdateIfNecessary(r,e.reconcileTransaction),o)for(var a=0;a":">","<":"<",'"':""","'":"'"},i=/[&><"']/g;t.exports=o},{}],118:[function(e,t,n){"use strict";function r(e){return null==e?null:s(e)?e:o.has(e)?a.getNodeFromInstance(e):(i(null==e.render||"function"!=typeof e.render),void i(!1))}{var o=(e("./ReactCurrentOwner"),e("./ReactInstanceMap")),a=e("./ReactMount"),i=e("./invariant"),s=e("./isNode");e("./warning")}t.exports=r},{"./ReactCurrentOwner":40,"./ReactInstanceMap":68,"./ReactMount":71,"./invariant":136,"./isNode":138,"./warning":155}],119:[function(e,t,n){"use strict";function r(e,t,n){var r=e,o=!r.hasOwnProperty(n);o&&null!=t&&(r[n]=t)}function o(e){if(null==e)return e;var t={};return a(e,r,t),t}{var a=e("./traverseAllChildren");e("./warning")}t.exports=o},{"./traverseAllChildren":154,"./warning":155}],120:[function(e,t,n){"use strict";function r(e){try{e.focus()}catch(t){}}t.exports=r},{}],121:[function(e,t,n){"use strict";var r=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};t.exports=r},{}],122:[function(e,t,n){function r(){try{return document.activeElement||document.body}catch(e){return document.body}}t.exports=r},{}],123:[function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}t.exports=r},{}],124:[function(e,t,n){"use strict";function r(e){if(e.key){var t=a[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=o(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}var o=e("./getEventCharCode"),a={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=r},{"./getEventCharCode":123}],125:[function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=a[e];return r?!!n[r]:!1}function o(e){return r}var a={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=o},{}],126:[function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}t.exports=r},{}],127:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[a]);return"function"==typeof t?t:void 0}var o="function"==typeof Symbol&&Symbol.iterator,a="@@iterator";t.exports=r},{}],128:[function(e,t,n){function r(e){return a(!!i),d.hasOwnProperty(e)||(e="*"),s.hasOwnProperty(e)||(i.innerHTML="*"===e?" ":"<"+e+">"+e+">",s[e]=!i.firstChild),s[e]?d[e]:null}var o=e("./ExecutionEnvironment"),a=e("./invariant"),i=o.canUseDOM?document.createElement("div"):null,s={circle:!0,clipPath:!0,defs:!0,ellipse:!0,g:!0,line:!0,linearGradient:!0,path:!0,polygon:!0,polyline:!0,radialGradient:!0,rect:!0,stop:!0,text:!0},u=[1,''," "],c=[1,""],l=[3,""],p=[1,""," "],d={"*":[1,"?","
"],area:[1,""," "],col:[2,""],legend:[1,""," "],param:[1,""," "],tr:[2,""],optgroup:u,option:u,caption:c,colgroup:c,tbody:c,tfoot:c,thead:c,td:l,th:l,circle:p,clipPath:p,defs:p,ellipse:p,g:p,line:p,linearGradient:p,path:p,polygon:p,polyline:p,radialGradient:p,rect:p,stop:p,text:p};t.exports=r},{"./ExecutionEnvironment":21,"./invariant":136}],129:[function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function a(e,t){for(var n=r(e),a=0,i=0;n;){if(3===n.nodeType){if(i=a+n.textContent.length,t>=a&&i>=t)return{node:n,offset:t-a};a=i}n=r(o(n))}}t.exports=a},{}],130:[function(e,t,n){"use strict";function r(e){return e?e.nodeType===o?e.documentElement:e.firstChild:null}var o=9;t.exports=r},{}],131:[function(e,t,n){"use strict";function r(){return!a&&o.canUseDOM&&(a="textContent"in document.documentElement?"textContent":"innerText"),a}var o=e("./ExecutionEnvironment"),a=null;t.exports=r},{"./ExecutionEnvironment":21}],132:[function(e,t,n){"use strict";function r(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=r},{}],133:[function(e,t,n){function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;t.exports=r},{}],134:[function(e,t,n){"use strict";function r(e){return o(e).replace(a,"-ms-")}var o=e("./hyphenate"),a=/^ms-/;t.exports=r},{"./hyphenate":133}],135:[function(e,t,n){"use strict";function r(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function o(e,t){var n;if((null===e||e===!1)&&(e=i.emptyElement),"object"==typeof e){var o=e;n=t===o.type&&"string"==typeof o.type?s.createInternalComponent(o):r(o.type)?new o.type(o):new l}else"string"==typeof e||"number"==typeof e?n=s.createInstanceForText(e):c(!1);return n.construct(e),n._mountIndex=0,n._mountImage=null,n}var a=e("./ReactCompositeComponent"),i=e("./ReactEmptyComponent"),s=e("./ReactNativeComponent"),u=e("./Object.assign"),c=e("./invariant"),l=(e("./warning"),function(){});u(l.prototype,a.Mixin,{_instantiateReactComponent:o}),t.exports=o},{"./Object.assign":27,"./ReactCompositeComponent":38,"./ReactEmptyComponent":60,"./ReactNativeComponent":74,"./invariant":136,"./warning":155}],136:[function(e,t,n){"use strict";var r=function(e,t,n,r,o,a,i,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],l=0;u=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return c[l++]}))}throw u.framesToPop=1,u}};t.exports=r},{}],137:[function(e,t,n){"use strict";function r(e,t){if(!a.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var i=document.createElement("div");i.setAttribute(n,"return;"),r="function"==typeof i[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,a=e("./ExecutionEnvironment");a.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=r},{"./ExecutionEnvironment":21}],138:[function(e,t,n){function r(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=r},{}],139:[function(e,t,n){"use strict";function r(e){return e&&("INPUT"===e.nodeName&&o[e.type]||"TEXTAREA"===e.nodeName)}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=r},{}],140:[function(e,t,n){function r(e){return o(e)&&3==e.nodeType}var o=e("./isNode");t.exports=r},{"./isNode":138}],141:[function(e,t,n){"use strict";var r=e("./invariant"),o=function(e){var t,n={};r(e instanceof Object&&!Array.isArray(e));for(t in e)e.hasOwnProperty(t)&&(n[t]=t);return n};t.exports=o},{"./invariant":136}],142:[function(e,t,n){var r=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};t.exports=r},{}],143:[function(e,t,n){"use strict";function r(e,t,n){if(!e)return null;var r={};for(var a in e)o.call(e,a)&&(r[a]=t.call(n,e[a],a,e));return r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],144:[function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}t.exports=r},{}],145:[function(e,t,n){"use strict";function r(e){return a(o.isValidElement(e)),e}var o=e("./ReactElement"),a=e("./invariant");t.exports=r},{"./ReactElement":58,"./invariant":136}],146:[function(e,t,n){"use strict";var r,o=e("./ExecutionEnvironment");o.canUseDOM&&(r=window.performance||window.msPerformance||window.webkitPerformance),t.exports=r||{}},{"./ExecutionEnvironment":21}],147:[function(e,t,n){var r=e("./performance");r&&r.now||(r=Date);var o=r.now.bind(r);t.exports=o},{"./performance":146}],148:[function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=e("./escapeTextContentForBrowser");t.exports=r},{"./escapeTextContentForBrowser":117}],149:[function(e,t,n){"use strict";var r=e("./ExecutionEnvironment"),o=/^[ \r\n\t\f]/,a=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,i=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(i=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),r.canUseDOM){var s=document.createElement("div");s.innerHTML=" ",""===s.innerHTML&&(i=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),o.test(t)||"<"===t[0]&&a.test(t)){e.innerHTML="\ufeff"+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}t.exports=i},{"./ExecutionEnvironment":21}],150:[function(e,t,n){"use strict";var r=e("./ExecutionEnvironment"),o=e("./escapeTextContentForBrowser"),a=e("./setInnerHTML"),i=function(e,t){e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(i=function(e,t){a(e,o(t))})),t.exports=i},{"./ExecutionEnvironment":21,"./escapeTextContentForBrowser":117,"./setInnerHTML":149}],151:[function(e,t,n){"use strict";function r(e,t){if(e===t)return!0;var n;for(n in e)if(e.hasOwnProperty(n)&&(!t.hasOwnProperty(n)||e[n]!==t[n]))return!1;for(n in t)if(t.hasOwnProperty(n)&&!e.hasOwnProperty(n))return!1;return!0}t.exports=r},{}],152:[function(e,t,n){"use strict";function r(e,t){if(null!=e&&null!=t){var n=typeof e,r=typeof t;if("string"===n||"number"===n)return"string"===r||"number"===r;if("object"===r&&e.type===t.type&&e.key===t.key){var o=e._owner===t._owner;return o}}return!1}e("./warning");t.exports=r},{"./warning":155}],153:[function(e,t,n){function r(e){var t=e.length;if(o(!Array.isArray(e)&&("object"==typeof e||"function"==typeof e)),o("number"==typeof t),o(0===t||t-1 in e),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(n){}for(var r=Array(t),a=0;t>a;a++)r[a]=e[a];return r}var o=e("./invariant");t.exports=r},{"./invariant":136}],154:[function(e,t,n){"use strict";function r(e){return v[e]}function o(e,t){return e&&null!=e.key?i(e.key):t.toString(36)}function a(e){return(""+e).replace(g,r)}function i(e){return"$"+a(e)}function s(e,t,n,r,a){var u=typeof e;if(("undefined"===u||"boolean"===u)&&(e=null),null===e||"string"===u||"number"===u||c.isValidElement(e))return r(a,e,""===t?h+o(e,0):t,n),1;var p,v,g,y=0;if(Array.isArray(e))for(var E=0;Ea;++a)n=o[a],t=n.split("="),r[decodeURIComponent(t[0])]=decodeURIComponent(t[1]);return r}function u(e){var t,n,r,o,a=e.split(/\r?\n/),i={};a.pop();for(var s=0,u=a.length;u>s;++s)n=a[s],t=n.indexOf(":"),r=n.slice(0,t).toLowerCase(),o=g(n.slice(t+1)),i[r]=o;return i}function c(e){return e.split(/ *; */).shift()}function l(e){return m(e.split(/ *; */),function(e,t){var n=t.split(/ *= */),r=n.shift(),o=n.shift();return r&&o&&(e[r]=o),e},{})}function p(e,t){t=t||{},this.req=e,this.xhr=this.req.xhr,this.text="HEAD"!=this.req.method&&(""===this.xhr.responseType||"text"===this.xhr.responseType)||"undefined"==typeof this.xhr.responseType?this.xhr.responseText:null,this.statusText=this.req.xhr.statusText,this.setStatusProperties(this.xhr.status),this.header=this.headers=u(this.xhr.getAllResponseHeaders()),this.header["content-type"]=this.xhr.getResponseHeader("content-type"),this.setHeaderProperties(this.header),this.body="HEAD"!=this.req.method?this.parseBody(this.text?this.text:this.xhr.response):null}function d(e,t){var n=this;h.call(this),this._query=this._query||[],this.method=e,this.url=t,this.header={},this._header={},this.on("end",function(){var e=null,t=null;try{t=new p(n)}catch(r){return e=new Error("Parser is unable to parse the response"),e.parse=!0,e.original=r,n.callback(e)}if(n.emit("response",t),e)return n.callback(e,t);if(t.status>=200&&t.status<300)return n.callback(e,t);var o=new Error(t.statusText||"Unsuccessful HTTP response");o.original=e,o.response=t,o.status=t.status,n.callback(e||o,t)})}function f(e,t){return"function"==typeof t?new d("GET",e).end(t):1==arguments.length?new d("GET",e):new d(e,t)}var h=e("emitter"),m=e("reduce"),v="undefined"==typeof window?this||self:window;f.getXHR=function(){if(!(!v.XMLHttpRequest||v.location&&"file:"==v.location.protocol&&v.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}return!1};var g="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};f.serializeObject=i,f.parseString=s,f.types={html:"text/html",json:"application/json",xml:"application/xml",urlencoded:"application/x-www-form-urlencoded",form:"application/x-www-form-urlencoded","form-data":"application/x-www-form-urlencoded"},f.serialize={"application/x-www-form-urlencoded":i,"application/json":JSON.stringify},f.parse={"application/x-www-form-urlencoded":s,"application/json":JSON.parse},p.prototype.get=function(e){return this.header[e.toLowerCase()]},p.prototype.setHeaderProperties=function(e){var t=this.header["content-type"]||"";this.type=c(t);var n=l(t);for(var r in n)this[r]=n[r]},p.prototype.parseBody=function(e){var t=f.parse[this.type];return t&&e&&(e.length||e instanceof Object)?t(e):null},p.prototype.setStatusProperties=function(e){1223===e&&(e=204);var t=e/100|0;this.status=e,this.statusType=t,this.info=1==t,this.ok=2==t,this.clientError=4==t,this.serverError=5==t,this.error=4==t||5==t?this.toError():!1,this.accepted=202==e,this.noContent=204==e,this.badRequest=400==e,this.unauthorized=401==e,this.notAcceptable=406==e,this.notFound=404==e,this.forbidden=403==e},p.prototype.toError=function(){var e=this.req,t=e.method,n=e.url,r="cannot "+t+" "+n+" ("+this.status+")",o=new Error(r);return o.status=this.status,o.method=t,o.url=n,o},f.Response=p,h(d.prototype),d.prototype.use=function(e){return e(this),this},d.prototype.timeout=function(e){return this._timeout=e,this},d.prototype.clearTimeout=function(){return this._timeout=0,clearTimeout(this._timer),this},d.prototype.abort=function(){return this.aborted?void 0:(this.aborted=!0,this.xhr.abort(),this.clearTimeout(),this.emit("abort"),this)},d.prototype.set=function(e,t){if(a(e)){for(var n in e)this.set(n,e[n]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},d.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},d.prototype.getHeader=function(e){return this._header[e.toLowerCase()]},d.prototype.type=function(e){return this.set("Content-Type",f.types[e]||e),this},d.prototype.accept=function(e){return this.set("Accept",f.types[e]||e),this},d.prototype.auth=function(e,t){var n=btoa(e+":"+t);return this.set("Authorization","Basic "+n),this},d.prototype.query=function(e){return"string"!=typeof e&&(e=i(e)),e&&this._query.push(e),this},d.prototype.field=function(e,t){return this._formData||(this._formData=new v.FormData),this._formData.append(e,t),this},d.prototype.attach=function(e,t,n){return this._formData||(this._formData=new v.FormData),this._formData.append(e,t,n),this},d.prototype.send=function(e){var t=a(e),n=this.getHeader("Content-Type");if(t&&a(this._data))for(var r in e)this._data[r]=e[r];else"string"==typeof e?(n||this.type("form"),n=this.getHeader("Content-Type"),this._data="application/x-www-form-urlencoded"==n?this._data?this._data+"&"+e:e:(this._data||"")+e):this._data=e;return!t||o(e)?this:(n||this.type("json"),this)},d.prototype.callback=function(e,t){var n=this._callback;this.clearTimeout(),n(e,t)},d.prototype.crossDomainError=function(){var e=new Error("Origin is not allowed by Access-Control-Allow-Origin");e.crossDomain=!0,this.callback(e)},d.prototype.timeoutError=function(){var e=this._timeout,t=new Error("timeout of "+e+"ms exceeded");t.timeout=e,this.callback(t)},d.prototype.withCredentials=function(){return this._withCredentials=!0,this},d.prototype.end=function(e){var t=this,n=this.xhr=f.getXHR(),a=this._query.join("&"),i=this._timeout,s=this._formData||this._data;this._callback=e||r,n.onreadystatechange=function(){if(4==n.readyState){var e;try{e=n.status}catch(r){e=0}if(0==e){if(t.timedout)return t.timeoutError();if(t.aborted)return;return t.crossDomainError()}t.emit("end")}};var u=function(e){e.total>0&&(e.percent=e.loaded/e.total*100),t.emit("progress",e)};this.hasListeners("progress")&&(n.onprogress=u);try{n.upload&&this.hasListeners("progress")&&(n.upload.onprogress=u)}catch(c){}if(i&&!this._timer&&(this._timer=setTimeout(function(){t.timedout=!0,t.abort()},i)),a&&(a=f.serializeObject(a),this.url+=~this.url.indexOf("?")?"&"+a:"?"+a),n.open(this.method,this.url,!0),this._withCredentials&&(n.withCredentials=!0),"GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof s&&!o(s)){var l=f.serialize[this.getHeader("Content-Type")];l&&(s=l(s))}for(var p in this.header)null!=this.header[p]&&n.setRequestHeader(p,this.header[p]);return this.emit("request",this),n.send(s),this},f.Request=d,f.get=function(e,t,n){var r=f("GET",e);return"function"==typeof t&&(n=t,t=null),t&&r.query(t),n&&r.end(n),r},f.head=function(e,t,n){var r=f("HEAD",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},f.del=function(e,t){var n=f("DELETE",e);return t&&n.end(t),n},f.patch=function(e,t,n){var r=f("PATCH",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},f.post=function(e,t,n){var r=f("POST",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},f.put=function(e,t,n){var r=f("PUT",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},t.exports=f},{emitter:158,reduce:159}],158:[function(e,t,n){function r(e){return e?o(e):void 0}function o(e){for(var t in r.prototype)e[t]=r.prototype[t];return e}t.exports=r,r.prototype.on=r.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},r.prototype.once=function(e,t){function n(){r.off(e,n),t.apply(this,arguments)}var r=this;return this._callbacks=this._callbacks||{},n.fn=t,this.on(e,n),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[e];if(!n)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var r,o=0;or;++r)n[r].apply(this,t)}return this},r.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[e]||[]},r.prototype.hasListeners=function(e){return!!this.listeners(e).length}},{}],159:[function(e,t,n){t.exports=function(e,t,n){for(var r=0,o=e.length,a=3==arguments.length?n:e[r++];o>r;)a=t.call(null,a,e[r],++r,e);return a}},{}],160:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}var o=e("react"),a=r(o),i=e("./components/mycomponent.jsx"),s=r(i);window.React=a["default"],a["default"].render(a["default"].createElement(s["default"],null),document.getElementById("content"))},{"./components/mycomponent.jsx":161,react:156}],161:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0});var o=e("react"),a=r(o),i=e("superagent"),s=r(i),u=e("moment"),c=r(u),l=a["default"].createClass({displayName:"Mycomponent",getInitialState:function(){return{score:0,numPeopleInReact:0,numPeopleInAngular:0,turn:0,data:[],displayingAnswer:!1,currentAnswer:null,currentAnswerCorrect:null}},componentWillMount:function(){var e=this;s["default"].get("/data").end(function(t,n){t||e.setState({data:JSON.parse(n.text)})})},renderLoading:function(){return a["default"].createElement("div",{className:"sk-spinner sk-spinner-double-bounce"},a["default"].createElement("div",{className:"sk-double-bounce1"}),a["default"].createElement("div",{className:"sk-double-bounce2"}))},currentPersonData:function(){return this.state.data[this.state.turn]},renderCurrentPersonPhoto:function(e){return e?a["default"].createElement("img",{src:e,width:"200",className:"img-thumbnail"}):a["default"].createElement("img",{src:"http://lorempixel.com/300/300/animals/p"+this.state.turn,width:"200",className:"img-thumbnail"})},checkAnswer:function(e){var t=this.currentPersonData(),n=t.reactOrAngular==e,r=n?this.state.score+1:this.state.score,o=this.state.numPeopleInReact,a=this.state.numPeopleInAngular;"react"===t.reactOrAngular?o++:a++,this.setState({currentAnswer:e,displayingAnswer:!0,currentAnswerCorrect:t.reactOrAngular==e,score:r,numPeopleInReact:o,numPeopleInAngular:a})},showNextPerson:function(){this.setState({displayingAnswer:!1,turn:this.state.turn+1})},renderChoicesOrAnswer:function(){var e=this;if(this.state.displayingAnswer){var t="",n="",r="",o="";return"react"==this.state.currentAnswer?(t=this.state.currentAnswerCorrect?"✓ ":"✗ ",r=this.state.currentAnswerCorrect?"btn-success":"btn-danger",o="disabled"):(n=this.state.currentAnswerCorrect?"✓ ":"✗ ",o=this.state.currentAnswerCorrect?"btn-success":"btn-danger",r="disabled"),a["default"].createElement("div",null,a["default"].createElement("button",{className:"btn btn-default btn-lg "+r},a["default"].createElement("strong",null,t,"ReactJS")," Paris Meetup?")," ",a["default"].createElement("button",{className:"btn btn-default btn-lg "+o},a["default"].createElement("strong",null,n,"AngularJS")," Paris Meetup?"),a["default"].createElement("h3",null,this.state.currentAnswerCorrect?"Correct!":"Incorrect!"," Score: ",a["default"].createElement("strong",null,this.state.score)," out of ",a["default"].createElement("strong",null,this.state.turn+1)),a["default"].createElement("br",null),a["default"].createElement("button",{className:"btn btn-primary btn-lg",onClick:this.showNextPerson},a["default"].createElement("strong",null,"Next Person →")))}return a["default"].createElement("div",null,a["default"].createElement("button",{className:"btn btn-default btn-lg",onClick:function(){return e.checkAnswer("react")}},a["default"].createElement("strong",null,"ReactJS")," Paris Meetup?")," ",a["default"].createElement("button",{className:"btn btn-default btn-lg",onClick:function(){return e.checkAnswer("angular")}},a["default"].createElement("strong",null,"AngularJS")," Paris Meetup?"),a["default"].createElement("hr",{className:"small-hr"}),this.renderStats())},renderCurrentPerson:function(){var e=this.currentPersonData();return a["default"].createElement("div",null,this.renderCurrentPersonPhoto(e.photoUrl),a["default"].createElement("h2",null,a["default"].createElement("strong",null,e.name)),a["default"].createElement("p",{className:"lead"},"On ",c["default"](e.joined).format("Do MMM YYYY"),", this person joined..."),this.renderChoicesOrAnswer())},renderStats:function(){return a["default"].createElement("div",null,a["default"].createElement("h4",null,a["default"].createElement("strong",null,"Stats")),a["default"].createElement("p",null,"Score: ",a["default"].createElement("strong",null,this.state.score)," out of ",a["default"].createElement("strong",null,this.state.turn)),a["default"].createElement("p",null,a["default"].createElement("strong",null,this.state.numPeopleInReact)," People in ReactJS Paris"),a["default"].createElement("p",null,a["default"].createElement("strong",null,this.state.numPeopleInAngular)," People in AngularJS Paris"))},render:function(){return this.state.data.length?this.state.turn==this.state.data.length?a["default"].createElement("div",null,a["default"].createElement("h1",null,"Game Over!"),this.renderStats()):a["default"].createElement("div",null,a["default"].createElement("p",{className:"text-quiet"},a["default"].createElement("strong",null,"React Paris or Angular Paris")," by Shu Uesugi (@chibicode)"),this.renderCurrentPerson()):this.renderLoading()}});n["default"]=l,t.exports=n["default"]},{moment:1,react:156,superagent:157}]},{},[160]);
+//# sourceMappingURL=app.js.map
\ No newline at end of file
diff --git a/react-paris-or-angular-paris/public/js/app.js.map b/react-paris-or-angular-paris/public/js/app.js.map
new file mode 100644
index 0000000..375a027
--- /dev/null
+++ b/react-paris-or-angular-paris/public/js/app.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["app.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","global","factory","define","amd","moment","this","utils_hooks__hooks","hookCallback","apply","arguments","setHookCallback","callback","isArray","input","Object","prototype","toString","isDate","Date","map","arr","fn","res","push","hasOwnProp","b","hasOwnProperty","extend","valueOf","create_utc__createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","getParsingFlags","m","_pf","valid__isValid","_isValid","flags","isNaN","_d","getTime","_strict","undefined","bigHour","valid__createInvalid","NaN","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","isMoment","obj","toInt","argumentForCoercion","coercedNumber","value","isFinite","Math","floor","ceil","compareArrays","array1","array2","dontConvert","len","min","lengthDiff","abs","diffs","Locale","normalizeLocale","key","toLowerCase","replace","chooseLocale","names","j","next","split","loadLocale","slice","join","name","oldLocale","locales","globalLocale","_abbr","locale_locales__getSetGlobalLocale","values","data","locale_locales__getLocale","defineLocale","abbr","set","addUnitAlias","unit","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","makeGetSet","keepTime","get_set__set","get_set__get","mom","getSet","zeroFill","number","targetLength","forceSign","output","sign","addFormatToken","token","padded","ordinal","func","formatTokenFunctions","localeData","removeFormattingTokens","match","makeFormatFunction","array","formattingTokens","Function","formatMoment","isValid","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","test","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","RegExp","unescapeFormat","matched","p1","p2","p3","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","year","month","UTC","getUTCDate","localeMonths","_months","localeMonthsShort","_monthsShort","localeMonthsParse","monthName","_monthsParse","_longMonthsParse","_shortMonthsParse","months","monthsShort","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","msgWithStack","stack","deprecateSimple","deprecations","configFromISO","string","from_string__isoRegex","exec","isoDates","isoTimes","matchOffset","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","createDate","y","d","h","M","ms","setFullYear","createUTCDate","setUTCFullYear","daysInYear","isLeapYear","getIsLeapYear","weekOfYear","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","end","daysToDayOfWeek","day","local__createLocal","add","week","dayOfYear","localeWeek","_week","dow","doy","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","dayOfYearFromWeeks","weekday","daysToAdd","getUTCDay","getSetDayOfYear","round","clone","startOf","defaults","c","currentDateArray","now","_useUTC","getUTCFullYear","getUTCMonth","getFullYear","getMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","w","weekYear","temp","GG","W","E","gg","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","substr","indexOf","meridiemFixWrap","_meridiem","hour","meridiem","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","second","millisecond","createFromConfig","preparse","configFromInput","parseInt","isUTC","pickBy","moments","args","max","Duration","duration","years","quarters","quarter","weeks","days","hours","minutes","seconds","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","offset","separator","utcOffset","offsetFromString","matches","chunk","parts","chunkOffset","cloneWithOffset","model","diff","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","localAdjust","_changeInProgress","add_subtract__addSubtract","create__createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","other","toArray","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","create__isoRegex","parseIso","momentsDifference","inp","parseFloat","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","moment_calendar__calendar","time","sod","calendar","inputMs","endOf","isBetween","isSame","absFloor","asFloat","delta","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","moment_format__toISOString","toISOString","toDate","inputString","defaultFormat","postformat","withoutSuffix","humanize","fromNow","toNow","newLocaleData","isoWeekday","to_type__valueOf","unix","moment_valid__isValid","parsingFlags","invalidAt","addWeekYearFormatToken","getter","weeksInYear","getSetWeekYear","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","getSetQuarter","parseWeekday","weekdaysParse","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","localeWeekdaysParse","weekdayName","_weekdaysParse","weekdays","weekdaysShort","weekdaysMin","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","lowercase","matchMeridiem","_meridiemParse","localeIsPM","charAt","localeMeridiem","isLower","millisecond__milliseconds","getZoneAbbr","getZoneName","moment__createUnix","moment__createInZone","parseZone","locale_calendar__calendar","_calendar","_longDateFormat","toUpperCase","_invalidDate","_ordinal","preParsePostFormat","relative__relativeTime","isFuture","_relativeTime","pastFuture","locale_set__set","_ordinalParseLenient","_ordinalParse","source","lists__get","index","field","setter","list","count","out","lists__listMonths","lists__listMonthsShort","lists__listWeekdays","lists__listWeekdaysShort","lists__listWeekdaysMin","duration_abs__abs","mathAbs","duration_add_subtract__addSubtract","duration_add_subtract__add","duration_add_subtract__subtract","bubble","daysToYears","yearsToDays","as","duration_as__valueOf","makeAs","alias","duration_get__get","makeGetter","substituteTimeAgo","relativeTime","duration_humanize__relativeTime","posNegDuration","thresholds","duration_humanize__getSetRelativeTimeThreshold","threshold","limit","withSuffix","iso_string__toISOString","Y","iso_string__abs","D","total","asSeconds","match1","match2","match3","match4","match6","match1to2","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","defaultLocaleMonthsShort","parseTwoDigitYear","getSetYear","defaultLocaleWeek","prototypeMin","prototypeMax","add_subtract__add","add_subtract__subtract","lang","isoWeekYear","getSetDayOfMonth","invalidWeekday","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","defaultLocaleMeridiemParse","getSetHour","getSetMinute","getSetSecond","getSetMillisecond","momentPrototype__proto","get","toJSON","isoWeek","isoWeeks","isoWeeksInYear","isDST","isDSTShifted","zoneAbbr","zoneName","dates","zone","momentPrototype","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","prototype__proto","firstDayOfYear","ordinalParse","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","duration_get__milliseconds","duration_prototype__proto","toIsoString","version","invalid","relativeTimeThreshold","_moment",2,"focusNode","AutoFocusMixin","componentDidMount","props","autoFocus","getDOMNode","./focusNode",3,"isPresto","opera","window","isKeypressCommand","nativeEvent","ctrlKey","altKey","metaKey","getCompositionEventType","topLevelType","topLevelTypes","topCompositionStart","eventTypes","compositionStart","topCompositionEnd","compositionEnd","topCompositionUpdate","compositionUpdate","isFallbackCompositionStart","topKeyDown","keyCode","START_KEYCODE","isFallbackCompositionEnd","topKeyUp","END_KEYCODES","topKeyPress","topMouseDown","topBlur","getDataFromCustomEvent","detail","extractCompositionEvent","topLevelTarget","topLevelTargetID","eventType","fallbackData","canUseCompositionEvent","currentComposition","useFallbackCompositionData","getData","FallbackCompositionState","getPooled","event","SyntheticCompositionEvent","customData","EventPropagators","accumulateTwoPhaseDispatches","getNativeBeforeInputChars","which","SPACEBAR_CODE","hasSpaceKeypress","SPACEBAR_CHAR","topTextInput","chars","getFallbackBeforeInputChars","release","topPaste","String","fromCharCode","extractBeforeInputEvent","canUseTextInputEvent","SyntheticInputEvent","beforeInput","EventConstants","ExecutionEnvironment","keyOf","canUseDOM","documentMode","document","phasedRegistrationNames","bubbled","onBeforeInput","captured","onBeforeInputCapture","dependencies","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","BeforeInputEventPlugin","extractEvents","./EventConstants","./EventPropagators","./ExecutionEnvironment","./FallbackCompositionState","./SyntheticCompositionEvent","./SyntheticInputEvent","./keyOf",4,"prefixKey","prefix","substring","isUnitlessNumber","boxFlex","boxFlexGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","fontWeight","lineClamp","lineHeight","opacity","order","orphans","widows","zIndex","zoom","fillOpacity","strokeDashoffset","strokeOpacity","strokeWidth","prefixes","keys","forEach","shorthandPropertyExpansions","background","backgroundImage","backgroundPosition","backgroundRepeat","backgroundColor","border","borderWidth","borderStyle","borderColor","borderBottom","borderBottomWidth","borderBottomStyle","borderBottomColor","borderLeft","borderLeftWidth","borderLeftStyle","borderLeftColor","borderRight","borderRightWidth","borderRightStyle","borderRightColor","borderTop","borderTopWidth","borderTopStyle","borderTopColor","font","fontStyle","fontVariant","fontSize","fontFamily","CSSProperty",5,"dangerousStyleValue","hyphenateStyleName","memoizeStringOnly","processStyleName","styleName","styleFloatAccessor","documentElement","style","cssFloat","CSSPropertyOperations","createMarkupForStyles","styles","serialized","styleValue","setValueForStyles","node","expansion","individualStyleName","./CSSProperty","./camelizeStyleName","./dangerousStyleValue","./hyphenateStyleName","./memoizeStringOnly","./warning",6,"CallbackQueue","_callbacks","_contexts","PooledClass","assign","invariant","enqueue","context","notifyAll","callbacks","contexts","reset","destructor","addPoolingTo","./Object.assign","./PooledClass","./invariant",7,"shouldUseChangeEvent","elem","nodeName","type","manualDispatchChangeEvent","SyntheticEvent","change","activeElementID","ReactUpdates","batchedUpdates","runEventInBatch","EventPluginHub","enqueueEvents","processEventQueue","startWatchingForChangeEventIE8","target","targetID","activeElement","attachEvent","stopWatchingForChangeEventIE8","detachEvent","getTargetIDForChangeEvent","topChange","handleEventsForChangeEventIE8","topFocus","startWatchingForValueChange","activeElementValue","activeElementValueProp","getOwnPropertyDescriptor","constructor","defineProperty","newValueProp","handlePropertyChange","stopWatchingForValueChange","propertyName","srcElement","getTargetIDForInputEvent","topInput","handleEventsForInputEventIE","getTargetIDForInputEventIE","topSelectionChange","shouldUseClickEvent","getTargetIDForClickEvent","topClick","isEventSupported","isTextInputElement","onChange","onChangeCapture","doesChangeEventBubble","isInputEventSupported","ChangeEventPlugin","getTargetIDFunc","handleEventFunc","./EventPluginHub","./ReactUpdates","./SyntheticEvent","./isEventSupported","./isTextInputElement",8,"nextReactRootIndex","ClientReactRootIndex","createReactRootIndex",9,"insertChildAt","parentNode","childNode","insertBefore","childNodes","Danger","ReactMultiChildUpdateTypes","setTextContent","DOMChildrenOperations","dangerouslyReplaceNodeWithMarkup","updateTextContent","processUpdates","updates","markupList","update","initialChildren","updatedChildren","MOVE_EXISTING","REMOVE_NODE","updatedIndex","fromIndex","updatedChild","parentID","renderedMarkup","dangerouslyRenderMarkup","removeChild","k","INSERT_MARKUP","markupIndex","toIndex","TEXT_CONTENT","textContent","./Danger","./ReactMultiChildUpdateTypes","./setTextContent",10,"checkMask","bitmask","DOMPropertyInjection","MUST_USE_ATTRIBUTE","MUST_USE_PROPERTY","HAS_SIDE_EFFECTS","HAS_BOOLEAN_VALUE","HAS_NUMERIC_VALUE","HAS_POSITIVE_NUMERIC_VALUE","HAS_OVERLOADED_BOOLEAN_VALUE","injectDOMPropertyConfig","domPropertyConfig","Properties","DOMAttributeNames","DOMPropertyNames","DOMMutationMethods","isCustomAttribute","DOMProperty","_isCustomAttributeFunctions","propName","isStandardName","lowerCased","getPossibleStandardName","attributeName","getAttributeName","getPropertyName","getMutationMethod","propConfig","mustUseAttribute","mustUseProperty","hasSideEffects","hasBooleanValue","hasNumericValue","hasPositiveNumericValue","hasOverloadedBooleanValue","defaultValueCache","ID_ATTRIBUTE_NAME","isCustomAttributeFn","getDefaultValueForProperty","testElement","nodeDefaults","createElement","injection",11,"shouldIgnoreValue","quoteAttributeValueForBrowser","DOMPropertyOperations","createMarkupForID","id","createMarkupForProperty","setValueForProperty","mutationMethod","deleteValueForProperty","setAttribute","removeAttribute","defaultValue","./DOMProperty","./quoteAttributeValueForBrowser",12,"getNodeName","markup","createNodesFromMarkup","emptyFunction","getMarkupWrap","OPEN_TAG_NAME_EXP","RESULT_INDEX_ATTR","markupByNodeName","resultList","resultListAssignmentCount","resultIndex","markupListByNodeName","renderNodes","renderNode","hasAttribute","getAttribute","oldChild","tagName","newChild","replaceChild","./createNodesFromMarkup","./emptyFunction","./getMarkupWrap",13,"DefaultEventPluginOrder","ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","SelectEventPlugin","AnalyticsEventPlugin","MobileSafariClickEventPlugin",14,"SyntheticMouseEvent","ReactMount","getFirstReactDOM","mouseEnter","registrationName","onMouseEnter","topMouseOut","topMouseOver","mouseLeave","onMouseLeave","extractedEvents","relatedTarget","fromElement","win","doc","ownerDocument","defaultView","parentWindow","toElement","fromID","getID","toID","leave","enter","accumulateEnterLeaveDispatches","./ReactMount","./SyntheticMouseEvent",15,"keyMirror","PropagationPhases","topContextMenu","topCopy","topCut","topDoubleClick","topDrag","topDragEnd","topDragEnter","topDragExit","topDragLeave","topDragOver","topDragStart","topDrop","topError","topLoad","topMouseMove","topMouseUp","topReset","topScroll","topSubmit","topTouchCancel","topTouchEnd","topTouchMove","topTouchStart","topWheel","./keyMirror",16,"EventListener","listen","addEventListener","remove","removeEventListener","capture","registerDefault",17,"EventPluginRegistry","EventPluginUtils","accumulateInto","forEachAccumulated","listenerBank","eventQueue","executeDispatchesAndRelease","executeDispatch","PluginModule","getPluginModuleForEvent","executeDispatchesInOrder","isPersistent","InstanceHandle","injectMount","injectInstanceHandle","InjectedInstanceHandle","getInstanceHandle","injectEventPluginOrder","injectEventPluginsByName","eventNameDispatchConfigs","registrationNameModules","putListener","listener","bankForRegistrationName","getListener","deleteListener","deleteAllListeners","events","plugins","possiblePlugin","processingEventQueue","__purge","__getListenerBank","./EventPluginRegistry","./EventPluginUtils","./accumulateInto","./forEachAccumulated",18,"recomputePluginOrdering","EventPluginOrder","pluginName","namesToPlugins","pluginIndex","publishedEvents","eventName","publishEventForPlugin","dispatchConfig","phaseName","phasedRegistrationName","publishRegistrationName","registrationNameDependencies","InjectedEventPluginOrder","Array","injectedNamesToPlugins","isOrderingDirty","phase","_resetEventPlugins",19,"isEndish","isMoveish","isStartish","forEachEventDispatch","cb","dispatchListeners","_dispatchListeners","dispatchIDs","_dispatchIDs","isPropagationStopped","domID","currentTarget","Mount","getNode","returnValue","executeDispatchesInOrderStopAtTrueImpl","executeDispatchesInOrderStopAtTrue","executeDirectDispatch","dispatchListener","dispatchID","hasDispatches","InjectedMount","useTouchEvents",20,"listenerAtPhase","propagationPhase","accumulateDirectionalDispatches","upwards","accumulateTwoPhaseDispatchesSingle","traverseTwoPhase","dispatchMarker","accumulateDispatches","ignoredDirection","accumulateDirectDispatchesSingle","traverseEnterLeave","accumulateDirectDispatches",21,"canUseWorkers","Worker","canUseEventListeners","canUseViewport","screen","isInWorker",22,"root","_root","_startText","getText","_fallbackText","getTextContentAccessor","start","startValue","startLength","endValue","endLength","minEnd","sliceTail","./getTextContentAccessor",23,"hasSVG","implementation","hasFeature","HTMLDOMPropertyConfig","bind","accept","acceptCharset","accessKey","action","allowFullScreen","allowTransparency","alt","async","autoComplete","autoPlay","cellPadding","cellSpacing","charSet","checked","classID","className","cols","colSpan","content","contentEditable","contextMenu","controls","coords","crossOrigin","dateTime","defer","dir","disabled","download","draggable","encType","form","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","icon","label","loop","low","manifest","marginHeight","marginWidth","maxLength","media","mediaGroup","method","multiple","muted","noValidate","open","optimum","pattern","placeholder","poster","preload","radioGroup","readOnly","rel","required","role","rows","rowSpan","sandbox","scope","scoped","scrolling","seamless","selected","shape","size","sizes","span","spellCheck","src","srcDoc","srcSet","step","tabIndex","title","useMap","width","wmode","autoCapitalize","autoCorrect","itemProp","itemScope","itemType","itemID","itemRef","property","unselectable",24,"_assertSingleLink","checkedLink","valueLink","_assertValueLink","_assertCheckedLink","_handleLinkedValueChange","requestChange","_handleLinkedCheckChange","ReactPropTypes","hasReadOnlyValue","button","checkbox","image","radio","submit","LinkedValueUtils","Mixin","propTypes","componentName","getValue","getChecked","getOnChange","./ReactPropTypes",25,"ReactBrowserEventEmitter","LocalEventTrapMixin","trapBubbledEvent","handlerBaseName","isMounted","_localEventListeners","componentWillUnmount","./ReactBrowserEventEmitter",26,"onclick",27,"sources","TypeError","nextIndex","nextSource",28,"oneArgumentPooler","copyFieldsFrom","Klass","instancePool","instance","pop","twoArgumentPooler","a1","a2","threeArgumentPooler","a3","fiveArgumentPooler","a4","a5","standardReleaser","poolSize","DEFAULT_POOL_SIZE","DEFAULT_POOLER","CopyConstructor","pooler","NewKlass",29,"ReactChildren","ReactComponent","ReactClass","ReactContext","ReactCurrentOwner","ReactElement","ReactDOM","ReactDOMTextComponent","ReactDefaultInjection","ReactInstanceHandles","ReactPerf","ReactReconciler","ReactServerRendering","findDOMNode","onlyChild","inject","createFactory","cloneElement","render","measure","React","Children","only","Component","DOM","PropTypes","initializeTouchEvents","shouldUseTouch","createClass","createMixin","mixin","constructAndRenderComponent","constructAndRenderComponentByID","renderToString","renderToStaticMarkup","unmountComponentAtNode","isValidElement","withContext","__spread","__REACT_DEVTOOLS_GLOBAL_HOOK__","CurrentOwner","InstanceHandles","Reconciler","TextComponent","./ReactChildren","./ReactClass","./ReactComponent","./ReactContext","./ReactCurrentOwner","./ReactDOM","./ReactDOMTextComponent","./ReactDefaultInjection","./ReactElement","./ReactElementValidator","./ReactInstanceHandles","./ReactPerf","./ReactReconciler","./ReactServerRendering","./findDOMNode","./onlyChild",30,"ReactBrowserComponentMixin",31,"getListeningForDocument","mountAt","topListenersIDKey","reactTopListenersCounter","alreadyListeningTo","ReactEventEmitterMixin","ViewportMetrics","isMonitoringScrollValue","topEventMapping","random","ReactEventListener","injectReactEventListener","setHandleTopLevel","handleTopLevel","setEnabled","enabled","isEnabled","listenTo","contentDocumentHandle","isListening","dependency","trapCapturedEvent","WINDOW_HANDLE","handle","ensureScrollValueMonitoring","refresh","refreshScrollValues","monitorScrollValue","./ReactEventEmitterMixin","./ViewportMetrics",32,"flattenChildren","instantiateReactComponent","shouldUpdateReactComponent","ReactChildReconciler","instantiateChildren","nestedChildNodes","transaction","children","child","childInstance","updateChildren","prevChildren","nextNestedChildNodes","nextChildren","prevChild","prevElement","_currentElement","nextElement","receiveComponent","unmountComponent","nextChildInstance","unmountChildren","renderedChildren","renderedChild","./flattenChildren","./instantiateReactComponent","./shouldUpdateReactComponent",33,"ForEachBookKeeping","forEachFunction","forEachContext","forEachSingleChild","traverseContext","forEachBookKeeping","forEachChildren","forEachFunc","traverseAllChildren","MapBookKeeping","mapResult","mapFunction","mapContext","mapSingleChildIntoContext","mapBookKeeping","keyUnique","mappedChild","mapChildren","ReactFragment","create","forEachSingleChildDummy","countChildren","./ReactFragment","./traverseAllChildren",34,"validateMethodOverride","proto","specPolicy","ReactClassInterface","ReactClassMixin","SpecPolicy","OVERRIDE_BASE","DEFINE_MANY","DEFINE_MANY_MERGED","mixSpecIntoComponent","Constructor","spec","MIXINS_KEY","RESERVED_SPEC_KEYS","mixins","isReactClassMethod","isAlreadyDefined","markedDontBind","__reactDontBind","isFunction","shouldAutoBind","__reactAutoBindMap","createMergedResultFunction","createChainedFunction","mixStaticSpecIntoComponent","statics","isReserved","isInherited","mergeIntoWithNoDuplicateKeys","one","two","bindAutoBindMethod","component","boundMethod","bindAutoBindMethods","autoBindKey","ReactErrorUtils","guard","displayName","ReactInstanceMap","ReactLifeCycle","ReactUpdateQueue","DEFINE_ONCE","injectedMixins","contextTypes","childContextTypes","getDefaultProps","getInitialState","getChildContext","componentWillMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","updateComponent","replaceState","newState","enqueueReplaceState","enqueueCallback","internalInstance","currentlyMountingInstance","setProps","partialProps","enqueueSetProps","replaceProps","newProps","enqueueReplaceProps","ReactClassComponent","state","initialState","defaultProps","methodName","injectMixin","./ReactErrorUtils","./ReactInstanceMap","./ReactLifeCycle","./ReactPropTypeLocationNames","./ReactPropTypeLocations","./ReactUpdateQueue",35,"setState","partialState","enqueueSetState","forceUpdate","enqueueForceUpdate",36,"ReactDOMIDOperations","ReactComponentBrowserEnvironment","processChildrenUpdates","dangerouslyProcessChildrenUpdates","replaceNodeWithMarkupByID","dangerouslyReplaceNodeWithMarkupByID","unmountIDFromEnvironment","rootNodeID","purgeID","./ReactDOMIDOperations",37,"injected","ReactComponentEnvironment","injectEnvironment","environment",38,"getDeclarationErrorAddendum","owner","_owner","getName","ReactNativeComponent","ReactPropTypeLocations","emptyObject","nextMountID","ReactCompositeComponentMixin","construct","element","_rootNodeID","_instance","_pendingElement","_pendingStateQueue","_pendingReplaceState","_pendingForceUpdate","_renderedComponent","_context","_mountOrder","_isTopLevel","_pendingCallbacks","mountComponent","rootID","publicProps","_processProps","publicContext","_processContext","getComponentClassForElement","inst","refs","childContext","renderedElement","previouslyMounting","_processPendingState","_getValidatedChildContext","_renderValidatedComponent","_instantiateReactComponent","_mergeChildContext","getReactMountReady","previouslyUnmounting","currentlyUnmountingInstance","_setPropsInternal","cloneAndReplaceProps","enqueueUpdate","_maskContext","maskedContext","contextName","currentContext","_checkPropTypes","location","error","ex","nextContext","prevContext","performUpdateIfNecessary","_warnIfContextsDiffer","ownerBasedContext","parentBasedContext","parentKeys","sort","prevParentElement","nextParentElement","prevUnmaskedContext","nextUnmaskedContext","nextProps","nextState","shouldUpdate","_performComponentUpdate","queue","partial","unmaskedContext","prevProps","prevState","_updateRenderedComponent","prevComponentInstance","prevRenderedElement","nextRenderedElement","thisID","prevComponentID","nextMarkup","_replaceNodeWithMarkupByID","_renderValidatedComponentWithoutOwnerOrContext","renderedComponent","previousContext","current","attachRef","ref","getPublicInstance","detachRef","measureMethods","ReactCompositeComponent","./ReactComponentEnvironment","./ReactNativeComponent","./emptyObject",39,"newContext","scopedCallback","result",40,41,"createDOMFactory","tag","mapObject","address","area","article","aside","audio","bdi","bdo","big","blockquote","body","br","canvas","caption","cite","col","colgroup","datalist","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","img","ins","kbd","keygen","legend","li","link","main","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","p","param","picture","pre","progress","q","rp","rt","ruby","samp","script","section","select","small","strong","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","tr","track","ul","var","video","wbr","circle","clipPath","defs","ellipse","g","line","linearGradient","mask","path","polygon","polyline","radialGradient","rect","stop","svg","text","tspan","./mapObject",42,"mouseListenerNames","onClick","onDoubleClick","onMouseDown","onMouseMove","onMouseUp","onClickCapture","onDoubleClickCapture","onMouseDownCapture","onMouseMoveCapture","onMouseUpCapture","ReactDOMButton","./AutoFocusMixin","./ReactBrowserComponentMixin",43,"assertValidProps","dangerouslySetInnerHTML","container","findReactContainerForID","nodeType","ELEMENT_NODE_TYPE","getPutListenerQueue","enqueuePutListener","validateDangerousTag","validatedTagCache","VALID_TAG_REGEX","ReactDOMComponent","_tag","_renderedChildren","_previousStyleCopy","ReactMultiChild","escapeTextContentForBrowser","CONTENT_TYPES","STYLE","BackendIDOperations","omittedCloseTags","closeTag","_createOpenTagMarkupAndPutListeners","_createContentMarkup","propKey","propValue","markupForID","innerHTML","__html","contentToUse","childrenToUse","mountImages","mountChildren","_updateDOMProperties","_updateDOMChildren","lastProps","styleUpdates","lastStyle","deletePropertyByID","nextProp","lastProp","updatePropertyByID","updateStylesByID","lastContent","nextContent","lastHtml","nextHtml","lastChildren","lastHasContentOrHtml","nextHasContentOrHtml","updateInnerHTMLByID","injectIDOperations","IDOperations","./CSSPropertyOperations","./DOMPropertyOperations","./ReactComponentBrowserEnvironment","./ReactMultiChild","./escapeTextContentForBrowser",44,"ReactDOMForm","./LocalEventTrapMixin",45,"setInnerHTML","INVALID_PROPERTY_ERRORS","updateTextContentByID","./DOMChildrenOperations","./setInnerHTML",46,"ReactDOMIframe",47,"ReactDOMImg",48,"forceUpdateIfMounted","instancesByReactID","ReactDOMInput","initialChecked","defaultChecked","initialValue","_handleChange","rootNode","asap","queryRoot","group","querySelectorAll","JSON","stringify","groupLen","otherNode","otherID","otherInstance","./LinkedValueUtils",49,"ReactDOMOption",50,"updateOptionsIfPendingUpdateAndMounted","_pendingUpdate","updateOptions","selectValueType","selectedValue","options","ReactDOMSelect",51,"isCollapsed","anchorNode","anchorOffset","focusOffset","getIEOffsets","selection","selectedRange","createRange","selectedLength","fromStart","duplicate","moveToElementText","setEndPoint","startOffset","endOffset","getModernOffsets","getSelection","rangeCount","currentRange","getRangeAt","isSelectionCollapsed","rangeLength","tempRange","cloneRange","selectNodeContents","setEnd","startContainer","isTempRangeCollapsed","endContainer","detectionRange","setStart","isBackward","collapsed","setIEOffsets","offsets","range","moveStart","moveEnd","setModernOffsets","startMarker","getNodeForCharacterOffset","endMarker","removeAllRanges","addRange","useIEOffsets","ReactDOMSelection","getOffsets","setOffsets","./getNodeForCharacterOffset",52,"_stringText","_mountIndex","escapedText","nextText","nextStringText","./ReactDOMComponent",53,"ReactDOMTextarea",54,"ReactDefaultBatchingStrategyTransaction","reinitializeTransaction","Transaction","RESET_BATCHED_UPDATES","initialize","close","ReactDefaultBatchingStrategy","isBatchingUpdates","FLUSH_BATCHED_UPDATES","flushBatchedUpdates","TRANSACTION_WRAPPERS","getTransactionWrappers","alreadyBatchingUpdates","perform","./Transaction",55,"autoGenerateWrapperClass","ReactInjection","EventEmitter","NativeComponent","injectGenericComponentClass","injectTextComponentClass","injectAutoWrapper","Class","injectComponentClasses","createFullPageComponent","SVGDOMPropertyConfig","EmptyComponent","injectEmptyComponent","Updates","injectReconcileTransaction","ReactReconcileTransaction","injectBatchingStrategy","RootIndex","injectCreateReactRootIndex","ServerReactRootIndex","DOMComponent","./BeforeInputEventPlugin","./ChangeEventPlugin","./ClientReactRootIndex","./DefaultEventPluginOrder","./EnterLeaveEventPlugin","./HTMLDOMPropertyConfig","./MobileSafariClickEventPlugin","./ReactDOMButton","./ReactDOMForm","./ReactDOMIframe","./ReactDOMImg","./ReactDOMInput","./ReactDOMOption","./ReactDOMSelect","./ReactDOMTextarea","./ReactDefaultBatchingStrategy","./ReactDefaultPerf","./ReactEventListener","./ReactInjection","./ReactReconcileTransaction","./SVGDOMPropertyConfig","./SelectEventPlugin","./ServerReactRootIndex","./SimpleEventPlugin","./createFullPageComponent",56,"roundFloat","addValue","ReactDefaultPerfAnalysis","performanceNow","ReactDefaultPerf","_allMeasurements","_mountStack","_injected","injectMeasure","enableMeasure","getLastMeasurements","printExclusive","measurements","getExclusiveSummary","item","Component class name","Total inclusive time (ms)","inclusive","Exclusive mount time (ms)","exclusive","Exclusive render time (ms)","Mount time per instance (ms)","Render time per instance (ms)","Instances","printInclusive","getInclusiveSummary","Owner > component","Inclusive time (ms)","log","getTotalTime","toFixed","getMeasurementsSummaryMap","Wasted time (ms)","printWasted","printDOM","getDOMSummary","_recordWrite","fnName","totalTime","writes","moduleName","$__0","$__1","rv","counts","displayNames","mountID","writeArgs","isRender","isMount","mountStack","entry","subMountTime","./ReactDefaultPerfAnalysis","./performanceNow",57,"measurement","items","write","DOM_OPERATION_TYPES","candidates","allIDs","DONT_CARE_THRESHOLD","onlyClean","inclusiveKey","cleanComponents","getUnchangedComponents","dirtyLeafIDs","isDirty","_mountImageIntoNode",58,"RESERVED_PROPS","_isReactElement","childrenLength","childArray","oldElement","newElement","isElement",59,"publicInstance","getCurrentOwnerDisplayName","validateExplicitKey","parentType","_store","validated","warnAndMonitorForKeyUse","validatePropertyKey","NUMERIC_PROPERTY_REGEX","message","ownerName","parentName","useName","memoizer","ownerHasKeyUseWarning","childOwnerAddendum","childOwnerName","validateChildKeys","iteratorFn","getIteratorFn","entries","iterator","done","fragment","extractIfFragment","checkPropTypes","loggedTypeFailures","warnForPropsMutation","elementName","warningKey","warnedPropsMutations","elementInfo","ownerInfo","is","checkAndWarnForMutatedProps","originalProps","validatePropTypes","componentClass","ReactElementValidator","validatedFactory","./getIteratorFn",60,"registerNullComponentID","nullComponentIDsRegistry","deregisterNullComponentID","isNullComponentID","ReactEmptyComponentInjection","emptyComponent","ReactEmptyComponentType","emptyElement","ReactEmptyComponent",61,62,"runEventQueueInBatch",63,"findParent","nodeID","getReactRootIDFromNodeID","parent","TopLevelCallbackBookKeeping","ancestors","handleTopLevelImpl","bookKeeping","getEventTarget","ancestor","_handleTopLevel","scrollValueMonitor","scrollPosition","getUnboundedScrollPosition","_enabled","dispatchEvent","./EventListener","./getEventTarget","./getUnboundedScrollPosition",64,"extract",65,"ReactRootIndex","Perf","./ReactEmptyComponent","./ReactRootIndex",66,"isInDocument","containsNode","getActiveElement","ReactInputSelection","hasSelectionCapabilities","getSelectionInformation","focusedElem","selectionRange","restoreSelection","priorSelectionInformation","curFocusedElem","priorFocusedElem","priorSelectionRange","setSelection","selectionStart","selectionEnd","parentElement","createTextRange","collapse","./ReactDOMSelection","./containsNode","./getActiveElement",67,"getReactRootIDString","SEPARATOR","isBoundary","isValidID","isAncestorIDOf","ancestorID","descendantID","getParentID","lastIndexOf","getNextDescendantID","destinationID","SEPARATOR_LENGTH","getFirstCommonAncestorID","oneID","twoID","minLength","lastCommonMarkerIndex","longestCommonID","traverseParentPath","arg","skipFirst","skipLast","traverseUp","depth","traverse","MAX_TREE_DEPTH","createReactRootID","createReactID","leaveID","enterID","upArg","downArg","traverseAncestors","_getFirstCommonAncestorID","_getNextDescendantID",68,"_reactInternalInstance","has",69,70,"adler32","ReactMarkupChecksum","CHECKSUM_ATTR_NAME","addChecksumToMarkup","checksum","canReuseMarkup","existingChecksum","markupChecksum","./adler32",71,"firstDifferenceIndex","string1","string2","minLen","getReactRootID","rootElement","getReactRootElementInContainer","internalGetID","nodeCache","cached","ATTR_NAME","setID","oldID","findReactNodeByID","getNodeFromInstance","findDeepestCachedAncestorImpl","deepestNodeSoFar","findDeepestCachedAncestor","foundNode","mountComponentIntoNode","componentInstance","shouldReuseMarkup","batchedMountComponentIntoNode","DOC_NODE_TYPE","instancesByReactRootID","containersByReactRootID","findComponentRootReusableArray","_instancesByReactRootID","scrollMonitor","renderCallback","_updateRootComponent","prevComponent","enqueueElementInternal","enqueueCallbackInternal","_registerComponent","nextComponent","reactRootID","registerContainer","_renderNewRootComponent","reactRootElement","containerHasReactMarkup","isRenderedByReact","domNode","getElementById","unmountComponentFromNode","lastChild","reactRoot","findComponentRoot","ancestorNode","firstChildren","childIndex","deepestAncestor","firstChild","targetChild","childID","nextSibling","rootMarkup","outerHTML","diffIndex","./ReactMarkupChecksum","./getReactRootElementInContainer",72,"enqueueMarkup","updateQueue","markupQueue","enqueueMove","enqueueRemove","enqueueTextContent","processQueue","clearQueue","updateDepth","nestedChildren","mountImage","errorThrown","_unmountChildByName","nextNestedChildren","_updateChildren","nextChild","moveChild","_mountChildByNameAtIndex","createChild","./ReactChildReconciler",73,74,"tagToComponentClass","createInternalComponent","genericComponentClass","createInstanceForText","textComponentClass","isTextComponent","ReactNativeComponentInjection","componentClasses","wrapperFactory",75,"ReactOwner","isValidOwner","addComponentAsRefTo","removeComponentAsRefFrom",76,"_noMeasure","objName","storedMeasure","objectName","methodNames",77,"ReactPropTypeLocationNames",78,79,"createChainableTypeChecker","validate","checkType","isRequired","ANONYMOUS","locationName","chainedCheckType","createPrimitiveTypeChecker","expectedType","propType","getPropType","preciseType","getPreciseType","createAnyTypeChecker","thatReturns","createArrayOfTypeChecker","typeChecker","createElementTypeChecker","createInstanceTypeChecker","expectedClass","expectedClassName","createEnumTypeChecker","expectedValues","valuesString","createObjectOfTypeChecker","createUnionTypeChecker","arrayOfTypeCheckers","checker","createNodeChecker","isNode","createShapeTypeChecker","shapeTypes","every","elementTypeChecker","nodeTypeChecker","bool","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType",80,"ReactPutListenerQueue","listenersToPut","putListeners","listenerToPut",81,"reactMountReady","putListenerQueue","SELECTION_RESTORATION","EVENT_SUPPRESSION","currentlyEnabled","previouslyEnabled","ON_DOM_READY_QUEUEING","PUT_LISTENER_QUEUEING","./CallbackQueue","./ReactInputSelection","./ReactPutListenerQueue",82,"attachRefs","ReactRef","detachRefs","refsChanged","shouldUpdateRefs","./ReactRef",83,"./ReactOwner",84,"ReactRootIndexInjection","_createReactRootIndex",85,"ReactServerRenderingTransaction","./ReactServerRenderingTransaction",86,87,"getInternalInstanceReadyForUpdate","callerName","completeState",88,"ensureInjected","batchingStrategy","ReactUpdatesFlushTransaction","dirtyComponentsLength","callbackQueue","reconcileTransaction","mountOrderComparator","c1","c2","runBatchedUpdates","dirtyComponents","asapCallbackQueue","asapEnqueued","NESTED_UPDATES","splice","UPDATE_QUEUEING","ReactUpdatesInjection","ReconcileTransaction","_batchingStrategy",89,"cx","cy","dx","dy","fill","fx","fy","gradientTransform","gradientUnits","markerEnd","markerMid","markerStart","patternContentUnits","patternUnits","points","preserveAspectRatio","rx","ry","spreadMethod","stopColor","stopOpacity","stroke","strokeDasharray","strokeLinecap","textAnchor","transform","viewBox","x1","x2","x","y1","y2",90,"top","boundingTop","left","boundingLeft","constructSelectEvent","mouseDown","currentSelection","lastSelection","shallowEqual","syntheticEvent","onSelect","onSelectCapture","./shallowEqual",91,"GLOBAL_MOUNT_POINT_MAX","pow",92,"SyntheticClipboardEvent","SyntheticFocusEvent","SyntheticKeyboardEvent","SyntheticDragEvent","SyntheticTouchEvent","SyntheticUIEvent","SyntheticWheelEvent","getEventCharCode","blur","onBlur","onBlurCapture","click","onContextMenu","onContextMenuCapture","copy","onCopy","onCopyCapture","cut","onCut","onCutCapture","doubleClick","drag","onDrag","onDragCapture","dragEnd","onDragEnd","onDragEndCapture","dragEnter","onDragEnter","onDragEnterCapture","dragExit","onDragExit","onDragExitCapture","dragLeave","onDragLeave","onDragLeaveCapture","dragOver","onDragOver","onDragOverCapture","dragStart","onDragStart","onDragStartCapture","drop","onDrop","onDropCapture","focus","onFocus","onFocusCapture","onInput","onInputCapture","keyDown","onKeyDown","onKeyDownCapture","keyPress","onKeyPress","onKeyPressCapture","keyUp","onKeyUp","onKeyUpCapture","load","onLoad","onLoadCapture","onError","onErrorCapture","mouseMove","mouseOut","onMouseOut","onMouseOutCapture","mouseOver","onMouseOver","onMouseOverCapture","mouseUp","paste","onPaste","onPasteCapture","onReset","onResetCapture","scroll","onScroll","onScrollCapture","onSubmit","onSubmitCapture","touchCancel","onTouchCancel","onTouchCancelCapture","touchEnd","onTouchEnd","onTouchEndCapture","touchMove","onTouchMove","onTouchMoveCapture","touchStart","onTouchStart","onTouchStartCapture","wheel","onWheel","onWheelCapture","topLevelEventsToDispatchConfig","stopPropagation","preventDefault","EventConstructor","./SyntheticClipboardEvent","./SyntheticDragEvent","./SyntheticFocusEvent","./SyntheticKeyboardEvent","./SyntheticTouchEvent","./SyntheticUIEvent","./SyntheticWheelEvent","./getEventCharCode",93,"ClipboardEventInterface","clipboardData","augmentClass",94,"CompositionEventInterface",95,"DragEventInterface","dataTransfer",96,"Interface","normalize","defaultPrevented","isDefaultPrevented","thatReturnsTrue","thatReturnsFalse","EventInterface","thatReturnsNull","eventPhase","bubbles","cancelable","timeStamp","isTrusted","cancelBubble","persist","Super",97,"FocusEventInterface",98,"InputEventInterface",99,"getEventKey","getEventModifierState","KeyboardEventInterface","shiftKey","repeat","getModifierState","charCode","./getEventKey","./getEventModifierState",100,"MouseEventInterface","screenX","screenY","clientX","clientY","buttons","pageX","currentScrollLeft","pageY","currentScrollTop",101,"TouchEventInterface","touches","targetTouches","changedTouches",102,"UIEventInterface","view",103,"WheelEventInterface","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode",104,"transactionWrappers","wrapperInitData","_isInTransaction","isInTransaction","initializeAll","closeAll","err","startIndex","wrapper","OBSERVED_ERROR","initData",105,106,"currentIsArray","nextIsArray","concat",107,"charCodeAt","MOD",108,"camelize","_hyphenPattern","_","character",109,"camelizeStyleName","msPattern","./camelize",110,"outerNode","innerNode","isTextNode","contains","compareDocumentPosition","./isTextNode",111,"hasArrayNature","createArrayFromMixed","./toArray",112,"elementFactory","FullPageComponent",113,"nodeNameMatch","nodeNamePattern","handleScript","dummyNode","wrap","wrapDepth","scripts","getElementsByTagName","nodes","./createArrayFromMixed",114,"isEmpty","isNonNumeric","trim",115,"makeEmptyFunction","thatReturnsThis","thatReturnsArgument",116,117,"escaper","ESCAPE_LOOKUP","ESCAPE_REGEX","&",">","<","\"","'",118,"componentOrElement","./isNode",119,"flattenSingleChildIntoContext",120,121,122,123,124,"normalizeKey","translateToKey","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey",144,145,224,125,"modifierStateGetter","keyArg","keyProp","modifierKeyToProp","Alt","Control","Meta","Shift",126,127,"maybeIterable","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","Symbol",128,"markupWrap","shouldWrap","selectWrap","tableWrap","trWrap","svgWrap","*",129,"getLeafNode","getSiblingNode","nodeStart","nodeEnd",130,131,"contentKey",132,"scrollable","pageXOffset","scrollLeft","pageYOffset","scrollTop",133,"hyphenate","_uppercasePattern",134,"./hyphenate",135,"isInternalComponentType","parentCompositeType","ReactCompositeComponentWrapper","_mountImage","./ReactCompositeComponent",136,"condition","argIndex","framesToPop",137,"eventNameSuffix","isSupported","useHasFeature",138,"Node",139,"supportedInputTypes","color","datetime","datetime-local","email","password","search","tel","url",140,141,142,"oneKeyObj",143,"cache",146,"performance","msPerformance","webkitPerformance",147,"./performance",148,149,"WHITESPACE_TEST","NONVISIBLE_TEST","MSApp","execUnsafeLocalFunction","textNode","deleteData",150,151,"objA","objB",152,"prevType","nextType","ownersMatch",153,"ii",154,"userProvidedKeyEscaper","userProvidedKeyEscaperLookup","getComponentKey","wrapUserProvidedKey","escapeUserProvidedKey","userProvidedKeyEscapeRegex","traverseAllChildrenImpl","nameSoFar","indexSoFar","nextName","subtreeCount","SUBSEPARATOR","=",".",":",155,"warning",156,"./lib/React",157,"noop","isHost","str","isObject","serialize","pairs","encodeURIComponent","parseString","pair","decodeURIComponent","parseHeader","lines","fields","shift","params","reduce","Response","req","xhr","responseType","responseText","statusText","setStatusProperties","status","getAllResponseHeaders","getResponseHeader","setHeaderProperties","parseBody","response","Request","self","Emitter","_query","_header","on","parse","original","emit","new_err","request","getXHR","XMLHttpRequest","protocol","ActiveXObject","serializeObject","types","json","xml","urlencoded","form-data","application/x-www-form-urlencoded","application/json","ct","statusType","info","ok","clientError","serverError","toError","accepted","noContent","badRequest","unauthorized","notAcceptable","notFound","forbidden","use","timeout","_timeout","clearTimeout","_timer","abort","aborted","unset","getHeader","auth","user","pass","btoa","query","_formData","FormData","append","attach","file","filename","send","_callback","crossDomainError","crossDomain","timeoutError","withCredentials","_withCredentials","onreadystatechange","readyState","timedout","handleProgress","percent","loaded","hasListeners","onprogress","upload","setTimeout","setRequestHeader","patch","post","put","emitter",158,"once","off","removeListener","removeAllListeners","listeners",159,"initial","idx","curr",160,"_interopRequireDefault","__esModule","default","_react","_react2","_componentsMycomponentJsx","_componentsMycomponentJsx2","./components/mycomponent.jsx","react",161,"_superagent","_superagent2","_moment2","Mycomponent","numPeopleInReact","numPeopleInAngular","turn","displayingAnswer","currentAnswer","currentAnswerCorrect","renderLoading","currentPersonData","renderCurrentPersonPhoto","photoUrl","checkAnswer","reactOrAngular","showNextPerson","renderChoicesOrAnswer","_this","reactButtonPrefix","angularButtonPrefix","reactButtonClass","angularButtonClass","renderStats","renderCurrentPerson","joined","superagent"],"mappings":"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","file":"app.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 0) {\n for (i in momentProperties) {\n prop = momentProperties[i];\n val = from[prop];\n if (typeof val !== 'undefined') {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(+config._d);\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n utils_hooks__hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n if (coercedNumber >= 0) {\n value = Math.floor(coercedNumber);\n } else {\n value = Math.ceil(coercedNumber);\n }\n }\n\n return value;\n }\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function Locale() {\n }\n\n var locales = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return null;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && typeof module !== 'undefined' &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n require('./locale/' + name);\n // because defineLocale currently also sets the global locale, we\n // want to undo that for lazy loaded locales\n locale_locales__getSetGlobalLocale(oldLocale);\n } catch (e) { }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function locale_locales__getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (typeof values === 'undefined') {\n data = locale_locales__getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, values) {\n if (values !== null) {\n values.abbr = name;\n if (!locales[name]) {\n locales[name] = new Locale();\n }\n locales[name].set(values);\n\n // backwards compat for now: also set the locale\n locale_locales__getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n // returns locale data\n function locale_locales__getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n get_set__set(this, unit, value);\n utils_hooks__hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get_set__get(this, unit);\n }\n };\n }\n\n function get_set__get (mom, unit) {\n return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]();\n }\n\n function get_set__set (mom, unit, value) {\n return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n\n // MOMENTS\n\n function getSet (units, value) {\n var unit;\n if (typeof units === 'object') {\n for (unit in units) {\n this.set(unit, units[unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (typeof this[units] === 'function') {\n return this[units](value);\n }\n }\n return this;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var output = '' + Math.abs(number),\n sign = number >= 0;\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return (sign ? (forceSign ? '+' : '') : '-') + output;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '';\n for (i = 0; i < length; i++) {\n output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n\n if (!formatFunctions[format]) {\n formatFunctions[format] = makeFormatFunction(format);\n }\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n var matchWord = /[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = typeof regex === 'function' ? regex : function (isStrict) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }).replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (typeof callback === 'number') {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n\n function daysInMonth(year, month) {\n return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', matchWord);\n addRegexToken('MMMM', matchWord);\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m) {\n return this._months[m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m) {\n return this._monthsShort[m.month()];\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = create_utc__createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n // TODO: Move this out of here!\n if (typeof value === 'string') {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (typeof value !== 'number') {\n return mom;\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n utils_hooks__hooks.updateOffset(this, true);\n return this;\n } else {\n return get_set__get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n function warn(msg) {\n if (utils_hooks__hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true,\n msgWithStack = msg + '\\n' + (new Error()).stack;\n\n return extend(function () {\n if (firstTime) {\n warn(msgWithStack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n utils_hooks__hooks.suppressDeprecationWarnings = false;\n\n var from_string__isoRegex = /^\\s*(?:[+-]\\d{6}|\\d{4})-(?:(\\d\\d-\\d\\d)|(W\\d\\d$)|(W\\d\\d-\\d)|(\\d\\d\\d))((T| )(\\d\\d(:\\d\\d(:\\d\\d(\\.\\d+)?)?)?)?([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d{2}-\\d{2}/],\n ['YYYY-MM-DD', /\\d{4}-\\d{2}-\\d{2}/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d{2}-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d{2}/],\n ['YYYY-DDD', /\\d{4}-\\d{3}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /(T| )\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss', /(T| )\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /(T| )\\d\\d:\\d\\d/],\n ['HH', /(T| )\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = from_string__isoRegex.exec(string);\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(string)) {\n // match[5] should be 'T' or undefined\n config._f = isoDates[i][0] + (match[6] || ' ');\n break;\n }\n }\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(string)) {\n config._f += isoTimes[i][0];\n break;\n }\n }\n if (string.match(matchOffset)) {\n config._f += 'Z';\n }\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n utils_hooks__hooks.createFromInputFallback(config);\n }\n }\n\n utils_hooks__hooks.createFromInputFallback = deprecate(\n 'moment construction falls back to js Date. This is ' +\n 'discouraged and will be removed in upcoming major ' +\n 'release. Please refer to ' +\n 'https://github.com/moment/moment/issues/1407 for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n function createDate (y, m, d, h, M, s, ms) {\n //can't just apply() to create a date:\n //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply\n var date = new Date(y, m, d, h, M, s, ms);\n\n //the date constructor doesn't accept years < 1970\n if (y < 1970) {\n date.setFullYear(y);\n }\n return date;\n }\n\n function createUTCDate (y) {\n var date = new Date(Date.UTC.apply(null, arguments));\n if (y < 1970) {\n date.setUTCFullYear(y);\n }\n return date;\n }\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYY', 'YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YY', function (input, array) {\n array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n utils_hooks__hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', false);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // firstDayOfWeek 0 = sun, 6 = sat\n // the day of the week that starts the week\n // (usually sunday or monday)\n // firstDayOfWeekOfYear 0 = sun, 6 = sat\n // the first week is the week that contains the first\n // of this day of the week\n // (eg. ISO weeks use thursday (4))\n function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) {\n var end = firstDayOfWeekOfYear - firstDayOfWeek,\n daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(),\n adjustedMoment;\n\n\n if (daysToDayOfWeek > end) {\n daysToDayOfWeek -= 7;\n }\n\n if (daysToDayOfWeek < end - 7) {\n daysToDayOfWeek += 7;\n }\n\n adjustedMoment = local__createLocal(mom).add(daysToDayOfWeek, 'd');\n return {\n week: Math.ceil(adjustedMoment.dayOfYear() / 7),\n year: adjustedMoment.year()\n };\n }\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {\n var d = createUTCDate(year, 0, 1).getUTCDay();\n var daysToAdd;\n var dayOfYear;\n\n d = d === 0 ? 7 : d;\n weekday = weekday != null ? weekday : firstDayOfWeek;\n daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0);\n dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1;\n\n return {\n year : dayOfYear > 0 ? year : year - 1,\n dayOfYear : dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear\n };\n }\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n var now = new Date();\n if (config._useUTC) {\n return [now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()];\n }\n return [now.getFullYear(), now.getMonth(), now.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse)) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year);\n week = defaults(w.w, 1);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < dow) {\n ++week;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from begining of week\n weekday = w.e + dow;\n } else {\n // default to begining of week\n weekday = dow;\n }\n }\n temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow);\n\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n\n utils_hooks__hooks.ISO_8601 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === utils_hooks__hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (getParsingFlags(config).bigHour === true &&\n config._a[HOUR] <= 12 &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!valid__isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = [i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond];\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var input = config._i,\n format = config._f,\n res;\n\n config._locale = config._locale || locale_locales__getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return valid__createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else if (isDate(input)) {\n config._d = input;\n } else {\n configFromInput(config);\n }\n\n res = new Moment(checkOverflow(config));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (input === undefined) {\n config._d = new Date();\n } else if (isDate(input)) {\n config._d = new Date(+input);\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (typeof(input) === 'object') {\n configFromObject(config);\n } else if (typeof(input) === 'number') {\n // from milliseconds\n config._d = new Date(input);\n } else {\n utils_hooks__hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (typeof(locale) === 'boolean') {\n strict = locale;\n locale = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function local__createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548',\n function () {\n var other = local__createLocal.apply(null, arguments);\n return other < this ? this : other;\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548',\n function () {\n var other = local__createLocal.apply(null, arguments);\n return other > this ? this : other;\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return local__createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 36e5; // 1000 * 60 * 60\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = locale_locales__getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchOffset);\n addRegexToken('ZZ', matchOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(string) {\n var matches = ((string || '').match(matchOffset) || []);\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res);\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(+res._d + diff);\n utils_hooks__hooks.updateOffset(res, false);\n return res;\n } else {\n return local__createLocal(input).local();\n }\n return model._isUTC ? local__createLocal(input).zone(model._offset || 0) : local__createLocal(input).local();\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n utils_hooks__hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime) {\n var offset = this._offset || 0,\n localAdjust;\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(input);\n }\n if (Math.abs(input) < 16) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n utils_hooks__hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm) {\n this.utcOffset(this._tzm);\n } else if (typeof this._i === 'string') {\n this.utcOffset(offsetFromString(this._i));\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!input) {\n input = 0;\n }\n else {\n input = local__createLocal(input).utcOffset();\n }\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (this._a) {\n var other = this._isUTC ? create_utc__createUTC(this._a) : local__createLocal(this._a);\n return this.isValid() && compareArrays(this._a, other.toArray()) > 0;\n }\n\n return false;\n }\n\n function isLocal () {\n return !this._isUTC;\n }\n\n function isUtcOffset () {\n return this._isUTC;\n }\n\n function isUtc () {\n return this._isUTC && this._offset === 0;\n }\n\n var aspNetRegex = /(\\-)?(?:(\\d*)\\.)?(\\d+)\\:(\\d+)(?:\\:(\\d+)\\.?(\\d{3})?)?/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n var create__isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;\n\n function create__createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (typeof input === 'number') {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(match[MILLISECOND]) * sign\n };\n } else if (!!(match = create__isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n d : parseIso(match[4], sign),\n h : parseIso(match[5], sign),\n m : parseIso(match[6], sign),\n s : parseIso(match[7], sign),\n w : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n create__createDuration.fn = Duration.prototype;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {milliseconds: 0, months: 0};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = create__createDuration(val, period);\n add_subtract__addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = duration._days,\n months = duration._months;\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (milliseconds) {\n mom._d.setTime(+mom._d + milliseconds * isAdding);\n }\n if (days) {\n get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding);\n }\n if (months) {\n setMonth(mom, get_set__get(mom, 'Month') + months * isAdding);\n }\n if (updateOffset) {\n utils_hooks__hooks.updateOffset(mom, days || months);\n }\n }\n\n var add_subtract__add = createAdder(1, 'add');\n var add_subtract__subtract = createAdder(-1, 'subtract');\n\n function moment_calendar__calendar (time) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || local__createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n diff = this.diff(sod, 'days', true),\n format = diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n return this.format(this.localeData().calendar(format, this, local__createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var inputMs;\n units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');\n if (units === 'millisecond') {\n input = isMoment(input) ? input : local__createLocal(input);\n return +this > +input;\n } else {\n inputMs = isMoment(input) ? +input : +local__createLocal(input);\n return inputMs < +this.clone().startOf(units);\n }\n }\n\n function isBefore (input, units) {\n var inputMs;\n units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');\n if (units === 'millisecond') {\n input = isMoment(input) ? input : local__createLocal(input);\n return +this < +input;\n } else {\n inputMs = isMoment(input) ? +input : +local__createLocal(input);\n return +this.clone().endOf(units) < inputMs;\n }\n }\n\n function isBetween (from, to, units) {\n return this.isAfter(from, units) && this.isBefore(to, units);\n }\n\n function isSame (input, units) {\n var inputMs;\n units = normalizeUnits(units || 'millisecond');\n if (units === 'millisecond') {\n input = isMoment(input) ? input : local__createLocal(input);\n return +this === +input;\n } else {\n inputMs = +local__createLocal(input);\n return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units));\n }\n }\n\n function absFloor (number) {\n if (number < 0) {\n return Math.ceil(number);\n } else {\n return Math.floor(number);\n }\n }\n\n function diff (input, units, asFloat) {\n var that = cloneWithOffset(input, this),\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4,\n delta, output;\n\n units = normalizeUnits(units);\n\n if (units === 'year' || units === 'month' || units === 'quarter') {\n output = monthDiff(this, that);\n if (units === 'quarter') {\n output = output / 3;\n } else if (units === 'year') {\n output = output / 12;\n }\n } else {\n delta = this - that;\n output = units === 'second' ? delta / 1e3 : // 1000\n units === 'minute' ? delta / 6e4 : // 1000 * 60\n units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60\n units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst\n units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst\n delta;\n }\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n return -(wholeMonthDiff + adjust);\n }\n\n utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function moment_format__toISOString () {\n var m = this.clone().utc();\n if (0 < m.year() && m.year() <= 9999) {\n if ('function' === typeof Date.prototype.toISOString) {\n // native implementation is ~50x faster, use it when we can\n return this.toDate().toISOString();\n } else {\n return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n }\n } else {\n return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n }\n }\n\n function format (inputString) {\n var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n }\n\n function fromNow (withoutSuffix) {\n return this.from(local__createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n }\n\n function toNow (withoutSuffix) {\n return this.to(local__createLocal(), withoutSuffix);\n }\n\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = locale_locales__getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n function startOf (units) {\n units = normalizeUnits(units);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (units) {\n case 'year':\n this.month(0);\n /* falls through */\n case 'quarter':\n case 'month':\n this.date(1);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n this.hours(0);\n /* falls through */\n case 'hour':\n this.minutes(0);\n /* falls through */\n case 'minute':\n this.seconds(0);\n /* falls through */\n case 'second':\n this.milliseconds(0);\n }\n\n // weeks are a special case\n if (units === 'week') {\n this.weekday(0);\n }\n if (units === 'isoWeek') {\n this.isoWeekday(1);\n }\n\n // quarters are also special\n if (units === 'quarter') {\n this.month(Math.floor(this.month() / 3) * 3);\n }\n\n return this;\n }\n\n function endOf (units) {\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond') {\n return this;\n }\n return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n }\n\n function to_type__valueOf () {\n return +this._d - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(+this / 1000);\n }\n\n function toDate () {\n return this._offset ? new Date(+this) : this._d;\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function moment_valid__isValid () {\n return valid__isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = utils_hooks__hooks.parseTwoDigitYear(input);\n });\n\n // HELPERS\n\n function weeksInYear(year, dow, doy) {\n return weekOfYear(local__createLocal([year, 11, 31 + dow - doy]), dow, doy).week;\n }\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year;\n return input == null ? year : this.add((input - year), 'y');\n }\n\n function getSetISOWeekYear (input) {\n var year = weekOfYear(this, 1, 4).year;\n return input == null ? year : this.add((input - year), 'y');\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n addFormatToken('Q', 0, 0, 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n return isStrict ? locale._ordinalParse : locale._ordinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0], 10);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', matchWord);\n addRegexToken('ddd', matchWord);\n addRegexToken('dddd', matchWord);\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config) {\n var weekday = config._locale.weekdaysParse(input);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input === 'string') {\n if (!isNaN(input)) {\n input = parseInt(input, 10);\n }\n else {\n input = locale.weekdaysParse(input);\n if (typeof input !== 'number') {\n return null;\n }\n }\n }\n return input;\n }\n\n // LOCALES\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m) {\n return this._weekdays[m.day()];\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return this._weekdaysShort[m.day()];\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return this._weekdaysMin[m.day()];\n }\n\n function localeWeekdaysParse (weekdayName) {\n var i, mom, regex;\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n if (!this._weekdaysParse[i]) {\n mom = local__createLocal([2000, 1]).day(i);\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7);\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, function () {\n return this.hours() % 12 || 12;\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour he wants. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n function millisecond__milliseconds (token) {\n addFormatToken(0, [token, 3], 0, 'millisecond');\n }\n\n millisecond__milliseconds('SSS');\n millisecond__milliseconds('SSSS');\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n addRegexToken('SSSS', matchUnsigned);\n addParseToken(['S', 'SS', 'SSS', 'SSSS'], function (input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n });\n\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var momentPrototype__proto = Moment.prototype;\n\n momentPrototype__proto.add = add_subtract__add;\n momentPrototype__proto.calendar = moment_calendar__calendar;\n momentPrototype__proto.clone = clone;\n momentPrototype__proto.diff = diff;\n momentPrototype__proto.endOf = endOf;\n momentPrototype__proto.format = format;\n momentPrototype__proto.from = from;\n momentPrototype__proto.fromNow = fromNow;\n momentPrototype__proto.to = to;\n momentPrototype__proto.toNow = toNow;\n momentPrototype__proto.get = getSet;\n momentPrototype__proto.invalidAt = invalidAt;\n momentPrototype__proto.isAfter = isAfter;\n momentPrototype__proto.isBefore = isBefore;\n momentPrototype__proto.isBetween = isBetween;\n momentPrototype__proto.isSame = isSame;\n momentPrototype__proto.isValid = moment_valid__isValid;\n momentPrototype__proto.lang = lang;\n momentPrototype__proto.locale = locale;\n momentPrototype__proto.localeData = localeData;\n momentPrototype__proto.max = prototypeMax;\n momentPrototype__proto.min = prototypeMin;\n momentPrototype__proto.parsingFlags = parsingFlags;\n momentPrototype__proto.set = getSet;\n momentPrototype__proto.startOf = startOf;\n momentPrototype__proto.subtract = add_subtract__subtract;\n momentPrototype__proto.toArray = toArray;\n momentPrototype__proto.toDate = toDate;\n momentPrototype__proto.toISOString = moment_format__toISOString;\n momentPrototype__proto.toJSON = moment_format__toISOString;\n momentPrototype__proto.toString = toString;\n momentPrototype__proto.unix = unix;\n momentPrototype__proto.valueOf = to_type__valueOf;\n\n // Year\n momentPrototype__proto.year = getSetYear;\n momentPrototype__proto.isLeapYear = getIsLeapYear;\n\n // Week Year\n momentPrototype__proto.weekYear = getSetWeekYear;\n momentPrototype__proto.isoWeekYear = getSetISOWeekYear;\n\n // Quarter\n momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter;\n\n // Month\n momentPrototype__proto.month = getSetMonth;\n momentPrototype__proto.daysInMonth = getDaysInMonth;\n\n // Week\n momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek;\n momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek;\n momentPrototype__proto.weeksInYear = getWeeksInYear;\n momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear;\n\n // Day\n momentPrototype__proto.date = getSetDayOfMonth;\n momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek;\n momentPrototype__proto.weekday = getSetLocaleDayOfWeek;\n momentPrototype__proto.isoWeekday = getSetISODayOfWeek;\n momentPrototype__proto.dayOfYear = getSetDayOfYear;\n\n // Hour\n momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour;\n\n // Minute\n momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute;\n\n // Second\n momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond;\n\n // Millisecond\n momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond;\n\n // Offset\n momentPrototype__proto.utcOffset = getSetOffset;\n momentPrototype__proto.utc = setOffsetToUTC;\n momentPrototype__proto.local = setOffsetToLocal;\n momentPrototype__proto.parseZone = setOffsetToParsedOffset;\n momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset;\n momentPrototype__proto.isDST = isDaylightSavingTime;\n momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted;\n momentPrototype__proto.isLocal = isLocal;\n momentPrototype__proto.isUtcOffset = isUtcOffset;\n momentPrototype__proto.isUtc = isUtc;\n momentPrototype__proto.isUTC = isUtc;\n\n // Timezone\n momentPrototype__proto.zoneAbbr = getZoneAbbr;\n momentPrototype__proto.zoneName = getZoneName;\n\n // Deprecations\n momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone);\n\n var momentPrototype = momentPrototype__proto;\n\n function moment__createUnix (input) {\n return local__createLocal(input * 1000);\n }\n\n function moment__createInZone () {\n return local__createLocal.apply(null, arguments).parseZone();\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function locale_calendar__calendar (key, mom, now) {\n var output = this._calendar[key];\n return typeof output === 'function' ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY LT',\n LLLL : 'dddd, MMMM D, YYYY LT'\n };\n\n function longDateFormat (key) {\n var output = this._longDateFormat[key];\n if (!output && this._longDateFormat[key.toUpperCase()]) {\n output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n this._longDateFormat[key] = output;\n }\n return output;\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relative__relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (typeof output === 'function') ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return typeof format === 'function' ? format(output) : format.replace(/%s/i, output);\n }\n\n function locale_set__set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (typeof prop === 'function') {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _ordinalParseLenient.\n this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\\d{1,2}/).source);\n }\n\n var prototype__proto = Locale.prototype;\n\n prototype__proto._calendar = defaultCalendar;\n prototype__proto.calendar = locale_calendar__calendar;\n prototype__proto._longDateFormat = defaultLongDateFormat;\n prototype__proto.longDateFormat = longDateFormat;\n prototype__proto._invalidDate = defaultInvalidDate;\n prototype__proto.invalidDate = invalidDate;\n prototype__proto._ordinal = defaultOrdinal;\n prototype__proto.ordinal = ordinal;\n prototype__proto._ordinalParse = defaultOrdinalParse;\n prototype__proto.preparse = preParsePostFormat;\n prototype__proto.postformat = preParsePostFormat;\n prototype__proto._relativeTime = defaultRelativeTime;\n prototype__proto.relativeTime = relative__relativeTime;\n prototype__proto.pastFuture = pastFuture;\n prototype__proto.set = locale_set__set;\n\n // Month\n prototype__proto.months = localeMonths;\n prototype__proto._months = defaultLocaleMonths;\n prototype__proto.monthsShort = localeMonthsShort;\n prototype__proto._monthsShort = defaultLocaleMonthsShort;\n prototype__proto.monthsParse = localeMonthsParse;\n\n // Week\n prototype__proto.week = localeWeek;\n prototype__proto._week = defaultLocaleWeek;\n prototype__proto.firstDayOfYear = localeFirstDayOfYear;\n prototype__proto.firstDayOfWeek = localeFirstDayOfWeek;\n\n // Day of Week\n prototype__proto.weekdays = localeWeekdays;\n prototype__proto._weekdays = defaultLocaleWeekdays;\n prototype__proto.weekdaysMin = localeWeekdaysMin;\n prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin;\n prototype__proto.weekdaysShort = localeWeekdaysShort;\n prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort;\n prototype__proto.weekdaysParse = localeWeekdaysParse;\n\n // Hours\n prototype__proto.isPM = localeIsPM;\n prototype__proto._meridiemParse = defaultLocaleMeridiemParse;\n prototype__proto.meridiem = localeMeridiem;\n\n function lists__get (format, index, field, setter) {\n var locale = locale_locales__getLocale();\n var utc = create_utc__createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function list (format, index, field, count, setter) {\n if (typeof format === 'number') {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return lists__get(format, index, field, setter);\n }\n\n var i;\n var out = [];\n for (i = 0; i < count; i++) {\n out[i] = lists__get(format, i, field, setter);\n }\n return out;\n }\n\n function lists__listMonths (format, index) {\n return list(format, index, 'months', 12, 'month');\n }\n\n function lists__listMonthsShort (format, index) {\n return list(format, index, 'monthsShort', 12, 'month');\n }\n\n function lists__listWeekdays (format, index) {\n return list(format, index, 'weekdays', 7, 'day');\n }\n\n function lists__listWeekdaysShort (format, index) {\n return list(format, index, 'weekdaysShort', 7, 'day');\n }\n\n function lists__listWeekdaysMin (format, index) {\n return list(format, index, 'weekdaysMin', 7, 'day');\n }\n\n locale_locales__getSetGlobalLocale('en', {\n ordinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale);\n utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale);\n\n var mathAbs = Math.abs;\n\n function duration_abs__abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function duration_add_subtract__addSubtract (duration, input, value, direction) {\n var other = create__createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function duration_add_subtract__add (input, value) {\n return duration_add_subtract__addSubtract(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function duration_add_subtract__subtract (input, value) {\n return duration_add_subtract__addSubtract(this, input, value, -1);\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years = 0;\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // Accurately convert days to years, assume start from year 0.\n years = absFloor(daysToYears(days));\n days -= absFloor(yearsToDays(years));\n\n // 30 days to a month\n // TODO (iskren): Use anchor date (like 1st Jan) to compute this.\n months += absFloor(days / 30);\n days %= 30;\n\n // 12 months -> 1 year\n years += absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToYears (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n }\n\n function yearsToDays (years) {\n // years * 365 + absFloor(years / 4) -\n // absFloor(years / 100) + absFloor(years / 400);\n return years * 146097 / 400;\n }\n\n function as (units) {\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToYears(days) * 12;\n return units === 'month' ? months : months / 12;\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(yearsToDays(this._months / 12));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function duration_as__valueOf () {\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asYears = makeAs('y');\n\n function duration_get__get (units) {\n units = normalizeUnits(units);\n return this[units + 's']();\n }\n\n function makeGetter(name) {\n return function () {\n return this._data[name];\n };\n }\n\n var duration_get__milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month\n M: 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) {\n var duration = create__createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds < thresholds.s && ['s', seconds] ||\n minutes === 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours === 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days === 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months === 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years === 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set a threshold for relative time strings\n function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n return true;\n }\n\n function humanize (withSuffix) {\n var locale = this.localeData();\n var output = duration_humanize__relativeTime(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var iso_string__abs = Math.abs;\n\n function iso_string__toISOString() {\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = iso_string__abs(this.years());\n var M = iso_string__abs(this.months());\n var D = iso_string__abs(this.days());\n var h = iso_string__abs(this.hours());\n var m = iso_string__abs(this.minutes());\n var s = iso_string__abs(this.seconds() + this.milliseconds() / 1000);\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n return (total < 0 ? '-' : '') +\n 'P' +\n (Y ? Y + 'Y' : '') +\n (M ? M + 'M' : '') +\n (D ? D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? h + 'H' : '') +\n (m ? m + 'M' : '') +\n (s ? s + 'S' : '');\n }\n\n var duration_prototype__proto = Duration.prototype;\n\n duration_prototype__proto.abs = duration_abs__abs;\n duration_prototype__proto.add = duration_add_subtract__add;\n duration_prototype__proto.subtract = duration_add_subtract__subtract;\n duration_prototype__proto.as = as;\n duration_prototype__proto.asMilliseconds = asMilliseconds;\n duration_prototype__proto.asSeconds = asSeconds;\n duration_prototype__proto.asMinutes = asMinutes;\n duration_prototype__proto.asHours = asHours;\n duration_prototype__proto.asDays = asDays;\n duration_prototype__proto.asWeeks = asWeeks;\n duration_prototype__proto.asMonths = asMonths;\n duration_prototype__proto.asYears = asYears;\n duration_prototype__proto.valueOf = duration_as__valueOf;\n duration_prototype__proto._bubble = bubble;\n duration_prototype__proto.get = duration_get__get;\n duration_prototype__proto.milliseconds = duration_get__milliseconds;\n duration_prototype__proto.seconds = seconds;\n duration_prototype__proto.minutes = minutes;\n duration_prototype__proto.hours = hours;\n duration_prototype__proto.days = days;\n duration_prototype__proto.weeks = weeks;\n duration_prototype__proto.months = months;\n duration_prototype__proto.years = years;\n duration_prototype__proto.humanize = humanize;\n duration_prototype__proto.toISOString = iso_string__toISOString;\n duration_prototype__proto.toString = iso_string__toISOString;\n duration_prototype__proto.toJSON = iso_string__toISOString;\n duration_prototype__proto.locale = locale;\n duration_prototype__proto.localeData = localeData;\n\n // Deprecations\n duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString);\n duration_prototype__proto.lang = lang;\n\n // Side effect imports\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n utils_hooks__hooks.version = '2.10.3';\n\n setHookCallback(local__createLocal);\n\n utils_hooks__hooks.fn = momentPrototype;\n utils_hooks__hooks.min = min;\n utils_hooks__hooks.max = max;\n utils_hooks__hooks.utc = create_utc__createUTC;\n utils_hooks__hooks.unix = moment__createUnix;\n utils_hooks__hooks.months = lists__listMonths;\n utils_hooks__hooks.isDate = isDate;\n utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale;\n utils_hooks__hooks.invalid = valid__createInvalid;\n utils_hooks__hooks.duration = create__createDuration;\n utils_hooks__hooks.isMoment = isMoment;\n utils_hooks__hooks.weekdays = lists__listWeekdays;\n utils_hooks__hooks.parseZone = moment__createInZone;\n utils_hooks__hooks.localeData = locale_locales__getLocale;\n utils_hooks__hooks.isDuration = isDuration;\n utils_hooks__hooks.monthsShort = lists__listMonthsShort;\n utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin;\n utils_hooks__hooks.defineLocale = defineLocale;\n utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort;\n utils_hooks__hooks.normalizeUnits = normalizeUnits;\n utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold;\n\n var _moment = utils_hooks__hooks;\n\n return _moment;\n\n}));\n},{}],2:[function(require,module,exports){\n/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule AutoFocusMixin\n * @typechecks static-only\n */\n\n'use strict';\n\nvar focusNode = require(\"./focusNode\");\n\nvar AutoFocusMixin = {\n componentDidMount: function() {\n if (this.props.autoFocus) {\n focusNode(this.getDOMNode());\n }\n }\n};\n\nmodule.exports = AutoFocusMixin;\n\n},{\"./focusNode\":120}],3:[function(require,module,exports){\n/**\n * Copyright 2013-2015 Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BeforeInputEventPlugin\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = require(\"./EventConstants\");\nvar EventPropagators = require(\"./EventPropagators\");\nvar ExecutionEnvironment = require(\"./ExecutionEnvironment\");\nvar FallbackCompositionState = require(\"./FallbackCompositionState\");\nvar SyntheticCompositionEvent = require(\"./SyntheticCompositionEvent\");\nvar SyntheticInputEvent = require(\"./SyntheticInputEvent\");\n\nvar keyOf = require(\"./keyOf\");\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = (\n ExecutionEnvironment.canUseDOM &&\n 'CompositionEvent' in window\n);\n\nvar documentMode = null;\nif (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {\n documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = (\n ExecutionEnvironment.canUseDOM &&\n 'TextEvent' in window &&\n !documentMode &&\n !isPresto()\n);\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = (\n ExecutionEnvironment.canUseDOM &&\n (\n (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11)\n )\n);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n var opera = window.opera;\n return (\n typeof opera === 'object' &&\n typeof opera.version === 'function' &&\n parseInt(opera.version(), 10) <= 12\n );\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: keyOf({onBeforeInput: null}),\n captured: keyOf({onBeforeInputCapture: null})\n },\n dependencies: [\n topLevelTypes.topCompositionEnd,\n topLevelTypes.topKeyPress,\n topLevelTypes.topTextInput,\n topLevelTypes.topPaste\n ]\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({onCompositionEnd: null}),\n captured: keyOf({onCompositionEndCapture: null})\n },\n dependencies: [\n topLevelTypes.topBlur,\n topLevelTypes.topCompositionEnd,\n topLevelTypes.topKeyDown,\n topLevelTypes.topKeyPress,\n topLevelTypes.topKeyUp,\n topLevelTypes.topMouseDown\n ]\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({onCompositionStart: null}),\n captured: keyOf({onCompositionStartCapture: null})\n },\n dependencies: [\n topLevelTypes.topBlur,\n topLevelTypes.topCompositionStart,\n topLevelTypes.topKeyDown,\n topLevelTypes.topKeyPress,\n topLevelTypes.topKeyUp,\n topLevelTypes.topMouseDown\n ]\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: keyOf({onCompositionUpdate: null}),\n captured: keyOf({onCompositionUpdateCapture: null})\n },\n dependencies: [\n topLevelTypes.topBlur,\n topLevelTypes.topCompositionUpdate,\n topLevelTypes.topKeyDown,\n topLevelTypes.topKeyPress,\n topLevelTypes.topKeyUp,\n topLevelTypes.topMouseDown\n ]\n }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n return (\n (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n !(nativeEvent.ctrlKey && nativeEvent.altKey)\n );\n}\n\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n switch (topLevelType) {\n case topLevelTypes.topCompositionStart:\n return eventTypes.compositionStart;\n case topLevelTypes.topCompositionEnd:\n return eventTypes.compositionEnd;\n case topLevelTypes.topCompositionUpdate:\n return eventTypes.compositionUpdate;\n }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n return (\n topLevelType === topLevelTypes.topKeyDown &&\n nativeEvent.keyCode === START_KEYCODE\n );\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case topLevelTypes.topKeyUp:\n // Command keys insert or clear IME input.\n return (END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1);\n case topLevelTypes.topKeyDown:\n // Expect IME keyCode on each keydown. If we get any other\n // code we must have exited earlier.\n return (nativeEvent.keyCode !== START_KEYCODE);\n case topLevelTypes.topKeyPress:\n case topLevelTypes.topMouseDown:\n case topLevelTypes.topBlur:\n // Events are not possible without cancelling IME.\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n var detail = nativeEvent.detail;\n if (typeof detail === 'object' && 'data' in detail) {\n return detail.data;\n }\n return null;\n}\n\n// Track the current IME composition fallback object, if any.\nvar currentComposition = null;\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent\n) {\n var eventType;\n var fallbackData;\n\n if (canUseCompositionEvent) {\n eventType = getCompositionEventType(topLevelType);\n } else if (!currentComposition) {\n if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionStart;\n }\n } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionEnd;\n }\n\n if (!eventType) {\n return null;\n }\n\n if (useFallbackCompositionData) {\n // The current composition is stored statically and must not be\n // overwritten while composition continues.\n if (!currentComposition && eventType === eventTypes.compositionStart) {\n currentComposition = FallbackCompositionState.getPooled(topLevelTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (currentComposition) {\n fallbackData = currentComposition.getData();\n }\n }\n }\n\n var event = SyntheticCompositionEvent.getPooled(\n eventType,\n topLevelTargetID,\n nativeEvent\n );\n\n if (fallbackData) {\n // Inject data generated from fallback path into the synthetic event.\n // This matches the property of native CompositionEventInterface.\n event.data = fallbackData;\n } else {\n var customData = getDataFromCustomEvent(nativeEvent);\n if (customData !== null) {\n event.data = customData;\n }\n }\n\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case topLevelTypes.topCompositionEnd:\n return getDataFromCustomEvent(nativeEvent);\n case topLevelTypes.topKeyPress:\n /**\n * If native `textInput` events are available, our goal is to make\n * use of them. However, there is a special case: the spacebar key.\n * In Webkit, preventing default on a spacebar `textInput` event\n * cancels character insertion, but it *also* causes the browser\n * to fall back to its default spacebar behavior of scrolling the\n * page.\n *\n * Tracking at:\n * https://code.google.com/p/chromium/issues/detail?id=355103\n *\n * To avoid this issue, use the keypress event as if no `textInput`\n * event is available.\n */\n var which = nativeEvent.which;\n if (which !== SPACEBAR_CODE) {\n return null;\n }\n\n hasSpaceKeypress = true;\n return SPACEBAR_CHAR;\n\n case topLevelTypes.topTextInput:\n // Record the characters to be added to the DOM.\n var chars = nativeEvent.data;\n\n // If it's a spacebar character, assume that we have already handled\n // it at the keypress level and bail immediately. Android Chrome\n // doesn't give us keycodes, so we need to blacklist it.\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return null;\n }\n\n return chars;\n\n default:\n // For other native event types, do nothing.\n return null;\n }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n // If we are currently composing (IME) and using a fallback to do so,\n // try to extract the composed characters from the fallback object.\n if (currentComposition) {\n if (\n topLevelType === topLevelTypes.topCompositionEnd ||\n isFallbackCompositionEnd(topLevelType, nativeEvent)\n ) {\n var chars = currentComposition.getData();\n FallbackCompositionState.release(currentComposition);\n currentComposition = null;\n return chars;\n }\n return null;\n }\n\n switch (topLevelType) {\n case topLevelTypes.topPaste:\n // If a paste event occurs after a keypress, throw out the input\n // chars. Paste events should not lead to BeforeInput events.\n return null;\n case topLevelTypes.topKeyPress:\n /**\n * As of v27, Firefox may fire keypress events even when no character\n * will be inserted. A few possibilities:\n *\n * - `which` is `0`. Arrow keys, Esc key, etc.\n *\n * - `which` is the pressed key code, but no char is available.\n * Ex: 'AltGr + d` in Polish. There is no modified character for\n * this key combination and no character is inserted into the\n * document, but FF fires the keypress for char code `100` anyway.\n * No `input` event will occur.\n *\n * - `which` is the pressed key code, but a command combination is\n * being used. Ex: `Cmd+C`. No character is inserted, and no\n * `input` event will occur.\n */\n if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {\n return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case topLevelTypes.topCompositionEnd:\n return useFallbackCompositionData ? null : nativeEvent.data;\n default:\n return null;\n }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent\n) {\n var chars;\n\n if (canUseTextInputEvent) {\n chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n } else {\n chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n }\n\n // If no characters are being inserted, no BeforeInput event should\n // be fired.\n if (!chars) {\n return null;\n }\n\n var event = SyntheticInputEvent.getPooled(\n eventTypes.beforeInput,\n topLevelTargetID,\n nativeEvent\n );\n\n event.data = chars;\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent\n ) {\n return [\n extractCompositionEvent(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent\n ),\n extractBeforeInputEvent(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent\n )\n ];\n }\n};\n\nmodule.exports = BeforeInputEventPlugin;\n\n},{\"./EventConstants\":15,\"./EventPropagators\":20,\"./ExecutionEnvironment\":21,\"./FallbackCompositionState\":22,\"./SyntheticCompositionEvent\":94,\"./SyntheticInputEvent\":98,\"./keyOf\":142}],4:[function(require,module,exports){\n/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSProperty\n */\n\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n boxFlex: true,\n boxFlexGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function(prop) {\n prefixes.forEach(function(prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\nvar shorthandPropertyExpansions = {\n background: {\n backgroundImage: true,\n backgroundPosition: true,\n backgroundRepeat: true,\n backgroundColor: true\n },\n border: {\n borderWidth: true,\n borderStyle: true,\n borderColor: true\n },\n borderBottom: {\n borderBottomWidth: true,\n borderBottomStyle: true,\n borderBottomColor: true\n },\n borderLeft: {\n borderLeftWidth: true,\n borderLeftStyle: true,\n borderLeftColor: true\n },\n borderRight: {\n borderRightWidth: true,\n borderRightStyle: true,\n borderRightColor: true\n },\n borderTop: {\n borderTopWidth: true,\n borderTopStyle: true,\n borderTopColor: true\n },\n font: {\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n fontSize: true,\n lineHeight: true,\n fontFamily: true\n }\n};\n\nvar CSSProperty = {\n isUnitlessNumber: isUnitlessNumber,\n shorthandPropertyExpansions: shorthandPropertyExpansions\n};\n\nmodule.exports = CSSProperty;\n\n},{}],5:[function(require,module,exports){\n/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSPropertyOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CSSProperty = require(\"./CSSProperty\");\nvar ExecutionEnvironment = require(\"./ExecutionEnvironment\");\n\nvar camelizeStyleName = require(\"./camelizeStyleName\");\nvar dangerousStyleValue = require(\"./dangerousStyleValue\");\nvar hyphenateStyleName = require(\"./hyphenateStyleName\");\nvar memoizeStringOnly = require(\"./memoizeStringOnly\");\nvar warning = require(\"./warning\");\n\nvar processStyleName = memoizeStringOnly(function(styleName) {\n return hyphenateStyleName(styleName);\n});\n\nvar styleFloatAccessor = 'cssFloat';\nif (ExecutionEnvironment.canUseDOM) {\n // IE8 only supports accessing cssFloat (standard) as styleFloat\n if (document.documentElement.style.cssFloat === undefined) {\n styleFloatAccessor = 'styleFloat';\n }\n}\n\nif (\"production\" !== \"production\") {\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n\n // style values shouldn't contain a semicolon\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n\n var warnHyphenatedStyleName = function(name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n (\"production\" !== \"production\" ? warning(\n false,\n 'Unsupported style property %s. Did you mean %s?',\n name,\n camelizeStyleName(name)\n ) : null);\n };\n\n var warnBadVendoredStyleName = function(name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n (\"production\" !== \"production\" ? warning(\n false,\n 'Unsupported vendor-prefixed style property %s. Did you mean %s?',\n name,\n name.charAt(0).toUpperCase() + name.slice(1)\n ) : null);\n };\n\n var warnStyleValueWithSemicolon = function(name, value) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n (\"production\" !== \"production\" ? warning(\n false,\n 'Style property values shouldn\\'t contain a semicolon. ' +\n 'Try \"%s: %s\" instead.',\n name,\n value.replace(badStyleValueWithSemicolonPattern, '')\n ) : null);\n };\n\n /**\n * @param {string} name\n * @param {*} value\n */\n var warnValidStyle = function(name, value) {\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value);\n }\n };\n}\n\n/**\n * Operations for dealing with CSS properties.\n */\nvar CSSPropertyOperations = {\n\n /**\n * Serializes a mapping of style properties for use as inline styles:\n *\n * > createMarkupForStyles({width: '200px', height: 0})\n * \"width:200px;height:0;\"\n *\n * Undefined values are ignored so that declarative programming is easier.\n * The result should be HTML-escaped before insertion into the DOM.\n *\n * @param {object} styles\n * @return {?string}\n */\n createMarkupForStyles: function(styles) {\n var serialized = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var styleValue = styles[styleName];\n if (\"production\" !== \"production\") {\n warnValidStyle(styleName, styleValue);\n }\n if (styleValue != null) {\n serialized += processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue) + ';';\n }\n }\n return serialized || null;\n },\n\n /**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n setValueForStyles: function(node, styles) {\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n if (\"production\" !== \"production\") {\n warnValidStyle(styleName, styles[styleName]);\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName]);\n if (styleName === 'float') {\n styleName = styleFloatAccessor;\n }\n if (styleValue) {\n style[styleName] = styleValue;\n } else {\n var expansion = CSSProperty.shorthandPropertyExpansions[styleName];\n if (expansion) {\n // Shorthand property that IE8 won't like unsetting, so unset each\n // component to placate it\n for (var individualStyleName in expansion) {\n style[individualStyleName] = '';\n }\n } else {\n style[styleName] = '';\n }\n }\n }\n }\n\n};\n\nmodule.exports = CSSPropertyOperations;\n\n},{\"./CSSProperty\":4,\"./ExecutionEnvironment\":21,\"./camelizeStyleName\":109,\"./dangerousStyleValue\":114,\"./hyphenateStyleName\":134,\"./memoizeStringOnly\":144,\"./warning\":155}],6:[function(require,module,exports){\n/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CallbackQueue\n */\n\n'use strict';\n\nvar PooledClass = require(\"./PooledClass\");\n\nvar assign = require(\"./Object.assign\");\nvar invariant = require(\"./invariant\");\n\n/**\n * A specialized pseudo-event module to help keep track of components waiting to\n * be notified when their DOM representations are available for use.\n *\n * This implements `PooledClass`, so you should never need to instantiate this.\n * Instead, use `CallbackQueue.getPooled()`.\n *\n * @class ReactMountReady\n * @implements PooledClass\n * @internal\n */\nfunction CallbackQueue() {\n this._callbacks = null;\n this._contexts = null;\n}\n\nassign(CallbackQueue.prototype, {\n\n /**\n * Enqueues a callback to be invoked when `notifyAll` is invoked.\n *\n * @param {function} callback Invoked when `notifyAll` is invoked.\n * @param {?object} context Context to call `callback` with.\n * @internal\n */\n enqueue: function(callback, context) {\n this._callbacks = this._callbacks || [];\n this._contexts = this._contexts || [];\n this._callbacks.push(callback);\n this._contexts.push(context);\n },\n\n /**\n * Invokes all enqueued callbacks and clears the queue. This is invoked after\n * the DOM representation of a component has been created or updated.\n *\n * @internal\n */\n notifyAll: function() {\n var callbacks = this._callbacks;\n var contexts = this._contexts;\n if (callbacks) {\n (\"production\" !== \"production\" ? invariant(\n callbacks.length === contexts.length,\n 'Mismatched list of contexts in callback queue'\n ) : invariant(callbacks.length === contexts.length));\n this._callbacks = null;\n this._contexts = null;\n for (var i = 0, l = callbacks.length; i < l; i++) {\n callbacks[i].call(contexts[i]);\n }\n callbacks.length = 0;\n contexts.length = 0;\n }\n },\n\n /**\n * Resets the internal queue.\n *\n * @internal\n */\n reset: function() {\n this._callbacks = null;\n this._contexts = null;\n },\n\n /**\n * `PooledClass` looks for this.\n */\n destructor: function() {\n this.reset();\n }\n\n});\n\nPooledClass.addPoolingTo(CallbackQueue);\n\nmodule.exports = CallbackQueue;\n\n},{\"./Object.assign\":27,\"./PooledClass\":28,\"./invariant\":136}],7:[function(require,module,exports){\n/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ChangeEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require(\"./EventConstants\");\nvar EventPluginHub = require(\"./EventPluginHub\");\nvar EventPropagators = require(\"./EventPropagators\");\nvar ExecutionEnvironment = require(\"./ExecutionEnvironment\");\nvar ReactUpdates = require(\"./ReactUpdates\");\nvar SyntheticEvent = require(\"./SyntheticEvent\");\n\nvar isEventSupported = require(\"./isEventSupported\");\nvar isTextInputElement = require(\"./isTextInputElement\");\nvar keyOf = require(\"./keyOf\");\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: keyOf({onChange: null}),\n captured: keyOf({onChangeCapture: null})\n },\n dependencies: [\n topLevelTypes.topBlur,\n topLevelTypes.topChange,\n topLevelTypes.topClick,\n topLevelTypes.topFocus,\n topLevelTypes.topInput,\n topLevelTypes.topKeyDown,\n topLevelTypes.topKeyUp,\n topLevelTypes.topSelectionChange\n ]\n }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementID = null;\nvar activeElementValue = null;\nvar activeElementValueProp = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n return (\n elem.nodeName === 'SELECT' ||\n (elem.nodeName === 'INPUT' && elem.type === 'file')\n );\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n // See `handleChange` comment below\n doesChangeEventBubble = isEventSupported('change') && (\n (!('documentMode' in document) || document.documentMode > 8)\n );\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = SyntheticEvent.getPooled(\n eventTypes.change,\n activeElementID,\n nativeEvent\n );\n EventPropagators.accumulateTwoPhaseDispatches(event);\n\n // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n EventPluginHub.enqueueEvents(event);\n EventPluginHub.processEventQueue();\n}\n\nfunction startWatchingForChangeEventIE8(target, targetID) {\n activeElement = target;\n activeElementID = targetID;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementID = null;\n}\n\nfunction getTargetIDForChangeEvent(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topChange) {\n return topLevelTargetID;\n }\n}\nfunction handleEventsForChangeEventIE8(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topFocus) {\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForChangeEventIE8();\n startWatchingForChangeEventIE8(topLevelTarget, topLevelTargetID);\n } else if (topLevelType === topLevelTypes.topBlur) {\n stopWatchingForChangeEventIE8();\n }\n}\n\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events\n isInputEventSupported = isEventSupported('input') && (\n (!('documentMode' in document) || document.documentMode > 9)\n );\n}\n\n/**\n * (For old IE.) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n get: function() {\n return activeElementValueProp.get.call(this);\n },\n set: function(val) {\n // Cast to a string so we can do equality checks.\n activeElementValue = '' + val;\n activeElementValueProp.set.call(this, val);\n }\n};\n\n/**\n * (For old IE.) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetID) {\n activeElement = target;\n activeElementID = targetID;\n activeElementValue = target.value;\n activeElementValueProp = Object.getOwnPropertyDescriptor(\n target.constructor.prototype,\n 'value'\n );\n\n Object.defineProperty(activeElement, 'value', newValueProp);\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For old IE.) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n\n // delete restores the original property definition\n delete activeElement.value;\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n\n activeElement = null;\n activeElementID = null;\n activeElementValue = null;\n activeElementValueProp = null;\n}\n\n/**\n * (For old IE.) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n var value = nativeEvent.srcElement.value;\n if (value === activeElementValue) {\n return;\n }\n activeElementValue = value;\n\n manualDispatchChangeEvent(nativeEvent);\n}\n\n/**\n * If a `change` event should be fired, returns the target's ID.\n */\nfunction getTargetIDForInputEvent(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topInput) {\n // In modern browsers (i.e., not IE8 or IE9), the input event is exactly\n // what we want so fall through here and trigger an abstract event\n return topLevelTargetID;\n }\n}\n\n// For IE8 and IE9.\nfunction handleEventsForInputEventIE(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topFocus) {\n // In IE8, we can capture almost all .value changes by adding a\n // propertychange handler and looking for events with propertyName\n // equal to 'value'\n // In IE9, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(topLevelTarget, topLevelTargetID);\n } else if (topLevelType === topLevelTypes.topBlur) {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetIDForInputEventIE(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topSelectionChange ||\n topLevelType === topLevelTypes.topKeyUp ||\n topLevelType === topLevelTypes.topKeyDown) {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n if (activeElement && activeElement.value !== activeElementValue) {\n activeElementValue = activeElement.value;\n return activeElementID;\n }\n }\n}\n\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n return (\n elem.nodeName === 'INPUT' &&\n (elem.type === 'checkbox' || elem.type === 'radio')\n );\n}\n\nfunction getTargetIDForClickEvent(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topClick) {\n return topLevelTargetID;\n }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent) {\n\n var getTargetIDFunc, handleEventFunc;\n if (shouldUseChangeEvent(topLevelTarget)) {\n if (doesChangeEventBubble) {\n getTargetIDFunc = getTargetIDForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(topLevelTarget)) {\n if (isInputEventSupported) {\n getTargetIDFunc = getTargetIDForInputEvent;\n } else {\n getTargetIDFunc = getTargetIDForInputEventIE;\n handleEventFunc = handleEventsForInputEventIE;\n }\n } else if (shouldUseClickEvent(topLevelTarget)) {\n getTargetIDFunc = getTargetIDForClickEvent;\n }\n\n if (getTargetIDFunc) {\n var targetID = getTargetIDFunc(\n topLevelType,\n topLevelTarget,\n topLevelTargetID\n );\n if (targetID) {\n var event = SyntheticEvent.getPooled(\n eventTypes.change,\n targetID,\n nativeEvent\n );\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(\n topLevelType,\n topLevelTarget,\n topLevelTargetID\n );\n }\n }\n\n};\n\nmodule.exports = ChangeEventPlugin;\n\n},{\"./EventConstants\":15,\"./EventPluginHub\":17,\"./EventPropagators\":20,\"./ExecutionEnvironment\":21,\"./ReactUpdates\":88,\"./SyntheticEvent\":96,\"./isEventSupported\":137,\"./isTextInputElement\":139,\"./keyOf\":142}],8:[function(require,module,exports){\n/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ClientReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\nvar nextReactRootIndex = 0;\n\nvar ClientReactRootIndex = {\n createReactRootIndex: function() {\n return nextReactRootIndex++;\n }\n};\n\nmodule.exports = ClientReactRootIndex;\n\n},{}],9:[function(require,module,exports){\n/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMChildrenOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar Danger = require(\"./Danger\");\nvar ReactMultiChildUpdateTypes = require(\"./ReactMultiChildUpdateTypes\");\n\nvar setTextContent = require(\"./setTextContent\");\nvar invariant = require(\"./invariant\");\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nfunction insertChildAt(parentNode, childNode, index) {\n // By exploiting arrays returning `undefined` for an undefined index, we can\n // rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. However, using `undefined` is not allowed by all\n // browsers so we must replace it with `null`.\n parentNode.insertBefore(\n childNode,\n parentNode.childNodes[index] || null\n );\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n dangerouslyReplaceNodeWithMarkup: Danger.dangerouslyReplaceNodeWithMarkup,\n\n updateTextContent: setTextContent,\n\n /**\n * Updates a component's children by processing a series of updates. The\n * update configurations are each expected to have a `parentNode` property.\n *\n * @param {array} updates List of update configurations.\n * @param {array} markupList List of markup strings.\n * @internal\n */\n processUpdates: function(updates, markupList) {\n var update;\n // Mapping from parent IDs to initial child orderings.\n var initialChildren = null;\n // List of children that will be moved or removed.\n var updatedChildren = null;\n\n for (var i = 0; i < updates.length; i++) {\n update = updates[i];\n if (update.type === ReactMultiChildUpdateTypes.MOVE_EXISTING ||\n update.type === ReactMultiChildUpdateTypes.REMOVE_NODE) {\n var updatedIndex = update.fromIndex;\n var updatedChild = update.parentNode.childNodes[updatedIndex];\n var parentID = update.parentID;\n\n (\"production\" !== \"production\" ? invariant(\n updatedChild,\n 'processUpdates(): Unable to find child %s of element. This ' +\n 'probably means the DOM was unexpectedly mutated (e.g., by the ' +\n 'browser), usually due to forgetting a when using tables, ' +\n 'nesting tags like