diff --git a/.editorconfig b/.editorconfig index a45bfa8c..52065f8f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -11,5 +11,5 @@ indent_style = space indent_size = 4 trim_trailing_whitespace = true -[{package.json,*.yml}] +[{*.json,*.yml}] indent_size = 2 diff --git a/.env.example b/.env.example index 56e884f2..0ed277fe 100644 --- a/.env.example +++ b/.env.example @@ -3,6 +3,7 @@ APP_DEBUG=false APP_URL=http://localhost APP_TIMEZONE=UTC APP_KEY= +DEBUGBAR_ENABLED=false DB_DRIVER=mysql DB_HOST=localhost @@ -39,3 +40,5 @@ GITHUB_TOKEN=null NEXMO_KEY=null NEXMO_SECRET=null NEXMO_SMS_FROM=Cachet + +TRUSTED_PROXIES= diff --git a/.github/config.yml b/.github/config.yml index 31a88c48..e41128d3 100644 --- a/.github/config.yml +++ b/.github/config.yml @@ -2,7 +2,11 @@ # Comment to be posted to on first time issues newIssueWelcomeComment: > - :wave: Hey, it's good to see you here! Thank you for opening your first issue. Cachet support is not available here, instead we have a Slack community that can you can join at https://cachethq-slack.herokuapp.com + :wave: Thank you for opening your first issue. I'm just an automated bot that's here to help you get the information you need quicker, so please ignore this message if it doesn't apply to your issue. + + If you're looking for support, you should try the Slack group by registering your email address at https://cachethq-slack.herokuapp.com. Alternatively, email support@alt-three.com for our Professional support service (please note, this a paid service. + + If you're issue is with documentation, you can suggest edits by clicking the **Suggest Edits** link on any page, or open an issue at https://github.com/CachetHQ/Docs # Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome diff --git a/.github/move.yml b/.github/move.yml new file mode 100644 index 00000000..03b8b71a --- /dev/null +++ b/.github/move.yml @@ -0,0 +1,12 @@ +# Configuration for move-issues - https://github.com/dessant/move-issues + +# Delete the command comment. Ignored when the comment also contains other content +deleteCommand: true +# Close the source issue after moving +closeSourceIssue: true +# Lock the source issue after moving +lockSourceIssue: true +# Set custom aliases for targets +# aliases: +# r: repo +# or: owner/repo diff --git a/.travis.yml b/.travis.yml index 27125261..903cff52 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,14 @@ language: php - +dist: trusty sudo: false +branches: + except: + - l10n_2.4 + php: - - 5.6 - - 7.0 - 7.1 + - 7.2 before_install: - cp .env.example .env @@ -13,4 +16,10 @@ before_install: install: travis_retry composer install --no-interaction --no-suggest -script: vendor/bin/phpunit +script: + - if [ "$TRAVIS_PHP_VERSION" != "7.1" ]; then vendor/bin/phpunit; fi + - if [ "$TRAVIS_PHP_VERSION" == "7.1" ]; then vendor/bin/phpunit --coverage-clover build/logs/clover.xml; fi + +after_script: + - if [ "$TRAVIS_PHP_VERSION" == "7.1" ]; then wget https://scrutinizer-ci.com/ocular.phar; fi + - if [ "$TRAVIS_PHP_VERSION" == "7.1" ]; then php ocular.phar code-coverage:upload --format=php-clover build/logs/clover.xml; fi diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6c1dc480..1b186467 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,14 +1,20 @@ # Contribution Guidelines -## Creating issues +## Thank you -We track feature requests and bug reports on the [issue tracker](https://github.com/cachethq/Cachet/issues). Please send support requests to our support email; [support@alt-three.com](mailto:support@alt-three.com?subject=Cachet Support). +Firstly, thank you for taking an interest in Cachet and for reading this guide. + +## Creating issues + +We track feature requests and bug reports on the [issue tracker](https://github.com/cachethq/Cachet/issues). Please send support requests to our support email; [support@alt-three.com](mailto:support@alt-three.com?subject=Cachet%20Support). **Always be respectful.** Organisation members reserve the right to lock topics if they feel necessary. ## Languages -Please submit non-English translations to the [Cachet CrowdIn](https://translate.cachethq.io) project. This makes syncing translations much easier. +This project accepts **English translations** only. Translations will be updated automatically through the [CrowdIn](https://translate.cachethq.io) integration. + +Please submit alternative translations to the [Cachet CrowdIn](https://translate.cachethq.io) project. CrowdIn will automatically send a Pull Request with your updates in. ## Coding Standards @@ -32,15 +38,27 @@ If you're feeling adventurous, you can become a Git & GitHub master with the [Gi You should also make use of the [.editorconfig](/.editorconfig) file found within the root of the repository. It'll make sure that your editor is setup with the same file settings. ---- +## Ways to help: -## Contributing as a non-developer/non-designer +Start by becoming familiar with Cachet. If you're already using Cachet, that's a great head start. If not, check out the latest [demo](https://dev.cachethq.io) and have a play. You can also download and install Cachet locally to familiarise yourself that way. + +You don't have to be a developer to help improve Cachet, infact there are lots of ways that you can help us. + +### Spread the word + +There are a lot of people who don't know about Cachet or what a status page is and how important it can be. [Tweet about Cachet](https://twitter.com/CachetHQ). Write blog posts about your success (or failures, we're not perfect) with Cachet and share what you took away from it. + +### Help with Documentation + +Cachet is in use around the world. Cachet speaks multiple languages. Our documentation doesn't and can be hard to understand for non-English speaking people. Documentation should be easy to understand and we need your help to make this possible. Check out [CachetHQ/Docs](https://github.com/CachetHQ/Docs) to contribute to our documentation. + +### As a non-developer/non-designer We're always looking for new [translations](#translations). Of course bug reports, feature requests and [documentation](https://docs.cachethq.io) are always appreciated. -## Contributing as a designer +### As a designer As Cachet gains new features, the design and ideas that were once a perfect fit need updating and in some cases designing from scratch. This is where you come in! Fancy giving Cachet a lick of paint? Sweet! @@ -56,7 +74,7 @@ If you're making a lot of changes, you'll find that running `npm run watch` will When you're happy with your changes, please run `npm run prod` to minify the assets. -## Contributing as a developer +### As a developer Built using [Laravel](https://laravel.com). @@ -67,3 +85,9 @@ We use these extra dependencies to develop Cachet: - Git Once cloned to your local machine, you'll need some demo data! Run `php artisan cachet:seed` to get the demo installation ready for action. + +### #YOLO JUST SUBMIT A PR + +_A great idea taken from https://github.com/metabase/metabase/blob/master/docs/contributing.md#yolo-just-submit-a-pr._ + +> If you come up with something really cool, and want to share it with us, just submit a PR. If it hasn't gone through the above process, we probably won't merge it as is, but if it's compelling, we're more than willing to help you via code review, design review and generally OCD nitpicking so that it fits into the rest of our codebase. diff --git a/README.md b/README.md index fb7835af..54d49e30 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ You can now [join our Slack community!](http://cachethq-slack.herokuapp.com) ## Requirements -- PHP 5.6.4+ or newer +- PHP 7.1 or later - HTTP server with PHP support (eg: Apache, Nginx, Caddy) - [Composer](https://getcomposer.org) - A supported database: MySQL, PostgreSQL or SQLite @@ -41,6 +41,7 @@ Here are some useful quick links: - [Installing Cachet](https://docs.cachethq.io/docs/installing-cachet) - [Getting started with Docker](https://docs.cachethq.io/docs/get-started-with-docker) +- [Installing Cachet on Windows](https://docs.cachethq.io/docs/installing-cachet-on-windows) ### Demo @@ -71,3 +72,9 @@ We offer a professional installation service. To find out more, email us at [sup ## Security Vulnerabilities If you discover a security vulnerability within Cachet, please send an e-mail to us at support@alt-three.com. We handle all security vulnerabilities on a case-by-case basis. + +## Sponsorship + +Thank you to the following for [sponsoring](https://patreon.com/jbrooksuk) Cachet. + +![Exascale](/docs/images/sponsorships/exascale.jpg) diff --git a/app/Bus/Commands/Component/UpdateComponentCommand.php b/app/Bus/Commands/Component/UpdateComponentCommand.php index 52503094..96550fd6 100644 --- a/app/Bus/Commands/Component/UpdateComponentCommand.php +++ b/app/Bus/Commands/Component/UpdateComponentCommand.php @@ -25,49 +25,49 @@ final class UpdateComponentCommand /** * The component name. * - * @var string + * @var string|null */ public $name; /** * The component description. * - * @var string + * @var string|null */ public $description; /** * The component status. * - * @var int + * @var int|null */ public $status; /** * The component link. * - * @var string + * @var string|null */ public $link; /** * The component order. * - * @var int + * @var int|null */ public $order; /** * The component group. * - * @var int + * @var int|null */ public $group_id; /** * Is the component enabled? * - * @var bool + * @var bool|null */ public $enabled; @@ -106,19 +106,19 @@ final class UpdateComponentCommand * Create a new update component command instance. * * @param \CachetHQ\Cachet\Models\Component $component - * @param string $name - * @param string $description - * @param int $status - * @param string $link - * @param int $order - * @param int $group_id - * @param bool $enabled + * @param string|null $name + * @param string|null $description + * @param int|null $status + * @param string|null $link + * @param int|null $order + * @param int|null $group_id + * @param bool|null $enabled * @param array|null $meta * @param bool $silent * * @return void */ - public function __construct(Component $component, $name, $description, $status, $link, $order, $group_id, $enabled, $meta, $silent) + public function __construct(Component $component, $name = null, $description = null, $status = null, $link = null, $order = null, $group_id = null, $enabled = null, $meta = null, $silent = null) { $this->component = $component; $this->name = $name; diff --git a/app/Bus/Commands/Tag/ApplyTagCommand.php b/app/Bus/Commands/Tag/ApplyTagCommand.php new file mode 100644 index 00000000..1fbd7421 --- /dev/null +++ b/app/Bus/Commands/Tag/ApplyTagCommand.php @@ -0,0 +1,51 @@ + + */ +final class ApplyTagCommand +{ + /** + * The model to apply the tag to. + * + * @var \Illuminate\Database\Eloquent\Model + */ + public $model; + + /** + * The tag to apply. + * + * @var \CachetHQ\Cachet\Models\Tag + */ + public $tag; + + /** + * Create a new apply tag command instance. + * + * @param \Illuminate\Database\Eloquent\Model $model + * @param \CachetHQ\Cachet\Models\Tag $tag + * + * @return void + */ + public function __construct(Model $model, Tag $tag) + { + $this->model = $model; + $this->tag = $tag; + } +} diff --git a/app/Bus/Commands/Tag/CreateTagCommand.php b/app/Bus/Commands/Tag/CreateTagCommand.php new file mode 100644 index 00000000..69ae89eb --- /dev/null +++ b/app/Bus/Commands/Tag/CreateTagCommand.php @@ -0,0 +1,48 @@ + + */ +final class CreateTagCommand +{ + /** + * The tag name. + * + * @var string + */ + public $name; + + /** + * The tag slug. + * + * @var string|null + */ + public $slug; + + /** + * Create a new create tag command instance. + * + * @param string $name + * @param string|null $slug + * + * @return void + */ + public function __construct($name, $slug = null) + { + $this->name = $name; + $this->slug = $slug; + } +} diff --git a/app/Bus/Commands/Tag/DeleteTagCommand.php b/app/Bus/Commands/Tag/DeleteTagCommand.php new file mode 100644 index 00000000..7ab95001 --- /dev/null +++ b/app/Bus/Commands/Tag/DeleteTagCommand.php @@ -0,0 +1,41 @@ + + */ +final class DeleteTagCommand +{ + /** + * The tag. + * + * @var \CachetHQ\Cachet\Models\Tag + */ + public $tag; + + /** + * Create a new delete tag command instance. + * + * @param \CachetHQ\Cachet\Models\Tag $tag + * + * @return void + */ + public function __construct(Tag $tag) + { + $this->tag = $tag; + } +} diff --git a/app/Bus/Commands/Tag/UpdateTagCommand.php b/app/Bus/Commands/Tag/UpdateTagCommand.php new file mode 100644 index 00000000..f2747500 --- /dev/null +++ b/app/Bus/Commands/Tag/UpdateTagCommand.php @@ -0,0 +1,59 @@ + + */ +final class UpdateTagCommand +{ + /** + * The tag. + * + * @var \CachetHQ\Cachet\Models\Tag + */ + public $tag; + + /** + * The new tag name. + * + * @var string|null + */ + public $name; + + /** + * The new tag slug. + * + * @var string|null + */ + public $slug; + + /** + * Create a new update tag command instance. + * + * @param \CachetHQ\Cachet\Models\Tag $tag + * @param string|null $name + * @param string|null $slug + * + * @return void + */ + public function __construct(Tag $tag, $name, $slug) + { + $this->tag = $tag; + $this->name = $name; + $this->slug = $slug; + } +} diff --git a/app/Bus/Events/User/UserWasInvitedEvent.php b/app/Bus/Events/User/UserWasInvitedEvent.php index 529efce0..c2a65db9 100644 --- a/app/Bus/Events/User/UserWasInvitedEvent.php +++ b/app/Bus/Events/User/UserWasInvitedEvent.php @@ -16,7 +16,7 @@ use CachetHQ\Cachet\Models\Invite; /** * This is the user was invited event class. * - * @author Joseph Cohen + * @author Joseph Cohen * @author Graham Campbell * @author James Brooks */ diff --git a/app/Bus/Handlers/Commands/Component/CreateComponentCommandHandler.php b/app/Bus/Handlers/Commands/Component/CreateComponentCommandHandler.php index 7cc941e0..d9bcc339 100644 --- a/app/Bus/Handlers/Commands/Component/CreateComponentCommandHandler.php +++ b/app/Bus/Handlers/Commands/Component/CreateComponentCommandHandler.php @@ -61,7 +61,7 @@ class CreateComponentCommandHandler /** * Filter the command data. * - * @param \CachetHQ\Cachet\Bus\Commands\Incident\CreateComponentCommand $command + * @param \CachetHQ\Cachet\Bus\Commands\Component\CreateComponentCommand $command * * @return array */ diff --git a/app/Bus/Handlers/Commands/Component/UpdateComponentCommandHandler.php b/app/Bus/Handlers/Commands/Component/UpdateComponentCommandHandler.php index 736ff23c..1fdaf007 100644 --- a/app/Bus/Handlers/Commands/Component/UpdateComponentCommandHandler.php +++ b/app/Bus/Handlers/Commands/Component/UpdateComponentCommandHandler.php @@ -50,7 +50,9 @@ class UpdateComponentCommandHandler $component = $command->component; $originalStatus = $component->status; - event(new ComponentStatusWasChangedEvent($this->auth->user(), $component, $originalStatus, $command->status, $command->silent)); + if ($command->status && (int) $originalStatus !== (int) $command->status) { + event(new ComponentStatusWasChangedEvent($this->auth->user(), $component, $originalStatus, $command->status, $command->silent)); + } $component->update($this->filter($command)); @@ -62,7 +64,7 @@ class UpdateComponentCommandHandler /** * Filter the command data. * - * @param \CachetHQ\Cachet\Bus\Commands\Incident\UpdateComponentCommand $command + * @param \CachetHQ\Cachet\Bus\Commands\Component\UpdateComponentCommand $command * * @return array */ diff --git a/app/Bus/Handlers/Commands/Incident/CreateIncidentCommandHandler.php b/app/Bus/Handlers/Commands/Incident/CreateIncidentCommandHandler.php index 76128d9b..15febf62 100644 --- a/app/Bus/Handlers/Commands/Incident/CreateIncidentCommandHandler.php +++ b/app/Bus/Handlers/Commands/Incident/CreateIncidentCommandHandler.php @@ -73,6 +73,7 @@ class CreateIncidentCommandHandler public function handle(CreateIncidentCommand $command) { $data = [ + 'user_id' => $this->auth->user()->id, 'name' => $command->name, 'status' => $command->status, 'visible' => $command->visible, @@ -111,7 +112,7 @@ class CreateIncidentCommandHandler // Update the component. if ($component = Component::find($command->component_id)) { - dispatch(new UpdateComponentCommand( + execute(new UpdateComponentCommand( Component::find($command->component_id), null, null, diff --git a/app/Bus/Handlers/Commands/Incident/UpdateIncidentCommandHandler.php b/app/Bus/Handlers/Commands/Incident/UpdateIncidentCommandHandler.php index 935e1d99..bd0a53eb 100644 --- a/app/Bus/Handlers/Commands/Incident/UpdateIncidentCommandHandler.php +++ b/app/Bus/Handlers/Commands/Incident/UpdateIncidentCommandHandler.php @@ -96,7 +96,7 @@ class UpdateIncidentCommandHandler // Update the component. if ($component = Component::find($command->component_id)) { - dispatch(new UpdateComponentCommand( + execute(new UpdateComponentCommand( Component::find($command->component_id), null, null, diff --git a/app/Bus/Handlers/Commands/IncidentUpdate/CreateIncidentUpdateCommandHandler.php b/app/Bus/Handlers/Commands/IncidentUpdate/CreateIncidentUpdateCommandHandler.php index 09fe9d9b..20dd2c84 100644 --- a/app/Bus/Handlers/Commands/IncidentUpdate/CreateIncidentUpdateCommandHandler.php +++ b/app/Bus/Handlers/Commands/IncidentUpdate/CreateIncidentUpdateCommandHandler.php @@ -63,7 +63,7 @@ class CreateIncidentUpdateCommandHandler $update = IncidentUpdate::create($data); // Update the original incident with the new status. - dispatch(new UpdateIncidentCommand( + execute(new UpdateIncidentCommand( $command->incident, null, $command->status, diff --git a/app/Bus/Handlers/Commands/Invite/ClaimInviteCommandHandler.php b/app/Bus/Handlers/Commands/Invite/ClaimInviteCommandHandler.php index 6499eae8..bd2603be 100644 --- a/app/Bus/Handlers/Commands/Invite/ClaimInviteCommandHandler.php +++ b/app/Bus/Handlers/Commands/Invite/ClaimInviteCommandHandler.php @@ -20,7 +20,7 @@ class ClaimInviteCommandHandler /** * Handle the claim invite command. * - * @param \CachetHQ\Cachet\Bus\Commands\User\ClaimInviteCommand $command + * @param \CachetHQ\Cachet\Bus\Commands\Invite\ClaimInviteCommand $command * * @return void */ diff --git a/app/Bus/Handlers/Commands/Metric/CreateMetricPointCommandHandler.php b/app/Bus/Handlers/Commands/Metric/CreateMetricPointCommandHandler.php index 4e065de7..8fdbe1ca 100644 --- a/app/Bus/Handlers/Commands/Metric/CreateMetricPointCommandHandler.php +++ b/app/Bus/Handlers/Commands/Metric/CreateMetricPointCommandHandler.php @@ -79,7 +79,7 @@ class CreateMetricPointCommandHandler */ protected function findOrCreatePoint(CreateMetricPointCommand $command) { - $buffer = Carbon::now()->subMinutes($command->metric->threshold); + $buffer = Carbon::now()->subMinutes($command->metric->threshold - 1)->startOfMinute(); if ($point = MetricPoint::where('metric_id', '=', $command->metric->id)->where('value', '=', $command->value)->where('created_at', '>=', $buffer)->first()) { return $point; diff --git a/app/Bus/Handlers/Commands/Subscriber/SubscribeSubscriberCommandHandler.php b/app/Bus/Handlers/Commands/Subscriber/SubscribeSubscriberCommandHandler.php index 6a9839c7..1dde43da 100644 --- a/app/Bus/Handlers/Commands/Subscriber/SubscribeSubscriberCommandHandler.php +++ b/app/Bus/Handlers/Commands/Subscriber/SubscribeSubscriberCommandHandler.php @@ -58,7 +58,7 @@ class SubscribeSubscriberCommandHandler }); if ($command->verified) { - dispatch(new VerifySubscriberCommand($subscriber)); + execute(new VerifySubscriberCommand($subscriber)); } else { $subscriber->notify(new VerifySubscriptionNotification()); } diff --git a/app/Bus/Handlers/Commands/Tag/ApplyTagCommandHandler.php b/app/Bus/Handlers/Commands/Tag/ApplyTagCommandHandler.php new file mode 100644 index 00000000..7f1c4f4b --- /dev/null +++ b/app/Bus/Handlers/Commands/Tag/ApplyTagCommandHandler.php @@ -0,0 +1,39 @@ + + */ +class ApplyTagCommandHandler +{ + /** + * Handle the command. + * + * @param \CachetHQ\Cachet\Bus\Commands\Tag\ApplyTagCommand $command + * + * @return void + */ + public function handle(ApplyTagCommand $command) + { + Taggable::firstOrCreate([ + 'tag_id' => $command->tag->id, + 'taggable_id' => $command->model->id, + 'taggable_type' => $command->model->getTable(), + ]); + } +} diff --git a/app/Bus/Handlers/Commands/Tag/CreateTagCommandHandler.php b/app/Bus/Handlers/Commands/Tag/CreateTagCommandHandler.php new file mode 100644 index 00000000..71f616dd --- /dev/null +++ b/app/Bus/Handlers/Commands/Tag/CreateTagCommandHandler.php @@ -0,0 +1,39 @@ + + */ +class CreateTagCommandHandler +{ + /** + * Handle the command. + * + * @param \CachetHQ\Cachet\Bus\Commands\Tag\CreateTagCommand $command + * + * @return \CachetHQ\Cachet\Models\Tag + */ + public function handle(CreateTagCommand $command) + { + return Tag::firstOrCreate([ + 'name' => $command->name, + 'slug' => $command->slug ? $command->slug : Str::slug($command->name), + ]); + } +} diff --git a/app/Bus/Handlers/Commands/Tag/DeleteTagCommandHandler.php b/app/Bus/Handlers/Commands/Tag/DeleteTagCommandHandler.php new file mode 100644 index 00000000..08189349 --- /dev/null +++ b/app/Bus/Handlers/Commands/Tag/DeleteTagCommandHandler.php @@ -0,0 +1,34 @@ + + */ +class DeleteTagCommandHandler +{ + /** + * Handle the command. + * + * @param \CachetHQ\Cachet\Bus\Commands\Tag\DeleteTagCommand $command + * + * @return \CachetHQ\Cachet\Models\Tag + */ + public function handle(DeleteTagCommand $command) + { + $command->tag->delete(); + } +} diff --git a/app/Bus/Handlers/Commands/Tag/UpdateTagCommandHandler.php b/app/Bus/Handlers/Commands/Tag/UpdateTagCommandHandler.php new file mode 100644 index 00000000..5a21d7d6 --- /dev/null +++ b/app/Bus/Handlers/Commands/Tag/UpdateTagCommandHandler.php @@ -0,0 +1,38 @@ + + */ +class UpdateTagCommandHandler +{ + /** + * Handle the command. + * + * @param \CachetHQ\Cachet\Bus\Commands\Tag\UpdateTagCommand $command + * + * @return void + */ + public function handle(UpdateTagCommand $command) + { + return $command->tag->update([ + 'name' => $command->name, + 'slug' => $command->slug ? $command->slug : Str::slug($command->name), + ]); + } +} diff --git a/app/Bus/Handlers/Jobs/System/SendBeaconJobHandler.php b/app/Bus/Handlers/Jobs/System/SendBeaconJobHandler.php index 0d3025dc..da0eb87d 100644 --- a/app/Bus/Handlers/Jobs/System/SendBeaconJobHandler.php +++ b/app/Bus/Handlers/Jobs/System/SendBeaconJobHandler.php @@ -44,7 +44,7 @@ class SendBeaconJobHandler /** * Handle the send beacon job. * - * @param \CachetHQ\Cachet\Bus\Jobs\SendBeaconJob $job + * @param \CachetHQ\Cachet\Bus\Jobs\System\SendBeaconJob $job * * @return void */ diff --git a/app/Composers/Modules/ComponentsComposer.php b/app/Composers/ComponentsComposer.php similarity index 97% rename from app/Composers/Modules/ComponentsComposer.php rename to app/Composers/ComponentsComposer.php index 10555c21..7e62715c 100644 --- a/app/Composers/Modules/ComponentsComposer.php +++ b/app/Composers/ComponentsComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use CachetHQ\Cachet\Models\Component; use CachetHQ\Cachet\Models\ComponentGroup; diff --git a/app/Composers/Modules/MetricsComposer.php b/app/Composers/MetricsComposer.php similarity index 97% rename from app/Composers/Modules/MetricsComposer.php rename to app/Composers/MetricsComposer.php index ba49156a..e6e32e9f 100644 --- a/app/Composers/Modules/MetricsComposer.php +++ b/app/Composers/MetricsComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use CachetHQ\Cachet\Models\Metric; use Illuminate\Contracts\Auth\Guard; diff --git a/app/Composers/ModuleComposer.php b/app/Composers/ModuleComposer.php deleted file mode 100644 index b31af295..00000000 --- a/app/Composers/ModuleComposer.php +++ /dev/null @@ -1,77 +0,0 @@ - - * @author James Brooks - */ -class ModuleComposer -{ - /** - * The application instance. - * - * @var \Illuminate\Contracts\Foundation\Application - */ - protected $app; - - /** - * The modules manager instance. - * - * @var \CachetHQ\Cachet\Services\Modules\Manager - */ - protected $manager; - - /** - * Create a new modules composer. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @param \CachetHQ\Cachet\Services\Modules\Manager $manager - * - * @return void - */ - public function __construct(Application $app, Manager $manager) - { - $this->app = $app; - $this->manager = $manager; - } - - /** - * Bind data to the view. - * - * @param \Illuminate\Contracts\View\View $view - * - * @return void - */ - public function compose(View $view) - { - $key = $view->getName(); - - $view->with('view', $key); - - $modules = "view.modules: {$key}"; - $groups = "view.groups: {$key}"; - - $modules = $this->app->bound($modules) ? $this->app[$modules] : []; - $groups = $this->app->bound($groups) ? $this->app[$groups] : []; - - $modules = $this->manager->groupModules($modules, $groups); - - $view->withModules($modules); - } -} diff --git a/app/Composers/Modules/ScheduledComposer.php b/app/Composers/ScheduledComposer.php similarity index 94% rename from app/Composers/Modules/ScheduledComposer.php rename to app/Composers/ScheduledComposer.php index 642984f5..ab8cd380 100644 --- a/app/Composers/Modules/ScheduledComposer.php +++ b/app/Composers/ScheduledComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use CachetHQ\Cachet\Models\Schedule; use Illuminate\Contracts\View\View; diff --git a/app/Composers/Modules/StatusComposer.php b/app/Composers/StatusComposer.php similarity index 82% rename from app/Composers/Modules/StatusComposer.php rename to app/Composers/StatusComposer.php index 6449bfe5..a1389fa4 100644 --- a/app/Composers/Modules/StatusComposer.php +++ b/app/Composers/StatusComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use CachetHQ\Cachet\Integrations\Contracts\System; use Illuminate\Contracts\View\View; @@ -50,6 +50,9 @@ class StatusComposer */ public function compose(View $view) { - $view->with($this->system->getStatus()); + $status = $this->system->getStatus(); + + $view->withSystemStatus(array_get($status, 'system_status')); + $view->withSystemMessage(array_get($status, 'system_message')); } } diff --git a/app/Composers/Modules/StickiedComposer.php b/app/Composers/StickiedComposer.php similarity index 96% rename from app/Composers/Modules/StickiedComposer.php rename to app/Composers/StickiedComposer.php index 880458ab..82e357f3 100644 --- a/app/Composers/Modules/StickiedComposer.php +++ b/app/Composers/StickiedComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use CachetHQ\Cachet\Models\Incident; use CachetHQ\Cachet\Services\Dates\DateFactory; diff --git a/app/Composers/Modules/TimelineComposer.php b/app/Composers/TimelineComposer.php similarity index 93% rename from app/Composers/Modules/TimelineComposer.php rename to app/Composers/TimelineComposer.php index 7064a00c..0206a2dc 100644 --- a/app/Composers/Modules/TimelineComposer.php +++ b/app/Composers/TimelineComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use Illuminate\Contracts\View\View; diff --git a/app/Console/Commands/AppInstallCommand.php b/app/Console/Commands/AppInstallCommand.php new file mode 100644 index 00000000..6f5a0cfe --- /dev/null +++ b/app/Console/Commands/AppInstallCommand.php @@ -0,0 +1,76 @@ + + */ +class AppInstallCommand extends Command +{ + /** + * The name and signature of the console command. + * + * @var string + */ + protected $signature = 'app:install'; + + /** + * The console command description. + * + * @var string + */ + protected $description = 'Installs the application'; + + /** + * The events instance. + * + * @var \Illuminate\Contracts\Events\Dispatcher + */ + protected $events; + + /** + * Create a new command instance. + * + * @return void + */ + public function __construct(Dispatcher $events) + { + $this->events = $events; + + parent::__construct(); + } + + /** + * Execute the console command. + * + * @return mixed + */ + public function handle() + { + $this->events->fire('command.installing', $this); + $this->events->fire('command.generatekey', $this); + $this->events->fire('command.cacheconfig', $this); + $this->events->fire('command.cacheroutes', $this); + $this->events->fire('command.publishvendors', $this); + $this->events->fire('command.runmigrations', $this); + $this->events->fire('command.runseeding', $this); + $this->events->fire('command.updatecache', $this); + $this->events->fire('command.linkstorage', $this); + $this->events->fire('command.extrastuff', $this); + $this->events->fire('command.installed', $this); + } +} diff --git a/app/Console/Commands/AppResetCommand.php b/app/Console/Commands/AppResetCommand.php new file mode 100644 index 00000000..3add76aa --- /dev/null +++ b/app/Console/Commands/AppResetCommand.php @@ -0,0 +1,76 @@ + + */ +class AppResetCommand extends Command +{ + /** + * The name and signature of the console command. + * + * @var string + */ + protected $signature = 'app:reset'; + + /** + * The console command description. + * + * @var string + */ + protected $description = 'Resets and installs the application'; + + /** + * The events instance. + * + * @var \Illuminate\Contracts\Events\Dispatcher + */ + protected $events; + + /** + * Create a new command instance. + * + * @return void + */ + public function __construct(Dispatcher $events) + { + $this->events = $events; + + parent::__construct(); + } + + /** + * Execute the console command. + * + * @return mixed + */ + public function handle() + { + $this->events->fire('command.resetting', $this); + $this->events->fire('command.generatekey', $this); + $this->events->fire('command.cacheconfig', $this); + $this->events->fire('command.cacheroutes', $this); + $this->events->fire('command.publishvendors', $this); + $this->events->fire('command.resetmigrations', $this); + $this->events->fire('command.runmigrations', $this); + $this->events->fire('command.runseeding', $this); + $this->events->fire('command.updatecache', $this); + $this->events->fire('command.extrastuff', $this); + $this->events->fire('command.reset', $this); + } +} diff --git a/app/Console/Commands/AppUpdateCommand.php b/app/Console/Commands/AppUpdateCommand.php new file mode 100644 index 00000000..1aa4bd97 --- /dev/null +++ b/app/Console/Commands/AppUpdateCommand.php @@ -0,0 +1,73 @@ + + */ +class AppUpdateCommand extends Command +{ + /** + * The name and signature of the console command. + * + * @var string + */ + protected $signature = 'app:update'; + + /** + * The console command description. + * + * @var string + */ + protected $description = 'Updates the application'; + + /** + * The events instance. + * + * @var \Illuminate\Contracts\Events\Dispatcher + */ + protected $events; + + /** + * Create a new command instance. + * + * @return void + */ + public function __construct(Dispatcher $events) + { + $this->events = $events; + + parent::__construct(); + } + + /** + * Execute the console command. + * + * @return mixed + */ + public function handle() + { + $this->events->fire('command.updating', $this); + $this->events->fire('command.cacheconfig', $this); + $this->events->fire('command.cacheroutes', $this); + $this->events->fire('command.publishvendors', $this); + $this->events->fire('command.runmigrations', $this); + $this->events->fire('command.updatecache', $this); + $this->events->fire('command.extrastuff', $this); + $this->events->fire('command.updated', $this); + } +} diff --git a/app/Console/Commands/BeaconCommand.php b/app/Console/Commands/BeaconCommand.php index 5045f642..27cad3f0 100644 --- a/app/Console/Commands/BeaconCommand.php +++ b/app/Console/Commands/BeaconCommand.php @@ -40,7 +40,7 @@ class BeaconCommand extends Command * * @return void */ - public function fire() + public function handle() { dispatch(new SendBeaconJob()); } diff --git a/app/Console/Commands/DemoMetricPointSeederCommand.php b/app/Console/Commands/DemoMetricPointSeederCommand.php index ed754b16..e169f8f3 100644 --- a/app/Console/Commands/DemoMetricPointSeederCommand.php +++ b/app/Console/Commands/DemoMetricPointSeederCommand.php @@ -46,7 +46,7 @@ class DemoMetricPointSeederCommand extends Command * * @return void */ - public function fire() + public function handle() { if (!$this->confirmToProceed()) { return; diff --git a/app/Console/Commands/DemoSeederCommand.php b/app/Console/Commands/DemoSeederCommand.php index 4aeb7300..811be7af 100644 --- a/app/Console/Commands/DemoSeederCommand.php +++ b/app/Console/Commands/DemoSeederCommand.php @@ -79,12 +79,13 @@ class DemoSeederCommand extends Command * * @return void */ - public function fire() + public function handle() { if (!$this->confirmToProceed()) { return; } + $this->seedUsers(); $this->seedActions(); $this->seedComponentGroups(); $this->seedComponents(); @@ -95,7 +96,6 @@ class DemoSeederCommand extends Command $this->seedSchedules(); $this->seedSettings(); $this->seedSubscribers(); - $this->seedUsers(); $this->info('Database seeded with demo data successfully!'); } @@ -223,6 +223,7 @@ EINCIDENT; 'component_id' => 0, 'visible' => 1, 'stickied' => false, + 'user_id' => 1, 'occurred_at' => Carbon::now(), ], [ @@ -232,6 +233,7 @@ EINCIDENT; 'component_id' => 0, 'visible' => 1, 'stickied' => false, + 'user_id' => 1, 'occurred_at' => Carbon::now(), ], ]; diff --git a/app/Console/Commands/InstallCommand.php b/app/Console/Commands/InstallCommand.php index c9df46e0..0eaf1d72 100644 --- a/app/Console/Commands/InstallCommand.php +++ b/app/Console/Commands/InstallCommand.php @@ -41,7 +41,7 @@ class InstallCommand extends Command * * @return void */ - public function fire() + public function handle() { if (!$this->confirm('Do you want to install Cachet?')) { $this->line('Installation aborted. Goodbye!'); diff --git a/app/Console/Commands/VersionCommand.php b/app/Console/Commands/VersionCommand.php index b18209dd..e093fe7a 100644 --- a/app/Console/Commands/VersionCommand.php +++ b/app/Console/Commands/VersionCommand.php @@ -39,7 +39,7 @@ class VersionCommand extends Command * * @return void */ - public function fire() + public function handle() { $this->info('Cachet '.CACHET_VERSION.' is installed ⚡'); } diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 9a203840..b3d16aac 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -11,6 +11,9 @@ namespace CachetHQ\Cachet\Console; +use CachetHQ\Cachet\Console\Commands\AppInstallCommand; +use CachetHQ\Cachet\Console\Commands\AppResetCommand; +use CachetHQ\Cachet\Console\Commands\AppUpdateCommand; use CachetHQ\Cachet\Console\Commands\BeaconCommand; use CachetHQ\Cachet\Console\Commands\DemoMetricPointSeederCommand; use CachetHQ\Cachet\Console\Commands\DemoSeederCommand; @@ -34,6 +37,9 @@ class Kernel extends ConsoleKernel * @var array */ protected $commands = [ + AppInstallCommand::class, + AppResetCommand::class, + AppUpdateCommand::class, BeaconCommand::class, DemoMetricPointSeederCommand::class, DemoSeederCommand::class, diff --git a/app/Foundation/Exceptions/Displayers/JsonValidationDisplayer.php b/app/Foundation/Exceptions/Displayers/JsonValidationDisplayer.php index 02fd20ad..c87a21d2 100644 --- a/app/Foundation/Exceptions/Displayers/JsonValidationDisplayer.php +++ b/app/Foundation/Exceptions/Displayers/JsonValidationDisplayer.php @@ -29,7 +29,7 @@ class JsonValidationDisplayer extends JsonDisplayer implements DisplayerInterfac * * @return \Symfony\Component\HttpFoundation\Response */ - public function display(Exception $exception, $id, $code, array $headers) + public function display(Exception $exception, string $id, int $code, array $headers) { $info = $this->info->generate($exception, $id, 400); @@ -47,7 +47,7 @@ class JsonValidationDisplayer extends JsonDisplayer implements DisplayerInterfac * * @return bool */ - public function canDisplay(Exception $original, Exception $transformed, $code) + public function canDisplay(Exception $original, Exception $transformed, int $code) { return $transformed instanceof ValidationException; } diff --git a/app/Foundation/Exceptions/Displayers/MaintenanceDisplayer.php b/app/Foundation/Exceptions/Displayers/MaintenanceDisplayer.php index 77c583f7..255d1b63 100644 --- a/app/Foundation/Exceptions/Displayers/MaintenanceDisplayer.php +++ b/app/Foundation/Exceptions/Displayers/MaintenanceDisplayer.php @@ -53,7 +53,7 @@ class MaintenanceDisplayer implements DisplayerInterface * * @return \Symfony\Component\HttpFoundation\Response */ - public function display(Exception $exception, $id, $code, array $headers) + public function display(Exception $exception, string $id, int $code, array $headers) { return new Response($this->render(), $code, array_merge($headers, ['Content-Type' => $this->contentType()])); } @@ -87,7 +87,7 @@ class MaintenanceDisplayer implements DisplayerInterface * * @return bool */ - public function canDisplay(Exception $original, Exception $transformed, $code) + public function canDisplay(Exception $original, Exception $transformed, int $code) { return $transformed instanceof MaintenanceModeException; } diff --git a/app/Foundation/Exceptions/Displayers/RedirectDisplayer.php b/app/Foundation/Exceptions/Displayers/RedirectDisplayer.php index 147a2c97..34c898c8 100644 --- a/app/Foundation/Exceptions/Displayers/RedirectDisplayer.php +++ b/app/Foundation/Exceptions/Displayers/RedirectDisplayer.php @@ -47,7 +47,7 @@ class RedirectDisplayer implements DisplayerInterface * * @return \Symfony\Component\HttpFoundation\Response */ - public function display(Exception $exception, $id, $code, array $headers) + public function display(Exception $exception, string $id, int $code, array $headers) { return redirect()->guest('auth/login'); } @@ -71,7 +71,7 @@ class RedirectDisplayer implements DisplayerInterface * * @return bool */ - public function canDisplay(Exception $original, Exception $transformed, $code) + public function canDisplay(Exception $original, Exception $transformed, int $code) { $redirect = $transformed instanceof HttpExceptionInterface && $transformed->getStatusCode() === 401; diff --git a/app/Foundation/Exceptions/Displayers/ThrottleDisplayer.php b/app/Foundation/Exceptions/Displayers/ThrottleDisplayer.php index 7d298927..e900c077 100644 --- a/app/Foundation/Exceptions/Displayers/ThrottleDisplayer.php +++ b/app/Foundation/Exceptions/Displayers/ThrottleDisplayer.php @@ -47,7 +47,7 @@ class ThrottleDisplayer implements DisplayerInterface * * @return \Symfony\Component\HttpFoundation\Response */ - public function display(Exception $exception, $id, $code, array $headers) + public function display(Exception $exception, string $id, int $code, array $headers) { return cachet_redirect('auth.login')->withError(trans('forms.login.rate-limit')); } @@ -71,7 +71,7 @@ class ThrottleDisplayer implements DisplayerInterface * * @return bool */ - public function canDisplay(Exception $original, Exception $transformed, $code) + public function canDisplay(Exception $original, Exception $transformed, int $code) { return $transformed instanceof TooManyRequestsHttpException && $this->request->is('auth*'); } diff --git a/app/Foundation/Exceptions/Filters/ApiFilter.php b/app/Foundation/Exceptions/Filters/ApiFilter.php index e824de2a..a8a8105d 100644 --- a/app/Foundation/Exceptions/Filters/ApiFilter.php +++ b/app/Foundation/Exceptions/Filters/ApiFilter.php @@ -27,7 +27,7 @@ class ApiFilter * * @return \GrahamCampbell\Exceptions\Displayers\DisplayerInterface[] */ - public function filter(array $displayers, Request $request, Exception $original, Exception $transformed, $code) + public function filter(array $displayers, Request $request, Exception $original, Exception $transformed, int $code) { if ($request->is('api*')) { foreach ($displayers as $index => $displayer) { diff --git a/app/Foundation/Providers/AppServiceProvider.php b/app/Foundation/Providers/AppServiceProvider.php index c652b039..48f041db 100644 --- a/app/Foundation/Providers/AppServiceProvider.php +++ b/app/Foundation/Providers/AppServiceProvider.php @@ -33,6 +33,8 @@ class AppServiceProvider extends ServiceProvider * Boot the service provider. * * @param \AltThree\Bus\Dispatcher $dispatcher + * + * @return void */ public function boot(Dispatcher $dispatcher) { @@ -54,6 +56,7 @@ class AppServiceProvider extends ServiceProvider 'metrics' => \CachetHQ\Cachet\Models\Metric::class, 'schedules' => \CachetHQ\Cachet\Models\Schedule::class, 'subscriber' => \CachetHQ\Cachet\Models\Subscriber::class, + 'tags' => \CachetHQ\Cachet\Models\Tag::class, ]); } diff --git a/app/Foundation/Providers/ComposerServiceProvider.php b/app/Foundation/Providers/ComposerServiceProvider.php index 19ca8fc2..bd762dd4 100644 --- a/app/Foundation/Providers/ComposerServiceProvider.php +++ b/app/Foundation/Providers/ComposerServiceProvider.php @@ -12,17 +12,16 @@ namespace CachetHQ\Cachet\Foundation\Providers; use CachetHQ\Cachet\Composers\AppComposer; +use CachetHQ\Cachet\Composers\ComponentsComposer; use CachetHQ\Cachet\Composers\CurrentUserComposer; use CachetHQ\Cachet\Composers\DashboardComposer; -use CachetHQ\Cachet\Composers\ModuleComposer; -use CachetHQ\Cachet\Composers\Modules\ComponentsComposer as ComponentsModuleComposer; -use CachetHQ\Cachet\Composers\Modules\MetricsComposer as MetricsModuleComposer; -use CachetHQ\Cachet\Composers\Modules\ScheduledComposer as ScheduledModuleComposer; -use CachetHQ\Cachet\Composers\Modules\StatusComposer as StatusModuleComposer; -use CachetHQ\Cachet\Composers\Modules\StickiedComposer as StickiedModuleComposer; -use CachetHQ\Cachet\Composers\Modules\TimelineComposer as TimelineModuleComposer; +use CachetHQ\Cachet\Composers\MetricsComposer; +use CachetHQ\Cachet\Composers\ScheduledComposer; use CachetHQ\Cachet\Composers\SettingsComposer; +use CachetHQ\Cachet\Composers\StatusComposer; +use CachetHQ\Cachet\Composers\StickiedComposer; use CachetHQ\Cachet\Composers\ThemeComposer; +use CachetHQ\Cachet\Composers\TimelineComposer; use CachetHQ\Cachet\Composers\TimezoneLocaleComposer; use Illuminate\Contracts\View\Factory; use Illuminate\Support\ServiceProvider; @@ -42,13 +41,12 @@ class ComposerServiceProvider extends ServiceProvider $factory->composer('dashboard.*', DashboardComposer::class); $factory->composer(['setup.*', 'dashboard.settings.localization'], TimezoneLocaleComposer::class); - $factory->composer('*', ModuleComposer::class); - $factory->composer('partials.modules.components', ComponentsModuleComposer::class); - $factory->composer('partials.modules.metrics', MetricsModuleComposer::class); - $factory->composer('partials.modules.stickied', StickiedModuleComposer::class); - $factory->composer('partials.modules.scheduled', ScheduledModuleComposer::class); - $factory->composer('partials.modules.status', StatusModuleComposer::class); - $factory->composer('partials.modules.timeline', TimelineModuleComposer::class); + $factory->composer('partials.modules.components', ComponentsComposer::class); + $factory->composer('partials.modules.metrics', MetricsComposer::class); + $factory->composer('partials.modules.stickied', StickiedComposer::class); + $factory->composer('partials.modules.scheduled', ScheduledComposer::class); + $factory->composer('partials.modules.status', StatusComposer::class); + $factory->composer('partials.modules.timeline', TimelineComposer::class); $factory->composer(['dashboard.settings.mail', 'setup.*'], SettingsComposer::class); } diff --git a/app/Foundation/Providers/ModuleServiceProvider.php b/app/Foundation/Providers/ModuleServiceProvider.php deleted file mode 100644 index b4181c61..00000000 --- a/app/Foundation/Providers/ModuleServiceProvider.php +++ /dev/null @@ -1,95 +0,0 @@ - [ - ['group' => 'messages', 'partial' => 'partials.modules.messages'], - ['group' => 'status', 'partial' => 'partials.modules.status'], - ['group' => 'components', 'partial' => 'partials.modules.components'], - ['group' => 'metrics', 'partial' => 'partials.modules.metrics'], - ['group' => 'stickied', 'partial' => 'partials.modules.stickied'], - ['group' => 'scheduled', 'partial' => 'partials.modules.scheduled'], - ['group' => 'timeline', 'partial' => 'partials.modules.timeline'], - ], - ]; - - /** - * The group definitions. - * - * @var array - */ - protected $groups = [ - 'index' => [ - 'messages' => 10000, - 'status' => 20000, - 'components' => 30000, - 'metrics' => 40000, - 'scheduled' => 50000, - 'stickied' => 60000, - 'timeline' => 70000, - ], - ]; - - /** - * Boot the service provider. - * - * @param \Illuminate\View\Compilers\BladeCompiler $blade - */ - public function boot(BladeCompiler $blade) - { - $blade->directive('modules', function ($group) { - return sprintf( - 'call(\'%s@%s\', [ - \'factory\' => $__env, - \'data\' => array_except(get_defined_vars(), array(\'__data\', \'__path\')), - \'modules\' => $modules, - \'group\' => %s, - ]); ?>', - ModulesRenderer::class, - 'renderModules', - empty($group) ? 'null' : $group - ); - }); - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - foreach ($this->modules as $key => $modules) { - $this->app->singleton("view.modules: {$key}", function () use ($modules) { - return $modules; - }); - } - - foreach ($this->groups as $key => $groups) { - $this->app->singleton("view.groups: {$key}", function () use ($groups) { - return $groups; - }); - } - } -} diff --git a/app/Foundation/Providers/RouteServiceProvider.php b/app/Foundation/Providers/RouteServiceProvider.php index cca41e32..9a17c2a6 100644 --- a/app/Foundation/Providers/RouteServiceProvider.php +++ b/app/Foundation/Providers/RouteServiceProvider.php @@ -13,7 +13,13 @@ namespace CachetHQ\Cachet\Foundation\Providers; use Barryvdh\Cors\HandleCors; use CachetHQ\Cachet\Http\Middleware\Acceptable; +use CachetHQ\Cachet\Http\Middleware\Authenticate; use CachetHQ\Cachet\Http\Middleware\Timezone; +use CachetHQ\Cachet\Http\Routes\ApiSystemRoutes; +use CachetHQ\Cachet\Http\Routes\AuthRoutes; +use CachetHQ\Cachet\Http\Routes\Setup\ApiRoutes as ApiSetupRoutes; +use CachetHQ\Cachet\Http\Routes\SetupRoutes; +use CachetHQ\Cachet\Http\Routes\SignupRoutes; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; @@ -41,6 +47,21 @@ class RouteServiceProvider extends ServiceProvider */ protected $namespace = 'CachetHQ\Cachet\Http\Controllers'; + /** + * These are the route files that should always be available anonymously. + * + * When applying the always_authenticate feature, these routes will be skipped. + * + * @var string[] + */ + protected $whitelistedAuthRoutes = [ + AuthRoutes::class, + SetupRoutes::class, + SignupRoutes::class, + ApiSystemRoutes::class, + ApiSetupRoutes::class, + ]; + /** * Define the route model bindings, pattern filters, etc. * @@ -89,6 +110,7 @@ class RouteServiceProvider extends ServiceProvider $router->group(['namespace' => $this->namespace, 'as' => 'core::'], function (Router $router) { $path = app_path('Http/Routes'); + $applyAlwaysAuthenticate = $this->app['config']->get('setting.always_authenticate', false); $AllFileIterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path)); $PhpFileIterator = new \RegexIterator($AllFileIterator, '/^.+\.php$/i', \RecursiveRegexIterator::GET_MATCH); @@ -100,9 +122,9 @@ class RouteServiceProvider extends ServiceProvider $routes = $this->app->make("CachetHQ\\Cachet\\Http\\Routes${class}"); if ($routes::$browser) { - $this->mapForBrowser($router, $routes); + $this->mapForBrowser($router, $routes, $applyAlwaysAuthenticate); } else { - $this->mapOtherwise($router, $routes); + $this->mapOtherwise($router, $routes, $applyAlwaysAuthenticate); } } }); @@ -113,10 +135,11 @@ class RouteServiceProvider extends ServiceProvider * * @param \Illuminate\Routing\Router $router * @param object $routes + * @param bool $applyAlwaysAuthenticate * * @return void */ - protected function mapForBrowser(Router $router, $routes) + protected function mapForBrowser(Router $router, $routes, $applyAlwaysAuthenticate) { $middleware = [ EncryptCookies::class, @@ -127,6 +150,10 @@ class RouteServiceProvider extends ServiceProvider SubstituteBindings::class, ]; + if ($applyAlwaysAuthenticate && !$this->isWhiteListedAuthRoute($routes)) { + $middleware[] = Authenticate::class; + } + $router->group(['middleware' => $middleware], function (Router $router) use ($routes) { $routes->map($router); }); @@ -137,10 +164,11 @@ class RouteServiceProvider extends ServiceProvider * * @param \Illuminate\Routing\Router $router * @param object $routes + * @param bool $applyAlwaysAuthenticate * * @return void */ - protected function mapOtherwise(Router $router, $routes) + protected function mapOtherwise(Router $router, $routes, $applyAlwaysAuthenticate) { $middleware = [ HandleCors::class, @@ -149,8 +177,31 @@ class RouteServiceProvider extends ServiceProvider Timezone::class, ]; + if ($applyAlwaysAuthenticate && !$this->isWhiteListedAuthRoute($routes)) { + $middleware[] = 'auth.api:true'; + } + $router->group(['middleware' => $middleware], function (Router $router) use ($routes) { $routes->map($router); }); } + + /** + * Validates if the route object is an instance of the whitelisted routes. + * A small workaround since we cant use multiple classes in a `instanceof` comparison. + * + * @param object $routes + * + * @return bool + */ + private function isWhiteListedAuthRoute($routes) + { + foreach ($this->whitelistedAuthRoutes as $whitelistedRoute) { + if (is_a($routes, $whitelistedRoute)) { + return true; + } + } + + return false; + } } diff --git a/app/Http/Controllers/Api/ComponentController.php b/app/Http/Controllers/Api/ComponentController.php index 2717d626..7d1b800e 100644 --- a/app/Http/Controllers/Api/ComponentController.php +++ b/app/Http/Controllers/Api/ComponentController.php @@ -14,11 +14,13 @@ namespace CachetHQ\Cachet\Http\Controllers\Api; use CachetHQ\Cachet\Bus\Commands\Component\CreateComponentCommand; use CachetHQ\Cachet\Bus\Commands\Component\RemoveComponentCommand; use CachetHQ\Cachet\Bus\Commands\Component\UpdateComponentCommand; +use CachetHQ\Cachet\Bus\Commands\Tag\ApplyTagCommand; +use CachetHQ\Cachet\Bus\Commands\Tag\CreateTagCommand; use CachetHQ\Cachet\Models\Component; -use CachetHQ\Cachet\Models\Tag; use GrahamCampbell\Binput\Facades\Binput; use Illuminate\Contracts\Auth\Guard; use Illuminate\Database\QueryException; +use Illuminate\Support\Collection; use Illuminate\Support\Facades\Request; use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; @@ -37,6 +39,10 @@ class ComponentController extends AbstractApiController $components = Component::enabled(); } + if ($tags = Binput::get('tags')) { + $components->withAnyTags($tags); + } + $components->search(Binput::except(['sort', 'order', 'per_page'])); if ($sortBy = Binput::get('sort')) { @@ -70,7 +76,7 @@ class ComponentController extends AbstractApiController public function store() { try { - $component = dispatch(new CreateComponentCommand( + $component = execute(new CreateComponentCommand( Binput::get('name'), Binput::get('description'), Binput::get('status'), @@ -85,17 +91,16 @@ class ComponentController extends AbstractApiController } if (Binput::has('tags')) { + $component->tags()->delete(); + // The component was added successfully, so now let's deal with the tags. - $tags = preg_split('/ ?, ?/', Binput::get('tags')); - - // For every tag, do we need to create it? - $componentTags = array_map(function ($taggable) use ($component) { - return Tag::firstOrCreate([ - 'name' => $taggable, - ])->id; - }, $tags); - - $component->tags()->sync($componentTags); + Collection::make(preg_split('/ ?, ?/', $tags))->map(function ($tag) { + return trim($tag); + })->map(function ($tag) { + return execute(new CreateTagCommand($tag)); + })->each(function ($tag) use ($component) { + execute(new ApplyTagCommand($component, $tag)); + }); } return $this->item($component); @@ -111,7 +116,7 @@ class ComponentController extends AbstractApiController public function update(Component $component) { try { - dispatch(new UpdateComponentCommand( + execute(new UpdateComponentCommand( $component, Binput::get('name'), Binput::get('description'), @@ -119,7 +124,7 @@ class ComponentController extends AbstractApiController Binput::get('link'), Binput::get('order'), Binput::get('group_id'), - (bool) Binput::get('enabled', true), + (bool) Binput::get('enabled'), Binput::get('meta', null), (bool) Binput::get('silent', false) )); @@ -128,14 +133,16 @@ class ComponentController extends AbstractApiController } if (Binput::has('tags')) { - $tags = preg_split('/ ?, ?/', Binput::get('tags')); + $component->tags()->delete(); - // For every tag, do we need to create it? - $componentTags = array_map(function ($taggable) use ($component) { - return Tag::firstOrCreate(['name' => $taggable])->id; - }, $tags); - - $component->tags()->sync($componentTags); + // The component was added successfully, so now let's deal with the tags. + Collection::make(preg_split('/ ?, ?/', $tags))->map(function ($tag) { + return trim($tag); + })->map(function ($tag) { + return execute(new CreateTagCommand($tag)); + })->each(function ($tag) use ($component) { + execute(new ApplyTagCommand($component, $tag)); + }); } return $this->item($component); @@ -150,7 +157,7 @@ class ComponentController extends AbstractApiController */ public function destroy(Component $component) { - dispatch(new RemoveComponentCommand($component)); + execute(new RemoveComponentCommand($component)); return $this->noContent(); } diff --git a/app/Http/Controllers/Api/ComponentGroupController.php b/app/Http/Controllers/Api/ComponentGroupController.php index 7e7c65a7..957106e1 100644 --- a/app/Http/Controllers/Api/ComponentGroupController.php +++ b/app/Http/Controllers/Api/ComponentGroupController.php @@ -92,7 +92,7 @@ class ComponentGroupController extends AbstractApiController public function store() { try { - $group = dispatch(new CreateComponentGroupCommand( + $group = execute(new CreateComponentGroupCommand( Binput::get('name'), Binput::get('order', 0), Binput::get('collapsed', 0), @@ -115,7 +115,7 @@ class ComponentGroupController extends AbstractApiController public function update(ComponentGroup $group) { try { - $group = dispatch(new UpdateComponentGroupCommand( + $group = execute(new UpdateComponentGroupCommand( $group, Binput::get('name'), Binput::get('order'), @@ -138,7 +138,7 @@ class ComponentGroupController extends AbstractApiController */ public function destroy(ComponentGroup $group) { - dispatch(new RemoveComponentGroupCommand($group)); + execute(new RemoveComponentGroupCommand($group)); return $this->noContent(); } diff --git a/app/Http/Controllers/Api/GeneralController.php b/app/Http/Controllers/Api/GeneralController.php index 9fb36d96..23ba1fa4 100644 --- a/app/Http/Controllers/Api/GeneralController.php +++ b/app/Http/Controllers/Api/GeneralController.php @@ -17,7 +17,7 @@ use CachetHQ\Cachet\Integrations\Contracts\System; /** * This is the general api controller. * - * @author James Brooks + * @author James Brooks */ class GeneralController extends AbstractApiController { diff --git a/app/Http/Controllers/Api/IncidentController.php b/app/Http/Controllers/Api/IncidentController.php index 718be542..b301202c 100644 --- a/app/Http/Controllers/Api/IncidentController.php +++ b/app/Http/Controllers/Api/IncidentController.php @@ -67,7 +67,7 @@ class IncidentController extends AbstractApiController public function store() { try { - $incident = dispatch(new CreateIncidentCommand( + $incident = execute(new CreateIncidentCommand( Binput::get('name'), Binput::get('status'), Binput::get('message', null, false, false), @@ -98,7 +98,7 @@ class IncidentController extends AbstractApiController public function update(Incident $incident) { try { - $incident = dispatch(new UpdateIncidentCommand( + $incident = execute(new UpdateIncidentCommand( $incident, Binput::get('name'), Binput::get('status'), @@ -128,7 +128,7 @@ class IncidentController extends AbstractApiController */ public function destroy(Incident $incident) { - dispatch(new RemoveIncidentCommand($incident)); + execute(new RemoveIncidentCommand($incident)); return $this->noContent(); } diff --git a/app/Http/Controllers/Api/IncidentUpdateController.php b/app/Http/Controllers/Api/IncidentUpdateController.php index 2b9ec3c4..0c239a6a 100644 --- a/app/Http/Controllers/Api/IncidentUpdateController.php +++ b/app/Http/Controllers/Api/IncidentUpdateController.php @@ -74,7 +74,7 @@ class IncidentUpdateController extends AbstractApiController public function store(Incident $incident) { try { - $update = dispatch(new CreateIncidentUpdateCommand( + $update = execute(new CreateIncidentUpdateCommand( $incident, Binput::get('status'), Binput::get('message'), @@ -100,7 +100,7 @@ class IncidentUpdateController extends AbstractApiController public function update(Incident $incident, IncidentUpdate $update) { try { - $update = dispatch(new UpdateIncidentUpdateCommand( + $update = execute(new UpdateIncidentUpdateCommand( $update, Binput::get('status'), Binput::get('message'), @@ -124,7 +124,7 @@ class IncidentUpdateController extends AbstractApiController public function destroy(Incident $incident, IncidentUpdate $update) { try { - dispatch(new RemoveIncidentUpdateCommand($update)); + execute(new RemoveIncidentUpdateCommand($update)); } catch (QueryException $e) { throw new BadRequestHttpException(); } diff --git a/app/Http/Controllers/Api/MetricController.php b/app/Http/Controllers/Api/MetricController.php index fd7dbe07..4ef2e1e4 100644 --- a/app/Http/Controllers/Api/MetricController.php +++ b/app/Http/Controllers/Api/MetricController.php @@ -62,7 +62,7 @@ class MetricController extends AbstractApiController public function store() { try { - $metric = dispatch(new CreateMetricCommand( + $metric = execute(new CreateMetricCommand( Binput::get('name'), Binput::get('suffix'), Binput::get('description'), @@ -92,7 +92,7 @@ class MetricController extends AbstractApiController public function update(Metric $metric) { try { - $metric = dispatch(new UpdateMetricCommand( + $metric = execute(new UpdateMetricCommand( $metric, Binput::get('name'), Binput::get('suffix'), @@ -122,7 +122,7 @@ class MetricController extends AbstractApiController */ public function destroy(Metric $metric) { - dispatch(new RemoveMetricCommand($metric)); + execute(new RemoveMetricCommand($metric)); return $this->noContent(); } diff --git a/app/Http/Controllers/Api/MetricPointController.php b/app/Http/Controllers/Api/MetricPointController.php index c5cd6f1f..8afb5c59 100644 --- a/app/Http/Controllers/Api/MetricPointController.php +++ b/app/Http/Controllers/Api/MetricPointController.php @@ -48,7 +48,7 @@ class MetricPointController extends AbstractApiController public function store(Metric $metric) { try { - $metricPoint = dispatch(new CreateMetricPointCommand( + $metricPoint = execute(new CreateMetricPointCommand( $metric, Binput::get('value'), Binput::get('timestamp') @@ -64,13 +64,13 @@ class MetricPointController extends AbstractApiController * Updates a metric point. * * @param \CachetHQ\Cachet\Models\Metric $metric - * @param \CachetHQ\Cachet\Models\MetircPoint $metricPoint + * @param \CachetHQ\Cachet\Models\MetricPoint $metricPoint * * @return \Illuminate\Http\JsonResponse */ public function update(Metric $metric, MetricPoint $metricPoint) { - $metricPoint = dispatch(new UpdateMetricPointCommand( + $metricPoint = execute(new UpdateMetricPointCommand( $metricPoint, $metric, Binput::get('value'), @@ -90,7 +90,7 @@ class MetricPointController extends AbstractApiController */ public function destroy(Metric $metric, MetricPoint $metricPoint) { - dispatch(new RemoveMetricPointCommand($metricPoint)); + execute(new RemoveMetricPointCommand($metricPoint)); return $this->noContent(); } diff --git a/app/Http/Controllers/Api/ScheduleController.php b/app/Http/Controllers/Api/ScheduleController.php index 6fe12039..d12eabc7 100644 --- a/app/Http/Controllers/Api/ScheduleController.php +++ b/app/Http/Controllers/Api/ScheduleController.php @@ -34,7 +34,7 @@ class ScheduleController extends AbstractApiController */ public function index() { - $schedule = Schedule::whereRaw('1 = 1'); + $schedule = Schedule::query(); if ($sortBy = Binput::get('sort')) { $direction = Binput::has('order') && Binput::get('order') == 'desc'; @@ -67,7 +67,7 @@ class ScheduleController extends AbstractApiController public function store() { try { - $schedule = dispatch(new CreateScheduleCommand( + $schedule = execute(new CreateScheduleCommand( Binput::get('name'), Binput::get('message', null, false, false), Binput::get('status'), @@ -92,7 +92,7 @@ class ScheduleController extends AbstractApiController public function update(Schedule $schedule) { try { - $schedule = dispatch(new UpdateScheduleCommand( + $schedule = execute(new UpdateScheduleCommand( $schedule, Binput::get('name'), Binput::get('message'), @@ -118,7 +118,7 @@ class ScheduleController extends AbstractApiController public function destroy(Schedule $schedule) { try { - dispatch(new DeleteScheduleCommand($schedule)); + execute(new DeleteScheduleCommand($schedule)); } catch (QueryException $e) { throw new BadRequestHttpException(); } diff --git a/app/Http/Controllers/Api/SubscriberController.php b/app/Http/Controllers/Api/SubscriberController.php index 5a8b1178..621aa06d 100644 --- a/app/Http/Controllers/Api/SubscriberController.php +++ b/app/Http/Controllers/Api/SubscriberController.php @@ -50,7 +50,7 @@ class SubscriberController extends AbstractApiController $verified = Binput::get('verify', app(Repository::class)->get('setting.skip_subscriber_verification')); try { - $subscriber = dispatch(new SubscribeSubscriberCommand(Binput::get('email'), $verified, Binput::get('components', null))); + $subscriber = execute(new SubscribeSubscriberCommand(Binput::get('email'), $verified, Binput::get('components', null))); } catch (QueryException $e) { throw new BadRequestHttpException(); } @@ -67,7 +67,7 @@ class SubscriberController extends AbstractApiController */ public function destroy(Subscriber $subscriber) { - dispatch(new UnsubscribeSubscriberCommand($subscriber)); + execute(new UnsubscribeSubscriberCommand($subscriber)); return $this->noContent(); } diff --git a/app/Http/Controllers/Api/SubscriptionController.php b/app/Http/Controllers/Api/SubscriptionController.php index a7372d08..173a5e0f 100644 --- a/app/Http/Controllers/Api/SubscriptionController.php +++ b/app/Http/Controllers/Api/SubscriptionController.php @@ -30,7 +30,7 @@ class SubscriptionController extends AbstractApiController */ public function destroy(Subscription $subscription) { - dispatch(new UnsubscribeSubscriptionCommand($subscription)); + execute(new UnsubscribeSubscriptionCommand($subscription)); return $this->noContent(); } diff --git a/app/Http/Controllers/Dashboard/ApiController.php b/app/Http/Controllers/Dashboard/ApiController.php index 9cc80c4e..7c92b2c8 100644 --- a/app/Http/Controllers/Dashboard/ApiController.php +++ b/app/Http/Controllers/Dashboard/ApiController.php @@ -36,7 +36,7 @@ class ApiController extends AbstractApiController public function postUpdateComponent(Component $component) { try { - dispatch(new UpdateComponentCommand( + execute(new UpdateComponentCommand( $component, $component->name, $component->description, @@ -68,7 +68,7 @@ class ApiController extends AbstractApiController try { $component = Component::find($componentId); - dispatch(new UpdateComponentCommand( + execute(new UpdateComponentCommand( $component, $component->name, $component->description, @@ -100,7 +100,7 @@ class ApiController extends AbstractApiController foreach ($groupData as $order => $groupId) { $group = ComponentGroup::find($groupId); - dispatch(new UpdateComponentGroupCommand( + execute(new UpdateComponentGroupCommand( $group, $group->name, $order + 1, diff --git a/app/Http/Controllers/Dashboard/ComponentController.php b/app/Http/Controllers/Dashboard/ComponentController.php index 74948d66..2745cf4b 100644 --- a/app/Http/Controllers/Dashboard/ComponentController.php +++ b/app/Http/Controllers/Dashboard/ComponentController.php @@ -15,16 +15,20 @@ use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Bus\Commands\Component\CreateComponentCommand; use CachetHQ\Cachet\Bus\Commands\Component\RemoveComponentCommand; use CachetHQ\Cachet\Bus\Commands\Component\UpdateComponentCommand; -use CachetHQ\Cachet\Bus\Commands\ComponentGroup\CreateComponentGroupCommand; -use CachetHQ\Cachet\Bus\Commands\ComponentGroup\RemoveComponentGroupCommand; -use CachetHQ\Cachet\Bus\Commands\ComponentGroup\UpdateComponentGroupCommand; +use CachetHQ\Cachet\Bus\Commands\Tag\ApplyTagCommand; +use CachetHQ\Cachet\Bus\Commands\Tag\CreateTagCommand; use CachetHQ\Cachet\Models\Component; use CachetHQ\Cachet\Models\ComponentGroup; -use CachetHQ\Cachet\Models\Tag; use GrahamCampbell\Binput\Facades\Binput; use Illuminate\Routing\Controller; +use Illuminate\Support\Collection; use Illuminate\Support\Facades\View; +/** + * This is the component controller class. + * + * @author James Brooks + */ class ComponentController extends Controller { /** @@ -57,8 +61,8 @@ class ComponentController extends Controller ]; View::share([ - 'sub_menu' => $this->subMenu, - 'sub_title' => trans_choice('dashboard.components.components', 2), + 'subMenu' => $this->subMenu, + 'subTitle' => trans_choice('dashboard.components.components', 2), ]); } @@ -79,21 +83,6 @@ class ComponentController extends Controller ->withSubMenu($this->subMenu); } - /** - * Shows the component groups view. - * - * @return \Illuminate\View\View - */ - public function showComponentGroups() - { - $this->subMenu['groups']['active'] = true; - - return View::make('dashboard.components.groups.index') - ->withPageTitle(trans_choice('dashboard.components.groups.groups', 2).' - '.trans('dashboard.dashboard')) - ->withGroups(ComponentGroup::orderBy('order')->get()) - ->withSubMenu($this->subMenu); - } - /** * Shows the edit component view. * @@ -126,7 +115,7 @@ class ComponentController extends Controller $tags = array_pull($componentData, 'tags'); try { - $component = dispatch(new UpdateComponentCommand( + $component = execute(new UpdateComponentCommand( $component, $componentData['name'], $componentData['description'], @@ -145,15 +134,16 @@ class ComponentController extends Controller ->withErrors($e->getMessageBag()); } + $component->tags()->delete(); + // The component was added successfully, so now let's deal with the tags. - $tags = preg_split('/ ?, ?/', $tags); - - // For every tag, do we need to create it? - $componentTags = array_map(function ($taggable) { - return Tag::firstOrCreate(['name' => $taggable])->id; - }, $tags); - - $component->tags()->sync($componentTags); + Collection::make(preg_split('/ ?, ?/', $tags))->map(function ($tag) { + return trim($tag); + })->map(function ($tag) { + return execute(new CreateTagCommand($tag)); + })->each(function ($tag) use ($component) { + execute(new ApplyTagCommand($component, $tag)); + }); return cachet_redirect('dashboard.components.edit', [$component->id]) ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.edit.success'))); @@ -182,7 +172,7 @@ class ComponentController extends Controller $tags = array_pull($componentData, 'tags'); try { - $component = dispatch(new CreateComponentCommand( + $component = execute(new CreateComponentCommand( $componentData['name'], $componentData['description'], $componentData['status'], @@ -200,14 +190,13 @@ class ComponentController extends Controller } // The component was added successfully, so now let's deal with the tags. - $tags = preg_split('/ ?, ?/', $tags); - - // For every tag, do we need to create it? - $componentTags = array_map(function ($taggable) { - return Tag::firstOrCreate(['name' => $taggable])->id; - }, $tags); - - $component->tags()->sync($componentTags); + Collection::make(preg_split('/ ?, ?/', $tags))->map(function ($tag) { + return trim($tag); + })->map(function ($tag) { + return execute(new CreateTagCommand($tag)); + })->each(function ($tag) use ($component) { + execute(new ApplyTagCommand($component, $tag)); + }); return cachet_redirect('dashboard.components') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.add.success'))); @@ -222,102 +211,9 @@ class ComponentController extends Controller */ public function deleteComponentAction(Component $component) { - dispatch(new RemoveComponentCommand($component)); + execute(new RemoveComponentCommand($component)); return cachet_redirect('dashboard.components') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.delete.success'))); } - - /** - * Deletes a given component group. - * - * @param \CachetHQ\Cachet\Models\ComponentGroup $group - * - * @return \Illuminate\Http\RedirectResponse - */ - public function deleteComponentGroupAction(ComponentGroup $group) - { - dispatch(new RemoveComponentGroupCommand($group)); - - return cachet_redirect('dashboard.components.groups') - ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.delete.success'))); - } - - /** - * Shows the add component group view. - * - * @return \Illuminate\View\View - */ - public function showAddComponentGroup() - { - return View::make('dashboard.components.groups.add') - ->withPageTitle(trans('dashboard.components.groups.add.title').' - '.trans('dashboard.dashboard')); - } - - /** - * Shows the edit component group view. - * - * @param \CachetHQ\Cachet\Models\ComponentGroup $group - * - * @return \Illuminate\View\View - */ - public function showEditComponentGroup(ComponentGroup $group) - { - return View::make('dashboard.components.groups.edit') - ->withPageTitle(trans('dashboard.components.groups.edit.title').' - '.trans('dashboard.dashboard')) - ->withGroup($group); - } - - /** - * Creates a new component. - * - * @return \Illuminate\Http\RedirectResponse - */ - public function postAddComponentGroup() - { - try { - $group = dispatch(new CreateComponentGroupCommand( - Binput::get('name'), - Binput::get('order', 0), - Binput::get('collapsed'), - Binput::get('visible') - )); - } catch (ValidationException $e) { - return cachet_redirect('dashboard.components.groups.create') - ->withInput(Binput::all()) - ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.components.groups.add.failure'))) - ->withErrors($e->getMessageBag()); - } - - return cachet_redirect('dashboard.components.groups') - ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.groups.add.success'))); - } - - /** - * Updates a component group. - * - * @param \CachetHQ\Cachet\Models\ComponentGroup $group - * - * @return \Illuminate\Http\RedirectResponse - */ - public function updateComponentGroupAction(ComponentGroup $group) - { - try { - $group = dispatch(new UpdateComponentGroupCommand( - $group, - Binput::get('name'), - $group->order, - Binput::get('collapsed'), - Binput::get('visible') - )); - } catch (ValidationException $e) { - return cachet_redirect('dashboard.components.groups.edit', [$group->id]) - ->withInput(Binput::all()) - ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.components.groups.edit.failure'))) - ->withErrors($e->getMessageBag()); - } - - return cachet_redirect('dashboard.components.groups.edit', [$group->id]) - ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.groups.edit.success'))); - } } diff --git a/app/Http/Controllers/Dashboard/ComponentGroupController.php b/app/Http/Controllers/Dashboard/ComponentGroupController.php new file mode 100644 index 00000000..7d016567 --- /dev/null +++ b/app/Http/Controllers/Dashboard/ComponentGroupController.php @@ -0,0 +1,173 @@ + + */ +class ComponentGroupController extends Controller +{ + /** + * Array of sub-menu items. + * + * @var array + */ + protected $subMenu = []; + + /** + * Creates a new component controller instance. + * + * @return void + */ + public function __construct() + { + $this->subMenu = [ + 'components' => [ + 'title' => trans('dashboard.components.components'), + 'url' => cachet_route('dashboard.components'), + 'icon' => 'ion-ios-browsers', + 'active' => false, + ], + 'groups' => [ + 'title' => trans_choice('dashboard.components.groups.groups', 2), + 'url' => cachet_route('dashboard.components.groups'), + 'icon' => 'ion-folder', + 'active' => false, + ], + ]; + + View::share([ + 'sub_menu' => $this->subMenu, + 'subTitle' => trans_choice('dashboard.components.components', 2), + ]); + } + + /** + * Shows the component groups view. + * + * @return \Illuminate\View\View + */ + public function showComponentGroups() + { + $this->subMenu['groups']['active'] = true; + + return View::make('dashboard.components.groups.index') + ->withPageTitle(trans_choice('dashboard.components.groups.groups', 2).' - '.trans('dashboard.dashboard')) + ->withGroups(ComponentGroup::orderBy('order')->get()) + ->withSubMenu($this->subMenu); + } + + /** + * Deletes a given component group. + * + * @param \CachetHQ\Cachet\Models\ComponentGroup $group + * + * @return \Illuminate\Http\RedirectResponse + */ + public function deleteComponentGroupAction(ComponentGroup $group) + { + execute(new RemoveComponentGroupCommand($group)); + + return cachet_redirect('dashboard.components.groups') + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.delete.success'))); + } + + /** + * Shows the add component group view. + * + * @return \Illuminate\View\View + */ + public function showAddComponentGroup() + { + return View::make('dashboard.components.groups.add') + ->withPageTitle(trans('dashboard.components.groups.add.title').' - '.trans('dashboard.dashboard')); + } + + /** + * Shows the edit component group view. + * + * @param \CachetHQ\Cachet\Models\ComponentGroup $group + * + * @return \Illuminate\View\View + */ + public function showEditComponentGroup(ComponentGroup $group) + { + return View::make('dashboard.components.groups.edit') + ->withPageTitle(trans('dashboard.components.groups.edit.title').' - '.trans('dashboard.dashboard')) + ->withGroup($group); + } + + /** + * Creates a new component. + * + * @return \Illuminate\Http\RedirectResponse + */ + public function postAddComponentGroup() + { + try { + $group = execute(new CreateComponentGroupCommand( + Binput::get('name'), + Binput::get('order', 0), + Binput::get('collapsed'), + Binput::get('visible') + )); + } catch (ValidationException $e) { + return cachet_redirect('dashboard.components.groups.create') + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.components.groups.add.failure'))) + ->withErrors($e->getMessageBag()); + } + + return cachet_redirect('dashboard.components.groups') + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.groups.add.success'))); + } + + /** + * Updates a component group. + * + * @param \CachetHQ\Cachet\Models\ComponentGroup $group + * + * @return \Illuminate\Http\RedirectResponse + */ + public function updateComponentGroupAction(ComponentGroup $group) + { + try { + $group = execute(new UpdateComponentGroupCommand( + $group, + Binput::get('name'), + $group->order, + Binput::get('collapsed'), + Binput::get('visible') + )); + } catch (ValidationException $e) { + return cachet_redirect('dashboard.components.groups.edit', [$group->id]) + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.components.groups.edit.failure'))) + ->withErrors($e->getMessageBag()); + } + + return cachet_redirect('dashboard.components.groups.edit', [$group->id]) + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.groups.edit.success'))); + } +} diff --git a/app/Http/Controllers/Dashboard/DashboardController.php b/app/Http/Controllers/Dashboard/DashboardController.php index 835ec22f..0c1c55e7 100644 --- a/app/Http/Controllers/Dashboard/DashboardController.php +++ b/app/Http/Controllers/Dashboard/DashboardController.php @@ -101,7 +101,7 @@ class DashboardController extends Controller $welcomeUser = !Auth::user()->welcomed; if ($welcomeUser) { - dispatch(new WelcomeUserCommand(Auth::user())); + execute(new WelcomeUserCommand(Auth::user())); } $entries = null; diff --git a/app/Http/Controllers/Dashboard/IncidentController.php b/app/Http/Controllers/Dashboard/IncidentController.php index 4d75ff7f..497d3c7c 100644 --- a/app/Http/Controllers/Dashboard/IncidentController.php +++ b/app/Http/Controllers/Dashboard/IncidentController.php @@ -15,14 +15,11 @@ use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Bus\Commands\Incident\CreateIncidentCommand; use CachetHQ\Cachet\Bus\Commands\Incident\RemoveIncidentCommand; use CachetHQ\Cachet\Bus\Commands\Incident\UpdateIncidentCommand; -use CachetHQ\Cachet\Bus\Commands\IncidentUpdate\CreateIncidentUpdateCommand; -use CachetHQ\Cachet\Bus\Commands\IncidentUpdate\UpdateIncidentUpdateCommand; use CachetHQ\Cachet\Integrations\Contracts\System; use CachetHQ\Cachet\Models\Component; use CachetHQ\Cachet\Models\ComponentGroup; use CachetHQ\Cachet\Models\Incident; use CachetHQ\Cachet\Models\IncidentTemplate; -use CachetHQ\Cachet\Models\IncidentUpdate; use GrahamCampbell\Binput\Facades\Binput; use Illuminate\Contracts\Auth\Guard; use Illuminate\Routing\Controller; @@ -68,7 +65,7 @@ class IncidentController extends Controller $this->auth = $auth; $this->system = $system; - View::share('sub_title', trans('dashboard.incidents.title')); + View::share('subTitle', trans('dashboard.incidents.title')); } /** @@ -120,7 +117,7 @@ class IncidentController extends Controller public function createIncidentAction() { try { - $incident = dispatch(new CreateIncidentCommand( + $incident = execute(new CreateIncidentCommand( Binput::get('name'), Binput::get('status'), Binput::get('message', null, false, false), @@ -217,7 +214,7 @@ class IncidentController extends Controller */ public function deleteIncidentAction(Incident $incident) { - dispatch(new RemoveIncidentCommand($incident)); + execute(new RemoveIncidentCommand($incident)); return cachet_redirect('dashboard.incidents') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.delete.success'))); @@ -250,7 +247,7 @@ class IncidentController extends Controller public function editIncidentAction(Incident $incident) { try { - $incident = dispatch(new UpdateIncidentCommand( + $incident = execute(new UpdateIncidentCommand( $incident, Binput::get('name'), Binput::get('status'), @@ -300,107 +297,4 @@ class IncidentController extends Controller return cachet_redirect('dashboard.templates.edit', ['id' => $template->id]) ->withUpdatedTemplate($template); } - - /** - * Shows the incident update form. - * - * @param \CachetHQ\Cachet\Models\Incident $incident - * - * @return \Illuminate\View\View - */ - public function showIncidentUpdates(Incident $incident) - { - return View::make('dashboard.incidents.updates.index')->withIncident($incident); - } - - /** - * Shows the incident update form. - * - * @param \CachetHQ\Cachet\Models\Incident $incident - * - * @return \Illuminate\View\View - */ - public function showCreateIncidentUpdateAction(Incident $incident) - { - return View::make('dashboard.incidents.updates.add') - ->withIncident($incident) - ->withNotificationsEnabled($this->system->canNotifySubscribers()); - } - - /** - * Creates a new incident update. - * - * @param \CachetHQ\Cachet\Models\Incident $incident - * - * @return \Illuminate\Http\RedirectResponse - */ - public function createIncidentUpdateAction(Incident $incident) - { - try { - $incidentUpdate = dispatch(new CreateIncidentUpdateCommand( - $incident, - Binput::get('status'), - Binput::get('message'), - Binput::get('component_id'), - Binput::get('component_status'), - $this->auth->user() - )); - } catch (ValidationException $e) { - return cachet_redirect('dashboard.incidents.updates.create', ['id' => $incident->id]) - ->withInput(Binput::all()) - ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.incidents.updates.add.failure'))) - ->withErrors($e->getMessageBag()); - } - - if ($incident->component) { - $incident->component->update(['status' => Binput::get('component_status')]); - } - - return cachet_redirect('dashboard.incidents') - ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.updates.success'))); - } - - /** - * Shows the edit incident view. - * - * @param \CachetHQ\Cachet\Models\Incident $incident - * @param \CachetHQ\Cachet\Models\IncidentUpdate $incidentUpdate - * - * @return \Illuminate\View\View - */ - public function showEditIncidentUpdateAction(Incident $incident, IncidentUpdate $incidentUpdate) - { - return View::make('dashboard.incidents.updates.edit') - ->withIncident($incident) - ->withUpdate($incidentUpdate) - ->withNotificationsEnabled($this->system->canNotifySubscribers()); - } - - /** - * Edit an incident update. - * - * @param \CachetHQ\Cachet\Models\Incident $incident - * @param \CachetHQ\Cachet\Models\IncidentUpdate $incidentUpdate - * - * @return \Illuminate\Http\RedirectResponse - */ - public function editIncidentUpdateAction(Incident $incident, IncidentUpdate $incidentUpdate) - { - try { - $incidentUpdate = dispatch(new UpdateIncidentUpdateCommand( - $incidentUpdate, - Binput::get('status'), - Binput::get('message'), - $this->auth->user() - )); - } catch (ValidationException $e) { - return cachet_redirect('dashboard.incidents.updates.edit', ['incident' => $incident->id, 'incident_update' => $incidentUpdate->id]) - ->withInput(Binput::all()) - ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.incidents.updates.edit.failure'))) - ->withErrors($e->getMessageBag()); - } - - return cachet_redirect('dashboard.incidents.updates', ['incident' => $incident->id]) - ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.updates.edit.success'))); - } } diff --git a/app/Http/Controllers/Dashboard/IncidentTemplateController.php b/app/Http/Controllers/Dashboard/IncidentTemplateController.php new file mode 100644 index 00000000..853b5b2b --- /dev/null +++ b/app/Http/Controllers/Dashboard/IncidentTemplateController.php @@ -0,0 +1,161 @@ + + */ +class IncidentTemplateController extends Controller +{ + /** + * Stores the sub-sidebar tree list. + * + * @var array + */ + protected $subMenu = []; + + /** + * The guard instance. + * + * @var \Illuminate\Contracts\Auth\Guard + */ + protected $auth; + + /** + * The system instance. + * + * @var \CachetHQ\Cachet\Integrations\Contracts\System + */ + protected $system; + + /** + * Creates a new incident controller instance. + * + * @param \Illuminate\Contracts\Auth\Guard $auth + * + * @return void + */ + public function __construct(Guard $auth, System $system) + { + $this->auth = $auth; + $this->system = $system; + + View::share('sub_title', trans('dashboard.incidents.title')); + } + + /** + * Shows the incident templates. + * + * @return \Illuminate\View\View + */ + public function showTemplates() + { + return View::make('dashboard.templates.index') + ->withPageTitle(trans('dashboard.incidents.templates.title').' - '.trans('dashboard.dashboard')) + ->withIncidentTemplates(IncidentTemplate::all()); + } + + /** + * Shows the add incident template view. + * + * @return \Illuminate\View\View + */ + public function showAddIncidentTemplate() + { + return View::make('dashboard.templates.add') + ->withPageTitle(trans('dashboard.incidents.templates.add.title').' - '.trans('dashboard.dashboard')); + } + + /** + * Shows the edit incident template view. + * + * @param \CachetHQ\Cachet\Models\IncidentTemplate $template + * + * @return \Illuminate\View\View + */ + public function showEditTemplateAction(IncidentTemplate $template) + { + return View::make('dashboard.templates.edit') + ->withPageTitle(trans('dashboard.incidents.templates.edit.title').' - '.trans('dashboard.dashboard')) + ->withTemplate($template); + } + + /** + * Deletes an incident template. + * + * @param \CachetHQ\Cachet\Models\IncidentTemplate $template + * + * @return \Illuminate\Http\RedirectResponse + */ + public function deleteTemplateAction(IncidentTemplate $template) + { + $template->delete(); + + return cachet_redirect('dashboard.templates') + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.templates.delete.success'))); + } + + /** + * Creates a new incident template. + * + * @return \Illuminate\Http\RedirectResponse + */ + public function createIncidentTemplateAction() + { + try { + IncidentTemplate::create([ + 'name' => Binput::get('name'), + 'template' => Binput::get('template', null, false, false), + ]); + } catch (ValidationException $e) { + return cachet_redirect('dashboard.templates.create') + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.incidents.templates.add.failure'))) + ->withErrors($e->getMessageBag()); + } + + return cachet_redirect('dashboard.templates') + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.templates.add.success'))); + } + + /** + * Edit an incident template. + * + * @param \CachetHQ\Cachet\Models\IncidentTemplate $template + * + * @return \Illuminate\Http\RedirectResponse + */ + public function editTemplateAction(IncidentTemplate $template) + { + try { + $template->update(Binput::get('template')); + } catch (ValidationException $e) { + return cachet_redirect('dashboard.templates.edit', ['id' => $template->id]) + ->withUpdatedTemplate($template) + ->withTemplateErrors($e->getMessageBag()->getErrors()); + } + + return cachet_redirect('dashboard.templates.edit', ['id' => $template->id]) + ->withUpdatedTemplate($template); + } +} diff --git a/app/Http/Controllers/Dashboard/IncidentUpdateController.php b/app/Http/Controllers/Dashboard/IncidentUpdateController.php new file mode 100644 index 00000000..69a084eb --- /dev/null +++ b/app/Http/Controllers/Dashboard/IncidentUpdateController.php @@ -0,0 +1,170 @@ + + */ +class IncidentUpdateController extends Controller +{ + /** + * Stores the sub-sidebar tree list. + * + * @var array + */ + protected $subMenu = []; + + /** + * The guard instance. + * + * @var \Illuminate\Contracts\Auth\Guard + */ + protected $auth; + + /** + * The system instance. + * + * @var \CachetHQ\Cachet\Integrations\Contracts\System + */ + protected $system; + + /** + * Creates a new incident controller instance. + * + * @param \Illuminate\Contracts\Auth\Guard $auth + * + * @return void + */ + public function __construct(Guard $auth, System $system) + { + $this->auth = $auth; + $this->system = $system; + + View::share('sub_title', trans('dashboard.incidents.title')); + } + + /** + * Shows the incident update form. + * + * @param \CachetHQ\Cachet\Models\Incident $incident + * + * @return \Illuminate\View\View + */ + public function showIncidentUpdates(Incident $incident) + { + return View::make('dashboard.incidents.updates.index')->withIncident($incident); + } + + /** + * Shows the incident update form. + * + * @param \CachetHQ\Cachet\Models\Incident $incident + * + * @return \Illuminate\View\View + */ + public function showCreateIncidentUpdateAction(Incident $incident) + { + return View::make('dashboard.incidents.updates.add') + ->withIncident($incident) + ->withNotificationsEnabled($this->system->canNotifySubscribers()); + } + + /** + * Creates a new incident update. + * + * @param \CachetHQ\Cachet\Models\Incident $incident + * + * @return \Illuminate\Http\RedirectResponse + */ + public function createIncidentUpdateAction(Incident $incident) + { + try { + $incidentUpdate = execute(new CreateIncidentUpdateCommand( + $incident, + Binput::get('status'), + Binput::get('message'), + Binput::get('component_id'), + Binput::get('component_status'), + $this->auth->user() + )); + } catch (ValidationException $e) { + return cachet_redirect('dashboard.incidents.updates.create', ['id' => $incident->id]) + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.incidents.updates.add.failure'))) + ->withErrors($e->getMessageBag()); + } + + if ($incident->component) { + $incident->component->update(['status' => Binput::get('component_status')]); + } + + return cachet_redirect('dashboard.incidents') + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.updates.success'))); + } + + /** + * Shows the edit incident view. + * + * @param \CachetHQ\Cachet\Models\Incident $incident + * @param \CachetHQ\Cachet\Models\IncidentUpdate $incidentUpdate + * + * @return \Illuminate\View\View + */ + public function showEditIncidentUpdateAction(Incident $incident, IncidentUpdate $incidentUpdate) + { + return View::make('dashboard.incidents.updates.edit') + ->withIncident($incident) + ->withUpdate($incidentUpdate) + ->withNotificationsEnabled($this->system->canNotifySubscribers()); + } + + /** + * Edit an incident update. + * + * @param \CachetHQ\Cachet\Models\Incident $incident + * @param \CachetHQ\Cachet\Models\IncidentUpdate $incidentUpdate + * + * @return \Illuminate\Http\RedirectResponse + */ + public function editIncidentUpdateAction(Incident $incident, IncidentUpdate $incidentUpdate) + { + try { + $incidentUpdate = execute(new UpdateIncidentUpdateCommand( + $incidentUpdate, + Binput::get('status'), + Binput::get('message'), + $this->auth->user() + )); + } catch (ValidationException $e) { + return cachet_redirect('dashboard.incidents.updates.edit', ['incident' => $incident->id, 'incident_update' => $incidentUpdate->id]) + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.incidents.updates.edit.failure'))) + ->withErrors($e->getMessageBag()); + } + + return cachet_redirect('dashboard.incidents.updates', ['incident' => $incident->id]) + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.updates.edit.success'))); + } +} diff --git a/app/Http/Controllers/Dashboard/MetricController.php b/app/Http/Controllers/Dashboard/MetricController.php index 94f8379d..56a4f6e9 100644 --- a/app/Http/Controllers/Dashboard/MetricController.php +++ b/app/Http/Controllers/Dashboard/MetricController.php @@ -71,7 +71,7 @@ class MetricController extends Controller $metricData = Binput::get('metric'); try { - dispatch(new CreateMetricCommand( + execute(new CreateMetricCommand( $metricData['name'], $metricData['suffix'], $metricData['description'], @@ -115,7 +115,7 @@ class MetricController extends Controller */ public function deleteMetricAction(Metric $metric) { - dispatch(new RemoveMetricCommand($metric)); + execute(new RemoveMetricCommand($metric)); return cachet_redirect('dashboard.metrics') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.metrics.delete.success'))); @@ -146,7 +146,7 @@ class MetricController extends Controller public function editMetricAction(Metric $metric) { try { - dispatch(new UpdateMetricCommand( + execute(new UpdateMetricCommand( $metric, Binput::get('name', null, false), Binput::get('suffix', null, false), diff --git a/app/Http/Controllers/Dashboard/ScheduleController.php b/app/Http/Controllers/Dashboard/ScheduleController.php index 7bb70953..ceb369bc 100644 --- a/app/Http/Controllers/Dashboard/ScheduleController.php +++ b/app/Http/Controllers/Dashboard/ScheduleController.php @@ -42,7 +42,7 @@ class ScheduleController extends Controller */ public function __construct() { - View::share('sub_title', trans('dashboard.schedule.title')); + View::share('subTitle', trans('dashboard.schedule.title')); } /** @@ -81,7 +81,7 @@ class ScheduleController extends Controller public function addScheduleAction() { try { - dispatch(new CreateScheduleCommand( + execute(new CreateScheduleCommand( Binput::get('name'), Binput::get('message', null, false, false), Binput::get('status', Schedule::UPCOMING), @@ -127,7 +127,7 @@ class ScheduleController extends Controller public function editScheduleAction(Schedule $schedule) { try { - $schedule = dispatch(new UpdateScheduleCommand( + $schedule = execute(new UpdateScheduleCommand( $schedule, Binput::get('name', null), Binput::get('message', null), @@ -156,7 +156,7 @@ class ScheduleController extends Controller */ public function deleteScheduleAction(Schedule $schedule) { - dispatch(new DeleteScheduleCommand($schedule)); + execute(new DeleteScheduleCommand($schedule)); return cachet_redirect('dashboard.schedule') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.schedule.delete.success'))); diff --git a/app/Http/Controllers/Dashboard/SettingsController.php b/app/Http/Controllers/Dashboard/SettingsController.php index 44201e57..f128e227 100644 --- a/app/Http/Controllers/Dashboard/SettingsController.php +++ b/app/Http/Controllers/Dashboard/SettingsController.php @@ -18,11 +18,12 @@ use CachetHQ\Cachet\Notifications\System\SystemTestNotification; use CachetHQ\Cachet\Settings\Repository; use Exception; use GrahamCampbell\Binput\Facades\Binput; -use Illuminate\Log\Writer; use Illuminate\Routing\Controller; +use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Lang; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\View; @@ -115,8 +116,8 @@ class SettingsController extends Controller ]; View::share([ - 'sub_title' => trans('dashboard.settings.settings'), - 'sub_menu' => $this->subMenu, + 'subTitle' => trans('dashboard.settings.settings'), + 'subMenu' => $this->subMenu, ]); } @@ -269,7 +270,7 @@ class SettingsController extends Controller { $this->subMenu['log']['active'] = true; - $log = app(Writer::class)->getMonolog(); + $log = Log::getLogger(); $logContents = ''; @@ -318,7 +319,7 @@ class SettingsController extends Controller { $config = Binput::get('config'); - dispatch(new UpdateConfigCommand($config)); + execute(new UpdateConfigCommand($config)); return cachet_redirect('dashboard.settings.mail') ->withInput(Binput::all()) @@ -356,6 +357,14 @@ class SettingsController extends Controller } } + if (isset($parameters['stylesheet'])) { + if ($stylesheet = Binput::get('stylesheet', null, false, false)) { + $setting->set('stylesheet', $stylesheet); + } else { + $setting->delete('stylesheet'); + } + } + if (Binput::hasFile('app_banner')) { $this->handleUpdateBanner($setting); } @@ -366,6 +375,7 @@ class SettingsController extends Controller 'remove_banner', 'header', 'footer', + 'stylesheet', ]; try { @@ -384,6 +394,10 @@ class SettingsController extends Controller Lang::setLocale(Binput::get('app_locale')); } + if (Binput::has('always_authenticate')) { + Artisan::call('route:clear'); + } + return Redirect::back()->withSuccess(trans('dashboard.settings.edit.success')); } @@ -397,6 +411,7 @@ class SettingsController extends Controller protected function handleUpdateBanner(Repository $setting) { $file = Binput::file('app_banner'); + $redirectUrl = $this->subMenu['theme']['url']; // Image Validation. // Image size in bytes. diff --git a/app/Http/Controllers/Dashboard/SubscriberController.php b/app/Http/Controllers/Dashboard/SubscriberController.php index e9749996..48305540 100644 --- a/app/Http/Controllers/Dashboard/SubscriberController.php +++ b/app/Http/Controllers/Dashboard/SubscriberController.php @@ -58,7 +58,7 @@ class SubscriberController extends Controller $subscribers = preg_split("/\r\n|\n|\r/", Binput::get('email')); foreach ($subscribers as $subscriber) { - dispatch(new SubscribeSubscriberCommand($subscriber, $verified)); + execute(new SubscribeSubscriberCommand($subscriber, $verified)); } } catch (ValidationException $e) { return cachet_redirect('dashboard.subscribers.create') @@ -82,7 +82,7 @@ class SubscriberController extends Controller */ public function deleteSubscriberAction(Subscriber $subscriber) { - dispatch(new UnsubscribeSubscriberCommand($subscriber)); + execute(new UnsubscribeSubscriberCommand($subscriber)); return cachet_redirect('dashboard.subscribers'); } diff --git a/app/Http/Controllers/Dashboard/TeamController.php b/app/Http/Controllers/Dashboard/TeamController.php index 6e0d112b..b7621619 100644 --- a/app/Http/Controllers/Dashboard/TeamController.php +++ b/app/Http/Controllers/Dashboard/TeamController.php @@ -80,7 +80,7 @@ class TeamController extends Controller public function postAddUser() { try { - dispatch(new CreateUserCommand( + execute(new CreateUserCommand( Binput::get('username'), Binput::get('password'), Binput::get('email'), @@ -129,7 +129,7 @@ class TeamController extends Controller public function postInviteUser() { try { - dispatch(new InviteUserCommand( + execute(new InviteUserCommand( array_unique(array_filter((array) Binput::get('emails'))) )); } catch (ValidationException $e) { @@ -152,7 +152,7 @@ class TeamController extends Controller */ public function deleteUser(User $user) { - dispatch(new RemoveUserCommand($user)); + execute(new RemoveUserCommand($user)); return cachet_redirect('dashboard.team') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.team.delete.success'))); diff --git a/app/Http/Controllers/FeedController.php b/app/Http/Controllers/FeedController.php index 1cf96e2b..efb794d0 100644 --- a/app/Http/Controllers/FeedController.php +++ b/app/Http/Controllers/FeedController.php @@ -17,6 +17,7 @@ use GrahamCampbell\Markdown\Facades\Markdown; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Config; use Illuminate\Support\Str; +use McCool\LaravelAutoPresenter\Facades\AutoPresenter; /** * This is the feed controller. @@ -106,12 +107,17 @@ class FeedController extends Controller */ private function feedAddItem(Incident $incident, $isRss) { + $incident = AutoPresenter::decorate($incident); + $this->feed->add( $incident->name, Config::get('setting.app_name'), Str::canonicalize(cachet_route('incident', [$incident->id])), - $isRss ? $incident->occurred_at->toRssString() : $incident->occurred_at->toAtomString(), - $isRss ? $incident->message : Markdown::convertToHtml($incident->message) + $isRss ? $incident->getWrappedObject()->occurred_at->toRssString() : $incident->getWrappedObject()->occurred_at->toAtomString(), + $isRss ? $incident->message : Markdown::convertToHtml($incident->message), + null, + [], + $isRss ? $incident->human_status : null ); } } diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index 5c603cbf..0edf88fe 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -258,7 +258,7 @@ class SetupController extends Controller $envData = array_pull($postData, 'env'); // Write the env to the .env file. - dispatch(new UpdateConfigCommand($envData)); + execute(new UpdateConfigCommand($envData)); if (Request::ajax()) { return Response::json(['status' => 1]); diff --git a/app/Http/Controllers/SignupController.php b/app/Http/Controllers/SignupController.php index a506c59f..6c7db152 100644 --- a/app/Http/Controllers/SignupController.php +++ b/app/Http/Controllers/SignupController.php @@ -69,7 +69,7 @@ class SignupController extends Controller } try { - dispatch(new SignupUserCommand( + execute(new SignupUserCommand( Binput::get('username'), Binput::get('password'), Binput::get('email'), @@ -82,7 +82,7 @@ class SignupController extends Controller ->withErrors($e->getMessageBag()); } - dispatch(new ClaimInviteCommand($invite)); + execute(new ClaimInviteCommand($invite)); return cachet_redirect('status-page') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('cachet.signup.success'))); diff --git a/app/Http/Controllers/StatusPageController.php b/app/Http/Controllers/StatusPageController.php index fe25beb3..409e6372 100644 --- a/app/Http/Controllers/StatusPageController.php +++ b/app/Http/Controllers/StatusPageController.php @@ -19,7 +19,6 @@ use CachetHQ\Cachet\Models\Metric; use CachetHQ\Cachet\Models\Schedule; use CachetHQ\Cachet\Repositories\Metric\MetricRepository; use CachetHQ\Cachet\Services\Dates\DateFactory; -use Exception; use GrahamCampbell\Binput\Facades\Binput; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Auth; @@ -45,32 +44,34 @@ class StatusPageController extends AbstractApiController */ public function showIndex() { - $only_disrupted_days = Config::get('setting.only_disrupted_days'); + $onlyDisruptedDays = Config::get('setting.only_disrupted_days'); $appIncidentDays = (int) Config::get('setting.app_incident_days', 1); - // Used for the database query - $startDate = Date::now(); - $endDate = Date::now(); + $startDate = Date::createFromFormat('Y-m-d', Binput::get('start_date', Date::now()->toDateString())); + $endDate = $startDate->copy()->subDays($appIncidentDays); $canPageForward = false; $canPageBackward = false; $previousDate = null; $nextDate = null; - if ($only_disrupted_days) { + if ($onlyDisruptedDays) { // In this case, start_date GET parameter means the page - $page = Binput::get('start_date', 0); - - if (!is_numeric($page)) { - $page = 0; - } - - $page = (int) $page; + $page = (int) Binput::get('start_date', 0); $allIncidentDays = Incident::where('visible', '>=', (int) !Auth::check()) - ->select('occurred_at')->distinct()->orderBy('occurred_at', 'desc')->get()->map(function (Incident $incident) { - return app(DateFactory::class)->make($incident->occurred_at)->toDateString(); - })->unique()->values(); + ->select('occurred_at') + ->whereBetween('occurred_at', [ + $endDate->format('Y-m-d').' 00:00:00', + $startDate->format('Y-m-d').' 23:59:59', + ]) + ->distinct() + ->orderBy('occurred_at', 'desc') + ->get() + ->map(function (Incident $incident) { + return app(DateFactory::class)->make($incident->occurred_at)->toDateString(); + })->unique() + ->values(); $numIncidentDays = count($allIncidentDays); $numPages = round($numIncidentDays / $appIncidentDays); @@ -78,8 +79,8 @@ class StatusPageController extends AbstractApiController $selectedDays = $allIncidentDays->slice($page * $appIncidentDays, $appIncidentDays)->all(); if (count($selectedDays) > 0) { - $startDate = Date::createFromFormat('Y-m-d', array_values(array_slice($selectedDays, -1))[0]); - $endDate = Date::createFromFormat('Y-m-d', array_values($selectedDays)[0]); + $startDate = Date::createFromFormat('Y-m-d', array_values($selectedDays)[0]); + $endDate = Date::createFromFormat('Y-m-d', array_values(array_slice($selectedDays, -1))[0]); } $canPageForward = $page > 0; @@ -87,41 +88,22 @@ class StatusPageController extends AbstractApiController $previousDate = $page + 1; $nextDate = $page - 1; } else { - $today = Date::now(); $date = Date::now(); - // Check if we have another starting date - if (Binput::has('start_date')) { - try { - // If date provided is valid - $oldDate = Date::createFromFormat('Y-m-d', Binput::get('start_date')); - - // If trying to get a future date fallback to today - if ($today->gt($oldDate)) { - $date = $oldDate; - } - } catch (Exception $e) { - // Fallback to today - } - } - - $startDate = $date->copy()->subDays($appIncidentDays); - $endDate = $date->copy(); - - $canPageForward = (bool) $today->gt($date); + $canPageForward = (bool) $startDate->lt($date->sub('1 day')); $canPageBackward = Incident::where('occurred_at', '<', $date->format('Y-m-d'))->count() > 0; - $previousDate = $date->copy()->subDays($appIncidentDays)->toDateString(); - $nextDate = $date->copy()->addDays($appIncidentDays)->toDateString(); + $previousDate = $startDate->copy()->subDays($appIncidentDays)->toDateString(); + $nextDate = $startDate->copy()->addDays($appIncidentDays)->toDateString(); } $allIncidents = Incident::where('visible', '>=', (int) !Auth::check())->whereBetween('occurred_at', [ - $startDate->format('Y-m-d').' 00:00:00', - $endDate->format('Y-m-d').' 23:59:59', + $endDate->format('Y-m-d').' 00:00:00', + $startDate->format('Y-m-d').' 23:59:59', ])->orderBy('occurred_at', 'desc')->get()->groupBy(function (Incident $incident) { return app(DateFactory::class)->make($incident->occurred_at)->toDateString(); }); - if (!$only_disrupted_days) { + if (!$onlyDisruptedDays) { $incidentDays = array_pad([], $appIncidentDays, null); // Add in days that have no incidents diff --git a/app/Http/Controllers/SubscribeController.php b/app/Http/Controllers/SubscribeController.php index 7ae2cc16..8fa89587 100644 --- a/app/Http/Controllers/SubscribeController.php +++ b/app/Http/Controllers/SubscribeController.php @@ -80,7 +80,7 @@ class SubscribeController extends Controller $verified = app(Repository::class)->get('setting.skip_subscriber_verification'); try { - $subscription = dispatch(new SubscribeSubscriberCommand($email, $verified)); + $subscription = execute(new SubscribeSubscriberCommand($email, $verified)); } catch (ValidationException $e) { return cachet_redirect('status-page') ->withInput(Binput::all()) @@ -116,7 +116,7 @@ class SubscribeController extends Controller } if (!$subscriber->is_verified) { - dispatch(new VerifySubscriberCommand($subscriber)); + execute(new VerifySubscriberCommand($subscriber)); } return cachet_redirect('status-page') @@ -144,9 +144,9 @@ class SubscribeController extends Controller } if ($subscription) { - dispatch(new UnsubscribeSubscriptionCommand(Subscription::forSubscriber($subscriber->id)->firstOrFail())); + execute(new UnsubscribeSubscriptionCommand(Subscription::forSubscriber($subscriber->id)->firstOrFail())); } else { - dispatch(new UnsubscribeSubscriberCommand($subscriber)); + execute(new UnsubscribeSubscriberCommand($subscriber)); } return cachet_redirect('status-page') @@ -204,7 +204,7 @@ class SubscribeController extends Controller } try { - dispatch(new UpdateSubscriberSubscriptionCommand($subscriber, Binput::get('subscriptions'))); + execute(new UpdateSubscriberSubscriptionCommand($subscriber, Binput::get('subscriptions'))); } catch (ValidationException $e) { return cachet_redirect('subscribe.manage', $subscriber->verify_code) ->withInput(Binput::all()) diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index afb1bd2c..775f4691 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -11,7 +11,19 @@ namespace CachetHQ\Cachet\Http; +use AltThree\Throttle\ThrottlingMiddleware; +use CachetHQ\Cachet\Http\Middleware\Admin; +use CachetHQ\Cachet\Http\Middleware\ApiAuthentication; +use CachetHQ\Cachet\Http\Middleware\Authenticate; +use CachetHQ\Cachet\Http\Middleware\Localize; +use CachetHQ\Cachet\Http\Middleware\ReadyForUse; +use CachetHQ\Cachet\Http\Middleware\RedirectIfAuthenticated; +use CachetHQ\Cachet\Http\Middleware\SetupAlreadyCompleted; +use CachetHQ\Cachet\Http\Middleware\SubscribersConfigured; +use CachetHQ\Cachet\Http\Middleware\TrustProxies; +use Illuminate\Auth\Middleware\Authorize; use Illuminate\Foundation\Http\Kernel as HttpKernel; +use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode; class Kernel extends HttpKernel { @@ -21,8 +33,8 @@ class Kernel extends HttpKernel * @var array */ protected $middleware = [ - 'Fideloper\Proxy\TrustProxies', - 'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode', + TrustProxies::class, + CheckForMaintenanceMode::class, ]; /** @@ -31,15 +43,15 @@ class Kernel extends HttpKernel * @var array */ protected $routeMiddleware = [ - 'admin' => 'CachetHQ\Cachet\Http\Middleware\Admin', - 'can' => 'Illuminate\Auth\Middleware\Authorize', - 'auth' => 'CachetHQ\Cachet\Http\Middleware\Authenticate', - 'auth.api' => 'CachetHQ\Cachet\Http\Middleware\ApiAuthentication', - 'guest' => 'CachetHQ\Cachet\Http\Middleware\RedirectIfAuthenticated', - 'localize' => 'CachetHQ\Cachet\Http\Middleware\Localize', - 'ready' => 'CachetHQ\Cachet\Http\Middleware\ReadyForUse', - 'setup' => 'CachetHQ\Cachet\Http\Middleware\SetupAlreadyCompleted', - 'subscribers' => 'CachetHQ\Cachet\Http\Middleware\SubscribersConfigured', - 'throttle' => 'AltThree\Throttle\ThrottlingMiddleware', + 'admin' => Admin::class, + 'can' => Authorize::class, + 'auth' => Authenticate::class, + 'auth.api' => ApiAuthentication::class, + 'guest' => RedirectIfAuthenticated::class, + 'localize' => Localize::class, + 'ready' => ReadyForUse::class, + 'setup' => SetupAlreadyCompleted::class, + 'subscribers' => SubscribersConfigured::class, + 'throttle' => ThrottlingMiddleware::class, ]; } diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php new file mode 100644 index 00000000..9fcdfb79 --- /dev/null +++ b/app/Http/Middleware/TrustProxies.php @@ -0,0 +1,47 @@ + + */ +class TrustProxies extends Middleware +{ + /** + * The trusted proxies for this application. + * + * @var array + */ + protected $proxies; + + /** + * The headers that should be used to detect proxies. + * + * @var int + */ + protected $headers = Request::HEADER_X_FORWARDED_ALL; + + /** + * Create new trust proxies instance. + * + * @return void + */ + public function __construct() + { + $this->proxies = empty(env('TRUSTED_PROXIES')) ? '*' : explode(',', trim(env('TRUSTED_PROXIES'))); + } +} diff --git a/app/Http/Routes/ApiRoutes.php b/app/Http/Routes/ApiRoutes.php index 3408123a..d18e4064 100644 --- a/app/Http/Routes/ApiRoutes.php +++ b/app/Http/Routes/ApiRoutes.php @@ -41,10 +41,6 @@ class ApiRoutes 'prefix' => 'api/v1', ], function (Registrar $router) { $router->group(['middleware' => ['auth.api']], function (Registrar $router) { - $router->get('ping', 'GeneralController@ping'); - $router->get('version', 'GeneralController@version'); - $router->get('status', 'GeneralController@status'); - $router->get('components', 'ComponentController@index'); $router->get('components/groups', 'ComponentGroupController@index'); $router->get('components/groups/{component_group}', 'ComponentGroupController@show'); diff --git a/app/Http/Routes/ApiSystemRoutes.php b/app/Http/Routes/ApiSystemRoutes.php new file mode 100644 index 00000000..80899f71 --- /dev/null +++ b/app/Http/Routes/ApiSystemRoutes.php @@ -0,0 +1,50 @@ + + */ +class ApiSystemRoutes +{ + /** + * Defines if these routes are for the browser. + * + * @var bool + */ + public static $browser = false; + + /** + * Define the api routes for the system status, ping and version. + * + * @param \Illuminate\Contracts\Routing\Registrar $router + * + * @return void + */ + public function map(Registrar $router) + { + $router->group([ + 'namespace' => 'Api', + 'prefix' => 'api/v1', + ], function (Registrar $router) { + $router->group(['middleware' => ['auth.api']], function (Registrar $router) { + $router->get('ping', 'GeneralController@ping'); + $router->get('version', 'GeneralController@version'); + $router->get('status', 'GeneralController@status'); + }); + }); + } +} diff --git a/app/Http/Routes/Dashboard/ComponentRoutes.php b/app/Http/Routes/Dashboard/ComponentRoutes.php index ed14f1e1..aa7852f8 100644 --- a/app/Http/Routes/Dashboard/ComponentRoutes.php +++ b/app/Http/Routes/Dashboard/ComponentRoutes.php @@ -58,29 +58,29 @@ class ComponentRoutes $router->get('groups', [ 'as' => 'get:dashboard.components.groups', - 'uses' => 'ComponentController@showComponentGroups', + 'uses' => 'ComponentGroupController@showComponentGroups', ]); $router->get('groups/create', [ 'as' => 'get:dashboard.components.groups.create', - 'uses' => 'ComponentController@showAddComponentGroup', + 'uses' => 'ComponentGroupController@showAddComponentGroup', ]); $router->post('groups/create', [ 'as' => 'post:dashboard.components.groups.create', - 'uses' => 'ComponentController@postAddComponentGroup', + 'uses' => 'ComponentGroupController@postAddComponentGroup', ]); $router->get('groups/{component_group}', [ 'as' => 'get:dashboard.components.groups.edit', - 'uses' => 'ComponentController@showEditComponentGroup', + 'uses' => 'ComponentGroupController@showEditComponentGroup', ]); $router->post('groups/{component_group}', [ 'as' => 'post:dashboard.components.groups.edit', - 'uses' => 'ComponentController@updateComponentGroupAction', + 'uses' => 'ComponentGroupController@updateComponentGroupAction', ]); $router->delete('groups/{component_group}', [ 'as' => 'delete:dashboard.components.groups.delete', - 'uses' => 'ComponentController@deleteComponentGroupAction', + 'uses' => 'ComponentGroupController@deleteComponentGroupAction', ]); $router->get('{component}', [ diff --git a/app/Http/Routes/Dashboard/IncidentRoutes.php b/app/Http/Routes/Dashboard/IncidentRoutes.php index 3519cf49..4eee1e5e 100644 --- a/app/Http/Routes/Dashboard/IncidentRoutes.php +++ b/app/Http/Routes/Dashboard/IncidentRoutes.php @@ -71,23 +71,23 @@ class IncidentRoutes $router->get('{incident}/updates', [ 'as' => 'get:dashboard.incidents.updates', - 'uses' => 'IncidentController@showIncidentUpdates', + 'uses' => 'IncidentUpdateController@showIncidentUpdates', ]); $router->get('{incident}/updates/create', [ 'as' => 'get:dashboard.incidents.updates.create', - 'uses' => 'IncidentController@showCreateIncidentUpdateAction', + 'uses' => 'IncidentUpdateController@showCreateIncidentUpdateAction', ]); $router->post('{incident}/updates/create', [ 'as' => 'post:dashboard.incidents.updates.create', - 'uses' => 'IncidentController@createIncidentUpdateAction', + 'uses' => 'IncidentUpdateController@createIncidentUpdateAction', ]); $router->get('{incident}/updates/{incident_update}', [ 'as' => 'get:dashboard.incidents.updates.edit', - 'uses' => 'IncidentController@showEditIncidentUpdateAction', + 'uses' => 'IncidentUpdateController@showEditIncidentUpdateAction', ]); $router->post('{incident}/updates/{incident_update}', [ 'as' => 'post:dashboard.incidents.updates.edit', - 'uses' => 'IncidentController@editIncidentUpdateAction', + 'uses' => 'IncidentUpdateController@editIncidentUpdateAction', ]); }); } diff --git a/app/Http/Routes/Dashboard/TemplateRoutes.php b/app/Http/Routes/Dashboard/TemplateRoutes.php index 289f9752..ee4ed5df 100644 --- a/app/Http/Routes/Dashboard/TemplateRoutes.php +++ b/app/Http/Routes/Dashboard/TemplateRoutes.php @@ -44,29 +44,29 @@ class TemplateRoutes ], function (Registrar $router) { $router->get('/', [ 'as' => 'get:dashboard.templates', - 'uses' => 'IncidentController@showTemplates', + 'uses' => 'IncidentTemplateController@showTemplates', ]); $router->get('create', [ 'as' => 'get:dashboard.templates.create', - 'uses' => 'IncidentController@showAddIncidentTemplate', + 'uses' => 'IncidentTemplateController@showAddIncidentTemplate', ]); $router->post('create', [ 'as' => 'post:dashboard.templates.create', - 'uses' => 'IncidentController@createIncidentTemplateAction', + 'uses' => 'IncidentTemplateController@createIncidentTemplateAction', ]); $router->get('{incident_template}', [ 'as' => 'get:dashboard.templates.edit', - 'uses' => 'IncidentController@showEditTemplateAction', + 'uses' => 'IncidentTemplateController@showEditTemplateAction', ]); $router->post('{incident_template}', [ 'as' => 'post:dashboard.templates.edit', - 'uses' => 'IncidentController@editTemplateAction', + 'uses' => 'IncidentTemplateController@editTemplateAction', ]); $router->delete('{incident_template}', [ 'as' => 'delete:dashboard.templates.delete', - 'uses' => 'IncidentController@deleteTemplateAction', + 'uses' => 'IncidentTemplateController@deleteTemplateAction', ]); }); } diff --git a/app/Integrations/Core/System.php b/app/Integrations/Core/System.php index 87afeafc..b1f7183c 100644 --- a/app/Integrations/Core/System.php +++ b/app/Integrations/Core/System.php @@ -64,7 +64,8 @@ class System implements SystemContract $totalComponents = Component::enabled()->authenticated($includePrivate)->count(); $majorOutages = Component::enabled()->authenticated($includePrivate)->status(4)->count(); - $isMajorOutage = $totalComponents ? ($majorOutages / $totalComponents) >= 0.5 : false; + $majorOutageRate = (int) $this->config->get('setting.major_outage_rate', '50'); + $isMajorOutage = $totalComponents ? ($majorOutages / $totalComponents) * 100 >= $majorOutageRate : false; // Default data $status = [ diff --git a/app/Models/Action.php b/app/Models/Action.php index 5ff0a310..be9cfcc1 100644 --- a/app/Models/Action.php +++ b/app/Models/Action.php @@ -24,20 +24,6 @@ class Action extends Model { use ValidatingTrait; - /** - * A list of methods protected from mass assignment. - * - * @var string[] - */ - protected $guarded = ['_token', '_method']; - - /** - * The relations to eager load on every query. - * - * @var string[] - */ - protected $with = ['user']; - /** * The attributes that should be casted to native types. * @@ -52,6 +38,13 @@ class Action extends Model 'description' => 'string', ]; + /** + * A list of methods protected from mass assignment. + * + * @var string[] + */ + protected $guarded = ['_token', '_method']; + /** * The validation rules. * @@ -66,6 +59,13 @@ class Action extends Model 'description' => 'required|string', ]; + /** + * The relations to eager load on every query. + * + * @var string[] + */ + protected $with = ['user']; + /** * Get the user relation. * diff --git a/app/Models/Component.php b/app/Models/Component.php index 03b611f3..1b7901ac 100644 --- a/app/Models/Component.php +++ b/app/Models/Component.php @@ -12,6 +12,7 @@ namespace CachetHQ\Cachet\Models; use AltThree\Validator\ValidatingTrait; +use CachetHQ\Cachet\Models\Traits\HasTags; use CachetHQ\Cachet\Models\Traits\SearchableTrait; use CachetHQ\Cachet\Models\Traits\SortableTrait; use CachetHQ\Cachet\Presenters\ComponentPresenter; @@ -22,7 +23,7 @@ use McCool\LaravelAutoPresenter\HasPresenter; class Component extends Model implements HasPresenter { - use SearchableTrait, SoftDeletes, SortableTrait, ValidatingTrait; + use HasTags, SearchableTrait, SoftDeletes, SortableTrait, ValidatingTrait; /** * List of attributes that have default values. @@ -64,7 +65,6 @@ class Component extends Model implements HasPresenter 'name', 'description', 'status', - 'tags', 'link', 'order', 'group_id', @@ -135,7 +135,7 @@ class Component extends Model implements HasPresenter } /** - * Get all of the meta relation. + * Get the meta relation. * * @return \Illuminate\Database\Eloquent\Relations\MorphMany */ @@ -144,16 +144,6 @@ class Component extends Model implements HasPresenter return $this->morphMany(Meta::class, 'meta'); } - /** - * Get the tags relation. - * - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function tags() - { - return $this->belongsToMany(Tag::class); - } - /** * Finds all components by status. * @@ -250,20 +240,6 @@ class Component extends Model implements HasPresenter ->groupBy('group_id'); } - /** - * Returns all of the tags on this component. - * - * @return string - */ - public function getTagsListAttribute() - { - $tags = $this->tags->map(function ($tag) { - return $tag->name; - }); - - return implode(', ', $tags->toArray()); - } - /** * Get the presenter class. * diff --git a/app/Models/Incident.php b/app/Models/Incident.php index 728c6085..a91320aa 100644 --- a/app/Models/Incident.php +++ b/app/Models/Incident.php @@ -12,6 +12,7 @@ namespace CachetHQ\Cachet\Models; use AltThree\Validator\ValidatingTrait; +use CachetHQ\Cachet\Models\Traits\HasTags; use CachetHQ\Cachet\Models\Traits\SearchableTrait; use CachetHQ\Cachet\Models\Traits\SortableTrait; use CachetHQ\Cachet\Presenters\IncidentPresenter; @@ -29,7 +30,7 @@ use McCool\LaravelAutoPresenter\HasPresenter; */ class Incident extends Model implements HasPresenter { - use SearchableTrait, SoftDeletes, SortableTrait, ValidatingTrait; + use HasTags, SearchableTrait, SoftDeletes, SortableTrait, ValidatingTrait; /** * Status for incident being investigated. @@ -68,16 +69,30 @@ class Incident extends Model implements HasPresenter 'is_resolved', ]; + /** + * The model's attributes. + * + * @var string[] + */ + protected $attributes = [ + 'stickied' => false, + 'notifications' => false, + ]; + /** * The attributes that should be casted to native types. * * @var string[] */ protected $casts = [ - 'visible' => 'int', - 'stickied' => 'bool', - 'occurred_at' => 'datetime', - 'deleted_at' => 'date', + 'component_id' => 'int', + 'status' => 'int', + 'user_id' => 'int', + 'visible' => 'int', + 'stickied' => 'bool', + 'notifications' => 'bool', + 'occurred_at' => 'datetime', + 'deleted_at' => 'date', ]; /** @@ -86,11 +101,13 @@ class Incident extends Model implements HasPresenter * @var string[] */ protected $fillable = [ + 'user_id', 'component_id', 'name', 'status', 'visible', 'stickied', + 'notifications', 'message', 'occurred_at', 'created_at', @@ -103,12 +120,14 @@ class Incident extends Model implements HasPresenter * @var string[] */ public $rules = [ - 'component_id' => 'nullable|int', - 'name' => 'required|string', - 'status' => 'required|int', - 'visible' => 'required|bool', - 'stickied' => 'required|bool', - 'message' => 'required|string', + 'user_id' => 'nullable|int', + 'component_id' => 'nullable|int', + 'name' => 'required|string', + 'status' => 'required|int', + 'visible' => 'required|bool', + 'stickied' => 'required|bool', + 'notifications' => 'nullable|bool', + 'message' => 'required|string', ]; /** @@ -118,6 +137,7 @@ class Incident extends Model implements HasPresenter */ protected $searchable = [ 'id', + 'user_id', 'component_id', 'name', 'status', @@ -132,6 +152,7 @@ class Incident extends Model implements HasPresenter */ protected $sortable = [ 'id', + 'user_id', 'name', 'status', 'visible', @@ -180,6 +201,16 @@ class Incident extends Model implements HasPresenter return $this->hasMany(IncidentUpdate::class)->orderBy('created_at', 'desc'); } + /** + * Get the user relation. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function user() + { + return $this->belongsTo(User::class); + } + /** * Finds all visible incidents. * diff --git a/app/Models/IncidentUpdate.php b/app/Models/IncidentUpdate.php index 207e129e..a6474661 100644 --- a/app/Models/IncidentUpdate.php +++ b/app/Models/IncidentUpdate.php @@ -83,6 +83,16 @@ class IncidentUpdate extends Model implements HasPresenter return $this->belongsTo(Incident::class); } + /** + * Get the user relation. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function user() + { + return $this->belongsTo(User::class); + } + /** * Get the presenter class. * diff --git a/app/Models/Metric.php b/app/Models/Metric.php index a126ab37..54c1b43f 100644 --- a/app/Models/Metric.php +++ b/app/Models/Metric.php @@ -166,7 +166,7 @@ class Metric extends Model implements HasPresenter } /** - * Get all of the meta relation. + * Get the meta relation. * * @return \Illuminate\Database\Eloquent\Relations\MorphMany */ @@ -194,7 +194,7 @@ class Metric extends Model implements HasPresenter */ public function scopeDisplayable(Builder $query) { - return $query->where('display_chart', '=', true)->where('visible', '!=', self::VISIBLE_HIDDEN); + return $query->where('display_chart', '=', true)->where('visible', '<>', self::VISIBLE_HIDDEN); } /** diff --git a/app/Models/MetricPoint.php b/app/Models/MetricPoint.php index 89d53101..9e5cdc49 100644 --- a/app/Models/MetricPoint.php +++ b/app/Models/MetricPoint.php @@ -13,9 +13,18 @@ namespace CachetHQ\Cachet\Models; use AltThree\Validator\ValidatingTrait; use CachetHQ\Cachet\Presenters\MetricPointPresenter; +use Carbon\Carbon; +use DateTime; use Illuminate\Database\Eloquent\Model; use McCool\LaravelAutoPresenter\HasPresenter; +/** + * This is the metric point model class. + * + * @author James Brooks + * @author Joseph Cohen + * @author Graham Campbell + */ class MetricPoint extends Model implements HasPresenter { use ValidatingTrait; @@ -88,6 +97,29 @@ class MetricPoint extends Model implements HasPresenter return round((float) $value, $this->metric->places); } + /** + * Round the created at value into intervals of 30 seconds. + * + * @param string $createdAt + * + * @return string|void + */ + public function setCreatedAtAttribute($createdAt) + { + if (!$createdAt) { + return; + } + + if (!$createdAt instanceof DateTime) { + $createdAt = Carbon::parse($createdAt); + } + + $timestamp = $createdAt->format('U'); + $timestamp = 30 * round($timestamp / 30); + + return Carbon::createFromFormat('U', $timestamp)->toDateTimeString(); + } + /** * Get the presenter class. * diff --git a/app/Models/Schedule.php b/app/Models/Schedule.php index 6202952b..3f857cbd 100644 --- a/app/Models/Schedule.php +++ b/app/Models/Schedule.php @@ -18,6 +18,7 @@ use CachetHQ\Cachet\Presenters\SchedulePresenter; use Carbon\Carbon; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; use McCool\LaravelAutoPresenter\HasPresenter; /** @@ -27,7 +28,7 @@ use McCool\LaravelAutoPresenter\HasPresenter; */ class Schedule extends Model implements HasPresenter { - use SearchableTrait, SortableTrait, ValidatingTrait; + use SearchableTrait, SoftDeletes, SortableTrait, ValidatingTrait; /** * The upcoming status. @@ -143,7 +144,7 @@ class Schedule extends Model implements HasPresenter } /** - * Get all of the meta relation. + * Get the meta relation. * * @return \Illuminate\Database\Eloquent\Relations\MorphMany */ @@ -161,7 +162,7 @@ class Schedule extends Model implements HasPresenter */ public function scopeInProgress(Builder $query) { - return $query->where('scheduled_at', '<=', Carbon::now())->where('status', '!=', self::COMPLETE)->where(function ($query) { + return $query->where('scheduled_at', '<=', Carbon::now())->where('status', '<>', self::COMPLETE)->where(function ($query) { $query->whereNull('completed_at')->orWhere('completed_at', '>', Carbon::now()); }); } diff --git a/app/Models/Setting.php b/app/Models/Setting.php index 0ea02148..54ea2b77 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -15,6 +15,13 @@ use Illuminate\Database\Eloquent\Model; class Setting extends Model { + /** + * List of attributes that have default values. + * + * @var string[] + */ + protected $attributes = ['value' => '']; + /** * The attributes that should be casted to native types. * @@ -31,11 +38,4 @@ class Setting extends Model * @var string[] */ protected $fillable = ['name', 'value']; - - /** - * List of attributes that have default values. - * - * @var string[] - */ - protected $attributes = ['value' => '']; } diff --git a/app/Models/Subscriber.php b/app/Models/Subscriber.php index 964a73eb..7b0fb2ef 100644 --- a/app/Models/Subscriber.php +++ b/app/Models/Subscriber.php @@ -91,7 +91,7 @@ class Subscriber extends Model implements HasPresenter } /** - * Get all of the meta relation. + * Get the meta relation. * * @return \Illuminate\Database\Eloquent\Relations\MorphMany */ diff --git a/app/Models/Taggable.php b/app/Models/Taggable.php new file mode 100644 index 00000000..9b6c94a1 --- /dev/null +++ b/app/Models/Taggable.php @@ -0,0 +1,79 @@ + + */ +class Taggable extends Model +{ + use ValidatingTrait; + + /** + * The attributes that should be casted to native types. + * + * @var string[] + */ + protected $casts = [ + 'id' => 'int', + 'tag_id' => 'int', + 'taggable_id' => 'int', + 'taggable_type' => 'string', + ]; + + /** + * The attributes that are mass assignable. + * + * @var array + */ + protected $fillable = [ + 'tag_id', + 'taggable_id', + 'taggable_type', + ]; + + /** + * The validation rules. + * + * @var string[] + */ + public $rules = [ + 'tag_id' => 'required|int', + 'taggable_id' => 'required|int', + 'taggable_type' => 'required|string', + ]; + + /** + * Get the tag relation. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function tag() + { + return $this->belongsTo(Tag::class); + } + + /** + * Get the taggable relation. + * + * @return \Illuminate\Database\Eloquent\Relations\MorphTo + */ + public function taggable() + { + return $this->morphTo(); + } +} diff --git a/app/Models/Traits/HasTags.php b/app/Models/Traits/HasTags.php new file mode 100644 index 00000000..dbb62b75 --- /dev/null +++ b/app/Models/Traits/HasTags.php @@ -0,0 +1,87 @@ + + */ +trait HasTags +{ + /** + * Get the tags relation. + * + * @return \Illuminate\Database\Eloquent\Relations\MorphToMany + */ + public function tags() + { + return $this->morphToMany(Tag::class, 'taggable'); + } + + /** + * @param \Illuminate\Database\Eloquent\Builder $query + * @param array|\ArrayAccess $tags + * + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeWithAllTags(Builder $query, $tags) + { + $tags = static::convertToTags($tags); + + $tags->each(function ($tag) use ($query) { + $query->whereHas('tags', function (Builder $query) use ($tag) { + return $query->where('id', $tag ? $tag->id : 0); + }); + }); + + return $query; + } + + /** + * @param \Illuminate\Database\Eloquent\Builder $query + * @param array|\ArrayAccess $tags + * + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeWithAnyTags(Builder $query, $tags) + { + $tags = static::convertToTags($tags); + + return $query->whereHas('tags', function (Builder $query) use ($tags) { + $tagIds = $tags->pluck('id')->toArray(); + + $query->whereIn('taggables.tag_id', $tagIds); + }); + } + + /** + * Convert a list of tags into a collection of \CachetHQ\Cachet\Models\Tag. + * + * @param array|\ArrayAccess $values + * + * @return \Illuminate\Support\Collection + */ + protected static function convertToTags($values) + { + return collect($values)->map(function ($value) { + if ($value instanceof Tag) { + return $value; + } + + return Tag::where('slug', '=', $value)->first(); + }); + } +} diff --git a/app/Notifications/Component/ComponentStatusChangedNotification.php b/app/Notifications/Component/ComponentStatusChangedNotification.php index dfe5ad8d..67c1f04a 100644 --- a/app/Notifications/Component/ComponentStatusChangedNotification.php +++ b/app/Notifications/Component/ComponentStatusChangedNotification.php @@ -88,7 +88,8 @@ class ComponentStatusChangedNotification extends Notification ->greeting(trans('notifications.component.status_update.mail.subject')) ->line($content) ->action(trans('notifications.component.status_update.mail.action'), cachet_route('status-page')) - ->line(trans('cachet.subscriber.unsubscribe', ['link' => cachet_route('subscribe.unsubscribe', $notifiable->verify_code)])); + ->line(trans('cachet.subscriber.unsubscribe', ['link' => cachet_route('subscribe.unsubscribe', $notifiable->verify_code)])) + ->line(trans('cachet.subscriber.manage.manage_at_link', ['link' => cachet_route('subscribe.manage', $notifiable->verify_code)])); } /** diff --git a/app/Notifications/Incident/NewIncidentNotification.php b/app/Notifications/Incident/NewIncidentNotification.php index 6b7a64fe..8ad938bb 100644 --- a/app/Notifications/Incident/NewIncidentNotification.php +++ b/app/Notifications/Incident/NewIncidentNotification.php @@ -75,11 +75,16 @@ class NewIncidentNotification extends Notification return (new MailMessage()) ->subject(trans('notifications.incident.new.mail.subject')) - ->greeting(trans('notifications.incident.new.mail.greeting', ['app_name' => Config::get('setting.app_name')])) - ->line($content) - ->action(trans('notifications.incident.new.mail.action'), cachet_route('incident', [$this->incident])) - ->markdown($this->incident->message) - ->line(trans('cachet.subscriber.unsubscribe', ['link' => cachet_route('subscribe.unsubscribe', $notifiable->verify_code)])); + ->markdown('notifications.incident.new', [ + 'incident' => $this->incident, + 'content' => $content, + 'actionText' => trans('notifications.incident.new.mail.action'), + 'actionUrl' => cachet_route('incident', [$this->incident]), + 'unsubscribeText' => trans('cachet.subscriber.unsubscribe'), + 'unsubscribeUrl' => cachet_route('subscribe.unsubscribe', $notifiable->verify_code), + 'manageSubscriptionText' => trans('cachet.subscriber.manage_subscription'), + 'manageSubscriptionUrl' => cachet_route('subscribe.manage', $notifiable->verify_code), + ]); } /** diff --git a/app/Notifications/IncidentUpdate/IncidentUpdatedNotification.php b/app/Notifications/IncidentUpdate/IncidentUpdatedNotification.php index 30d9c6ea..d5bca3f2 100644 --- a/app/Notifications/IncidentUpdate/IncidentUpdatedNotification.php +++ b/app/Notifications/IncidentUpdate/IncidentUpdatedNotification.php @@ -82,8 +82,9 @@ class IncidentUpdatedNotification extends Notification ])) ->line($content) ->action(trans('notifications.incident.update.mail.action'), cachet_route('incident', [$this->update->incident])) - ->markdown($this->update->message) - ->line(trans('cachet.subscriber.unsubscribe', ['link' => cachet_route('subscribe.unsubscribe', $notifiable->verify_code)])); + ->line($this->update->raw_message) + ->line(trans('cachet.subscriber.unsubscribe', ['link' => cachet_route('subscribe.unsubscribe', $notifiable->verify_code)])) + ->line(trans('cachet.subscriber.manage.manage_at_link', ['link' => cachet_route('subscribe.manage', $notifiable->verify_code)])); } /** diff --git a/app/Presenters/ComponentPresenter.php b/app/Presenters/ComponentPresenter.php index 07a2458e..30bb2239 100644 --- a/app/Presenters/ComponentPresenter.php +++ b/app/Presenters/ComponentPresenter.php @@ -53,7 +53,7 @@ class ComponentPresenter extends BasePresenter implements Arrayable */ public function tags() { - return $this->wrappedObject->tags->pluck('name', 'slug'); + return $this->wrappedObject->tags->pluck('tag.name', 'tag.slug'); } /** diff --git a/app/Repositories/Metric/MetricRepository.php b/app/Repositories/Metric/MetricRepository.php index 987a3b34..ba62662f 100644 --- a/app/Repositories/Metric/MetricRepository.php +++ b/app/Repositories/Metric/MetricRepository.php @@ -61,11 +61,19 @@ class MetricRepository { $dateTime = $this->dates->make(); $pointKey = $dateTime->format('Y-m-d H:i'); - $points = $this->repository->getPointsSinceMinutes($metric, 60)->pluck('value', 'key')->take(60); + $nrOfMinutes = 61; + $points = $this->repository->getPointsSinceMinutes($metric, $nrOfMinutes + $metric->threshold)->pluck('value', 'key')->take(-$nrOfMinutes); - for ($i = 0; $i <= 60; $i++) { + $timeframe = $nrOfMinutes; + for ($i = 0; $i < $timeframe; $i++) { if (!$points->has($pointKey)) { - $points->put($pointKey, $metric->default_value); + if ($i >= $metric->threshold) { + $points->put($pointKey, $metric->default_value); + } else { + // The point not found is still within the threshold, so it is ignored and + // the timeframe is shifted by one minute + $timeframe++; + } } $pointKey = $dateTime->sub(new DateInterval('PT1M'))->format('Y-m-d H:i'); diff --git a/app/Repositories/Metric/SqliteRepository.php b/app/Repositories/Metric/SqliteRepository.php index 239b17cb..ac05c320 100644 --- a/app/Repositories/Metric/SqliteRepository.php +++ b/app/Repositories/Metric/SqliteRepository.php @@ -37,8 +37,8 @@ class SqliteRepository extends AbstractMetricRepository implements MetricInterfa "FROM {$this->getMetricsTable()} ". "INNER JOIN {$this->getMetricPointsTable()} ON {$this->getMetricsTable()}.id = {$this->getMetricPointsTable()}.metric_id ". "WHERE {$this->getMetricsTable()}.id = :metricId ". - "AND {$this->getMetricPointsTable()}.`created_at` >= datetime('now', '-{$minutes} minutes') ". - "AND {$this->getMetricPointsTable()}.`created_at` <= datetime('now') ". + "AND {$this->getMetricPointsTable()}.`created_at` >= datetime('now', 'localtime', '-{$minutes} minutes') ". + "AND {$this->getMetricPointsTable()}.`created_at` <= datetime('now', 'localtime') ". "GROUP BY strftime('%H', {$this->getMetricPointsTable()}.`created_at`), strftime('%M', {$this->getMetricPointsTable()}.`created_at`) ". "ORDER BY {$this->getMetricPointsTable()}.`created_at`", [ 'metricId' => $metric->id, @@ -61,8 +61,8 @@ class SqliteRepository extends AbstractMetricRepository implements MetricInterfa $points = DB::select("SELECT strftime('%Y-%m-%d %H:00', {$this->getMetricPointsTable()}.`created_at`) AS `key`, {$queryType} ". "FROM {$this->getMetricsTable()} INNER JOIN {$this->getMetricPointsTable()} ON {$this->getMetricsTable()}.id = {$this->getMetricPointsTable()}.metric_id ". "WHERE {$this->getMetricsTable()}.id = :metricId ". - "AND {$this->getMetricPointsTable()}.`created_at` >= datetime('now', '-{$hour} hours') ". - "AND {$this->getMetricPointsTable()}.`created_at` <= datetime('now') ". + "AND {$this->getMetricPointsTable()}.`created_at` >= datetime('now', 'localtime', '-{$hour} hours') ". + "AND {$this->getMetricPointsTable()}.`created_at` <= datetime('now', 'localtime') ". "GROUP BY strftime('%H', {$this->getMetricPointsTable()}.`created_at`) ORDER BY {$this->getMetricPointsTable()}.`created_at`", [ 'metricId' => $metric->id, ]); @@ -84,8 +84,8 @@ class SqliteRepository extends AbstractMetricRepository implements MetricInterfa $points = DB::select("SELECT strftime('%Y-%m-%d', {$this->getMetricPointsTable()}.`created_at`) AS `key`, {$queryType} ". "FROM {$this->getMetricsTable()} INNER JOIN {$this->getMetricPointsTable()} ON {$this->getMetricsTable()}.id = {$this->getMetricPointsTable()}.metric_id ". "WHERE {$this->getMetricsTable()}.id = :metricId ". - "AND {$this->getMetricPointsTable()}.`created_at` >= datetime('now', '-{$day} days') ". - "AND {$this->getMetricPointsTable()}.`created_at` <= datetime('now') ". + "AND {$this->getMetricPointsTable()}.`created_at` >= datetime('now', 'localtime', '-{$day} days') ". + "AND {$this->getMetricPointsTable()}.`created_at` <= datetime('now', 'localtime') ". "GROUP BY DATE({$this->getMetricPointsTable()}.`created_at`) ". "ORDER BY {$this->getMetricPointsTable()}.`created_at`", [ 'metricId' => $metric->id, diff --git a/app/Services/Modules/Manager.php b/app/Services/Modules/Manager.php deleted file mode 100644 index 61a276c6..00000000 --- a/app/Services/Modules/Manager.php +++ /dev/null @@ -1,80 +0,0 @@ - - */ -class Manager -{ - /** - * Groups the modules. - * - * @param array $modules - * @param array $groups - * - * @return array - */ - public function groupModules(array $modules, array $groups = []) - { - $grouped = []; - $length = count($modules); - foreach ($modules as $order => $module) { - if (!is_array($module) || empty($module['group'])) { - $order = array_get($module, 'order', PHP_INT_MAX - $length + $order); - - $grouped[] = [$module, 'order' => $order]; - - continue; - } - - $group = $module['group']; - if (empty($grouped[$group])) { - $grouped[$group] = [$module]; - - continue; - } - - $grouped[$group][] = $module; - } - - foreach ($groups as $group => $order) { - if (empty($grouped[$group])) { - continue; - } - - $grouped[$group]['order'] = $order; - } - - return $grouped; - } - - /** - * Orders the modules. - * - * @param array $modules - * - * @return array - */ - public function orderModules($modules) - { - $modules = array_numeric_sort($modules); - - foreach ($modules as $group => $subModules) { - $modules[$group] = array_numeric_sort($subModules); - } - - return $modules; - } -} diff --git a/app/Services/Modules/Renderer.php b/app/Services/Modules/Renderer.php deleted file mode 100644 index b8fe3df3..00000000 --- a/app/Services/Modules/Renderer.php +++ /dev/null @@ -1,75 +0,0 @@ - - */ -class Renderer -{ - /** - * Render the modules. - * - * @param \Illuminate\Contracts\View\Factory $factory - * @param array $data - * @param array $modules - * @param string|null $group - * - * @return string - */ - public function renderModules(Factory $factory, array $data, array $modules, $group = null) - { - if ($group !== null) { - if (empty($modules[$group])) { - return ''; - } - - return $this->renderModulesGroup($factory, $data, $modules[$group]); - } - - return array_reduce( - array_numeric_sort($modules), - function ($reduce, $module) use ($factory, $data) { - return $reduce.$this->renderModulesGroup($factory, $data, $module); - }, - '' - ); - } - - /** - * Render a group of modules. - * - * @param \Illuminate\Contracts\View\Factory $factory - * @param array $data - * @param array $modules - * - * @return string - */ - protected function renderModulesGroup(Factory $factory, array $data, array $modules) - { - return array_reduce( - array_numeric_sort($modules), - function ($reduce, $module) use ($factory, $data) { - if (empty($module['partial'])) { - return $reduce; - } - - return $reduce.$factory->make($module['partial'], $data)->render(); - }, - '' - ); - } -} diff --git a/app/Subscribers/CommandSubscriber.php b/app/Subscribers/CommandSubscriber.php index 7b7acb6f..bc388df0 100644 --- a/app/Subscribers/CommandSubscriber.php +++ b/app/Subscribers/CommandSubscriber.php @@ -69,6 +69,15 @@ class CommandSubscriber $events->listen('command.installing', __CLASS__.'@fireInstallingCommand', 5); $events->listen('command.updating', __CLASS__.'@fireUpdatingCommand', 5); $events->listen('command.resetting', __CLASS__.'@fireResettingCommand', 5); + $events->listen('command.generatekey', __CLASS__.'@onGenerateKey'); + $events->listen('command.cacheconfig', __CLASS__.'@onCacheConfig'); + $events->listen('command.cacheroutes', __CLASS__.'@onCacheRoutes'); + $events->listen('command.publishvendors', __CLASS__.'@onPublishVendors'); + $events->listen('command.resetmigrations', __CLASS__.'@onResetMigrations'); + $events->listen('command.runmigrations', __CLASS__.'@onRunMigrations'); + $events->listen('command.runseeding', __CLASS__.'@onRunSeeding'); + $events->listen('command.linkstorage', __CLASS__.'@onLinkStorage'); + $events->listen('command.updatecache', __CLASS__.'@onUpdateCache'); } /** @@ -158,4 +167,116 @@ class CommandSubscriber $command->line('Backup completed!'); } + + /** + * Handle a command.generatekey event. + * + * @param \Illuminate\Console\Command $command + * + * @return void + */ + public function onGenerateKey(Command $command) + { + $command->call('key:generate'); + } + + /** + * Handle a command.cacheconfig event. + * + * @param \Illuminate\Console\Command $command + * + * @return void + */ + public function onCacheConfig(Command $command) + { + $command->call('config:cache'); + } + + /** + * Handle a command.cacheroutes event. + * + * @param \Illuminate\Console\Command $command + * + * @return void + */ + public function onCacheRoutes(Command $command) + { + $command->call('route:cache'); + } + + /** + * Handle a command.publishvendors event. + * + * @param \Illuminate\Console\Command $command + * + * @return void + */ + public function onPublishVendors(Command $command) + { + $command->call('vendor:publish'); + } + + /** + * Handle a command.resetmigrations event. + * + * @param \Illuminate\Console\Command $command + * + * @return void + */ + public function onResetMigrations(Command $command) + { + $command->call('migrate:reset', ['--force' => true]); + } + + /** + * Handle a command.runmigrations event. + * + * @param \Illuminate\Console\Command $command + * + * @return void + */ + public function onRunMigrations(Command $command) + { + $command->call('migrate', ['--force' => true]); + } + + /** + * Handle a command.runseeding event. + * + * @param \Illuminate\Console\Command $command + * + * @return void + */ + public function onRunSeeding(Command $command) + { + $command->call('db:seed', ['--force' => true]); + } + + /** + * Handle a command.linkstorage event. + * + * @param \Illuminate\Console\Command $command + * + * @return void + */ + public function onLinkStorage(Command $command) + { + if ($command->getApplication()->has('storage:link')) { + $command->call('storage:link'); + } + } + + /** + * Handle a command.updatecache event. + * + * @param \Illuminate\Console\Command $command + * + * @return void + */ + public function onUpdateCache(Command $command) + { + $command->line('Clearing cache...'); + $command->call('cache:clear'); + $command->info('Cache cleared!'); + } } diff --git a/app/helpers.php b/app/helpers.php index 6f6d01e6..c64dfe09 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -10,6 +10,7 @@ */ use CachetHQ\Cachet\Settings\Repository; +use Illuminate\Contracts\Bus\Dispatcher; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Request; use Jenssegers\Date\Date; @@ -122,30 +123,6 @@ if (!function_exists('color_contrast')) { } } -if (!function_exists('array_numeric_sort')) { - /** - * Numerically sort an array based on a specific key. - * - * @param array $array - * @param string $key - * - * @return array - */ - function array_numeric_sort(array $array = [], $key = 'order') - { - uasort($array, function ($a, $b) use ($key) { - $a = array_get($a, $key, PHP_INT_MAX); - $b = array_get($b, $key, PHP_INT_MAX); - - $default = PHP_MAJOR_VERSION < 7 ? 1 : 0; - - return $a < $b ? -1 : ($a === $b ? $default : 1); - }); - - return $array; - } -} - if (!function_exists('cachet_route')) { /** * Generate a URL to a named route, which resides in a given domain. @@ -183,3 +160,17 @@ if (!function_exists('cachet_redirect')) { return app('redirect')->to($url, $status, $headers); } } + +if (!function_exists('execute')) { + /** + * Send the given command to the dispatcher for execution. + * + * @param object $command + * + * @return void + */ + function execute($command) + { + return app(Dispatcher::class)->dispatchNow($command); + } +} diff --git a/bootstrap/app.php b/bootstrap/app.php index 787b5db6..2b2ff8cb 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -26,7 +26,7 @@ $app->singleton(Illuminate\Contracts\Http\Kernel::class, CachetHQ\Cachet\Http\Ke $app->singleton(Illuminate\Contracts\Console\Kernel::class, CachetHQ\Cachet\Console\Kernel::class); -$app->singleton(Illuminate\Contracts\Debug\ExceptionHandler::class, GrahamCampbell\Exceptions\NewExceptionHandler::class); +$app->singleton(Illuminate\Contracts\Debug\ExceptionHandler::class, GrahamCampbell\Exceptions\ExceptionHandler::class); /* |-------------------------------------------------------------------------- diff --git a/composer.json b/composer.json index b90afdc5..385903aa 100644 --- a/composer.json +++ b/composer.json @@ -25,46 +25,44 @@ } ], "require": { - "php": ">=5.6.4", + "php": "^7.1.3", "ext-xml": "*", - "alt-three/badger": "^3.1", - "alt-three/bus": "^2.0", - "alt-three/emoji": "^4.1", - "alt-three/logger": "^1.3", - "alt-three/throttle": "^1.0", - "alt-three/twitter": "^1.0", - "alt-three/validator": "^2.0", + "alt-three/badger": "^5.0", + "alt-three/bus": "^4.0", + "alt-three/emoji": "^6.0", + "alt-three/throttle": "^3.0", + "alt-three/twitter": "^3.0", + "alt-three/validator": "^4.0", "aws/aws-sdk-php": "^3.7", - "backup-manager/laravel": "dev-master#df53f9c9d8c6be5d7a2638f45d54b8fb7bc51e2b", - "barryvdh/laravel-cors": "^0.8", + "barryvdh/laravel-cors": "^0.11.0", "doctrine/dbal": "2.5.13", - "fideloper/proxy": "^3.1", - "graham-campbell/binput": "^3.5", - "graham-campbell/core": "^5.1", - "graham-campbell/exceptions": "^9.1", - "graham-campbell/markdown": "^7.1", + "fideloper/proxy": "^4.0", + "graham-campbell/binput": "^5.0", + "graham-campbell/exceptions": "^11.0", + "graham-campbell/markdown": "^10.0", "guzzlehttp/guzzle": "^6.2.1", "jenssegers/date": "^3.2", - "laravel/framework": "^5.4", + "laravel/framework": "5.6.*", "laravel/tinker": "^1.0", "laravolt/avatar": "^1.8", - "mccool/laravel-auto-presenter": "^5.0", + "mccool/laravel-auto-presenter": "^7.0", "nexmo/client": "@beta", "pragmarx/google2fa": "^0.7.1", "predis/predis": "^1.1", "roumen/feed": "^2.10", + "spatie/laravel-backup": "^5.9", "twig/twig": "^1.26.1" }, "require-dev": { "ext-sqlite3": "*", - "alt-three/testbench": "^1.11", + "alt-three/testbench": "^4.0", + "barryvdh/laravel-debugbar": "^3.0", "filp/whoops": "^2.1", "fzaninotto/faker": "^1.6", - "graham-campbell/testbench-core": "^1.1", - "laravel/browser-kit-testing": "^2.0", - "mockery/mockery": "0.9.9", - "nikic/php-parser": "^3.0", - "phpunit/phpunit": "5.7.20", + "graham-campbell/analyzer": "^2.0", + "graham-campbell/testbench-core": "^3.0", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.0", "symfony/css-selector": "^3.1", "symfony/dom-crawler": "^3.1", "tightenco/mailthief": "^0.3.2" @@ -90,24 +88,17 @@ }, "scripts": { "post-root-package-install": [ - "php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ - "php artisan key:generate" + "@php artisan key:generate" ], - "post-install-cmd": [ - "Illuminate\\Foundation\\ComposerScripts::postInstall", - "php artisan optimize" - ], - "post-update-cmd": [ - "Illuminate\\Foundation\\ComposerScripts::postUpdate", - "php artisan optimize" + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover" ] }, "config": { - "platform": { - "php": "5.6.4" - }, "preferred-install": "dist", "sort-packages": true, "optimize-autoloader": true diff --git a/composer.lock b/composer.lock index 8a722fe3..4ad91ee4 100644 --- a/composer.lock +++ b/composer.lock @@ -4,35 +4,41 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "cdacb1da413997b10a4ab6fa68abd591", + "content-hash": "6370efbcdaf729667eb595daf9dfff52", "packages": [ { "name": "alt-three/badger", - "version": "v3.2.0", + "version": "v5.0.0", "source": { "type": "git", "url": "https://github.com/AltThree/Badger.git", - "reference": "c4cd7140aed3554ba4b8c44a877d400d6e5e3554" + "reference": "f0eca87b9b6ed1452ba6459c8bc73232c5ed7f13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AltThree/Badger/zipball/c4cd7140aed3554ba4b8c44a877d400d6e5e3554", - "reference": "c4cd7140aed3554ba4b8c44a877d400d6e5e3554", + "url": "https://api.github.com/repos/AltThree/Badger/zipball/f0eca87b9b6ed1452ba6459c8bc73232c5ed7f13", + "reference": "f0eca87b9b6ed1452ba6459c8bc73232c5ed7f13", "shasum": "" }, "require": { - "illuminate/contracts": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*", - "php": ">=5.5.9" + "illuminate/contracts": "5.5.*|5.6.*", + "illuminate/support": "5.5.*|5.6.*", + "php": "^7.1.3" }, "require-dev": { - "graham-campbell/testbench": "^3.1", - "phpunit/phpunit": "^4.8|^5.0" + "graham-campbell/analyzer": "^2.0", + "graham-campbell/testbench": "^5.0", + "phpunit/phpunit": "^6.5|^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "5.0-dev" + }, + "laravel": { + "providers": [ + "AltThree\\Badger\\BadgerServiceProvider" + ] } }, "autoload": { @@ -46,16 +52,8 @@ ], "authors": [ { - "name": "James Brooks", - "email": "james@alt-three.com" - }, - { - "name": "Graham Campbell", - "email": "graham@alt-three.com" - }, - { - "name": "Joseph Cohen", - "email": "joe@alt-three.com" + "name": "Alt Three", + "email": "support@alt-three.com" } ], "description": "A Badge Generator For Laravel 5", @@ -66,39 +64,40 @@ "shield", "svg" ], - "time": "2017-01-01T12:36:28+00:00" + "time": "2018-03-03T21:08:22+00:00" }, { "name": "alt-three/bus", - "version": "v2.1.0", + "version": "v4.0.0", "source": { "type": "git", "url": "https://github.com/AltThree/Bus.git", - "reference": "a71bafc3d56fd8e980ecd31447a75fd846494539" + "reference": "dbaeb616e50c4c558a3062e17f4569b7b07a1344" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AltThree/Bus/zipball/a71bafc3d56fd8e980ecd31447a75fd846494539", - "reference": "a71bafc3d56fd8e980ecd31447a75fd846494539", + "url": "https://api.github.com/repos/AltThree/Bus/zipball/dbaeb616e50c4c558a3062e17f4569b7b07a1344", + "reference": "dbaeb616e50c4c558a3062e17f4569b7b07a1344", "shasum": "" }, "require": { - "illuminate/bus": "5.3.*|5.4.*", - "illuminate/container": "5.3.*|5.4.*", - "illuminate/contracts": "5.3.*|5.4.*", - "illuminate/pipeline": "5.3.*|5.4.*", - "illuminate/support": "5.3.*|5.4.*", - "php": ">=5.6.4" + "illuminate/bus": "5.5.*|5.6.*", + "illuminate/container": "5.5.*|5.6.*", + "illuminate/contracts": "5.5.*|5.6.*", + "illuminate/pipeline": "5.5.*|5.6.*", + "illuminate/support": "5.5.*|5.6.*", + "php": "^7.1.3" }, "require-dev": { - "graham-campbell/testbench": "^3.1", - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.0" + "graham-campbell/analyzer": "^2.0", + "graham-campbell/testbench": "^5.0", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.5|^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -112,23 +111,11 @@ ], "authors": [ { - "name": "Taylor Otwell", - "email": "taylorotwell@gmail.com" - }, - { - "name": "James Brooks", - "email": "james@alt-three.com" - }, - { - "name": "Graham Campbell", - "email": "graham@alt-three.com" - }, - { - "name": "Joseph Cohen", - "email": "joe@alt-three.com" + "name": "Alt Three", + "email": "support@alt-three.com" } ], - "description": "An improved command bus for Laravel 5.2+", + "description": "An improved command bus for Laravel 5", "keywords": [ "Alt Three", "bus", @@ -136,38 +123,44 @@ "command bus", "job" ], - "time": "2017-01-01T12:37:11+00:00" + "time": "2018-03-03T21:08:24+00:00" }, { "name": "alt-three/emoji", - "version": "v4.1.0", + "version": "v6.0.0", "source": { "type": "git", "url": "https://github.com/AltThree/Emoji.git", - "reference": "3aa00f11d5a13f7fb43fc8f1e8d66c9788e626ec" + "reference": "9142bd508af3c72a67f4ac5d826f22596cf5e1eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AltThree/Emoji/zipball/3aa00f11d5a13f7fb43fc8f1e8d66c9788e626ec", - "reference": "3aa00f11d5a13f7fb43fc8f1e8d66c9788e626ec", + "url": "https://api.github.com/repos/AltThree/Emoji/zipball/9142bd508af3c72a67f4ac5d826f22596cf5e1eb", + "reference": "9142bd508af3c72a67f4ac5d826f22596cf5e1eb", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "^5.3|^6.0", - "illuminate/contracts": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*", - "league/commonmark": "^0.15", - "php": ">=5.5.9" + "graham-campbell/guzzle-factory": "^3.0", + "illuminate/contracts": "5.5.*|5.6.*", + "illuminate/support": "5.5.*|5.6.*", + "league/commonmark": "^0.17", + "php": "^7.1.3" }, "require-dev": { - "graham-campbell/markdown": "^7.0", - "graham-campbell/testbench": "^3.1", - "phpunit/phpunit": "^4.8|^5.0" + "graham-campbell/analyzer": "^2.0", + "graham-campbell/markdown": "^10.0", + "graham-campbell/testbench": "^5.0", + "phpunit/phpunit": "^6.5|^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "6.0-dev" + }, + "laravel": { + "providers": [ + "AltThree\\Emoji\\EmojiServiceProvider" + ] } }, "autoload": { @@ -181,16 +174,8 @@ ], "authors": [ { - "name": "James Brooks", - "email": "james@alt-three.com" - }, - { - "name": "Graham Campbell", - "email": "graham@alt-three.com" - }, - { - "name": "Joseph Cohen", - "email": "joe@alt-three.com" + "name": "Alt Three", + "email": "support@alt-three.com" } ], "description": "An Emoji Parser For Laravel 5", @@ -199,96 +184,36 @@ "emoji", "parser" ], - "time": "2017-01-01T12:37:40+00:00" - }, - { - "name": "alt-three/logger", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/AltThree/Logger.git", - "reference": "2136162549b6ec99e3eae9f8cfff84e41caafe15" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/AltThree/Logger/zipball/2136162549b6ec99e3eae9f8cfff84e41caafe15", - "reference": "2136162549b6ec99e3eae9f8cfff84e41caafe15", - "shasum": "" - }, - "require": { - "illuminate/contracts": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*", - "php": ">=5.5.9", - "psr/log": "^1.0" - }, - "require-dev": { - "graham-campbell/testbench": "^3.1", - "phpunit/phpunit": "^4.8|^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "autoload": { - "psr-4": { - "AltThree\\Logger\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "James Brooks", - "email": "james@alt-three.com" - }, - { - "name": "Graham Campbell", - "email": "graham@alt-three.com" - }, - { - "name": "Joseph Cohen", - "email": "joe@alt-three.com" - } - ], - "description": "A Logger Wrapper For Laravel 5", - "keywords": [ - "Alt Three", - "logger", - "logging" - ], - "time": "2017-01-01T12:36:39+00:00" + "time": "2018-03-03T21:08:28+00:00" }, { "name": "alt-three/throttle", - "version": "v1.2.0", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/AltThree/Throttle.git", - "reference": "bda58993b1818b943f1738661af692a639c4aa5e" + "reference": "41c83710719a61194d9e31f75ca4d2f104f12fd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AltThree/Throttle/zipball/bda58993b1818b943f1738661af692a639c4aa5e", - "reference": "bda58993b1818b943f1738661af692a639c4aa5e", + "url": "https://api.github.com/repos/AltThree/Throttle/zipball/41c83710719a61194d9e31f75ca4d2f104f12fd1", + "reference": "41c83710719a61194d9e31f75ca4d2f104f12fd1", "shasum": "" }, "require": { - "illuminate/cache": "5.2.*|5.3.*|5.4.*", - "illuminate/http": "5.2.*|5.3.*|5.4.*", - "php": ">=5.5.9" + "illuminate/cache": "5.5.*|5.6.*", + "illuminate/http": "5.5.*|5.6.*", + "php": "^7.1.3" }, "require-dev": { - "graham-campbell/testbench": "^3.1", - "phpunit/phpunit": "^4.8|^5.0" + "graham-campbell/analyzer": "^2.0", + "graham-campbell/testbench": "^5.0", + "phpunit/phpunit": "^6.5|^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -302,16 +227,8 @@ ], "authors": [ { - "name": "James Brooks", - "email": "james@alt-three.com" - }, - { - "name": "Graham Campbell", - "email": "graham@alt-three.com" - }, - { - "name": "Joseph Cohen", - "email": "joe@alt-three.com" + "name": "Alt Three", + "email": "support@alt-three.com" } ], "description": "A request rate limiter for Laravel 5.2+", @@ -322,37 +239,43 @@ "rate limiter", "throttle" ], - "time": "2017-01-01T12:37:29+00:00" + "time": "2018-03-03T23:57:15+00:00" }, { "name": "alt-three/twitter", - "version": "v1.0.1", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/AltThree/Twitter.git", - "reference": "2a00a4d416cb97f2ad4e20bb5a31fe02b6a19aab" + "reference": "f661fe5358e1a93329f14f3d87c2bee4b948b5d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AltThree/Twitter/zipball/2a00a4d416cb97f2ad4e20bb5a31fe02b6a19aab", - "reference": "2a00a4d416cb97f2ad4e20bb5a31fe02b6a19aab", + "url": "https://api.github.com/repos/AltThree/Twitter/zipball/f661fe5358e1a93329f14f3d87c2bee4b948b5d7", + "reference": "f661fe5358e1a93329f14f3d87c2bee4b948b5d7", "shasum": "" }, "require": { - "illuminate/contracts": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*", - "league/commonmark": "^0.15", - "php": ">=5.5.9" + "illuminate/contracts": "5.5.*|5.6.*", + "illuminate/support": "5.5.*|5.6.*", + "league/commonmark": "^0.17", + "php": "^7.1.3" }, "require-dev": { - "graham-campbell/markdown": "^7.0", - "graham-campbell/testbench": "^3.1", - "phpunit/phpunit": "^4.8|^5.0" + "graham-campbell/analyzer": "^2.0", + "graham-campbell/markdown": "^10.0", + "graham-campbell/testbench": "^5.0", + "phpunit/phpunit": "^6.5|^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "3.0-dev" + }, + "laravel": { + "providers": [ + "AltThree\\Twitter\\TwitterServiceProvider" + ] } }, "autoload": { @@ -366,16 +289,8 @@ ], "authors": [ { - "name": "James Brooks", - "email": "james@alt-three.com" - }, - { - "name": "Graham Campbell", - "email": "graham@alt-three.com" - }, - { - "name": "Joseph Cohen", - "email": "joe@alt-three.com" + "name": "Alt Three", + "email": "support@alt-three.com" } ], "description": "A Twitter handle parser for Laravel 5", @@ -385,35 +300,36 @@ "parser", "twitter" ], - "time": "2017-06-01T22:25:39+00:00" + "time": "2018-03-03T23:52:23+00:00" }, { "name": "alt-three/validator", - "version": "v2.0.0", + "version": "v4.0.0", "source": { "type": "git", "url": "https://github.com/AltThree/Validator.git", - "reference": "08754a80d86804f0b8df5c06d3354c4534a430ab" + "reference": "ab4b7a6df48b7c2f76024faee8349793c69478d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AltThree/Validator/zipball/08754a80d86804f0b8df5c06d3354c4534a430ab", - "reference": "08754a80d86804f0b8df5c06d3354c4534a430ab", + "url": "https://api.github.com/repos/AltThree/Validator/zipball/ab4b7a6df48b7c2f76024faee8349793c69478d3", + "reference": "ab4b7a6df48b7c2f76024faee8349793c69478d3", "shasum": "" }, "require": { - "illuminate/contracts": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*", - "php": ">=5.5.9", + "illuminate/contracts": "5.5.*|5.6.*", + "illuminate/support": "5.5.*|5.6.*", + "php": "^7.1.3", "psr/log": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^4.8|^5.0" + "graham-campbell/analyzer": "^2.0", + "phpunit/phpunit": "^6.5|^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -427,16 +343,8 @@ ], "authors": [ { - "name": "James Brooks", - "email": "james@alt-three.com" - }, - { - "name": "Graham Campbell", - "email": "graham@alt-three.com" - }, - { - "name": "Joseph Cohen", - "email": "joe@alt-three.com" + "name": "Alt Three", + "email": "support@alt-three.com" } ], "description": "A Validation Wrapper For Laravel 5", @@ -445,20 +353,72 @@ "logging", "validator" ], - "time": "2017-06-01T22:25:25+00:00" + "time": "2018-03-03T23:51:53+00:00" }, { - "name": "aws/aws-sdk-php", - "version": "3.52.26", + "name": "asm89/stack-cors", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "3aefee935e611e1ce959f0288cd160dc81d233a0" + "url": "https://github.com/asm89/stack-cors.git", + "reference": "c163e2b614550aedcf71165db2473d936abbced6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/3aefee935e611e1ce959f0288cd160dc81d233a0", - "reference": "3aefee935e611e1ce959f0288cd160dc81d233a0", + "url": "https://api.github.com/repos/asm89/stack-cors/zipball/c163e2b614550aedcf71165db2473d936abbced6", + "reference": "c163e2b614550aedcf71165db2473d936abbced6", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/http-foundation": "~2.7|~3.0|~4.0", + "symfony/http-kernel": "~2.7|~3.0|~4.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.0 || ^4.8.10", + "squizlabs/php_codesniffer": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "Asm89\\Stack\\": "src/Asm89/Stack/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alexander", + "email": "iam.asm89@gmail.com" + } + ], + "description": "Cross-origin resource sharing library and stack middleware", + "homepage": "https://github.com/asm89/stack-cors", + "keywords": [ + "cors", + "stack" + ], + "time": "2017-12-20T14:37:45+00:00" + }, + { + "name": "aws/aws-sdk-php", + "version": "3.62.5", + "source": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-php.git", + "reference": "75113b0ba22fffd968c45f06ba20fa94509dc973" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/75113b0ba22fffd968c45f06ba20fa94509dc973", + "reference": "75113b0ba22fffd968c45f06ba20fa94509dc973", "shasum": "" }, "require": { @@ -525,136 +485,7 @@ "s3", "sdk" ], - "time": "2018-03-14T20:20:20+00:00" - }, - { - "name": "backup-manager/backup-manager", - "version": "1.2", - "source": { - "type": "git", - "url": "https://github.com/backup-manager/backup-manager.git", - "reference": "4d925b5de2cc8a98d6776f5bf88ec41edd584533" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/backup-manager/backup-manager/zipball/4d925b5de2cc8a98d6776f5bf88ec41edd584533", - "reference": "4d925b5de2cc8a98d6776f5bf88ec41edd584533", - "shasum": "" - }, - "require": { - "league/flysystem": "^1.0", - "php": "^5.5.9 || ^7.0", - "symfony/process": "^2.1 || ^3.0 || ^4.0" - }, - "require-dev": { - "aws/aws-sdk-php": "~3.0", - "dropbox/dropbox-sdk": "~1.1", - "league/flysystem-aws-s3-v3": "~1.0", - "league/flysystem-dropbox": "~1.0", - "league/flysystem-rackspace": "~1.0", - "league/flysystem-sftp": "~1.0", - "mockery/mockery": "~0.9", - "phpspec/phpspec": "~2.1", - "satooshi/php-coveralls": "~0.6", - "srmklive/flysystem-dropbox-v2": "~1.0" - }, - "suggest": { - "league/flysystem-aws-s3-v2": "GoogleCS adapter support.", - "league/flysystem-aws-s3-v3": "AwsS3 adapter support.", - "league/flysystem-rackspace": "Rackspace adapter support.", - "league/flysystem-sftp": "Sftp adapter support.", - "srmklive/flysystem-dropbox-v2": "Dropbox API v2 adapter support." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "BackupManager\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Shawn McCool", - "email": "shawn@heybigname.com", - "homepage": "http://heybigname.com/" - }, - { - "name": "Mitchell van Wijngaarden", - "email": "mitchell@kooding.nl", - "homepage": "http://heybigname.com/" - } - ], - "description": "A framework agnostic database backup manager with user-definable procedures and support for S3, Dropbox, FTP, SFTP, and more with drivers for popular frameworks.", - "time": "2018-01-28T20:31:36+00:00" - }, - { - "name": "backup-manager/laravel", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/backup-manager/laravel.git", - "reference": "df53f9c9d8c6be5d7a2638f45d54b8fb7bc51e2b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/backup-manager/laravel/zipball/df53f9c9d8c6be5d7a2638f45d54b8fb7bc51e2b", - "reference": "df53f9c9d8c6be5d7a2638f45d54b8fb7bc51e2b", - "shasum": "" - }, - "require": { - "backup-manager/backup-manager": "^1.0", - "illuminate/console": "^4.0||^5.0", - "illuminate/container": "^4.0||^5.0", - "illuminate/support": "^4.0||^5.0", - "php": ">=5.5.0", - "symfony/process": "^2.0||^3.0||^4.0" - }, - "require-dev": { - "mockery/mockery": "dev-master", - "satooshi/php-coveralls": "~0.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, - "laravel": { - "providers": [ - "BackupManager\\Laravel\\Laravel55ServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "BackupManager\\Laravel\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Shawn McCool", - "email": "shawn@heybigname.com", - "homepage": "http://heybigname.com/" - }, - { - "name": "Mitchell van Wijngaarden", - "email": "mitchell@kooding.nl", - "homepage": "http://heybigname.com/" - } - ], - "description": "Database backup manager seamlessly integrated with Laravel 4 or 5 with user-definable procedures and support for S3, Dropbox, FTP, SFTP, and more.", - "time": "2017-09-28T05:28:29+00:00" + "time": "2018-06-28T21:12:53+00:00" }, { "name": "bacon/bacon-qr-code", @@ -704,31 +535,39 @@ }, { "name": "barryvdh/laravel-cors", - "version": "v0.8.6", + "version": "v0.11.0", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-cors.git", - "reference": "9bf14c1d5ebe46738e8c535e56e621f98779197d" + "reference": "6ba64a654b4258a3ecc11aba6614c932b3442e30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-cors/zipball/9bf14c1d5ebe46738e8c535e56e621f98779197d", - "reference": "9bf14c1d5ebe46738e8c535e56e621f98779197d", + "url": "https://api.github.com/repos/barryvdh/laravel-cors/zipball/6ba64a654b4258a3ecc11aba6614c932b3442e30", + "reference": "6ba64a654b4258a3ecc11aba6614c932b3442e30", "shasum": "" }, "require": { - "illuminate/support": "5.1.x|5.2.x|5.3.x|5.4.x", + "asm89/stack-cors": "^1.2", + "illuminate/support": "5.3.x|5.4.x|5.5.x|5.6.x", "php": ">=5.5.9", - "symfony/http-foundation": "~2.7|~3.0", - "symfony/http-kernel": "~2.7|~3.0" + "symfony/http-foundation": "^3.1|^4", + "symfony/http-kernel": "^3.1|^4" }, "require-dev": { - "phpunit/phpunit": "^4.8|^5.2" + "orchestra/testbench": "3.x", + "phpunit/phpunit": "^4.8|^5.2", + "squizlabs/php_codesniffer": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.8-dev" + "dev-master": "0.11-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\Cors\\ServiceProvider" + ] } }, "autoload": { @@ -753,7 +592,7 @@ "crossdomain", "laravel" ], - "time": "2017-02-15T21:21:33+00:00" + "time": "2018-01-04T06:59:27+00:00" }, { "name": "christian-riesen/base32", @@ -900,30 +739,30 @@ }, { "name": "doctrine/annotations", - "version": "v1.4.0", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97" + "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", + "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", "shasum": "" }, "require": { "doctrine/lexer": "1.*", - "php": "^5.6 || ^7.0" + "php": "^7.1" }, "require-dev": { "doctrine/cache": "1.*", - "phpunit/phpunit": "^5.7" + "phpunit/phpunit": "^6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.6.x-dev" } }, "autoload": { @@ -964,37 +803,41 @@ "docblock", "parser" ], - "time": "2017-02-24T16:22:25+00:00" + "time": "2017-12-06T07:11:42+00:00" }, { "name": "doctrine/cache", - "version": "v1.6.2", + "version": "v1.7.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b" + "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b", - "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b", + "url": "https://api.github.com/repos/doctrine/cache/zipball/b3217d58609e9c8e661cd41357a54d926c4a2a1a", + "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a", "shasum": "" }, "require": { - "php": "~5.5|~7.0" + "php": "~7.1" }, "conflict": { "doctrine/common": ">2.2,<2.4" }, "require-dev": { - "phpunit/phpunit": "~4.8|~5.0", - "predis/predis": "~1.0", - "satooshi/php-coveralls": "~0.6" + "alcaeus/mongo-php-adapter": "^1.1", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^5.7", + "predis/predis": "~1.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "1.7.x-dev" } }, "autoload": { @@ -1034,24 +877,24 @@ "cache", "caching" ], - "time": "2017-07-22T12:49:21+00:00" + "time": "2017-08-25T07:02:50+00:00" }, { "name": "doctrine/collections", - "version": "v1.4.0", + "version": "v1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba" + "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba", + "url": "https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf", + "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1" }, "require-dev": { "doctrine/coding-standard": "~0.1@dev", @@ -1101,7 +944,7 @@ "collections", "iterator" ], - "time": "2017-01-03T10:49:41+00:00" + "time": "2017-07-22T10:37:32+00:00" }, { "name": "doctrine/common", @@ -1249,33 +1092,33 @@ }, { "name": "doctrine/inflector", - "version": "v1.1.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" + "reference": "5527a48b7313d15261292c149e55e26eae771b0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", - "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a", + "reference": "5527a48b7313d15261292c149e55e26eae771b0a", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "4.*" + "phpunit/phpunit": "^6.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Inflector\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" } }, "notification-url": "https://packagist.org/downloads/", @@ -1312,7 +1155,7 @@ "singularize", "string" ], - "time": "2015-11-06T14:35:42+00:00" + "time": "2018-01-09T20:05:19+00:00" }, { "name": "doctrine/lexer", @@ -1368,6 +1211,112 @@ ], "time": "2014-09-09T13:34:57+00:00" }, + { + "name": "dragonmantank/cron-expression", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "92a2c3768d50e21a1f26a53cb795ce72806266c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/92a2c3768d50e21a1f26a53cb795ce72806266c5", + "reference": "92a2c3768d50e21a1f26a53cb795ce72806266c5", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "time": "2018-06-06T03:12:17+00:00" + }, + { + "name": "egulias/email-validator", + "version": "2.1.4", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "8790f594151ca6a2010c6218e09d96df67173ad3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/8790f594151ca6a2010c6218e09d96df67173ad3", + "reference": "8790f594151ca6a2010c6218e09d96df67173ad3", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.0.1", + "php": ">= 5.5" + }, + "require-dev": { + "dominicsayers/isemail": "dev-master", + "phpunit/phpunit": "^4.8.35||^5.7||^6.0", + "satooshi/php-coveralls": "^1.0.1" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "EmailValidator" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "time": "2018-04-10T10:11:19+00:00" + }, { "name": "erusev/parsedown", "version": "1.7.1", @@ -1416,16 +1365,16 @@ }, { "name": "fideloper/proxy", - "version": "3.3.4", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "9cdf6f118af58d89764249bbcc7bb260c132924f" + "reference": "cf8a0ca4b85659b9557e206c90110a6a4dba980a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/9cdf6f118af58d89764249bbcc7bb260c132924f", - "reference": "9cdf6f118af58d89764249bbcc7bb260c132924f", + "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/cf8a0ca4b85659b9557e206c90110a6a4dba980a", + "reference": "cf8a0ca4b85659b9557e206c90110a6a4dba980a", "shasum": "" }, "require": { @@ -1433,15 +1382,12 @@ "php": ">=5.4.0" }, "require-dev": { - "illuminate/http": "~5.0", - "mockery/mockery": "~0.9.3", - "phpunit/phpunit": "^5.7" + "illuminate/http": "~5.6", + "mockery/mockery": "~1.0", + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.3-dev" - }, "laravel": { "providers": [ "Fideloper\\Proxy\\TrustedProxyServiceProvider" @@ -1469,38 +1415,44 @@ "proxy", "trusted proxy" ], - "time": "2017-06-15T17:19:42+00:00" + "time": "2018-02-07T20:20:57+00:00" }, { "name": "graham-campbell/binput", - "version": "v3.6.0", + "version": "v5.0.0", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Laravel-Binput.git", - "reference": "9b2873184bf77bb6ee478d79d0da21427b70164e" + "reference": "71c9747300c81254e92d57cda6b71c160ab01e91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Binput/zipball/9b2873184bf77bb6ee478d79d0da21427b70164e", - "reference": "9b2873184bf77bb6ee478d79d0da21427b70164e", + "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Binput/zipball/71c9747300c81254e92d57cda6b71c160ab01e91", + "reference": "71c9747300c81254e92d57cda6b71c160ab01e91", "shasum": "" }, "require": { - "graham-campbell/security": "^3.5", - "illuminate/contracts": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/http": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*", - "php": ">=5.5.9" + "graham-campbell/security": "^5.0", + "illuminate/contracts": "5.5.*|5.6.*", + "illuminate/http": "5.5.*|5.6.*", + "illuminate/support": "5.5.*|5.6.*", + "php": "^7.1.3" }, "require-dev": { - "graham-campbell/testbench": "^3.1", - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.8|^5.0" + "graham-campbell/analyzer": "^2.0", + "graham-campbell/testbench": "^5.0", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.5|^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.6-dev" + "dev-master": "5.0-dev" + }, + "laravel": { + "providers": [ + "GrahamCampbell\\Binput\\BinputServiceProvider" + ] } }, "autoload": { @@ -1532,97 +1484,37 @@ "laravel", "security" ], - "time": "2017-01-01T13:34:01+00:00" - }, - { - "name": "graham-campbell/core", - "version": "v5.3.2", - "source": { - "type": "git", - "url": "https://github.com/GrahamCampbell/Laravel-Core.git", - "reference": "27c0c9a0aa294dd06cfd2c6b15080c47f15bbb47" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Core/zipball/27c0c9a0aa294dd06cfd2c6b15080c47f15bbb47", - "reference": "27c0c9a0aa294dd06cfd2c6b15080c47f15bbb47", - "shasum": "" - }, - "require": { - "illuminate/console": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/contracts": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*", - "php": ">=5.5.9" - }, - "require-dev": { - "graham-campbell/testbench": "^3.1", - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.8|^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.3-dev" - } - }, - "autoload": { - "psr-4": { - "GrahamCampbell\\Core\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "graham@alt-three.com" - } - ], - "description": "Core Provides Some Extra Functionality For Laravel 5", - "keywords": [ - "Graham Campbell", - "GrahamCampbell", - "Laravel Core", - "Laravel-Core", - "base", - "core", - "framework", - "laravel", - "starter" - ], - "abandoned": true, - "time": "2017-02-03T22:03:48+00:00" + "time": "2018-03-02T21:17:17+00:00" }, { "name": "graham-campbell/exceptions", - "version": "v9.4.0", + "version": "v11.0.0", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Laravel-Exceptions.git", - "reference": "d5eaa36169ad651b9f3d8f8d2ed218743b89013d" + "reference": "7e38052cddae59e991ce8b3d14dd865768b8e87c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Exceptions/zipball/d5eaa36169ad651b9f3d8f8d2ed218743b89013d", - "reference": "d5eaa36169ad651b9f3d8f8d2ed218743b89013d", + "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Exceptions/zipball/7e38052cddae59e991ce8b3d14dd865768b8e87c", + "reference": "7e38052cddae59e991ce8b3d14dd865768b8e87c", "shasum": "" }, "require": { - "illuminate/contracts": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*", - "paragonie/random_compat": "^1.1|^2.0", - "php": ">=5.5.9", + "illuminate/contracts": "5.5.*|5.6.*", + "illuminate/support": "5.5.*|5.6.*", + "php": "^7.1.3", "psr/log": "^1.0", - "symfony/debug": "^2.7|^3.0", - "symfony/http-foundation": "^2.7|^3.0" + "symfony/console": "^3.3|^4.0", + "symfony/debug": "^3.3|^4.0", + "symfony/http-foundation": "^3.3|^4.0" }, "require-dev": { - "filp/whoops": "^1.1|^2.0", - "graham-campbell/testbench": "^3.1", - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.8|^5.0" + "filp/whoops": "^2.1.4", + "graham-campbell/analyzer": "^2.0", + "graham-campbell/testbench": "^5.0", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.5|^7.0" }, "suggest": { "filp/whoops": "Enables use of the debug displayer." @@ -1630,7 +1522,12 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.4-dev" + "dev-master": "11.0-dev" + }, + "laravel": { + "providers": [ + "GrahamCampbell\\Exceptions\\ExceptionsServiceProvider" + ] } }, "autoload": { @@ -1662,39 +1559,99 @@ "laravel", "whoops" ], - "time": "2017-09-10T16:49:31+00:00" + "time": "2018-03-02T21:20:05+00:00" }, { - "name": "graham-campbell/markdown", - "version": "v7.1.0", + "name": "graham-campbell/guzzle-factory", + "version": "v3.0.0", "source": { "type": "git", - "url": "https://github.com/GrahamCampbell/Laravel-Markdown.git", - "reference": "507783993b40f4b118f201e8a8bec9e908b3ab1d" + "url": "https://github.com/GrahamCampbell/Guzzle-Factory.git", + "reference": "ce3b6e4c6761537e977833e949aa3e4333075a0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Markdown/zipball/507783993b40f4b118f201e8a8bec9e908b3ab1d", - "reference": "507783993b40f4b118f201e8a8bec9e908b3ab1d", + "url": "https://api.github.com/repos/GrahamCampbell/Guzzle-Factory/zipball/ce3b6e4c6761537e977833e949aa3e4333075a0d", + "reference": "ce3b6e4c6761537e977833e949aa3e4333075a0d", "shasum": "" }, "require": { - "illuminate/contracts": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/view": "5.1.*|5.2.*|5.3.*|5.4.*", - "league/commonmark": "^0.15", - "php": ">=5.5.9" + "guzzlehttp/guzzle": "^6.2", + "php": "^7.0" }, "require-dev": { - "graham-campbell/testbench": "^3.1", - "league/commonmark-extras": "^0.1.2", - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.8|^5.0" + "graham-campbell/analyzer": "^2.0", + "phpunit/phpunit": "^6.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.1-dev" + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "GrahamCampbell\\GuzzleFactory\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "graham@alt-three.com" + } + ], + "description": "Provides A Simple Guzzle Factory With Good Defaults", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Guzzle", + "Guzzle Factory", + "Guzzle-Factory", + "http" + ], + "time": "2017-12-27T23:12:00+00:00" + }, + { + "name": "graham-campbell/markdown", + "version": "v10.0.0", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Laravel-Markdown.git", + "reference": "359701e5e3986ba18d1b3d390e898a370b8f00d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Markdown/zipball/359701e5e3986ba18d1b3d390e898a370b8f00d6", + "reference": "359701e5e3986ba18d1b3d390e898a370b8f00d6", + "shasum": "" + }, + "require": { + "illuminate/contracts": "5.5.*|5.6.*", + "illuminate/support": "5.5.*|5.6.*", + "illuminate/view": "5.5.*|5.6.*", + "league/commonmark": "^0.17", + "php": "^7.1.3" + }, + "require-dev": { + "graham-campbell/analyzer": "^2.0", + "graham-campbell/testbench": "^5.0", + "league/commonmark-extras": "^0.1.4", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.5|^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "10.0-dev" + }, + "laravel": { + "providers": [ + "GrahamCampbell\\Markdown\\MarkdownServiceProvider" + ] } }, "autoload": { @@ -1724,35 +1681,41 @@ "laravel", "markdown" ], - "time": "2017-01-01T13:30:44+00:00" + "time": "2018-03-01T21:04:35+00:00" }, { "name": "graham-campbell/security", - "version": "v3.7.0", + "version": "v5.0.0", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Laravel-Security.git", - "reference": "48d92c56581142d776cf2c5a0185a4319c6eb063" + "reference": "c280dcd3ea516f6cbd746cf2db4439c4d338076d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Security/zipball/48d92c56581142d776cf2c5a0185a4319c6eb063", - "reference": "48d92c56581142d776cf2c5a0185a4319c6eb063", + "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Security/zipball/c280dcd3ea516f6cbd746cf2db4439c4d338076d", + "reference": "c280dcd3ea516f6cbd746cf2db4439c4d338076d", "shasum": "" }, "require": { - "illuminate/contracts": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*", - "php": ">=5.5.9" + "illuminate/contracts": "5.5.*|5.6.*", + "illuminate/support": "5.5.*|5.6.*", + "php": "^7.1.3" }, "require-dev": { - "graham-campbell/testbench": "^3.1", - "phpunit/phpunit": "^4.8|^5.0" + "graham-campbell/analyzer": "^2.0", + "graham-campbell/testbench": "^5.0", + "phpunit/phpunit": "^6.5|^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.7-dev" + "dev-master": "5.0-dev" + }, + "laravel": { + "providers": [ + "GrahamCampbell\\Security\\SecurityServiceProvider" + ] } }, "autoload": { @@ -1781,20 +1744,20 @@ "laravel", "security" ], - "time": "2017-01-01T13:20:49+00:00" + "time": "2018-03-02T21:13:51+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "6.3.0", + "version": "6.3.3", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699" + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", "shasum": "" }, "require": { @@ -1804,7 +1767,7 @@ }, "require-dev": { "ext-curl": "*", - "phpunit/phpunit": "^4.0 || ^5.0", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", "psr/log": "^1.0" }, "suggest": { @@ -1813,7 +1776,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "6.2-dev" + "dev-master": "6.3-dev" } }, "autoload": { @@ -1846,7 +1809,7 @@ "rest", "web service" ], - "time": "2017-06-22T18:50:49+00:00" + "time": "2018-04-22T15:46:56+00:00" }, { "name": "guzzlehttp/promises", @@ -1966,16 +1929,16 @@ }, { "name": "intervention/image", - "version": "2.4.1", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "3603dbcc9a17d307533473246a6c58c31cf17919" + "reference": "e82d274f786e3d4b866a59b173f42e716f0783eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/3603dbcc9a17d307533473246a6c58c31cf17919", - "reference": "3603dbcc9a17d307533473246a6c58c31cf17919", + "url": "https://api.github.com/repos/Intervention/image/zipball/e82d274f786e3d4b866a59b173f42e716f0783eb", + "reference": "e82d274f786e3d4b866a59b173f42e716f0783eb", "shasum": "" }, "require": { @@ -1995,7 +1958,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "2.4-dev" }, "laravel": { "providers": [ @@ -2032,7 +1995,7 @@ "thumbnail", "watermark" ], - "time": "2017-09-21T16:29:17+00:00" + "time": "2018-05-29T14:19:03+00:00" }, { "name": "jakub-onderka/php-console-color", @@ -2123,26 +2086,26 @@ }, { "name": "jenssegers/date", - "version": "v3.3.1", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/jenssegers/date.git", - "reference": "eb9ae6b49001a4b8031404aba52e6145a2dda3af" + "reference": "3f5f94f28bd5108fab011869434209101d4189ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jenssegers/date/zipball/eb9ae6b49001a4b8031404aba52e6145a2dda3af", - "reference": "eb9ae6b49001a4b8031404aba52e6145a2dda3af", + "url": "https://api.github.com/repos/jenssegers/date/zipball/3f5f94f28bd5108fab011869434209101d4189ae", + "reference": "3f5f94f28bd5108fab011869434209101d4189ae", "shasum": "" }, "require": { "nesbot/carbon": "^1.0", - "php": ">=5.4", + "php": ">=5.6", "symfony/translation": "^2.7|^3.0|^4.0" }, "require-dev": { - "phpunit/phpunit": "^4.0|^5.0|^6.0", - "satooshi/php-coveralls": "^1.0" + "phpunit/phpunit": "^5.0|^6.0|^7.0", + "satooshi/php-coveralls": "^2.0" }, "type": "library", "extra": { @@ -2184,46 +2147,50 @@ "time", "translation" ], - "time": "2018-03-01T09:51:53+00:00" + "time": "2018-05-16T11:53:55+00:00" }, { "name": "laravel/framework", - "version": "v5.4.36", + "version": "v5.6.26", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "1062a22232071c3e8636487c86ec1ae75681bbf9" + "reference": "7047df295e77cecb6a2f84736a732af66cc6789c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/1062a22232071c3e8636487c86ec1ae75681bbf9", - "reference": "1062a22232071c3e8636487c86ec1ae75681bbf9", + "url": "https://api.github.com/repos/laravel/framework/zipball/7047df295e77cecb6a2f84736a732af66cc6789c", + "reference": "7047df295e77cecb6a2f84736a732af66cc6789c", "shasum": "" }, "require": { "doctrine/inflector": "~1.1", - "erusev/parsedown": "~1.6", + "dragonmantank/cron-expression": "~2.0", + "erusev/parsedown": "~1.7", "ext-mbstring": "*", "ext-openssl": "*", - "league/flysystem": "~1.0", - "monolog/monolog": "~1.11", - "mtdowling/cron-expression": "~1.0", - "nesbot/carbon": "~1.20", - "paragonie/random_compat": "~1.4|~2.0", - "php": ">=5.6.4", - "ramsey/uuid": "~3.0", - "swiftmailer/swiftmailer": "~5.4", - "symfony/console": "~3.2", - "symfony/debug": "~3.2", - "symfony/finder": "~3.2", - "symfony/http-foundation": "~3.2", - "symfony/http-kernel": "~3.2", - "symfony/process": "~3.2", - "symfony/routing": "~3.2", - "symfony/var-dumper": "~3.2", - "tijsverkoyen/css-to-inline-styles": "~2.2", + "league/flysystem": "^1.0.8", + "monolog/monolog": "~1.12", + "nesbot/carbon": "1.25.*", + "php": "^7.1.3", + "psr/container": "~1.0", + "psr/simple-cache": "^1.0", + "ramsey/uuid": "^3.7", + "swiftmailer/swiftmailer": "~6.0", + "symfony/console": "~4.0", + "symfony/debug": "~4.0", + "symfony/finder": "~4.0", + "symfony/http-foundation": "~4.0", + "symfony/http-kernel": "~4.0", + "symfony/process": "~4.0", + "symfony/routing": "~4.0", + "symfony/var-dumper": "~4.0", + "tijsverkoyen/css-to-inline-styles": "^2.2.1", "vlucas/phpdotenv": "~2.2" }, + "conflict": { + "tightenco/collect": "<5.5.33" + }, "replace": { "illuminate/auth": "self.version", "illuminate/broadcasting": "self.version", @@ -2237,7 +2204,6 @@ "illuminate/database": "self.version", "illuminate/encryption": "self.version", "illuminate/events": "self.version", - "illuminate/exception": "self.version", "illuminate/filesystem": "self.version", "illuminate/hashing": "self.version", "illuminate/http": "self.version", @@ -2253,39 +2219,46 @@ "illuminate/support": "self.version", "illuminate/translation": "self.version", "illuminate/validation": "self.version", - "illuminate/view": "self.version", - "tightenco/collect": "self.version" + "illuminate/view": "self.version" }, "require-dev": { "aws/aws-sdk-php": "~3.0", - "doctrine/dbal": "~2.5", - "mockery/mockery": "~0.9.4", + "doctrine/dbal": "~2.6", + "filp/whoops": "^2.1.4", + "league/flysystem-cached-adapter": "~1.0", + "mockery/mockery": "~1.0", + "moontoast/math": "^1.1", + "orchestra/testbench-core": "3.6.*", "pda/pheanstalk": "~3.0", - "phpunit/phpunit": "~5.7", - "predis/predis": "~1.0", - "symfony/css-selector": "~3.2", - "symfony/dom-crawler": "~3.2" + "phpunit/phpunit": "~7.0", + "predis/predis": "^1.1.1", + "symfony/css-selector": "~4.0", + "symfony/dom-crawler": "~4.0" }, "suggest": { "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.6).", + "ext-pcntl": "Required to use all features of the queue worker.", + "ext-posix": "Required to use all features of the queue worker.", "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).", "laravel/tinker": "Required to use the tinker console command (~1.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", + "league/flysystem-cached-adapter": "Required to use the Flysystem cache (~1.0).", "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", + "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (~1.0).", "nexmo/client": "Required to use the Nexmo transport (~1.0).", "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0).", - "symfony/css-selector": "Required to use some of the crawler integration testing tools (~3.2).", - "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~3.2).", - "symfony/psr-http-message-bridge": "Required to psr7 bridging features (0.2.*)." + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0).", + "symfony/css-selector": "Required to use some of the crawler integration testing tools (~4.0).", + "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~4.0).", + "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.4-dev" + "dev-master": "5.6-dev" } }, "autoload": { @@ -2313,20 +2286,20 @@ "framework", "laravel" ], - "time": "2017-08-30T09:26:16+00:00" + "time": "2018-06-20T14:21:11+00:00" }, { "name": "laravel/tinker", - "version": "v1.0.5", + "version": "v1.0.7", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "94f6daf2131508cebd11cd6f8632ba586d7ecc41" + "reference": "e3086ee8cb1f54a39ae8dcb72d1c37d10128997d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/94f6daf2131508cebd11cd6f8632ba586d7ecc41", - "reference": "94f6daf2131508cebd11cd6f8632ba586d7ecc41", + "url": "https://api.github.com/repos/laravel/tinker/zipball/e3086ee8cb1f54a39ae8dcb72d1c37d10128997d", + "reference": "e3086ee8cb1f54a39ae8dcb72d1c37d10128997d", "shasum": "" }, "require": { @@ -2334,7 +2307,7 @@ "illuminate/contracts": "~5.1", "illuminate/support": "~5.1", "php": ">=5.5.9", - "psy/psysh": "0.7.*|0.8.*", + "psy/psysh": "0.7.*|0.8.*|0.9.*", "symfony/var-dumper": "~3.0|~4.0" }, "require-dev": { @@ -2376,7 +2349,7 @@ "laravel", "psysh" ], - "time": "2018-03-06T17:34:36+00:00" + "time": "2018-05-17T13:42:07+00:00" }, { "name": "laravolt/avatar", @@ -2495,34 +2468,34 @@ }, { "name": "league/commonmark", - "version": "0.15.7", + "version": "0.17.5", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "36d82f166e441dfa28643f8d01dd8bdd3a579adf" + "reference": "82d7ab62d7f68391cb9d323f3ccce50be24a5369" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/36d82f166e441dfa28643f8d01dd8bdd3a579adf", - "reference": "36d82f166e441dfa28643f8d01dd8bdd3a579adf", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/82d7ab62d7f68391cb9d323f3ccce50be24a5369", + "reference": "82d7ab62d7f68391cb9d323f3ccce50be24a5369", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=5.4.8" + "php": ">=5.6.5" }, "replace": { "colinodell/commonmark-php": "*" }, "require-dev": { "cebe/markdown": "~1.0", + "commonmark/commonmark.js": "0.28", "erusev/parsedown": "~1.0", - "jgm/commonmark": "0.28", "michelf/php-markdown": "~1.4", - "mikehaertl/php-shellcommand": "~1.2.0", - "phpunit/phpunit": "~4.3|~5.0", - "scrutinizer/ocular": "~1.1", - "symfony/finder": "~2.3|~3.0" + "mikehaertl/php-shellcommand": "^1.2", + "phpunit/phpunit": "^5.7|^6.5", + "scrutinizer/ocular": "^1.1", + "symfony/finder": "^3.0|^4.0" }, "suggest": { "league/commonmark-extras": "Library of useful extensions including smart punctuation" @@ -2533,7 +2506,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.16-dev" + "dev-master": "0.18-dev" } }, "autoload": { @@ -2560,20 +2533,20 @@ "markdown", "parser" ], - "time": "2017-10-26T15:41:07+00:00" + "time": "2018-03-29T14:35:19+00:00" }, { "name": "league/flysystem", - "version": "1.0.43", + "version": "1.0.45", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "1ce7cc142d906ba58dc54c82915d355a9191c8a8" + "reference": "a99f94e63b512d75f851b181afcdf0ee9ebef7e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1ce7cc142d906ba58dc54c82915d355a9191c8a8", - "reference": "1ce7cc142d906ba58dc54c82915d355a9191c8a8", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a99f94e63b512d75f851b181afcdf0ee9ebef7e6", + "reference": "a99f94e63b512d75f851b181afcdf0ee9ebef7e6", "shasum": "" }, "require": { @@ -2644,40 +2617,46 @@ "sftp", "storage" ], - "time": "2018-03-01T10:27:04+00:00" + "time": "2018-05-07T08:44:23+00:00" }, { "name": "mccool/laravel-auto-presenter", - "version": "5.0.0", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/laravel-auto-presenter/laravel-auto-presenter.git", - "reference": "150afe842a973e5c6ad1db9f6878d096d7c5cf1e" + "reference": "79ba1e223c26d7a32b4378b46c79af05d8fbcca7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel-auto-presenter/laravel-auto-presenter/zipball/150afe842a973e5c6ad1db9f6878d096d7c5cf1e", - "reference": "150afe842a973e5c6ad1db9f6878d096d7c5cf1e", + "url": "https://api.github.com/repos/laravel-auto-presenter/laravel-auto-presenter/zipball/79ba1e223c26d7a32b4378b46c79af05d8fbcca7", + "reference": "79ba1e223c26d7a32b4378b46c79af05d8fbcca7", "shasum": "" }, "require": { - "illuminate/container": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/contracts": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/events": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/pagination": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*", - "illuminate/view": "5.1.*|5.2.*|5.3.*|5.4.*", - "php": ">=5.5.9" + "illuminate/container": "5.5.*|5.6.*", + "illuminate/contracts": "5.5.*|5.6.*", + "illuminate/events": "5.5.*|5.6.*", + "illuminate/pagination": "5.5.*|5.6.*", + "illuminate/support": "5.5.*|5.6.*", + "illuminate/view": "5.5.*|5.6.*", + "php": "^7.1.3" }, "require-dev": { - "graham-campbell/testbench": "^3.1", - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.8|^5.0" + "graham-campbell/analyzer": "^2.0", + "graham-campbell/testbench": "^5.0", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.5|^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "7.0-dev" + }, + "laravel": { + "providers": [ + "McCool\\LaravelAutoPresenter\\AutoPresenterServiceProvider" + ] } }, "autoload": { @@ -2706,7 +2685,7 @@ "lpm", "presenter" ], - "time": "2017-01-01T12:52:59+00:00" + "time": "2018-04-22T17:07:24+00:00" }, { "name": "monolog/monolog", @@ -2786,50 +2765,6 @@ ], "time": "2017-06-19T01:22:40+00:00" }, - { - "name": "mtdowling/cron-expression", - "version": "v1.2.1", - "source": { - "type": "git", - "url": "https://github.com/mtdowling/cron-expression.git", - "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/9504fa9ea681b586028adaaa0877db4aecf32bad", - "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Cron\\": "src/Cron/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", - "keywords": [ - "cron", - "schedule" - ], - "time": "2017-01-23T04:29:33+00:00" - }, { "name": "mtdowling/jmespath.php", "version": "2.4.0", @@ -2887,16 +2822,16 @@ }, { "name": "nesbot/carbon", - "version": "1.24.2", + "version": "1.25.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "bba6c6e410c6b4317e37a9474aeaa753808c3875" + "reference": "cbcf13da0b531767e39eb86e9687f5deba9857b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bba6c6e410c6b4317e37a9474aeaa753808c3875", - "reference": "bba6c6e410c6b4317e37a9474aeaa753808c3875", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cbcf13da0b531767e39eb86e9687f5deba9857b4", + "reference": "cbcf13da0b531767e39eb86e9687f5deba9857b4", "shasum": "" }, "require": { @@ -2936,20 +2871,20 @@ "datetime", "time" ], - "time": "2018-03-10T10:10:14+00:00" + "time": "2018-03-19T15:50:49+00:00" }, { "name": "nexmo/client", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/Nexmo/nexmo-php.git", - "reference": "15db8f9a3304d9823c48eff179b994dac6973ca2" + "reference": "b2a5d5fa371e0f4c8ce20e7f1282bb2bbe303703" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nexmo/nexmo-php/zipball/15db8f9a3304d9823c48eff179b994dac6973ca2", - "reference": "15db8f9a3304d9823c48eff179b994dac6973ca2", + "url": "https://api.github.com/repos/Nexmo/nexmo-php/zipball/b2a5d5fa371e0f4c8ce20e7f1282bb2bbe303703", + "reference": "b2a5d5fa371e0f4c8ce20e7f1282bb2bbe303703", "shasum": "" }, "require": { @@ -2984,7 +2919,7 @@ } ], "description": "PHP Client for using Nexmo's API.", - "time": "2018-03-15T11:59:40+00:00" + "time": "2018-06-03T18:00:34+00:00" }, { "name": "nikic/php-parser", @@ -3039,16 +2974,16 @@ }, { "name": "paragonie/random_compat", - "version": "v2.0.11", + "version": "v2.0.15", "source": { "type": "git", "url": "https://github.com/paragonie/random_compat.git", - "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8" + "reference": "10bcb46e8f3d365170f6de9d05245aa066b81f09" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8", - "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/10bcb46e8f3d365170f6de9d05245aa066b81f09", + "reference": "10bcb46e8f3d365170f6de9d05245aa066b81f09", "shasum": "" }, "require": { @@ -3080,10 +3015,11 @@ "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", "keywords": [ "csprng", + "polyfill", "pseudorandom", "random" ], - "time": "2017-09-27T21:40:39+00:00" + "time": "2018-06-08T15:26:40+00:00" }, { "name": "php-http/guzzle6-adapter", @@ -3355,6 +3291,55 @@ ], "time": "2016-06-16T16:22:20+00:00" }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -3453,31 +3438,79 @@ "time": "2016-10-10T12:19:37+00:00" }, { - "name": "psy/psysh", - "version": "v0.8.17", + "name": "psr/simple-cache", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "5069b70e8c4ea492c2b5939b6eddc78bfe41cfec" + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/5069b70e8c4ea492c2b5939b6eddc78bfe41cfec", - "reference": "5069b70e8c4ea492c2b5939b6eddc78bfe41cfec", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "time": "2017-10-23T01:57:42+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.9.6", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "4a2ce86f199d51b6e2524214dc06835e872f4fce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/4a2ce86f199d51b6e2524214dc06835e872f4fce", + "reference": "4a2ce86f199d51b6e2524214dc06835e872f4fce", "shasum": "" }, "require": { "dnoegel/php-xdg-base-dir": "0.1", "jakub-onderka/php-console-highlighter": "0.3.*", - "nikic/php-parser": "~1.3|~2.0|~3.0", - "php": ">=5.3.9", + "nikic/php-parser": "~1.3|~2.0|~3.0|~4.0", + "php": ">=5.4.0", "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0", "symfony/var-dumper": "~2.7|~3.0|~4.0" }, "require-dev": { - "hoa/console": "~3.16|~1.14", - "phpunit/phpunit": "^4.8.35|^5.4.3", - "symfony/finder": "~2.1|~3.0|~4.0" + "bamarni/composer-bin-plugin": "^1.2", + "hoa/console": "~2.15|~3.16", + "phpunit/phpunit": "~4.8.35|~5.0|~6.0|~7.0" }, "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", @@ -3492,15 +3525,15 @@ "type": "library", "extra": { "branch-alias": { - "dev-develop": "0.8.x-dev" + "dev-develop": "0.9.x-dev" } }, "autoload": { "files": [ - "src/Psy/functions.php" + "src/functions.php" ], "psr-4": { - "Psy\\": "src/Psy/" + "Psy\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3522,7 +3555,7 @@ "interactive", "shell" ], - "time": "2017-12-28T16:14:16+00:00" + "time": "2018-06-10T17:57:20+00:00" }, { "name": "ramsey/uuid", @@ -3606,27 +3639,36 @@ }, { "name": "roumen/feed", - "version": "v2.10.5", + "version": "v2.12.1", "source": { "type": "git", "url": "https://github.com/Laravelium/laravel-feed.git", - "reference": "ffbdb58f2ef41c7cb5d3bcd0aec2273e8eabc58b" + "reference": "1fd410a282b489c94ebc6b993f161a9447fda172" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravelium/laravel-feed/zipball/ffbdb58f2ef41c7cb5d3bcd0aec2273e8eabc58b", - "reference": "ffbdb58f2ef41c7cb5d3bcd0aec2273e8eabc58b", + "url": "https://api.github.com/repos/Laravelium/laravel-feed/zipball/1fd410a282b489c94ebc6b993f161a9447fda172", + "reference": "1fd410a282b489c94ebc6b993f161a9447fda172", "shasum": "" }, "require": { - "illuminate/support": "^5.0", - "php": ">=5.5.9" + "illuminate/support": "5.6.*", + "php": ">=7.1.3" }, "require-dev": { - "orchestra/testbench": "^3.0", - "phpunit/phpunit": "^4.8" + "phpunit/phpunit": "~7.0" }, "type": "library", + "extra": { + "laravel": { + "providers": [ + "Roumen\\Feed\\FeedServiceProvider" + ], + "aliases": { + "Feed": "Roumen\\Feed\\Feed" + } + } + }, "autoload": { "psr-0": { "Roumen\\Feed": "src/" @@ -3639,13 +3681,13 @@ "authors": [ { "name": "Roumen Damianoff", - "email": "roumen@crimsson.com", - "homepage": "https://roumen.it", + "email": "roumen@damianoff.com", + "homepage": "https://damianoff.com", "role": "Developer" } ], "description": "A simple feed generator for Laravel.", - "homepage": "https://roumen.it/projects/laravel-feed", + "homepage": "https://laravelium.com", "keywords": [ "atom", "feed", @@ -3653,7 +3695,7 @@ "laravel", "rss" ], - "time": "2017-03-22T17:31:36+00:00" + "time": "2018-02-07T20:50:19+00:00" }, { "name": "simplesoftwareio/simple-qrcode", @@ -3707,30 +3749,200 @@ "time": "2016-01-31T02:09:25+00:00" }, { - "name": "swiftmailer/swiftmailer", - "version": "v5.4.9", + "name": "spatie/db-dumper", + "version": "2.10.0", "source": { "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "7ffc1ea296ed14bf8260b6ef11b80208dbadba91" + "url": "https://github.com/spatie/db-dumper.git", + "reference": "ee745fba17bcf77c916f231a571bbde8dae8e001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/7ffc1ea296ed14bf8260b6ef11b80208dbadba91", - "reference": "7ffc1ea296ed14bf8260b6ef11b80208dbadba91", + "url": "https://api.github.com/repos/spatie/db-dumper/zipball/ee745fba17bcf77c916f231a571bbde8dae8e001", + "reference": "ee745fba17bcf77c916f231a571bbde8dae8e001", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.0", + "symfony/process": "^3.0|^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\DbDumper\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Dump databases", + "homepage": "https://github.com/spatie/db-dumper", + "keywords": [ + "database", + "db-dumper", + "dump", + "mysqldump", + "spatie" + ], + "time": "2018-04-27T15:10:51+00:00" + }, + { + "name": "spatie/laravel-backup", + "version": "5.9.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-backup.git", + "reference": "ad85988480db742937345c8b086346a30959e814" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/ad85988480db742937345c8b086346a30959e814", + "reference": "ad85988480db742937345c8b086346a30959e814", + "shasum": "" + }, + "require": { + "illuminate/console": "~5.5.0|~5.6.0", + "illuminate/contracts": "~5.5.0|~5.6.0", + "illuminate/events": "~5.5.0|~5.6.0", + "illuminate/filesystem": "~5.5.0|~5.6.0", + "illuminate/notifications": "~5.5.0|~5.6.0", + "illuminate/support": "~5.5.0|~5.6.0", + "league/flysystem": "^1.0.27", + "php": "^7.1", + "spatie/db-dumper": "^2.10", + "spatie/temporary-directory": "^1.1", + "symfony/finder": "^3.3|^4.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "~3.5.0|~3.6.0", + "phpunit/phpunit": "^6.5 || ^7.0" + }, + "suggest": { + "guzzlehttp/guzzle": "Allows notifications to be sent via Slack" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\Backup\\BackupServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\Backup\\": "src" + }, + "files": [ + "src/Helpers/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A Laravel 5 package to backup your application", + "homepage": "https://github.com/spatie/laravel-backup", + "keywords": [ + "backup", + "database", + "laravel-backup", + "spatie" + ], + "time": "2018-06-19T21:20:28+00:00" + }, + { + "name": "spatie/temporary-directory", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/spatie/temporary-directory.git", + "reference": "5e1799fa2297363ebfb4df296fea90afbd4ef9b7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/5e1799fa2297363ebfb4df296fea90afbd4ef9b7", + "reference": "5e1799fa2297363ebfb4df296fea90afbd4ef9b7", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\TemporaryDirectory\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alex Vanderbist", + "email": "alex@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily create, use and destroy temporary directories", + "homepage": "https://github.com/spatie/temporary-directory", + "keywords": [ + "spatie", + "temporary-directory" + ], + "time": "2018-04-12T09:34:43+00:00" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v6.0.2", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/412333372fb6c8ffb65496a2bbd7321af75733fc", + "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc", + "shasum": "" + }, + "require": { + "egulias/email-validator": "~2.0", + "php": ">=7.0.0" }, "require-dev": { "mockery/mockery": "~0.9.1", - "symfony/phpunit-bridge": "~3.2" + "symfony/phpunit-bridge": "~3.3@dev" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.4-dev" + "dev-master": "6.0-dev" } }, "autoload": { @@ -3752,31 +3964,30 @@ } ], "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", + "homepage": "http://swiftmailer.symfony.com", "keywords": [ "email", "mail", "mailer" ], - "time": "2018-01-23T07:37:21+00:00" + "time": "2017-09-30T22:39:41+00:00" }, { "name": "symfony/console", - "version": "v3.4.6", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7" + "reference": "70591cda56b4b47c55776ac78e157c4bb6c8b43f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/067339e9b8ec30d5f19f5950208893ff026b94f7", - "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7", + "url": "https://api.github.com/repos/symfony/console/zipball/70591cda56b4b47c55776ac78e157c4bb6c8b43f", + "reference": "70591cda56b4b47c55776ac78e157c4bb6c8b43f", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/debug": "~2.8|~3.0|~4.0", + "php": "^7.1.3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { @@ -3785,14 +3996,14 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.3|~4.0", + "symfony/config": "~3.4|~4.0", "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/event-dispatcher": "~3.4|~4.0", "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.3|~4.0" + "symfony/process": "~3.4|~4.0" }, "suggest": { - "psr/log": "For using the console logger", + "psr/log-implementation": "For using the console logger", "symfony/event-dispatcher": "", "symfony/lock": "", "symfony/process": "" @@ -3800,7 +4011,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -3827,20 +4038,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2018-02-26T15:46:28+00:00" + "time": "2018-05-31T10:17:53+00:00" }, { "name": "symfony/css-selector", - "version": "v3.4.6", + "version": "v3.4.12", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "544655f1fc078a9cd839fdda2b7b1e64627c826a" + "reference": "d2ce52290b648ae33b5301d09bc14ee378612914" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/544655f1fc078a9cd839fdda2b7b1e64627c826a", - "reference": "544655f1fc078a9cd839fdda2b7b1e64627c826a", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/d2ce52290b648ae33b5301d09bc14ee378612914", + "reference": "d2ce52290b648ae33b5301d09bc14ee378612914", "shasum": "" }, "require": { @@ -3880,36 +4091,36 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2018-02-03T14:55:07+00:00" + "time": "2018-05-16T12:49:49+00:00" }, { "name": "symfony/debug", - "version": "v3.4.6", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc" + "reference": "dbe0fad88046a755dcf9379f2964c61a02f5ae3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/9b1071f86e79e1999b3d3675d2e0e7684268b9bc", - "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc", + "url": "https://api.github.com/repos/symfony/debug/zipball/dbe0fad88046a755dcf9379f2964c61a02f5ae3d", + "reference": "dbe0fad88046a755dcf9379f2964c61a02f5ae3d", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "psr/log": "~1.0" }, "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + "symfony/http-kernel": "<3.4" }, "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" + "symfony/http-kernel": "~3.4|~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -3936,34 +4147,34 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2018-02-28T21:49:22+00:00" + "time": "2018-06-08T09:39:36+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.4.6", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "58990682ac3fdc1f563b7e705452921372aad11d" + "reference": "2391ed210a239868e7256eb6921b1bd83f3087b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/58990682ac3fdc1f563b7e705452921372aad11d", - "reference": "58990682ac3fdc1f563b7e705452921372aad11d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2391ed210a239868e7256eb6921b1bd83f3087b5", + "reference": "2391ed210a239868e7256eb6921b1bd83f3087b5", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^7.1.3" }, "conflict": { - "symfony/dependency-injection": "<3.3" + "symfony/dependency-injection": "<3.4" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0" + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0" }, "suggest": { "symfony/dependency-injection": "", @@ -3972,7 +4183,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -3999,29 +4210,29 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2018-02-14T10:03:57+00:00" + "time": "2018-04-06T07:35:57+00:00" }, { "name": "symfony/finder", - "version": "v3.4.6", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "a479817ce0a9e4adfd7d39c6407c95d97c254625" + "reference": "84714b8417d19e4ba02ea78a41a975b3efaafddb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/a479817ce0a9e4adfd7d39c6407c95d97c254625", - "reference": "a479817ce0a9e4adfd7d39c6407c95d97c254625", + "url": "https://api.github.com/repos/symfony/finder/zipball/84714b8417d19e4ba02ea78a41a975b3efaafddb", + "reference": "84714b8417d19e4ba02ea78a41a975b3efaafddb", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -4048,34 +4259,34 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2018-03-05T18:28:11+00:00" + "time": "2018-06-19T21:38:16+00:00" }, { "name": "symfony/http-foundation", - "version": "v3.4.6", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "6f5935723c11b4125fc9927db6ad2feaa196e175" + "reference": "4f9c7cf962e635b0b26b14500ac046e07dbef7f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6f5935723c11b4125fc9927db6ad2feaa196e175", - "reference": "6f5935723c11b4125fc9927db6ad2feaa196e175", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/4f9c7cf962e635b0b26b14500ac046e07dbef7f3", + "reference": "4f9c7cf962e635b0b26b14500ac046e07dbef7f3", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php70": "~1.6" + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { - "symfony/expression-language": "~2.8|~3.0|~4.0" + "predis/predis": "~1.0", + "symfony/expression-language": "~3.4|~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -4102,33 +4313,34 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2018-02-22T10:48:49+00:00" + "time": "2018-06-19T21:38:16+00:00" }, { "name": "symfony/http-kernel", - "version": "v3.4.6", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "a443bbbd93682aa08e623fade4c94edd586ed2de" + "reference": "29c094a1c4f8209b7e033f612cbbd69029e38955" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a443bbbd93682aa08e623fade4c94edd586ed2de", - "reference": "a443bbbd93682aa08e623fade4c94edd586ed2de", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/29c094a1c4f8209b7e033f612cbbd69029e38955", + "reference": "29c094a1c4f8209b7e033f612cbbd69029e38955", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "psr/log": "~1.0", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "^3.4.4|^4.0.4" + "symfony/debug": "~3.4|~4.0", + "symfony/event-dispatcher": "~4.1", + "symfony/http-foundation": "^4.1.1", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4.5|<4.0.5,>=4", - "symfony/var-dumper": "<3.3", + "symfony/config": "<3.4", + "symfony/dependency-injection": "<4.1", + "symfony/var-dumper": "<4.1.1", "twig/twig": "<1.34|<2.4,>=2" }, "provide": { @@ -4136,34 +4348,32 @@ }, "require-dev": { "psr/cache": "~1.0", - "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/console": "~2.8|~3.0|~4.0", - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "^3.4.5|^4.0.5", - "symfony/dom-crawler": "~2.8|~3.0|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/process": "~2.8|~3.0|~4.0", + "symfony/browser-kit": "~3.4|~4.0", + "symfony/config": "~3.4|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/css-selector": "~3.4|~4.0", + "symfony/dependency-injection": "^4.1", + "symfony/dom-crawler": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/translation": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~3.3|~4.0" + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~3.4|~4.0", + "symfony/translation": "~3.4|~4.0", + "symfony/var-dumper": "^4.1.1" }, "suggest": { "symfony/browser-kit": "", "symfony/config": "", "symfony/console": "", "symfony/dependency-injection": "", - "symfony/finder": "", "symfony/var-dumper": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -4190,20 +4400,75 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2018-03-05T19:41:07+00:00" + "time": "2018-06-25T13:06:45+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.7.0", + "name": "symfony/polyfill-ctype", + "version": "v1.8.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae", + "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2018-04-30T19:57:29+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "3296adf6a6454a050679cde90f95350ad604b171" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171", + "reference": "3296adf6a6454a050679cde90f95350ad604b171", "shasum": "" }, "require": { @@ -4215,7 +4480,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "1.8-dev" } }, "autoload": { @@ -4249,41 +4514,37 @@ "portable", "shim" ], - "time": "2018-01-30T19:27:44+00:00" + "time": "2018-04-26T10:06:28+00:00" }, { - "name": "symfony/polyfill-php70", - "version": "v1.7.0", + "name": "symfony/polyfill-php72", + "version": "v1.8.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "3532bfcd8f933a7816f3a0a59682fc404776600f" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "a4576e282d782ad82397f3e4ec1df8e0f0cafb46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3532bfcd8f933a7816f3a0a59682fc404776600f", - "reference": "3532bfcd8f933a7816f3a0a59682fc404776600f", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/a4576e282d782ad82397f3e4ec1df8e0f0cafb46", + "reference": "a4576e282d782ad82397f3e4ec1df8e0f0cafb46", "shasum": "" }, "require": { - "paragonie/random_compat": "~1.0|~2.0", "php": ">=5.3.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "1.8-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php70\\": "" + "Symfony\\Polyfill\\Php72\\": "" }, "files": [ "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4300,7 +4561,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -4308,29 +4569,29 @@ "portable", "shim" ], - "time": "2018-01-30T19:27:44+00:00" + "time": "2018-04-26T10:06:28+00:00" }, { "name": "symfony/process", - "version": "v3.4.6", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "cc4aea21f619116aaf1c58016a944e4821c8e8af" + "reference": "1d1677391ecf00d1c5b9482d6050c0c27aa3ac3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/cc4aea21f619116aaf1c58016a944e4821c8e8af", - "reference": "cc4aea21f619116aaf1c58016a944e4821c8e8af", + "url": "https://api.github.com/repos/symfony/process/zipball/1d1677391ecf00d1c5b9482d6050c0c27aa3ac3a", + "reference": "1d1677391ecf00d1c5b9482d6050c0c27aa3ac3a", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -4357,38 +4618,37 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2018-02-12T17:55:00+00:00" + "time": "2018-05-31T10:17:53+00:00" }, { "name": "symfony/routing", - "version": "v3.4.6", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8773a9d52715f1a579576ce0e60213de34f5ef3e" + "reference": "b38b9797327b26ea2e4146a40e6e2dc9820a6932" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8773a9d52715f1a579576ce0e60213de34f5ef3e", - "reference": "8773a9d52715f1a579576ce0e60213de34f5ef3e", + "url": "https://api.github.com/repos/symfony/routing/zipball/b38b9797327b26ea2e4146a40e6e2dc9820a6932", + "reference": "b38b9797327b26ea2e4146a40e6e2dc9820a6932", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^7.1.3" }, "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.3", + "symfony/config": "<3.4", + "symfony/dependency-injection": "<3.4", "symfony/yaml": "<3.4" }, "require-dev": { "doctrine/annotations": "~1.0", - "doctrine/common": "~2.2", "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/http-foundation": "~3.4|~4.0", "symfony/yaml": "~3.4|~4.0" }, "suggest": { @@ -4402,7 +4662,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -4435,48 +4695,49 @@ "uri", "url" ], - "time": "2018-02-28T21:49:22+00:00" + "time": "2018-06-19T21:38:16+00:00" }, { "name": "symfony/translation", - "version": "v3.4.6", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57" + "reference": "b6d8164085ee0b6debcd1b7a131fd6f63bb04854" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/80e19eaf12cbb546ac40384e5c55c36306823e57", - "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57", + "url": "https://api.github.com/repos/symfony/translation/zipball/b6d8164085ee0b6debcd1b7a131fd6f63bb04854", + "reference": "b6d8164085ee0b6debcd1b7a131fd6f63bb04854", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/config": "<2.8", + "symfony/config": "<3.4", "symfony/dependency-injection": "<3.4", "symfony/yaml": "<3.4" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", + "symfony/config": "~3.4|~4.0", + "symfony/console": "~3.4|~4.0", "symfony/dependency-injection": "~3.4|~4.0", "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/intl": "~3.4|~4.0", "symfony/yaml": "~3.4|~4.0" }, "suggest": { - "psr/log": "To use logging capability in translator", + "psr/log-implementation": "To use logging capability in translator", "symfony/config": "", "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -4503,42 +4764,48 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2018-02-22T06:28:18+00:00" + "time": "2018-06-22T08:59:39+00:00" }, { "name": "symfony/var-dumper", - "version": "v3.4.6", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "80964679d81da3d5618519e0e4be488c3d7ecd7d" + "reference": "b2eebaec085d1f2cafbad7644733d494a3bbbc9b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/80964679d81da3d5618519e0e4be488c3d7ecd7d", - "reference": "80964679d81da3d5618519e0e4be488c3d7ecd7d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b2eebaec085d1f2cafbad7644733d494a3bbbc9b", + "reference": "b2eebaec085d1f2cafbad7644733d494a3bbbc9b", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" }, "require-dev": { "ext-iconv": "*", + "symfony/process": "~3.4|~4.0", "twig/twig": "~1.34|~2.4" }, "suggest": { "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", "ext-intl": "To show region name in time zone dump", - "ext-symfony_debug": "" + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" }, + "bin": [ + "Resources/bin/var-dump-server" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -4572,7 +4839,7 @@ "debug", "dump" ], - "time": "2018-02-22T17:29:24+00:00" + "time": "2018-06-23T12:23:56+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -4623,16 +4890,16 @@ }, { "name": "twig/twig", - "version": "v1.35.2", + "version": "v1.35.3", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "9c24f2cd39dc1906b76879e099970b7e53724601" + "reference": "b48680b6eb7d16b5025b9bfc4108d86f6b8af86f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/9c24f2cd39dc1906b76879e099970b7e53724601", - "reference": "9c24f2cd39dc1906b76879e099970b7e53724601", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/b48680b6eb7d16b5025b9bfc4108d86f6b8af86f", + "reference": "b48680b6eb7d16b5025b9bfc4108d86f6b8af86f", "shasum": "" }, "require": { @@ -4640,8 +4907,8 @@ }, "require-dev": { "psr/container": "^1.0", - "symfony/debug": "~2.7", - "symfony/phpunit-bridge": "~3.3@dev" + "symfony/debug": "^2.7", + "symfony/phpunit-bridge": "^3.3" }, "type": "library", "extra": { @@ -4684,7 +4951,7 @@ "keywords": [ "templating" ], - "time": "2018-03-03T16:21:29+00:00" + "time": "2018-03-20T04:25:58+00:00" }, { "name": "vlucas/phpdotenv", @@ -4738,16 +5005,16 @@ }, { "name": "zendframework/zend-diactoros", - "version": "1.7.1", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/zendframework/zend-diactoros.git", - "reference": "bf26aff803a11c5cc8eb7c4878a702c403ec67f1" + "reference": "11c9c1835e60eef6f9234377a480fcec096ebd9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/bf26aff803a11c5cc8eb7c4878a702c403ec67f1", - "reference": "bf26aff803a11c5cc8eb7c4878a702c403ec67f1", + "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/11c9c1835e60eef6f9234377a480fcec096ebd9e", + "reference": "11c9c1835e60eef6f9234377a480fcec096ebd9e", "shasum": "" }, "require": { @@ -4766,11 +5033,22 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev", - "dev-develop": "1.8.x-dev" + "dev-master": "1.8.x-dev", + "dev-develop": "1.9.x-dev", + "dev-release-2.0": "2.0.x-dev" } }, "autoload": { + "files": [ + "src/functions/create_uploaded_file.php", + "src/functions/marshal_headers_from_sapi.php", + "src/functions/marshal_method_from_sapi.php", + "src/functions/marshal_protocol_version_from_sapi.php", + "src/functions/marshal_uri_from_sapi.php", + "src/functions/normalize_server.php", + "src/functions/normalize_uploaded_files.php", + "src/functions/parse_cookie_header.php" + ], "psr-4": { "Zend\\Diactoros\\": "src/" } @@ -4786,40 +5064,39 @@ "psr", "psr-7" ], - "time": "2018-02-26T15:44:50+00:00" + "time": "2018-06-27T18:52:43+00:00" } ], "packages-dev": [ { "name": "alt-three/testbench", - "version": "v1.11.3", + "version": "v4.0.1", "source": { "type": "git", "url": "https://github.com/AltThree/TestBench.git", - "reference": "41921bae1a2228785fa54dc3b2fa206e484e5f79" + "reference": "38c964dea94cef18c6a8a3bf6f18c2d641ea2cca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AltThree/TestBench/zipball/41921bae1a2228785fa54dc3b2fa206e484e5f79", - "reference": "41921bae1a2228785fa54dc3b2fa206e484e5f79", + "url": "https://api.github.com/repos/AltThree/TestBench/zipball/38c964dea94cef18c6a8a3bf6f18c2d641ea2cca", + "reference": "38c964dea94cef18c6a8a3bf6f18c2d641ea2cca", "shasum": "" }, "require": { - "graham-campbell/testbench-core": "^1.1", - "php": ">=5.5.9" + "graham-campbell/testbench-core": "^3.0", + "php": "^7.0" }, "require-dev": { - "nikic/php-parser": "^2.0|^3.0", - "phpunit/phpunit": "^4.8|^5.0" + "graham-campbell/analyzer": "^2.0", + "phpunit/phpunit": "^6.5|^7.0" }, "suggest": { - "laravel/framework": "Enables the use of every trait.", - "nikic/php-parser": "Enables the use of the static analyzer." + "laravel/framework": "Enables the use of most traits." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4833,16 +5110,8 @@ ], "authors": [ { - "name": "James Brooks", - "email": "james@alt-three.com" - }, - { - "name": "Graham Campbell", - "email": "graham@alt-three.com" - }, - { - "name": "Joseph Cohen", - "email": "joe@alt-three.com" + "name": "Alt Three", + "email": "support@alt-three.com" } ], "description": "Provides Some Testing Traits For Apps", @@ -4851,36 +5120,104 @@ "TestBench", "app" ], - "time": "2017-01-01T12:36:00+00:00" + "time": "2018-04-21T17:21:30+00:00" }, { - "name": "doctrine/instantiator", - "version": "1.0.5", + "name": "barryvdh/laravel-debugbar", + "version": "v3.1.5", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + "url": "https://github.com/barryvdh/laravel-debugbar.git", + "reference": "d3cdca2ad6cc6e67735b4a63e7551c690a497f5f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/d3cdca2ad6cc6e67735b4a63e7551c690a497f5f", + "reference": "d3cdca2ad6cc6e67735b4a63e7551c690a497f5f", "shasum": "" }, "require": { - "php": ">=5.3,<8.0-DEV" + "illuminate/routing": "5.5.x|5.6.x", + "illuminate/session": "5.5.x|5.6.x", + "illuminate/support": "5.5.x|5.6.x", + "maximebf/debugbar": "~1.15.0", + "php": ">=7.0", + "symfony/debug": "^3|^4", + "symfony/finder": "^3|^4" + }, + "require-dev": { + "illuminate/framework": "5.5.x" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\Debugbar\\ServiceProvider" + ], + "aliases": { + "Debugbar": "Barryvdh\\Debugbar\\Facade" + } + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\Debugbar\\": "src/" + }, + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "PHP Debugbar integration for Laravel", + "keywords": [ + "debug", + "debugbar", + "laravel", + "profiler", + "webprofiler" + ], + "time": "2018-05-03T18:27:04+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "shasum": "" + }, + "require": { + "php": "^7.1" }, "require-dev": { "athletic/athletic": "~0.1.8", "ext-pdo": "*", "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" + "phpunit/phpunit": "^6.2.3", + "squizlabs/php_codesniffer": "^3.0.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -4905,20 +5242,20 @@ "constructor", "instantiate" ], - "time": "2015-06-14T21:17:01+00:00" + "time": "2017-07-22T11:58:36+00:00" }, { "name": "filp/whoops", - "version": "2.1.14", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "c6081b8838686aa04f1e83ba7e91f78b7b2a23e6" + "reference": "181c4502d8f34db7aed7bfe88d4f87875b8e947a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/c6081b8838686aa04f1e83ba7e91f78b7b2a23e6", - "reference": "c6081b8838686aa04f1e83ba7e91f78b7b2a23e6", + "url": "https://api.github.com/repos/filp/whoops/zipball/181c4502d8f34db7aed7bfe88d4f87875b8e947a", + "reference": "181c4502d8f34db7aed7bfe88d4f87875b8e947a", "shasum": "" }, "require": { @@ -4926,9 +5263,9 @@ "psr/log": "^1.0.1" }, "require-dev": { - "mockery/mockery": "0.9.*", + "mockery/mockery": "^0.9 || ^1.0", "phpunit/phpunit": "^4.8.35 || ^5.7", - "symfony/var-dumper": "^2.6 || ^3.0" + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0" }, "suggest": { "symfony/var-dumper": "Pretty print complex values better with var-dumper available", @@ -4937,7 +5274,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -4966,7 +5303,7 @@ "throwable", "whoops" ], - "time": "2017-11-23T18:22:44+00:00" + "time": "2018-03-03T17:56:25+00:00" }, { "name": "fzaninotto/faker", @@ -5019,24 +5356,83 @@ "time": "2017-08-15T16:48:10+00:00" }, { - "name": "graham-campbell/testbench-core", - "version": "v1.1.2", + "name": "graham-campbell/analyzer", + "version": "v2.0.1", "source": { "type": "git", - "url": "https://github.com/GrahamCampbell/Laravel-TestBench-Core.git", - "reference": "9dcc8fe7feb891e4c7ffb85d7bc316de9699cf41" + "url": "https://github.com/GrahamCampbell/Analyzer.git", + "reference": "a9b4054282e725eebc09df3c1332e34e8febb101" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Laravel-TestBench-Core/zipball/9dcc8fe7feb891e4c7ffb85d7bc316de9699cf41", - "reference": "9dcc8fe7feb891e4c7ffb85d7bc316de9699cf41", + "url": "https://api.github.com/repos/GrahamCampbell/Analyzer/zipball/a9b4054282e725eebc09df3c1332e34e8febb101", + "reference": "a9b4054282e725eebc09df3c1332e34e8febb101", "shasum": "" }, "require": { - "php": ">=5.5.9" + "nikic/php-parser": "^2.0|^3.0", + "php": "^7.0", + "phpdocumentor/reflection-docblock": "4.2.*", + "phpdocumentor/type-resolver": "0.4.*" }, "require-dev": { - "phpunit/phpunit": "^4.8|^5.0" + "phpunit/phpunit": "^6.5" + }, + "suggest": { + "phpunit/phpunit": "Required to use the analysis trait." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "GrahamCampbell\\Analyzer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "graham@alt-three.com" + } + ], + "description": "Checks if referenced classes really exist.", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "analysis", + "analyzer", + "classes", + "testing" + ], + "time": "2018-01-01T19:57:19+00:00" + }, + { + "name": "graham-campbell/testbench-core", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Laravel-TestBench-Core.git", + "reference": "2f1fcb1871aa490fd46efbfcfd25f715a371e800" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Laravel-TestBench-Core/zipball/2f1fcb1871aa490fd46efbfcfd25f715a371e800", + "reference": "2f1fcb1871aa490fd46efbfcfd25f715a371e800", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "graham-campbell/analyzer": "^2.0", + "phpunit/phpunit": "^6.5" }, "suggest": { "illuminate/support": "Required to use the laravel trait.", @@ -5046,7 +5442,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -5076,24 +5472,24 @@ "testbench-core", "testing" ], - "time": "2017-01-01T13:06:17+00:00" + "time": "2018-01-02T16:16:42+00:00" }, { "name": "hamcrest/hamcrest-php", - "version": "v1.2.2", + "version": "v2.0.0", "source": { "type": "git", "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c" + "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c", - "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad", + "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^5.3|^7.0" }, "replace": { "cordoval/hamcrest-php": "*", @@ -5102,15 +5498,18 @@ }, "require-dev": { "phpunit/php-file-iterator": "1.3.3", - "satooshi/php-coveralls": "dev-master" + "phpunit/phpunit": "~4.0", + "satooshi/php-coveralls": "^1.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, "autoload": { "classmap": [ "hamcrest" - ], - "files": [ - "hamcrest/Hamcrest.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5121,36 +5520,44 @@ "keywords": [ "test" ], - "time": "2015-05-11T14:41:42+00:00" + "time": "2016-01-20T08:20:44+00:00" }, { - "name": "laravel/browser-kit-testing", - "version": "v2.0.0", + "name": "maximebf/debugbar", + "version": "v1.15.0", "source": { "type": "git", - "url": "https://github.com/laravel/browser-kit-testing.git", - "reference": "23f1a7eefcbca0797305b236600aa5426c9528f2" + "url": "https://github.com/maximebf/php-debugbar.git", + "reference": "30e7d60937ee5f1320975ca9bc7bcdd44d500f07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/browser-kit-testing/zipball/23f1a7eefcbca0797305b236600aa5426c9528f2", - "reference": "23f1a7eefcbca0797305b236600aa5426c9528f2", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/30e7d60937ee5f1320975ca9bc7bcdd44d500f07", + "reference": "30e7d60937ee5f1320975ca9bc7bcdd44d500f07", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/css-selector": "~3.1", - "symfony/dom-crawler": "~3.1" + "php": ">=5.3.0", + "psr/log": "^1.0", + "symfony/var-dumper": "^2.6|^3.0|^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0|^5.0" + }, + "suggest": { + "kriswallsmith/assetic": "The best way to manage assets", + "monolog/monolog": "Log using Monolog", + "predis/predis": "Redis storage" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.14-dev" } }, "autoload": { "psr-4": { - "Laravel\\BrowserKitTesting\\": "src/" + "DebugBar\\": "src/DebugBar/" } }, "notification-url": "https://packagist.org/downloads/", @@ -5159,43 +5566,50 @@ ], "authors": [ { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" + "name": "Maxime Bouroumeau-Fuseau", + "email": "maxime.bouroumeau@gmail.com", + "homepage": "http://maximebf.com" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" } ], - "description": "Provides backwards compatibility for BrowserKit testing in Laravel 5.4.", + "description": "Debug bar in the browser for php application", + "homepage": "https://github.com/maximebf/php-debugbar", "keywords": [ - "laravel", - "testing" + "debug", + "debugbar" ], - "time": "2017-05-26T12:46:48+00:00" + "time": "2017-12-15T11:13:46+00:00" }, { "name": "mockery/mockery", - "version": "0.9.9", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "6fdb61243844dc924071d3404bb23994ea0b6856" + "reference": "99e29d3596b16dabe4982548527d5ddf90232e99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/6fdb61243844dc924071d3404bb23994ea0b6856", - "reference": "6fdb61243844dc924071d3404bb23994ea0b6856", + "url": "https://api.github.com/repos/mockery/mockery/zipball/99e29d3596b16dabe4982548527d5ddf90232e99", + "reference": "99e29d3596b16dabe4982548527d5ddf90232e99", "shasum": "" }, "require": { - "hamcrest/hamcrest-php": "~1.1", + "hamcrest/hamcrest-php": "~2.0", "lib-pcre": ">=7.0", - "php": ">=5.3.2" + "php": ">=5.6.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "phpdocumentor/phpdocumentor": "^2.9", + "phpunit/phpunit": "~5.7.10|~6.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.9.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -5219,8 +5633,8 @@ "homepage": "http://davedevelopment.co.uk" } ], - "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", - "homepage": "http://github.com/padraic/mockery", + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", "keywords": [ "BDD", "TDD", @@ -5233,29 +5647,32 @@ "test double", "testing" ], - "time": "2017-02-28T12:52:32+00:00" + "time": "2018-05-08T08:54:48+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.7.0", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" }, "require-dev": { "doctrine/collections": "^1.0", "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" + "phpunit/phpunit": "^7.1" }, "type": "library", "autoload": { @@ -5278,7 +5695,109 @@ "object", "object graph" ], - "time": "2017-10-19T19:58:43+00:00" + "time": "2018-06-11T23:09:50+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^1.0.1", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2017-03-05T18:14:27+00:00" + }, + { + "name": "phar-io/version", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2017-03-05T17:38:23+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -5336,29 +5855,35 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "3.3.2", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2" + "reference": "66465776cfc249844bde6d117abff1d22e06c2da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2", - "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/66465776cfc249844bde6d117abff1d22e06c2da", + "reference": "66465776cfc249844bde6d117abff1d22e06c2da", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", + "php": "^7.0", "phpdocumentor/reflection-common": "^1.0.0", "phpdocumentor/type-resolver": "^0.4.0", "webmozart/assert": "^1.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" + "doctrine/instantiator": "~1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, "autoload": { "psr-4": { "phpDocumentor\\Reflection\\": [ @@ -5377,7 +5902,7 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-11-10T14:09:06+00:00" + "time": "2017-11-27T17:38:31+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -5428,23 +5953,23 @@ }, { "name": "phpspec/prophecy", - "version": "1.7.5", + "version": "1.7.6", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401" + "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712", + "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { @@ -5487,44 +6012,44 @@ "spy", "stub" ], - "time": "2018-02-19T10:16:54+00:00" + "time": "2018-04-18T13:57:24+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "4.0.8", + "version": "6.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" + "reference": "865662550c384bc1db7e51d29aeda1c2c161d69a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", - "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/865662550c384bc1db7e51d29aeda1c2c161d69a", + "reference": "865662550c384bc1db7e51d29aeda1c2c161d69a", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^5.6 || ^7.0", - "phpunit/php-file-iterator": "^1.3", - "phpunit/php-text-template": "^1.2", - "phpunit/php-token-stream": "^1.4.2 || ^2.0", - "sebastian/code-unit-reverse-lookup": "^1.0", - "sebastian/environment": "^1.3.2 || ^2.0", - "sebastian/version": "^1.0 || ^2.0" + "php": "^7.1", + "phpunit/php-file-iterator": "^2.0", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.0", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.1", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" }, "require-dev": { - "ext-xdebug": "^2.1.4", - "phpunit/phpunit": "^5.7" + "phpunit/phpunit": "^7.0" }, "suggest": { - "ext-xdebug": "^2.5.1" + "ext-xdebug": "^2.6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "6.0-dev" } }, "autoload": { @@ -5539,7 +6064,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -5550,29 +6075,29 @@ "testing", "xunit" ], - "time": "2017-04-02T07:44:40+00:00" + "time": "2018-06-01T07:51:50+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "1.4.5", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + "reference": "cecbc684605bb0cc288828eb5d65d93d5c676d3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cecbc684605bb0cc288828eb5d65d93d5c676d3c", + "reference": "cecbc684605bb0cc288828eb5d65d93d5c676d3c", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -5587,7 +6112,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -5597,7 +6122,7 @@ "filesystem", "iterator" ], - "time": "2017-11-27T13:52:08+00:00" + "time": "2018-06-11T11:44:00+00:00" }, { "name": "phpunit/php-text-template", @@ -5642,28 +6167,28 @@ }, { "name": "phpunit/php-timer", - "version": "1.0.9", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b8454ea6958c3dee38453d3bd571e023108c91f", + "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -5678,7 +6203,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -5687,33 +6212,33 @@ "keywords": [ "timer" ], - "time": "2017-02-26T11:10:40+00:00" + "time": "2018-02-01T13:07:23+00:00" }, { "name": "phpunit/php-token-stream", - "version": "1.4.12", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" + "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/21ad88bbba7c3d93530d93994e0a33cd45f02ace", + "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=5.3.3" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -5736,55 +6261,57 @@ "keywords": [ "tokenizer" ], - "time": "2017-12-04T08:55:13+00:00" + "time": "2018-02-01T13:16:43+00:00" }, { "name": "phpunit/phpunit", - "version": "5.7.20", + "version": "7.2.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3cb94a5f8c07a03c8b7527ed7468a2926203f58b" + "reference": "400a3836ee549ae6f665323ac3f21e27eac7155f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3cb94a5f8c07a03c8b7527ed7468a2926203f58b", - "reference": "3cb94a5f8c07a03c8b7527ed7468a2926203f58b", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/400a3836ee549ae6f665323ac3f21e27eac7155f", + "reference": "400a3836ee549ae6f665323ac3f21e27eac7155f", "shasum": "" }, "require": { + "doctrine/instantiator": "^1.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", - "myclabs/deep-copy": "~1.3", - "php": "^5.6 || ^7.0", - "phpspec/prophecy": "^1.6.2", - "phpunit/php-code-coverage": "^4.0.4", - "phpunit/php-file-iterator": "~1.4", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "^3.2", - "sebastian/comparator": "^1.2.4", - "sebastian/diff": "^1.4.3", - "sebastian/environment": "^1.3.4 || ^2.0", - "sebastian/exporter": "~2.0", - "sebastian/global-state": "^1.1", - "sebastian/object-enumerator": "~2.0", - "sebastian/resource-operations": "~1.0", - "sebastian/version": "~1.0.3|~2.0", - "symfony/yaml": "~2.1|~3.0" + "myclabs/deep-copy": "^1.7", + "phar-io/manifest": "^1.0.1", + "phar-io/version": "^1.0", + "php": "^7.1", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^6.0.7", + "phpunit/php-file-iterator": "^2.0.1", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.0", + "sebastian/comparator": "^3.0", + "sebastian/diff": "^3.0", + "sebastian/environment": "^3.1", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^1.0", + "sebastian/version": "^2.0.1" }, "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2" + "phpunit/phpunit-mock-objects": "*" }, "require-dev": { "ext-pdo": "*" }, "suggest": { + "ext-soap": "*", "ext-xdebug": "*", - "phpunit/php-invoker": "~1.1" + "phpunit/php-invoker": "^2.0" }, "bin": [ "phpunit" @@ -5792,7 +6319,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.7.x-dev" + "dev-master": "7.2-dev" } }, "autoload": { @@ -5818,66 +6345,7 @@ "testing", "xunit" ], - "time": "2017-05-22T07:42:55+00:00" - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "3.4.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", - "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.6 || ^7.0", - "phpunit/php-text-template": "^1.2", - "sebastian/exporter": "^1.2 || ^2.0" - }, - "conflict": { - "phpunit/phpunit": "<5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.4" - }, - "suggest": { - "ext-soap": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "time": "2017-06-30T09:13:00+00:00" + "time": "2018-06-21T13:13:39+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -5926,30 +6394,30 @@ }, { "name": "sebastian/comparator", - "version": "1.2.4", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" + "reference": "591a30922f54656695e59b1f39501aec513403da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/591a30922f54656695e59b1f39501aec513403da", + "reference": "591a30922f54656695e59b1f39501aec513403da", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2 || ~2.0" + "php": "^7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -5980,38 +6448,39 @@ } ], "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", + "homepage": "https://github.com/sebastianbergmann/comparator", "keywords": [ "comparator", "compare", "equality" ], - "time": "2017-01-29T09:50:25+00:00" + "time": "2018-06-14T15:05:28+00:00" }, { "name": "sebastian/diff", - "version": "1.4.3", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + "reference": "366541b989927187c4ca70490a35615d3fef2dce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/366541b989927187c4ca70490a35615d3fef2dce", + "reference": "366541b989927187c4ca70490a35615d3fef2dce", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpunit/phpunit": "^7.0", + "symfony/process": "^2 || ^3.3 || ^4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -6036,34 +6505,37 @@ "description": "Diff implementation", "homepage": "https://github.com/sebastianbergmann/diff", "keywords": [ - "diff" + "diff", + "udiff", + "unidiff", + "unified diff" ], - "time": "2017-05-22T07:24:03+00:00" + "time": "2018-06-10T07:54:39+00:00" }, { "name": "sebastian/environment", - "version": "2.0.0", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", - "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^5.0" + "phpunit/phpunit": "^6.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -6088,34 +6560,34 @@ "environment", "hhvm" ], - "time": "2016-11-26T07:53:53+00:00" + "time": "2017-07-01T08:51:00+00:00" }, { "name": "sebastian/exporter", - "version": "2.0.0", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", - "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~2.0" + "php": "^7.0", + "sebastian/recursion-context": "^3.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -6155,27 +6627,27 @@ "export", "exporter" ], - "time": "2016-11-19T08:54:04+00:00" + "time": "2017-04-03T13:19:02+00:00" }, { "name": "sebastian/global-state", - "version": "1.1.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "phpunit/phpunit": "^6.0" }, "suggest": { "ext-uopz": "*" @@ -6183,7 +6655,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -6206,33 +6678,34 @@ "keywords": [ "global state" ], - "time": "2015-10-12T03:26:01+00:00" + "time": "2017-04-27T15:39:26+00:00" }, { "name": "sebastian/object-enumerator", - "version": "2.0.1", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", - "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", "shasum": "" }, "require": { - "php": ">=5.6", - "sebastian/recursion-context": "~2.0" + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "~5" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -6252,32 +6725,77 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-02-18T15:18:39+00:00" + "time": "2017-08-03T12:35:26+00:00" }, { - "name": "sebastian/recursion-context", - "version": "2.0.0", + "name": "sebastian/object-reflector", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", - "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -6305,7 +6823,7 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2016-11-19T07:33:16+00:00" + "time": "2017-03-03T06:23:57+00:00" }, { "name": "sebastian/resource-operations", @@ -6394,20 +6912,21 @@ }, { "name": "symfony/dom-crawler", - "version": "v3.4.6", + "version": "v3.4.12", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "2bb5d3101cc01f4fe580e536daf4f1959bc2d24d" + "reference": "201b210fafcdd193c1e45b2994bf7133fb6263e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2bb5d3101cc01f4fe580e536daf4f1959bc2d24d", - "reference": "2bb5d3101cc01f4fe580e536daf4f1959bc2d24d", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/201b210fafcdd193c1e45b2994bf7133fb6263e8", + "reference": "201b210fafcdd193c1e45b2994bf7133fb6263e8", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { @@ -6446,65 +6965,47 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2018-02-22T10:48:49+00:00" + "time": "2018-05-01T22:53:27+00:00" }, { - "name": "symfony/yaml", - "version": "v3.4.6", + "name": "theseer/tokenizer", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb" + "url": "https://github.com/theseer/tokenizer.git", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/6af42631dcf89e9c616242c900d6c52bd53bd1bb", - "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/console": "<3.4" - }, - "require-dev": { - "symfony/console": "~3.4|~4.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" } ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2018-02-16T09:50:28+00:00" + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2017-04-07T12:08:54+00:00" }, { "name": "tightenco/mailthief", @@ -6602,19 +7103,15 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { - "backup-manager/laravel": 20, "nexmo/client": 10 }, "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=5.6.4", + "php": "^7.1.3", "ext-xml": "*" }, "platform-dev": { "ext-sqlite3": "*" - }, - "platform-overrides": { - "php": "5.6.4" } } diff --git a/config/app.php b/config/app.php index dbbe5132..37c91a6b 100644 --- a/config/app.php +++ b/config/app.php @@ -175,13 +175,10 @@ return [ */ AltThree\Badger\BadgerServiceProvider::class, AltThree\Emoji\EmojiServiceProvider::class, - AltThree\Logger\LoggerServiceProvider::class, AltThree\Twitter\TwitterServiceProvider::class, - BackupManager\Laravel\Laravel5ServiceProvider::class, Barryvdh\Cors\ServiceProvider::class, - Fideloper\Proxy\TrustedProxyServiceProvider::class, + env('APP_DEBUG') ? Barryvdh\Debugbar\ServiceProvider::class : null, GrahamCampbell\Binput\BinputServiceProvider::class, - GrahamCampbell\Core\CoreServiceProvider::class, GrahamCampbell\Exceptions\ExceptionsServiceProvider::class, GrahamCampbell\Markdown\MarkdownServiceProvider::class, GrahamCampbell\Security\SecurityServiceProvider::class, @@ -190,6 +187,7 @@ return [ Laravolt\Avatar\ServiceProvider::class, McCool\LaravelAutoPresenter\AutoPresenterServiceProvider::class, PragmaRX\Google2FA\Vendor\Laravel\ServiceProvider::class, + Spatie\Backup\BackupServiceProvider::class, Roumen\Feed\FeedServiceProvider::class, /* @@ -201,7 +199,6 @@ return [ CachetHQ\Cachet\Foundation\Providers\ConfigServiceProvider::class, CachetHQ\Cachet\Foundation\Providers\EventServiceProvider::class, CachetHQ\Cachet\Foundation\Providers\IntegrationServiceProvider::class, - CachetHQ\Cachet\Foundation\Providers\ModuleServiceProvider::class, CachetHQ\Cachet\Foundation\Providers\RepositoryServiceProvider::class, CachetHQ\Cachet\Foundation\Providers\RouteServiceProvider::class, diff --git a/config/avatar.php b/config/avatar.php new file mode 100644 index 00000000..68590dd6 --- /dev/null +++ b/config/avatar.php @@ -0,0 +1,88 @@ + 'gd', + + // Whether all characters supplied must be replaced with their closest ASCII counterparts + 'ascii' => false, + + // Image shape: circle or square + 'shape' => 'circle', + + // Image width, in pixel + 'width' => 100, + + // Image height, in pixel + 'height' => 100, + + // Number of characters used as initials. If name consists of single word, the first N character will be used + 'chars' => 2, + + // font size + 'fontSize' => 48, + + // convert initial letter in uppercase + 'uppercase' => false, + + // Fonts used to render text. + // If contains more than one fonts, randomly selected based on name supplied + // You can provide absolute path, path relative to folder resources/laravolt/avatar/fonts/, or mixed. + 'fonts' => ['OpenSans-Bold.ttf', 'rockwell.ttf'], + + // List of foreground colors to be used, randomly selected based on name supplied + 'foregrounds' => [ + '#FFFFFF', + ], + + // List of background colors to be used, randomly selected based on name supplied + 'backgrounds' => [ + '#f44336', + '#E91E63', + '#9C27B0', + '#673AB7', + '#3F51B5', + '#2196F3', + '#03A9F4', + '#00BCD4', + '#009688', + '#4CAF50', + '#8BC34A', + '#CDDC39', + '#FFC107', + '#FF9800', + '#FF5722', + ], + + 'border' => [ + 'size' => 1, + + // border color, available value are: + // 'foreground' (same as foreground color) + // 'background' (same as background color) + // or any valid hex ('#aabbcc') + 'color' => 'foreground', + ], + +]; diff --git a/config/backup-manager.php b/config/backup-manager.php deleted file mode 100644 index 40c8539b..00000000 --- a/config/backup-manager.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'type' => 'Local', - 'root' => database_path('backups'), - ], - 's3' => [ - 'type' => 'AwsS3', - 'key' => '', - 'secret' => '', - 'region' => 'us-east-1', - 'bucket' => '', - 'root' => '', - ], - 'gcs' => [ - 'type' => 'Gcs', - 'key' => '', - 'secret' => '', - 'bucket' => '', - 'root' => '', - ], - 'rackspace' => [ - 'type' => 'Rackspace', - 'username' => '', - 'key' => '', - 'container' => '', - 'zone' => '', - 'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/', - 'root' => '', - ], - 'dropbox' => [ - 'type' => 'Dropbox', - 'token' => '', - 'key' => '', - 'secret' => '', - 'app' => '', - 'root' => '', - ], - 'ftp' => [ - 'type' => 'Ftp', - 'host' => '', - 'username' => '', - 'password' => '', - 'port' => 21, - 'passive' => true, - 'ssl' => true, - 'timeout' => 30, - 'root' => '', - ], - 'sftp' => [ - 'type' => 'Sftp', - 'host' => '', - 'username' => '', - 'password' => '', - 'port' => 21, - 'timeout' => 10, - 'privateKey' => '', - 'root' => '', - ], -]; diff --git a/config/backup.php b/config/backup.php new file mode 100644 index 00000000..24c6814a --- /dev/null +++ b/config/backup.php @@ -0,0 +1,196 @@ + [ + + /* + * The name of this application. You can use this name to monitor + * the backups. + */ + 'name' => config('app.name'), + + 'source' => [ + + 'files' => [ + + /* + * The list of directories and files that will be included in the backup. + */ + 'include' => [ + base_path(), + ], + + /* + * These directories and files will be excluded from the backup. + * + * Directories used by the backup process will automatically be excluded. + */ + 'exclude' => [ + base_path('vendor'), + base_path('node_modules'), + ], + + /* + * Determines if symlinks should be followed. + */ + 'followLinks' => false, + ], + + /* + * The names of the connections to the databases that should be backed up + * MySQL, PostgreSQL, SQLite and Mongo databases are supported. + */ + 'databases' => [ + 'mysql', + ], + ], + + /* + * The database dump can be gzipped to decrease diskspace usage. + */ + 'gzip_database_dump' => false, + + 'destination' => [ + + /* + * The filename prefix used for the backup zip file. + */ + 'filename_prefix' => '', + + /* + * The disk names on which the backups will be stored. + */ + 'disks' => [ + 'database', + ], + ], + + /* + * The directory where the temporary files will be stored. + */ + 'temporary_directory' => storage_path('app/backup-temp'), + ], + + /* + * You can get notified when specific events occur. Out of the box you can use 'mail' and 'slack'. + * For Slack you need to install guzzlehttp/guzzle. + * + * You can also use your own notification classes, just make sure the class is named after one of + * the `Spatie\Backup\Events` classes. + */ + 'notifications' => [ + + 'notifications' => [ + \Spatie\Backup\Notifications\Notifications\BackupHasFailed::class => ['mail'], + \Spatie\Backup\Notifications\Notifications\UnhealthyBackupWasFound::class => ['mail'], + \Spatie\Backup\Notifications\Notifications\CleanupHasFailed::class => ['mail'], + \Spatie\Backup\Notifications\Notifications\BackupWasSuccessful::class => ['mail'], + \Spatie\Backup\Notifications\Notifications\HealthyBackupWasFound::class => ['mail'], + \Spatie\Backup\Notifications\Notifications\CleanupWasSuccessful::class => ['mail'], + ], + + /* + * Here you can specify the notifiable to which the notifications should be sent. The default + * notifiable will use the variables specified in this config file. + */ + 'notifiable' => \Spatie\Backup\Notifications\Notifiable::class, + + 'mail' => [ + 'to' => 'your@example.com', + ], + + 'slack' => [ + 'webhook_url' => '', + + /* + * If this is set to null the default channel of the webhook will be used. + */ + 'channel' => null, + + 'username' => null, + + 'icon' => null, + + ], + ], + + /* + * Here you can specify which backups should be monitored. + * If a backup does not meet the specified requirements the + * UnHealthyBackupWasFound event will be fired. + */ + 'monitorBackups' => [ + [ + 'name' => config('app.name'), + 'disks' => ['local'], + 'newestBackupsShouldNotBeOlderThanDays' => 1, + 'storageUsedMayNotBeHigherThanMegabytes' => 5000, + ], + + /* + [ + 'name' => 'name of the second app', + 'disks' => ['local', 's3'], + 'newestBackupsShouldNotBeOlderThanDays' => 1, + 'storageUsedMayNotBeHigherThanMegabytes' => 5000, + ], + */ + ], + + 'cleanup' => [ + /* + * The strategy that will be used to cleanup old backups. The default strategy + * will keep all backups for a certain amount of days. After that period only + * a daily backup will be kept. After that period only weekly backups will + * be kept and so on. + * + * No matter how you configure it the default strategy will never + * delete the newest backup. + */ + 'strategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class, + + 'defaultStrategy' => [ + + /* + * The number of days for which backups must be kept. + */ + 'keepAllBackupsForDays' => 7, + + /* + * The number of days for which daily backups must be kept. + */ + 'keepDailyBackupsForDays' => 16, + + /* + * The number of weeks for which one weekly backup must be kept. + */ + 'keepWeeklyBackupsForWeeks' => 8, + + /* + * The number of months for which one monthly backup must be kept. + */ + 'keepMonthlyBackupsForMonths' => 4, + + /* + * The number of years for which one yearly backup must be kept. + */ + 'keepYearlyBackupsForYears' => 2, + + /* + * After cleaning up the backups remove the oldest backup until + * this amount of megabytes has been reached. + */ + 'deleteOldestBackupsWhenUsingMoreMegabytesThan' => 5000, + ], + ], +]; diff --git a/config/debugbar.php b/config/debugbar.php new file mode 100644 index 00000000..f2591b99 --- /dev/null +++ b/config/debugbar.php @@ -0,0 +1,201 @@ + env('DEBUGBAR_ENABLED', null), + + /* + |-------------------------------------------------------------------------- + | Storage settings + |-------------------------------------------------------------------------- + | + | DebugBar stores data for session/ajax requests. + | You can disable this, so the debugbar stores data in headers/session, + | but this can cause problems with large data collectors. + | By default, file storage (in the storage folder) is used. Redis and PDO + | can also be used. For PDO, run the package migrations first. + | + */ + 'storage' => [ + 'enabled' => true, + 'driver' => 'file', // redis, file, pdo, custom + 'path' => storage_path('debugbar'), // For file driver + 'connection' => null, // Leave null for default connection (Redis/PDO) + 'provider' => '', // Instance of StorageInterface for custom driver + ], + + /* + |-------------------------------------------------------------------------- + | Vendors + |-------------------------------------------------------------------------- + | + | Vendor files are included by default, but can be set to false. + | This can also be set to 'js' or 'css', to only include javascript or css vendor files. + | Vendor files are for css: font-awesome (including fonts) and highlight.js (css files) + | and for js: jquery and and highlight.js + | So if you want syntax highlighting, set it to true. + | jQuery is set to not conflict with existing jQuery scripts. + | + */ + + 'include_vendors' => true, + + /* + |-------------------------------------------------------------------------- + | Capture Ajax Requests + |-------------------------------------------------------------------------- + | + | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors), + | you can use this option to disable sending the data through the headers. + | + | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools. + */ + + 'capture_ajax' => true, + 'add_ajax_timing' => false, + + /* + |-------------------------------------------------------------------------- + | Custom Error Handler for Deprecated warnings + |-------------------------------------------------------------------------- + | + | When enabled, the Debugbar shows deprecated warnings for Symfony components + | in the Messages tab. + | + */ + 'error_handler' => false, + + /* + |-------------------------------------------------------------------------- + | Clockwork integration + |-------------------------------------------------------------------------- + | + | The Debugbar can emulate the Clockwork headers, so you can use the Chrome + | Extension, without the server-side code. It uses Debugbar collectors instead. + | + */ + 'clockwork' => false, + + /* + |-------------------------------------------------------------------------- + | DataCollectors + |-------------------------------------------------------------------------- + | + | Enable/disable DataCollectors + | + */ + + 'collectors' => [ + 'phpinfo' => true, // Php version + 'messages' => true, // Messages + 'time' => true, // Time Datalogger + 'memory' => true, // Memory usage + 'exceptions' => true, // Exception displayer + 'log' => true, // Logs from Monolog (merged in messages if enabled) + 'db' => true, // Show database (PDO) queries and bindings + 'views' => true, // Views with their data + 'route' => true, // Current route information + 'auth' => true, // Display Laravel authentication status + 'gate' => true, // Display Laravel Gate checks + 'session' => true, // Display session data + 'symfony_request' => true, // Only one can be enabled.. + 'mail' => true, // Catch mail messages + 'laravel' => false, // Laravel version and environment + 'events' => false, // All events fired + 'default_request' => false, // Regular or special Symfony request logger + 'logs' => false, // Add the latest log messages + 'files' => false, // Show the included files + 'config' => false, // Display config settings + ], + + /* + |-------------------------------------------------------------------------- + | Extra options + |-------------------------------------------------------------------------- + | + | Configure some DataCollectors + | + */ + + 'options' => [ + 'auth' => [ + 'show_name' => true, // Also show the users name/email in the debugbar + ], + 'db' => [ + 'with_params' => true, // Render SQL with the parameters substituted + 'backtrace' => true, // Use a backtrace to find the origin of the query in your files. + 'timeline' => false, // Add the queries to the timeline + 'explain' => [ // Show EXPLAIN output on queries + 'enabled' => false, + 'types' => ['SELECT'], // ['SELECT', 'INSERT', 'UPDATE', 'DELETE']; for MySQL 5.6.3+ + ], + 'hints' => true, // Show hints for common mistakes + ], + 'mail' => [ + 'full_log' => false, + ], + 'views' => [ + 'data' => false, //Note: Can slow down the application, because the data can be quite large.. + ], + 'route' => [ + 'label' => true, // show complete route on bar + ], + 'logs' => [ + 'file' => null, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Inject Debugbar in Response + |-------------------------------------------------------------------------- + | + | Usually, the debugbar is added just before , by listening to the + | Response after the App is done. If you disable this, you have to add them + | in your template yourself. See http://phpdebugbar.com/docs/rendering.html + | + */ + + 'inject' => true, + + /* + |-------------------------------------------------------------------------- + | DebugBar route prefix + |-------------------------------------------------------------------------- + | + | Sometimes you want to set route prefix to be used by DebugBar to load + | its resources from. Usually the need comes from misconfigured web server or + | from trying to overcome bugs like this: http://trac.nginx.org/nginx/ticket/97 + | + */ + 'route_prefix' => '_debugbar', + + /* + |-------------------------------------------------------------------------- + | DebugBar route domain + |-------------------------------------------------------------------------- + | + | By default DebugBar route served from the same domain that request served. + | To override default domain, specify it as a non-empty value. + */ + 'route_domain' => null, +]; diff --git a/config/filesystems.php b/config/filesystems.php index 42bf6c5a..d63eb16e 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -57,6 +57,11 @@ return [ 'root' => storage_path('app'), ], + 'database' => [ + 'driver' => 'local', + 'root' => database_path('backups'), + ], + 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), diff --git a/config/hashing.php b/config/hashing.php new file mode 100644 index 00000000..30adba29 --- /dev/null +++ b/config/hashing.php @@ -0,0 +1,61 @@ + 'bcrypt', + + /* + |-------------------------------------------------------------------------- + | Bcrypt Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Bcrypt algorithm. This will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'bcrypt' => [ + 'rounds' => env('BCRYPT_ROUNDS', 10), + ], + + /* + |-------------------------------------------------------------------------- + | Argon Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Argon algorithm. These will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'argon' => [ + 'memory' => 1024, + 'threads' => 2, + 'time' => 2, + ], + +]; diff --git a/config/logging.php b/config/logging.php new file mode 100644 index 00000000..872b8d53 --- /dev/null +++ b/config/logging.php @@ -0,0 +1,90 @@ + env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", + | "custom", "stack" + | + */ + + 'channels' => [ + 'stack' => [ + 'driver' => 'stack', + 'channels' => ['single'], + ], + + 'single' => [ + 'driver' => 'single', + 'path' => storage_path('logs/laravel.log'), + 'level' => 'debug', + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/laravel.log'), + 'level' => 'debug', + 'days' => 7, + ], + + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => 'Laravel Log', + 'emoji' => ':boom:', + 'level' => 'critical', + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'handler' => StreamHandler::class, + 'with' => [ + 'stream' => 'php://stderr', + ], + ], + + 'syslog' => [ + 'driver' => 'syslog', + 'level' => 'debug', + ], + + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => 'debug', + ], + ], + +]; diff --git a/config/setting.php b/config/setting.php index 4f58d404..c9615c35 100644 --- a/config/setting.php +++ b/config/setting.php @@ -111,4 +111,16 @@ return [ */ 'only_disrupted_days' => false, + + /* + |-------------------------------------------------------------------------- + | Always authenticate + |-------------------------------------------------------------------------- + | + | Whether to lock down Cachet and only allow viewing pages + | when authenticated. + | + */ + + 'always_authenticate' => false, ]; diff --git a/config/logger.php b/config/tinker.php similarity index 60% rename from config/logger.php rename to config/tinker.php index 3ef3c1ca..c2cecedf 100644 --- a/config/logger.php +++ b/config/tinker.php @@ -13,15 +13,15 @@ return [ /* |-------------------------------------------------------------------------- - | Loggers + | Alias Blacklist |-------------------------------------------------------------------------- | - | Here are each of the loggers to call under the hood while logging. + | Typically, Tinker automatically aliases classes as you require them in + | Tinker. However, you may wish to never alias certain classes, which + | you may accomplish by listing the classes in the following array. | */ - 'loggers' => [ - 'Illuminate\Log\Writer' => ['warning', 'error', 'critical', 'alert', 'emergency'], - ], + 'dont_alias' => [], ]; diff --git a/config/trustedproxy.php b/config/trustedproxy.php deleted file mode 100644 index e1f89a1f..00000000 --- a/config/trustedproxy.php +++ /dev/null @@ -1,81 +0,0 @@ - [ - '103.21.244.0/22', - '103.22.200.0/22', - '103.31.4.0/22', - '104.16.0.0/12', - '108.162.192.0/18', - '131.0.72.0/22', - '141.101.64.0/18', - '162.158.0.0/15', - '172.64.0.0/13', - '173.245.48.0/20', - '188.114.96.0/20', - '190.93.240.0/20', - '197.234.240.0/22', - '198.41.128.0/17', - '199.27.128.0/21', - '2400:cb00::/32', - '2405:8100::/32', - '2405:b500::/32', - '2606:4700::/32', - '2803:f800::/32', - '2c0f:f248::/32', - '2a06:98c0::/29', - - // Local IPs - '10.0.0.0/8', - '172.16.0.0/12', - '192.168.0.0/16', - 'fc00::/7', - ], - - /* - |-------------------------------------------------------------------------- - | Respected Headers - |-------------------------------------------------------------------------- - | - | Change these if the proxy does not send the default header names. Note - | that headers such as X-Forwarded-For are transformed to - | HTTP_X_FORWARDED_FOR format. - | - | By default, we are using the Symfony defaults. - | - */ - - 'headers' => [ - Request::HEADER_CLIENT_IP => 'X_FORWARDED_FOR', - Request::HEADER_CLIENT_HOST => 'X_FORWARDED_HOST', - Request::HEADER_CLIENT_PROTO => 'X_FORWARDED_PROTO', - Request::HEADER_CLIENT_PORT => 'X_FORWARDED_PORT', - ], - -]; diff --git a/crowdin.yaml b/crowdin.yml similarity index 100% rename from crowdin.yaml rename to crowdin.yml diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index 53bed099..914c70aa 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -45,6 +45,7 @@ $factory->define(ComponentGroup::class, function ($faker) { $factory->define(Incident::class, function ($faker) { return [ 'name' => $faker->sentence(), + 'user_id' => factory(User::class)->create()->id, 'message' => $faker->paragraph(), 'status' => mt_rand(1, 4), 'visible' => 1, diff --git a/database/migrations/2017_09_14_180434_AlterIncidentsAddUserId.php b/database/migrations/2017_09_14_180434_AlterIncidentsAddUserId.php new file mode 100644 index 00000000..55e42b6a --- /dev/null +++ b/database/migrations/2017_09_14_180434_AlterIncidentsAddUserId.php @@ -0,0 +1,41 @@ +integer('user_id')->unsigned()->nullable()->default(null)->index()->after('id'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('incidents', function (Blueprint $table) { + $table->dropColumn('user_id'); + }); + } +} diff --git a/database/migrations/2018_04_02_163328_CreateTaggablesTable.php b/database/migrations/2018_04_02_163328_CreateTaggablesTable.php new file mode 100644 index 00000000..7a05ce3e --- /dev/null +++ b/database/migrations/2018_04_02_163328_CreateTaggablesTable.php @@ -0,0 +1,42 @@ +increments('id'); + $table->integer('tag_id')->unsigned()->index(); + $table->morphs('taggable'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('taggables'); + } +} diff --git a/database/migrations/2018_04_02_163658_MigrateComponentTagTable.php b/database/migrations/2018_04_02_163658_MigrateComponentTagTable.php new file mode 100644 index 00000000..0d33597f --- /dev/null +++ b/database/migrations/2018_04_02_163658_MigrateComponentTagTable.php @@ -0,0 +1,57 @@ +get()->each(function ($tag) { + Taggable::create([ + 'tag_id' => $tag->tag_id, + 'taggable_type' => 'components', + 'taggable_id' => $tag->component_id, + ]); + }); + + Schema::dropIfExists('component_tag'); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::create('component_tag', function (Blueprint $table) { + $table->engine = 'InnoDB'; + + $table->increments('id'); + $table->integer('component_id'); + $table->integer('tag_id'); + + $table->index('component_id'); + $table->index('tag_id'); + }); + } +} diff --git a/database/migrations/2018_06_14_201440_AlterSchedulesSoftDeletes.php b/database/migrations/2018_06_14_201440_AlterSchedulesSoftDeletes.php new file mode 100644 index 00000000..fb802aba --- /dev/null +++ b/database/migrations/2018_06_14_201440_AlterSchedulesSoftDeletes.php @@ -0,0 +1,41 @@ +softDeletes(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('schedules', function (Blueprint $table) { + $table->dropSoftDeletes(); + }); + } +} diff --git a/database/migrations/2018_06_17_182507_AlterIncidentsAddNotifications.php b/database/migrations/2018_06_17_182507_AlterIncidentsAddNotifications.php new file mode 100644 index 00000000..28388137 --- /dev/null +++ b/database/migrations/2018_06_17_182507_AlterIncidentsAddNotifications.php @@ -0,0 +1,41 @@ +boolean('notifications')->default(false)->after('stickied'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('incidents', function (Blueprint $table) { + $table->dropColumn('notifications'); + }); + } +} diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..1260e3ff --- /dev/null +++ b/docs/README.md @@ -0,0 +1,3 @@ +# Documentation + +_We're in the process of migrating and updating our current [documentation](https://docs.cachethq.io)._ diff --git a/docs/administration-guide/README.md b/docs/administration-guide/README.md new file mode 100644 index 00000000..aefd5be5 --- /dev/null +++ b/docs/administration-guide/README.md @@ -0,0 +1 @@ +# Administration Guide diff --git a/docs/api/api-authentication.md b/docs/api/api-authentication.md new file mode 100644 index 00000000..d3e02f3e --- /dev/null +++ b/docs/api/api-authentication.md @@ -0,0 +1,55 @@ +# API Authentication + +Authenticating your protected API requests. + +Cachet is built on the belief that your service status is open and transparent, +therefore all `GET` requests are public and require no authentication to access +the information. The following are exempt from this rule: + +- Disabled components will only return in the Component API if you provide a + valid API token. +- The Subscribers API will only work if you provide a valid API token, we + don't want to expose email addresses. + +All other requests require authentication, either with `Basic Auth` or the +preferred `API Token`. + +## Basic Auth + +When making any request to the API which is not a `GET`, you'll need to use +some kind of authentication. The simplest of the authorization methods offered +by Cachet is [BasicAuth][1]. + +> **This is not secure** +> For obvious reasons, sending your authentication details in plain text is not +> secure. We do advise that you add SSL to your Cachet installation for added +> security, but suggest using API tokens. + +To authenticate your requests you only need to provide your email and password. + +``` +$ curl -u username@example.com:password -H "Content-Type: application/json" \ + -d '{"name":"API","description":"An example description","status":1}' \ + http://status.cachethq.io/api/v1/components +``` + +## API Token + +The API Token is generated at installation time for the main user or when a +new team member is added to your status page and can be found on your profile +page (click your profile picture to get there). + +Once you have your token you'll need to add a new request header of +`X-Cachet-Token: TOKEN` + +``` +$ curl -H "Content-Type: application/json;" -H "X-Cachet-Token: YOUR_KEY_HERE" \ + -d '{"name":"API","description":"An example description","status":1}' \ + http://status.cachethq.io/api/v1/components +``` + + + +[1]: http://en.wikipedia.org/wiki/Basic_access_authentication + + diff --git a/docs/api/api-documentation.md b/docs/api/api-documentation.md new file mode 100644 index 00000000..665cf883 --- /dev/null +++ b/docs/api/api-documentation.md @@ -0,0 +1,48 @@ +# API Documentation for Cachet + +## `GET /api/v1/ping` + +Ping the Cachet instance. + +## `GET /api/v1/version` + +Get the version of Cachet installed. + +## `GET /api/v1/status` + +Get the overall system status. + +## `GET /api/v1/components` + +Get all components. + +## `GET /api/v1/components/:id` + +Get a single component. + +### Params + +- `id` the ID of the component + +## `POST /api/v1/components` + +Create a new component. + +### Params + +- `name` the name of the component +- `description` may be left empty +- `status` +- `link` +- `order` +- `group_id` +- `enabled` +- `meta` + +## `DELETE /api/v1/components/:id` + +Delete a component. + +### Params + +- `id` diff --git a/docs/component-statuses.md b/docs/component-statuses.md new file mode 100644 index 00000000..9df7bcc7 --- /dev/null +++ b/docs/component-statuses.md @@ -0,0 +1,15 @@ +# Component Statuses + +Unlike Incidents, Cachet starts listing Component statuses from 1. +When creating or updating a component, you'll need to specify a status for it. + +A status can be one of the following: + +Status|Name|Description +------|----|----------- +1|Operational|The component is working +2|Performance issues|The component is experiencing some slowness. +3|Partial Outage|The component may not be working for everybody. This could be a geographical issue for example. +4|Major outage|The component is not working for anybody. + + diff --git a/docs/faq.md b/docs/faq.md new file mode 100644 index 00000000..422487d4 --- /dev/null +++ b/docs/faq.md @@ -0,0 +1,74 @@ +# Frequently Asked Questions + +## Logging In + +### I can't login to Cachet, can you reset my password? + +We don't have access to your installation, but you are able to reset your password manually: + +Follow the commands below, replacing `:userId` with the ID of your user. The initially created user will be `1`. + +```bash +$ cd /var/www/ # the root of your Cachet installation +$ php artisan tinker +Psy Shell v0.8.8 (PHP 7.1.6 — cli) by Justin Hileman +>>> $user = CachetHQ\Cachet\Models\User::find(:userId); +=> CachetHQ\Cachet\Models\User {#865 + id: 1, + username: "test", + email: "test@test.com", + api_key: "9yMHsdioQosnyVK4iCVR", + active: 1, + level: 1, + created_at: "2015-07-24 13:42:10", + updated_at: "2015-07-28 15:12:55", +} +>>> $user->update(['password' => 'New Password']); +>>> exit +``` + +## Databases + +### Does Cachet support database X? + +Cachet has built-in support for: + +- MySQL/MariaDB +- SQLite +- PostgreSQL +- SQL Server + +### Can Cachet support database X? + +Cachet is built on the [Laravel](https://laravel.com) framework. By default, +Laravel supports the databases listed above but can be extended to support +new drivers, so whilst technically possible, it's not within scope of the +core team to provide support. + +Each new driver requires additional support, testing and maintenance to +retain compatibility with the features we want to build into Cachet in the +future. + +## Support and troubleshooting + +### Do you offer paid support for Cachet? + +We have been experimenting with paid support for Cachet at a limited scale. +Cachet is not a full-time job, so our time is low and we cannot yet +promise that your support request will be dealt with immediately. + +## Cachet usage + +### Why isn't the _Subscribe_ button enabled? + +Cachet checks some informations before displaying the _Subscribe_ button, +because checking the "Enable subscribers" is not enough. +To see the _Subscribe_ button you need to: + +- Check the box "Enable subscribers" in the settings. +- Set the `MAIL_*` option in your `.env` file. + +The second item is important, because if your mail is not well configured you +won't be able to send mails to your subscribers. + +> Note: The MAIL\_NAME **is** mandatory too, it is the sender name. diff --git a/docs/getting-started.md b/docs/getting-started.md new file mode 100644 index 00000000..30786d01 --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1 @@ +# Getting started with Cachet diff --git a/docs/images/setup/enable-subscribers.png b/docs/images/setup/enable-subscribers.png new file mode 100644 index 00000000..c088c39b Binary files /dev/null and b/docs/images/setup/enable-subscribers.png differ diff --git a/docs/images/sponsorships/exascale.jpg b/docs/images/sponsorships/exascale.jpg new file mode 100644 index 00000000..52caa72d Binary files /dev/null and b/docs/images/sponsorships/exascale.jpg differ diff --git a/docs/incidents/index.md b/docs/incidents/index.md new file mode 100644 index 00000000..1e56a310 --- /dev/null +++ b/docs/incidents/index.md @@ -0,0 +1,41 @@ +# Incidents + +An incident is something that should not happen, but that happens anyway. + +## What is exactly an incident + +In your status page you are showing the state of some components. It may be a +server, a database, of whatever you want. +If your database server crashes, it is an incident. + +## Why should I create an incident + +Having a status page is a good thing, being honest with the state of your +components is better. +A status page is not only there to show a green light, it's also there to show +why something bad is happening, and when it will be fixed. + +So, when your component experiences a problem, it's a good practice to create an +incident. + +## How to use the incidents + +When experiencing an incident, it's good to keep being up-to-date with what +happens in the real world. That's why you can use _incident updates_. + +How you manage your incidents is up to you, but if you have no idea you can do +the following: + +1. An incident happens. While a team is working to fix it, a person is creating + an incident. Be clear about what happens. At the same time, set the concerned + component with the right status (_Major Outage_, _Performance issues_ or + other) +2. You identify the origin of the problem, add an _incident update_ to explain + what is the problem, if it's important or not. +3. You think the problem is fixed but are not sure, add an incident update to + explain that. Say it should be fixed, you are watching if everything keeps + being good. +4. If it's not fixed, add an _incident update_ as in the second point because + it's identified bt not fixed. If it's fixed, congratulation! Add an _incident + update_ to explain the details, and say it's definitely fixed. Do not forget + to set the component as _Operational_ again. diff --git a/docs/metrics/create-metric.md b/docs/metrics/create-metric.md new file mode 100644 index 00000000..71224302 --- /dev/null +++ b/docs/metrics/create-metric.md @@ -0,0 +1,54 @@ +# Create a metric + +This documentation will guide you through the metric creation. +You need to know [what is a metric][1]. + +## Filling the form + +Creating a metric is as simple as filling a form. You just need to know what do +the fields mean. + +To access to the metrics creation, follow these steps: + +- Log into your Cachet instance. +- Once on the Dashboard click `Metrics` in the sidebar. +- Click the `Create a metric` button. + +And you are there! You should be able to see the metric form. +Let's explain the fields: + +- `Name`: The name of the metric as it will be shown on the status page. + Example: "API response time". +- `Suffix`: The suffix that will be added in the tooltip when you put your mouse + over the point on the metric. Usually it's the unit of the raw data. Example: + "ms". If you send "42" to the metric, then "42ms" would be show in the + tooltip. +- `Description`: A description of the metric. What is the usage of the metric? + What does it measure? Example: "The average response time of our API". +- `Calculation of metrics`: What computation should be done on your data before + displaying them in the metric? It may be either _Sum_ or _Average_. Example: + _Average_ to compute the average reponse time for a given time. +- `Default view`: The default view of the metric. Viewing the datas of 1 year + ago is not useful, but it's about your preference to see datas of the last + hour, 12 hours, week or month. Example: _Last 12 hours_ because you want to + see the last 12 hours of data by default. It's only the default view, this can + be changed in a select box. +- `Decimal places` The number of decimal of the point that is displayed. If you + are computing the average of something it's almost sure that you'll get an + average with a coma, line 42,424242. Example: 2 to get 42,42 instead of a long + number. +- `How many minutes of threshold between metric points?`: The number of minutes + between the points in the metric. According to your needs it may be 1, 5 or + even 30. It's really up to you. Example: 60 to get one point every hour. +- `Display chart on the status page?`: If checked, this chart will be displayed + on the status page. But it's possible to create the metric and not showing it. +- `Visibility`: Who should be able to see the chart? You have three choices: + - `Visible to authenticated users`: It means that people won't be able to + see it except if they are authenticated. Useful if it's an internal metric. + - `Visible to everybody`: It means that every user, even not authenticated, + will be able to see the chart. + - `Always hidden`: It means that nobody will be able to see the chart. + + + +[1]: index.md diff --git a/docs/metrics/index.md b/docs/metrics/index.md new file mode 100644 index 00000000..247cb6c3 --- /dev/null +++ b/docs/metrics/index.md @@ -0,0 +1,32 @@ +# Metrics + +This guide aims to explain basics about metrics. + +## What are metrics + +When you do monitoring on your services, servers, APIs or others, you can get +raw data. These datas may be a response time to a request, the number of queries +handled in a minute, etc. + +The metrics are these raw datas. Using the [Cachet's API][1] you can send the datas +about what you are monitoring to Cachet. + + +## What can do metrics for you + +Having good metrics to show may be great for customers or partners. + +You have a big webservice that is under pressure? So it's important to have a +short response time. A metric could show to your users that the webservice is +responding fast! +Imagine, you have a metric named "Response time". Every 10 seconds you call your +webservice, and send the response time to the Cachet's API, in the metric. On +your status page you'll be able to see the average response time for a minute +for example. + +Doing so, your users would see that during the last 10 minutes your response +time was worst than previously, and it begins to being better. + + + +[1]: api-documentation.md diff --git a/docs/setup/beacons.md b/docs/setup/beacons.md new file mode 100644 index 00000000..d686a1bd --- /dev/null +++ b/docs/setup/beacons.md @@ -0,0 +1,31 @@ +# Beacons + +> **Version Support** +> +> Beacons will be introduced in v2.4.0 + +Cachet will periodically communicate with our remote server. This is done so +that we're able to gather information about the current version of Cachet +and will later be used for system announcements. + +## Disabling the beacon + +To disable the beacon, you can turn off the following setting in your .env file. + +``` +CACHET_BEACON=false +``` + +## What is reported? + +We report the following information to our server: + +- A unique installation ID +- The current version of Cachet +- A support contact email (the first enabled admin's email) +- Anonymous statistics (the number of users, incidents, components and metrics) + +> **Support Contact Email** +> The contact email is used for the sole purpose of security +> announcements and will never be used for anything else. + diff --git a/docs/setup/configuring-mail.md b/docs/setup/configuring-mail.md new file mode 100644 index 00000000..63d73498 --- /dev/null +++ b/docs/setup/configuring-mail.md @@ -0,0 +1,66 @@ +# Configuring Mail + +Your `.env` file will need to include the following setting keys. + +``` +MAIL_DRIVER=smtp +MAIL_HOST=mailtrap.io +MAIL_PORT=587 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ADDRESS=null +MAIL_NAME=null +MAIL_ENCRYPTION=tls +``` + +After making changes to your mail configuration you'll need to run the +following command within your Cachet installation directory. + +```bash +$ php artisan config:cache + +# If you experience any issues after running this command, run this too: +$ rm -rf bootstrap/cache/* +``` + +## Cachet + Mailgun + +Create an account with [Mailgun][1]. + +MAIL\_USERNAME should be Mailgun domain. +MAIL\_PASSWORD should be Mailgun API Key. + +Edit your `.env` file with the following variables. + +``` +MAIL_DRIVER=mailgun +MAIL_HOST=smtp.mailgun.org +MAIL_PORT=587 +MAIL_USERNAME=alt-three.com +MAIL_PASSWORD=xxxx +MAIL_ADDRESS=support@alt-three.com +MAIL_NAME="Alt Three Services Limited" +MAIL_ENCRYPTION=tls +``` + +The tls encryption setting is required to have e-mails be properly delivered. + +## Cachet + Spark Post + +Create an account with [Spark Post][2]. + +Edit your `.env` file with the following variables. + +``` +MAIL_DRIVER=smtp +MAIL_HOST=smtp.sparkpostmail.com +MAIL_PORT=587 +MAIL_USERNAME=SMTP_Injection +MAIL_PASSWORD=API_TOKEN +MAIL_ADDRESS=support@alt-three.com +MAIL_NAME="Alt Three Services Limited" +MAIL_ENCRYPTION=tls +``` + +[1]: https://mailgun.com/ +[2]: https://www.sparkpost.com/ diff --git a/docs/setup/configuring-queue.md b/docs/setup/configuring-queue.md new file mode 100644 index 00000000..d1bcf766 --- /dev/null +++ b/docs/setup/configuring-queue.md @@ -0,0 +1,72 @@ +# Configuring the queue + +Cachet uses a queue to send Configuring Mail and Beacons without slowing down +the rest of the application. This can be setup in a variety of ways. + +## Supervisor + +The recommended setup for the queue is to use Supervisor. + +Supervisor is a process manager which makes managing a number of +long-running programs a trivial task by providing a consistent interface +through which they can be monitored and controlled. + +## Installations up to Cachet v2.3 + +`cachet.conf` + +``` +[program:cachet-queue] +command=php artisan queue:work --daemon --delay=2 --sleep=1 --tries=3 +directory=/var/www/cachet/ +redirect\_stderr=true +autostart=true +autorestart=true +user=cachet +``` + +## Installations from Cachet v2.4-dev onwards + +`cachet.conf` + +``` +[program:cachet-queue] +command=php artisan queue:work --delay=1 --sleep=1 --timeout=1800 --tries=3 +directory=/var/www/cachet/ +redirect\_stderr=true +autostart=true +autorestart=true +user=cachet +``` + +> **Update to your configuration!** +> Be sure to update the values in the example configuration above to match +> your installation setup. + +## Database Queue with Cron + +The default installation of Cachet sets the queue type to database which means +that all jobs are stored within your database and is then processed by a cron +job which calls an artisan command from within the project directory. + +You'll need to create a new cron job, in Ubuntu it's a case of running +crontab -e and adding this line: + +`* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1` + +Close the file and the cron job will now begin running, processing any +confirmation and incident emails. + +## Synchronous Queue (not recommended for larger installs) + +If you cannot add a queue job, another alternative is to process all of +the jobs immediately after they are created. + +> **Not suitable for larger installations!** +> This setup is not ideal for larger installs with hundreds of subscribers +> as each email can take a few seconds to send and would slow down your +> interaction with the system. + +To set this up change the .env file with the following setting: + +`QUEUE_DRIVER=sync` diff --git a/docs/setup/configuring-subscribers.md b/docs/setup/configuring-subscribers.md new file mode 100644 index 00000000..96802f7e --- /dev/null +++ b/docs/setup/configuring-subscribers.md @@ -0,0 +1,24 @@ +# Configuring Subscribers + +Learn how to setup subscribers. + +One of the most powerful features of Cachet is the ability to automatically +send notification emails to anybody who has subscribed to your status +page whenever an incident is created. + +> **Hold up!** +> Before going any further, ensure that you've [configured +> the mail][1] and the [queue][2]. + +Once you've [Configuring Mail][1], you need to login to your Dashboard and enable +the Allow people to signup to email notifications? setting found in the +Application Setup panel. + +Once you've enabled this setting you'll see a Subscribe button in the footer +of your status page: + +![Enable subscribers][3] + +[1]: configuring-mail.md +[2]: configuring-queue.md +[3]: ../images/enable-subscribers.png diff --git a/docs/setup/cors.md b/docs/setup/cors.md new file mode 100644 index 00000000..03ef5fbd --- /dev/null +++ b/docs/setup/cors.md @@ -0,0 +1,18 @@ +# CORS + +Cross-original resource sharing + +> **External Access** +> By default Cachet can be accessed by any third-party server. + +You may configure your Cachet installation for CORS very easily. To blacklist everybody except one or more domains: + +- Login to your Dashboard +- Go to the Settings panel +- Click on Security +- You'll see a Allowed domains textarea, fill in any domains that you + want to access the API as a comma separated list: + +``` +https://demo.cachethq.io,https://status.cachethq.io +``` diff --git a/docs/setup/installation.md b/docs/setup/installation.md new file mode 100644 index 00000000..2db63b30 --- /dev/null +++ b/docs/setup/installation.md @@ -0,0 +1,184 @@ +# Install Cachet + +This guide will detail how to install Cachet on your server. + +## Download the source code with Git + +> **Check out the latest version!** +> The tags below are examples of what will be shown. +> You should always run git checkout on the latest tag. + +``` +$ cd /var/www # Or wherever you chose to install web applications to +$ git clone https://github.com/CachetHQ/Cachet.git +$ cd Cachet +$ git tag -l + +v2.3.1 +v2.3.10 +v2.3.11 +v2.3.12 +v2.3.13 +v2.3.14 + +git checkout v2.3.14 +``` + +## Editing the configuration file + +By default Cachet comes with a `.env.example` file. You'll need to copy this +file to `.env` regardless of what environment you're working on. + +> On Windows you can use `copy .env.example .env` if you can't do it using the +> explorer. + +It's now just a case of editing this new .env file and setting the values of your setup. + +> **Environment Configuration Notice** +> Any values with spaces in them should be contained within double quotes. + +The `.env` file set environment variables that will be used by the application. + +> **SQLite hosts** +> If you're using SQLite then your .env file should not contain a +> `DB_HOST` key. You'll also need to touch ./database/database.sqlite +> and give it the required permissions. + +## Installing Composer + +Cachet uses dependencies, so it's required to have Composer installed. +Composer can be installed following the [official guide][1] + +## Installing dependencies + +```bash +composer install --no-dev -o +``` + +If you are installing Cachet as a contributor, you can forget the `--no-dev` +option. + +> **Tip for Windows users** +> If you're stuck at the Composer stage, you can run +> `composer install --no-dev -o --no-scripts` +> which usually fixes any issues on Windows servers. + +## Using the install command + +Cachet comes with an installation command that will: + +- Run migrations +- Run seeders (of which there are none) + +```bash +php artisan app:install +``` + +> Never change the `APP_KEY` after installation on production environment. +> This will result in all of your encrypted/hashed data being lost. + +> **Getting a 500 - Internal Server Error?** +> If you get a 500 error when visiting your status page, you may need to +> run `chmod -R 777 storage/` for it to work or `rm -rf bootstrap/cache/*` + +You can also try to give permissions to cache chmod -R 777 bootstrap/ + +## Running Cachet on Apache + +> **Required Apache Modules** +> You need to enable `mod_rewrite` for Apache. On Debian-based systems you can do this by +> +> `sudo a2enmod rewrite` + +Once Cachet is setup, the Apache installation is as simple as creating a +new Virtual Host entry in the httpd-vhosts.conf file. + +``` + + ServerName cachet.dev + # Or whatever you want to use + ServerAlias cachet.dev + # Make this the same as ServerName + DocumentRoot "/var/www/Cachet/public" + + Require all granted + # Used by Apache 2.4 + Options Indexes FollowSymLinks + AllowOverride All + Order allow,deny + Allow from all + + +``` + +Restart Apache by running the following: + +`sudo service apache2 restart` + + +If you also need HTTPS on apache you will need to get the ssl mod installed +and the default ssl conf file enabled. See DigitalOcean's [documentation][2]. + +## Running Cachet on nginx + +- You'll need to install php5-fpm - [DigitalOcean][3] has a nice LEMP installation tutorial +- Generate your SSL key+certificate +- Create a new vhost such as `/etc/nginx/sites-enabled/cachet.conf:` + +``` +# Upstream to abstract backend connection(s) for php +upstream php { + server unix:/tmp/php-cgi.socket; + server 127.0.0.1:9000; +} + +server { + server_name cachet.mycompany.com; # Or whatever you want to use + listen 80 default; + rewrite ^(.*) https://cachet.mycompany.com$1 permanent; +} + +# HTTPS server + +server { + listen 443; + server_name cachet.mycompany.com; + + root /var/vhost/cachet.mycompany.com/public; + index index.php; + + ssl on; + ssl_certificate /etc/ssl/crt/cachet.mycompany.com.crt; # Or wherever your crt is + ssl_certificate_key /etc/ssl/key/cachet.mycompany.com.key; # Or wherever your key is + ssl_session_timeout 5m; + + # Best practice as at March 2014 + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"; + ssl_buffer_size 1400; # 1400 bytes, within MTU - because we generally have small responses. Could increase to 4k, but default 16k is too big + + location / { + add_header Strict-Transport-Security max-age=15768000; + try_files $uri /index.php$is_args$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/var/run/php5-fpm.sock; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_index index.php; + fastcgi_keep_conn on; + add_header Strict-Transport-Security max-age=15768000; + } +} +``` + +Start php5-fpm and nginx and you're done! + + +[1]: https://getcomposer.org/download/ +[2]: https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04 +[3]: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-12-04 + + diff --git a/docs/setup/prerequisites.md b/docs/setup/prerequisites.md new file mode 100644 index 00000000..faf2052a --- /dev/null +++ b/docs/setup/prerequisites.md @@ -0,0 +1,40 @@ +# Prerequisites + +To start using Cachet, you'll need some prerequisites. + +## Application Prerequisites + +You'll need at least the following installed on your server: + +- PHP 5.5.9, you'll also need `ext-gd`, `ext-simplexml`, `mcrypt`, + `ext-xml`, `ext-mbstring` and `ext-tokenizer` installed. +- [Composer][1] +- APCu or Redis for caching. +- A database driver for your DB, such as MySQL, PostgreSQL or SQLite. +- Git + +> **SQLite** +> Whilst we support SQLite, we advise not using it for status pages +> with a high amount of traffic. + +> **MySQL Timezone Info** +> Ensure your MySQL database has been updated with the correct timezone +> information. This will ensure that metrics are shown +> correctly: [https://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html][2] + +## Developer prerequisites + +If you are looking to contribute to Cachet, thank you! Your help is really +appreciated! You may need some extra dependencies; depending on what you're looking for. + +Our CSS is compiled from SCSS, so to compile this you will need the following: + +- Node.js +- NPM +- Bower +- Gulp + + + +[1]: https://getcomposer.org/ +[2]: https://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html diff --git a/docs/third-party-integrations.md b/docs/third-party-integrations.md new file mode 100644 index 00000000..9dd937c4 --- /dev/null +++ b/docs/third-party-integrations.md @@ -0,0 +1,30 @@ +# Third-party Integrations + +Below is a list of known applications or services using the Cachet API. + +Name|Link|Description +----|----|----------- +Cachet Monitor|[https://github.com/castawaylabs/cachet-monitor][1]|For URL monitoring. Automatic incident updates +Sensu Cachet|[https://github.com/bimlendu/sensu-cachethq][2]|Sensu handler for updating Cachet +Hubot Cachet|[https://github.com/willdurand/hubot-cachet][3]|A hubot script to manage incidents/statuses with Cachet +Nagios Notification|[https://github.com/mpellegrin/nagios-eventhandler-cachet][4]|A Nagios event handler to push Nagios notifications to Cachet API +Salt Cachet|[https://github.com/alkivi-sas/salt-cachet][5]|Salt module to use with Cachet +Pingometer|[https://pingometer.com][6]|Website uptime monitoring +Cachet URL Monitor|[https://github.com/mtakaki/cachet-url-monitor][7]/|Monitors an URL using HTTP status code, latency, and/or payload regex +Zabbix-Cachet|[https://github.com/qk4l/zabbix-cachet][8]|Synhronise your Zabbix IT Services and Cachet +CheckItOn.Us|[https://checkiton.us][9]|Server monitoring tool +Cachet-Monitor|[https://github.com/gaz492/cachet-monitor][10]|Monitors URL status via checking status codes, supports all Cloudflare http codes and more. See README for more + + +[1]: https://github.com/castawaylabs/cachet-monitor +[2]: https://github.com/bimlendu/sensu-cachethq +[3]: https://github.com/willdurand/hubot-cachet +[4]: https://github.com/mpellegrin/nagios-eventhandler-cachet +[5]: https://github.com/alkivi-sas/salt-cachet +[6]: https://pingometer.com/ +[7]: https://github.com/mtakaki/cachet-url-monitor/ +[8]: https://github.com/qk4l/zabbix-cachet +[9]: https://checkiton.us/ +[10]: https://github.com/gaz492/cachet-monitor + + diff --git a/package.json b/package.json index 9232c051..902c5d8d 100644 --- a/package.json +++ b/package.json @@ -12,12 +12,12 @@ "devDependencies": { "animate-sass": "^0.8.2", "autosize": "^3.0.20", - "axios": "^0.15.2", + "axios": "^0.18", "bootstrap-sass": "^3.3.6", "chart.js": "^2.7.0", - "cross-env": "^5.0.1", - "eonasdan-bootstrap-datetimepicker": "^4.17.46", + "cross-env": "^5.1", "es5-shim": "^4.5.9", + "flatpickr": "^4.5.0", "github-markdown-css": "^2.3.0", "gulp": "^3.9.1", "ionicons": "~2.0", @@ -25,7 +25,8 @@ "jquery-minicolors": "^2.1.10", "jquery-serializeobject": "^1.0.0", "jquery-sparkline": "^2.4.0", - "laravel-mix": "^1.4", + "laravel-mix": "^2.1", + "laravel-mix-purgecss": "^2.2.0", "livestamp": "git+https://github.com/mattbradley/livestampjs.git#develop", "lodash": "^4.17.4", "messenger": "git+https://github.com/HubSpot/messenger.git", @@ -33,7 +34,8 @@ "promise": "^7.3.1", "sortablejs": "^1.6.1", "sweetalert2": "^6.8.0", - "vue": "^2.4.4" + "vue": "^2.5.16", + "vue-template-compiler": "^2.5.16" }, "private": true } diff --git a/public/dist/css/app.css b/public/dist/css/app.css index b8ab57c6..0d11fd87 100644 --- a/public/dist/css/app.css +++ b/public/dist/css/app.css @@ -9,8 +9,8 @@ Material Design Icons: https://github.com/google/material-design-icons used under CC BY http://creativecommons.org/licenses/by/4.0/ Modified icons to fit ionicon’s grid from original. -*/@font-face{font-family:Ionicons;src:url("../../../fonts/ionicons.eot?v=2.0.1");src:url("../../../fonts/ionicons.eot?v=2.0.1#iefix") format("embedded-opentype"),url("../../../fonts/ionicons.ttf?v=2.0.1") format("truetype"),url("../../../fonts/ionicons.woff?v=2.0.1") format("woff"),url("../../../fonts/ionicons.svg?v=2.0.1#Ionicons") format("svg");font-weight:400;font-style:normal}.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-add-circle:before,.ion-android-add:before,.ion-android-alarm-clock:before,.ion-android-alert:before,.ion-android-apps:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down:before,.ion-android-arrow-dropdown-circle:before,.ion-android-arrow-dropdown:before,.ion-android-arrow-dropleft-circle:before,.ion-android-arrow-dropleft:before,.ion-android-arrow-dropright-circle:before,.ion-android-arrow-dropright:before,.ion-android-arrow-dropup-circle:before,.ion-android-arrow-dropup:before,.ion-android-arrow-forward:before,.ion-android-arrow-up:before,.ion-android-attach:before,.ion-android-bar:before,.ion-android-bicycle:before,.ion-android-boat:before,.ion-android-bookmark:before,.ion-android-bulb:before,.ion-android-bus:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-cancel:before,.ion-android-car:before,.ion-android-cart:before,.ion-android-chat:before,.ion-android-checkbox-blank:before,.ion-android-checkbox-outline-blank:before,.ion-android-checkbox-outline:before,.ion-android-checkbox:before,.ion-android-checkmark-circle:before,.ion-android-clipboard:before,.ion-android-close:before,.ion-android-cloud-circle:before,.ion-android-cloud-done:before,.ion-android-cloud-outline:before,.ion-android-cloud:before,.ion-android-color-palette:before,.ion-android-compass:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-contract:before,.ion-android-create:before,.ion-android-delete:before,.ion-android-desktop:before,.ion-android-document:before,.ion-android-done-all:before,.ion-android-done:before,.ion-android-download:before,.ion-android-drafts:before,.ion-android-exit:before,.ion-android-expand:before,.ion-android-favorite-outline:before,.ion-android-favorite:before,.ion-android-film:before,.ion-android-folder-open:before,.ion-android-folder:before,.ion-android-funnel:before,.ion-android-globe:before,.ion-android-hand:before,.ion-android-hangout:before,.ion-android-happy:before,.ion-android-home:before,.ion-android-image:before,.ion-android-laptop:before,.ion-android-list:before,.ion-android-locate:before,.ion-android-lock:before,.ion-android-mail:before,.ion-android-map:before,.ion-android-menu:before,.ion-android-microphone-off:before,.ion-android-microphone:before,.ion-android-more-horizontal:before,.ion-android-more-vertical:before,.ion-android-navigate:before,.ion-android-notifications-none:before,.ion-android-notifications-off:before,.ion-android-notifications:before,.ion-android-open:before,.ion-android-options:before,.ion-android-people:before,.ion-android-person-add:before,.ion-android-person:before,.ion-android-phone-landscape:before,.ion-android-phone-portrait:before,.ion-android-pin:before,.ion-android-plane:before,.ion-android-playstore:before,.ion-android-print:before,.ion-android-radio-button-off:before,.ion-android-radio-button-on:before,.ion-android-refresh:before,.ion-android-remove-circle:before,.ion-android-remove:before,.ion-android-restaurant:before,.ion-android-sad:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share-alt:before,.ion-android-share:before,.ion-android-star-half:before,.ion-android-star-outline:before,.ion-android-star:before,.ion-android-stopwatch:before,.ion-android-subway:before,.ion-android-sunny:before,.ion-android-sync:before,.ion-android-textsms:before,.ion-android-time:before,.ion-android-train:before,.ion-android-unlock:before,.ion-android-upload:before,.ion-android-volume-down:before,.ion-android-volume-mute:before,.ion-android-volume-off:before,.ion-android-volume-up:before,.ion-android-walk:before,.ion-android-warning:before,.ion-android-watch:before,.ion-android-wifi:before,.ion-aperture:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-asterisk:before,.ion-at:before,.ion-backspace-outline:before,.ion-backspace:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bonfire:before,.ion-bookmark:before,.ion-bowtie:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-cash:before,.ion-chatbox-working:before,.ion-chatbox:before,.ion-chatboxes:before,.ion-chatbubble-working:before,.ion-chatbubble:before,.ion-chatbubbles:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-checkmark:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close-circled:before,.ion-close-round:before,.ion-close:before,.ion-closed-captioning:before,.ion-cloud:before,.ion-code-download:before,.ion-code-working:before,.ion-code:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-crop:before,.ion-cube:before,.ion-disc:before,.ion-document-text:before,.ion-document:before,.ion-drag:before,.ion-earth:before,.ion-easel:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email-unread:before,.ion-email:before,.ion-erlenmeyer-flask-bubbles:before,.ion-erlenmeyer-flask:before,.ion-eye-disabled:before,.ion-eye:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-fireball:before,.ion-flag:before,.ion-flame:before,.ion-flash-off:before,.ion-flash:before,.ion-folder:before,.ion-fork-repo:before,.ion-fork:before,.ion-forward:before,.ion-funnel:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-happy-outline:before,.ion-happy:before,.ion-headphone:before,.ion-heart-broken:before,.ion-heart:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-icecream:before,.ion-image:before,.ion-images:before,.ion-information-circled:before,.ion-information:before,.ion-ionic:before,.ion-ios-alarm-outline:before,.ion-ios-alarm:before,.ion-ios-albums-outline:before,.ion-ios-albums:before,.ion-ios-americanfootball-outline:before,.ion-ios-americanfootball:before,.ion-ios-analytics-outline:before,.ion-ios-analytics:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-left:before,.ion-ios-arrow-right:before,.ion-ios-arrow-thin-down:before,.ion-ios-arrow-thin-left:before,.ion-ios-arrow-thin-right:before,.ion-ios-arrow-thin-up:before,.ion-ios-arrow-up:before,.ion-ios-at-outline:before,.ion-ios-at:before,.ion-ios-barcode-outline:before,.ion-ios-barcode:before,.ion-ios-baseball-outline:before,.ion-ios-baseball:before,.ion-ios-basketball-outline:before,.ion-ios-basketball:before,.ion-ios-bell-outline:before,.ion-ios-bell:before,.ion-ios-body-outline:before,.ion-ios-body:before,.ion-ios-bolt-outline:before,.ion-ios-bolt:before,.ion-ios-book-outline:before,.ion-ios-book:before,.ion-ios-bookmarks-outline:before,.ion-ios-bookmarks:before,.ion-ios-box-outline:before,.ion-ios-box:before,.ion-ios-briefcase-outline:before,.ion-ios-briefcase:before,.ion-ios-browsers-outline:before,.ion-ios-browsers:before,.ion-ios-calculator-outline:before,.ion-ios-calculator:before,.ion-ios-calendar-outline:before,.ion-ios-calendar:before,.ion-ios-camera-outline:before,.ion-ios-camera:before,.ion-ios-cart-outline:before,.ion-ios-cart:before,.ion-ios-chatboxes-outline:before,.ion-ios-chatboxes:before,.ion-ios-chatbubble-outline:before,.ion-ios-chatbubble:before,.ion-ios-checkmark-empty:before,.ion-ios-checkmark-outline:before,.ion-ios-checkmark:before,.ion-ios-circle-filled:before,.ion-ios-circle-outline:before,.ion-ios-clock-outline:before,.ion-ios-clock:before,.ion-ios-close-empty:before,.ion-ios-close-outline:before,.ion-ios-close:before,.ion-ios-cloud-download-outline:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloud:before,.ion-ios-cloudy-night-outline:before,.ion-ios-cloudy-night:before,.ion-ios-cloudy-outline:before,.ion-ios-cloudy:before,.ion-ios-cog-outline:before,.ion-ios-cog:before,.ion-ios-color-filter-outline:before,.ion-ios-color-filter:before,.ion-ios-color-wand-outline:before,.ion-ios-color-wand:before,.ion-ios-compose-outline:before,.ion-ios-compose:before,.ion-ios-contact-outline:before,.ion-ios-contact:before,.ion-ios-copy-outline:before,.ion-ios-copy:before,.ion-ios-crop-strong:before,.ion-ios-crop:before,.ion-ios-download-outline:before,.ion-ios-download:before,.ion-ios-drag:before,.ion-ios-email-outline:before,.ion-ios-email:before,.ion-ios-eye-outline:before,.ion-ios-eye:before,.ion-ios-fastforward-outline:before,.ion-ios-fastforward:before,.ion-ios-filing-outline:before,.ion-ios-filing:before,.ion-ios-film-outline:before,.ion-ios-film:before,.ion-ios-flag-outline:before,.ion-ios-flag:before,.ion-ios-flame-outline:before,.ion-ios-flame:before,.ion-ios-flask-outline:before,.ion-ios-flask:before,.ion-ios-flower-outline:before,.ion-ios-flower:before,.ion-ios-folder-outline:before,.ion-ios-folder:before,.ion-ios-football-outline:before,.ion-ios-football:before,.ion-ios-game-controller-a-outline:before,.ion-ios-game-controller-a:before,.ion-ios-game-controller-b-outline:before,.ion-ios-game-controller-b:before,.ion-ios-gear-outline:before,.ion-ios-gear:before,.ion-ios-glasses-outline:before,.ion-ios-glasses:before,.ion-ios-grid-view-outline:before,.ion-ios-grid-view:before,.ion-ios-heart-outline:before,.ion-ios-heart:before,.ion-ios-help-empty:before,.ion-ios-help-outline:before,.ion-ios-help:before,.ion-ios-home-outline:before,.ion-ios-home:before,.ion-ios-infinite-outline:before,.ion-ios-infinite:before,.ion-ios-information-empty:before,.ion-ios-information-outline:before,.ion-ios-information:before,.ion-ios-ionic-outline:before,.ion-ios-keypad-outline:before,.ion-ios-keypad:before,.ion-ios-lightbulb-outline:before,.ion-ios-lightbulb:before,.ion-ios-list-outline:before,.ion-ios-list:before,.ion-ios-location-outline:before,.ion-ios-location:before,.ion-ios-locked-outline:before,.ion-ios-locked:before,.ion-ios-loop-strong:before,.ion-ios-loop:before,.ion-ios-medical-outline:before,.ion-ios-medical:before,.ion-ios-medkit-outline:before,.ion-ios-medkit:before,.ion-ios-mic-off:before,.ion-ios-mic-outline:before,.ion-ios-mic:before,.ion-ios-minus-empty:before,.ion-ios-minus-outline:before,.ion-ios-minus:before,.ion-ios-monitor-outline:before,.ion-ios-monitor:before,.ion-ios-moon-outline:before,.ion-ios-moon:before,.ion-ios-more-outline:before,.ion-ios-more:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate-outline:before,.ion-ios-navigate:before,.ion-ios-nutrition-outline:before,.ion-ios-nutrition:before,.ion-ios-paper-outline:before,.ion-ios-paper:before,.ion-ios-paperplane-outline:before,.ion-ios-paperplane:before,.ion-ios-partlysunny-outline:before,.ion-ios-partlysunny:before,.ion-ios-pause-outline:before,.ion-ios-pause:before,.ion-ios-paw-outline:before,.ion-ios-paw:before,.ion-ios-people-outline:before,.ion-ios-people:before,.ion-ios-person-outline:before,.ion-ios-person:before,.ion-ios-personadd-outline:before,.ion-ios-personadd:before,.ion-ios-photos-outline:before,.ion-ios-photos:before,.ion-ios-pie-outline:before,.ion-ios-pie:before,.ion-ios-pint-outline:before,.ion-ios-pint:before,.ion-ios-play-outline:before,.ion-ios-play:before,.ion-ios-plus-empty:before,.ion-ios-plus-outline:before,.ion-ios-plus:before,.ion-ios-pricetag-outline:before,.ion-ios-pricetag:before,.ion-ios-pricetags-outline:before,.ion-ios-pricetags:before,.ion-ios-printer-outline:before,.ion-ios-printer:before,.ion-ios-pulse-strong:before,.ion-ios-pulse:before,.ion-ios-rainy-outline:before,.ion-ios-rainy:before,.ion-ios-recording-outline:before,.ion-ios-recording:before,.ion-ios-redo-outline:before,.ion-ios-redo:before,.ion-ios-refresh-empty:before,.ion-ios-refresh-outline:before,.ion-ios-refresh:before,.ion-ios-reload:before,.ion-ios-reverse-camera-outline:before,.ion-ios-reverse-camera:before,.ion-ios-rewind-outline:before,.ion-ios-rewind:before,.ion-ios-rose-outline:before,.ion-ios-rose:before,.ion-ios-search-strong:before,.ion-ios-search:before,.ion-ios-settings-strong:before,.ion-ios-settings:before,.ion-ios-shuffle-strong:before,.ion-ios-shuffle:before,.ion-ios-skipbackward-outline:before,.ion-ios-skipbackward:before,.ion-ios-skipforward-outline:before,.ion-ios-skipforward:before,.ion-ios-snowy:before,.ion-ios-speedometer-outline:before,.ion-ios-speedometer:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-star:before,.ion-ios-stopwatch-outline:before,.ion-ios-stopwatch:before,.ion-ios-sunny-outline:before,.ion-ios-sunny:before,.ion-ios-telephone-outline:before,.ion-ios-telephone:before,.ion-ios-tennisball-outline:before,.ion-ios-tennisball:before,.ion-ios-thunderstorm-outline:before,.ion-ios-thunderstorm:before,.ion-ios-time-outline:before,.ion-ios-time:before,.ion-ios-timer-outline:before,.ion-ios-timer:before,.ion-ios-toggle-outline:before,.ion-ios-toggle:before,.ion-ios-trash-outline:before,.ion-ios-trash:before,.ion-ios-undo-outline:before,.ion-ios-undo:before,.ion-ios-unlocked-outline:before,.ion-ios-unlocked:before,.ion-ios-upload-outline:before,.ion-ios-upload:before,.ion-ios-videocam-outline:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-wineglass-outline:before,.ion-ios-wineglass:before,.ion-ios-world-outline:before,.ion-ios-world:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-location:before,.ion-lock-combination:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-merge:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-minus:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-mouse:before,.ion-music-note:before,.ion-navicon-round:before,.ion-navicon:before,.ion-navigate:before,.ion-network:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-outlet:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person-add:before,.ion-person-stalker:before,.ion-person:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-planet:before,.ion-play:before,.ion-playstation:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-plus:before,.ion-podium:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-pull-request:before,.ion-qr-scanner:before,.ion-quote:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-reply-all:before,.ion-reply:before,.ion-ribbon-a:before,.ion-ribbon-b:before,.ion-sad-outline:before,.ion-sad:before,.ion-scissors:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android-outline:before,.ion-social-android:before,.ion-social-angular-outline:before,.ion-social-angular:before,.ion-social-apple-outline:before,.ion-social-apple:before,.ion-social-bitcoin-outline:before,.ion-social-bitcoin:before,.ion-social-buffer-outline:before,.ion-social-buffer:before,.ion-social-chrome-outline:before,.ion-social-chrome:before,.ion-social-codepen-outline:before,.ion-social-codepen:before,.ion-social-css3-outline:before,.ion-social-css3:before,.ion-social-designernews-outline:before,.ion-social-designernews:before,.ion-social-dribbble-outline:before,.ion-social-dribbble:before,.ion-social-dropbox-outline:before,.ion-social-dropbox:before,.ion-social-euro-outline:before,.ion-social-euro:before,.ion-social-facebook-outline:before,.ion-social-facebook:before,.ion-social-foursquare-outline:before,.ion-social-foursquare:before,.ion-social-freebsd-devil:before,.ion-social-github-outline:before,.ion-social-github:before,.ion-social-google-outline:before,.ion-social-google:before,.ion-social-googleplus-outline:before,.ion-social-googleplus:before,.ion-social-hackernews-outline:before,.ion-social-hackernews:before,.ion-social-html5-outline:before,.ion-social-html5:before,.ion-social-instagram-outline:before,.ion-social-instagram:before,.ion-social-javascript-outline:before,.ion-social-javascript:before,.ion-social-linkedin-outline:before,.ion-social-linkedin:before,.ion-social-markdown:before,.ion-social-nodejs:before,.ion-social-octocat:before,.ion-social-pinterest-outline:before,.ion-social-pinterest:before,.ion-social-python:before,.ion-social-reddit-outline:before,.ion-social-reddit:before,.ion-social-rss-outline:before,.ion-social-rss:before,.ion-social-sass:before,.ion-social-skype-outline:before,.ion-social-skype:before,.ion-social-snapchat-outline:before,.ion-social-snapchat:before,.ion-social-tumblr-outline:before,.ion-social-tumblr:before,.ion-social-tux:before,.ion-social-twitch-outline:before,.ion-social-twitch:before,.ion-social-twitter-outline:before,.ion-social-twitter:before,.ion-social-usd-outline:before,.ion-social-usd:before,.ion-social-vimeo-outline:before,.ion-social-vimeo:before,.ion-social-whatsapp-outline:before,.ion-social-whatsapp:before,.ion-social-windows-outline:before,.ion-social-windows:before,.ion-social-wordpress-outline:before,.ion-social-wordpress:before,.ion-social-yahoo-outline:before,.ion-social-yahoo:before,.ion-social-yen-outline:before,.ion-social-yen:before,.ion-social-youtube-outline:before,.ion-social-youtube:before,.ion-soup-can-outline:before,.ion-soup-can:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-toggle-filled:before,.ion-toggle:before,.ion-transgender:before,.ion-trash-a:before,.ion-trash-b:before,.ion-trophy:before,.ion-tshirt-outline:before,.ion-tshirt:before,.ion-umbrella:before,.ion-university:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-wand:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before,.ionicons{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-alert:before{content:"\F101"}.ion-alert-circled:before{content:"\F100"}.ion-android-add:before{content:"\F2C7"}.ion-android-add-circle:before{content:"\F359"}.ion-android-alarm-clock:before{content:"\F35A"}.ion-android-alert:before{content:"\F35B"}.ion-android-apps:before{content:"\F35C"}.ion-android-archive:before{content:"\F2C9"}.ion-android-arrow-back:before{content:"\F2CA"}.ion-android-arrow-down:before{content:"\F35D"}.ion-android-arrow-dropdown:before{content:"\F35F"}.ion-android-arrow-dropdown-circle:before{content:"\F35E"}.ion-android-arrow-dropleft:before{content:"\F361"}.ion-android-arrow-dropleft-circle:before{content:"\F360"}.ion-android-arrow-dropright:before{content:"\F363"}.ion-android-arrow-dropright-circle:before{content:"\F362"}.ion-android-arrow-dropup:before{content:"\F365"}.ion-android-arrow-dropup-circle:before{content:"\F364"}.ion-android-arrow-forward:before{content:"\F30F"}.ion-android-arrow-up:before{content:"\F366"}.ion-android-attach:before{content:"\F367"}.ion-android-bar:before{content:"\F368"}.ion-android-bicycle:before{content:"\F369"}.ion-android-boat:before{content:"\F36A"}.ion-android-bookmark:before{content:"\F36B"}.ion-android-bulb:before{content:"\F36C"}.ion-android-bus:before{content:"\F36D"}.ion-android-calendar:before{content:"\F2D1"}.ion-android-call:before{content:"\F2D2"}.ion-android-camera:before{content:"\F2D3"}.ion-android-cancel:before{content:"\F36E"}.ion-android-car:before{content:"\F36F"}.ion-android-cart:before{content:"\F370"}.ion-android-chat:before{content:"\F2D4"}.ion-android-checkbox:before{content:"\F374"}.ion-android-checkbox-blank:before{content:"\F371"}.ion-android-checkbox-outline:before{content:"\F373"}.ion-android-checkbox-outline-blank:before{content:"\F372"}.ion-android-checkmark-circle:before{content:"\F375"}.ion-android-clipboard:before{content:"\F376"}.ion-android-close:before{content:"\F2D7"}.ion-android-cloud:before{content:"\F37A"}.ion-android-cloud-circle:before{content:"\F377"}.ion-android-cloud-done:before{content:"\F378"}.ion-android-cloud-outline:before{content:"\F379"}.ion-android-color-palette:before{content:"\F37B"}.ion-android-compass:before{content:"\F37C"}.ion-android-contact:before{content:"\F2D8"}.ion-android-contacts:before{content:"\F2D9"}.ion-android-contract:before{content:"\F37D"}.ion-android-create:before{content:"\F37E"}.ion-android-delete:before{content:"\F37F"}.ion-android-desktop:before{content:"\F380"}.ion-android-document:before{content:"\F381"}.ion-android-done:before{content:"\F383"}.ion-android-done-all:before{content:"\F382"}.ion-android-download:before{content:"\F2DD"}.ion-android-drafts:before{content:"\F384"}.ion-android-exit:before{content:"\F385"}.ion-android-expand:before{content:"\F386"}.ion-android-favorite:before{content:"\F388"}.ion-android-favorite-outline:before{content:"\F387"}.ion-android-film:before{content:"\F389"}.ion-android-folder:before{content:"\F2E0"}.ion-android-folder-open:before{content:"\F38A"}.ion-android-funnel:before{content:"\F38B"}.ion-android-globe:before{content:"\F38C"}.ion-android-hand:before{content:"\F2E3"}.ion-android-hangout:before{content:"\F38D"}.ion-android-happy:before{content:"\F38E"}.ion-android-home:before{content:"\F38F"}.ion-android-image:before{content:"\F2E4"}.ion-android-laptop:before{content:"\F390"}.ion-android-list:before{content:"\F391"}.ion-android-locate:before{content:"\F2E9"}.ion-android-lock:before{content:"\F392"}.ion-android-mail:before{content:"\F2EB"}.ion-android-map:before{content:"\F393"}.ion-android-menu:before{content:"\F394"}.ion-android-microphone:before{content:"\F2EC"}.ion-android-microphone-off:before{content:"\F395"}.ion-android-more-horizontal:before{content:"\F396"}.ion-android-more-vertical:before{content:"\F397"}.ion-android-navigate:before{content:"\F398"}.ion-android-notifications:before{content:"\F39B"}.ion-android-notifications-none:before{content:"\F399"}.ion-android-notifications-off:before{content:"\F39A"}.ion-android-open:before{content:"\F39C"}.ion-android-options:before{content:"\F39D"}.ion-android-people:before{content:"\F39E"}.ion-android-person:before{content:"\F3A0"}.ion-android-person-add:before{content:"\F39F"}.ion-android-phone-landscape:before{content:"\F3A1"}.ion-android-phone-portrait:before{content:"\F3A2"}.ion-android-pin:before{content:"\F3A3"}.ion-android-plane:before{content:"\F3A4"}.ion-android-playstore:before{content:"\F2F0"}.ion-android-print:before{content:"\F3A5"}.ion-android-radio-button-off:before{content:"\F3A6"}.ion-android-radio-button-on:before{content:"\F3A7"}.ion-android-refresh:before{content:"\F3A8"}.ion-android-remove:before{content:"\F2F4"}.ion-android-remove-circle:before{content:"\F3A9"}.ion-android-restaurant:before{content:"\F3AA"}.ion-android-sad:before{content:"\F3AB"}.ion-android-search:before{content:"\F2F5"}.ion-android-send:before{content:"\F2F6"}.ion-android-settings:before{content:"\F2F7"}.ion-android-share:before{content:"\F2F8"}.ion-android-share-alt:before{content:"\F3AC"}.ion-android-star:before{content:"\F2FC"}.ion-android-star-half:before{content:"\F3AD"}.ion-android-star-outline:before{content:"\F3AE"}.ion-android-stopwatch:before{content:"\F2FD"}.ion-android-subway:before{content:"\F3AF"}.ion-android-sunny:before{content:"\F3B0"}.ion-android-sync:before{content:"\F3B1"}.ion-android-textsms:before{content:"\F3B2"}.ion-android-time:before{content:"\F3B3"}.ion-android-train:before{content:"\F3B4"}.ion-android-unlock:before{content:"\F3B5"}.ion-android-upload:before{content:"\F3B6"}.ion-android-volume-down:before{content:"\F3B7"}.ion-android-volume-mute:before{content:"\F3B8"}.ion-android-volume-off:before{content:"\F3B9"}.ion-android-volume-up:before{content:"\F3BA"}.ion-android-walk:before{content:"\F3BB"}.ion-android-warning:before{content:"\F3BC"}.ion-android-watch:before{content:"\F3BD"}.ion-android-wifi:before{content:"\F305"}.ion-aperture:before{content:"\F313"}.ion-archive:before{content:"\F102"}.ion-arrow-down-a:before{content:"\F103"}.ion-arrow-down-b:before{content:"\F104"}.ion-arrow-down-c:before{content:"\F105"}.ion-arrow-expand:before{content:"\F25E"}.ion-arrow-graph-down-left:before{content:"\F25F"}.ion-arrow-graph-down-right:before{content:"\F260"}.ion-arrow-graph-up-left:before{content:"\F261"}.ion-arrow-graph-up-right:before{content:"\F262"}.ion-arrow-left-a:before{content:"\F106"}.ion-arrow-left-b:before{content:"\F107"}.ion-arrow-left-c:before{content:"\F108"}.ion-arrow-move:before{content:"\F263"}.ion-arrow-resize:before{content:"\F264"}.ion-arrow-return-left:before{content:"\F265"}.ion-arrow-return-right:before{content:"\F266"}.ion-arrow-right-a:before{content:"\F109"}.ion-arrow-right-b:before{content:"\F10A"}.ion-arrow-right-c:before{content:"\F10B"}.ion-arrow-shrink:before{content:"\F267"}.ion-arrow-swap:before{content:"\F268"}.ion-arrow-up-a:before{content:"\F10C"}.ion-arrow-up-b:before{content:"\F10D"}.ion-arrow-up-c:before{content:"\F10E"}.ion-asterisk:before{content:"\F314"}.ion-at:before{content:"\F10F"}.ion-backspace:before{content:"\F3BF"}.ion-backspace-outline:before{content:"\F3BE"}.ion-bag:before{content:"\F110"}.ion-battery-charging:before{content:"\F111"}.ion-battery-empty:before{content:"\F112"}.ion-battery-full:before{content:"\F113"}.ion-battery-half:before{content:"\F114"}.ion-battery-low:before{content:"\F115"}.ion-beaker:before{content:"\F269"}.ion-beer:before{content:"\F26A"}.ion-bluetooth:before{content:"\F116"}.ion-bonfire:before{content:"\F315"}.ion-bookmark:before{content:"\F26B"}.ion-bowtie:before{content:"\F3C0"}.ion-briefcase:before{content:"\F26C"}.ion-bug:before{content:"\F2BE"}.ion-calculator:before{content:"\F26D"}.ion-calendar:before{content:"\F117"}.ion-camera:before{content:"\F118"}.ion-card:before{content:"\F119"}.ion-cash:before{content:"\F316"}.ion-chatbox:before{content:"\F11B"}.ion-chatbox-working:before{content:"\F11A"}.ion-chatboxes:before{content:"\F11C"}.ion-chatbubble:before{content:"\F11E"}.ion-chatbubble-working:before{content:"\F11D"}.ion-chatbubbles:before{content:"\F11F"}.ion-checkmark:before{content:"\F122"}.ion-checkmark-circled:before{content:"\F120"}.ion-checkmark-round:before{content:"\F121"}.ion-chevron-down:before{content:"\F123"}.ion-chevron-left:before{content:"\F124"}.ion-chevron-right:before{content:"\F125"}.ion-chevron-up:before{content:"\F126"}.ion-clipboard:before{content:"\F127"}.ion-clock:before{content:"\F26E"}.ion-close:before{content:"\F12A"}.ion-close-circled:before{content:"\F128"}.ion-close-round:before{content:"\F129"}.ion-closed-captioning:before{content:"\F317"}.ion-cloud:before{content:"\F12B"}.ion-code:before{content:"\F271"}.ion-code-download:before{content:"\F26F"}.ion-code-working:before{content:"\F270"}.ion-coffee:before{content:"\F272"}.ion-compass:before{content:"\F273"}.ion-compose:before{content:"\F12C"}.ion-connection-bars:before{content:"\F274"}.ion-contrast:before{content:"\F275"}.ion-crop:before{content:"\F3C1"}.ion-cube:before{content:"\F318"}.ion-disc:before{content:"\F12D"}.ion-document:before{content:"\F12F"}.ion-document-text:before{content:"\F12E"}.ion-drag:before{content:"\F130"}.ion-earth:before{content:"\F276"}.ion-easel:before{content:"\F3C2"}.ion-edit:before{content:"\F2BF"}.ion-egg:before{content:"\F277"}.ion-eject:before{content:"\F131"}.ion-email:before{content:"\F132"}.ion-email-unread:before{content:"\F3C3"}.ion-erlenmeyer-flask:before{content:"\F3C5"}.ion-erlenmeyer-flask-bubbles:before{content:"\F3C4"}.ion-eye:before{content:"\F133"}.ion-eye-disabled:before{content:"\F306"}.ion-female:before{content:"\F278"}.ion-filing:before{content:"\F134"}.ion-film-marker:before{content:"\F135"}.ion-fireball:before{content:"\F319"}.ion-flag:before{content:"\F279"}.ion-flame:before{content:"\F31A"}.ion-flash:before{content:"\F137"}.ion-flash-off:before{content:"\F136"}.ion-folder:before{content:"\F139"}.ion-fork:before{content:"\F27A"}.ion-fork-repo:before{content:"\F2C0"}.ion-forward:before{content:"\F13A"}.ion-funnel:before{content:"\F31B"}.ion-gear-a:before{content:"\F13D"}.ion-gear-b:before{content:"\F13E"}.ion-grid:before{content:"\F13F"}.ion-hammer:before{content:"\F27B"}.ion-happy:before{content:"\F31C"}.ion-happy-outline:before{content:"\F3C6"}.ion-headphone:before{content:"\F140"}.ion-heart:before{content:"\F141"}.ion-heart-broken:before{content:"\F31D"}.ion-help:before{content:"\F143"}.ion-help-buoy:before{content:"\F27C"}.ion-help-circled:before{content:"\F142"}.ion-home:before{content:"\F144"}.ion-icecream:before{content:"\F27D"}.ion-image:before{content:"\F147"}.ion-images:before{content:"\F148"}.ion-information:before{content:"\F14A"}.ion-information-circled:before{content:"\F149"}.ion-ionic:before{content:"\F14B"}.ion-ios-alarm:before{content:"\F3C8"}.ion-ios-alarm-outline:before{content:"\F3C7"}.ion-ios-albums:before{content:"\F3CA"}.ion-ios-albums-outline:before{content:"\F3C9"}.ion-ios-americanfootball:before{content:"\F3CC"}.ion-ios-americanfootball-outline:before{content:"\F3CB"}.ion-ios-analytics:before{content:"\F3CE"}.ion-ios-analytics-outline:before{content:"\F3CD"}.ion-ios-arrow-back:before{content:"\F3CF"}.ion-ios-arrow-down:before{content:"\F3D0"}.ion-ios-arrow-forward:before{content:"\F3D1"}.ion-ios-arrow-left:before{content:"\F3D2"}.ion-ios-arrow-right:before{content:"\F3D3"}.ion-ios-arrow-thin-down:before{content:"\F3D4"}.ion-ios-arrow-thin-left:before{content:"\F3D5"}.ion-ios-arrow-thin-right:before{content:"\F3D6"}.ion-ios-arrow-thin-up:before{content:"\F3D7"}.ion-ios-arrow-up:before{content:"\F3D8"}.ion-ios-at:before{content:"\F3DA"}.ion-ios-at-outline:before{content:"\F3D9"}.ion-ios-barcode:before{content:"\F3DC"}.ion-ios-barcode-outline:before{content:"\F3DB"}.ion-ios-baseball:before{content:"\F3DE"}.ion-ios-baseball-outline:before{content:"\F3DD"}.ion-ios-basketball:before{content:"\F3E0"}.ion-ios-basketball-outline:before{content:"\F3DF"}.ion-ios-bell:before{content:"\F3E2"}.ion-ios-bell-outline:before{content:"\F3E1"}.ion-ios-body:before{content:"\F3E4"}.ion-ios-body-outline:before{content:"\F3E3"}.ion-ios-bolt:before{content:"\F3E6"}.ion-ios-bolt-outline:before{content:"\F3E5"}.ion-ios-book:before{content:"\F3E8"}.ion-ios-book-outline:before{content:"\F3E7"}.ion-ios-bookmarks:before{content:"\F3EA"}.ion-ios-bookmarks-outline:before{content:"\F3E9"}.ion-ios-box:before{content:"\F3EC"}.ion-ios-box-outline:before{content:"\F3EB"}.ion-ios-briefcase:before{content:"\F3EE"}.ion-ios-briefcase-outline:before{content:"\F3ED"}.ion-ios-browsers:before{content:"\F3F0"}.ion-ios-browsers-outline:before{content:"\F3EF"}.ion-ios-calculator:before{content:"\F3F2"}.ion-ios-calculator-outline:before{content:"\F3F1"}.ion-ios-calendar:before{content:"\F3F4"}.ion-ios-calendar-outline:before{content:"\F3F3"}.ion-ios-camera:before{content:"\F3F6"}.ion-ios-camera-outline:before{content:"\F3F5"}.ion-ios-cart:before{content:"\F3F8"}.ion-ios-cart-outline:before{content:"\F3F7"}.ion-ios-chatboxes:before{content:"\F3FA"}.ion-ios-chatboxes-outline:before{content:"\F3F9"}.ion-ios-chatbubble:before{content:"\F3FC"}.ion-ios-chatbubble-outline:before{content:"\F3FB"}.ion-ios-checkmark:before{content:"\F3FF"}.ion-ios-checkmark-empty:before{content:"\F3FD"}.ion-ios-checkmark-outline:before{content:"\F3FE"}.ion-ios-circle-filled:before{content:"\F400"}.ion-ios-circle-outline:before{content:"\F401"}.ion-ios-clock:before{content:"\F403"}.ion-ios-clock-outline:before{content:"\F402"}.ion-ios-close:before{content:"\F406"}.ion-ios-close-empty:before{content:"\F404"}.ion-ios-close-outline:before{content:"\F405"}.ion-ios-cloud:before{content:"\F40C"}.ion-ios-cloud-download:before{content:"\F408"}.ion-ios-cloud-download-outline:before{content:"\F407"}.ion-ios-cloud-outline:before{content:"\F409"}.ion-ios-cloud-upload:before{content:"\F40B"}.ion-ios-cloud-upload-outline:before{content:"\F40A"}.ion-ios-cloudy:before{content:"\F410"}.ion-ios-cloudy-night:before{content:"\F40E"}.ion-ios-cloudy-night-outline:before{content:"\F40D"}.ion-ios-cloudy-outline:before{content:"\F40F"}.ion-ios-cog:before{content:"\F412"}.ion-ios-cog-outline:before{content:"\F411"}.ion-ios-color-filter:before{content:"\F414"}.ion-ios-color-filter-outline:before{content:"\F413"}.ion-ios-color-wand:before{content:"\F416"}.ion-ios-color-wand-outline:before{content:"\F415"}.ion-ios-compose:before{content:"\F418"}.ion-ios-compose-outline:before{content:"\F417"}.ion-ios-contact:before{content:"\F41A"}.ion-ios-contact-outline:before{content:"\F419"}.ion-ios-copy:before{content:"\F41C"}.ion-ios-copy-outline:before{content:"\F41B"}.ion-ios-crop:before{content:"\F41E"}.ion-ios-crop-strong:before{content:"\F41D"}.ion-ios-download:before{content:"\F420"}.ion-ios-download-outline:before{content:"\F41F"}.ion-ios-drag:before{content:"\F421"}.ion-ios-email:before{content:"\F423"}.ion-ios-email-outline:before{content:"\F422"}.ion-ios-eye:before{content:"\F425"}.ion-ios-eye-outline:before{content:"\F424"}.ion-ios-fastforward:before{content:"\F427"}.ion-ios-fastforward-outline:before{content:"\F426"}.ion-ios-filing:before{content:"\F429"}.ion-ios-filing-outline:before{content:"\F428"}.ion-ios-film:before{content:"\F42B"}.ion-ios-film-outline:before{content:"\F42A"}.ion-ios-flag:before{content:"\F42D"}.ion-ios-flag-outline:before{content:"\F42C"}.ion-ios-flame:before{content:"\F42F"}.ion-ios-flame-outline:before{content:"\F42E"}.ion-ios-flask:before{content:"\F431"}.ion-ios-flask-outline:before{content:"\F430"}.ion-ios-flower:before{content:"\F433"}.ion-ios-flower-outline:before{content:"\F432"}.ion-ios-folder:before{content:"\F435"}.ion-ios-folder-outline:before{content:"\F434"}.ion-ios-football:before{content:"\F437"}.ion-ios-football-outline:before{content:"\F436"}.ion-ios-game-controller-a:before{content:"\F439"}.ion-ios-game-controller-a-outline:before{content:"\F438"}.ion-ios-game-controller-b:before{content:"\F43B"}.ion-ios-game-controller-b-outline:before{content:"\F43A"}.ion-ios-gear:before{content:"\F43D"}.ion-ios-gear-outline:before{content:"\F43C"}.ion-ios-glasses:before{content:"\F43F"}.ion-ios-glasses-outline:before{content:"\F43E"}.ion-ios-grid-view:before{content:"\F441"}.ion-ios-grid-view-outline:before{content:"\F440"}.ion-ios-heart:before{content:"\F443"}.ion-ios-heart-outline:before{content:"\F442"}.ion-ios-help:before{content:"\F446"}.ion-ios-help-empty:before{content:"\F444"}.ion-ios-help-outline:before{content:"\F445"}.ion-ios-home:before{content:"\F448"}.ion-ios-home-outline:before{content:"\F447"}.ion-ios-infinite:before{content:"\F44A"}.ion-ios-infinite-outline:before{content:"\F449"}.ion-ios-information:before{content:"\F44D"}.ion-ios-information-empty:before{content:"\F44B"}.ion-ios-information-outline:before{content:"\F44C"}.ion-ios-ionic-outline:before{content:"\F44E"}.ion-ios-keypad:before{content:"\F450"}.ion-ios-keypad-outline:before{content:"\F44F"}.ion-ios-lightbulb:before{content:"\F452"}.ion-ios-lightbulb-outline:before{content:"\F451"}.ion-ios-list:before{content:"\F454"}.ion-ios-list-outline:before{content:"\F453"}.ion-ios-location:before{content:"\F456"}.ion-ios-location-outline:before{content:"\F455"}.ion-ios-locked:before{content:"\F458"}.ion-ios-locked-outline:before{content:"\F457"}.ion-ios-loop:before{content:"\F45A"}.ion-ios-loop-strong:before{content:"\F459"}.ion-ios-medical:before{content:"\F45C"}.ion-ios-medical-outline:before{content:"\F45B"}.ion-ios-medkit:before{content:"\F45E"}.ion-ios-medkit-outline:before{content:"\F45D"}.ion-ios-mic:before{content:"\F461"}.ion-ios-mic-off:before{content:"\F45F"}.ion-ios-mic-outline:before{content:"\F460"}.ion-ios-minus:before{content:"\F464"}.ion-ios-minus-empty:before{content:"\F462"}.ion-ios-minus-outline:before{content:"\F463"}.ion-ios-monitor:before{content:"\F466"}.ion-ios-monitor-outline:before{content:"\F465"}.ion-ios-moon:before{content:"\F468"}.ion-ios-moon-outline:before{content:"\F467"}.ion-ios-more:before{content:"\F46A"}.ion-ios-more-outline:before{content:"\F469"}.ion-ios-musical-note:before{content:"\F46B"}.ion-ios-musical-notes:before{content:"\F46C"}.ion-ios-navigate:before{content:"\F46E"}.ion-ios-navigate-outline:before{content:"\F46D"}.ion-ios-nutrition:before{content:"\F470"}.ion-ios-nutrition-outline:before{content:"\F46F"}.ion-ios-paper:before{content:"\F472"}.ion-ios-paper-outline:before{content:"\F471"}.ion-ios-paperplane:before{content:"\F474"}.ion-ios-paperplane-outline:before{content:"\F473"}.ion-ios-partlysunny:before{content:"\F476"}.ion-ios-partlysunny-outline:before{content:"\F475"}.ion-ios-pause:before{content:"\F478"}.ion-ios-pause-outline:before{content:"\F477"}.ion-ios-paw:before{content:"\F47A"}.ion-ios-paw-outline:before{content:"\F479"}.ion-ios-people:before{content:"\F47C"}.ion-ios-people-outline:before{content:"\F47B"}.ion-ios-person:before{content:"\F47E"}.ion-ios-person-outline:before{content:"\F47D"}.ion-ios-personadd:before{content:"\F480"}.ion-ios-personadd-outline:before{content:"\F47F"}.ion-ios-photos:before{content:"\F482"}.ion-ios-photos-outline:before{content:"\F481"}.ion-ios-pie:before{content:"\F484"}.ion-ios-pie-outline:before{content:"\F483"}.ion-ios-pint:before{content:"\F486"}.ion-ios-pint-outline:before{content:"\F485"}.ion-ios-play:before{content:"\F488"}.ion-ios-play-outline:before{content:"\F487"}.ion-ios-plus:before{content:"\F48B"}.ion-ios-plus-empty:before{content:"\F489"}.ion-ios-plus-outline:before{content:"\F48A"}.ion-ios-pricetag:before{content:"\F48D"}.ion-ios-pricetag-outline:before{content:"\F48C"}.ion-ios-pricetags:before{content:"\F48F"}.ion-ios-pricetags-outline:before{content:"\F48E"}.ion-ios-printer:before{content:"\F491"}.ion-ios-printer-outline:before{content:"\F490"}.ion-ios-pulse:before{content:"\F493"}.ion-ios-pulse-strong:before{content:"\F492"}.ion-ios-rainy:before{content:"\F495"}.ion-ios-rainy-outline:before{content:"\F494"}.ion-ios-recording:before{content:"\F497"}.ion-ios-recording-outline:before{content:"\F496"}.ion-ios-redo:before{content:"\F499"}.ion-ios-redo-outline:before{content:"\F498"}.ion-ios-refresh:before{content:"\F49C"}.ion-ios-refresh-empty:before{content:"\F49A"}.ion-ios-refresh-outline:before{content:"\F49B"}.ion-ios-reload:before{content:"\F49D"}.ion-ios-reverse-camera:before{content:"\F49F"}.ion-ios-reverse-camera-outline:before{content:"\F49E"}.ion-ios-rewind:before{content:"\F4A1"}.ion-ios-rewind-outline:before{content:"\F4A0"}.ion-ios-rose:before{content:"\F4A3"}.ion-ios-rose-outline:before{content:"\F4A2"}.ion-ios-search:before{content:"\F4A5"}.ion-ios-search-strong:before{content:"\F4A4"}.ion-ios-settings:before{content:"\F4A7"}.ion-ios-settings-strong:before{content:"\F4A6"}.ion-ios-shuffle:before{content:"\F4A9"}.ion-ios-shuffle-strong:before{content:"\F4A8"}.ion-ios-skipbackward:before{content:"\F4AB"}.ion-ios-skipbackward-outline:before{content:"\F4AA"}.ion-ios-skipforward:before{content:"\F4AD"}.ion-ios-skipforward-outline:before{content:"\F4AC"}.ion-ios-snowy:before{content:"\F4AE"}.ion-ios-speedometer:before{content:"\F4B0"}.ion-ios-speedometer-outline:before{content:"\F4AF"}.ion-ios-star:before{content:"\F4B3"}.ion-ios-star-half:before{content:"\F4B1"}.ion-ios-star-outline:before{content:"\F4B2"}.ion-ios-stopwatch:before{content:"\F4B5"}.ion-ios-stopwatch-outline:before{content:"\F4B4"}.ion-ios-sunny:before{content:"\F4B7"}.ion-ios-sunny-outline:before{content:"\F4B6"}.ion-ios-telephone:before{content:"\F4B9"}.ion-ios-telephone-outline:before{content:"\F4B8"}.ion-ios-tennisball:before{content:"\F4BB"}.ion-ios-tennisball-outline:before{content:"\F4BA"}.ion-ios-thunderstorm:before{content:"\F4BD"}.ion-ios-thunderstorm-outline:before{content:"\F4BC"}.ion-ios-time:before{content:"\F4BF"}.ion-ios-time-outline:before{content:"\F4BE"}.ion-ios-timer:before{content:"\F4C1"}.ion-ios-timer-outline:before{content:"\F4C0"}.ion-ios-toggle:before{content:"\F4C3"}.ion-ios-toggle-outline:before{content:"\F4C2"}.ion-ios-trash:before{content:"\F4C5"}.ion-ios-trash-outline:before{content:"\F4C4"}.ion-ios-undo:before{content:"\F4C7"}.ion-ios-undo-outline:before{content:"\F4C6"}.ion-ios-unlocked:before{content:"\F4C9"}.ion-ios-unlocked-outline:before{content:"\F4C8"}.ion-ios-upload:before{content:"\F4CB"}.ion-ios-upload-outline:before{content:"\F4CA"}.ion-ios-videocam:before{content:"\F4CD"}.ion-ios-videocam-outline:before{content:"\F4CC"}.ion-ios-volume-high:before{content:"\F4CE"}.ion-ios-volume-low:before{content:"\F4CF"}.ion-ios-wineglass:before{content:"\F4D1"}.ion-ios-wineglass-outline:before{content:"\F4D0"}.ion-ios-world:before{content:"\F4D3"}.ion-ios-world-outline:before{content:"\F4D2"}.ion-ipad:before{content:"\F1F9"}.ion-iphone:before{content:"\F1FA"}.ion-ipod:before{content:"\F1FB"}.ion-jet:before{content:"\F295"}.ion-key:before{content:"\F296"}.ion-knife:before{content:"\F297"}.ion-laptop:before{content:"\F1FC"}.ion-leaf:before{content:"\F1FD"}.ion-levels:before{content:"\F298"}.ion-lightbulb:before{content:"\F299"}.ion-link:before{content:"\F1FE"}.ion-load-a:before{content:"\F29A"}.ion-load-b:before{content:"\F29B"}.ion-load-c:before{content:"\F29C"}.ion-load-d:before{content:"\F29D"}.ion-location:before{content:"\F1FF"}.ion-lock-combination:before{content:"\F4D4"}.ion-locked:before{content:"\F200"}.ion-log-in:before{content:"\F29E"}.ion-log-out:before{content:"\F29F"}.ion-loop:before{content:"\F201"}.ion-magnet:before{content:"\F2A0"}.ion-male:before{content:"\F2A1"}.ion-man:before{content:"\F202"}.ion-map:before{content:"\F203"}.ion-medkit:before{content:"\F2A2"}.ion-merge:before{content:"\F33F"}.ion-mic-a:before{content:"\F204"}.ion-mic-b:before{content:"\F205"}.ion-mic-c:before{content:"\F206"}.ion-minus:before{content:"\F209"}.ion-minus-circled:before{content:"\F207"}.ion-minus-round:before{content:"\F208"}.ion-model-s:before{content:"\F2C1"}.ion-monitor:before{content:"\F20A"}.ion-more:before{content:"\F20B"}.ion-mouse:before{content:"\F340"}.ion-music-note:before{content:"\F20C"}.ion-navicon:before{content:"\F20E"}.ion-navicon-round:before{content:"\F20D"}.ion-navigate:before{content:"\F2A3"}.ion-network:before{content:"\F341"}.ion-no-smoking:before{content:"\F2C2"}.ion-nuclear:before{content:"\F2A4"}.ion-outlet:before{content:"\F342"}.ion-paintbrush:before{content:"\F4D5"}.ion-paintbucket:before{content:"\F4D6"}.ion-paper-airplane:before{content:"\F2C3"}.ion-paperclip:before{content:"\F20F"}.ion-pause:before{content:"\F210"}.ion-person:before{content:"\F213"}.ion-person-add:before{content:"\F211"}.ion-person-stalker:before{content:"\F212"}.ion-pie-graph:before{content:"\F2A5"}.ion-pin:before{content:"\F2A6"}.ion-pinpoint:before{content:"\F2A7"}.ion-pizza:before{content:"\F2A8"}.ion-plane:before{content:"\F214"}.ion-planet:before{content:"\F343"}.ion-play:before{content:"\F215"}.ion-playstation:before{content:"\F30A"}.ion-plus:before{content:"\F218"}.ion-plus-circled:before{content:"\F216"}.ion-plus-round:before{content:"\F217"}.ion-podium:before{content:"\F344"}.ion-pound:before{content:"\F219"}.ion-power:before{content:"\F2A9"}.ion-pricetag:before{content:"\F2AA"}.ion-pricetags:before{content:"\F2AB"}.ion-printer:before{content:"\F21A"}.ion-pull-request:before{content:"\F345"}.ion-qr-scanner:before{content:"\F346"}.ion-quote:before{content:"\F347"}.ion-radio-waves:before{content:"\F2AC"}.ion-record:before{content:"\F21B"}.ion-refresh:before{content:"\F21C"}.ion-reply:before{content:"\F21E"}.ion-reply-all:before{content:"\F21D"}.ion-ribbon-a:before{content:"\F348"}.ion-ribbon-b:before{content:"\F349"}.ion-sad:before{content:"\F34A"}.ion-sad-outline:before{content:"\F4D7"}.ion-scissors:before{content:"\F34B"}.ion-search:before{content:"\F21F"}.ion-settings:before{content:"\F2AD"}.ion-share:before{content:"\F220"}.ion-shuffle:before{content:"\F221"}.ion-skip-backward:before{content:"\F222"}.ion-skip-forward:before{content:"\F223"}.ion-social-android:before{content:"\F225"}.ion-social-android-outline:before{content:"\F224"}.ion-social-angular:before{content:"\F4D9"}.ion-social-angular-outline:before{content:"\F4D8"}.ion-social-apple:before{content:"\F227"}.ion-social-apple-outline:before{content:"\F226"}.ion-social-bitcoin:before{content:"\F2AF"}.ion-social-bitcoin-outline:before{content:"\F2AE"}.ion-social-buffer:before{content:"\F229"}.ion-social-buffer-outline:before{content:"\F228"}.ion-social-chrome:before{content:"\F4DB"}.ion-social-chrome-outline:before{content:"\F4DA"}.ion-social-codepen:before{content:"\F4DD"}.ion-social-codepen-outline:before{content:"\F4DC"}.ion-social-css3:before{content:"\F4DF"}.ion-social-css3-outline:before{content:"\F4DE"}.ion-social-designernews:before{content:"\F22B"}.ion-social-designernews-outline:before{content:"\F22A"}.ion-social-dribbble:before{content:"\F22D"}.ion-social-dribbble-outline:before{content:"\F22C"}.ion-social-dropbox:before{content:"\F22F"}.ion-social-dropbox-outline:before{content:"\F22E"}.ion-social-euro:before{content:"\F4E1"}.ion-social-euro-outline:before{content:"\F4E0"}.ion-social-facebook:before{content:"\F231"}.ion-social-facebook-outline:before{content:"\F230"}.ion-social-foursquare:before{content:"\F34D"}.ion-social-foursquare-outline:before{content:"\F34C"}.ion-social-freebsd-devil:before{content:"\F2C4"}.ion-social-github:before{content:"\F233"}.ion-social-github-outline:before{content:"\F232"}.ion-social-google:before{content:"\F34F"}.ion-social-google-outline:before{content:"\F34E"}.ion-social-googleplus:before{content:"\F235"}.ion-social-googleplus-outline:before{content:"\F234"}.ion-social-hackernews:before{content:"\F237"}.ion-social-hackernews-outline:before{content:"\F236"}.ion-social-html5:before{content:"\F4E3"}.ion-social-html5-outline:before{content:"\F4E2"}.ion-social-instagram:before{content:"\F351"}.ion-social-instagram-outline:before{content:"\F350"}.ion-social-javascript:before{content:"\F4E5"}.ion-social-javascript-outline:before{content:"\F4E4"}.ion-social-linkedin:before{content:"\F239"}.ion-social-linkedin-outline:before{content:"\F238"}.ion-social-markdown:before{content:"\F4E6"}.ion-social-nodejs:before{content:"\F4E7"}.ion-social-octocat:before{content:"\F4E8"}.ion-social-pinterest:before{content:"\F2B1"}.ion-social-pinterest-outline:before{content:"\F2B0"}.ion-social-python:before{content:"\F4E9"}.ion-social-reddit:before{content:"\F23B"}.ion-social-reddit-outline:before{content:"\F23A"}.ion-social-rss:before{content:"\F23D"}.ion-social-rss-outline:before{content:"\F23C"}.ion-social-sass:before{content:"\F4EA"}.ion-social-skype:before{content:"\F23F"}.ion-social-skype-outline:before{content:"\F23E"}.ion-social-snapchat:before{content:"\F4EC"}.ion-social-snapchat-outline:before{content:"\F4EB"}.ion-social-tumblr:before{content:"\F241"}.ion-social-tumblr-outline:before{content:"\F240"}.ion-social-tux:before{content:"\F2C5"}.ion-social-twitch:before{content:"\F4EE"}.ion-social-twitch-outline:before{content:"\F4ED"}.ion-social-twitter:before{content:"\F243"}.ion-social-twitter-outline:before{content:"\F242"}.ion-social-usd:before{content:"\F353"}.ion-social-usd-outline:before{content:"\F352"}.ion-social-vimeo:before{content:"\F245"}.ion-social-vimeo-outline:before{content:"\F244"}.ion-social-whatsapp:before{content:"\F4F0"}.ion-social-whatsapp-outline:before{content:"\F4EF"}.ion-social-windows:before{content:"\F247"}.ion-social-windows-outline:before{content:"\F246"}.ion-social-wordpress:before{content:"\F249"}.ion-social-wordpress-outline:before{content:"\F248"}.ion-social-yahoo:before{content:"\F24B"}.ion-social-yahoo-outline:before{content:"\F24A"}.ion-social-yen:before{content:"\F4F2"}.ion-social-yen-outline:before{content:"\F4F1"}.ion-social-youtube:before{content:"\F24D"}.ion-social-youtube-outline:before{content:"\F24C"}.ion-soup-can:before{content:"\F4F4"}.ion-soup-can-outline:before{content:"\F4F3"}.ion-speakerphone:before{content:"\F2B2"}.ion-speedometer:before{content:"\F2B3"}.ion-spoon:before{content:"\F2B4"}.ion-star:before{content:"\F24E"}.ion-stats-bars:before{content:"\F2B5"}.ion-steam:before{content:"\F30B"}.ion-stop:before{content:"\F24F"}.ion-thermometer:before{content:"\F2B6"}.ion-thumbsdown:before{content:"\F250"}.ion-thumbsup:before{content:"\F251"}.ion-toggle:before{content:"\F355"}.ion-toggle-filled:before{content:"\F354"}.ion-transgender:before{content:"\F4F5"}.ion-trash-a:before{content:"\F252"}.ion-trash-b:before{content:"\F253"}.ion-trophy:before{content:"\F356"}.ion-tshirt:before{content:"\F4F7"}.ion-tshirt-outline:before{content:"\F4F6"}.ion-umbrella:before{content:"\F2B7"}.ion-university:before{content:"\F357"}.ion-unlocked:before{content:"\F254"}.ion-upload:before{content:"\F255"}.ion-usb:before{content:"\F2B8"}.ion-videocamera:before{content:"\F256"}.ion-volume-high:before{content:"\F257"}.ion-volume-low:before{content:"\F258"}.ion-volume-medium:before{content:"\F259"}.ion-volume-mute:before{content:"\F25A"}.ion-wand:before{content:"\F358"}.ion-waterdrop:before{content:"\F25B"}.ion-wifi:before{content:"\F25C"}.ion-wineglass:before{content:"\F2B9"}.ion-woman:before{content:"\F25D"}.ion-wrench:before{content:"\F2BA"}.ion-xbox:before{content:"\F30C"} +*/@font-face{font-family:Ionicons;src:url("../../../fonts/ionicons.eot?v=2.0.1");src:url("../../../fonts/ionicons.eot?v=2.0.1#iefix") format("embedded-opentype"),url("../../../fonts/ionicons.ttf?v=2.0.1") format("truetype"),url("../../../fonts/ionicons.woff?v=2.0.1") format("woff"),url("../../../fonts/ionicons.svg?v=2.0.1#Ionicons") format("svg");font-weight:400;font-style:normal}.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-alert:before,.ion-android-calendar:before,.ion-android-checkmark-circle:before,.ion-android-open:before,.ion-checkmark-circled:before,.ion-checkmark:before,.ion-code-working:before,.ion-document-text:before,.ion-drag:before,.ion-earth:before,.ion-eye:before,.ion-flag:before,.ion-folder:before,.ion-gear-b:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-ios-arrow-right:before,.ion-ios-browsers-outline:before,.ion-ios-browsers:before,.ion-ios-circle-filled:before,.ion-ios-email-outline:before,.ion-ios-gear-outline:before,.ion-ios-help-outline:before,.ion-ios-information-outline:before,.ion-ios-keypad:before,.ion-ios-list:before,.ion-ios-minus-outline:before,.ion-ios-paper-outline:before,.ion-ios-people-outline:before,.ion-ios-people:before,.ion-ios-person-outline:before,.ion-ios-pie-outline:before,.ion-ios-plus-outline:before,.ion-ios-unlocked:before,.ion-link:before,.ion-load-c:before,.ion-lock-combination:before,.ion-log-out:before,.ion-monitor:before,.ion-navicon:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-person:before,.ion-speedometer:before,.ion-stats-bars:before,.ion-unlocked:before,.ion-wand:before{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-alert:before{content:"\F101"}.ion-alert-circled:before{content:"\F100"}.ion-android-alert:before{content:"\F35B"}.ion-android-calendar:before{content:"\F2D1"}.ion-android-checkmark-circle:before{content:"\F375"}.ion-android-open:before{content:"\F39C"}.ion-checkmark:before{content:"\F122"}.ion-checkmark-circled:before{content:"\F120"}.ion-code-working:before{content:"\F270"}.ion-document-text:before{content:"\F12E"}.ion-drag:before{content:"\F130"}.ion-earth:before{content:"\F276"}.ion-eye:before{content:"\F133"}.ion-flag:before{content:"\F279"}.ion-folder:before{content:"\F139"}.ion-gear-b:before{content:"\F13E"}.ion-help:before{content:"\F143"}.ion-help-circled:before{content:"\F142"}.ion-home:before{content:"\F144"}.ion-ios-arrow-right:before{content:"\F3D3"}.ion-ios-browsers:before{content:"\F3F0"}.ion-ios-browsers-outline:before{content:"\F3EF"}.ion-ios-circle-filled:before{content:"\F400"}.ion-ios-email-outline:before{content:"\F422"}.ion-ios-gear-outline:before{content:"\F43C"}.ion-ios-help-outline:before{content:"\F445"}.ion-ios-information-outline:before{content:"\F44C"}.ion-ios-keypad:before{content:"\F450"}.ion-ios-list:before{content:"\F454"}.ion-ios-minus-outline:before{content:"\F463"}.ion-ios-paper-outline:before{content:"\F471"}.ion-ios-people:before{content:"\F47C"}.ion-ios-people-outline:before{content:"\F47B"}.ion-ios-person-outline:before{content:"\F47D"}.ion-ios-pie-outline:before{content:"\F483"}.ion-ios-plus-outline:before{content:"\F48A"}.ion-ios-unlocked:before{content:"\F4C9"}.ion-link:before{content:"\F1FE"}.ion-load-c:before{content:"\F29C"}.ion-lock-combination:before{content:"\F4D4"}.ion-log-out:before{content:"\F29F"}.ion-monitor:before{content:"\F20A"}.ion-navicon:before{content:"\F20E"}.ion-paintbrush:before{content:"\F4D5"}.ion-paintbucket:before{content:"\F4D6"}.ion-paper-airplane:before{content:"\F2C3"}.ion-person:before{content:"\F213"}.ion-speedometer:before{content:"\F2B3"}.ion-stats-bars:before{content:"\F2B5"}.ion-unlocked:before{content:"\F254"}.ion-wand:before{content:"\F358"} -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,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}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}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{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;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-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}details,figure,footer,header,main,menu,nav,section,summary{display:block}canvas,progress{display:inline-block;vertical-align:baseline}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}code{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}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{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;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-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:transparent!important;color:#000!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-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:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{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 td,.table-bordered th{border:1px solid #ddd!important}}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#67808c;text-decoration:none}a:focus,a:hover{color:#465760;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:4px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:3px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.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;margin:-1px;padding:0;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,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,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,.h5,.h6,h4,h5,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;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.initialism,.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#67808c}a.text-primary:focus,a.text-primary:hover{color:#51656f}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#67808c}a.bg-primary:focus,a.bg-primary:hover{background-color:#51656f}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}.dl-horizontal dd:after,.dl-horizontal dd:before{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:"\2014 \A0"}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:""}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:"\A0 \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:3px}code,kbd{padding:2px 4px;font-size:90%}kbd{color:#fff;background-color:#333;border-radius:2px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:3px}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;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container-fluid:after,.container-fluid:before{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.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,.col-lg-12,.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,.col-md-12,.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,.col-sm-12,.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,.col-xs-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.33333333%}.col-xs-2{width:16.66666667%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333%}.col-xs-5{width:41.66666667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333333%}.col-xs-8{width:66.66666667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333%}.col-xs-11{width:91.66666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.33333333%}.col-xs-push-2{left:16.66666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.33333333%}.col-xs-push-5{left:41.66666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.33333333%}.col-xs-push-8{left:66.66666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.33333333%}.col-xs-push-11{left:91.66666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-12{margin-left:100%}@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,.col-sm-12{float:left}.col-sm-1{width:8.33333333%}.col-sm-2{width:16.66666667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333%}.col-sm-5{width:41.66666667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333333%}.col-sm-8{width:66.66666667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333%}.col-sm-11{width:91.66666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.33333333%}.col-sm-push-2{left:16.66666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333%}.col-sm-push-5{left:41.66666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333333%}.col-sm-push-8{left:66.66666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333%}.col-sm-push-11{left:91.66666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-12{margin-left:100%}}@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,.col-md-12{float:left}.col-md-1{width:8.33333333%}.col-md-2{width:16.66666667%}.col-md-3{width:25%}.col-md-4{width:33.33333333%}.col-md-5{width:41.66666667%}.col-md-6{width:50%}.col-md-7{width:58.33333333%}.col-md-8{width:66.66666667%}.col-md-9{width:75%}.col-md-10{width:83.33333333%}.col-md-11{width:91.66666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.33333333%}.col-md-pull-2{right:16.66666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333%}.col-md-pull-5{right:41.66666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333333%}.col-md-pull-8{right:66.66666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333%}.col-md-pull-11{right:91.66666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.33333333%}.col-md-push-2{left:16.66666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333%}.col-md-push-5{left:41.66666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333333%}.col-md-push-8{left:66.66666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333%}.col-md-push-11{left:91.66666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-12{margin-left:100%}}@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,.col-lg-12{float:left}.col-lg-1{width:8.33333333%}.col-lg-2{width:16.66666667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333%}.col-lg-5{width:41.66666667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333333%}.col-lg-8{width:66.66666667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333%}.col-lg-11{width:91.66666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.33333333%}.col-lg-push-2{left:16.66666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333%}.col-lg-push-5{left:41.66666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333333%}.col-lg-push-8{left:66.66666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333%}.col-lg-push-11{left:91.66666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-12{margin-left:100%}}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>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{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>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{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;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@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>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{margin:0;min-width:0}fieldset,legend{padding:0;border:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{height:34px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.form-control:focus{outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);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::-ms-expand{border:0;background-color:transparent}.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=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm>.input-group-btn>input[type=date].btn,.input-group-sm>.input-group-btn>input[type=datetime-local].btn,.input-group-sm>.input-group-btn>input[type=month].btn,.input-group-sm>.input-group-btn>input[type=time].btn,.input-group-sm>input[type=date].form-control,.input-group-sm>input[type=date].input-group-addon,.input-group-sm>input[type=datetime-local].form-control,.input-group-sm>input[type=datetime-local].input-group-addon,.input-group-sm>input[type=month].form-control,.input-group-sm>input[type=month].input-group-addon,.input-group-sm>input[type=time].form-control,.input-group-sm>input[type=time].input-group-addon,.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg>.input-group-btn>input[type=date].btn,.input-group-lg>.input-group-btn>input[type=datetime-local].btn,.input-group-lg>.input-group-btn>input[type=month].btn,.input-group-lg>.input-group-btn>input[type=time].btn,.input-group-lg>input[type=date].form-control,.input-group-lg>input[type=date].input-group-addon,.input-group-lg>input[type=datetime-local].form-control,.input-group-lg>input[type=datetime-local].input-group-addon,.input-group-lg>input[type=month].form-control,.input-group-lg>input[type=month].input-group-addon,.input-group-lg>input[type=time].form-control,.input-group-lg>input[type=time].input-group-addon,.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline input[type=checkbox],.checkbox input[type=checkbox],.radio-inline input[type=radio],.radio input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .checkbox label,fieldset[disabled] .radio-inline,fieldset[disabled] .radio label,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:2px}.input-group-sm>.input-group-btn>select.btn,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,select.input-sm{height:30px;line-height:30px}.input-group-sm>.input-group-btn>select[multiple].btn,.input-group-sm>.input-group-btn>textarea.btn,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:2px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.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-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.input-group-lg>.input-group-btn>select.btn,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,select.input-lg{height:46px;line-height:46px}.input-group-lg>.input-group-btn>select[multiple].btn,.input-group-lg>.input-group-btn>textarea.btn,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.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}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success.checkbox-inline label,.has-success.checkbox label,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.radio-inline label,.has-success.radio label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning.checkbox-inline label,.has-warning.checkbox label,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.radio-inline label,.has-warning.radio label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error.checkbox-inline label,.has-error.checkbox label,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.radio-inline label,.has-error.radio label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.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 .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:after,.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}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:#e6e5e5;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e6e5e5;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.btn-default.dropdown-toggle.focus,.open>.btn-default.dropdown-toggle:focus,.open>.btn-default.dropdown-toggle:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#67808c;border-color:#5c727d}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#51656f;border-color:#262f34}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#51656f;border-color:#42525a}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.btn-primary.dropdown-toggle.focus,.open>.btn-primary.dropdown-toggle:focus,.open>.btn-primary.dropdown-toggle:hover{color:#fff;background-color:#42525a;border-color:#262f34}.btn-primary.active,.btn-primary:active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#67808c;border-color:#5c727d}.btn-primary .badge{color:#67808c;background-color:#fff}.btn-success{color:#fff;background-color:#7ed321;border-color:#71bd1e}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#64a71a;border-color:#2f4f0c}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#64a71a;border-color:#518815}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.btn-success.dropdown-toggle.focus,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle:hover{color:#fff;background-color:#518815;border-color:#2f4f0c}.btn-success.active,.btn-success:active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#7ed321;border-color:#71bd1e}.btn-success .badge{color:#7ed321;background-color:#fff}.btn-info{color:#fff;background-color:#3498db;border-color:#258cd1}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#217dbb;border-color:#124364}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#217dbb;border-color:#1c699d}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.btn-info.dropdown-toggle.focus,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle:hover{color:#fff;background-color:#1c699d;border-color:#124364}.btn-info.active,.btn-info:active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#3498db;border-color:#258cd1}.btn-info .badge{color:#3498db;background-color:#fff}.btn-warning{color:#fff;background-color:#f80;border-color:#e67a00}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#cc6d00;border-color:#663600}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#cc6d00;border-color:#a85a00}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.btn-warning.dropdown-toggle.focus,.open>.btn-warning.dropdown-toggle:focus,.open>.btn-warning.dropdown-toggle:hover{color:#fff;background-color:#a85a00;border-color:#663600}.btn-warning.active,.btn-warning:active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f80;border-color:#e67a00}.btn-warning .badge{color:#f80;background-color:#fff}.btn-danger{color:#fff;background-color:#ff6f6f;border-color:#ff5656}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#ff3c3c;border-color:#d50000}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#ff3c3c;border-color:#ff1818}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.btn-danger.dropdown-toggle.focus,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle:hover{color:#fff;background-color:#ff1818;border-color:#d50000}.btn-danger.active,.btn-danger:active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#ff6f6f;border-color:#ff5656}.btn-danger .badge{color:#ff6f6f;background-color:#fff}.btn-link{color:#67808c;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#465760;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:2px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:2px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.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:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#67808c}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.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{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{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:after,.btn-toolbar:before{content:" ";display:table}.btn-toolbar:after{clear:both}.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-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-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-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group-lg.btn-group>.btn+.dropdown-toggle,.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-group-lg>.btn .caret,.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-group-lg>.btn .caret,.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-group:after,.btn-group-vertical>.btn-group:before{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.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:3px;border-top-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.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-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio]{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-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:3px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:2px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:4px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.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-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group .form-control:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group .form-control:last-child{border-bottom-left-radius:0;border-top-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{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{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#67808c}.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:3px 3px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:3px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#67808c}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:3px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:3px 3px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:3px}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;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-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{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-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container-fluid .navbar-brand,.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:3px}.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;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{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{margin:8px -15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1),0 1px 0 hsla(0,0%,100%,.1);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1),0 1px 0 hsla(0,0%,100%,.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 .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{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;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.btn-group-sm>.navbar-btn.btn,.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.btn-group-xs>.navbar-btn.btn,.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-left:15px;margin-right: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:focus,.navbar-default .navbar-brand:hover{color:#5e5d5d;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{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:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{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:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{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:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#090909;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{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:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.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}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#67808c}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#51656f}.label-success{background-color:#7ed321}.label-success[href]:focus,.label-success[href]:hover{background-color:#64a71a}.label-info{background-color:#3498db}.label-info[href]:focus,.label-info[href]:hover{background-color:#217dbb}.label-warning{background-color:#f80}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#cc6d00}.label-danger{background-color:#ff6f6f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#ff3c3c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#67808c;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}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:3px}.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{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}.list-group{margin-bottom:20px;padding-left:0}.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-right-radius:3px;border-top-left-radius:3px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}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:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#67808c;border-color:#67808c}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#dbe1e4}.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:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{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:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{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:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{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:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{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,body.status-page .list-group.components{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.panel-heading>.dropdown .dropdown-toggle,.panel-title{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.list-group,.panel>.panel-collapse>.list-group,body.status-page .list-group.components>.list-group,body.status-page .list-group.components>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item,body.status-page .list-group.components>.list-group .list-group-item,body.status-page .list-group.components>.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,body.status-page .list-group.components>.list-group:first-child .list-group-item:first-child,body.status-page .list-group.components>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:2px;border-top-left-radius:2px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child,body.status-page .list-group.components>.list-group:last-child .list-group-item:last-child,body.status-page .list-group.components>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child,body.status-page .list-group.components>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table,body.status-page .list-group.components>.panel-collapse>.table,body.status-page .list-group.components>.table,body.status-page .list-group.components>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table-responsive>.table caption,.panel>.table caption,body.status-page .list-group.components>.panel-collapse>.table caption,body.status-page .list-group.components>.table-responsive>.table caption,body.status-page .list-group.components>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child,body.status-page .list-group.components>.table-responsive:first-child>.table:first-child,body.status-page .list-group.components>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,body.status-page .list-group.components>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,body.status-page .list-group.components>.table:first-child,body.status-page .list-group.components>.table:first-child>tbody:first-child>tr:first-child,body.status-page .list-group.components>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.panel>.table-responsive:first-child>.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 th:first-child,.panel>.table-responsive:first-child>.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 th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,body.status-page .list-group.components>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,body.status-page .list-group.components>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,body.status-page .list-group.components>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,body.status-page .list-group.components>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,body.status-page .list-group.components>.table:first-child>tbody:first-child>tr:first-child td:first-child,body.status-page .list-group.components>.table:first-child>tbody:first-child>tr:first-child th:first-child,body.status-page .list-group.components>.table:first-child>thead:first-child>tr:first-child td:first-child,body.status-page .list-group.components>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:2px}.panel>.table-responsive:first-child>.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 th:last-child,.panel>.table-responsive:first-child>.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 th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,body.status-page .list-group.components>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,body.status-page .list-group.components>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,body.status-page .list-group.components>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,body.status-page .list-group.components>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,body.status-page .list-group.components>.table:first-child>tbody:first-child>tr:first-child td:last-child,body.status-page .list-group.components>.table:first-child>tbody:first-child>tr:first-child th:last-child,body.status-page .list-group.components>.table:first-child>thead:first-child>tr:first-child td:last-child,body.status-page .list-group.components>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:2px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,body.status-page .list-group.components>.table-responsive:last-child>.table:last-child,body.status-page .list-group.components>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,body.status-page .list-group.components>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,body.status-page .list-group.components>.table:last-child,body.status-page .list-group.components>.table:last-child>tbody:last-child>tr:last-child,body.status-page .list-group.components>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.table-responsive:last-child>.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 th:first-child,.panel>.table-responsive:last-child>.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 th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,body.status-page .list-group.components>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,body.status-page .list-group.components>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,body.status-page .list-group.components>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,body.status-page .list-group.components>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,body.status-page .list-group.components>.table:last-child>tbody:last-child>tr:last-child td:first-child,body.status-page .list-group.components>.table:last-child>tbody:last-child>tr:last-child th:first-child,body.status-page .list-group.components>.table:last-child>tfoot:last-child>tr:last-child td:first-child,body.status-page .list-group.components>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:2px}.panel>.table-responsive:last-child>.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 th:last-child,.panel>.table-responsive:last-child>.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 th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,body.status-page .list-group.components>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,body.status-page .list-group.components>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,body.status-page .list-group.components>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,body.status-page .list-group.components>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,body.status-page .list-group.components>.table:last-child>tbody:last-child>tr:last-child td:last-child,body.status-page .list-group.components>.table:last-child>tbody:last-child>tr:last-child th:last-child,body.status-page .list-group.components>.table:last-child>tfoot:last-child>tr:last-child td:last-child,body.status-page .list-group.components>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:2px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body,body.status-page .list-group.components>.panel-body+.table,body.status-page .list-group.components>.panel-body+.table-responsive,body.status-page .list-group.components>.table+.panel-body,body.status-page .list-group.components>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th,body.status-page .list-group.components>.table>tbody:first-child>tr:first-child td,body.status-page .list-group.components>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered,body.status-page .list-group.components>.table-bordered,body.status-page .list-group.components>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,body.status-page .list-group.components>.table-bordered>tbody>tr>td:first-child,body.status-page .list-group.components>.table-bordered>tbody>tr>th:first-child,body.status-page .list-group.components>.table-bordered>tfoot>tr>td:first-child,body.status-page .list-group.components>.table-bordered>tfoot>tr>th:first-child,body.status-page .list-group.components>.table-bordered>thead>tr>td:first-child,body.status-page .list-group.components>.table-bordered>thead>tr>th:first-child,body.status-page .list-group.components>.table-responsive>.table-bordered>tbody>tr>td:first-child,body.status-page .list-group.components>.table-responsive>.table-bordered>tbody>tr>th:first-child,body.status-page .list-group.components>.table-responsive>.table-bordered>tfoot>tr>td:first-child,body.status-page .list-group.components>.table-responsive>.table-bordered>tfoot>tr>th:first-child,body.status-page .list-group.components>.table-responsive>.table-bordered>thead>tr>td:first-child,body.status-page .list-group.components>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,body.status-page .list-group.components>.table-bordered>tbody>tr>td:last-child,body.status-page .list-group.components>.table-bordered>tbody>tr>th:last-child,body.status-page .list-group.components>.table-bordered>tfoot>tr>td:last-child,body.status-page .list-group.components>.table-bordered>tfoot>tr>th:last-child,body.status-page .list-group.components>.table-bordered>thead>tr>td:last-child,body.status-page .list-group.components>.table-bordered>thead>tr>th:last-child,body.status-page .list-group.components>.table-responsive>.table-bordered>tbody>tr>td:last-child,body.status-page .list-group.components>.table-responsive>.table-bordered>tbody>tr>th:last-child,body.status-page .list-group.components>.table-responsive>.table-bordered>tfoot>tr>td:last-child,body.status-page .list-group.components>.table-responsive>.table-bordered>tfoot>tr>th:last-child,body.status-page .list-group.components>.table-responsive>.table-bordered>thead>tr>td:last-child,body.status-page .list-group.components>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,body.status-page .list-group.components>.table-bordered>tbody>tr:first-child>td,body.status-page .list-group.components>.table-bordered>tbody>tr:first-child>th,body.status-page .list-group.components>.table-bordered>tbody>tr:last-child>td,body.status-page .list-group.components>.table-bordered>tbody>tr:last-child>th,body.status-page .list-group.components>.table-bordered>tfoot>tr:last-child>td,body.status-page .list-group.components>.table-bordered>tfoot>tr:last-child>th,body.status-page .list-group.components>.table-bordered>thead>tr:first-child>td,body.status-page .list-group.components>.table-bordered>thead>tr:first-child>th,body.status-page .list-group.components>.table-responsive>.table-bordered>tbody>tr:first-child>td,body.status-page .list-group.components>.table-responsive>.table-bordered>tbody>tr:first-child>th,body.status-page .list-group.components>.table-responsive>.table-bordered>tbody>tr:last-child>td,body.status-page .list-group.components>.table-responsive>.table-bordered>tbody>tr:last-child>th,body.status-page .list-group.components>.table-responsive>.table-bordered>tfoot>tr:last-child>td,body.status-page .list-group.components>.table-responsive>.table-bordered>tfoot>tr:last-child>th,body.status-page .list-group.components>.table-responsive>.table-bordered>thead>tr:first-child>td,body.status-page .list-group.components>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-responsive,body.status-page .list-group.components>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel,.panel-group body.status-page .list-group.components,body.status-page .panel-group .list-group.components{margin-bottom:0;border-radius:3px}.panel-group .panel+.panel,.panel-group body.status-page .list-group.components+.list-group.components,.panel-group body.status-page .list-group.components+.panel,.panel-group body.status-page .panel+.list-group.components,body.status-page .panel-group .list-group.components+.list-group.components,body.status-page .panel-group .list-group.components+.panel,body.status-page .panel-group .panel+.list-group.components{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{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:#67808c}.panel-primary>.panel-heading{color:#fff;background-color:#67808c;border-color:#67808c}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#67808c}.panel-primary>.panel-heading .badge{color:#67808c;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#67808c}.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{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}.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}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);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:4px}.well-sm{padding:9px;border-radius:2px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal,.modal-open{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0);transform:translate(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;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:4px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header:after,.modal-header:before{content:" ";display:table}.modal-header:after{clear:both}.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:after,.modal-footer:before{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);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-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#333;border-radius:3px}.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:#333}.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:#333}.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:#333}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#333}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#333}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-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}td.visible-xs,th.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}td.visible-sm,th.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}td.visible-md,th.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}td.visible-lg,th.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}td.visible-print,th.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}}html{position:relative;min-height:100%;-webkit-font-smoothing:antialiased;overflow-y:scroll}body{margin-bottom:60px;padding-bottom:60px}.uppercase{text-transform:uppercase}.margin-top{margin-top:20px}.margin-bottom{margin-bottom:20px}.no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[role=tabpanel] ul.nav-tabs{border-bottom:1px solid #d5d8d7}div[role=tabpanel] ul.nav-tabs li a{font-weight:400;display:inline-block;padding:10px 25px;border-radius:0;font-size:.9em;letter-spacing:.01em}div[role=tabpanel] .tab-content{border-left:1px solid #d5d8d7;border-bottom:1px solid #d5d8d7;border-right:1px solid #d5d8d7;background-color:#fff}div[role=tabpanel] .tab-content .tab-pane{padding:10px}label{font-size:14px}textarea{resize:none;overflow:auto}.markdown-control{position:relative}.markdown-control:before{position:absolute;display:block;right:0;bottom:0;width:40px;height:40px;font-size:2em;font-family:Ionicons;content:"\F4E6"}.form-control{display:block;width:100%;height:45px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.form-control:focus{border-color:#66afe9}@media (max-width:767px){.component-inline .radio-items{text-align:left}.component-inline .radio-items .radio-inline{margin-left:0;width:100%}}.minicolors-theme-bootstrap .minicolors-swatch{top:9px;left:9px}.well{border-radius:0}.alert{border-radius:4px;background:#f7ca18;border:2px solid #d5ab07}.alert.alert-success{background-color:#7ed321;border:2px solid #64a71a;color:#fff}.alert.alert-success a{color:#fff;font-weight:700}.alert.alert-info{background:#3498db;border:2px solid #217dbb;color:#fff}.alert.alert-info a{color:#fff;font-weight:700}.alert.alert-danger{background:#ff6f6f;border:2px solid #ff3c3c;color:#fff}.alert.alert-danger a{color:#fff;font-weight:700}.panel-danger{border-color:#ff3c3c}.panel-danger>.panel-heading{color:#fff;background-color:#ff6f6f;border-color:#ff3c3c}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ff3c3c}.panel-danger>.panel-heading .badge{color:#ff6f6f;background-color:#fff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ff3c3c}.panel-success{border-color:#64a71a}.panel-success>.panel-heading{color:#fff;background-color:#7ed321;border-color:#64a71a}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#64a71a}.panel-success>.panel-heading .badge{color:#7ed321;background-color:#fff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#64a71a}.panel-info{border-color:#217dbb}.panel-info>.panel-heading{color:#fff;background-color:#3498db;border-color:#217dbb}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#217dbb}.panel-info>.panel-heading .badge{color:#3498db;background-color:#fff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#217dbb}.panel-warning{border-color:#d5ab07}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#f7ca18;border-color:#d5ab07}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d5ab07}.panel-warning>.panel-heading .badge{color:#f7ca18;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d5ab07}.btn.btn-default{color:#333;background:#fff;border:1px solid #e6e5e5}.btn.btn-default.active,.btn.btn-default:active,.btn.btn-default:focus,.btn.btn-default:hover{background:#f2f2f2;border-color:#e6e5e5;color:#333;outline:none;outline-offset:0}.btn.btn-default.disabled,.btn.btn-default.disabled.active,.btn.btn-default.disabled:active,.btn.btn-default.disabled:focus,.btn.btn-default.disabled:hover,.btn.btn-default[disabled],.btn.btn-default[disabled].active,.btn.btn-default[disabled]:active,.btn.btn-default[disabled]:focus,.btn.btn-default[disabled]:hover,fieldset[disabled] .btn.btn-default,fieldset[disabled] .btn.btn-default.active,fieldset[disabled] .btn.btn-default:active,fieldset[disabled] .btn.btn-default:focus,fieldset[disabled] .btn.btn-default:hover{background-color:#fff;border-color:#e6e5e5}.btn.btn-primary{color:#fff;background:#67808c;border:1px solid #51656f}.btn.btn-primary.active,.btn.btn-primary:active,.btn.btn-primary:focus,.btn.btn-primary:hover{background:#5c727d;border-color:#51656f;color:#fff;outline:none;outline-offset:0}.btn.btn-primary.disabled,.btn.btn-primary.disabled.active,.btn.btn-primary.disabled:active,.btn.btn-primary.disabled:focus,.btn.btn-primary.disabled:hover,.btn.btn-primary[disabled],.btn.btn-primary[disabled].active,.btn.btn-primary[disabled]:active,.btn.btn-primary[disabled]:focus,.btn.btn-primary[disabled]:hover,fieldset[disabled] .btn.btn-primary,fieldset[disabled] .btn.btn-primary.active,fieldset[disabled] .btn.btn-primary:active,fieldset[disabled] .btn.btn-primary:focus,fieldset[disabled] .btn.btn-primary:hover{background-color:#748c99;border-color:#51656f}.btn.btn-success{color:#fff;background:#7ed321;border:1px solid #64a71a}.btn.btn-success.active,.btn.btn-success:active,.btn.btn-success:focus,.btn.btn-success:hover{background:#71bd1e;border-color:#64a71a;color:#fff;outline:none;outline-offset:0}.btn.btn-success.disabled,.btn.btn-success.disabled.active,.btn.btn-success.disabled:active,.btn.btn-success.disabled:focus,.btn.btn-success.disabled:hover,.btn.btn-success[disabled],.btn.btn-success[disabled].active,.btn.btn-success[disabled]:active,.btn.btn-success[disabled]:focus,.btn.btn-success[disabled]:hover,fieldset[disabled] .btn.btn-success,fieldset[disabled] .btn.btn-success.active,fieldset[disabled] .btn.btn-success:active,fieldset[disabled] .btn.btn-success:focus,fieldset[disabled] .btn.btn-success:hover{background-color:#8bde2f;border-color:#64a71a}.btn.btn-info{color:#fff;background:#3498db;border:1px solid #217dbb}.btn.btn-info.active,.btn.btn-info:active,.btn.btn-info:focus,.btn.btn-info:hover{background:#258cd1;border-color:#217dbb;color:#fff;outline:none;outline-offset:0}.btn.btn-info.disabled,.btn.btn-info.disabled.active,.btn.btn-info.disabled:active,.btn.btn-info.disabled:focus,.btn.btn-info.disabled:hover,.btn.btn-info[disabled],.btn.btn-info[disabled].active,.btn.btn-info[disabled]:active,.btn.btn-info[disabled]:focus,.btn.btn-info[disabled]:hover,fieldset[disabled] .btn.btn-info,fieldset[disabled] .btn.btn-info.active,fieldset[disabled] .btn.btn-info:active,fieldset[disabled] .btn.btn-info:focus,fieldset[disabled] .btn.btn-info:hover{background-color:#4aa3df;border-color:#217dbb}.btn.btn-warning{color:#fff;background:#f80;border:1px solid #cc6d00}.btn.btn-warning.active,.btn.btn-warning:active,.btn.btn-warning:focus,.btn.btn-warning:hover{background:#e67a00;border-color:#cc6d00;color:#fff;outline:none;outline-offset:0}.btn.btn-warning.disabled,.btn.btn-warning.disabled.active,.btn.btn-warning.disabled:active,.btn.btn-warning.disabled:focus,.btn.btn-warning.disabled:hover,.btn.btn-warning[disabled],.btn.btn-warning[disabled].active,.btn.btn-warning[disabled]:active,.btn.btn-warning[disabled]:focus,.btn.btn-warning[disabled]:hover,fieldset[disabled] .btn.btn-warning,fieldset[disabled] .btn.btn-warning.active,fieldset[disabled] .btn.btn-warning:active,fieldset[disabled] .btn.btn-warning:focus,fieldset[disabled] .btn.btn-warning:hover{background-color:#ff941a;border-color:#cc6d00}.btn.btn-danger{color:#fff;background:#ff6f6f;border:1px solid #ff3c3c}.btn.btn-danger.active,.btn.btn-danger:active,.btn.btn-danger:focus,.btn.btn-danger:hover{background:#ff5656;border-color:#ff3c3c;color:#fff;outline:none;outline-offset:0}.btn.btn-danger.disabled,.btn.btn-danger.disabled.active,.btn.btn-danger.disabled:active,.btn.btn-danger.disabled:focus,.btn.btn-danger.disabled:hover,.btn.btn-danger[disabled],.btn.btn-danger[disabled].active,.btn.btn-danger[disabled]:active,.btn.btn-danger[disabled]:focus,.btn.btn-danger[disabled]:hover,fieldset[disabled] .btn.btn-danger,fieldset[disabled] .btn.btn-danger.active,fieldset[disabled] .btn.btn-danger:active,fieldset[disabled] .btn.btn-danger:focus,fieldset[disabled] .btn.btn-danger:hover{background-color:#ff8989;border-color:#ff3c3c}.btn.btn-inverse{color:#fff;background:#474949;border:1px solid #2e2f2f}.btn.btn-inverse.active,.btn.btn-inverse:active,.btn.btn-inverse:focus,.btn.btn-inverse:hover{background:#3a3c3c;border-color:#2e2f2f;color:#fff;outline:none;outline-offset:0}.btn.btn-inverse.disabled,.btn.btn-inverse.disabled.active,.btn.btn-inverse.disabled:active,.btn.btn-inverse.disabled:focus,.btn.btn-inverse.disabled:hover,.btn.btn-inverse[disabled],.btn.btn-inverse[disabled].active,.btn.btn-inverse[disabled]:active,.btn.btn-inverse[disabled]:focus,.btn.btn-inverse[disabled]:hover,fieldset[disabled] .btn.btn-inverse,fieldset[disabled] .btn.btn-inverse.active,fieldset[disabled] .btn.btn-inverse:active,fieldset[disabled] .btn.btn-inverse:focus,fieldset[disabled] .btn.btn-inverse:hover{background-color:#545656;border-color:#2e2f2f}.btn-outline{background-color:transparent;background-image:none!important;color:inherit;-webkit-transition:all .5s;transition:all .5s}.btn-default.btn-outline{color:#999}.btn-primary.btn-outline{color:#428bca}.btn-success.btn-outline{color:#5cb85c}.btn-info.btn-outline{color:#5bc0de}.btn-warning.btn-outline{color:#f0ad4e}.btn-danger.btn-outline{color:#d9534f}.btn-danger.btn-outline:hover,.btn-info.btn-outline:hover,.btn-primary.btn-outline:hover,.btn-success.btn-outline:hover,.btn-warning.btn-outline:hover{color:#fff}.pager li>a,.pager li>span{border-radius:3px}body.error-page{background-color:#f3f3f4}body.error-page .middle-box{height:400px;width:400px;position:absolute;top:50%;left:50%;margin-top:-250px;margin-left:-200px;z-index:100}body.error-page .middle-box h1{font-size:9em}body.error-page h3.font-bold{font-weight:600}body.swal2-shown{overflow-y:hidden}.swal2-container,body.swal2-iosfix{position:fixed;left:0;right:0}.swal2-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;top:0;bottom:0;padding:10px;background-color:transparent;z-index:1060}.swal2-container.swal2-top,.swal2-container.swal2-top-left{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.swal2-container.swal2-top-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.swal2-container.swal2-top-right{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.swal2-container.swal2-center,.swal2-container.swal2-center-left{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swal2-container.swal2-center-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.swal2-container.swal2-center-right{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.swal2-container.swal2-bottom,.swal2-container.swal2-bottom-left{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.swal2-container.swal2-bottom-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.swal2-container.swal2-bottom-right{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.swal2-container.swal2-grow-fullscreen>.swal2-modal{-ms-flex:1;flex:1;-ms-flex-item-align:stretch;align-self:stretch;-ms-flex-pack:center}.swal2-container.swal2-grow-fullscreen>.swal2-modal,.swal2-container.swal2-grow-row>.swal2-modal{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-flex:1;-webkit-box-pack:center;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{-ms-flex:1;flex:1;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:center}.swal2-container.swal2-grow-column{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-top-left{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-right{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.swal2-container:not(.swal2-top):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-left):not(.swal2-bottom-right)>.swal2-modal{margin:auto}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.swal2-container .swal2-modal{margin:0!important}}.swal2-container.swal2-fade{-webkit-transition:background-color .1s;transition:background-color .1s}.swal2-container.swal2-shown{background-color:rgba(0,0,0,.4)}.swal2-modal{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;border-radius:5px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow-x:hidden;overflow-y:auto;display:none;position:relative;max-width:100%}.swal2-modal:focus{outline:none}.swal2-modal.swal2-loading{overflow-y:hidden}.swal2-modal .swal2-title{color:#595959;font-size:30px;text-align:center;font-weight:600;text-transform:none;position:relative;margin:0 0 .4em;padding:0;display:block;word-wrap:break-word}.swal2-modal .swal2-buttonswrapper{margin-top:15px}.swal2-modal .swal2-buttonswrapper:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4;cursor:no-drop}.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-confirm{-webkit-box-sizing:border-box;box-sizing:border-box;border:4px solid transparent;border-color:transparent;width:40px;height:40px;padding:0;margin:7.5px;vertical-align:top;background-color:transparent!important;color:transparent;cursor:default;border-radius:100%;-webkit-animation:rotate-loading 1.5s linear 0s infinite normal;animation:rotate-loading 1.5s linear 0s infinite normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-cancel{margin-left:30px;margin-right:30px}.swal2-modal .swal2-buttonswrapper.swal2-loading :not(.swal2-styled).swal2-confirm:after{display:inline-block;content:"";margin-left:5px;vertical-align:-1px;height:15px;width:15px;border:3px solid #999;-webkit-box-shadow:1px 1px 1px #fff;box-shadow:1px 1px 1px #fff;border-right-color:transparent;border-radius:50%;-webkit-animation:rotate-loading 1.5s linear 0s infinite normal;animation:rotate-loading 1.5s linear 0s infinite normal}.swal2-modal .swal2-styled{border:0;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;color:#fff;cursor:pointer;font-size:17px;font-weight:500;margin:15px 5px 0;padding:10px 32px}.swal2-modal .swal2-styled:focus{outline:none;-webkit-box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(50,100,150,.4);box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(50,100,150,.4)}.swal2-modal .swal2-image{margin:20px auto;max-width:100%}.swal2-modal .swal2-close{background:transparent;border:0;margin:0;padding:0;width:38px;height:40px;font-size:36px;line-height:40px;font-family:serif;position:absolute;top:5px;right:8px;cursor:pointer;color:#ccc;-webkit-transition:color .1s ease;transition:color .1s ease}.swal2-modal .swal2-close:hover{color:#d55}.swal2-modal>.swal2-checkbox,.swal2-modal>.swal2-file,.swal2-modal>.swal2-input,.swal2-modal>.swal2-radio,.swal2-modal>.swal2-select,.swal2-modal>.swal2-textarea{display:none}.swal2-modal .swal2-content{font-size:18px;text-align:center;font-weight:300;position:relative;float:none;margin:0;padding:0;line-height:normal;color:#545454;word-wrap:break-word}.swal2-modal .swal2-checkbox,.swal2-modal .swal2-file,.swal2-modal .swal2-input,.swal2-modal .swal2-radio,.swal2-modal .swal2-select,.swal2-modal .swal2-textarea{margin:20px auto}.swal2-modal .swal2-file,.swal2-modal .swal2-input,.swal2-modal .swal2-textarea{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:18px;border-radius:3px;border:1px solid #d9d9d9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.06);box-shadow:inset 0 1px 1px rgba(0,0,0,.06);-webkit-transition:border-color .3s,-webkit-box-shadow .3s;transition:border-color .3s,-webkit-box-shadow .3s;transition:border-color .3s,box-shadow .3s;transition:border-color .3s,box-shadow .3s,-webkit-box-shadow .3s}.swal2-modal .swal2-file.swal2-inputerror,.swal2-modal .swal2-input.swal2-inputerror,.swal2-modal .swal2-textarea.swal2-inputerror{border-color:#f27474!important;-webkit-box-shadow:0 0 2px #f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-modal .swal2-file:focus,.swal2-modal .swal2-input:focus,.swal2-modal .swal2-textarea:focus{outline:none;border:1px solid #b4dbed;-webkit-box-shadow:0 0 3px #c4e6f5;box-shadow:0 0 3px #c4e6f5}.swal2-modal .swal2-file::-webkit-input-placeholder,.swal2-modal .swal2-input::-webkit-input-placeholder,.swal2-modal .swal2-textarea::-webkit-input-placeholder{color:#ccc}.swal2-modal .swal2-file:-ms-input-placeholder,.swal2-modal .swal2-file::-ms-input-placeholder,.swal2-modal .swal2-input:-ms-input-placeholder,.swal2-modal .swal2-input::-ms-input-placeholder,.swal2-modal .swal2-textarea:-ms-input-placeholder,.swal2-modal .swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-modal .swal2-file::placeholder,.swal2-modal .swal2-input::placeholder,.swal2-modal .swal2-textarea::placeholder{color:#ccc}.swal2-modal .swal2-range input{float:left;width:80%}.swal2-modal .swal2-range output{float:right;width:20%;font-size:20px;font-weight:600;text-align:center}.swal2-modal .swal2-range input,.swal2-modal .swal2-range output{height:43px;line-height:43px;vertical-align:middle;margin:20px auto;padding:0}.swal2-modal .swal2-input{height:43px;padding:0 12px}.swal2-modal .swal2-input[type=number]{max-width:150px}.swal2-modal .swal2-file{font-size:20px}.swal2-modal .swal2-textarea{height:108px;padding:12px}.swal2-modal .swal2-select{color:#545454;font-size:inherit;padding:5px 10px;min-width:40%;max-width:100%}.swal2-modal .swal2-radio{border:0}.swal2-modal .swal2-radio label:not(:first-child){margin-left:20px}.swal2-modal .swal2-radio input,.swal2-modal .swal2-radio span{vertical-align:middle}.swal2-modal .swal2-radio input{margin:0 3px 0 0}.swal2-modal .swal2-checkbox{color:#545454}.swal2-modal .swal2-checkbox input,.swal2-modal .swal2-checkbox span{vertical-align:middle}.swal2-modal .swal2-validationerror{background-color:#f0f0f0;margin:0 -20px;overflow:hidden;padding:10px;color:#807f7f;font-size:16px;font-weight:300;display:none}.swal2-modal .swal2-validationerror:before{content:"!";display:inline-block;width:24px;height:24px;border-radius:50%;background-color:#ea7d7d;color:#fff;line-height:24px;text-align:center;margin-right:10px}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.swal2-range input{width:100%!important}.swal2-range output{display:none}}.swal2-icon{width:80px;height:80px;border:4px solid transparent;border-radius:50%;margin:20px auto 30px;padding:0;position:relative;-webkit-box-sizing:content-box;box-sizing:content-box;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon.swal2-error{border-color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;display:block}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}.swal2-icon.swal2-warning{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:#f8bb86;border-color:#facea8}.swal2-icon.swal2-info,.swal2-icon.swal2-warning{font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-info{font-family:Open Sans,sans-serif;color:#3fc3ee;border-color:#9de0f6}.swal2-icon.swal2-question{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:#87adbd;border-color:#c9dae1;font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-success{border-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{border-radius:50%;position:absolute;width:60px;height:120px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px}.swal2-icon.swal2-success .swal2-success-ring{width:80px;height:80px;border:4px solid hsla(98,55%,69%,.2);border-radius:50%;-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.swal2-icon.swal2-success .swal2-success-fix{width:7px;height:90px;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-progresssteps{font-weight:600;margin:0 0 20px;padding:0}.swal2-progresssteps li{display:inline-block;position:relative}.swal2-progresssteps .swal2-progresscircle{background:#3085d6;border-radius:2em;color:#fff;height:2em;line-height:2em;text-align:center;width:2em;z-index:20}.swal2-progresssteps .swal2-progresscircle:first-child{margin-left:0}.swal2-progresssteps .swal2-progresscircle:last-child{margin-right:0}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep{background:#3085d6}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep~.swal2-progresscircle,.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep~.swal2-progressline{background:#add8e6}.swal2-progresssteps .swal2-progressline{background:#3085d6;height:.4em;margin:0 -1px;z-index:10}[class^=swal2]{-webkit-tap-highlight-color:transparent}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}@keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}.swal2-show{-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s}.swal2-show.swal2-noanimation{-webkit-animation:none;animation:none}.swal2-hide{-webkit-animation:hideSweetAlert .15s forwards;animation:hideSweetAlert .15s forwards}.swal2-hide.swal2-noanimation{-webkit-animation:none;animation:none}@-webkit-keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@-webkit-keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}.swal2-animate-success-line-tip{-webkit-animation:animate-success-tip .75s;animation:animate-success-tip .75s}.swal2-animate-success-line-long{-webkit-animation:animate-success-long .75s;animation:animate-success-long .75s}.swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right{-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}@-webkit-keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}.swal2-animate-error-icon{-webkit-animation:animate-error-icon .5s;animation:animate-error-icon .5s}@-webkit-keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.swal2-animate-x-mark{-webkit-animation:animate-x-mark .5s;animation:animate-x-mark .5s}@-webkit-keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.swal2-modal button{margin-right:8px}body.status-page{padding-top:40px;font-family:-apple-system,BlinkMacSystemFont,Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;background-color:#f0f3f4;color:#333;font-size:1.4em;font-weight:400;-webkit-font-smoothing:antialiased}body.status-page.no-padding{padding-top:0!important}body.status-page hr{margin-top:10px;margin-bottom:10px}body.status-page h1,body.status-page h2,body.status-page h3,body.status-page h4,body.status-page h5{margin-bottom:20px}body.status-page img{-webkit-box-sizing:border-box;box-sizing:border-box}body.status-page img.emoji{height:20px;width:20px;vertical-align:middle;max-width:none}body.status-page p,body.status-page strong{color:#333}body.status-page .tooltip .tooltip-inner{padding:8px 12px;font-size:14px;word-wrap:break-word}body.status-page .help-icon{cursor:help}body.status-page .text-component-1,body.status-page .text-success{color:#7ed321}body.status-page .text-component-2,body.status-page .text-info{color:#3498db}body.status-page .text-alert,body.status-page .text-component-3{color:#f7ca18}body.status-page .text-component-4,body.status-page .text-danger{color:#ff6f6f}body.status-page .container{max-width:960px}body.status-page .page-header{margin-top:10px}body.status-page .app-banner{margin-bottom:30px}body.status-page .about-app{margin-bottom:40px}body.status-page .about-app p{font-size:1.2em}body.status-page .alert{font-size:1.2em;font-weight:600}body.status-page .timeline .content-wrapper{margin-top:40px;margin-bottom:40px}body.status-page .timeline h3{margin-top:30px;margin-bottom:40px;font-size:22px}body.status-page .timeline h3 small{margin-left:15px}body.status-page .timeline .list-group.components .panel-body h1,body.status-page .timeline .panel .panel-body h1{margin-top:0;margin-bottom:4px;font-size:2em}body.status-page .timeline .list-group.components .panel-body h2,body.status-page .timeline .panel .panel-body h2{margin-top:0;margin-bottom:4px;font-size:1.8em}body.status-page .timeline .list-group.components .panel-body h3,body.status-page .timeline .panel .panel-body h3{margin-top:0;margin-bottom:4px;font-size:1.6em}body.status-page .timeline .list-group.components .panel-body h4,body.status-page .timeline .panel .panel-body h4{margin-top:0;margin-bottom:4px;font-size:1.4em}body.status-page .timeline .list-group.components .panel-body h5,body.status-page .timeline .panel .panel-body h5{margin-top:0;margin-bottom:4px;font-size:1.2em}body.status-page .timeline .list-group.components .panel-body p,body.status-page .timeline .panel .panel-body p{margin:0}body.status-page .timeline .moment{width:100%;padding-bottom:10px;position:relative}body.status-page .timeline .moment.first:before{top:-5px}body.status-page .timeline .moment:before{content:"";position:absolute;left:26px;top:-5px;width:2px;height:100%;background:#7266ba}body.status-page .timeline .moment .status-icon{background:#fff;width:35px;height:35px;border-radius:50%;border:1px solid #e8e8e8;position:absolute;left:25px;top:14px}body.status-page .timeline .moment .status-icon .icon{position:absolute;top:7px;left:11px}body.status-page .timeline .moment .status-icon .icon.ion-alert{left:15px}body.status-page .timeline .moment .status-icon.status-0{color:#b23f73}body.status-page .timeline .moment .status-icon.status-1{color:#f80}body.status-page .timeline .moment .status-icon.status-2{color:#f7ca18}body.status-page .timeline .moment .status-icon.status-3{color:#3498db}body.status-page .timeline .moment .status-icon.status-4{color:#7ed321}body.status-page .timeline .moment.last:before{background:#fff}body.status-page .timeline .moment .list-group.components,body.status-page .timeline .moment .panel{margin:0;border-radius:2px}body.status-page .timeline .moment .panel-message.list-group.components,body.status-page .timeline .moment .panel.panel-message{border:1px solid #e8e8e8}body.status-page .timeline .moment .panel-message.list-group.components .date,body.status-page .timeline .moment .panel.panel-message .date{color:#949494}body.status-page .timeline .moment .panel-message.list-group.components:before,body.status-page .timeline .moment .panel.panel-message:before{position:absolute;top:16px;left:1px;display:inline-block;border-top:15px solid transparent;border-left:0 solid #e8e8e8;border-right:15px solid #e8e8e8;border-bottom:15px solid transparent;content:" "}body.status-page .timeline .moment .panel-message.list-group.components:after,body.status-page .timeline .moment .panel.panel-message:after{position:absolute;top:17px;left:2px;display:inline-block;border-top:14px solid transparent;border-left:0 solid #fff;border-right:14px solid #fff;border-bottom:14px solid transparent;content:" "}body.status-page .timeline .moment .list-group.components .panel-heading strong,body.status-page .timeline .moment .panel .panel-heading strong{font-size:1.1em}body.status-page .timeline .moment .list-group.components .panel-body,body.status-page .timeline .moment .panel .panel-body{border-top:1px solid #eee}body.status-page .timeline .moment .list-group.components .panel-body p,body.status-page .timeline .moment .panel .panel-body p{font-size:1.1em}body.status-page .timeline .moment .list-group.components .panel-body p:not(:last-child),body.status-page .timeline .moment .panel .panel-body p:not(:last-child){margin-bottom:10px}@media (max-width:767px){body.status-page .timeline .moment .content{width:100%}}body.status-page .list-group{padding-left:0}body.status-page .list-group .list-group-item{border-radius:0;background-color:#fff;border:1px solid #e8e8e8;font-size:1.1em;padding:15px}body.status-page .list-group .list-group-item a{font-weight:400}body.status-page .list-group .list-group-item h4{margin:0;font-weight:400;max-width:90%}body.status-page .list-group .list-group-item p:not(:last-child),body.status-page .list-group .list-group-item time:not(:last-child){margin-bottom:10px}body.status-page .list-group .list-group-item time{margin-bottom:0}body.status-page .list-group .list-group-item i.icon{font-size:21px;line-height:24px;text-align:center;display:inline-block;min-width:20px}body.status-page .list-group .list-group-item.group-name{background-color:#e8e8e8;padding-top:.6em;padding-bottom:.6em;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.status-page .list-group .list-group-item.break{padding:1px;background-color:#f0f3f4}body.status-page .list-group.components{border-color:#e8e8e8}body.status-page .list-group.components:last-child{margin-bottom:30px}body.status-page .list-group.components+.components{margin-top:5px}body.status-page .list-group.components p{margin-bottom:10px}body.status-page .list-group.components .badge{color:transparent}body.status-page .list-group.components a{color:#333!important}body.status-page footer{position:absolute;width:100%;bottom:0;height:60px;padding:30px 0 60px;border-top:1px solid #e8e8e8;color:#666;font-size:13px;line-height:30px;text-align:center;text-shadow:0 1px 0 hsla(0,0%,100%,.5)}body.status-page footer .btn{text-shadow:none}body.status-page footer .icons a.icon-link{display:inline-block;min-width:30px;height:30px;border-radius:3px;background-color:#666;text-align:center;color:#e8e8e8;-webkit-transition:all .15s;transition:all .15s;padding:0 10px}body.status-page footer .icons a.icon-link.rss{background-color:#f80}body.status-page footer .icons a.icon-link:hover{text-decoration:none;background-color:#4d4c4c}body.status-page footer .list-inline>li{padding-right:0}@media (min-width:768px){body.status-page footer{text-align:left}body.status-page footer .list-inline{text-align:right}body.status-page footer .list-inline>li{padding-right:0}body.status-page footer .icons{margin-top:0;text-align:right}}body.status-page .section-components,body.status-page .section-metrics,body.status-page .section-scheduled,body.status-page .section-timeline{margin-top:40px}body.status-page .navbar-custom{padding-top:10px;padding-bottom:10px;width:100%;border-radius:0;margin-bottom:10px}body.status-page .navbar-custom a.navbar-brand{font-size:30px;font-weight:600}body.status-page .navbar-custom .navbar-nav li a{color:#333;font-size:1.7rem}body.status-page .navbar-custom .navbar-nav li a:hover{background-color:transparent} \ No newline at end of file +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:transparent!important;color:#000!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-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:""}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.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}}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#67808c;text-decoration:none}a:focus,a:hover{color:#465760;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:4px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:3px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,h1,h2,h3,h4,h5{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,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,.h5,h4,h5{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,h4 .small,h4 small,h5 .small,h5 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}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.text-right{text-align:right}.text-center{text-align:center}.text-muted{color:#777}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code{font-family:Menlo,Monaco,Consolas,Courier New,monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:3px}code{padding:2px 4px;font-size:90%}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.col-lg-4,.col-lg-6,.col-lg-8,.col-md-3,.col-md-4,.col-md-6,.col-md-9,.col-md-12,.col-sm-1,.col-sm-3,.col-sm-4,.col-sm-8,.col-sm-11,.col-sm-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-6,.col-xs-9,.col-xs-10,.col-xs-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-6,.col-xs-9,.col-xs-10,.col-xs-12{float:left}.col-xs-2{width:16.66666667%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333%}.col-xs-6{width:50%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333%}.col-xs-12{width:100%}.col-xs-push-1{left:8.33333333%}.col-xs-offset-0{margin-left:0}.col-xs-offset-2{margin-left:16.66666667%}@media (min-width:768px){.col-sm-1,.col-sm-3,.col-sm-4,.col-sm-8,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.33333333%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333%}.col-sm-8{width:66.66666667%}.col-sm-11{width:91.66666667%}.col-sm-12{width:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-2{margin-left:16.66666667%}}@media (min-width:992px){.col-md-3,.col-md-4,.col-md-6,.col-md-9,.col-md-12{float:left}.col-md-3{width:25%}.col-md-4{width:33.33333333%}.col-md-6{width:50%}.col-md-9{width:75%}.col-md-12{width:100%}}@media (min-width:1200px){.col-lg-4,.col-lg-6,.col-lg-8{float:left}.col-lg-4{width:33.33333333%}.col-lg-6{width:50%}.col-lg-8{width:66.66666667%}.col-lg-offset-2{margin-left:16.66666667%}}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table .table{background-color:#fff}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}fieldset{margin:0;min-width:0}fieldset,legend{padding:0;border:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.form-control{height:34px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.form-control:focus{outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);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::-ms-expand{border:0;background-color:transparent}.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=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline input[type=checkbox],.checkbox input[type=checkbox],.radio-inline input[type=radio],.radio input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .checkbox label,fieldset[disabled] .radio-inline,fieldset[disabled] .radio label,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:after,.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active:focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:focus{color:#333;background-color:#e6e5e5;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e6e5e5;border-color:#adadad}.btn-default.active:focus,.btn-default.active:hover,.btn-default:active:focus,.btn-default:active:hover,.open>.btn-default.dropdown-toggle:focus,.open>.btn-default.dropdown-toggle:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#67808c;border-color:#5c727d}.btn-primary:focus{color:#fff;background-color:#51656f;border-color:#262f34}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#51656f;border-color:#42525a}.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active:focus,.btn-primary:active:hover,.open>.btn-primary.dropdown-toggle:focus,.open>.btn-primary.dropdown-toggle:hover{color:#fff;background-color:#42525a;border-color:#262f34}.btn-primary.active,.btn-primary:active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#67808c;border-color:#5c727d}.btn-primary .badge{color:#67808c;background-color:#fff}.btn-success{color:#fff;background-color:#7ed321;border-color:#71bd1e}.btn-success:focus{color:#fff;background-color:#64a71a;border-color:#2f4f0c}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#64a71a;border-color:#518815}.btn-success.active:focus,.btn-success.active:hover,.btn-success:active:focus,.btn-success:active:hover,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle:hover{color:#fff;background-color:#518815;border-color:#2f4f0c}.btn-success.active,.btn-success:active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#7ed321;border-color:#71bd1e}.btn-success .badge{color:#7ed321;background-color:#fff}.btn-info{color:#fff;background-color:#3498db;border-color:#258cd1}.btn-info:focus{color:#fff;background-color:#217dbb;border-color:#124364}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#217dbb;border-color:#1c699d}.btn-info.active:focus,.btn-info.active:hover,.btn-info:active:focus,.btn-info:active:hover,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle:hover{color:#fff;background-color:#1c699d;border-color:#124364}.btn-info.active,.btn-info:active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#3498db;border-color:#258cd1}.btn-info .badge{color:#3498db;background-color:#fff}.btn-danger{color:#fff;background-color:#ff6f6f;border-color:#ff5656}.btn-danger:focus{color:#fff;background-color:#ff3c3c;border-color:#d50000}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#ff3c3c;border-color:#ff1818}.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active:focus,.btn-danger:active:hover,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle:hover{color:#fff;background-color:#ff1818;border-color:#d50000}.btn-danger.active,.btn-danger:active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#ff6f6f;border-color:#ff5656}.btn-danger .badge{color:#ff6f6f;background-color:#fff}.btn-link{color:#67808c;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#465760;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:2px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.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:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#67808c}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.pull-right>.dropdown-menu{right:0;left:auto}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-group{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn{position:relative;float:left}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{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-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-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-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-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio]{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-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:3px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.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-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group .form-control:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group .form-control:last-child{border-bottom-left-radius:0;border-top-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{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{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#67808c}.nav>li>a>img{max-width:none}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:3px}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}}.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.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;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{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-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}@media (min-width:768px){.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.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}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#67808c}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#51656f}.label-info{background-color:#3498db}.label-info[href]:focus,.label-info[href]:hover{background-color:#217dbb}.label-danger{background-color:#ff6f6f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#ff3c3c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.list-group-item.active>.badge{color:#67808c;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:3px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissible{padding-right:35px}.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.list-group{margin-bottom:20px;padding-left:0}.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-right-radius:3px;border-top-left-radius:3px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#67808c;border-color:#67808c}.panel,body.status-page .list-group.components{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.list-group,body.status-page .list-group.components>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,body.status-page .list-group.components>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,body.status-page .list-group.components>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:2px;border-top-left-radius:2px}.panel>.list-group:last-child .list-group-item:last-child,body.status-page .list-group.components>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,body.status-page .list-group.components>.table{margin-bottom:0}.panel>.table:first-child,body.status-page .list-group.components>.table:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.panel>.table:last-child,body.status-page .list-group.components>.table:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.panel-body+.table,.panel>.table+.panel-body,body.status-page .list-group.components>.panel-body+.table,body.status-page .list-group.components>.table+.panel-body{border-top:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0);transform:translate(0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:4px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header:after,.modal-header:before{content:" ";display:table}.modal-header:after{clear:both}.modal-header .close{margin-top:-2px}.modal-body{position:relative;padding:15px}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}}.tooltip{position:absolute;z-index:1070;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.pull-right{float:right!important}.hide{display:none!important}.show{display:block!important}.hidden{display:none!important}@-ms-viewport{width:device-width}.visible-sm,.visible-xs{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}td.visible-xs,th.visible-xs{display:table-cell!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}td.visible-sm,th.visible-sm{display:table-cell!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}}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time input:focus,.flatpickr-time input:hover{background:#f3f3f3}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.flatpickr-time{text-align:left}html{position:relative;min-height:100%;-webkit-font-smoothing:antialiased;overflow-y:scroll}body{margin-bottom:60px;padding-bottom:60px}.uppercase{text-transform:uppercase}.margin-bottom{margin-bottom:20px}.no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}label{font-size:14px}textarea{resize:none;overflow:auto}.markdown-control{position:relative}.markdown-control:before{position:absolute;display:block;right:0;bottom:0;width:40px;height:40px;font-size:2em;font-family:Ionicons;content:"\F4E6"}.form-control{display:block;width:100%;height:45px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.form-control:focus{border-color:#66afe9}@media (max-width:767px){.component-inline .radio-items{text-align:left}.component-inline .radio-items .radio-inline{margin-left:0;width:100%}}.well{border-radius:0}.alert{border-radius:4px;background:#f7ca18;border:2px solid #d5ab07}.alert.alert-success{background-color:#7ed321;border:2px solid #64a71a;color:#fff}.alert.alert-success a{color:#fff;font-weight:700}.alert.alert-info{background:#3498db;border:2px solid #217dbb;color:#fff}.alert.alert-info a{color:#fff;font-weight:700}.alert.alert-danger{background:#ff6f6f;border:2px solid #ff3c3c;color:#fff}.alert.alert-danger a{color:#fff;font-weight:700}.panel-danger{border-color:#ff3c3c}.panel-danger>.panel-heading{color:#fff;background-color:#ff6f6f;border-color:#ff3c3c}.panel-danger>.panel-heading .badge{color:#ff6f6f;background-color:#fff}.panel-info{border-color:#217dbb}.panel-info>.panel-heading{color:#fff;background-color:#3498db;border-color:#217dbb}.panel-info>.panel-heading .badge{color:#3498db;background-color:#fff}.btn.btn-default{color:#333;background:#fff;border:1px solid #e6e5e5}.btn.btn-default.active,.btn.btn-default:active,.btn.btn-default:focus,.btn.btn-default:hover{background:#f2f2f2;border-color:#e6e5e5;color:#333;outline:none;outline-offset:0}.btn.btn-default.disabled,.btn.btn-default.disabled.active,.btn.btn-default.disabled:active,.btn.btn-default.disabled:focus,.btn.btn-default.disabled:hover,.btn.btn-default[disabled],.btn.btn-default[disabled].active,.btn.btn-default[disabled]:active,.btn.btn-default[disabled]:focus,.btn.btn-default[disabled]:hover,fieldset[disabled] .btn.btn-default,fieldset[disabled] .btn.btn-default.active,fieldset[disabled] .btn.btn-default:active,fieldset[disabled] .btn.btn-default:focus,fieldset[disabled] .btn.btn-default:hover{background-color:#fff;border-color:#e6e5e5}.btn.btn-primary{color:#fff;background:#67808c;border:1px solid #51656f}.btn.btn-primary.active,.btn.btn-primary:active,.btn.btn-primary:focus,.btn.btn-primary:hover{background:#5c727d;border-color:#51656f;color:#fff;outline:none;outline-offset:0}.btn.btn-primary.disabled,.btn.btn-primary.disabled.active,.btn.btn-primary.disabled:active,.btn.btn-primary.disabled:focus,.btn.btn-primary.disabled:hover,.btn.btn-primary[disabled],.btn.btn-primary[disabled].active,.btn.btn-primary[disabled]:active,.btn.btn-primary[disabled]:focus,.btn.btn-primary[disabled]:hover,fieldset[disabled] .btn.btn-primary,fieldset[disabled] .btn.btn-primary.active,fieldset[disabled] .btn.btn-primary:active,fieldset[disabled] .btn.btn-primary:focus,fieldset[disabled] .btn.btn-primary:hover{background-color:#748c99;border-color:#51656f}.btn.btn-success{color:#fff;background:#7ed321;border:1px solid #64a71a}.btn.btn-success.active,.btn.btn-success:active,.btn.btn-success:focus,.btn.btn-success:hover{background:#71bd1e;border-color:#64a71a;color:#fff;outline:none;outline-offset:0}.btn.btn-success.disabled,.btn.btn-success.disabled.active,.btn.btn-success.disabled:active,.btn.btn-success.disabled:focus,.btn.btn-success.disabled:hover,.btn.btn-success[disabled],.btn.btn-success[disabled].active,.btn.btn-success[disabled]:active,.btn.btn-success[disabled]:focus,.btn.btn-success[disabled]:hover,fieldset[disabled] .btn.btn-success,fieldset[disabled] .btn.btn-success.active,fieldset[disabled] .btn.btn-success:active,fieldset[disabled] .btn.btn-success:focus,fieldset[disabled] .btn.btn-success:hover{background-color:#8bde2f;border-color:#64a71a}.btn.btn-info{color:#fff;background:#3498db;border:1px solid #217dbb}.btn.btn-info.active,.btn.btn-info:active,.btn.btn-info:focus,.btn.btn-info:hover{background:#258cd1;border-color:#217dbb;color:#fff;outline:none;outline-offset:0}.btn.btn-info.disabled,.btn.btn-info.disabled.active,.btn.btn-info.disabled:active,.btn.btn-info.disabled:focus,.btn.btn-info.disabled:hover,.btn.btn-info[disabled],.btn.btn-info[disabled].active,.btn.btn-info[disabled]:active,.btn.btn-info[disabled]:focus,.btn.btn-info[disabled]:hover,fieldset[disabled] .btn.btn-info,fieldset[disabled] .btn.btn-info.active,fieldset[disabled] .btn.btn-info:active,fieldset[disabled] .btn.btn-info:focus,fieldset[disabled] .btn.btn-info:hover{background-color:#4aa3df;border-color:#217dbb}.btn.btn-danger{color:#fff;background:#ff6f6f;border:1px solid #ff3c3c}.btn.btn-danger.active,.btn.btn-danger:active,.btn.btn-danger:focus,.btn.btn-danger:hover{background:#ff5656;border-color:#ff3c3c;color:#fff;outline:none;outline-offset:0}.btn.btn-danger.disabled,.btn.btn-danger.disabled.active,.btn.btn-danger.disabled:active,.btn.btn-danger.disabled:focus,.btn.btn-danger.disabled:hover,.btn.btn-danger[disabled],.btn.btn-danger[disabled].active,.btn.btn-danger[disabled]:active,.btn.btn-danger[disabled]:focus,.btn.btn-danger[disabled]:hover,fieldset[disabled] .btn.btn-danger,fieldset[disabled] .btn.btn-danger.active,fieldset[disabled] .btn.btn-danger:active,fieldset[disabled] .btn.btn-danger:focus,fieldset[disabled] .btn.btn-danger:hover{background-color:#ff8989;border-color:#ff3c3c}.btn-outline{background-color:transparent;background-image:none!important;color:inherit;-webkit-transition:all .5s;transition:all .5s}.btn-default.btn-outline{color:#999}.btn-primary.btn-outline{color:#428bca}.btn-success.btn-outline{color:#5cb85c}.btn-info.btn-outline{color:#5bc0de}.btn-danger.btn-outline{color:#d9534f}.btn-danger.btn-outline:hover,.btn-info.btn-outline:hover,.btn-primary.btn-outline:hover,.btn-success.btn-outline:hover{color:#fff}.pager li>a,.pager li>span{border-radius:3px}[class^=swal2]{-webkit-tap-highlight-color:transparent}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}@keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}@-webkit-keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@-webkit-keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@-webkit-keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-webkit-keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@-webkit-keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}body.status-page{padding-top:40px;font-family:-apple-system,BlinkMacSystemFont,Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;background-color:#f0f3f4;color:#333;font-size:1.4em;font-weight:400;-webkit-font-smoothing:antialiased}body.status-page.no-padding{padding-top:0!important}body.status-page hr{margin-top:10px;margin-bottom:10px}body.status-page h1,body.status-page h2,body.status-page h3,body.status-page h4,body.status-page h5{margin-bottom:20px}body.status-page img{-webkit-box-sizing:border-box;box-sizing:border-box}body.status-page p,body.status-page strong{color:#333}body.status-page .help-icon{cursor:help}body.status-page .text-success{color:#7ed321}body.status-page .text-danger{color:#ff6f6f}body.status-page .container{max-width:960px}body.status-page .app-banner{margin-bottom:30px}body.status-page .about-app{margin-bottom:40px}body.status-page .about-app p{font-size:1.2em}body.status-page .alert{font-size:1.2em;font-weight:600}body.status-page .timeline .content-wrapper{margin-top:40px;margin-bottom:40px}body.status-page .timeline h3{margin-top:30px;margin-bottom:40px;font-size:22px}body.status-page .timeline h3 small{margin-left:15px}body.status-page .timeline .list-group.components .panel-body h1,body.status-page .timeline .panel .panel-body h1{margin-top:0;margin-bottom:4px;font-size:2em}body.status-page .timeline .list-group.components .panel-body h2,body.status-page .timeline .panel .panel-body h2{margin-top:0;margin-bottom:4px;font-size:1.8em}body.status-page .timeline .list-group.components .panel-body h3,body.status-page .timeline .panel .panel-body h3{margin-top:0;margin-bottom:4px;font-size:1.6em}body.status-page .timeline .list-group.components .panel-body h4,body.status-page .timeline .panel .panel-body h4{margin-top:0;margin-bottom:4px;font-size:1.4em}body.status-page .timeline .list-group.components .panel-body h5,body.status-page .timeline .panel .panel-body h5{margin-top:0;margin-bottom:4px;font-size:1.2em}body.status-page .timeline .list-group.components .panel-body p,body.status-page .timeline .panel .panel-body p{margin:0}body.status-page .timeline .moment{width:100%;padding-bottom:10px;position:relative}body.status-page .timeline .moment.first:before{top:-5px}body.status-page .timeline .moment:before{content:"";position:absolute;left:26px;top:-5px;width:2px;height:100%;background:#7266ba}body.status-page .timeline .moment .status-icon{background:#fff;width:35px;height:35px;border-radius:50%;border:1px solid #e8e8e8;position:absolute;left:25px;top:14px}body.status-page .timeline .moment .status-icon .icon{position:absolute;top:7px;left:11px}body.status-page .timeline .moment .status-icon .icon.ion-alert{left:15px}body.status-page .timeline .moment.last:before{background:#fff}body.status-page .timeline .moment .list-group.components,body.status-page .timeline .moment .panel{margin:0;border-radius:2px}body.status-page .timeline .moment .panel-message.list-group.components,body.status-page .timeline .moment .panel.panel-message{border:1px solid #e8e8e8}body.status-page .timeline .moment .panel-message.list-group.components .date,body.status-page .timeline .moment .panel.panel-message .date{color:#949494}body.status-page .timeline .moment .panel-message.list-group.components:before,body.status-page .timeline .moment .panel.panel-message:before{position:absolute;top:16px;left:1px;display:inline-block;border-top:15px solid transparent;border-left:0 solid #e8e8e8;border-right:15px solid #e8e8e8;border-bottom:15px solid transparent;content:" "}body.status-page .timeline .moment .panel-message.list-group.components:after,body.status-page .timeline .moment .panel.panel-message:after{position:absolute;top:17px;left:2px;display:inline-block;border-top:14px solid transparent;border-left:0 solid #fff;border-right:14px solid #fff;border-bottom:14px solid transparent;content:" "}body.status-page .timeline .moment .list-group.components .panel-heading strong,body.status-page .timeline .moment .panel .panel-heading strong{font-size:1.1em}body.status-page .timeline .moment .list-group.components .panel-body,body.status-page .timeline .moment .panel .panel-body{border-top:1px solid #eee}body.status-page .timeline .moment .list-group.components .panel-body p,body.status-page .timeline .moment .panel .panel-body p{font-size:1.1em}body.status-page .timeline .moment .list-group.components .panel-body p:not(:last-child),body.status-page .timeline .moment .panel .panel-body p:not(:last-child){margin-bottom:10px}@media (max-width:767px){body.status-page .timeline .moment .content{width:100%}}body.status-page .list-group{padding-left:0}body.status-page .list-group .list-group-item{border-radius:0;background-color:#fff;border:1px solid #e8e8e8;font-size:1.1em;padding:15px}body.status-page .list-group .list-group-item a{font-weight:400}body.status-page .list-group .list-group-item h4{margin:0;font-weight:400;max-width:90%}body.status-page .list-group .list-group-item p:not(:last-child),body.status-page .list-group .list-group-item time:not(:last-child){margin-bottom:10px}body.status-page .list-group .list-group-item time{margin-bottom:0}body.status-page .list-group .list-group-item i.icon{font-size:21px;line-height:24px;text-align:center;display:inline-block;min-width:20px}body.status-page .list-group .list-group-item.group-name{background-color:#e8e8e8;padding-top:.6em;padding-bottom:.6em;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.status-page .list-group .list-group-item.break{padding:1px;background-color:#f0f3f4}body.status-page .list-group.components{border-color:#e8e8e8}body.status-page .list-group.components:last-child{margin-bottom:30px}body.status-page .list-group.components+.components{margin-top:5px}body.status-page .list-group.components p{margin-bottom:10px}body.status-page .list-group.components .badge{color:transparent}body.status-page .list-group.components a{color:#333!important}body.status-page footer{position:absolute;width:100%;bottom:0;height:60px;padding:30px 0 60px;border-top:1px solid #e8e8e8;color:#666;font-size:13px;line-height:30px;text-align:center;text-shadow:0 1px 0 hsla(0,0%,100%,.5)}body.status-page footer .btn{text-shadow:none}body.status-page footer .list-inline>li{padding-right:0}@media (min-width:768px){body.status-page footer{text-align:left}body.status-page footer .list-inline{text-align:right}body.status-page footer .list-inline>li{padding-right:0}body.status-page footer .icons{margin-top:0;text-align:right}}body.status-page .section-components,body.status-page .section-metrics,body.status-page .section-scheduled,body.status-page .section-timeline{margin-top:40px}body.status-page .navbar-custom{padding-top:10px;padding-bottom:10px;width:100%;border-radius:0;margin-bottom:10px}body.status-page .navbar-custom a.navbar-brand{font-size:30px;font-weight:600}body.status-page .navbar-custom .navbar-nav li a{color:#333;font-size:1.7rem}body.status-page .navbar-custom .navbar-nav li a:hover{background-color:transparent}body.status-page .incident-update-item>p{display:inline-block} \ No newline at end of file diff --git a/public/dist/css/dashboard/dashboard.css b/public/dist/css/dashboard/dashboard.css index 2736f441..6a9b4490 100644 --- a/public/dist/css/dashboard/dashboard.css +++ b/public/dist/css/dashboard/dashboard.css @@ -9,14 +9,14 @@ Material Design Icons: https://github.com/google/material-design-icons used under CC BY http://creativecommons.org/licenses/by/4.0/ Modified icons to fit ionicon’s grid from original. -*/@font-face{font-family:Ionicons;src:url("../../../fonts/ionicons.eot?v=2.0.1");src:url("../../../fonts/ionicons.eot?v=2.0.1#iefix") format("embedded-opentype"),url("../../../fonts/ionicons.ttf?v=2.0.1") format("truetype"),url("../../../fonts/ionicons.woff?v=2.0.1") format("woff"),url("../../../fonts/ionicons.svg?v=2.0.1#Ionicons") format("svg");font-weight:400;font-style:normal}.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-add-circle:before,.ion-android-add:before,.ion-android-alarm-clock:before,.ion-android-alert:before,.ion-android-apps:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down:before,.ion-android-arrow-dropdown-circle:before,.ion-android-arrow-dropdown:before,.ion-android-arrow-dropleft-circle:before,.ion-android-arrow-dropleft:before,.ion-android-arrow-dropright-circle:before,.ion-android-arrow-dropright:before,.ion-android-arrow-dropup-circle:before,.ion-android-arrow-dropup:before,.ion-android-arrow-forward:before,.ion-android-arrow-up:before,.ion-android-attach:before,.ion-android-bar:before,.ion-android-bicycle:before,.ion-android-boat:before,.ion-android-bookmark:before,.ion-android-bulb:before,.ion-android-bus:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-cancel:before,.ion-android-car:before,.ion-android-cart:before,.ion-android-chat:before,.ion-android-checkbox-blank:before,.ion-android-checkbox-outline-blank:before,.ion-android-checkbox-outline:before,.ion-android-checkbox:before,.ion-android-checkmark-circle:before,.ion-android-clipboard:before,.ion-android-close:before,.ion-android-cloud-circle:before,.ion-android-cloud-done:before,.ion-android-cloud-outline:before,.ion-android-cloud:before,.ion-android-color-palette:before,.ion-android-compass:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-contract:before,.ion-android-create:before,.ion-android-delete:before,.ion-android-desktop:before,.ion-android-document:before,.ion-android-done-all:before,.ion-android-done:before,.ion-android-download:before,.ion-android-drafts:before,.ion-android-exit:before,.ion-android-expand:before,.ion-android-favorite-outline:before,.ion-android-favorite:before,.ion-android-film:before,.ion-android-folder-open:before,.ion-android-folder:before,.ion-android-funnel:before,.ion-android-globe:before,.ion-android-hand:before,.ion-android-hangout:before,.ion-android-happy:before,.ion-android-home:before,.ion-android-image:before,.ion-android-laptop:before,.ion-android-list:before,.ion-android-locate:before,.ion-android-lock:before,.ion-android-mail:before,.ion-android-map:before,.ion-android-menu:before,.ion-android-microphone-off:before,.ion-android-microphone:before,.ion-android-more-horizontal:before,.ion-android-more-vertical:before,.ion-android-navigate:before,.ion-android-notifications-none:before,.ion-android-notifications-off:before,.ion-android-notifications:before,.ion-android-open:before,.ion-android-options:before,.ion-android-people:before,.ion-android-person-add:before,.ion-android-person:before,.ion-android-phone-landscape:before,.ion-android-phone-portrait:before,.ion-android-pin:before,.ion-android-plane:before,.ion-android-playstore:before,.ion-android-print:before,.ion-android-radio-button-off:before,.ion-android-radio-button-on:before,.ion-android-refresh:before,.ion-android-remove-circle:before,.ion-android-remove:before,.ion-android-restaurant:before,.ion-android-sad:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share-alt:before,.ion-android-share:before,.ion-android-star-half:before,.ion-android-star-outline:before,.ion-android-star:before,.ion-android-stopwatch:before,.ion-android-subway:before,.ion-android-sunny:before,.ion-android-sync:before,.ion-android-textsms:before,.ion-android-time:before,.ion-android-train:before,.ion-android-unlock:before,.ion-android-upload:before,.ion-android-volume-down:before,.ion-android-volume-mute:before,.ion-android-volume-off:before,.ion-android-volume-up:before,.ion-android-walk:before,.ion-android-warning:before,.ion-android-watch:before,.ion-android-wifi:before,.ion-aperture:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-asterisk:before,.ion-at:before,.ion-backspace-outline:before,.ion-backspace:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bonfire:before,.ion-bookmark:before,.ion-bowtie:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-cash:before,.ion-chatbox-working:before,.ion-chatbox:before,.ion-chatboxes:before,.ion-chatbubble-working:before,.ion-chatbubble:before,.ion-chatbubbles:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-checkmark:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close-circled:before,.ion-close-round:before,.ion-close:before,.ion-closed-captioning:before,.ion-cloud:before,.ion-code-download:before,.ion-code-working:before,.ion-code:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-crop:before,.ion-cube:before,.ion-disc:before,.ion-document-text:before,.ion-document:before,.ion-drag:before,.ion-earth:before,.ion-easel:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email-unread:before,.ion-email:before,.ion-erlenmeyer-flask-bubbles:before,.ion-erlenmeyer-flask:before,.ion-eye-disabled:before,.ion-eye:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-fireball:before,.ion-flag:before,.ion-flame:before,.ion-flash-off:before,.ion-flash:before,.ion-folder:before,.ion-fork-repo:before,.ion-fork:before,.ion-forward:before,.ion-funnel:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-happy-outline:before,.ion-happy:before,.ion-headphone:before,.ion-heart-broken:before,.ion-heart:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-icecream:before,.ion-image:before,.ion-images:before,.ion-information-circled:before,.ion-information:before,.ion-ionic:before,.ion-ios-alarm-outline:before,.ion-ios-alarm:before,.ion-ios-albums-outline:before,.ion-ios-albums:before,.ion-ios-americanfootball-outline:before,.ion-ios-americanfootball:before,.ion-ios-analytics-outline:before,.ion-ios-analytics:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-left:before,.ion-ios-arrow-right:before,.ion-ios-arrow-thin-down:before,.ion-ios-arrow-thin-left:before,.ion-ios-arrow-thin-right:before,.ion-ios-arrow-thin-up:before,.ion-ios-arrow-up:before,.ion-ios-at-outline:before,.ion-ios-at:before,.ion-ios-barcode-outline:before,.ion-ios-barcode:before,.ion-ios-baseball-outline:before,.ion-ios-baseball:before,.ion-ios-basketball-outline:before,.ion-ios-basketball:before,.ion-ios-bell-outline:before,.ion-ios-bell:before,.ion-ios-body-outline:before,.ion-ios-body:before,.ion-ios-bolt-outline:before,.ion-ios-bolt:before,.ion-ios-book-outline:before,.ion-ios-book:before,.ion-ios-bookmarks-outline:before,.ion-ios-bookmarks:before,.ion-ios-box-outline:before,.ion-ios-box:before,.ion-ios-briefcase-outline:before,.ion-ios-briefcase:before,.ion-ios-browsers-outline:before,.ion-ios-browsers:before,.ion-ios-calculator-outline:before,.ion-ios-calculator:before,.ion-ios-calendar-outline:before,.ion-ios-calendar:before,.ion-ios-camera-outline:before,.ion-ios-camera:before,.ion-ios-cart-outline:before,.ion-ios-cart:before,.ion-ios-chatboxes-outline:before,.ion-ios-chatboxes:before,.ion-ios-chatbubble-outline:before,.ion-ios-chatbubble:before,.ion-ios-checkmark-empty:before,.ion-ios-checkmark-outline:before,.ion-ios-checkmark:before,.ion-ios-circle-filled:before,.ion-ios-circle-outline:before,.ion-ios-clock-outline:before,.ion-ios-clock:before,.ion-ios-close-empty:before,.ion-ios-close-outline:before,.ion-ios-close:before,.ion-ios-cloud-download-outline:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloud:before,.ion-ios-cloudy-night-outline:before,.ion-ios-cloudy-night:before,.ion-ios-cloudy-outline:before,.ion-ios-cloudy:before,.ion-ios-cog-outline:before,.ion-ios-cog:before,.ion-ios-color-filter-outline:before,.ion-ios-color-filter:before,.ion-ios-color-wand-outline:before,.ion-ios-color-wand:before,.ion-ios-compose-outline:before,.ion-ios-compose:before,.ion-ios-contact-outline:before,.ion-ios-contact:before,.ion-ios-copy-outline:before,.ion-ios-copy:before,.ion-ios-crop-strong:before,.ion-ios-crop:before,.ion-ios-download-outline:before,.ion-ios-download:before,.ion-ios-drag:before,.ion-ios-email-outline:before,.ion-ios-email:before,.ion-ios-eye-outline:before,.ion-ios-eye:before,.ion-ios-fastforward-outline:before,.ion-ios-fastforward:before,.ion-ios-filing-outline:before,.ion-ios-filing:before,.ion-ios-film-outline:before,.ion-ios-film:before,.ion-ios-flag-outline:before,.ion-ios-flag:before,.ion-ios-flame-outline:before,.ion-ios-flame:before,.ion-ios-flask-outline:before,.ion-ios-flask:before,.ion-ios-flower-outline:before,.ion-ios-flower:before,.ion-ios-folder-outline:before,.ion-ios-folder:before,.ion-ios-football-outline:before,.ion-ios-football:before,.ion-ios-game-controller-a-outline:before,.ion-ios-game-controller-a:before,.ion-ios-game-controller-b-outline:before,.ion-ios-game-controller-b:before,.ion-ios-gear-outline:before,.ion-ios-gear:before,.ion-ios-glasses-outline:before,.ion-ios-glasses:before,.ion-ios-grid-view-outline:before,.ion-ios-grid-view:before,.ion-ios-heart-outline:before,.ion-ios-heart:before,.ion-ios-help-empty:before,.ion-ios-help-outline:before,.ion-ios-help:before,.ion-ios-home-outline:before,.ion-ios-home:before,.ion-ios-infinite-outline:before,.ion-ios-infinite:before,.ion-ios-information-empty:before,.ion-ios-information-outline:before,.ion-ios-information:before,.ion-ios-ionic-outline:before,.ion-ios-keypad-outline:before,.ion-ios-keypad:before,.ion-ios-lightbulb-outline:before,.ion-ios-lightbulb:before,.ion-ios-list-outline:before,.ion-ios-list:before,.ion-ios-location-outline:before,.ion-ios-location:before,.ion-ios-locked-outline:before,.ion-ios-locked:before,.ion-ios-loop-strong:before,.ion-ios-loop:before,.ion-ios-medical-outline:before,.ion-ios-medical:before,.ion-ios-medkit-outline:before,.ion-ios-medkit:before,.ion-ios-mic-off:before,.ion-ios-mic-outline:before,.ion-ios-mic:before,.ion-ios-minus-empty:before,.ion-ios-minus-outline:before,.ion-ios-minus:before,.ion-ios-monitor-outline:before,.ion-ios-monitor:before,.ion-ios-moon-outline:before,.ion-ios-moon:before,.ion-ios-more-outline:before,.ion-ios-more:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate-outline:before,.ion-ios-navigate:before,.ion-ios-nutrition-outline:before,.ion-ios-nutrition:before,.ion-ios-paper-outline:before,.ion-ios-paper:before,.ion-ios-paperplane-outline:before,.ion-ios-paperplane:before,.ion-ios-partlysunny-outline:before,.ion-ios-partlysunny:before,.ion-ios-pause-outline:before,.ion-ios-pause:before,.ion-ios-paw-outline:before,.ion-ios-paw:before,.ion-ios-people-outline:before,.ion-ios-people:before,.ion-ios-person-outline:before,.ion-ios-person:before,.ion-ios-personadd-outline:before,.ion-ios-personadd:before,.ion-ios-photos-outline:before,.ion-ios-photos:before,.ion-ios-pie-outline:before,.ion-ios-pie:before,.ion-ios-pint-outline:before,.ion-ios-pint:before,.ion-ios-play-outline:before,.ion-ios-play:before,.ion-ios-plus-empty:before,.ion-ios-plus-outline:before,.ion-ios-plus:before,.ion-ios-pricetag-outline:before,.ion-ios-pricetag:before,.ion-ios-pricetags-outline:before,.ion-ios-pricetags:before,.ion-ios-printer-outline:before,.ion-ios-printer:before,.ion-ios-pulse-strong:before,.ion-ios-pulse:before,.ion-ios-rainy-outline:before,.ion-ios-rainy:before,.ion-ios-recording-outline:before,.ion-ios-recording:before,.ion-ios-redo-outline:before,.ion-ios-redo:before,.ion-ios-refresh-empty:before,.ion-ios-refresh-outline:before,.ion-ios-refresh:before,.ion-ios-reload:before,.ion-ios-reverse-camera-outline:before,.ion-ios-reverse-camera:before,.ion-ios-rewind-outline:before,.ion-ios-rewind:before,.ion-ios-rose-outline:before,.ion-ios-rose:before,.ion-ios-search-strong:before,.ion-ios-search:before,.ion-ios-settings-strong:before,.ion-ios-settings:before,.ion-ios-shuffle-strong:before,.ion-ios-shuffle:before,.ion-ios-skipbackward-outline:before,.ion-ios-skipbackward:before,.ion-ios-skipforward-outline:before,.ion-ios-skipforward:before,.ion-ios-snowy:before,.ion-ios-speedometer-outline:before,.ion-ios-speedometer:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-star:before,.ion-ios-stopwatch-outline:before,.ion-ios-stopwatch:before,.ion-ios-sunny-outline:before,.ion-ios-sunny:before,.ion-ios-telephone-outline:before,.ion-ios-telephone:before,.ion-ios-tennisball-outline:before,.ion-ios-tennisball:before,.ion-ios-thunderstorm-outline:before,.ion-ios-thunderstorm:before,.ion-ios-time-outline:before,.ion-ios-time:before,.ion-ios-timer-outline:before,.ion-ios-timer:before,.ion-ios-toggle-outline:before,.ion-ios-toggle:before,.ion-ios-trash-outline:before,.ion-ios-trash:before,.ion-ios-undo-outline:before,.ion-ios-undo:before,.ion-ios-unlocked-outline:before,.ion-ios-unlocked:before,.ion-ios-upload-outline:before,.ion-ios-upload:before,.ion-ios-videocam-outline:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-wineglass-outline:before,.ion-ios-wineglass:before,.ion-ios-world-outline:before,.ion-ios-world:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-location:before,.ion-lock-combination:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-merge:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-minus:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-mouse:before,.ion-music-note:before,.ion-navicon-round:before,.ion-navicon:before,.ion-navigate:before,.ion-network:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-outlet:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person-add:before,.ion-person-stalker:before,.ion-person:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-planet:before,.ion-play:before,.ion-playstation:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-plus:before,.ion-podium:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-pull-request:before,.ion-qr-scanner:before,.ion-quote:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-reply-all:before,.ion-reply:before,.ion-ribbon-a:before,.ion-ribbon-b:before,.ion-sad-outline:before,.ion-sad:before,.ion-scissors:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android-outline:before,.ion-social-android:before,.ion-social-angular-outline:before,.ion-social-angular:before,.ion-social-apple-outline:before,.ion-social-apple:before,.ion-social-bitcoin-outline:before,.ion-social-bitcoin:before,.ion-social-buffer-outline:before,.ion-social-buffer:before,.ion-social-chrome-outline:before,.ion-social-chrome:before,.ion-social-codepen-outline:before,.ion-social-codepen:before,.ion-social-css3-outline:before,.ion-social-css3:before,.ion-social-designernews-outline:before,.ion-social-designernews:before,.ion-social-dribbble-outline:before,.ion-social-dribbble:before,.ion-social-dropbox-outline:before,.ion-social-dropbox:before,.ion-social-euro-outline:before,.ion-social-euro:before,.ion-social-facebook-outline:before,.ion-social-facebook:before,.ion-social-foursquare-outline:before,.ion-social-foursquare:before,.ion-social-freebsd-devil:before,.ion-social-github-outline:before,.ion-social-github:before,.ion-social-google-outline:before,.ion-social-google:before,.ion-social-googleplus-outline:before,.ion-social-googleplus:before,.ion-social-hackernews-outline:before,.ion-social-hackernews:before,.ion-social-html5-outline:before,.ion-social-html5:before,.ion-social-instagram-outline:before,.ion-social-instagram:before,.ion-social-javascript-outline:before,.ion-social-javascript:before,.ion-social-linkedin-outline:before,.ion-social-linkedin:before,.ion-social-markdown:before,.ion-social-nodejs:before,.ion-social-octocat:before,.ion-social-pinterest-outline:before,.ion-social-pinterest:before,.ion-social-python:before,.ion-social-reddit-outline:before,.ion-social-reddit:before,.ion-social-rss-outline:before,.ion-social-rss:before,.ion-social-sass:before,.ion-social-skype-outline:before,.ion-social-skype:before,.ion-social-snapchat-outline:before,.ion-social-snapchat:before,.ion-social-tumblr-outline:before,.ion-social-tumblr:before,.ion-social-tux:before,.ion-social-twitch-outline:before,.ion-social-twitch:before,.ion-social-twitter-outline:before,.ion-social-twitter:before,.ion-social-usd-outline:before,.ion-social-usd:before,.ion-social-vimeo-outline:before,.ion-social-vimeo:before,.ion-social-whatsapp-outline:before,.ion-social-whatsapp:before,.ion-social-windows-outline:before,.ion-social-windows:before,.ion-social-wordpress-outline:before,.ion-social-wordpress:before,.ion-social-yahoo-outline:before,.ion-social-yahoo:before,.ion-social-yen-outline:before,.ion-social-yen:before,.ion-social-youtube-outline:before,.ion-social-youtube:before,.ion-soup-can-outline:before,.ion-soup-can:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-toggle-filled:before,.ion-toggle:before,.ion-transgender:before,.ion-trash-a:before,.ion-trash-b:before,.ion-trophy:before,.ion-tshirt-outline:before,.ion-tshirt:before,.ion-umbrella:before,.ion-university:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-wand:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before,.ionicons{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-alert:before{content:"\F101"}.ion-alert-circled:before{content:"\F100"}.ion-android-add:before{content:"\F2C7"}.ion-android-add-circle:before{content:"\F359"}.ion-android-alarm-clock:before{content:"\F35A"}.ion-android-alert:before{content:"\F35B"}.ion-android-apps:before{content:"\F35C"}.ion-android-archive:before{content:"\F2C9"}.ion-android-arrow-back:before{content:"\F2CA"}.ion-android-arrow-down:before{content:"\F35D"}.ion-android-arrow-dropdown:before{content:"\F35F"}.ion-android-arrow-dropdown-circle:before{content:"\F35E"}.ion-android-arrow-dropleft:before{content:"\F361"}.ion-android-arrow-dropleft-circle:before{content:"\F360"}.ion-android-arrow-dropright:before{content:"\F363"}.ion-android-arrow-dropright-circle:before{content:"\F362"}.ion-android-arrow-dropup:before{content:"\F365"}.ion-android-arrow-dropup-circle:before{content:"\F364"}.ion-android-arrow-forward:before{content:"\F30F"}.ion-android-arrow-up:before{content:"\F366"}.ion-android-attach:before{content:"\F367"}.ion-android-bar:before{content:"\F368"}.ion-android-bicycle:before{content:"\F369"}.ion-android-boat:before{content:"\F36A"}.ion-android-bookmark:before{content:"\F36B"}.ion-android-bulb:before{content:"\F36C"}.ion-android-bus:before{content:"\F36D"}.ion-android-calendar:before{content:"\F2D1"}.ion-android-call:before{content:"\F2D2"}.ion-android-camera:before{content:"\F2D3"}.ion-android-cancel:before{content:"\F36E"}.ion-android-car:before{content:"\F36F"}.ion-android-cart:before{content:"\F370"}.ion-android-chat:before{content:"\F2D4"}.ion-android-checkbox:before{content:"\F374"}.ion-android-checkbox-blank:before{content:"\F371"}.ion-android-checkbox-outline:before{content:"\F373"}.ion-android-checkbox-outline-blank:before{content:"\F372"}.ion-android-checkmark-circle:before{content:"\F375"}.ion-android-clipboard:before{content:"\F376"}.ion-android-close:before{content:"\F2D7"}.ion-android-cloud:before{content:"\F37A"}.ion-android-cloud-circle:before{content:"\F377"}.ion-android-cloud-done:before{content:"\F378"}.ion-android-cloud-outline:before{content:"\F379"}.ion-android-color-palette:before{content:"\F37B"}.ion-android-compass:before{content:"\F37C"}.ion-android-contact:before{content:"\F2D8"}.ion-android-contacts:before{content:"\F2D9"}.ion-android-contract:before{content:"\F37D"}.ion-android-create:before{content:"\F37E"}.ion-android-delete:before{content:"\F37F"}.ion-android-desktop:before{content:"\F380"}.ion-android-document:before{content:"\F381"}.ion-android-done:before{content:"\F383"}.ion-android-done-all:before{content:"\F382"}.ion-android-download:before{content:"\F2DD"}.ion-android-drafts:before{content:"\F384"}.ion-android-exit:before{content:"\F385"}.ion-android-expand:before{content:"\F386"}.ion-android-favorite:before{content:"\F388"}.ion-android-favorite-outline:before{content:"\F387"}.ion-android-film:before{content:"\F389"}.ion-android-folder:before{content:"\F2E0"}.ion-android-folder-open:before{content:"\F38A"}.ion-android-funnel:before{content:"\F38B"}.ion-android-globe:before{content:"\F38C"}.ion-android-hand:before{content:"\F2E3"}.ion-android-hangout:before{content:"\F38D"}.ion-android-happy:before{content:"\F38E"}.ion-android-home:before{content:"\F38F"}.ion-android-image:before{content:"\F2E4"}.ion-android-laptop:before{content:"\F390"}.ion-android-list:before{content:"\F391"}.ion-android-locate:before{content:"\F2E9"}.ion-android-lock:before{content:"\F392"}.ion-android-mail:before{content:"\F2EB"}.ion-android-map:before{content:"\F393"}.ion-android-menu:before{content:"\F394"}.ion-android-microphone:before{content:"\F2EC"}.ion-android-microphone-off:before{content:"\F395"}.ion-android-more-horizontal:before{content:"\F396"}.ion-android-more-vertical:before{content:"\F397"}.ion-android-navigate:before{content:"\F398"}.ion-android-notifications:before{content:"\F39B"}.ion-android-notifications-none:before{content:"\F399"}.ion-android-notifications-off:before{content:"\F39A"}.ion-android-open:before{content:"\F39C"}.ion-android-options:before{content:"\F39D"}.ion-android-people:before{content:"\F39E"}.ion-android-person:before{content:"\F3A0"}.ion-android-person-add:before{content:"\F39F"}.ion-android-phone-landscape:before{content:"\F3A1"}.ion-android-phone-portrait:before{content:"\F3A2"}.ion-android-pin:before{content:"\F3A3"}.ion-android-plane:before{content:"\F3A4"}.ion-android-playstore:before{content:"\F2F0"}.ion-android-print:before{content:"\F3A5"}.ion-android-radio-button-off:before{content:"\F3A6"}.ion-android-radio-button-on:before{content:"\F3A7"}.ion-android-refresh:before{content:"\F3A8"}.ion-android-remove:before{content:"\F2F4"}.ion-android-remove-circle:before{content:"\F3A9"}.ion-android-restaurant:before{content:"\F3AA"}.ion-android-sad:before{content:"\F3AB"}.ion-android-search:before{content:"\F2F5"}.ion-android-send:before{content:"\F2F6"}.ion-android-settings:before{content:"\F2F7"}.ion-android-share:before{content:"\F2F8"}.ion-android-share-alt:before{content:"\F3AC"}.ion-android-star:before{content:"\F2FC"}.ion-android-star-half:before{content:"\F3AD"}.ion-android-star-outline:before{content:"\F3AE"}.ion-android-stopwatch:before{content:"\F2FD"}.ion-android-subway:before{content:"\F3AF"}.ion-android-sunny:before{content:"\F3B0"}.ion-android-sync:before{content:"\F3B1"}.ion-android-textsms:before{content:"\F3B2"}.ion-android-time:before{content:"\F3B3"}.ion-android-train:before{content:"\F3B4"}.ion-android-unlock:before{content:"\F3B5"}.ion-android-upload:before{content:"\F3B6"}.ion-android-volume-down:before{content:"\F3B7"}.ion-android-volume-mute:before{content:"\F3B8"}.ion-android-volume-off:before{content:"\F3B9"}.ion-android-volume-up:before{content:"\F3BA"}.ion-android-walk:before{content:"\F3BB"}.ion-android-warning:before{content:"\F3BC"}.ion-android-watch:before{content:"\F3BD"}.ion-android-wifi:before{content:"\F305"}.ion-aperture:before{content:"\F313"}.ion-archive:before{content:"\F102"}.ion-arrow-down-a:before{content:"\F103"}.ion-arrow-down-b:before{content:"\F104"}.ion-arrow-down-c:before{content:"\F105"}.ion-arrow-expand:before{content:"\F25E"}.ion-arrow-graph-down-left:before{content:"\F25F"}.ion-arrow-graph-down-right:before{content:"\F260"}.ion-arrow-graph-up-left:before{content:"\F261"}.ion-arrow-graph-up-right:before{content:"\F262"}.ion-arrow-left-a:before{content:"\F106"}.ion-arrow-left-b:before{content:"\F107"}.ion-arrow-left-c:before{content:"\F108"}.ion-arrow-move:before{content:"\F263"}.ion-arrow-resize:before{content:"\F264"}.ion-arrow-return-left:before{content:"\F265"}.ion-arrow-return-right:before{content:"\F266"}.ion-arrow-right-a:before{content:"\F109"}.ion-arrow-right-b:before{content:"\F10A"}.ion-arrow-right-c:before{content:"\F10B"}.ion-arrow-shrink:before{content:"\F267"}.ion-arrow-swap:before{content:"\F268"}.ion-arrow-up-a:before{content:"\F10C"}.ion-arrow-up-b:before{content:"\F10D"}.ion-arrow-up-c:before{content:"\F10E"}.ion-asterisk:before{content:"\F314"}.ion-at:before{content:"\F10F"}.ion-backspace:before{content:"\F3BF"}.ion-backspace-outline:before{content:"\F3BE"}.ion-bag:before{content:"\F110"}.ion-battery-charging:before{content:"\F111"}.ion-battery-empty:before{content:"\F112"}.ion-battery-full:before{content:"\F113"}.ion-battery-half:before{content:"\F114"}.ion-battery-low:before{content:"\F115"}.ion-beaker:before{content:"\F269"}.ion-beer:before{content:"\F26A"}.ion-bluetooth:before{content:"\F116"}.ion-bonfire:before{content:"\F315"}.ion-bookmark:before{content:"\F26B"}.ion-bowtie:before{content:"\F3C0"}.ion-briefcase:before{content:"\F26C"}.ion-bug:before{content:"\F2BE"}.ion-calculator:before{content:"\F26D"}.ion-calendar:before{content:"\F117"}.ion-camera:before{content:"\F118"}.ion-card:before{content:"\F119"}.ion-cash:before{content:"\F316"}.ion-chatbox:before{content:"\F11B"}.ion-chatbox-working:before{content:"\F11A"}.ion-chatboxes:before{content:"\F11C"}.ion-chatbubble:before{content:"\F11E"}.ion-chatbubble-working:before{content:"\F11D"}.ion-chatbubbles:before{content:"\F11F"}.ion-checkmark:before{content:"\F122"}.ion-checkmark-circled:before{content:"\F120"}.ion-checkmark-round:before{content:"\F121"}.ion-chevron-down:before{content:"\F123"}.ion-chevron-left:before{content:"\F124"}.ion-chevron-right:before{content:"\F125"}.ion-chevron-up:before{content:"\F126"}.ion-clipboard:before{content:"\F127"}.ion-clock:before{content:"\F26E"}.ion-close:before{content:"\F12A"}.ion-close-circled:before{content:"\F128"}.ion-close-round:before{content:"\F129"}.ion-closed-captioning:before{content:"\F317"}.ion-cloud:before{content:"\F12B"}.ion-code:before{content:"\F271"}.ion-code-download:before{content:"\F26F"}.ion-code-working:before{content:"\F270"}.ion-coffee:before{content:"\F272"}.ion-compass:before{content:"\F273"}.ion-compose:before{content:"\F12C"}.ion-connection-bars:before{content:"\F274"}.ion-contrast:before{content:"\F275"}.ion-crop:before{content:"\F3C1"}.ion-cube:before{content:"\F318"}.ion-disc:before{content:"\F12D"}.ion-document:before{content:"\F12F"}.ion-document-text:before{content:"\F12E"}.ion-drag:before{content:"\F130"}.ion-earth:before{content:"\F276"}.ion-easel:before{content:"\F3C2"}.ion-edit:before{content:"\F2BF"}.ion-egg:before{content:"\F277"}.ion-eject:before{content:"\F131"}.ion-email:before{content:"\F132"}.ion-email-unread:before{content:"\F3C3"}.ion-erlenmeyer-flask:before{content:"\F3C5"}.ion-erlenmeyer-flask-bubbles:before{content:"\F3C4"}.ion-eye:before{content:"\F133"}.ion-eye-disabled:before{content:"\F306"}.ion-female:before{content:"\F278"}.ion-filing:before{content:"\F134"}.ion-film-marker:before{content:"\F135"}.ion-fireball:before{content:"\F319"}.ion-flag:before{content:"\F279"}.ion-flame:before{content:"\F31A"}.ion-flash:before{content:"\F137"}.ion-flash-off:before{content:"\F136"}.ion-folder:before{content:"\F139"}.ion-fork:before{content:"\F27A"}.ion-fork-repo:before{content:"\F2C0"}.ion-forward:before{content:"\F13A"}.ion-funnel:before{content:"\F31B"}.ion-gear-a:before{content:"\F13D"}.ion-gear-b:before{content:"\F13E"}.ion-grid:before{content:"\F13F"}.ion-hammer:before{content:"\F27B"}.ion-happy:before{content:"\F31C"}.ion-happy-outline:before{content:"\F3C6"}.ion-headphone:before{content:"\F140"}.ion-heart:before{content:"\F141"}.ion-heart-broken:before{content:"\F31D"}.ion-help:before{content:"\F143"}.ion-help-buoy:before{content:"\F27C"}.ion-help-circled:before{content:"\F142"}.ion-home:before{content:"\F144"}.ion-icecream:before{content:"\F27D"}.ion-image:before{content:"\F147"}.ion-images:before{content:"\F148"}.ion-information:before{content:"\F14A"}.ion-information-circled:before{content:"\F149"}.ion-ionic:before{content:"\F14B"}.ion-ios-alarm:before{content:"\F3C8"}.ion-ios-alarm-outline:before{content:"\F3C7"}.ion-ios-albums:before{content:"\F3CA"}.ion-ios-albums-outline:before{content:"\F3C9"}.ion-ios-americanfootball:before{content:"\F3CC"}.ion-ios-americanfootball-outline:before{content:"\F3CB"}.ion-ios-analytics:before{content:"\F3CE"}.ion-ios-analytics-outline:before{content:"\F3CD"}.ion-ios-arrow-back:before{content:"\F3CF"}.ion-ios-arrow-down:before{content:"\F3D0"}.ion-ios-arrow-forward:before{content:"\F3D1"}.ion-ios-arrow-left:before{content:"\F3D2"}.ion-ios-arrow-right:before{content:"\F3D3"}.ion-ios-arrow-thin-down:before{content:"\F3D4"}.ion-ios-arrow-thin-left:before{content:"\F3D5"}.ion-ios-arrow-thin-right:before{content:"\F3D6"}.ion-ios-arrow-thin-up:before{content:"\F3D7"}.ion-ios-arrow-up:before{content:"\F3D8"}.ion-ios-at:before{content:"\F3DA"}.ion-ios-at-outline:before{content:"\F3D9"}.ion-ios-barcode:before{content:"\F3DC"}.ion-ios-barcode-outline:before{content:"\F3DB"}.ion-ios-baseball:before{content:"\F3DE"}.ion-ios-baseball-outline:before{content:"\F3DD"}.ion-ios-basketball:before{content:"\F3E0"}.ion-ios-basketball-outline:before{content:"\F3DF"}.ion-ios-bell:before{content:"\F3E2"}.ion-ios-bell-outline:before{content:"\F3E1"}.ion-ios-body:before{content:"\F3E4"}.ion-ios-body-outline:before{content:"\F3E3"}.ion-ios-bolt:before{content:"\F3E6"}.ion-ios-bolt-outline:before{content:"\F3E5"}.ion-ios-book:before{content:"\F3E8"}.ion-ios-book-outline:before{content:"\F3E7"}.ion-ios-bookmarks:before{content:"\F3EA"}.ion-ios-bookmarks-outline:before{content:"\F3E9"}.ion-ios-box:before{content:"\F3EC"}.ion-ios-box-outline:before{content:"\F3EB"}.ion-ios-briefcase:before{content:"\F3EE"}.ion-ios-briefcase-outline:before{content:"\F3ED"}.ion-ios-browsers:before{content:"\F3F0"}.ion-ios-browsers-outline:before{content:"\F3EF"}.ion-ios-calculator:before{content:"\F3F2"}.ion-ios-calculator-outline:before{content:"\F3F1"}.ion-ios-calendar:before{content:"\F3F4"}.ion-ios-calendar-outline:before{content:"\F3F3"}.ion-ios-camera:before{content:"\F3F6"}.ion-ios-camera-outline:before{content:"\F3F5"}.ion-ios-cart:before{content:"\F3F8"}.ion-ios-cart-outline:before{content:"\F3F7"}.ion-ios-chatboxes:before{content:"\F3FA"}.ion-ios-chatboxes-outline:before{content:"\F3F9"}.ion-ios-chatbubble:before{content:"\F3FC"}.ion-ios-chatbubble-outline:before{content:"\F3FB"}.ion-ios-checkmark:before{content:"\F3FF"}.ion-ios-checkmark-empty:before{content:"\F3FD"}.ion-ios-checkmark-outline:before{content:"\F3FE"}.ion-ios-circle-filled:before{content:"\F400"}.ion-ios-circle-outline:before{content:"\F401"}.ion-ios-clock:before{content:"\F403"}.ion-ios-clock-outline:before{content:"\F402"}.ion-ios-close:before{content:"\F406"}.ion-ios-close-empty:before{content:"\F404"}.ion-ios-close-outline:before{content:"\F405"}.ion-ios-cloud:before{content:"\F40C"}.ion-ios-cloud-download:before{content:"\F408"}.ion-ios-cloud-download-outline:before{content:"\F407"}.ion-ios-cloud-outline:before{content:"\F409"}.ion-ios-cloud-upload:before{content:"\F40B"}.ion-ios-cloud-upload-outline:before{content:"\F40A"}.ion-ios-cloudy:before{content:"\F410"}.ion-ios-cloudy-night:before{content:"\F40E"}.ion-ios-cloudy-night-outline:before{content:"\F40D"}.ion-ios-cloudy-outline:before{content:"\F40F"}.ion-ios-cog:before{content:"\F412"}.ion-ios-cog-outline:before{content:"\F411"}.ion-ios-color-filter:before{content:"\F414"}.ion-ios-color-filter-outline:before{content:"\F413"}.ion-ios-color-wand:before{content:"\F416"}.ion-ios-color-wand-outline:before{content:"\F415"}.ion-ios-compose:before{content:"\F418"}.ion-ios-compose-outline:before{content:"\F417"}.ion-ios-contact:before{content:"\F41A"}.ion-ios-contact-outline:before{content:"\F419"}.ion-ios-copy:before{content:"\F41C"}.ion-ios-copy-outline:before{content:"\F41B"}.ion-ios-crop:before{content:"\F41E"}.ion-ios-crop-strong:before{content:"\F41D"}.ion-ios-download:before{content:"\F420"}.ion-ios-download-outline:before{content:"\F41F"}.ion-ios-drag:before{content:"\F421"}.ion-ios-email:before{content:"\F423"}.ion-ios-email-outline:before{content:"\F422"}.ion-ios-eye:before{content:"\F425"}.ion-ios-eye-outline:before{content:"\F424"}.ion-ios-fastforward:before{content:"\F427"}.ion-ios-fastforward-outline:before{content:"\F426"}.ion-ios-filing:before{content:"\F429"}.ion-ios-filing-outline:before{content:"\F428"}.ion-ios-film:before{content:"\F42B"}.ion-ios-film-outline:before{content:"\F42A"}.ion-ios-flag:before{content:"\F42D"}.ion-ios-flag-outline:before{content:"\F42C"}.ion-ios-flame:before{content:"\F42F"}.ion-ios-flame-outline:before{content:"\F42E"}.ion-ios-flask:before{content:"\F431"}.ion-ios-flask-outline:before{content:"\F430"}.ion-ios-flower:before{content:"\F433"}.ion-ios-flower-outline:before{content:"\F432"}.ion-ios-folder:before{content:"\F435"}.ion-ios-folder-outline:before{content:"\F434"}.ion-ios-football:before{content:"\F437"}.ion-ios-football-outline:before{content:"\F436"}.ion-ios-game-controller-a:before{content:"\F439"}.ion-ios-game-controller-a-outline:before{content:"\F438"}.ion-ios-game-controller-b:before{content:"\F43B"}.ion-ios-game-controller-b-outline:before{content:"\F43A"}.ion-ios-gear:before{content:"\F43D"}.ion-ios-gear-outline:before{content:"\F43C"}.ion-ios-glasses:before{content:"\F43F"}.ion-ios-glasses-outline:before{content:"\F43E"}.ion-ios-grid-view:before{content:"\F441"}.ion-ios-grid-view-outline:before{content:"\F440"}.ion-ios-heart:before{content:"\F443"}.ion-ios-heart-outline:before{content:"\F442"}.ion-ios-help:before{content:"\F446"}.ion-ios-help-empty:before{content:"\F444"}.ion-ios-help-outline:before{content:"\F445"}.ion-ios-home:before{content:"\F448"}.ion-ios-home-outline:before{content:"\F447"}.ion-ios-infinite:before{content:"\F44A"}.ion-ios-infinite-outline:before{content:"\F449"}.ion-ios-information:before{content:"\F44D"}.ion-ios-information-empty:before{content:"\F44B"}.ion-ios-information-outline:before{content:"\F44C"}.ion-ios-ionic-outline:before{content:"\F44E"}.ion-ios-keypad:before{content:"\F450"}.ion-ios-keypad-outline:before{content:"\F44F"}.ion-ios-lightbulb:before{content:"\F452"}.ion-ios-lightbulb-outline:before{content:"\F451"}.ion-ios-list:before{content:"\F454"}.ion-ios-list-outline:before{content:"\F453"}.ion-ios-location:before{content:"\F456"}.ion-ios-location-outline:before{content:"\F455"}.ion-ios-locked:before{content:"\F458"}.ion-ios-locked-outline:before{content:"\F457"}.ion-ios-loop:before{content:"\F45A"}.ion-ios-loop-strong:before{content:"\F459"}.ion-ios-medical:before{content:"\F45C"}.ion-ios-medical-outline:before{content:"\F45B"}.ion-ios-medkit:before{content:"\F45E"}.ion-ios-medkit-outline:before{content:"\F45D"}.ion-ios-mic:before{content:"\F461"}.ion-ios-mic-off:before{content:"\F45F"}.ion-ios-mic-outline:before{content:"\F460"}.ion-ios-minus:before{content:"\F464"}.ion-ios-minus-empty:before{content:"\F462"}.ion-ios-minus-outline:before{content:"\F463"}.ion-ios-monitor:before{content:"\F466"}.ion-ios-monitor-outline:before{content:"\F465"}.ion-ios-moon:before{content:"\F468"}.ion-ios-moon-outline:before{content:"\F467"}.ion-ios-more:before{content:"\F46A"}.ion-ios-more-outline:before{content:"\F469"}.ion-ios-musical-note:before{content:"\F46B"}.ion-ios-musical-notes:before{content:"\F46C"}.ion-ios-navigate:before{content:"\F46E"}.ion-ios-navigate-outline:before{content:"\F46D"}.ion-ios-nutrition:before{content:"\F470"}.ion-ios-nutrition-outline:before{content:"\F46F"}.ion-ios-paper:before{content:"\F472"}.ion-ios-paper-outline:before{content:"\F471"}.ion-ios-paperplane:before{content:"\F474"}.ion-ios-paperplane-outline:before{content:"\F473"}.ion-ios-partlysunny:before{content:"\F476"}.ion-ios-partlysunny-outline:before{content:"\F475"}.ion-ios-pause:before{content:"\F478"}.ion-ios-pause-outline:before{content:"\F477"}.ion-ios-paw:before{content:"\F47A"}.ion-ios-paw-outline:before{content:"\F479"}.ion-ios-people:before{content:"\F47C"}.ion-ios-people-outline:before{content:"\F47B"}.ion-ios-person:before{content:"\F47E"}.ion-ios-person-outline:before{content:"\F47D"}.ion-ios-personadd:before{content:"\F480"}.ion-ios-personadd-outline:before{content:"\F47F"}.ion-ios-photos:before{content:"\F482"}.ion-ios-photos-outline:before{content:"\F481"}.ion-ios-pie:before{content:"\F484"}.ion-ios-pie-outline:before{content:"\F483"}.ion-ios-pint:before{content:"\F486"}.ion-ios-pint-outline:before{content:"\F485"}.ion-ios-play:before{content:"\F488"}.ion-ios-play-outline:before{content:"\F487"}.ion-ios-plus:before{content:"\F48B"}.ion-ios-plus-empty:before{content:"\F489"}.ion-ios-plus-outline:before{content:"\F48A"}.ion-ios-pricetag:before{content:"\F48D"}.ion-ios-pricetag-outline:before{content:"\F48C"}.ion-ios-pricetags:before{content:"\F48F"}.ion-ios-pricetags-outline:before{content:"\F48E"}.ion-ios-printer:before{content:"\F491"}.ion-ios-printer-outline:before{content:"\F490"}.ion-ios-pulse:before{content:"\F493"}.ion-ios-pulse-strong:before{content:"\F492"}.ion-ios-rainy:before{content:"\F495"}.ion-ios-rainy-outline:before{content:"\F494"}.ion-ios-recording:before{content:"\F497"}.ion-ios-recording-outline:before{content:"\F496"}.ion-ios-redo:before{content:"\F499"}.ion-ios-redo-outline:before{content:"\F498"}.ion-ios-refresh:before{content:"\F49C"}.ion-ios-refresh-empty:before{content:"\F49A"}.ion-ios-refresh-outline:before{content:"\F49B"}.ion-ios-reload:before{content:"\F49D"}.ion-ios-reverse-camera:before{content:"\F49F"}.ion-ios-reverse-camera-outline:before{content:"\F49E"}.ion-ios-rewind:before{content:"\F4A1"}.ion-ios-rewind-outline:before{content:"\F4A0"}.ion-ios-rose:before{content:"\F4A3"}.ion-ios-rose-outline:before{content:"\F4A2"}.ion-ios-search:before{content:"\F4A5"}.ion-ios-search-strong:before{content:"\F4A4"}.ion-ios-settings:before{content:"\F4A7"}.ion-ios-settings-strong:before{content:"\F4A6"}.ion-ios-shuffle:before{content:"\F4A9"}.ion-ios-shuffle-strong:before{content:"\F4A8"}.ion-ios-skipbackward:before{content:"\F4AB"}.ion-ios-skipbackward-outline:before{content:"\F4AA"}.ion-ios-skipforward:before{content:"\F4AD"}.ion-ios-skipforward-outline:before{content:"\F4AC"}.ion-ios-snowy:before{content:"\F4AE"}.ion-ios-speedometer:before{content:"\F4B0"}.ion-ios-speedometer-outline:before{content:"\F4AF"}.ion-ios-star:before{content:"\F4B3"}.ion-ios-star-half:before{content:"\F4B1"}.ion-ios-star-outline:before{content:"\F4B2"}.ion-ios-stopwatch:before{content:"\F4B5"}.ion-ios-stopwatch-outline:before{content:"\F4B4"}.ion-ios-sunny:before{content:"\F4B7"}.ion-ios-sunny-outline:before{content:"\F4B6"}.ion-ios-telephone:before{content:"\F4B9"}.ion-ios-telephone-outline:before{content:"\F4B8"}.ion-ios-tennisball:before{content:"\F4BB"}.ion-ios-tennisball-outline:before{content:"\F4BA"}.ion-ios-thunderstorm:before{content:"\F4BD"}.ion-ios-thunderstorm-outline:before{content:"\F4BC"}.ion-ios-time:before{content:"\F4BF"}.ion-ios-time-outline:before{content:"\F4BE"}.ion-ios-timer:before{content:"\F4C1"}.ion-ios-timer-outline:before{content:"\F4C0"}.ion-ios-toggle:before{content:"\F4C3"}.ion-ios-toggle-outline:before{content:"\F4C2"}.ion-ios-trash:before{content:"\F4C5"}.ion-ios-trash-outline:before{content:"\F4C4"}.ion-ios-undo:before{content:"\F4C7"}.ion-ios-undo-outline:before{content:"\F4C6"}.ion-ios-unlocked:before{content:"\F4C9"}.ion-ios-unlocked-outline:before{content:"\F4C8"}.ion-ios-upload:before{content:"\F4CB"}.ion-ios-upload-outline:before{content:"\F4CA"}.ion-ios-videocam:before{content:"\F4CD"}.ion-ios-videocam-outline:before{content:"\F4CC"}.ion-ios-volume-high:before{content:"\F4CE"}.ion-ios-volume-low:before{content:"\F4CF"}.ion-ios-wineglass:before{content:"\F4D1"}.ion-ios-wineglass-outline:before{content:"\F4D0"}.ion-ios-world:before{content:"\F4D3"}.ion-ios-world-outline:before{content:"\F4D2"}.ion-ipad:before{content:"\F1F9"}.ion-iphone:before{content:"\F1FA"}.ion-ipod:before{content:"\F1FB"}.ion-jet:before{content:"\F295"}.ion-key:before{content:"\F296"}.ion-knife:before{content:"\F297"}.ion-laptop:before{content:"\F1FC"}.ion-leaf:before{content:"\F1FD"}.ion-levels:before{content:"\F298"}.ion-lightbulb:before{content:"\F299"}.ion-link:before{content:"\F1FE"}.ion-load-a:before{content:"\F29A"}.ion-load-b:before{content:"\F29B"}.ion-load-c:before{content:"\F29C"}.ion-load-d:before{content:"\F29D"}.ion-location:before{content:"\F1FF"}.ion-lock-combination:before{content:"\F4D4"}.ion-locked:before{content:"\F200"}.ion-log-in:before{content:"\F29E"}.ion-log-out:before{content:"\F29F"}.ion-loop:before{content:"\F201"}.ion-magnet:before{content:"\F2A0"}.ion-male:before{content:"\F2A1"}.ion-man:before{content:"\F202"}.ion-map:before{content:"\F203"}.ion-medkit:before{content:"\F2A2"}.ion-merge:before{content:"\F33F"}.ion-mic-a:before{content:"\F204"}.ion-mic-b:before{content:"\F205"}.ion-mic-c:before{content:"\F206"}.ion-minus:before{content:"\F209"}.ion-minus-circled:before{content:"\F207"}.ion-minus-round:before{content:"\F208"}.ion-model-s:before{content:"\F2C1"}.ion-monitor:before{content:"\F20A"}.ion-more:before{content:"\F20B"}.ion-mouse:before{content:"\F340"}.ion-music-note:before{content:"\F20C"}.ion-navicon:before{content:"\F20E"}.ion-navicon-round:before{content:"\F20D"}.ion-navigate:before{content:"\F2A3"}.ion-network:before{content:"\F341"}.ion-no-smoking:before{content:"\F2C2"}.ion-nuclear:before{content:"\F2A4"}.ion-outlet:before{content:"\F342"}.ion-paintbrush:before{content:"\F4D5"}.ion-paintbucket:before{content:"\F4D6"}.ion-paper-airplane:before{content:"\F2C3"}.ion-paperclip:before{content:"\F20F"}.ion-pause:before{content:"\F210"}.ion-person:before{content:"\F213"}.ion-person-add:before{content:"\F211"}.ion-person-stalker:before{content:"\F212"}.ion-pie-graph:before{content:"\F2A5"}.ion-pin:before{content:"\F2A6"}.ion-pinpoint:before{content:"\F2A7"}.ion-pizza:before{content:"\F2A8"}.ion-plane:before{content:"\F214"}.ion-planet:before{content:"\F343"}.ion-play:before{content:"\F215"}.ion-playstation:before{content:"\F30A"}.ion-plus:before{content:"\F218"}.ion-plus-circled:before{content:"\F216"}.ion-plus-round:before{content:"\F217"}.ion-podium:before{content:"\F344"}.ion-pound:before{content:"\F219"}.ion-power:before{content:"\F2A9"}.ion-pricetag:before{content:"\F2AA"}.ion-pricetags:before{content:"\F2AB"}.ion-printer:before{content:"\F21A"}.ion-pull-request:before{content:"\F345"}.ion-qr-scanner:before{content:"\F346"}.ion-quote:before{content:"\F347"}.ion-radio-waves:before{content:"\F2AC"}.ion-record:before{content:"\F21B"}.ion-refresh:before{content:"\F21C"}.ion-reply:before{content:"\F21E"}.ion-reply-all:before{content:"\F21D"}.ion-ribbon-a:before{content:"\F348"}.ion-ribbon-b:before{content:"\F349"}.ion-sad:before{content:"\F34A"}.ion-sad-outline:before{content:"\F4D7"}.ion-scissors:before{content:"\F34B"}.ion-search:before{content:"\F21F"}.ion-settings:before{content:"\F2AD"}.ion-share:before{content:"\F220"}.ion-shuffle:before{content:"\F221"}.ion-skip-backward:before{content:"\F222"}.ion-skip-forward:before{content:"\F223"}.ion-social-android:before{content:"\F225"}.ion-social-android-outline:before{content:"\F224"}.ion-social-angular:before{content:"\F4D9"}.ion-social-angular-outline:before{content:"\F4D8"}.ion-social-apple:before{content:"\F227"}.ion-social-apple-outline:before{content:"\F226"}.ion-social-bitcoin:before{content:"\F2AF"}.ion-social-bitcoin-outline:before{content:"\F2AE"}.ion-social-buffer:before{content:"\F229"}.ion-social-buffer-outline:before{content:"\F228"}.ion-social-chrome:before{content:"\F4DB"}.ion-social-chrome-outline:before{content:"\F4DA"}.ion-social-codepen:before{content:"\F4DD"}.ion-social-codepen-outline:before{content:"\F4DC"}.ion-social-css3:before{content:"\F4DF"}.ion-social-css3-outline:before{content:"\F4DE"}.ion-social-designernews:before{content:"\F22B"}.ion-social-designernews-outline:before{content:"\F22A"}.ion-social-dribbble:before{content:"\F22D"}.ion-social-dribbble-outline:before{content:"\F22C"}.ion-social-dropbox:before{content:"\F22F"}.ion-social-dropbox-outline:before{content:"\F22E"}.ion-social-euro:before{content:"\F4E1"}.ion-social-euro-outline:before{content:"\F4E0"}.ion-social-facebook:before{content:"\F231"}.ion-social-facebook-outline:before{content:"\F230"}.ion-social-foursquare:before{content:"\F34D"}.ion-social-foursquare-outline:before{content:"\F34C"}.ion-social-freebsd-devil:before{content:"\F2C4"}.ion-social-github:before{content:"\F233"}.ion-social-github-outline:before{content:"\F232"}.ion-social-google:before{content:"\F34F"}.ion-social-google-outline:before{content:"\F34E"}.ion-social-googleplus:before{content:"\F235"}.ion-social-googleplus-outline:before{content:"\F234"}.ion-social-hackernews:before{content:"\F237"}.ion-social-hackernews-outline:before{content:"\F236"}.ion-social-html5:before{content:"\F4E3"}.ion-social-html5-outline:before{content:"\F4E2"}.ion-social-instagram:before{content:"\F351"}.ion-social-instagram-outline:before{content:"\F350"}.ion-social-javascript:before{content:"\F4E5"}.ion-social-javascript-outline:before{content:"\F4E4"}.ion-social-linkedin:before{content:"\F239"}.ion-social-linkedin-outline:before{content:"\F238"}.ion-social-markdown:before{content:"\F4E6"}.ion-social-nodejs:before{content:"\F4E7"}.ion-social-octocat:before{content:"\F4E8"}.ion-social-pinterest:before{content:"\F2B1"}.ion-social-pinterest-outline:before{content:"\F2B0"}.ion-social-python:before{content:"\F4E9"}.ion-social-reddit:before{content:"\F23B"}.ion-social-reddit-outline:before{content:"\F23A"}.ion-social-rss:before{content:"\F23D"}.ion-social-rss-outline:before{content:"\F23C"}.ion-social-sass:before{content:"\F4EA"}.ion-social-skype:before{content:"\F23F"}.ion-social-skype-outline:before{content:"\F23E"}.ion-social-snapchat:before{content:"\F4EC"}.ion-social-snapchat-outline:before{content:"\F4EB"}.ion-social-tumblr:before{content:"\F241"}.ion-social-tumblr-outline:before{content:"\F240"}.ion-social-tux:before{content:"\F2C5"}.ion-social-twitch:before{content:"\F4EE"}.ion-social-twitch-outline:before{content:"\F4ED"}.ion-social-twitter:before{content:"\F243"}.ion-social-twitter-outline:before{content:"\F242"}.ion-social-usd:before{content:"\F353"}.ion-social-usd-outline:before{content:"\F352"}.ion-social-vimeo:before{content:"\F245"}.ion-social-vimeo-outline:before{content:"\F244"}.ion-social-whatsapp:before{content:"\F4F0"}.ion-social-whatsapp-outline:before{content:"\F4EF"}.ion-social-windows:before{content:"\F247"}.ion-social-windows-outline:before{content:"\F246"}.ion-social-wordpress:before{content:"\F249"}.ion-social-wordpress-outline:before{content:"\F248"}.ion-social-yahoo:before{content:"\F24B"}.ion-social-yahoo-outline:before{content:"\F24A"}.ion-social-yen:before{content:"\F4F2"}.ion-social-yen-outline:before{content:"\F4F1"}.ion-social-youtube:before{content:"\F24D"}.ion-social-youtube-outline:before{content:"\F24C"}.ion-soup-can:before{content:"\F4F4"}.ion-soup-can-outline:before{content:"\F4F3"}.ion-speakerphone:before{content:"\F2B2"}.ion-speedometer:before{content:"\F2B3"}.ion-spoon:before{content:"\F2B4"}.ion-star:before{content:"\F24E"}.ion-stats-bars:before{content:"\F2B5"}.ion-steam:before{content:"\F30B"}.ion-stop:before{content:"\F24F"}.ion-thermometer:before{content:"\F2B6"}.ion-thumbsdown:before{content:"\F250"}.ion-thumbsup:before{content:"\F251"}.ion-toggle:before{content:"\F355"}.ion-toggle-filled:before{content:"\F354"}.ion-transgender:before{content:"\F4F5"}.ion-trash-a:before{content:"\F252"}.ion-trash-b:before{content:"\F253"}.ion-trophy:before{content:"\F356"}.ion-tshirt:before{content:"\F4F7"}.ion-tshirt-outline:before{content:"\F4F6"}.ion-umbrella:before{content:"\F2B7"}.ion-university:before{content:"\F357"}.ion-unlocked:before{content:"\F254"}.ion-upload:before{content:"\F255"}.ion-usb:before{content:"\F2B8"}.ion-videocamera:before{content:"\F256"}.ion-volume-high:before{content:"\F257"}.ion-volume-low:before{content:"\F258"}.ion-volume-medium:before{content:"\F259"}.ion-volume-mute:before{content:"\F25A"}.ion-wand:before{content:"\F358"}.ion-waterdrop:before{content:"\F25B"}.ion-wifi:before{content:"\F25C"}.ion-wineglass:before{content:"\F2B9"}.ion-woman:before{content:"\F25D"}.ion-wrench:before{content:"\F2BA"}.ion-xbox:before{content:"\F30C"} +*/@font-face{font-family:Ionicons;src:url("../../../fonts/ionicons.eot?v=2.0.1");src:url("../../../fonts/ionicons.eot?v=2.0.1#iefix") format("embedded-opentype"),url("../../../fonts/ionicons.ttf?v=2.0.1") format("truetype"),url("../../../fonts/ionicons.woff?v=2.0.1") format("woff"),url("../../../fonts/ionicons.svg?v=2.0.1#Ionicons") format("svg");font-weight:400;font-style:normal}.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-alert:before,.ion-android-calendar:before,.ion-android-checkmark-circle:before,.ion-android-open:before,.ion-checkmark-circled:before,.ion-checkmark:before,.ion-code-working:before,.ion-document-text:before,.ion-drag:before,.ion-earth:before,.ion-eye:before,.ion-flag:before,.ion-folder:before,.ion-gear-b:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-ios-arrow-right:before,.ion-ios-browsers-outline:before,.ion-ios-browsers:before,.ion-ios-circle-filled:before,.ion-ios-email-outline:before,.ion-ios-gear-outline:before,.ion-ios-help-outline:before,.ion-ios-information-outline:before,.ion-ios-keypad:before,.ion-ios-list:before,.ion-ios-minus-outline:before,.ion-ios-paper-outline:before,.ion-ios-people-outline:before,.ion-ios-people:before,.ion-ios-person-outline:before,.ion-ios-pie-outline:before,.ion-ios-plus-outline:before,.ion-ios-unlocked:before,.ion-link:before,.ion-load-c:before,.ion-lock-combination:before,.ion-log-out:before,.ion-monitor:before,.ion-navicon:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-person:before,.ion-speedometer:before,.ion-stats-bars:before,.ion-unlocked:before,.ion-wand:before{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-alert:before{content:"\F101"}.ion-alert-circled:before{content:"\F100"}.ion-android-alert:before{content:"\F35B"}.ion-android-calendar:before{content:"\F2D1"}.ion-android-checkmark-circle:before{content:"\F375"}.ion-android-open:before{content:"\F39C"}.ion-checkmark:before{content:"\F122"}.ion-checkmark-circled:before{content:"\F120"}.ion-code-working:before{content:"\F270"}.ion-document-text:before{content:"\F12E"}.ion-drag:before{content:"\F130"}.ion-earth:before{content:"\F276"}.ion-eye:before{content:"\F133"}.ion-flag:before{content:"\F279"}.ion-folder:before{content:"\F139"}.ion-gear-b:before{content:"\F13E"}.ion-help:before{content:"\F143"}.ion-help-circled:before{content:"\F142"}.ion-home:before{content:"\F144"}.ion-ios-arrow-right:before{content:"\F3D3"}.ion-ios-browsers:before{content:"\F3F0"}.ion-ios-browsers-outline:before{content:"\F3EF"}.ion-ios-circle-filled:before{content:"\F400"}.ion-ios-email-outline:before{content:"\F422"}.ion-ios-gear-outline:before{content:"\F43C"}.ion-ios-help-outline:before{content:"\F445"}.ion-ios-information-outline:before{content:"\F44C"}.ion-ios-keypad:before{content:"\F450"}.ion-ios-list:before{content:"\F454"}.ion-ios-minus-outline:before{content:"\F463"}.ion-ios-paper-outline:before{content:"\F471"}.ion-ios-people:before{content:"\F47C"}.ion-ios-people-outline:before{content:"\F47B"}.ion-ios-person-outline:before{content:"\F47D"}.ion-ios-pie-outline:before{content:"\F483"}.ion-ios-plus-outline:before{content:"\F48A"}.ion-ios-unlocked:before{content:"\F4C9"}.ion-link:before{content:"\F1FE"}.ion-load-c:before{content:"\F29C"}.ion-lock-combination:before{content:"\F4D4"}.ion-log-out:before{content:"\F29F"}.ion-monitor:before{content:"\F20A"}.ion-navicon:before{content:"\F20E"}.ion-paintbrush:before{content:"\F4D5"}.ion-paintbucket:before{content:"\F4D6"}.ion-paper-airplane:before{content:"\F2C3"}.ion-person:before{content:"\F213"}.ion-speedometer:before{content:"\F2B3"}.ion-stats-bars:before{content:"\F2B5"}.ion-unlocked:before{content:"\F254"}.ion-wand:before{content:"\F358"} -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,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}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}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{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;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-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}details,figure,footer,header,main,menu,nav,section,summary{display:block}canvas,progress{display:inline-block;vertical-align:baseline}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}code{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}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{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;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-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:transparent!important;color:#000!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-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:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{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 td,.table-bordered th{border:1px solid #ddd!important}}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#67808c;text-decoration:none}a:focus,a:hover{color:#465760;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:4px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:3px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.bootstrap-datetimepicker-widget .btn[data-action=clear]:after,.bootstrap-datetimepicker-widget .btn[data-action=decrementHours]:after,.bootstrap-datetimepicker-widget .btn[data-action=decrementMinutes]:after,.bootstrap-datetimepicker-widget .btn[data-action=incrementHours]:after,.bootstrap-datetimepicker-widget .btn[data-action=incrementMinutes]:after,.bootstrap-datetimepicker-widget .btn[data-action=showHours]:after,.bootstrap-datetimepicker-widget .btn[data-action=showMinutes]:after,.bootstrap-datetimepicker-widget .btn[data-action=today]:after,.bootstrap-datetimepicker-widget .btn[data-action=togglePeriod]:after,.bootstrap-datetimepicker-widget .picker-switch:after,.bootstrap-datetimepicker-widget table th.next:after,.bootstrap-datetimepicker-widget table th.prev:after,.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.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,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,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,.h5,.h6,h4,h5,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;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.component-inline-update,.text-right{text-align:right}.text-center,body.dashboard .sidebar .sidebar-inner .quick-add-incident{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.initialism,.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#67808c}a.text-primary:focus,a.text-primary:hover{color:#51656f}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#67808c}a.bg-primary:focus,a.bg-primary:hover{background-color:#51656f}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}.dl-horizontal dd:after,.dl-horizontal dd:before{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:"\2014 \A0"}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:""}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:"\A0 \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:3px}code,kbd{padding:2px 4px;font-size:90%}kbd{color:#fff;background-color:#333;border-radius:2px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:3px}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;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container-fluid:after,.container-fluid:before{content:" ";display:table}.container-fluid:after{clear:both}.row,.setup-page .steps{margin-left:-15px;margin-right:-15px}.row:after,.row:before,.setup-page .steps:after,.setup-page .steps:before{content:" ";display:table}.row:after,.setup-page .steps:after{clear:both}.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,.col-lg-12,.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,.col-md-12,.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,.col-sm-12,.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,.col-xs-12,.setup-page .steps .step{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.setup-page .steps .step{float:left}.col-xs-1{width:8.33333333%}.col-xs-2{width:16.66666667%}.col-xs-3,.setup-page .steps .step{width:25%}.col-xs-4{width:33.33333333%}.col-xs-5{width:41.66666667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333333%}.col-xs-8{width:66.66666667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333%}.col-xs-11{width:91.66666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.33333333%}.col-xs-push-2{left:16.66666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.33333333%}.col-xs-push-5{left:41.66666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.33333333%}.col-xs-push-8{left:66.66666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.33333333%}.col-xs-push-11{left:91.66666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-12{margin-left:100%}@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,.col-sm-12{float:left}.col-sm-1{width:8.33333333%}.col-sm-2{width:16.66666667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333%}.col-sm-5{width:41.66666667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333333%}.col-sm-8{width:66.66666667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333%}.col-sm-11{width:91.66666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.33333333%}.col-sm-push-2{left:16.66666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333%}.col-sm-push-5{left:41.66666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333333%}.col-sm-push-8{left:66.66666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333%}.col-sm-push-11{left:91.66666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-12{margin-left:100%}}@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,.col-md-12{float:left}.col-md-1{width:8.33333333%}.col-md-2{width:16.66666667%}.col-md-3{width:25%}.col-md-4{width:33.33333333%}.col-md-5{width:41.66666667%}.col-md-6{width:50%}.col-md-7{width:58.33333333%}.col-md-8{width:66.66666667%}.col-md-9{width:75%}.col-md-10{width:83.33333333%}.col-md-11{width:91.66666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.33333333%}.col-md-pull-2{right:16.66666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333%}.col-md-pull-5{right:41.66666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333333%}.col-md-pull-8{right:66.66666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333%}.col-md-pull-11{right:91.66666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.33333333%}.col-md-push-2{left:16.66666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333%}.col-md-push-5{left:41.66666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333333%}.col-md-push-8{left:66.66666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333%}.col-md-push-11{left:91.66666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-12{margin-left:100%}}@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,.col-lg-12{float:left}.col-lg-1{width:8.33333333%}.col-lg-2{width:16.66666667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333%}.col-lg-5{width:41.66666667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333333%}.col-lg-8{width:66.66666667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333%}.col-lg-11{width:91.66666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.33333333%}.col-lg-push-2{left:16.66666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333%}.col-lg-push-5{left:41.66666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333333%}.col-lg-push-8{left:66.66666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333%}.col-lg-push-11{left:91.66666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-12{margin-left:100%}}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>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{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>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{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;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@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>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{margin:0;min-width:0}fieldset,legend{padding:0;border:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{height:34px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.form-control:focus{outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);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::-ms-expand{border:0;background-color:transparent}.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=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm>.input-group-btn>input[type=date].btn,.input-group-sm>.input-group-btn>input[type=datetime-local].btn,.input-group-sm>.input-group-btn>input[type=month].btn,.input-group-sm>.input-group-btn>input[type=time].btn,.input-group-sm>input[type=date].form-control,.input-group-sm>input[type=date].input-group-addon,.input-group-sm>input[type=datetime-local].form-control,.input-group-sm>input[type=datetime-local].input-group-addon,.input-group-sm>input[type=month].form-control,.input-group-sm>input[type=month].input-group-addon,.input-group-sm>input[type=time].form-control,.input-group-sm>input[type=time].input-group-addon,.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg>.input-group-btn>input[type=date].btn,.input-group-lg>.input-group-btn>input[type=datetime-local].btn,.input-group-lg>.input-group-btn>input[type=month].btn,.input-group-lg>.input-group-btn>input[type=time].btn,.input-group-lg>input[type=date].form-control,.input-group-lg>input[type=date].input-group-addon,.input-group-lg>input[type=datetime-local].form-control,.input-group-lg>input[type=datetime-local].input-group-addon,.input-group-lg>input[type=month].form-control,.input-group-lg>input[type=month].input-group-addon,.input-group-lg>input[type=time].form-control,.input-group-lg>input[type=time].input-group-addon,.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline input[type=checkbox],.checkbox input[type=checkbox],.radio-inline input[type=radio],.radio input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .checkbox label,fieldset[disabled] .radio-inline,fieldset[disabled] .radio label,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:2px}.input-group-sm>.input-group-btn>select.btn,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,select.input-sm{height:30px;line-height:30px}.input-group-sm>.input-group-btn>select[multiple].btn,.input-group-sm>.input-group-btn>textarea.btn,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:2px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.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-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.input-group-lg>.input-group-btn>select.btn,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,select.input-lg{height:46px;line-height:46px}.input-group-lg>.input-group-btn>select[multiple].btn,.input-group-lg>.input-group-btn>textarea.btn,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.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}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success.checkbox-inline label,.has-success.checkbox label,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.radio-inline label,.has-success.radio label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning.checkbox-inline label,.has-warning.checkbox label,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.radio-inline label,.has-warning.radio label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error.checkbox-inline label,.has-error.checkbox label,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.radio-inline label,.has-error.radio label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.bootstrap-datetimepicker-widget .has-feedback label.btn[data-action=clear]:after~.form-control-feedback,.bootstrap-datetimepicker-widget .has-feedback label.btn[data-action=decrementHours]:after~.form-control-feedback,.bootstrap-datetimepicker-widget .has-feedback label.btn[data-action=decrementMinutes]:after~.form-control-feedback,.bootstrap-datetimepicker-widget .has-feedback label.btn[data-action=incrementHours]:after~.form-control-feedback,.bootstrap-datetimepicker-widget .has-feedback label.btn[data-action=incrementMinutes]:after~.form-control-feedback,.bootstrap-datetimepicker-widget .has-feedback label.btn[data-action=showHours]:after~.form-control-feedback,.bootstrap-datetimepicker-widget .has-feedback label.btn[data-action=showMinutes]:after~.form-control-feedback,.bootstrap-datetimepicker-widget .has-feedback label.btn[data-action=today]:after~.form-control-feedback,.bootstrap-datetimepicker-widget .has-feedback label.btn[data-action=togglePeriod]:after~.form-control-feedback,.bootstrap-datetimepicker-widget .has-feedback label.picker-switch:after~.form-control-feedback,.has-feedback .bootstrap-datetimepicker-widget label.btn[data-action=clear]:after~.form-control-feedback,.has-feedback .bootstrap-datetimepicker-widget label.btn[data-action=decrementHours]:after~.form-control-feedback,.has-feedback .bootstrap-datetimepicker-widget label.btn[data-action=decrementMinutes]:after~.form-control-feedback,.has-feedback .bootstrap-datetimepicker-widget label.btn[data-action=incrementHours]:after~.form-control-feedback,.has-feedback .bootstrap-datetimepicker-widget label.btn[data-action=incrementMinutes]:after~.form-control-feedback,.has-feedback .bootstrap-datetimepicker-widget label.btn[data-action=showHours]:after~.form-control-feedback,.has-feedback .bootstrap-datetimepicker-widget label.btn[data-action=showMinutes]:after~.form-control-feedback,.has-feedback .bootstrap-datetimepicker-widget label.btn[data-action=today]:after~.form-control-feedback,.has-feedback .bootstrap-datetimepicker-widget label.btn[data-action=togglePeriod]:after~.form-control-feedback,.has-feedback .bootstrap-datetimepicker-widget label.picker-switch:after~.form-control-feedback,.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 .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:after,.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}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:#e6e5e5;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e6e5e5;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.btn-default.dropdown-toggle.focus,.open>.btn-default.dropdown-toggle:focus,.open>.btn-default.dropdown-toggle:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#67808c;border-color:#5c727d}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#51656f;border-color:#262f34}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#51656f;border-color:#42525a}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.btn-primary.dropdown-toggle.focus,.open>.btn-primary.dropdown-toggle:focus,.open>.btn-primary.dropdown-toggle:hover{color:#fff;background-color:#42525a;border-color:#262f34}.btn-primary.active,.btn-primary:active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#67808c;border-color:#5c727d}.btn-primary .badge{color:#67808c;background-color:#fff}.btn-success{color:#fff;background-color:#7ed321;border-color:#71bd1e}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#64a71a;border-color:#2f4f0c}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#64a71a;border-color:#518815}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.btn-success.dropdown-toggle.focus,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle:hover{color:#fff;background-color:#518815;border-color:#2f4f0c}.btn-success.active,.btn-success:active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#7ed321;border-color:#71bd1e}.btn-success .badge{color:#7ed321;background-color:#fff}.btn-info{color:#fff;background-color:#3498db;border-color:#258cd1}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#217dbb;border-color:#124364}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#217dbb;border-color:#1c699d}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.btn-info.dropdown-toggle.focus,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle:hover{color:#fff;background-color:#1c699d;border-color:#124364}.btn-info.active,.btn-info:active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#3498db;border-color:#258cd1}.btn-info .badge{color:#3498db;background-color:#fff}.btn-warning{color:#fff;background-color:#f80;border-color:#e67a00}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#cc6d00;border-color:#663600}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#cc6d00;border-color:#a85a00}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.btn-warning.dropdown-toggle.focus,.open>.btn-warning.dropdown-toggle:focus,.open>.btn-warning.dropdown-toggle:hover{color:#fff;background-color:#a85a00;border-color:#663600}.btn-warning.active,.btn-warning:active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f80;border-color:#e67a00}.btn-warning .badge{color:#f80;background-color:#fff}.btn-danger{color:#fff;background-color:#ff6f6f;border-color:#ff5656}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#ff3c3c;border-color:#d50000}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#ff3c3c;border-color:#ff1818}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.btn-danger.dropdown-toggle.focus,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle:hover{color:#fff;background-color:#ff1818;border-color:#d50000}.btn-danger.active,.btn-danger:active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#ff6f6f;border-color:#ff5656}.btn-danger .badge{color:#ff6f6f;background-color:#fff}.btn-link{color:#67808c;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#465760;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:2px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:2px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.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:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#67808c}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.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{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{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:after,.btn-toolbar:before{content:" ";display:table}.btn-toolbar:after{clear:both}.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-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-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-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group-lg.btn-group>.btn+.dropdown-toggle,.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-group-lg>.btn .caret,.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-group-lg>.btn .caret,.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-group:after,.btn-group-vertical>.btn-group:before{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.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:3px;border-top-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.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-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio]{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-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:3px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:2px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:4px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.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-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group .form-control:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group .form-control:last-child{border-bottom-left-radius:0;border-top-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{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{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#67808c}.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:3px 3px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:3px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#67808c}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:3px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:3px 3px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:3px}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;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-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{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-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container-fluid .navbar-brand,.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:3px}.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;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{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{margin:8px -15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1),0 1px 0 hsla(0,0%,100%,.1);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1),0 1px 0 hsla(0,0%,100%,.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 .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{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;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.btn-group-sm>.navbar-btn.btn,.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.btn-group-xs>.navbar-btn.btn,.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-left:15px;margin-right: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:focus,.navbar-default .navbar-brand:hover{color:#5e5d5d;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{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:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{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:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{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:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#090909;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{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:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.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}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#67808c}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#51656f}.label-success{background-color:#7ed321}.label-success[href]:focus,.label-success[href]:hover{background-color:#64a71a}.label-info{background-color:#3498db}.label-info[href]:focus,.label-info[href]:hover{background-color:#217dbb}.label-warning{background-color:#f80}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#cc6d00}.label-danger{background-color:#ff6f6f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#ff3c3c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#67808c;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}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:3px}.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{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}.list-group{margin-bottom:20px;padding-left:0}.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-right-radius:3px;border-top-left-radius:3px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}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:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#67808c;border-color:#67808c}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#dbe1e4}.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:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{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:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{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:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{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:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{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:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.panel-heading>.dropdown .dropdown-toggle,.panel-title{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.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-right-radius:2px;border-top-left-radius:2px}.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:2px;border-bottom-left-radius:2px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table-responsive>.table caption,.panel>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.panel>.table-responsive:first-child>.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 th:first-child,.panel>.table-responsive:first-child>.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 th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:2px}.panel>.table-responsive:first-child>.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 th:last-child,.panel>.table-responsive:first-child>.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 th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:2px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.table-responsive:last-child>.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 th:first-child,.panel>.table-responsive:last-child>.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 th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:2px}.panel>.table-responsive:last-child>.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 th:last-child,.panel>.table-responsive:last-child>.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 th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:2px}.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 td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:3px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{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:#67808c}.panel-primary>.panel-heading{color:#fff;background-color:#67808c;border-color:#67808c}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#67808c}.panel-primary>.panel-heading .badge{color:#67808c;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#67808c}.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{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}.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}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);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:4px}.well-sm{padding:9px;border-radius:2px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal,.modal-open{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0);transform:translate(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;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:4px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header:after,.modal-header:before{content:" ";display:table}.modal-header:after{clear:both}.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:after,.modal-footer:before{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);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-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#333;border-radius:3px}.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:#333}.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:#333}.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:#333}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#333}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#333}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,body.dashboard .sidebar .sidebar-inner .quick-add-incident i{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}td.visible-xs,th.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,body.dashboard .sidebar .sidebar-inner .quick-add-incident i{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.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}td.visible-md,th.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}td.visible-lg,th.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,body.dashboard .sidebar .bottom-menu-sidebar,body.dashboard .sidebar .sidebar-inner .quick-add-incident span,body.dashboard .sidebar .sidebar-inner>ul>li>a>span{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}td.visible-print,th.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}}html{position:relative;min-height:100%;-webkit-font-smoothing:antialiased;overflow-y:scroll}body{margin-bottom:60px;padding-bottom:60px}.uppercase{text-transform:uppercase}.margin-top{margin-top:20px}.margin-bottom{margin-bottom:20px}.no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[role=tabpanel] ul.nav-tabs{border-bottom:1px solid #d5d8d7}div[role=tabpanel] ul.nav-tabs li a{font-weight:400;display:inline-block;padding:10px 25px;border-radius:0;font-size:.9em;letter-spacing:.01em}div[role=tabpanel] .tab-content{border-left:1px solid #d5d8d7;border-bottom:1px solid #d5d8d7;border-right:1px solid #d5d8d7;background-color:#fff}div[role=tabpanel] .tab-content .tab-pane{padding:10px}label{font-size:14px}textarea{resize:none;overflow:auto}.markdown-control{position:relative}.markdown-control:before{position:absolute;display:block;right:0;bottom:0;width:40px;height:40px;font-size:2em;font-family:Ionicons;content:"\F4E6"}.form-control{display:block;width:100%;height:45px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.form-control:focus{border-color:#66afe9}@media (max-width:767px){.component-inline .radio-items{text-align:left}.component-inline .radio-items .radio-inline{margin-left:0;width:100%}}.minicolors-theme-bootstrap .minicolors-swatch{top:9px;left:9px}.well{border-radius:0}.alert{border-radius:4px;background:#f7ca18;border:2px solid #d5ab07}.alert.alert-success{background-color:#7ed321;border:2px solid #64a71a;color:#fff}.alert.alert-success a{color:#fff;font-weight:700}.alert.alert-info{background:#3498db;border:2px solid #217dbb;color:#fff}.alert.alert-info a{color:#fff;font-weight:700}.alert.alert-danger{background:#ff6f6f;border:2px solid #ff3c3c;color:#fff}.alert.alert-danger a{color:#fff;font-weight:700}.panel-danger{border-color:#ff3c3c}.panel-danger>.panel-heading{color:#fff;background-color:#ff6f6f;border-color:#ff3c3c}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ff3c3c}.panel-danger>.panel-heading .badge{color:#ff6f6f;background-color:#fff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ff3c3c}.panel-success{border-color:#64a71a}.panel-success>.panel-heading{color:#fff;background-color:#7ed321;border-color:#64a71a}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#64a71a}.panel-success>.panel-heading .badge{color:#7ed321;background-color:#fff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#64a71a}.panel-info{border-color:#217dbb}.panel-info>.panel-heading{color:#fff;background-color:#3498db;border-color:#217dbb}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#217dbb}.panel-info>.panel-heading .badge{color:#3498db;background-color:#fff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#217dbb}.panel-warning{border-color:#d5ab07}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#f7ca18;border-color:#d5ab07}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d5ab07}.panel-warning>.panel-heading .badge{color:#f7ca18;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d5ab07}.btn.btn-default{color:#333;background:#fff;border:1px solid #e6e5e5}.btn.btn-default.active,.btn.btn-default:active,.btn.btn-default:focus,.btn.btn-default:hover{background:#f2f2f2;border-color:#e6e5e5;color:#333;outline:none;outline-offset:0}.btn.btn-default.disabled,.btn.btn-default.disabled.active,.btn.btn-default.disabled:active,.btn.btn-default.disabled:focus,.btn.btn-default.disabled:hover,.btn.btn-default[disabled],.btn.btn-default[disabled].active,.btn.btn-default[disabled]:active,.btn.btn-default[disabled]:focus,.btn.btn-default[disabled]:hover,fieldset[disabled] .btn.btn-default,fieldset[disabled] .btn.btn-default.active,fieldset[disabled] .btn.btn-default:active,fieldset[disabled] .btn.btn-default:focus,fieldset[disabled] .btn.btn-default:hover{background-color:#fff;border-color:#e6e5e5}.btn.btn-primary{color:#fff;background:#67808c;border:1px solid #51656f}.btn.btn-primary.active,.btn.btn-primary:active,.btn.btn-primary:focus,.btn.btn-primary:hover{background:#5c727d;border-color:#51656f;color:#fff;outline:none;outline-offset:0}.btn.btn-primary.disabled,.btn.btn-primary.disabled.active,.btn.btn-primary.disabled:active,.btn.btn-primary.disabled:focus,.btn.btn-primary.disabled:hover,.btn.btn-primary[disabled],.btn.btn-primary[disabled].active,.btn.btn-primary[disabled]:active,.btn.btn-primary[disabled]:focus,.btn.btn-primary[disabled]:hover,fieldset[disabled] .btn.btn-primary,fieldset[disabled] .btn.btn-primary.active,fieldset[disabled] .btn.btn-primary:active,fieldset[disabled] .btn.btn-primary:focus,fieldset[disabled] .btn.btn-primary:hover{background-color:#748c99;border-color:#51656f}.btn.btn-success{color:#fff;background:#7ed321;border:1px solid #64a71a}.btn.btn-success.active,.btn.btn-success:active,.btn.btn-success:focus,.btn.btn-success:hover{background:#71bd1e;border-color:#64a71a;color:#fff;outline:none;outline-offset:0}.btn.btn-success.disabled,.btn.btn-success.disabled.active,.btn.btn-success.disabled:active,.btn.btn-success.disabled:focus,.btn.btn-success.disabled:hover,.btn.btn-success[disabled],.btn.btn-success[disabled].active,.btn.btn-success[disabled]:active,.btn.btn-success[disabled]:focus,.btn.btn-success[disabled]:hover,fieldset[disabled] .btn.btn-success,fieldset[disabled] .btn.btn-success.active,fieldset[disabled] .btn.btn-success:active,fieldset[disabled] .btn.btn-success:focus,fieldset[disabled] .btn.btn-success:hover{background-color:#8bde2f;border-color:#64a71a}.btn.btn-info{color:#fff;background:#3498db;border:1px solid #217dbb}.btn.btn-info.active,.btn.btn-info:active,.btn.btn-info:focus,.btn.btn-info:hover{background:#258cd1;border-color:#217dbb;color:#fff;outline:none;outline-offset:0}.btn.btn-info.disabled,.btn.btn-info.disabled.active,.btn.btn-info.disabled:active,.btn.btn-info.disabled:focus,.btn.btn-info.disabled:hover,.btn.btn-info[disabled],.btn.btn-info[disabled].active,.btn.btn-info[disabled]:active,.btn.btn-info[disabled]:focus,.btn.btn-info[disabled]:hover,fieldset[disabled] .btn.btn-info,fieldset[disabled] .btn.btn-info.active,fieldset[disabled] .btn.btn-info:active,fieldset[disabled] .btn.btn-info:focus,fieldset[disabled] .btn.btn-info:hover{background-color:#4aa3df;border-color:#217dbb}.btn.btn-warning{color:#fff;background:#f80;border:1px solid #cc6d00}.btn.btn-warning.active,.btn.btn-warning:active,.btn.btn-warning:focus,.btn.btn-warning:hover{background:#e67a00;border-color:#cc6d00;color:#fff;outline:none;outline-offset:0}.btn.btn-warning.disabled,.btn.btn-warning.disabled.active,.btn.btn-warning.disabled:active,.btn.btn-warning.disabled:focus,.btn.btn-warning.disabled:hover,.btn.btn-warning[disabled],.btn.btn-warning[disabled].active,.btn.btn-warning[disabled]:active,.btn.btn-warning[disabled]:focus,.btn.btn-warning[disabled]:hover,fieldset[disabled] .btn.btn-warning,fieldset[disabled] .btn.btn-warning.active,fieldset[disabled] .btn.btn-warning:active,fieldset[disabled] .btn.btn-warning:focus,fieldset[disabled] .btn.btn-warning:hover{background-color:#ff941a;border-color:#cc6d00}.btn.btn-danger{color:#fff;background:#ff6f6f;border:1px solid #ff3c3c}.btn.btn-danger.active,.btn.btn-danger:active,.btn.btn-danger:focus,.btn.btn-danger:hover{background:#ff5656;border-color:#ff3c3c;color:#fff;outline:none;outline-offset:0}.btn.btn-danger.disabled,.btn.btn-danger.disabled.active,.btn.btn-danger.disabled:active,.btn.btn-danger.disabled:focus,.btn.btn-danger.disabled:hover,.btn.btn-danger[disabled],.btn.btn-danger[disabled].active,.btn.btn-danger[disabled]:active,.btn.btn-danger[disabled]:focus,.btn.btn-danger[disabled]:hover,fieldset[disabled] .btn.btn-danger,fieldset[disabled] .btn.btn-danger.active,fieldset[disabled] .btn.btn-danger:active,fieldset[disabled] .btn.btn-danger:focus,fieldset[disabled] .btn.btn-danger:hover{background-color:#ff8989;border-color:#ff3c3c}.btn.btn-inverse{color:#fff;background:#474949;border:1px solid #2e2f2f}.btn.btn-inverse.active,.btn.btn-inverse:active,.btn.btn-inverse:focus,.btn.btn-inverse:hover{background:#3a3c3c;border-color:#2e2f2f;color:#fff;outline:none;outline-offset:0}.btn.btn-inverse.disabled,.btn.btn-inverse.disabled.active,.btn.btn-inverse.disabled:active,.btn.btn-inverse.disabled:focus,.btn.btn-inverse.disabled:hover,.btn.btn-inverse[disabled],.btn.btn-inverse[disabled].active,.btn.btn-inverse[disabled]:active,.btn.btn-inverse[disabled]:focus,.btn.btn-inverse[disabled]:hover,fieldset[disabled] .btn.btn-inverse,fieldset[disabled] .btn.btn-inverse.active,fieldset[disabled] .btn.btn-inverse:active,fieldset[disabled] .btn.btn-inverse:focus,fieldset[disabled] .btn.btn-inverse:hover{background-color:#545656;border-color:#2e2f2f}.btn-outline{background-color:transparent;background-image:none!important;color:inherit;-webkit-transition:all .5s;transition:all .5s}.btn-default.btn-outline{color:#999}.btn-primary.btn-outline{color:#428bca}.btn-success.btn-outline{color:#5cb85c}.btn-info.btn-outline{color:#5bc0de}.btn-warning.btn-outline{color:#f0ad4e}.btn-danger.btn-outline{color:#d9534f}.btn-danger.btn-outline:hover,.btn-info.btn-outline:hover,.btn-primary.btn-outline:hover,.btn-success.btn-outline:hover,.btn-warning.btn-outline:hover{color:#fff}.pager li>a,.pager li>span{border-radius:3px}body.error-page{background-color:#f3f3f4}body.error-page .middle-box{height:400px;width:400px;position:absolute;top:50%;left:50%;margin-top:-250px;margin-left:-200px;z-index:100}body.error-page .middle-box h1{font-size:9em}body.error-page h3.font-bold{font-weight:600}body.dashboard{font-family:-apple-system,BlinkMacSystemFont,Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-size:15px;display:table;width:100%;height:100%;table-layout:fixed;line-height:1.42857143;-webkit-font-smoothing:antialiased}body.dashboard .wrapper{padding-left:0;-webkit-transition:all .5s ease;transition:all .5s ease}body.dashboard .wrapper.toggled{padding-left:235px}body.dashboard .wrapper.toggled .sidebar{width:235px}body.dashboard .wrapper.toggled .page-content{position:absolute;margin-right:-235px}@media (min-width:768px) and (max-width:991px){body.dashboard .wrapper{padding-left:80px}}@media (min-width:991px){body.dashboard .wrapper{padding-left:235px}body.dashboard .wrapper.toggled{padding-left:0}body.dashboard .wrapper.toggled .page-content{position:relative;margin-right:0}}body.dashboard .alerts .alert h5{margin-top:5px}body.dashboard .wrapper{width:100%;display:table;height:100%;table-layout:fixed}body.dashboard .navbar{z-index:999;border-radius:0;border:none;border-bottom:1px solid #00695c;background:#009c89;margin:0}body.dashboard .navbar a,body.dashboard .navbar a:active,body.dashboard .navbar a:visited{color:#fff}body.dashboard .navbar a:active:hover,body.dashboard .navbar a:hover,body.dashboard .navbar a:visited:hover{color:#e9e9e9}body.dashboard .navbar .navbar-toggle{margin-top:15px;background:transparent;border-color:transparent}body.dashboard .navbar .navbar-toggle.collapsed span{background-color:#fff}body.dashboard .navbar .navbar-collapse{background:#009c89}body.dashboard .navbar a.navbar-brand{padding:34px 21px;line-height:0;font-size:1.1em;letter-spacing:.04em;font-weight:600;text-transform:uppercase}@media (min-width:991px){body.dashboard .navbar a.navbar-brand span{padding-right:10px}body.dashboard .navbar a.navbar-brand span:before{font-family:FontAwesome;content:"\F060"}}body.dashboard .navbar .nav li a{height:68px;line-height:35px}body.dashboard .sidebar{position:fixed;left:235px;width:0;height:100%;margin-left:-235px;overflow-y:auto;background:#333;-webkit-box-shadow:inset 0 -2px 3px rgba(0,0,0,.25);box-shadow:inset 0 -2px 3px rgba(0,0,0,.25);z-index:1000;-webkit-transition:all .5s ease;transition:all .5s ease}body.dashboard .sidebar .sidebar-inner{position:absolute;top:0;width:235px;margin:0;padding:0;list-style:none}body.dashboard .sidebar .sidebar-inner .profile{text-align:center;padding:20px 10px;margin-bottom:0}body.dashboard .sidebar .sidebar-inner .profile .dropdown-toggle{text-decoration:none}body.dashboard .sidebar .sidebar-inner .profile .dropdown-menu{top:108%}body.dashboard .sidebar .sidebar-inner .profile .avatar{width:60px}body.dashboard .sidebar .sidebar-inner .profile .avatar img{border-radius:50%;width:50px}body.dashboard .sidebar .sidebar-inner .profile .username{word-break:break-all;margin-bottom:0}body.dashboard .sidebar .sidebar-inner .profile a{color:#fff;text-decoration:none}body.dashboard .sidebar .sidebar-inner .quick-add-incident{padding:10px}body.dashboard .sidebar .sidebar-inner ul{clear:both;margin:0;padding:0;list-style:none}body.dashboard .sidebar .sidebar-inner ul li{font-size:.9em}body.dashboard .sidebar .sidebar-inner ul li:focus,body.dashboard .sidebar .sidebar-inner ul li:hover{background:#404040!important}body.dashboard .sidebar .sidebar-inner ul li.active{background:#4d4c4c}body.dashboard .sidebar .sidebar-inner ul li.active:hover{background:#595959!important}body.dashboard .sidebar .sidebar-inner ul li.active a{padding-top:14px;padding-bottom:14px;border-top:1px solid #666;border-bottom:1px solid #666;color:#fff}body.dashboard .sidebar .sidebar-inner ul li.active a:focus,body.dashboard .sidebar .sidebar-inner ul li.active a:hover{text-decoration:none}body.dashboard .sidebar .sidebar-inner ul li a{display:block;padding:15px;color:#fff}body.dashboard .sidebar .sidebar-inner ul li a i{font-size:18px;min-width:17px;text-align:center;position:relative;top:1px;margin-right:5px}body.dashboard .sidebar .sidebar-inner ul li a:focus,body.dashboard .sidebar .sidebar-inner ul li a:hover{text-decoration:none}body.dashboard .sidebar .sidebar-inner ul li a span.label{float:right;margin:3px 0}body.dashboard .sidebar .sidebar-inner ul li a span.label.label-info{background-color:#6db81c}body.dashboard .sidebar .sidebar-inner ul li.sub-nav-item a{padding-left:40px}body.dashboard .sidebar .bottom-menu-sidebar{position:fixed;bottom:0;width:237px;z-index:999}body.dashboard .sidebar .bottom-menu-sidebar ul>li{float:left;display:block;width:33.333%;border-right:1px solid #ddd;border-top:1px solid #ddd}body.dashboard .sidebar .bottom-menu-sidebar ul>li a{color:#333;display:block;position:relative;text-align:center;padding:6px 0;background:#fff}@media (min-width:767px){body.dashboard .sidebar{width:235px}body.dashboard .wrapper.toggled .sidebar{width:0}}@media (min-width:768px) and (max-width:991px){body.dashboard .sidebar{width:80px;left:150px;margin-left:-150px}body.dashboard .sidebar .sidebar-inner{width:80px}body.dashboard .sidebar .sidebar-inner .profile .avatar img{width:40px}body.dashboard .sidebar .sidebar-inner .quick-add-incident .btn{padding:3px 6px}body.dashboard .sidebar .sidebar-inner .quick-add-incident i{font-size:20px}body.dashboard .sidebar .sidebar-inner>ul>li>a{text-align:center}body.dashboard .sidebar .sidebar-inner>ul>li>a>i{font-size:25px}}body.dashboard .sidebar-toggler{float:left;padding:10px;position:relative;top:-15px;left:-5px;margin-right:10px;cursor:pointer}body.dashboard .sidebar-toggler i{font-size:25px}body.dashboard .sub-sidebar{left:0;top:0;bottom:0;position:fixed;margin-left:228px;width:22%;background:#f0f3f4;border-right:1px solid #e8ecf1}body.dashboard .sub-sidebar h3{margin:0;text-align:center;font-size:19px;padding:30px 15px 15px}body.dashboard .sub-sidebar hr{margin-top:5px;margin-bottom:5px}body.dashboard .sub-sidebar ul.menu{list-style-type:none;padding:0;margin:0}body.dashboard .sub-sidebar ul.menu li a{color:#666;display:block;padding:13px 30px;font-size:15px;-webkit-transition:all .2s linear;transition:all .2s linear;text-decoration:none}body.dashboard .sub-sidebar ul.menu li a.active,body.dashboard .sub-sidebar ul.menu li a:hover{color:#6db81c}body.dashboard .sub-sidebar ul.menu li i{margin-right:5px}body.dashboard .sub-sidebar .sidebar-toggler{position:absolute;top:3px;left:20px;font-size:36px;cursor:pointer}body.dashboard .sub-sidebar+.content-wrapper{top:0;position:relative;margin-left:26%;padding-right:40px!important}@media (max-width:767px){body.dashboard .sub-sidebar{position:relative;margin-left:0;width:100%}body.dashboard .sub-sidebar+.content-wrapper{margin-left:0;padding-left:40px!important;width:100%}}@media (min-width:768px) and (max-width:991px){body.dashboard .sub-sidebar{margin-left:80px;width:25%}body.dashboard .sub-sidebar+.content-wrapper{padding-left:45px!important}}body.dashboard .page-content{width:100%}body.dashboard .page-content .content-wrapper{padding-top:20px;padding-left:40px;padding-right:40px}body.dashboard .page-content .content-wrapper.header-fixed{margin-top:60px}body.dashboard .page-content .header{position:relative;top:0;left:0;color:#333;background-color:#fff;padding:22px 40px;width:100%;height:70px;font-size:1.2em;border-bottom:1px solid #eee;z-index:99}body.dashboard .page-content .header.sub-header{padding:8px 2px;height:50px}body.dashboard .page-content .header.fixed{position:fixed;padding-left:270px}body.dashboard .page-content .header .btn,body.dashboard .page-content .header button,body.dashboard .page-content .header input{position:relative;top:-4px}body.dashboard .page-content .header input{width:20%}.setup-page body.dashboard .page-content .header+.steps,body.dashboard .page-content .header+.row,body.dashboard .page-content .setup-page .header+.steps{margin-top:23px}body.dashboard .page-content .header h3{color:#444;margin-top:0;text-transform:uppercase}body.dashboard .page-content .header .ion,body.dashboard .page-content .header .ion-alert-circled:before,body.dashboard .page-content .header .ion-alert:before,body.dashboard .page-content .header .ion-android-add-circle:before,body.dashboard .page-content .header .ion-android-add:before,body.dashboard .page-content .header .ion-android-alarm-clock:before,body.dashboard .page-content .header .ion-android-alert:before,body.dashboard .page-content .header .ion-android-apps:before,body.dashboard .page-content .header .ion-android-archive:before,body.dashboard .page-content .header .ion-android-arrow-back:before,body.dashboard .page-content .header .ion-android-arrow-down:before,body.dashboard .page-content .header .ion-android-arrow-dropdown-circle:before,body.dashboard .page-content .header .ion-android-arrow-dropdown:before,body.dashboard .page-content .header .ion-android-arrow-dropleft-circle:before,body.dashboard .page-content .header .ion-android-arrow-dropleft:before,body.dashboard .page-content .header .ion-android-arrow-dropright-circle:before,body.dashboard .page-content .header .ion-android-arrow-dropright:before,body.dashboard .page-content .header .ion-android-arrow-dropup-circle:before,body.dashboard .page-content .header .ion-android-arrow-dropup:before,body.dashboard .page-content .header .ion-android-arrow-forward:before,body.dashboard .page-content .header .ion-android-arrow-up:before,body.dashboard .page-content .header .ion-android-attach:before,body.dashboard .page-content .header .ion-android-bar:before,body.dashboard .page-content .header .ion-android-bicycle:before,body.dashboard .page-content .header .ion-android-boat:before,body.dashboard .page-content .header .ion-android-bookmark:before,body.dashboard .page-content .header .ion-android-bulb:before,body.dashboard .page-content .header .ion-android-bus:before,body.dashboard .page-content .header .ion-android-calendar:before,body.dashboard .page-content .header .ion-android-call:before,body.dashboard .page-content .header .ion-android-camera:before,body.dashboard .page-content .header .ion-android-cancel:before,body.dashboard .page-content .header .ion-android-car:before,body.dashboard .page-content .header .ion-android-cart:before,body.dashboard .page-content .header .ion-android-chat:before,body.dashboard .page-content .header .ion-android-checkbox-blank:before,body.dashboard .page-content .header .ion-android-checkbox-outline-blank:before,body.dashboard .page-content .header .ion-android-checkbox-outline:before,body.dashboard .page-content .header .ion-android-checkbox:before,body.dashboard .page-content .header .ion-android-checkmark-circle:before,body.dashboard .page-content .header .ion-android-clipboard:before,body.dashboard .page-content .header .ion-android-close:before,body.dashboard .page-content .header .ion-android-cloud-circle:before,body.dashboard .page-content .header .ion-android-cloud-done:before,body.dashboard .page-content .header .ion-android-cloud-outline:before,body.dashboard .page-content .header .ion-android-cloud:before,body.dashboard .page-content .header .ion-android-color-palette:before,body.dashboard .page-content .header .ion-android-compass:before,body.dashboard .page-content .header .ion-android-contact:before,body.dashboard .page-content .header .ion-android-contacts:before,body.dashboard .page-content .header .ion-android-contract:before,body.dashboard .page-content .header .ion-android-create:before,body.dashboard .page-content .header .ion-android-delete:before,body.dashboard .page-content .header .ion-android-desktop:before,body.dashboard .page-content .header .ion-android-document:before,body.dashboard .page-content .header .ion-android-done-all:before,body.dashboard .page-content .header .ion-android-done:before,body.dashboard .page-content .header .ion-android-download:before,body.dashboard .page-content .header .ion-android-drafts:before,body.dashboard .page-content .header .ion-android-exit:before,body.dashboard .page-content .header .ion-android-expand:before,body.dashboard .page-content .header .ion-android-favorite-outline:before,body.dashboard .page-content .header .ion-android-favorite:before,body.dashboard .page-content .header .ion-android-film:before,body.dashboard .page-content .header .ion-android-folder-open:before,body.dashboard .page-content .header .ion-android-folder:before,body.dashboard .page-content .header .ion-android-funnel:before,body.dashboard .page-content .header .ion-android-globe:before,body.dashboard .page-content .header .ion-android-hand:before,body.dashboard .page-content .header .ion-android-hangout:before,body.dashboard .page-content .header .ion-android-happy:before,body.dashboard .page-content .header .ion-android-home:before,body.dashboard .page-content .header .ion-android-image:before,body.dashboard .page-content .header .ion-android-laptop:before,body.dashboard .page-content .header .ion-android-list:before,body.dashboard .page-content .header .ion-android-locate:before,body.dashboard .page-content .header .ion-android-lock:before,body.dashboard .page-content .header .ion-android-mail:before,body.dashboard .page-content .header .ion-android-map:before,body.dashboard .page-content .header .ion-android-menu:before,body.dashboard .page-content .header .ion-android-microphone-off:before,body.dashboard .page-content .header .ion-android-microphone:before,body.dashboard .page-content .header .ion-android-more-horizontal:before,body.dashboard .page-content .header .ion-android-more-vertical:before,body.dashboard .page-content .header .ion-android-navigate:before,body.dashboard .page-content .header .ion-android-notifications-none:before,body.dashboard .page-content .header .ion-android-notifications-off:before,body.dashboard .page-content .header .ion-android-notifications:before,body.dashboard .page-content .header .ion-android-open:before,body.dashboard .page-content .header .ion-android-options:before,body.dashboard .page-content .header .ion-android-people:before,body.dashboard .page-content .header .ion-android-person-add:before,body.dashboard .page-content .header .ion-android-person:before,body.dashboard .page-content .header .ion-android-phone-landscape:before,body.dashboard .page-content .header .ion-android-phone-portrait:before,body.dashboard .page-content .header .ion-android-pin:before,body.dashboard .page-content .header .ion-android-plane:before,body.dashboard .page-content .header .ion-android-playstore:before,body.dashboard .page-content .header .ion-android-print:before,body.dashboard .page-content .header .ion-android-radio-button-off:before,body.dashboard .page-content .header .ion-android-radio-button-on:before,body.dashboard .page-content .header .ion-android-refresh:before,body.dashboard .page-content .header .ion-android-remove-circle:before,body.dashboard .page-content .header .ion-android-remove:before,body.dashboard .page-content .header .ion-android-restaurant:before,body.dashboard .page-content .header .ion-android-sad:before,body.dashboard .page-content .header .ion-android-search:before,body.dashboard .page-content .header .ion-android-send:before,body.dashboard .page-content .header .ion-android-settings:before,body.dashboard .page-content .header .ion-android-share-alt:before,body.dashboard .page-content .header .ion-android-share:before,body.dashboard .page-content .header .ion-android-star-half:before,body.dashboard .page-content .header .ion-android-star-outline:before,body.dashboard .page-content .header .ion-android-star:before,body.dashboard .page-content .header .ion-android-stopwatch:before,body.dashboard .page-content .header .ion-android-subway:before,body.dashboard .page-content .header .ion-android-sunny:before,body.dashboard .page-content .header .ion-android-sync:before,body.dashboard .page-content .header .ion-android-textsms:before,body.dashboard .page-content .header .ion-android-time:before,body.dashboard .page-content .header .ion-android-train:before,body.dashboard .page-content .header .ion-android-unlock:before,body.dashboard .page-content .header .ion-android-upload:before,body.dashboard .page-content .header .ion-android-volume-down:before,body.dashboard .page-content .header .ion-android-volume-mute:before,body.dashboard .page-content .header .ion-android-volume-off:before,body.dashboard .page-content .header .ion-android-volume-up:before,body.dashboard .page-content .header .ion-android-walk:before,body.dashboard .page-content .header .ion-android-warning:before,body.dashboard .page-content .header .ion-android-watch:before,body.dashboard .page-content .header .ion-android-wifi:before,body.dashboard .page-content .header .ion-aperture:before,body.dashboard .page-content .header .ion-archive:before,body.dashboard .page-content .header .ion-arrow-down-a:before,body.dashboard .page-content .header .ion-arrow-down-b:before,body.dashboard .page-content .header .ion-arrow-down-c:before,body.dashboard .page-content .header .ion-arrow-expand:before,body.dashboard .page-content .header .ion-arrow-graph-down-left:before,body.dashboard .page-content .header .ion-arrow-graph-down-right:before,body.dashboard .page-content .header .ion-arrow-graph-up-left:before,body.dashboard .page-content .header .ion-arrow-graph-up-right:before,body.dashboard .page-content .header .ion-arrow-left-a:before,body.dashboard .page-content .header .ion-arrow-left-b:before,body.dashboard .page-content .header .ion-arrow-left-c:before,body.dashboard .page-content .header .ion-arrow-move:before,body.dashboard .page-content .header .ion-arrow-resize:before,body.dashboard .page-content .header .ion-arrow-return-left:before,body.dashboard .page-content .header .ion-arrow-return-right:before,body.dashboard .page-content .header .ion-arrow-right-a:before,body.dashboard .page-content .header .ion-arrow-right-b:before,body.dashboard .page-content .header .ion-arrow-right-c:before,body.dashboard .page-content .header .ion-arrow-shrink:before,body.dashboard .page-content .header .ion-arrow-swap:before,body.dashboard .page-content .header .ion-arrow-up-a:before,body.dashboard .page-content .header .ion-arrow-up-b:before,body.dashboard .page-content .header .ion-arrow-up-c:before,body.dashboard .page-content .header .ion-asterisk:before,body.dashboard .page-content .header .ion-at:before,body.dashboard .page-content .header .ion-backspace-outline:before,body.dashboard .page-content .header .ion-backspace:before,body.dashboard .page-content .header .ion-bag:before,body.dashboard .page-content .header .ion-battery-charging:before,body.dashboard .page-content .header .ion-battery-empty:before,body.dashboard .page-content .header .ion-battery-full:before,body.dashboard .page-content .header .ion-battery-half:before,body.dashboard .page-content .header .ion-battery-low:before,body.dashboard .page-content .header .ion-beaker:before,body.dashboard .page-content .header .ion-beer:before,body.dashboard .page-content .header .ion-bluetooth:before,body.dashboard .page-content .header .ion-bonfire:before,body.dashboard .page-content .header .ion-bookmark:before,body.dashboard .page-content .header .ion-bowtie:before,body.dashboard .page-content .header .ion-briefcase:before,body.dashboard .page-content .header .ion-bug:before,body.dashboard .page-content .header .ion-calculator:before,body.dashboard .page-content .header .ion-calendar:before,body.dashboard .page-content .header .ion-camera:before,body.dashboard .page-content .header .ion-card:before,body.dashboard .page-content .header .ion-cash:before,body.dashboard .page-content .header .ion-chatbox-working:before,body.dashboard .page-content .header .ion-chatbox:before,body.dashboard .page-content .header .ion-chatboxes:before,body.dashboard .page-content .header .ion-chatbubble-working:before,body.dashboard .page-content .header .ion-chatbubble:before,body.dashboard .page-content .header .ion-chatbubbles:before,body.dashboard .page-content .header .ion-checkmark-circled:before,body.dashboard .page-content .header .ion-checkmark-round:before,body.dashboard .page-content .header .ion-checkmark:before,body.dashboard .page-content .header .ion-chevron-down:before,body.dashboard .page-content .header .ion-chevron-left:before,body.dashboard .page-content .header .ion-chevron-right:before,body.dashboard .page-content .header .ion-chevron-up:before,body.dashboard .page-content .header .ion-clipboard:before,body.dashboard .page-content .header .ion-clock:before,body.dashboard .page-content .header .ion-close-circled:before,body.dashboard .page-content .header .ion-close-round:before,body.dashboard .page-content .header .ion-close:before,body.dashboard .page-content .header .ion-closed-captioning:before,body.dashboard .page-content .header .ion-cloud:before,body.dashboard .page-content .header .ion-code-download:before,body.dashboard .page-content .header .ion-code-working:before,body.dashboard .page-content .header .ion-code:before,body.dashboard .page-content .header .ion-coffee:before,body.dashboard .page-content .header .ion-compass:before,body.dashboard .page-content .header .ion-compose:before,body.dashboard .page-content .header .ion-connection-bars:before,body.dashboard .page-content .header .ion-contrast:before,body.dashboard .page-content .header .ion-crop:before,body.dashboard .page-content .header .ion-cube:before,body.dashboard .page-content .header .ion-disc:before,body.dashboard .page-content .header .ion-document-text:before,body.dashboard .page-content .header .ion-document:before,body.dashboard .page-content .header .ion-drag:before,body.dashboard .page-content .header .ion-earth:before,body.dashboard .page-content .header .ion-easel:before,body.dashboard .page-content .header .ion-edit:before,body.dashboard .page-content .header .ion-egg:before,body.dashboard .page-content .header .ion-eject:before,body.dashboard .page-content .header .ion-email-unread:before,body.dashboard .page-content .header .ion-email:before,body.dashboard .page-content .header .ion-erlenmeyer-flask-bubbles:before,body.dashboard .page-content .header .ion-erlenmeyer-flask:before,body.dashboard .page-content .header .ion-eye-disabled:before,body.dashboard .page-content .header .ion-eye:before,body.dashboard .page-content .header .ion-female:before,body.dashboard .page-content .header .ion-filing:before,body.dashboard .page-content .header .ion-film-marker:before,body.dashboard .page-content .header .ion-fireball:before,body.dashboard .page-content .header .ion-flag:before,body.dashboard .page-content .header .ion-flame:before,body.dashboard .page-content .header .ion-flash-off:before,body.dashboard .page-content .header .ion-flash:before,body.dashboard .page-content .header .ion-folder:before,body.dashboard .page-content .header .ion-fork-repo:before,body.dashboard .page-content .header .ion-fork:before,body.dashboard .page-content .header .ion-forward:before,body.dashboard .page-content .header .ion-funnel:before,body.dashboard .page-content .header .ion-gear-a:before,body.dashboard .page-content .header .ion-gear-b:before,body.dashboard .page-content .header .ion-grid:before,body.dashboard .page-content .header .ion-hammer:before,body.dashboard .page-content .header .ion-happy-outline:before,body.dashboard .page-content .header .ion-happy:before,body.dashboard .page-content .header .ion-headphone:before,body.dashboard .page-content .header .ion-heart-broken:before,body.dashboard .page-content .header .ion-heart:before,body.dashboard .page-content .header .ion-help-buoy:before,body.dashboard .page-content .header .ion-help-circled:before,body.dashboard .page-content .header .ion-help:before,body.dashboard .page-content .header .ion-home:before,body.dashboard .page-content .header .ion-icecream:before,body.dashboard .page-content .header .ion-image:before,body.dashboard .page-content .header .ion-images:before,body.dashboard .page-content .header .ion-information-circled:before,body.dashboard .page-content .header .ion-information:before,body.dashboard .page-content .header .ion-ionic:before,body.dashboard .page-content .header .ion-ios-alarm-outline:before,body.dashboard .page-content .header .ion-ios-alarm:before,body.dashboard .page-content .header .ion-ios-albums-outline:before,body.dashboard .page-content .header .ion-ios-albums:before,body.dashboard .page-content .header .ion-ios-americanfootball-outline:before,body.dashboard .page-content .header .ion-ios-americanfootball:before,body.dashboard .page-content .header .ion-ios-analytics-outline:before,body.dashboard .page-content .header .ion-ios-analytics:before,body.dashboard .page-content .header .ion-ios-arrow-back:before,body.dashboard .page-content .header .ion-ios-arrow-down:before,body.dashboard .page-content .header .ion-ios-arrow-forward:before,body.dashboard .page-content .header .ion-ios-arrow-left:before,body.dashboard .page-content .header .ion-ios-arrow-right:before,body.dashboard .page-content .header .ion-ios-arrow-thin-down:before,body.dashboard .page-content .header .ion-ios-arrow-thin-left:before,body.dashboard .page-content .header .ion-ios-arrow-thin-right:before,body.dashboard .page-content .header .ion-ios-arrow-thin-up:before,body.dashboard .page-content .header .ion-ios-arrow-up:before,body.dashboard .page-content .header .ion-ios-at-outline:before,body.dashboard .page-content .header .ion-ios-at:before,body.dashboard .page-content .header .ion-ios-barcode-outline:before,body.dashboard .page-content .header .ion-ios-barcode:before,body.dashboard .page-content .header .ion-ios-baseball-outline:before,body.dashboard .page-content .header .ion-ios-baseball:before,body.dashboard .page-content .header .ion-ios-basketball-outline:before,body.dashboard .page-content .header .ion-ios-basketball:before,body.dashboard .page-content .header .ion-ios-bell-outline:before,body.dashboard .page-content .header .ion-ios-bell:before,body.dashboard .page-content .header .ion-ios-body-outline:before,body.dashboard .page-content .header .ion-ios-body:before,body.dashboard .page-content .header .ion-ios-bolt-outline:before,body.dashboard .page-content .header .ion-ios-bolt:before,body.dashboard .page-content .header .ion-ios-book-outline:before,body.dashboard .page-content .header .ion-ios-book:before,body.dashboard .page-content .header .ion-ios-bookmarks-outline:before,body.dashboard .page-content .header .ion-ios-bookmarks:before,body.dashboard .page-content .header .ion-ios-box-outline:before,body.dashboard .page-content .header .ion-ios-box:before,body.dashboard .page-content .header .ion-ios-briefcase-outline:before,body.dashboard .page-content .header .ion-ios-briefcase:before,body.dashboard .page-content .header .ion-ios-browsers-outline:before,body.dashboard .page-content .header .ion-ios-browsers:before,body.dashboard .page-content .header .ion-ios-calculator-outline:before,body.dashboard .page-content .header .ion-ios-calculator:before,body.dashboard .page-content .header .ion-ios-calendar-outline:before,body.dashboard .page-content .header .ion-ios-calendar:before,body.dashboard .page-content .header .ion-ios-camera-outline:before,body.dashboard .page-content .header .ion-ios-camera:before,body.dashboard .page-content .header .ion-ios-cart-outline:before,body.dashboard .page-content .header .ion-ios-cart:before,body.dashboard .page-content .header .ion-ios-chatboxes-outline:before,body.dashboard .page-content .header .ion-ios-chatboxes:before,body.dashboard .page-content .header .ion-ios-chatbubble-outline:before,body.dashboard .page-content .header .ion-ios-chatbubble:before,body.dashboard .page-content .header .ion-ios-checkmark-empty:before,body.dashboard .page-content .header .ion-ios-checkmark-outline:before,body.dashboard .page-content .header .ion-ios-checkmark:before,body.dashboard .page-content .header .ion-ios-circle-filled:before,body.dashboard .page-content .header .ion-ios-circle-outline:before,body.dashboard .page-content .header .ion-ios-clock-outline:before,body.dashboard .page-content .header .ion-ios-clock:before,body.dashboard .page-content .header .ion-ios-close-empty:before,body.dashboard .page-content .header .ion-ios-close-outline:before,body.dashboard .page-content .header .ion-ios-close:before,body.dashboard .page-content .header .ion-ios-cloud-download-outline:before,body.dashboard .page-content .header .ion-ios-cloud-download:before,body.dashboard .page-content .header .ion-ios-cloud-outline:before,body.dashboard .page-content .header .ion-ios-cloud-upload-outline:before,body.dashboard .page-content .header .ion-ios-cloud-upload:before,body.dashboard .page-content .header .ion-ios-cloud:before,body.dashboard .page-content .header .ion-ios-cloudy-night-outline:before,body.dashboard .page-content .header .ion-ios-cloudy-night:before,body.dashboard .page-content .header .ion-ios-cloudy-outline:before,body.dashboard .page-content .header .ion-ios-cloudy:before,body.dashboard .page-content .header .ion-ios-cog-outline:before,body.dashboard .page-content .header .ion-ios-cog:before,body.dashboard .page-content .header .ion-ios-color-filter-outline:before,body.dashboard .page-content .header .ion-ios-color-filter:before,body.dashboard .page-content .header .ion-ios-color-wand-outline:before,body.dashboard .page-content .header .ion-ios-color-wand:before,body.dashboard .page-content .header .ion-ios-compose-outline:before,body.dashboard .page-content .header .ion-ios-compose:before,body.dashboard .page-content .header .ion-ios-contact-outline:before,body.dashboard .page-content .header .ion-ios-contact:before,body.dashboard .page-content .header .ion-ios-copy-outline:before,body.dashboard .page-content .header .ion-ios-copy:before,body.dashboard .page-content .header .ion-ios-crop-strong:before,body.dashboard .page-content .header .ion-ios-crop:before,body.dashboard .page-content .header .ion-ios-download-outline:before,body.dashboard .page-content .header .ion-ios-download:before,body.dashboard .page-content .header .ion-ios-drag:before,body.dashboard .page-content .header .ion-ios-email-outline:before,body.dashboard .page-content .header .ion-ios-email:before,body.dashboard .page-content .header .ion-ios-eye-outline:before,body.dashboard .page-content .header .ion-ios-eye:before,body.dashboard .page-content .header .ion-ios-fastforward-outline:before,body.dashboard .page-content .header .ion-ios-fastforward:before,body.dashboard .page-content .header .ion-ios-filing-outline:before,body.dashboard .page-content .header .ion-ios-filing:before,body.dashboard .page-content .header .ion-ios-film-outline:before,body.dashboard .page-content .header .ion-ios-film:before,body.dashboard .page-content .header .ion-ios-flag-outline:before,body.dashboard .page-content .header .ion-ios-flag:before,body.dashboard .page-content .header .ion-ios-flame-outline:before,body.dashboard .page-content .header .ion-ios-flame:before,body.dashboard .page-content .header .ion-ios-flask-outline:before,body.dashboard .page-content .header .ion-ios-flask:before,body.dashboard .page-content .header .ion-ios-flower-outline:before,body.dashboard .page-content .header .ion-ios-flower:before,body.dashboard .page-content .header .ion-ios-folder-outline:before,body.dashboard .page-content .header .ion-ios-folder:before,body.dashboard .page-content .header .ion-ios-football-outline:before,body.dashboard .page-content .header .ion-ios-football:before,body.dashboard .page-content .header .ion-ios-game-controller-a-outline:before,body.dashboard .page-content .header .ion-ios-game-controller-a:before,body.dashboard .page-content .header .ion-ios-game-controller-b-outline:before,body.dashboard .page-content .header .ion-ios-game-controller-b:before,body.dashboard .page-content .header .ion-ios-gear-outline:before,body.dashboard .page-content .header .ion-ios-gear:before,body.dashboard .page-content .header .ion-ios-glasses-outline:before,body.dashboard .page-content .header .ion-ios-glasses:before,body.dashboard .page-content .header .ion-ios-grid-view-outline:before,body.dashboard .page-content .header .ion-ios-grid-view:before,body.dashboard .page-content .header .ion-ios-heart-outline:before,body.dashboard .page-content .header .ion-ios-heart:before,body.dashboard .page-content .header .ion-ios-help-empty:before,body.dashboard .page-content .header .ion-ios-help-outline:before,body.dashboard .page-content .header .ion-ios-help:before,body.dashboard .page-content .header .ion-ios-home-outline:before,body.dashboard .page-content .header .ion-ios-home:before,body.dashboard .page-content .header .ion-ios-infinite-outline:before,body.dashboard .page-content .header .ion-ios-infinite:before,body.dashboard .page-content .header .ion-ios-information-empty:before,body.dashboard .page-content .header .ion-ios-information-outline:before,body.dashboard .page-content .header .ion-ios-information:before,body.dashboard .page-content .header .ion-ios-ionic-outline:before,body.dashboard .page-content .header .ion-ios-keypad-outline:before,body.dashboard .page-content .header .ion-ios-keypad:before,body.dashboard .page-content .header .ion-ios-lightbulb-outline:before,body.dashboard .page-content .header .ion-ios-lightbulb:before,body.dashboard .page-content .header .ion-ios-list-outline:before,body.dashboard .page-content .header .ion-ios-list:before,body.dashboard .page-content .header .ion-ios-location-outline:before,body.dashboard .page-content .header .ion-ios-location:before,body.dashboard .page-content .header .ion-ios-locked-outline:before,body.dashboard .page-content .header .ion-ios-locked:before,body.dashboard .page-content .header .ion-ios-loop-strong:before,body.dashboard .page-content .header .ion-ios-loop:before,body.dashboard .page-content .header .ion-ios-medical-outline:before,body.dashboard .page-content .header .ion-ios-medical:before,body.dashboard .page-content .header .ion-ios-medkit-outline:before,body.dashboard .page-content .header .ion-ios-medkit:before,body.dashboard .page-content .header .ion-ios-mic-off:before,body.dashboard .page-content .header .ion-ios-mic-outline:before,body.dashboard .page-content .header .ion-ios-mic:before,body.dashboard .page-content .header .ion-ios-minus-empty:before,body.dashboard .page-content .header .ion-ios-minus-outline:before,body.dashboard .page-content .header .ion-ios-minus:before,body.dashboard .page-content .header .ion-ios-monitor-outline:before,body.dashboard .page-content .header .ion-ios-monitor:before,body.dashboard .page-content .header .ion-ios-moon-outline:before,body.dashboard .page-content .header .ion-ios-moon:before,body.dashboard .page-content .header .ion-ios-more-outline:before,body.dashboard .page-content .header .ion-ios-more:before,body.dashboard .page-content .header .ion-ios-musical-note:before,body.dashboard .page-content .header .ion-ios-musical-notes:before,body.dashboard .page-content .header .ion-ios-navigate-outline:before,body.dashboard .page-content .header .ion-ios-navigate:before,body.dashboard .page-content .header .ion-ios-nutrition-outline:before,body.dashboard .page-content .header .ion-ios-nutrition:before,body.dashboard .page-content .header .ion-ios-paper-outline:before,body.dashboard .page-content .header .ion-ios-paper:before,body.dashboard .page-content .header .ion-ios-paperplane-outline:before,body.dashboard .page-content .header .ion-ios-paperplane:before,body.dashboard .page-content .header .ion-ios-partlysunny-outline:before,body.dashboard .page-content .header .ion-ios-partlysunny:before,body.dashboard .page-content .header .ion-ios-pause-outline:before,body.dashboard .page-content .header .ion-ios-pause:before,body.dashboard .page-content .header .ion-ios-paw-outline:before,body.dashboard .page-content .header .ion-ios-paw:before,body.dashboard .page-content .header .ion-ios-people-outline:before,body.dashboard .page-content .header .ion-ios-people:before,body.dashboard .page-content .header .ion-ios-person-outline:before,body.dashboard .page-content .header .ion-ios-person:before,body.dashboard .page-content .header .ion-ios-personadd-outline:before,body.dashboard .page-content .header .ion-ios-personadd:before,body.dashboard .page-content .header .ion-ios-photos-outline:before,body.dashboard .page-content .header .ion-ios-photos:before,body.dashboard .page-content .header .ion-ios-pie-outline:before,body.dashboard .page-content .header .ion-ios-pie:before,body.dashboard .page-content .header .ion-ios-pint-outline:before,body.dashboard .page-content .header .ion-ios-pint:before,body.dashboard .page-content .header .ion-ios-play-outline:before,body.dashboard .page-content .header .ion-ios-play:before,body.dashboard .page-content .header .ion-ios-plus-empty:before,body.dashboard .page-content .header .ion-ios-plus-outline:before,body.dashboard .page-content .header .ion-ios-plus:before,body.dashboard .page-content .header .ion-ios-pricetag-outline:before,body.dashboard .page-content .header .ion-ios-pricetag:before,body.dashboard .page-content .header .ion-ios-pricetags-outline:before,body.dashboard .page-content .header .ion-ios-pricetags:before,body.dashboard .page-content .header .ion-ios-printer-outline:before,body.dashboard .page-content .header .ion-ios-printer:before,body.dashboard .page-content .header .ion-ios-pulse-strong:before,body.dashboard .page-content .header .ion-ios-pulse:before,body.dashboard .page-content .header .ion-ios-rainy-outline:before,body.dashboard .page-content .header .ion-ios-rainy:before,body.dashboard .page-content .header .ion-ios-recording-outline:before,body.dashboard .page-content .header .ion-ios-recording:before,body.dashboard .page-content .header .ion-ios-redo-outline:before,body.dashboard .page-content .header .ion-ios-redo:before,body.dashboard .page-content .header .ion-ios-refresh-empty:before,body.dashboard .page-content .header .ion-ios-refresh-outline:before,body.dashboard .page-content .header .ion-ios-refresh:before,body.dashboard .page-content .header .ion-ios-reload:before,body.dashboard .page-content .header .ion-ios-reverse-camera-outline:before,body.dashboard .page-content .header .ion-ios-reverse-camera:before,body.dashboard .page-content .header .ion-ios-rewind-outline:before,body.dashboard .page-content .header .ion-ios-rewind:before,body.dashboard .page-content .header .ion-ios-rose-outline:before,body.dashboard .page-content .header .ion-ios-rose:before,body.dashboard .page-content .header .ion-ios-search-strong:before,body.dashboard .page-content .header .ion-ios-search:before,body.dashboard .page-content .header .ion-ios-settings-strong:before,body.dashboard .page-content .header .ion-ios-settings:before,body.dashboard .page-content .header .ion-ios-shuffle-strong:before,body.dashboard .page-content .header .ion-ios-shuffle:before,body.dashboard .page-content .header .ion-ios-skipbackward-outline:before,body.dashboard .page-content .header .ion-ios-skipbackward:before,body.dashboard .page-content .header .ion-ios-skipforward-outline:before,body.dashboard .page-content .header .ion-ios-skipforward:before,body.dashboard .page-content .header .ion-ios-snowy:before,body.dashboard .page-content .header .ion-ios-speedometer-outline:before,body.dashboard .page-content .header .ion-ios-speedometer:before,body.dashboard .page-content .header .ion-ios-star-half:before,body.dashboard .page-content .header .ion-ios-star-outline:before,body.dashboard .page-content .header .ion-ios-star:before,body.dashboard .page-content .header .ion-ios-stopwatch-outline:before,body.dashboard .page-content .header .ion-ios-stopwatch:before,body.dashboard .page-content .header .ion-ios-sunny-outline:before,body.dashboard .page-content .header .ion-ios-sunny:before,body.dashboard .page-content .header .ion-ios-telephone-outline:before,body.dashboard .page-content .header .ion-ios-telephone:before,body.dashboard .page-content .header .ion-ios-tennisball-outline:before,body.dashboard .page-content .header .ion-ios-tennisball:before,body.dashboard .page-content .header .ion-ios-thunderstorm-outline:before,body.dashboard .page-content .header .ion-ios-thunderstorm:before,body.dashboard .page-content .header .ion-ios-time-outline:before,body.dashboard .page-content .header .ion-ios-time:before,body.dashboard .page-content .header .ion-ios-timer-outline:before,body.dashboard .page-content .header .ion-ios-timer:before,body.dashboard .page-content .header .ion-ios-toggle-outline:before,body.dashboard .page-content .header .ion-ios-toggle:before,body.dashboard .page-content .header .ion-ios-trash-outline:before,body.dashboard .page-content .header .ion-ios-trash:before,body.dashboard .page-content .header .ion-ios-undo-outline:before,body.dashboard .page-content .header .ion-ios-undo:before,body.dashboard .page-content .header .ion-ios-unlocked-outline:before,body.dashboard .page-content .header .ion-ios-unlocked:before,body.dashboard .page-content .header .ion-ios-upload-outline:before,body.dashboard .page-content .header .ion-ios-upload:before,body.dashboard .page-content .header .ion-ios-videocam-outline:before,body.dashboard .page-content .header .ion-ios-videocam:before,body.dashboard .page-content .header .ion-ios-volume-high:before,body.dashboard .page-content .header .ion-ios-volume-low:before,body.dashboard .page-content .header .ion-ios-wineglass-outline:before,body.dashboard .page-content .header .ion-ios-wineglass:before,body.dashboard .page-content .header .ion-ios-world-outline:before,body.dashboard .page-content .header .ion-ios-world:before,body.dashboard .page-content .header .ion-ipad:before,body.dashboard .page-content .header .ion-iphone:before,body.dashboard .page-content .header .ion-ipod:before,body.dashboard .page-content .header .ion-jet:before,body.dashboard .page-content .header .ion-key:before,body.dashboard .page-content .header .ion-knife:before,body.dashboard .page-content .header .ion-laptop:before,body.dashboard .page-content .header .ion-leaf:before,body.dashboard .page-content .header .ion-levels:before,body.dashboard .page-content .header .ion-lightbulb:before,body.dashboard .page-content .header .ion-link:before,body.dashboard .page-content .header .ion-load-a:before,body.dashboard .page-content .header .ion-load-b:before,body.dashboard .page-content .header .ion-load-c:before,body.dashboard .page-content .header .ion-load-d:before,body.dashboard .page-content .header .ion-location:before,body.dashboard .page-content .header .ion-lock-combination:before,body.dashboard .page-content .header .ion-locked:before,body.dashboard .page-content .header .ion-log-in:before,body.dashboard .page-content .header .ion-log-out:before,body.dashboard .page-content .header .ion-loop:before,body.dashboard .page-content .header .ion-magnet:before,body.dashboard .page-content .header .ion-male:before,body.dashboard .page-content .header .ion-man:before,body.dashboard .page-content .header .ion-map:before,body.dashboard .page-content .header .ion-medkit:before,body.dashboard .page-content .header .ion-merge:before,body.dashboard .page-content .header .ion-mic-a:before,body.dashboard .page-content .header .ion-mic-b:before,body.dashboard .page-content .header .ion-mic-c:before,body.dashboard .page-content .header .ion-minus-circled:before,body.dashboard .page-content .header .ion-minus-round:before,body.dashboard .page-content .header .ion-minus:before,body.dashboard .page-content .header .ion-model-s:before,body.dashboard .page-content .header .ion-monitor:before,body.dashboard .page-content .header .ion-more:before,body.dashboard .page-content .header .ion-mouse:before,body.dashboard .page-content .header .ion-music-note:before,body.dashboard .page-content .header .ion-navicon-round:before,body.dashboard .page-content .header .ion-navicon:before,body.dashboard .page-content .header .ion-navigate:before,body.dashboard .page-content .header .ion-network:before,body.dashboard .page-content .header .ion-no-smoking:before,body.dashboard .page-content .header .ion-nuclear:before,body.dashboard .page-content .header .ion-outlet:before,body.dashboard .page-content .header .ion-paintbrush:before,body.dashboard .page-content .header .ion-paintbucket:before,body.dashboard .page-content .header .ion-paper-airplane:before,body.dashboard .page-content .header .ion-paperclip:before,body.dashboard .page-content .header .ion-pause:before,body.dashboard .page-content .header .ion-person-add:before,body.dashboard .page-content .header .ion-person-stalker:before,body.dashboard .page-content .header .ion-person:before,body.dashboard .page-content .header .ion-pie-graph:before,body.dashboard .page-content .header .ion-pin:before,body.dashboard .page-content .header .ion-pinpoint:before,body.dashboard .page-content .header .ion-pizza:before,body.dashboard .page-content .header .ion-plane:before,body.dashboard .page-content .header .ion-planet:before,body.dashboard .page-content .header .ion-play:before,body.dashboard .page-content .header .ion-playstation:before,body.dashboard .page-content .header .ion-plus-circled:before,body.dashboard .page-content .header .ion-plus-round:before,body.dashboard .page-content .header .ion-plus:before,body.dashboard .page-content .header .ion-podium:before,body.dashboard .page-content .header .ion-pound:before,body.dashboard .page-content .header .ion-power:before,body.dashboard .page-content .header .ion-pricetag:before,body.dashboard .page-content .header .ion-pricetags:before,body.dashboard .page-content .header .ion-printer:before,body.dashboard .page-content .header .ion-pull-request:before,body.dashboard .page-content .header .ion-qr-scanner:before,body.dashboard .page-content .header .ion-quote:before,body.dashboard .page-content .header .ion-radio-waves:before,body.dashboard .page-content .header .ion-record:before,body.dashboard .page-content .header .ion-refresh:before,body.dashboard .page-content .header .ion-reply-all:before,body.dashboard .page-content .header .ion-reply:before,body.dashboard .page-content .header .ion-ribbon-a:before,body.dashboard .page-content .header .ion-ribbon-b:before,body.dashboard .page-content .header .ion-sad-outline:before,body.dashboard .page-content .header .ion-sad:before,body.dashboard .page-content .header .ion-scissors:before,body.dashboard .page-content .header .ion-search:before,body.dashboard .page-content .header .ion-settings:before,body.dashboard .page-content .header .ion-share:before,body.dashboard .page-content .header .ion-shuffle:before,body.dashboard .page-content .header .ion-skip-backward:before,body.dashboard .page-content .header .ion-skip-forward:before,body.dashboard .page-content .header .ion-social-android-outline:before,body.dashboard .page-content .header .ion-social-android:before,body.dashboard .page-content .header .ion-social-angular-outline:before,body.dashboard .page-content .header .ion-social-angular:before,body.dashboard .page-content .header .ion-social-apple-outline:before,body.dashboard .page-content .header .ion-social-apple:before,body.dashboard .page-content .header .ion-social-bitcoin-outline:before,body.dashboard .page-content .header .ion-social-bitcoin:before,body.dashboard .page-content .header .ion-social-buffer-outline:before,body.dashboard .page-content .header .ion-social-buffer:before,body.dashboard .page-content .header .ion-social-chrome-outline:before,body.dashboard .page-content .header .ion-social-chrome:before,body.dashboard .page-content .header .ion-social-codepen-outline:before,body.dashboard .page-content .header .ion-social-codepen:before,body.dashboard .page-content .header .ion-social-css3-outline:before,body.dashboard .page-content .header .ion-social-css3:before,body.dashboard .page-content .header .ion-social-designernews-outline:before,body.dashboard .page-content .header .ion-social-designernews:before,body.dashboard .page-content .header .ion-social-dribbble-outline:before,body.dashboard .page-content .header .ion-social-dribbble:before,body.dashboard .page-content .header .ion-social-dropbox-outline:before,body.dashboard .page-content .header .ion-social-dropbox:before,body.dashboard .page-content .header .ion-social-euro-outline:before,body.dashboard .page-content .header .ion-social-euro:before,body.dashboard .page-content .header .ion-social-facebook-outline:before,body.dashboard .page-content .header .ion-social-facebook:before,body.dashboard .page-content .header .ion-social-foursquare-outline:before,body.dashboard .page-content .header .ion-social-foursquare:before,body.dashboard .page-content .header .ion-social-freebsd-devil:before,body.dashboard .page-content .header .ion-social-github-outline:before,body.dashboard .page-content .header .ion-social-github:before,body.dashboard .page-content .header .ion-social-google-outline:before,body.dashboard .page-content .header .ion-social-google:before,body.dashboard .page-content .header .ion-social-googleplus-outline:before,body.dashboard .page-content .header .ion-social-googleplus:before,body.dashboard .page-content .header .ion-social-hackernews-outline:before,body.dashboard .page-content .header .ion-social-hackernews:before,body.dashboard .page-content .header .ion-social-html5-outline:before,body.dashboard .page-content .header .ion-social-html5:before,body.dashboard .page-content .header .ion-social-instagram-outline:before,body.dashboard .page-content .header .ion-social-instagram:before,body.dashboard .page-content .header .ion-social-javascript-outline:before,body.dashboard .page-content .header .ion-social-javascript:before,body.dashboard .page-content .header .ion-social-linkedin-outline:before,body.dashboard .page-content .header .ion-social-linkedin:before,body.dashboard .page-content .header .ion-social-markdown:before,body.dashboard .page-content .header .ion-social-nodejs:before,body.dashboard .page-content .header .ion-social-octocat:before,body.dashboard .page-content .header .ion-social-pinterest-outline:before,body.dashboard .page-content .header .ion-social-pinterest:before,body.dashboard .page-content .header .ion-social-python:before,body.dashboard .page-content .header .ion-social-reddit-outline:before,body.dashboard .page-content .header .ion-social-reddit:before,body.dashboard .page-content .header .ion-social-rss-outline:before,body.dashboard .page-content .header .ion-social-rss:before,body.dashboard .page-content .header .ion-social-sass:before,body.dashboard .page-content .header .ion-social-skype-outline:before,body.dashboard .page-content .header .ion-social-skype:before,body.dashboard .page-content .header .ion-social-snapchat-outline:before,body.dashboard .page-content .header .ion-social-snapchat:before,body.dashboard .page-content .header .ion-social-tumblr-outline:before,body.dashboard .page-content .header .ion-social-tumblr:before,body.dashboard .page-content .header .ion-social-tux:before,body.dashboard .page-content .header .ion-social-twitch-outline:before,body.dashboard .page-content .header .ion-social-twitch:before,body.dashboard .page-content .header .ion-social-twitter-outline:before,body.dashboard .page-content .header .ion-social-twitter:before,body.dashboard .page-content .header .ion-social-usd-outline:before,body.dashboard .page-content .header .ion-social-usd:before,body.dashboard .page-content .header .ion-social-vimeo-outline:before,body.dashboard .page-content .header .ion-social-vimeo:before,body.dashboard .page-content .header .ion-social-whatsapp-outline:before,body.dashboard .page-content .header .ion-social-whatsapp:before,body.dashboard .page-content .header .ion-social-windows-outline:before,body.dashboard .page-content .header .ion-social-windows:before,body.dashboard .page-content .header .ion-social-wordpress-outline:before,body.dashboard .page-content .header .ion-social-wordpress:before,body.dashboard .page-content .header .ion-social-yahoo-outline:before,body.dashboard .page-content .header .ion-social-yahoo:before,body.dashboard .page-content .header .ion-social-yen-outline:before,body.dashboard .page-content .header .ion-social-yen:before,body.dashboard .page-content .header .ion-social-youtube-outline:before,body.dashboard .page-content .header .ion-social-youtube:before,body.dashboard .page-content .header .ion-soup-can-outline:before,body.dashboard .page-content .header .ion-soup-can:before,body.dashboard .page-content .header .ion-speakerphone:before,body.dashboard .page-content .header .ion-speedometer:before,body.dashboard .page-content .header .ion-spoon:before,body.dashboard .page-content .header .ion-star:before,body.dashboard .page-content .header .ion-stats-bars:before,body.dashboard .page-content .header .ion-steam:before,body.dashboard .page-content .header .ion-stop:before,body.dashboard .page-content .header .ion-thermometer:before,body.dashboard .page-content .header .ion-thumbsdown:before,body.dashboard .page-content .header .ion-thumbsup:before,body.dashboard .page-content .header .ion-toggle-filled:before,body.dashboard .page-content .header .ion-toggle:before,body.dashboard .page-content .header .ion-transgender:before,body.dashboard .page-content .header .ion-trash-a:before,body.dashboard .page-content .header .ion-trash-b:before,body.dashboard .page-content .header .ion-trophy:before,body.dashboard .page-content .header .ion-tshirt-outline:before,body.dashboard .page-content .header .ion-tshirt:before,body.dashboard .page-content .header .ion-umbrella:before,body.dashboard .page-content .header .ion-university:before,body.dashboard .page-content .header .ion-unlocked:before,body.dashboard .page-content .header .ion-upload:before,body.dashboard .page-content .header .ion-usb:before,body.dashboard .page-content .header .ion-videocamera:before,body.dashboard .page-content .header .ion-volume-high:before,body.dashboard .page-content .header .ion-volume-low:before,body.dashboard .page-content .header .ion-volume-medium:before,body.dashboard .page-content .header .ion-volume-mute:before,body.dashboard .page-content .header .ion-wand:before,body.dashboard .page-content .header .ion-waterdrop:before,body.dashboard .page-content .header .ion-wifi:before,body.dashboard .page-content .header .ion-wineglass:before,body.dashboard .page-content .header .ion-woman:before,body.dashboard .page-content .header .ion-wrench:before,body.dashboard .page-content .header .ion-xbox:before,body.dashboard .page-content .header .ionicons{margin-right:2px}body.dashboard .page-content .sub-header{font-weight:300;text-transform:uppercase}body.dashboard .page-content .sub-header a{text-transform:none}body.dashboard .page-content .striped-list .striped-list-item{border-bottom:1px solid #f0f0f0;padding:8px 0}body.dashboard .page-content .drag-handle{cursor:move}body.dashboard .page-content .user-grid .user img{border-radius:5px;margin-bottom:15px;border:0}body.dashboard .page-content .user-grid .user .name{font-weight:600}body.dashboard .page-content .user-grid .user .email{color:#444;margin-top:4px}@media (max-width:767px){body.dashboard .page-content .content-wrapper,body.dashboard .page-content .header,body.dashboard .page-content .header.fixed{padding-left:20px;padding-right:20px}}@media (min-width:768px) and (max-width:991px){body.dashboard .page-content .header.fixed{padding-left:120px}}#welcome-modal .modal-dialog{margin-top:65px}#welcome-modal .modal-content .modal-header{border-bottom:0}#welcome-modal .modal-content .modal-body{padding-bottom:50px}#welcome-modal .modal-content .modal-body header{text-align:center;font-weight:600;font-size:22px;color:#444;margin-bottom:23px}#welcome-modal .modal-content .modal-body p{font-size:13px;color:#555;margin:0 auto;width:80%;text-align:center;line-height:20px}#welcome-modal .modal-content .modal-body .go-dashboard{text-align:center;display:block;margin-top:10px}#welcome-modal .modal-content .modal-body .get-started{margin-top:40px}#welcome-modal .modal-content .modal-body .get-started .col-md-4{text-align:center;padding-bottom:50px}#welcome-modal .modal-content .modal-body .get-started .col-md-4 a{color:#666;display:block;margin-top:12px;font-size:13px}#welcome-modal .modal-content .modal-body .get-started .col-md-4 a i{font-size:38px;color:#6db81c;display:block}#welcome-modal .modal-content .modal-body .get-started .col-md-4 a:hover{text-decoration:none;color:#999}body.login .form-bg{border-radius:10px;margin:auto;margin-top:60px;padding:30px;width:320px;border:1px solid rgba(0,0,0,.1);-webkit-box-shadow:0 20px 30px rgba(0,0,0,.2);box-shadow:0 20px 30px rgba(0,0,0,.2);background-color:#fff}body.login .logo{margin-bottom:30px}body.login .logo img{margin:0 auto}body.login .login-input{height:45px}body.login i{font-size:22px}body.login .btn.btn-white{background-color:#fff;-webkit-transition:background-color .5s ease;transition:background-color .5s ease}body.login .btn.btn-white.btn-trans{background-color:transparent;border:1px solid #fff;border-radius:4px;color:#fff}body.login .btn.btn-white.btn-trans:hover{background-color:#fff;color:#7ed321}.setup-page{padding-top:60px}.setup-page .logo{display:block;margin:0 auto 30px}.setup-page .steps{margin:0 auto;border-radius:2px 2px 0 0;margin-bottom:20px}.setup-page .steps .step{padding:20px 0;text-align:center;position:relative;font-size:13px}.setup-page .steps .step:not(:last-child):after{content:"";position:absolute;bottom:31px;left:55%;display:block;height:1px;background:#94a1b8;width:100%}.setup-page .steps .step span{width:23px;height:23px;display:block;position:relative;margin:0 auto;margin-top:13px;border-radius:25px;background:#f0f3f4;border:1px solid #94a1b8;-webkit-transition:all .2s linear;transition:all .2s linear;z-index:10}.setup-page .steps .step.active span{background:#7ed321}.setup-page .setup-success{text-align:center}.setup-page .setup-success i{font-size:47px}.setup-page .setup-success h3{margin-top:25px;font-size:21px;color:#556579}.setup-page .setup-success .btn{margin-top:40px}.component-inline-update{padding-top:8px}.component-inline-update label{display:initial;font-weight:400}.component-group-name{font-size:18px;padding-left:10px}.component-group-other{font-size:18px}.stats-widget{text-align:center;margin-bottom:30px;background-color:#fff;border:1px solid #eee}.stats-widget.full-stats-block .stats-bottom{border-top:0!important;color:#fff;position:relative;margin-top:-1px;z-index:1000}.stats-widget .stats-top{padding:20px}.stats-widget .stats-top>span{display:block;text-align:center}.stats-widget .stats-top>span.stats-value{font-size:24px;font-weight:400}.stats-widget .stats-top>span.stats-label{padding-top:5px;font-size:14px;font-weight:300;color:#777}.stats-widget .stats-body,.stats-widget .stats-chart{margin-top:-20px;padding-top:10px}.stats-widget .stats-body .list-group{border:none;padding-bottom:0;margin-bottom:0}.stats-widget .stats-body .list-group .list-group-item{border-right:none;border-left:none;border-color:#eee}.stats-widget .stats-body .list-group .list-group-item:last-child{border-bottom:none}.stats-widget .stats-bottom{border-top:1px solid #eee;color:#777;padding:12px 10px;text-align:center;background-color:#f9f9f9}.stats-widget .stats-bottom.bg-green{background-color:#7ed321;color:#fff}.stats-widget .stats-bottom.bg-blue{background-color:#3498db;color:#fff}.stats-widget .stats-bottom.bg-red{background-color:#ff6f6f;color:#fff}.stats-widget .stats-bottom.bg-teal{background-color:#0dccc0;color:#fff}.minicolors{position:relative}.minicolors-sprite{background-image:url(data:image/png;base64,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)}.minicolors-no-data-uris .minicolors-sprite{background-image:url(jquery.minicolors.png)}.minicolors-swatch{position:absolute;vertical-align:middle;background-position:-80px 0;border:1px solid #ccc;cursor:text;padding:0;margin:0;display:inline-block}.minicolors-swatch-color{position:absolute;top:0;left:0;right:0;bottom:0}.minicolors input[type=hidden]+.minicolors-swatch{width:28px;position:static;cursor:pointer}.minicolors input[type=hidden][disabled]+.minicolors-swatch{cursor:default}.minicolors-panel{position:absolute;width:173px;height:152px;background:#fff;border:1px solid #ccc;-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);z-index:99999;-webkit-box-sizing:content-box;box-sizing:content-box;display:none}.minicolors-panel.minicolors-visible{display:block}.minicolors-position-top .minicolors-panel{top:-154px}.minicolors-position-right .minicolors-panel{right:0}.minicolors-position-bottom .minicolors-panel{top:auto}.minicolors-position-left .minicolors-panel{left:0}.minicolors-with-opacity .minicolors-panel{width:194px}.minicolors .minicolors-grid{position:absolute;top:1px;left:1px;width:150px;height:150px;background-position:-120px 0;cursor:crosshair}.minicolors .minicolors-grid-inner{position:absolute;top:0;left:0;width:150px;height:150px}.minicolors-slider-saturation .minicolors-grid{background-position:-420px 0}.minicolors-slider-saturation .minicolors-grid-inner{background-position:-270px 0;background-image:inherit}.minicolors-slider-brightness .minicolors-grid{background-position:-570px 0}.minicolors-slider-brightness .minicolors-grid-inner{background-color:#000}.minicolors-slider-wheel .minicolors-grid{background-position:-720px 0}.minicolors-opacity-slider,.minicolors-slider{position:absolute;top:1px;left:152px;width:20px;height:150px;background-color:#fff;background-position:0 0;cursor:row-resize}.minicolors-slider-saturation .minicolors-slider{background-position:-60px 0}.minicolors-slider-brightness .minicolors-slider,.minicolors-slider-wheel .minicolors-slider{background-position:-20px 0}.minicolors-opacity-slider{left:173px;background-position:-40px 0;display:none}.minicolors-with-opacity .minicolors-opacity-slider{display:block}.minicolors-grid .minicolors-picker{position:absolute;top:70px;left:70px;width:12px;height:12px;border:1px solid #000;border-radius:10px;margin-top:-6px;margin-left:-6px;background:none}.minicolors-grid .minicolors-picker>div{width:8px;height:8px;border-radius:8px;border:2px solid #fff}.minicolors-grid .minicolors-picker>div,.minicolors-picker{position:absolute;top:0;left:0;-webkit-box-sizing:content-box;box-sizing:content-box}.minicolors-picker{width:18px;height:2px;background:#fff;border:1px solid #000;margin-top:-2px}.minicolors-inline{display:inline-block}.minicolors-inline .minicolors-input{display:none!important}.minicolors-inline .minicolors-panel{position:relative;top:auto;left:auto;-webkit-box-shadow:none;box-shadow:none;z-index:auto;display:inline-block}.minicolors-theme-default .minicolors-swatch{top:5px;left:5px;width:18px;height:18px}.minicolors-theme-default.minicolors-position-right .minicolors-swatch{left:auto;right:5px}.minicolors-theme-default.minicolors{width:auto;display:inline-block}.minicolors-theme-default .minicolors-input{height:20px;width:auto;display:inline-block;padding-left:26px}.minicolors-theme-default.minicolors-position-right .minicolors-input{padding-right:26px;padding-left:inherit}.minicolors-theme-bootstrap .minicolors-swatch{z-index:2;top:3px;left:3px;width:28px;height:28px;border-radius:3px}.minicolors-theme-bootstrap .minicolors-swatch-color{border-radius:inherit}.minicolors-theme-bootstrap.minicolors-position-right .minicolors-swatch{left:auto;right:3px}.minicolors-theme-bootstrap .minicolors-input{float:none;padding-left:44px}.minicolors-theme-bootstrap.minicolors-position-right .minicolors-input{padding-right:44px;padding-left:12px}.minicolors-theme-bootstrap .input-group-lg>.input-group-btn>.minicolors-input.btn+.minicolors-swatch,.minicolors-theme-bootstrap .input-group-lg>.minicolors-input.form-control+.minicolors-swatch,.minicolors-theme-bootstrap .input-group-lg>.minicolors-input.input-group-addon+.minicolors-swatch,.minicolors-theme-bootstrap .minicolors-input.input-lg+.minicolors-swatch{top:4px;left:4px;width:37px;height:37px;border-radius:5px}.minicolors-theme-bootstrap .input-group-sm>.input-group-btn>.minicolors-input.btn+.minicolors-swatch,.minicolors-theme-bootstrap .input-group-sm>.minicolors-input.form-control+.minicolors-swatch,.minicolors-theme-bootstrap .input-group-sm>.minicolors-input.input-group-addon+.minicolors-swatch,.minicolors-theme-bootstrap .minicolors-input.input-sm+.minicolors-swatch{width:24px;height:24px}.input-group .minicolors-theme-bootstrap:not(:first-child) .minicolors-input{border-top-left-radius:0;border-bottom-left-radius:0}@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,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) format("woff")}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .pl-c{color:#6a737d}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#005cc5}.markdown-body .pl-e,.markdown-body .pl-en{color:#6f42c1}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:#24292e}.markdown-body .pl-ent{color:#22863a}.markdown-body .pl-k{color:#d73a49}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:#032f62}.markdown-body .pl-smw,.markdown-body .pl-v{color:#e36209}.markdown-body .pl-bu{color:#b31d28}.markdown-body .pl-ii{color:#fafbfc;background-color:#b31d28}.markdown-body .pl-c2{color:#fafbfc;background-color:#d73a49}.markdown-body .pl-c2:before{content:"^M"}.markdown-body .pl-sr .pl-cce{font-weight:700;color:#22863a}.markdown-body .pl-ml{color:#735c0f}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:#005cc5}.markdown-body .pl-mi{font-style:italic;color:#24292e}.markdown-body .pl-mb{font-weight:700;color:#24292e}.markdown-body .pl-md{color:#b31d28;background-color:#ffeef0}.markdown-body .pl-mi1{color:#22863a;background-color:#f0fff4}.markdown-body .pl-mc{color:#e36209;background-color:#ffebda}.markdown-body .pl-mi2{color:#f6f8fa;background-color:#005cc5}.markdown-body .pl-mdr{font-weight:700;color:#6f42c1}.markdown-body .pl-ba{color:#586069}.markdown-body .pl-sg{color:#959da5}.markdown-body .pl-corl{text-decoration:underline;color:#032f62}.markdown-body .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.markdown-body a{background-color:transparent}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body strong{font-weight:inherit;font-weight:bolder}.markdown-body h1{margin:.67em 0}.markdown-body img{border-style:none}.markdown-body code,.markdown-body kbd,.markdown-body pre{font-family:monospace,monospace;font-size:1em}.markdown-body hr{-webkit-box-sizing:content-box;box-sizing:content-box;overflow:visible}.markdown-body input{font:inherit;margin:0;overflow:visible}.markdown-body [type=checkbox]{padding:0}.markdown-body *,.markdown-body [type=checkbox]{-webkit-box-sizing:border-box;box-sizing:border-box}.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body a{color:#0366d6;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body hr{height:0;margin:15px 0;overflow:hidden;background:transparent;border-bottom:1px solid #dfe2e5}.markdown-body hr:after,.markdown-body hr:before{display:table;content:""}.markdown-body hr:after{clear:both}.markdown-body table{border-spacing:0;border-collapse:collapse}.markdown-body td,.markdown-body th{padding:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:0;margin-bottom:0}.markdown-body h1{font-size:32px;font-weight:600}.markdown-body h2{font-size:24px;font-weight:600}.markdown-body h3{font-size:20px;font-weight:600}.markdown-body h4{font-size:16px;font-weight:600}.markdown-body h5{font-size:14px;font-weight:600}.markdown-body h6{font-size:12px;font-weight:600}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0}.markdown-body ol,.markdown-body ul{padding-left:0;margin-top:0;margin-bottom:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px}.markdown-body pre{margin-top:0;margin-bottom:0}.markdown-body .octicon{vertical-align:text-bottom}.markdown-body .pl-0{padding-left:0!important}.markdown-body .pl-1{padding-left:4px!important}.markdown-body .pl-2{padding-left:8px!important}.markdown-body .pl-3{padding-left:16px!important}.markdown-body .pl-4{padding-left:24px!important}.markdown-body .pl-5{padding-left:32px!important}.markdown-body .pl-6{padding-left:40px!important}.markdown-body:after,.markdown-body:before{display:table;content:""}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{font-size:11px;border:1px solid #c6cbd1;border-bottom-color:#959da5;-webkit-box-shadow:inset 0 -1px 0 #959da5;box-shadow:inset 0 -1px 0 #959da5}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eaecef}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li{word-wrap:break-all}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{max-width:100%;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body code{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}.markdown-body pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #c6cbd1;box-shadow:inset 0 -1px 0 #c6cbd1}.markdown-body :checked+.radio-label{position:relative;z-index:1;border-color:#0366d6}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.markdown-body hr{border-bottom-color:#eee}body.swal2-shown{overflow-y:hidden}.swal2-container,body.swal2-iosfix{position:fixed;left:0;right:0}.swal2-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;top:0;bottom:0;padding:10px;background-color:transparent;z-index:1060}.swal2-container.swal2-top,.swal2-container.swal2-top-left{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.swal2-container.swal2-top-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.swal2-container.swal2-top-right{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.swal2-container.swal2-center,.swal2-container.swal2-center-left{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swal2-container.swal2-center-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.swal2-container.swal2-center-right{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.swal2-container.swal2-bottom,.swal2-container.swal2-bottom-left{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.swal2-container.swal2-bottom-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.swal2-container.swal2-bottom-right{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.swal2-container.swal2-grow-fullscreen>.swal2-modal{-ms-flex:1;flex:1;-ms-flex-item-align:stretch;align-self:stretch;-ms-flex-pack:center}.swal2-container.swal2-grow-fullscreen>.swal2-modal,.swal2-container.swal2-grow-row>.swal2-modal{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-flex:1;-webkit-box-pack:center;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{-ms-flex:1;flex:1;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:center}.swal2-container.swal2-grow-column{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-top-left{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-right{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.swal2-container:not(.swal2-top):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-left):not(.swal2-bottom-right)>.swal2-modal{margin:auto}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.swal2-container .swal2-modal{margin:0!important}}.swal2-container.swal2-fade{-webkit-transition:background-color .1s;transition:background-color .1s}.swal2-container.swal2-shown{background-color:rgba(0,0,0,.4)}.swal2-modal{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;border-radius:5px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow-x:hidden;overflow-y:auto;display:none;position:relative;max-width:100%}.swal2-modal:focus{outline:none}.swal2-modal.swal2-loading{overflow-y:hidden}.swal2-modal .swal2-title{color:#595959;font-size:30px;text-align:center;font-weight:600;text-transform:none;position:relative;margin:0 0 .4em;padding:0;display:block;word-wrap:break-word}.swal2-modal .swal2-buttonswrapper{margin-top:15px}.swal2-modal .swal2-buttonswrapper:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4;cursor:no-drop}.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-confirm{-webkit-box-sizing:border-box;box-sizing:border-box;border:4px solid transparent;border-color:transparent;width:40px;height:40px;padding:0;margin:7.5px;vertical-align:top;background-color:transparent!important;color:transparent;cursor:default;border-radius:100%;-webkit-animation:rotate-loading 1.5s linear 0s infinite normal;animation:rotate-loading 1.5s linear 0s infinite normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-cancel{margin-left:30px;margin-right:30px}.swal2-modal .swal2-buttonswrapper.swal2-loading :not(.swal2-styled).swal2-confirm:after{display:inline-block;content:"";margin-left:5px;vertical-align:-1px;height:15px;width:15px;border:3px solid #999;-webkit-box-shadow:1px 1px 1px #fff;box-shadow:1px 1px 1px #fff;border-right-color:transparent;border-radius:50%;-webkit-animation:rotate-loading 1.5s linear 0s infinite normal;animation:rotate-loading 1.5s linear 0s infinite normal}.swal2-modal .swal2-styled{border:0;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;color:#fff;cursor:pointer;font-size:17px;font-weight:500;margin:15px 5px 0;padding:10px 32px}.swal2-modal .swal2-styled:focus{outline:none;-webkit-box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(50,100,150,.4);box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(50,100,150,.4)}.swal2-modal .swal2-image{margin:20px auto;max-width:100%}.swal2-modal .swal2-close{background:transparent;border:0;margin:0;padding:0;width:38px;height:40px;font-size:36px;line-height:40px;font-family:serif;position:absolute;top:5px;right:8px;cursor:pointer;color:#ccc;-webkit-transition:color .1s ease;transition:color .1s ease}.swal2-modal .swal2-close:hover{color:#d55}.swal2-modal>.swal2-checkbox,.swal2-modal>.swal2-file,.swal2-modal>.swal2-input,.swal2-modal>.swal2-radio,.swal2-modal>.swal2-select,.swal2-modal>.swal2-textarea{display:none}.swal2-modal .swal2-content{font-size:18px;text-align:center;font-weight:300;position:relative;float:none;margin:0;padding:0;line-height:normal;color:#545454;word-wrap:break-word}.swal2-modal .swal2-checkbox,.swal2-modal .swal2-file,.swal2-modal .swal2-input,.swal2-modal .swal2-radio,.swal2-modal .swal2-select,.swal2-modal .swal2-textarea{margin:20px auto}.swal2-modal .swal2-file,.swal2-modal .swal2-input,.swal2-modal .swal2-textarea{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:18px;border-radius:3px;border:1px solid #d9d9d9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.06);box-shadow:inset 0 1px 1px rgba(0,0,0,.06);-webkit-transition:border-color .3s,-webkit-box-shadow .3s;transition:border-color .3s,-webkit-box-shadow .3s;transition:border-color .3s,box-shadow .3s;transition:border-color .3s,box-shadow .3s,-webkit-box-shadow .3s}.swal2-modal .swal2-file.swal2-inputerror,.swal2-modal .swal2-input.swal2-inputerror,.swal2-modal .swal2-textarea.swal2-inputerror{border-color:#f27474!important;-webkit-box-shadow:0 0 2px #f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-modal .swal2-file:focus,.swal2-modal .swal2-input:focus,.swal2-modal .swal2-textarea:focus{outline:none;border:1px solid #b4dbed;-webkit-box-shadow:0 0 3px #c4e6f5;box-shadow:0 0 3px #c4e6f5}.swal2-modal .swal2-file::-webkit-input-placeholder,.swal2-modal .swal2-input::-webkit-input-placeholder,.swal2-modal .swal2-textarea::-webkit-input-placeholder{color:#ccc}.swal2-modal .swal2-file:-ms-input-placeholder,.swal2-modal .swal2-file::-ms-input-placeholder,.swal2-modal .swal2-input:-ms-input-placeholder,.swal2-modal .swal2-input::-ms-input-placeholder,.swal2-modal .swal2-textarea:-ms-input-placeholder,.swal2-modal .swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-modal .swal2-file::placeholder,.swal2-modal .swal2-input::placeholder,.swal2-modal .swal2-textarea::placeholder{color:#ccc}.swal2-modal .swal2-range input{float:left;width:80%}.swal2-modal .swal2-range output{float:right;width:20%;font-size:20px;font-weight:600;text-align:center}.swal2-modal .swal2-range input,.swal2-modal .swal2-range output{height:43px;line-height:43px;vertical-align:middle;margin:20px auto;padding:0}.swal2-modal .swal2-input{height:43px;padding:0 12px}.swal2-modal .swal2-input[type=number]{max-width:150px}.swal2-modal .swal2-file{font-size:20px}.swal2-modal .swal2-textarea{height:108px;padding:12px}.swal2-modal .swal2-select{color:#545454;font-size:inherit;padding:5px 10px;min-width:40%;max-width:100%}.swal2-modal .swal2-radio{border:0}.swal2-modal .swal2-radio label:not(:first-child){margin-left:20px}.swal2-modal .swal2-radio input,.swal2-modal .swal2-radio span{vertical-align:middle}.swal2-modal .swal2-radio input{margin:0 3px 0 0}.swal2-modal .swal2-checkbox{color:#545454}.swal2-modal .swal2-checkbox input,.swal2-modal .swal2-checkbox span{vertical-align:middle}.swal2-modal .swal2-validationerror{background-color:#f0f0f0;margin:0 -20px;overflow:hidden;padding:10px;color:#807f7f;font-size:16px;font-weight:300;display:none}.swal2-modal .swal2-validationerror:before{content:"!";display:inline-block;width:24px;height:24px;border-radius:50%;background-color:#ea7d7d;color:#fff;line-height:24px;text-align:center;margin-right:10px}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.swal2-range input{width:100%!important}.swal2-range output{display:none}}.swal2-icon{width:80px;height:80px;border:4px solid transparent;border-radius:50%;margin:20px auto 30px;padding:0;position:relative;-webkit-box-sizing:content-box;box-sizing:content-box;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon.swal2-error{border-color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;display:block}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}.swal2-icon.swal2-warning{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:#f8bb86;border-color:#facea8}.swal2-icon.swal2-info,.swal2-icon.swal2-warning{font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-info{font-family:Open Sans,sans-serif;color:#3fc3ee;border-color:#9de0f6}.swal2-icon.swal2-question{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:#87adbd;border-color:#c9dae1;font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-success{border-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{border-radius:50%;position:absolute;width:60px;height:120px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px}.swal2-icon.swal2-success .swal2-success-ring{width:80px;height:80px;border:4px solid hsla(98,55%,69%,.2);border-radius:50%;-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.swal2-icon.swal2-success .swal2-success-fix{width:7px;height:90px;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-progresssteps{font-weight:600;margin:0 0 20px;padding:0}.swal2-progresssteps li{display:inline-block;position:relative}.swal2-progresssteps .swal2-progresscircle{background:#3085d6;border-radius:2em;color:#fff;height:2em;line-height:2em;text-align:center;width:2em;z-index:20}.swal2-progresssteps .swal2-progresscircle:first-child{margin-left:0}.swal2-progresssteps .swal2-progresscircle:last-child{margin-right:0}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep{background:#3085d6}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep~.swal2-progresscircle,.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep~.swal2-progressline{background:#add8e6}.swal2-progresssteps .swal2-progressline{background:#3085d6;height:.4em;margin:0 -1px;z-index:10}[class^=swal2]{-webkit-tap-highlight-color:transparent}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}@keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}.swal2-show{-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s}.swal2-show.swal2-noanimation{-webkit-animation:none;animation:none}.swal2-hide{-webkit-animation:hideSweetAlert .15s forwards;animation:hideSweetAlert .15s forwards}.swal2-hide.swal2-noanimation{-webkit-animation:none;animation:none}@-webkit-keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@-webkit-keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}.swal2-animate-success-line-tip{-webkit-animation:animate-success-tip .75s;animation:animate-success-tip .75s}.swal2-animate-success-line-long{-webkit-animation:animate-success-long .75s;animation:animate-success-long .75s}.swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right{-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}@-webkit-keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}.swal2-animate-error-icon{-webkit-animation:animate-error-icon .5s;animation:animate-error-icon .5s}@-webkit-keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.swal2-animate-x-mark{-webkit-animation:animate-x-mark .5s;animation:animate-x-mark .5s}@-webkit-keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.swal2-modal button{margin-right:8px}ul.messenger,ul.messenger>li{margin:0;padding:0}ul.messenger>li{list-style:none}ul.messenger.messenger-empty{display:none}ul.messenger .messenger-message{overflow:hidden;*zoom:1}ul.messenger .messenger-message.messenger-hidden{display:none}ul.messenger .messenger-message .messenger-actions a,ul.messenger .messenger-message .messenger-phrase{padding-right:5px}ul.messenger .messenger-message .messenger-actions{float:right}ul.messenger .messenger-message .messenger-actions a{cursor:pointer;text-decoration:underline}ul.messenger .messenger-message ol,ul.messenger .messenger-message ul{margin:10px 18px 0}ul.messenger.messenger-fixed{position:fixed;z-index:10000}ul.messenger.messenger-fixed .messenger-message{min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box}ul.messenger.messenger-fixed .message .messenger-actions{float:left}ul.messenger.messenger-fixed.messenger-on-top{top:20px}ul.messenger.messenger-fixed.messenger-on-bottom{bottom:20px}ul.messenger.messenger-fixed.messenger-on-bottom,ul.messenger.messenger-fixed.messenger-on-top{left:50%;width:600px;margin-left:-300px}@media (max-width:960px){ul.messenger.messenger-fixed.messenger-on-bottom,ul.messenger.messenger-fixed.messenger-on-top{left:10%;width:80%;margin-left:0}}ul.messenger.messenger-fixed.messenger-on-bottom.messenger-on-right,ul.messenger.messenger-fixed.messenger-on-top.messenger-on-right{right:20px;left:auto}ul.messenger.messenger-fixed.messenger-on-bottom.messenger-on-left,ul.messenger.messenger-fixed.messenger-on-top.messenger-on-left{left:20px;margin-left:0}ul.messenger.messenger-fixed.messenger-on-left,ul.messenger.messenger-fixed.messenger-on-right{width:350px}ul.messenger.messenger-fixed.messenger-on-left .messenger-actions,ul.messenger.messenger-fixed.messenger-on-right .messenger-actions{float:left}ul.messenger .messenger-spinner{display:none}@-webkit-keyframes ui-spinner-rotate-right{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(180deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(1turn)}to{-webkit-transform:rotate(1turn)}}@-webkit-keyframes ui-spinner-rotate-left{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(180deg)}to{-webkit-transform:rotate(1turn)}}@keyframes ui-spinner-rotate-right{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}25%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}75%{-webkit-transform:rotate(1turn);transform:rotate(1turn)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes ui-spinner-rotate-left{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}25%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}75%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.messenger-spinner{position:relative;border-radius:100%}ul.messenger.messenger-spinner-active .messenger-spinner .messenger-spinner{display:block}.messenger-spinner .messenger-spinner-side{width:50%;height:100%;overflow:hidden;position:absolute}.messenger-spinner .messenger-spinner-side .messenger-spinner-fill{border-radius:999px;position:absolute;width:100%;height:100%;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.messenger-spinner .messenger-spinner-side-left{left:0}.messenger-spinner .messenger-spinner-side-left .messenger-spinner-fill{left:100%;border-top-left-radius:0;border-bottom-left-radius:0;-webkit-animation-name:ui-spinner-rotate-left;animation-name:ui-spinner-rotate-left;-webkit-transform-origin:0 50%;transform-origin:0 50%}.messenger-spinner .messenger-spinner-side-right{left:50%}.messenger-spinner .messenger-spinner-side-right .messenger-spinner-fill{left:-100%;border-top-right-radius:0;border-bottom-right-radius:0;-webkit-animation-name:ui-spinner-rotate-right;animation-name:ui-spinner-rotate-right;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}ul.messenger-theme-air{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none;font-family:Raleway,sans-serif}ul.messenger-theme-air .messenger-message{-webkit-transition:background-color .4s;transition:background-color .4s;border-radius:5px;-webkit-box-shadow:inset 0 0 0 1px #fff,inset 0 2px #fff,0 0 0 1px rgba(0,0,0,.1),0 1px rgba(0,0,0,.2);box-shadow:inset 0 0 0 1px #fff,inset 0 2px #fff,0 0 0 1px rgba(0,0,0,.1),0 1px rgba(0,0,0,.2);border:0;background-color:#fff;position:relative;margin-bottom:1em;font-size:13px;color:#666;font-weight:500;padding:10px 30px 11px 46px}ul.messenger-theme-air .messenger-message:hover{background-color:#fff}ul.messenger-theme-air .messenger-message .messenger-close{position:absolute;top:0;right:0;color:#888;opacity:1;font-weight:700;display:block;font-size:20px;line-height:20px;padding:8px 10px 7px 7px;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}ul.messenger-theme-air .messenger-message .messenger-close:hover{color:#444}ul.messenger-theme-air .messenger-message .messenger-close:active{color:#222}ul.messenger-theme-air .messenger-message .messenger-actions{float:none;margin-top:10px}ul.messenger-theme-air .messenger-message .messenger-actions a{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1),inset 0 1px hsla(0,0%,100%,.05);box-shadow:0 0 0 1px rgba(0,0,0,.1),inset 0 1px hsla(0,0%,100%,.05);border-radius:4px;text-decoration:none;display:inline-block;padding:10px;color:#888;margin-right:10px;padding:3px 10px 5px;text-transform:capitalize}ul.messenger-theme-air .messenger-message .messenger-actions a:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1),inset 0 1px hsla(0,0%,100%,.15);box-shadow:0 0 0 1px rgba(0,0,0,.1),inset 0 1px hsla(0,0%,100%,.15);color:#444}ul.messenger-theme-air .messenger-message .messenger-actions a:active{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.18),inset 0 1px rgba(0,0,0,.05);box-shadow:0 0 0 1px rgba(0,0,0,.18),inset 0 1px rgba(0,0,0,.05);background:rgba(0,0,0,.04);color:#444}ul.messenger-theme-air .messenger-message .messenger-actions .messenger-phrase{display:none}ul.messenger-theme-air .messenger-message .messenger-message-inner:before{-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.3);box-shadow:inset 0 1px 3px rgba(0,0,0,.3);border-radius:50%;position:absolute;left:17px;display:block;content:" ";top:50%;margin-top:-8px;height:13px;width:13px;z-index:20}ul.messenger-theme-air .messenger-message.alert-success .messenger-message-inner:before{background-color:#5fca4a}ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-soon .messenger-spinner{width:24px;height:24px;background:transparent}ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-soon .messenger-spinner .messenger-spinner-side .messenger-spinner-fill{background:#dd6a45;-webkit-animation-duration:20s;animation-duration:20s;opacity:1}ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-soon .messenger-spinner:after{content:"";background:#fff;position:absolute;width:19px;height:19px;border-radius:50%;top:2px;left:2px;display:block}ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-later .messenger-spinner{width:24px;height:24px;background:transparent}ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-later .messenger-spinner .messenger-spinner-side .messenger-spinner-fill{background:#dd6a45;-webkit-animation-duration:600s;animation-duration:600s;opacity:1}ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-later .messenger-spinner:after{content:"";background:#fff;position:absolute;width:19px;height:19px;border-radius:50%;top:2px;left:2px;display:block}ul.messenger-theme-air .messenger-message.alert-error .messenger-message-inner:before{background-color:#dd6a45}ul.messenger-theme-air .messenger-message.alert-info .messenger-message-inner:before{background-color:#61c4b8}ul.messenger-theme-air .messenger-spinner{display:block;position:absolute;left:12px;top:50%;margin-top:-13px;z-index:999;height:24px;width:24px;z-index:10} +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:transparent!important;color:#000!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-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:""}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.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}}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#67808c;text-decoration:none}a:focus,a:hover{color:#465760;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:4px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:3px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,h1,h2,h3,h4,h5{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,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,.h5,h4,h5{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,h4 .small,h4 small,h5 .small,h5 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}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.component-inline-update,.text-right{text-align:right}.text-center,body.dashboard .sidebar .sidebar-inner .quick-add-incident{text-align:center}.text-muted{color:#777}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code{font-family:Menlo,Monaco,Consolas,Courier New,monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:3px}code{padding:2px 4px;font-size:90%}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row,.setup-page .steps{margin-left:-15px;margin-right:-15px}.row:after,.row:before,.setup-page .steps:after,.setup-page .steps:before{content:" ";display:table}.row:after,.setup-page .steps:after{clear:both}.col-lg-4,.col-lg-6,.col-lg-8,.col-md-3,.col-md-4,.col-md-6,.col-md-9,.col-md-12,.col-sm-1,.col-sm-3,.col-sm-4,.col-sm-8,.col-sm-11,.col-sm-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-6,.col-xs-9,.col-xs-10,.col-xs-12,.setup-page .steps .step{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-6,.col-xs-9,.col-xs-10,.col-xs-12,.setup-page .steps .step{float:left}.col-xs-2{width:16.66666667%}.col-xs-3,.setup-page .steps .step{width:25%}.col-xs-4{width:33.33333333%}.col-xs-6{width:50%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333%}.col-xs-12{width:100%}.col-xs-push-1{left:8.33333333%}.col-xs-offset-0{margin-left:0}.col-xs-offset-2{margin-left:16.66666667%}@media (min-width:768px){.col-sm-1,.col-sm-3,.col-sm-4,.col-sm-8,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.33333333%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333%}.col-sm-8{width:66.66666667%}.col-sm-11{width:91.66666667%}.col-sm-12{width:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-2{margin-left:16.66666667%}}@media (min-width:992px){.col-md-3,.col-md-4,.col-md-6,.col-md-9,.col-md-12{float:left}.col-md-3{width:25%}.col-md-4{width:33.33333333%}.col-md-6{width:50%}.col-md-9{width:75%}.col-md-12{width:100%}}@media (min-width:1200px){.col-lg-4,.col-lg-6,.col-lg-8{float:left}.col-lg-4{width:33.33333333%}.col-lg-6{width:50%}.col-lg-8{width:66.66666667%}.col-lg-offset-2{margin-left:16.66666667%}}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table .table{background-color:#fff}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}fieldset{margin:0;min-width:0}fieldset,legend{padding:0;border:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.form-control{height:34px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.form-control:focus{outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);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::-ms-expand{border:0;background-color:transparent}.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=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline input[type=checkbox],.checkbox input[type=checkbox],.radio-inline input[type=radio],.radio input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .checkbox label,fieldset[disabled] .radio-inline,fieldset[disabled] .radio label,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:after,.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active:focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:focus{color:#333;background-color:#e6e5e5;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e6e5e5;border-color:#adadad}.btn-default.active:focus,.btn-default.active:hover,.btn-default:active:focus,.btn-default:active:hover,.open>.btn-default.dropdown-toggle:focus,.open>.btn-default.dropdown-toggle:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#67808c;border-color:#5c727d}.btn-primary:focus{color:#fff;background-color:#51656f;border-color:#262f34}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#51656f;border-color:#42525a}.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active:focus,.btn-primary:active:hover,.open>.btn-primary.dropdown-toggle:focus,.open>.btn-primary.dropdown-toggle:hover{color:#fff;background-color:#42525a;border-color:#262f34}.btn-primary.active,.btn-primary:active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#67808c;border-color:#5c727d}.btn-primary .badge{color:#67808c;background-color:#fff}.btn-success{color:#fff;background-color:#7ed321;border-color:#71bd1e}.btn-success:focus{color:#fff;background-color:#64a71a;border-color:#2f4f0c}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#64a71a;border-color:#518815}.btn-success.active:focus,.btn-success.active:hover,.btn-success:active:focus,.btn-success:active:hover,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle:hover{color:#fff;background-color:#518815;border-color:#2f4f0c}.btn-success.active,.btn-success:active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#7ed321;border-color:#71bd1e}.btn-success .badge{color:#7ed321;background-color:#fff}.btn-info{color:#fff;background-color:#3498db;border-color:#258cd1}.btn-info:focus{color:#fff;background-color:#217dbb;border-color:#124364}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#217dbb;border-color:#1c699d}.btn-info.active:focus,.btn-info.active:hover,.btn-info:active:focus,.btn-info:active:hover,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle:hover{color:#fff;background-color:#1c699d;border-color:#124364}.btn-info.active,.btn-info:active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#3498db;border-color:#258cd1}.btn-info .badge{color:#3498db;background-color:#fff}.btn-danger{color:#fff;background-color:#ff6f6f;border-color:#ff5656}.btn-danger:focus{color:#fff;background-color:#ff3c3c;border-color:#d50000}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#ff3c3c;border-color:#ff1818}.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active:focus,.btn-danger:active:hover,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle:hover{color:#fff;background-color:#ff1818;border-color:#d50000}.btn-danger.active,.btn-danger:active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#ff6f6f;border-color:#ff5656}.btn-danger .badge{color:#ff6f6f;background-color:#fff}.btn-link{color:#67808c;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#465760;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:2px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.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:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#67808c}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.pull-right>.dropdown-menu{right:0;left:auto}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-group{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn{position:relative;float:left}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{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-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-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-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-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio]{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-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:3px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.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-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group .form-control:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group .form-control:last-child{border-bottom-left-radius:0;border-top-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{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{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#67808c}.nav>li>a>img{max-width:none}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:3px}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}}.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.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;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{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-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}@media (min-width:768px){.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.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}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#67808c}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#51656f}.label-info{background-color:#3498db}.label-info[href]:focus,.label-info[href]:hover{background-color:#217dbb}.label-danger{background-color:#ff6f6f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#ff3c3c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.list-group-item.active>.badge{color:#67808c;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:3px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissible{padding-right:35px}.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.list-group{margin-bottom:20px;padding-left:0}.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-right-radius:3px;border-top-left-radius:3px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#67808c;border-color:#67808c}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:2px;border-top-left-radius:2px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.table:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.panel>.table:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.panel-body+.table,.panel>.table+.panel-body{border-top:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0);transform:translate(0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:4px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header:after,.modal-header:before{content:" ";display:table}.modal-header:after{clear:both}.modal-header .close{margin-top:-2px}.modal-body{position:relative;padding:15px}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}}.tooltip{position:absolute;z-index:1070;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.pull-right{float:right!important}.hide{display:none!important}.show{display:block!important}.hidden{display:none!important}@-ms-viewport{width:device-width}.visible-sm,.visible-xs,body.dashboard .sidebar .sidebar-inner .quick-add-incident i{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}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm,body.dashboard .sidebar .sidebar-inner .quick-add-incident i{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,body.dashboard .sidebar .bottom-menu-sidebar,body.dashboard .sidebar .sidebar-inner .quick-add-incident span,body.dashboard .sidebar .sidebar-inner>ul>li>a>span{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}}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time input:focus,.flatpickr-time input:hover{background:#f3f3f3}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.flatpickr-time{text-align:left}html{position:relative;min-height:100%;-webkit-font-smoothing:antialiased;overflow-y:scroll}body{margin-bottom:60px;padding-bottom:60px}.uppercase{text-transform:uppercase}.margin-bottom{margin-bottom:20px}.no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}label{font-size:14px}textarea{resize:none;overflow:auto}.markdown-control{position:relative}.markdown-control:before{position:absolute;display:block;right:0;bottom:0;width:40px;height:40px;font-size:2em;font-family:Ionicons;content:"\F4E6"}.form-control{display:block;width:100%;height:45px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.form-control:focus{border-color:#66afe9}@media (max-width:767px){.component-inline .radio-items{text-align:left}.component-inline .radio-items .radio-inline{margin-left:0;width:100%}}.well{border-radius:0}.alert{border-radius:4px;background:#f7ca18;border:2px solid #d5ab07}.alert.alert-success{background-color:#7ed321;border:2px solid #64a71a;color:#fff}.alert.alert-success a{color:#fff;font-weight:700}.alert.alert-info{background:#3498db;border:2px solid #217dbb;color:#fff}.alert.alert-info a{color:#fff;font-weight:700}.alert.alert-danger{background:#ff6f6f;border:2px solid #ff3c3c;color:#fff}.alert.alert-danger a{color:#fff;font-weight:700}.panel-danger{border-color:#ff3c3c}.panel-danger>.panel-heading{color:#fff;background-color:#ff6f6f;border-color:#ff3c3c}.panel-danger>.panel-heading .badge{color:#ff6f6f;background-color:#fff}.panel-info{border-color:#217dbb}.panel-info>.panel-heading{color:#fff;background-color:#3498db;border-color:#217dbb}.panel-info>.panel-heading .badge{color:#3498db;background-color:#fff}.btn.btn-default{color:#333;background:#fff;border:1px solid #e6e5e5}.btn.btn-default.active,.btn.btn-default:active,.btn.btn-default:focus,.btn.btn-default:hover{background:#f2f2f2;border-color:#e6e5e5;color:#333;outline:none;outline-offset:0}.btn.btn-default.disabled,.btn.btn-default.disabled.active,.btn.btn-default.disabled:active,.btn.btn-default.disabled:focus,.btn.btn-default.disabled:hover,.btn.btn-default[disabled],.btn.btn-default[disabled].active,.btn.btn-default[disabled]:active,.btn.btn-default[disabled]:focus,.btn.btn-default[disabled]:hover,fieldset[disabled] .btn.btn-default,fieldset[disabled] .btn.btn-default.active,fieldset[disabled] .btn.btn-default:active,fieldset[disabled] .btn.btn-default:focus,fieldset[disabled] .btn.btn-default:hover{background-color:#fff;border-color:#e6e5e5}.btn.btn-primary{color:#fff;background:#67808c;border:1px solid #51656f}.btn.btn-primary.active,.btn.btn-primary:active,.btn.btn-primary:focus,.btn.btn-primary:hover{background:#5c727d;border-color:#51656f;color:#fff;outline:none;outline-offset:0}.btn.btn-primary.disabled,.btn.btn-primary.disabled.active,.btn.btn-primary.disabled:active,.btn.btn-primary.disabled:focus,.btn.btn-primary.disabled:hover,.btn.btn-primary[disabled],.btn.btn-primary[disabled].active,.btn.btn-primary[disabled]:active,.btn.btn-primary[disabled]:focus,.btn.btn-primary[disabled]:hover,fieldset[disabled] .btn.btn-primary,fieldset[disabled] .btn.btn-primary.active,fieldset[disabled] .btn.btn-primary:active,fieldset[disabled] .btn.btn-primary:focus,fieldset[disabled] .btn.btn-primary:hover{background-color:#748c99;border-color:#51656f}.btn.btn-success{color:#fff;background:#7ed321;border:1px solid #64a71a}.btn.btn-success.active,.btn.btn-success:active,.btn.btn-success:focus,.btn.btn-success:hover{background:#71bd1e;border-color:#64a71a;color:#fff;outline:none;outline-offset:0}.btn.btn-success.disabled,.btn.btn-success.disabled.active,.btn.btn-success.disabled:active,.btn.btn-success.disabled:focus,.btn.btn-success.disabled:hover,.btn.btn-success[disabled],.btn.btn-success[disabled].active,.btn.btn-success[disabled]:active,.btn.btn-success[disabled]:focus,.btn.btn-success[disabled]:hover,fieldset[disabled] .btn.btn-success,fieldset[disabled] .btn.btn-success.active,fieldset[disabled] .btn.btn-success:active,fieldset[disabled] .btn.btn-success:focus,fieldset[disabled] .btn.btn-success:hover{background-color:#8bde2f;border-color:#64a71a}.btn.btn-info{color:#fff;background:#3498db;border:1px solid #217dbb}.btn.btn-info.active,.btn.btn-info:active,.btn.btn-info:focus,.btn.btn-info:hover{background:#258cd1;border-color:#217dbb;color:#fff;outline:none;outline-offset:0}.btn.btn-info.disabled,.btn.btn-info.disabled.active,.btn.btn-info.disabled:active,.btn.btn-info.disabled:focus,.btn.btn-info.disabled:hover,.btn.btn-info[disabled],.btn.btn-info[disabled].active,.btn.btn-info[disabled]:active,.btn.btn-info[disabled]:focus,.btn.btn-info[disabled]:hover,fieldset[disabled] .btn.btn-info,fieldset[disabled] .btn.btn-info.active,fieldset[disabled] .btn.btn-info:active,fieldset[disabled] .btn.btn-info:focus,fieldset[disabled] .btn.btn-info:hover{background-color:#4aa3df;border-color:#217dbb}.btn.btn-danger{color:#fff;background:#ff6f6f;border:1px solid #ff3c3c}.btn.btn-danger.active,.btn.btn-danger:active,.btn.btn-danger:focus,.btn.btn-danger:hover{background:#ff5656;border-color:#ff3c3c;color:#fff;outline:none;outline-offset:0}.btn.btn-danger.disabled,.btn.btn-danger.disabled.active,.btn.btn-danger.disabled:active,.btn.btn-danger.disabled:focus,.btn.btn-danger.disabled:hover,.btn.btn-danger[disabled],.btn.btn-danger[disabled].active,.btn.btn-danger[disabled]:active,.btn.btn-danger[disabled]:focus,.btn.btn-danger[disabled]:hover,fieldset[disabled] .btn.btn-danger,fieldset[disabled] .btn.btn-danger.active,fieldset[disabled] .btn.btn-danger:active,fieldset[disabled] .btn.btn-danger:focus,fieldset[disabled] .btn.btn-danger:hover{background-color:#ff8989;border-color:#ff3c3c}.btn-outline{background-color:transparent;background-image:none!important;color:inherit;-webkit-transition:all .5s;transition:all .5s}.btn-default.btn-outline{color:#999}.btn-primary.btn-outline{color:#428bca}.btn-success.btn-outline{color:#5cb85c}.btn-info.btn-outline{color:#5bc0de}.btn-danger.btn-outline{color:#d9534f}.btn-danger.btn-outline:hover,.btn-info.btn-outline:hover,.btn-primary.btn-outline:hover,.btn-success.btn-outline:hover{color:#fff}.pager li>a,.pager li>span{border-radius:3px}body.dashboard{font-family:-apple-system,BlinkMacSystemFont,Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-size:15px;display:table;width:100%;height:100%;table-layout:fixed;line-height:1.42857143;-webkit-font-smoothing:antialiased}body.dashboard .wrapper{padding-left:0;-webkit-transition:all .5s ease;transition:all .5s ease}body.dashboard .wrapper.toggled{padding-left:235px}body.dashboard .wrapper.toggled .sidebar{width:235px}body.dashboard .wrapper.toggled .page-content{position:absolute;margin-right:-235px}@media (min-width:768px) and (max-width:991px){body.dashboard .wrapper{padding-left:80px}}@media (min-width:991px){body.dashboard .wrapper{padding-left:235px}body.dashboard .wrapper.toggled{padding-left:0}body.dashboard .wrapper.toggled .page-content{position:relative;margin-right:0}}body.dashboard .alerts .alert h5{margin-top:5px}body.dashboard .wrapper{width:100%;display:table;height:100%;table-layout:fixed}body.dashboard .navbar{z-index:999;border-radius:0;border:none;border-bottom:1px solid #00695c;background:#009c89;margin:0}body.dashboard .navbar a,body.dashboard .navbar a:active,body.dashboard .navbar a:visited{color:#fff}body.dashboard .navbar a:active:hover,body.dashboard .navbar a:hover,body.dashboard .navbar a:visited:hover{color:#e9e9e9}body.dashboard .navbar .navbar-collapse{background:#009c89}body.dashboard .navbar a.navbar-brand{padding:34px 21px;line-height:0;font-size:1.1em;letter-spacing:.04em;font-weight:600;text-transform:uppercase}@media (min-width:991px){body.dashboard .navbar a.navbar-brand span{padding-right:10px}body.dashboard .navbar a.navbar-brand span:before{font-family:FontAwesome;content:"\F060"}}body.dashboard .navbar .nav li a{height:68px;line-height:35px}body.dashboard .sidebar{position:fixed;left:235px;width:0;height:100%;margin-left:-235px;overflow-y:auto;background:#333;-webkit-box-shadow:inset 0 -2px 3px rgba(0,0,0,.25);box-shadow:inset 0 -2px 3px rgba(0,0,0,.25);z-index:1000;-webkit-transition:all .5s ease;transition:all .5s ease}body.dashboard .sidebar .sidebar-inner{position:absolute;top:0;width:235px;margin:0;padding:0;list-style:none}body.dashboard .sidebar .sidebar-inner .profile{text-align:center;padding:20px 10px;margin-bottom:0}body.dashboard .sidebar .sidebar-inner .profile .dropdown-toggle{text-decoration:none}body.dashboard .sidebar .sidebar-inner .profile .dropdown-menu{top:108%}body.dashboard .sidebar .sidebar-inner .profile .avatar{width:60px}body.dashboard .sidebar .sidebar-inner .profile .avatar img{border-radius:50%;width:50px}body.dashboard .sidebar .sidebar-inner .profile .username{word-break:break-all;margin-bottom:0}body.dashboard .sidebar .sidebar-inner .profile a{color:#fff;text-decoration:none}body.dashboard .sidebar .sidebar-inner .quick-add-incident{padding:10px}body.dashboard .sidebar .sidebar-inner ul{clear:both;margin:0;padding:0;list-style:none}body.dashboard .sidebar .sidebar-inner ul li{font-size:.9em}body.dashboard .sidebar .sidebar-inner ul li:focus,body.dashboard .sidebar .sidebar-inner ul li:hover{background:#404040!important}body.dashboard .sidebar .sidebar-inner ul li.active{background:#4d4c4c}body.dashboard .sidebar .sidebar-inner ul li.active:hover{background:#595959!important}body.dashboard .sidebar .sidebar-inner ul li.active a{padding-top:14px;padding-bottom:14px;border-top:1px solid #666;border-bottom:1px solid #666;color:#fff}body.dashboard .sidebar .sidebar-inner ul li.active a:focus,body.dashboard .sidebar .sidebar-inner ul li.active a:hover{text-decoration:none}body.dashboard .sidebar .sidebar-inner ul li a{display:block;padding:15px;color:#fff}body.dashboard .sidebar .sidebar-inner ul li a i{font-size:18px;min-width:17px;text-align:center;position:relative;top:1px;margin-right:5px}body.dashboard .sidebar .sidebar-inner ul li a:focus,body.dashboard .sidebar .sidebar-inner ul li a:hover{text-decoration:none}body.dashboard .sidebar .sidebar-inner ul li a span.label{float:right;margin:3px 0}body.dashboard .sidebar .sidebar-inner ul li a span.label.label-info{background-color:#6db81c}body.dashboard .sidebar .bottom-menu-sidebar{position:fixed;bottom:0;width:237px;z-index:999}body.dashboard .sidebar .bottom-menu-sidebar ul>li{float:left;display:block;width:33.333%;border-right:1px solid #ddd;border-top:1px solid #ddd}body.dashboard .sidebar .bottom-menu-sidebar ul>li a{color:#333;display:block;position:relative;text-align:center;padding:6px 0;background:#fff}@media (min-width:767px){body.dashboard .sidebar{width:235px}body.dashboard .wrapper.toggled .sidebar{width:0}}@media (min-width:768px) and (max-width:991px){body.dashboard .sidebar{width:80px;left:150px;margin-left:-150px}body.dashboard .sidebar .sidebar-inner{width:80px}body.dashboard .sidebar .sidebar-inner .profile .avatar img{width:40px}body.dashboard .sidebar .sidebar-inner .quick-add-incident .btn{padding:3px 6px}body.dashboard .sidebar .sidebar-inner .quick-add-incident i{font-size:20px}body.dashboard .sidebar .sidebar-inner>ul>li>a{text-align:center}body.dashboard .sidebar .sidebar-inner>ul>li>a>i{font-size:25px}}body.dashboard .sidebar-toggler{float:left;padding:10px;position:relative;top:-15px;left:-5px;margin-right:10px;cursor:pointer}body.dashboard .sidebar-toggler i{font-size:25px}body.dashboard .sub-sidebar{left:0;top:0;bottom:0;position:fixed;margin-left:228px;width:22%;background:#f0f3f4;border-right:1px solid #e8ecf1}body.dashboard .sub-sidebar h3{margin:0;text-align:center;font-size:19px;padding:30px 15px 15px}body.dashboard .sub-sidebar hr{margin-top:5px;margin-bottom:5px}body.dashboard .sub-sidebar ul.menu{list-style-type:none;padding:0;margin:0}body.dashboard .sub-sidebar ul.menu li a{color:#666;display:block;padding:13px 30px;font-size:15px;-webkit-transition:all .2s linear;transition:all .2s linear;text-decoration:none}body.dashboard .sub-sidebar ul.menu li a.active,body.dashboard .sub-sidebar ul.menu li a:hover{color:#6db81c}body.dashboard .sub-sidebar ul.menu li i{margin-right:5px}body.dashboard .sub-sidebar .sidebar-toggler{position:absolute;top:3px;left:20px;font-size:36px;cursor:pointer}body.dashboard .sub-sidebar+.content-wrapper{top:0;position:relative;margin-left:26%;padding-right:40px!important}@media (max-width:767px){body.dashboard .sub-sidebar{position:relative;margin-left:0;width:100%}body.dashboard .sub-sidebar+.content-wrapper{margin-left:0;padding-left:40px!important;width:100%}}@media (min-width:768px) and (max-width:991px){body.dashboard .sub-sidebar{margin-left:80px;width:25%}body.dashboard .sub-sidebar+.content-wrapper{padding-left:45px!important}}body.dashboard .page-content{width:100%}body.dashboard .page-content .content-wrapper{padding-top:20px;padding-left:40px;padding-right:40px}body.dashboard .page-content .content-wrapper.header-fixed{margin-top:60px}body.dashboard .page-content .header{position:relative;top:0;left:0;color:#333;background-color:#fff;padding:22px 40px;width:100%;height:70px;font-size:1.2em;border-bottom:1px solid #eee;z-index:99}body.dashboard .page-content .header.sub-header{padding:8px 2px;height:50px}body.dashboard .page-content .header.fixed{position:fixed;padding-left:270px}body.dashboard .page-content .header .btn,body.dashboard .page-content .header button,body.dashboard .page-content .header input{position:relative;top:-4px}body.dashboard .page-content .header input{width:20%}.setup-page body.dashboard .page-content .header+.steps,body.dashboard .page-content .header+.row,body.dashboard .page-content .setup-page .header+.steps{margin-top:23px}body.dashboard .page-content .header h3{color:#444;margin-top:0;text-transform:uppercase}body.dashboard .page-content .header .ion,body.dashboard .page-content .header .ion-alert-circled:before,body.dashboard .page-content .header .ion-alert:before,body.dashboard .page-content .header .ion-android-alert:before,body.dashboard .page-content .header .ion-android-calendar:before,body.dashboard .page-content .header .ion-android-checkmark-circle:before,body.dashboard .page-content .header .ion-android-open:before,body.dashboard .page-content .header .ion-checkmark-circled:before,body.dashboard .page-content .header .ion-checkmark:before,body.dashboard .page-content .header .ion-code-working:before,body.dashboard .page-content .header .ion-document-text:before,body.dashboard .page-content .header .ion-drag:before,body.dashboard .page-content .header .ion-earth:before,body.dashboard .page-content .header .ion-eye:before,body.dashboard .page-content .header .ion-flag:before,body.dashboard .page-content .header .ion-folder:before,body.dashboard .page-content .header .ion-gear-b:before,body.dashboard .page-content .header .ion-help-circled:before,body.dashboard .page-content .header .ion-help:before,body.dashboard .page-content .header .ion-home:before,body.dashboard .page-content .header .ion-ios-arrow-right:before,body.dashboard .page-content .header .ion-ios-browsers-outline:before,body.dashboard .page-content .header .ion-ios-browsers:before,body.dashboard .page-content .header .ion-ios-circle-filled:before,body.dashboard .page-content .header .ion-ios-email-outline:before,body.dashboard .page-content .header .ion-ios-gear-outline:before,body.dashboard .page-content .header .ion-ios-help-outline:before,body.dashboard .page-content .header .ion-ios-information-outline:before,body.dashboard .page-content .header .ion-ios-keypad:before,body.dashboard .page-content .header .ion-ios-list:before,body.dashboard .page-content .header .ion-ios-minus-outline:before,body.dashboard .page-content .header .ion-ios-paper-outline:before,body.dashboard .page-content .header .ion-ios-people-outline:before,body.dashboard .page-content .header .ion-ios-people:before,body.dashboard .page-content .header .ion-ios-person-outline:before,body.dashboard .page-content .header .ion-ios-pie-outline:before,body.dashboard .page-content .header .ion-ios-plus-outline:before,body.dashboard .page-content .header .ion-ios-unlocked:before,body.dashboard .page-content .header .ion-link:before,body.dashboard .page-content .header .ion-load-c:before,body.dashboard .page-content .header .ion-lock-combination:before,body.dashboard .page-content .header .ion-log-out:before,body.dashboard .page-content .header .ion-monitor:before,body.dashboard .page-content .header .ion-navicon:before,body.dashboard .page-content .header .ion-paintbrush:before,body.dashboard .page-content .header .ion-paintbucket:before,body.dashboard .page-content .header .ion-paper-airplane:before,body.dashboard .page-content .header .ion-person:before,body.dashboard .page-content .header .ion-speedometer:before,body.dashboard .page-content .header .ion-stats-bars:before,body.dashboard .page-content .header .ion-unlocked:before,body.dashboard .page-content .header .ion-wand:before{margin-right:2px}body.dashboard .page-content .sub-header{font-weight:300;text-transform:uppercase}body.dashboard .page-content .sub-header a{text-transform:none}body.dashboard .page-content .striped-list .striped-list-item{border-bottom:1px solid #f0f0f0;padding:8px 0}body.dashboard .page-content .drag-handle{cursor:move}body.dashboard .page-content .user-grid .user img{border-radius:5px;margin-bottom:15px;border:0}body.dashboard .page-content .user-grid .user .name{font-weight:600}body.dashboard .page-content .user-grid .user .email{color:#444;margin-top:4px}@media (max-width:767px){body.dashboard .page-content .content-wrapper,body.dashboard .page-content .header,body.dashboard .page-content .header.fixed{padding-left:20px;padding-right:20px}}@media (min-width:768px) and (max-width:991px){body.dashboard .page-content .header.fixed{padding-left:120px}}#welcome-modal .modal-dialog{margin-top:65px}#welcome-modal .modal-content .modal-header{border-bottom:0}#welcome-modal .modal-content .modal-body{padding-bottom:50px}#welcome-modal .modal-content .modal-body header{text-align:center;font-weight:600;font-size:22px;color:#444;margin-bottom:23px}#welcome-modal .modal-content .modal-body p{font-size:13px;color:#555;margin:0 auto;width:80%;text-align:center;line-height:20px}#welcome-modal .modal-content .modal-body .go-dashboard{text-align:center;display:block;margin-top:10px}#welcome-modal .modal-content .modal-body .get-started{margin-top:40px}#welcome-modal .modal-content .modal-body .get-started .col-md-4{text-align:center;padding-bottom:50px}#welcome-modal .modal-content .modal-body .get-started .col-md-4 a{color:#666;display:block;margin-top:12px;font-size:13px}#welcome-modal .modal-content .modal-body .get-started .col-md-4 a i{font-size:38px;color:#6db81c;display:block}#welcome-modal .modal-content .modal-body .get-started .col-md-4 a:hover{text-decoration:none;color:#999}body.login .form-bg{border-radius:10px;margin:auto;margin-top:60px;padding:30px;width:320px;border:1px solid rgba(0,0,0,.1);-webkit-box-shadow:0 20px 30px rgba(0,0,0,.2);box-shadow:0 20px 30px rgba(0,0,0,.2);background-color:#fff}body.login .logo{margin-bottom:30px}body.login .logo img{margin:0 auto}body.login .login-input{height:45px}body.login i{font-size:22px}.setup-page{padding-top:60px}.setup-page .logo{display:block;margin:0 auto 30px}.setup-page .steps{margin:0 auto;border-radius:2px 2px 0 0;margin-bottom:20px}.setup-page .steps .step{padding:20px 0;text-align:center;position:relative;font-size:13px}.setup-page .steps .step:not(:last-child):after{content:"";position:absolute;bottom:31px;left:55%;display:block;height:1px;background:#94a1b8;width:100%}.setup-page .steps .step span{width:23px;height:23px;display:block;position:relative;margin:0 auto;margin-top:13px;border-radius:25px;background:#f0f3f4;border:1px solid #94a1b8;-webkit-transition:all .2s linear;transition:all .2s linear;z-index:10}.setup-page .steps .step.active span{background:#7ed321}.setup-page .setup-success{text-align:center}.setup-page .setup-success i{font-size:47px}.setup-page .setup-success h3{margin-top:25px;font-size:21px;color:#556579}.setup-page .setup-success .btn{margin-top:40px}.component-inline-update{padding-top:8px}.component-inline-update label{display:initial;font-weight:400}.component-group-name{font-size:18px;padding-left:10px}.component-group-other{font-size:18px}.list-group-item.group-name:hover{cursor:pointer}.stats-widget{text-align:center;margin-bottom:30px;background-color:#fff;border:1px solid #eee}.stats-widget .stats-top{padding:20px}.stats-widget .stats-top>span{display:block;text-align:center}.stats-widget .stats-top>span.stats-value{font-size:24px;font-weight:400}.stats-widget .stats-top>span.stats-label{padding-top:5px;font-size:14px;font-weight:300;color:#777}.stats-widget .stats-body,.stats-widget .stats-chart{margin-top:-20px;padding-top:10px}.stats-widget .stats-body .list-group{border:none;padding-bottom:0;margin-bottom:0}.stats-widget .stats-body .list-group .list-group-item{border-right:none;border-left:none;border-color:#eee}.stats-widget .stats-body .list-group .list-group-item:last-child{border-bottom:none}.minicolors{position:relative}@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,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) format("woff")}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body a{background-color:transparent}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body strong{font-weight:inherit;font-weight:bolder}.markdown-body h1{margin:.67em 0}.markdown-body img{border-style:none}.markdown-body code{font-family:monospace,monospace;font-size:1em}.markdown-body hr{-webkit-box-sizing:content-box;box-sizing:content-box;overflow:visible}.markdown-body input{font:inherit;margin:0;overflow:visible}.markdown-body [type=checkbox]{padding:0}.markdown-body *,.markdown-body [type=checkbox]{-webkit-box-sizing:border-box;box-sizing:border-box}.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body a{color:#0366d6;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body hr{height:0;margin:15px 0;overflow:hidden;background:transparent;border-bottom:1px solid #dfe2e5}.markdown-body hr:after,.markdown-body hr:before{display:table;content:""}.markdown-body hr:after{clear:both}.markdown-body table{border-spacing:0;border-collapse:collapse}.markdown-body td,.markdown-body th{padding:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5{margin-top:0;margin-bottom:0}.markdown-body h1{font-size:32px;font-weight:600}.markdown-body h2{font-size:24px;font-weight:600}.markdown-body h3{font-size:20px;font-weight:600}.markdown-body h4{font-size:16px;font-weight:600}.markdown-body h5{font-size:14px;font-weight:600}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body ol,.markdown-body ul{padding-left:0;margin-top:0;margin-bottom:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px}.markdown-body:after,.markdown-body:before{display:table;content:""}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body ol,.markdown-body p,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor{text-decoration:none}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eaecef}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li{word-wrap:break-all}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{max-width:100%;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body code{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}.markdown-body hr{border-bottom-color:#eee}[class^=swal2]{-webkit-tap-highlight-color:transparent}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}@keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}@-webkit-keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@-webkit-keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@-webkit-keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-webkit-keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@-webkit-keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}ul.messenger,ul.messenger>li{margin:0;padding:0}ul.messenger>li{list-style:none}ul.messenger.messenger-fixed{position:fixed;z-index:10000}ul.messenger.messenger-fixed.messenger-on-top{top:20px}ul.messenger.messenger-fixed.messenger-on-top{left:50%;width:600px;margin-left:-300px}@media (max-width:960px){ul.messenger.messenger-fixed.messenger-on-top{left:10%;width:80%;margin-left:0}}@-webkit-keyframes ui-spinner-rotate-right{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(180deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(1turn)}to{-webkit-transform:rotate(1turn)}}@-webkit-keyframes ui-spinner-rotate-left{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(180deg)}to{-webkit-transform:rotate(1turn)}}@keyframes ui-spinner-rotate-right{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}25%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}75%{-webkit-transform:rotate(1turn);transform:rotate(1turn)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes ui-spinner-rotate-left{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}25%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}75%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} /*! Animate.css - http://daneden.me/animate Licensed under the MIT license - http://opensource.org/licenses/MIT Copyright (c) 2015 Daniel Eden -*/.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:0.75s;animation-duration:0.75s}body{-webkit-backface-visibility:hidden}.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.bootstrap-datetimepicker-widget{list-style:none}.bootstrap-datetimepicker-widget.dropdown-menu{margin:2px 0;padding:4px;width:19em}@media (min-width:768px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:992px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:1200px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}.bootstrap-datetimepicker-widget.dropdown-menu:after,.bootstrap-datetimepicker-widget.dropdown-menu:before{content:"";display:inline-block;position:absolute}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);top:-7px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;top:-6px;left:8px}.bootstrap-datetimepicker-widget.dropdown-menu.top:before{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;border-top-color:rgba(0,0,0,.2);bottom:-7px;left:6px}.bootstrap-datetimepicker-widget.dropdown-menu.top:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #fff;bottom:-6px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget .list-unstyled{margin:0}.bootstrap-datetimepicker-widget a[data-action]{padding:6px 0}.bootstrap-datetimepicker-widget a[data-action]:active{-webkit-box-shadow:none;box-shadow:none}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:54px;font-weight:700;font-size:1.2em;margin:0}.bootstrap-datetimepicker-widget button[data-action]{padding:6px}.bootstrap-datetimepicker-widget .btn[data-action=incrementHours]:after{content:"Increment Hours"}.bootstrap-datetimepicker-widget .btn[data-action=incrementMinutes]:after{content:"Increment Minutes"}.bootstrap-datetimepicker-widget .btn[data-action=decrementHours]:after{content:"Decrement Hours"}.bootstrap-datetimepicker-widget .btn[data-action=decrementMinutes]:after{content:"Decrement Minutes"}.bootstrap-datetimepicker-widget .btn[data-action=showHours]:after{content:"Show Hours"}.bootstrap-datetimepicker-widget .btn[data-action=showMinutes]:after{content:"Show Minutes"}.bootstrap-datetimepicker-widget .btn[data-action=togglePeriod]:after{content:"Toggle AM/PM"}.bootstrap-datetimepicker-widget .btn[data-action=clear]:after{content:"Clear the picker"}.bootstrap-datetimepicker-widget .btn[data-action=today]:after{content:"Set the date to today"}.bootstrap-datetimepicker-widget .picker-switch{text-align:center}.bootstrap-datetimepicker-widget .picker-switch:after{content:"Toggle Date and Time Screens"}.bootstrap-datetimepicker-widget .picker-switch td{padding:0;margin:0;height:auto;width:auto;line-height:inherit}.bootstrap-datetimepicker-widget .picker-switch td span{line-height:2.5;height:2.5em;width:100%}.bootstrap-datetimepicker-widget table{width:100%;margin:0}.bootstrap-datetimepicker-widget table td,.bootstrap-datetimepicker-widget table th{text-align:center;border-radius:3px}.bootstrap-datetimepicker-widget table th{height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget table th.picker-switch{width:145px}.bootstrap-datetimepicker-widget table th.disabled,.bootstrap-datetimepicker-widget table th.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget table th.prev:after{content:"Previous Month"}.bootstrap-datetimepicker-widget table th.next:after{content:"Next Month"}.bootstrap-datetimepicker-widget table thead tr:first-child th{cursor:pointer}.bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background:#e8e8e8}.bootstrap-datetimepicker-widget table td{height:54px;line-height:54px;width:54px}.bootstrap-datetimepicker-widget table td.cw{font-size:.8em;height:20px;line-height:20px;color:#999}.bootstrap-datetimepicker-widget table td.day{height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget table td.day:hover,.bootstrap-datetimepicker-widget table td.hour:hover,.bootstrap-datetimepicker-widget table td.minute:hover,.bootstrap-datetimepicker-widget table td.second:hover{background:#e8e8e8;cursor:pointer}.bootstrap-datetimepicker-widget table td.new,.bootstrap-datetimepicker-widget table td.old{color:#999}.bootstrap-datetimepicker-widget table td.today{position:relative}.bootstrap-datetimepicker-widget table td.today:before{content:"";display:inline-block;border:solid transparent;border-width:0 0 7px 7px;border-bottom-color:#7ed321;border-top-color:rgba(0,0,0,.2);position:absolute;bottom:4px;right:4px}.bootstrap-datetimepicker-widget table td.active,.bootstrap-datetimepicker-widget table td.active:hover{background-color:#7ed321;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.bootstrap-datetimepicker-widget table td.active.today:before{border-bottom-color:#fff}.bootstrap-datetimepicker-widget table td.disabled,.bootstrap-datetimepicker-widget table td.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget table td span{display:inline-block;width:54px;height:54px;line-height:54px;margin:2px 1.5px;cursor:pointer;border-radius:3px}.bootstrap-datetimepicker-widget table td span:hover{background:#e8e8e8}.bootstrap-datetimepicker-widget table td span.active{background-color:#7ed321;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.bootstrap-datetimepicker-widget table td span.old{color:#999}.bootstrap-datetimepicker-widget table td span.disabled,.bootstrap-datetimepicker-widget table td span.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget.usetwentyfour td.hour{height:27px;line-height:27px}.input-group.date .input-group-addon{cursor:pointer}.strengthify-wrapper>*{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0;-webkit-transition:all .5s ease-in-out;transition:all .5s ease-in-out}.strengthify-wrapper{position:relative}.strengthify-bg,.strengthify-container,.strengthify-separator,.strengthify-wrapper{height:8px}.strengthify-bg,.strengthify-container{display:block;position:absolute;width:100%}.strengthify-bg{background-color:#eee}.strengthify-separator{display:inline-block;position:absolute;background-color:#fff;width:2px;z-index:10}.password-bad{background-color:#ff6f6f}.password-medium{background-color:#f7ca18}.password-good{background-color:#7ed321}.sortable-chosen{border:1px solid #e8e8e8!important;background-color:#f0f3f4} \ No newline at end of file +*/body{-webkit-backface-visibility:hidden}.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.strengthify-wrapper>*{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0;-webkit-transition:all .5s ease-in-out;transition:all .5s ease-in-out}.strengthify-wrapper{position:relative}.strengthify-bg,.strengthify-container,.strengthify-separator,.strengthify-wrapper{height:8px}.strengthify-bg,.strengthify-container{display:block;position:absolute;width:100%}.strengthify-bg{background-color:#eee}.strengthify-separator{display:inline-block;position:absolute;background-color:#fff;width:2px;z-index:10}.password-bad{background-color:#ff6f6f}.password-medium{background-color:#f7ca18}.password-good{background-color:#7ed321} \ No newline at end of file diff --git a/public/dist/js/all.js b/public/dist/js/all.js index 59deb08f..35e8613a 100644 --- a/public/dist/js/all.js +++ b/public/dist/js/all.js @@ -1,26 +1,27 @@ -if(webpackJsonp([1],[,,,function(e,t,n){"use strict";function r(e){return"[object Array]"===u.call(e)}function i(e){return null!==e&&"object"==typeof e}function o(e){return"[object Function]"===u.call(e)}function a(e,t){if(null!==e&&void 0!==e)if("object"==typeof e||r(e)||(e=[e]),r(e))for(var n=0,i=e.length;n=200&&e<300}};l.headers={common:{Accept:"application/json, text/plain, */*"}},o.forEach(["delete","get","head"],function(e){l.headers[e]={}}),o.forEach(["post","put","patch"],function(e){l.headers[e]=o.merge(u)}),e.exports=l}).call(t,n(17))},function(e,t,n){"use strict";(function(t){function n(e){l.length||o(),l[l.length]=e}function r(){for(;dc){for(var t=0,n=l.length-d;t-1}function p(e,t,n){for(var r=-1,i=null==e?0:e.length;++r-1;);return n}function A(e,t){for(var n=e.length;n--&&M(t,e[n],0)>-1;);return n}function P(e){return"\\"+on[e]}function N(e){return Qt.test(e)}function I(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function R(e,t){return function(n){return e(t(n))}}function $(e,t){for(var n=-1,r=e.length,i=0,o=[];++n>>1,be=[["ary",ue],["bind",te],["bindKey",ne],["curry",ie],["curryRight",oe],["flip",de],["partial",ae],["partialRight",se],["rearg",le]],we="[object Arguments]",Me="[object Array]",Le="[object AsyncFunction]",ke="[object Boolean]",xe="[object Date]",Te="[object DOMException]",Ye="[object Error]",De="[object Function]",Se="[object GeneratorFunction]",je="[object Map]",Ce="[object Number]",Ee="[object Null]",He="[object Object]",Oe="[object Proxy]",Ae="[object RegExp]",Pe="[object Set]",Ne="[object String]",Ie="[object Symbol]",Re="[object Undefined]",$e="[object WeakMap]",We="[object ArrayBuffer]",Fe="[object DataView]",ze="[object Float32Array]",qe="[object Float64Array]",Be="[object Int8Array]",Ue="[object Int16Array]",Ve="[object Int32Array]",Je="[object Uint8Array]",Ge="[object Uint8ClampedArray]",Xe="[object Uint16Array]",Ze="[object Uint32Array]",Qe=/\b__p \+= '';/g,Ke=/\b(__p \+=) '' \+/g,et=/(__e\(.*?\)|\b__t\)) \+\n'';/g,tt=/&(?:amp|lt|gt|quot|#39);/g,nt=/[&<>"']/g,rt=RegExp(tt.source),it=RegExp(nt.source),ot=/<%-([\s\S]+?)%>/g,at=/<%([\s\S]+?)%>/g,st=/<%=([\s\S]+?)%>/g,ut=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,lt=/^\w*$/,dt=/^\./,ct=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ft=/[\\^$.*+?()[\]{}|]/g,ht=RegExp(ft.source),pt=/^\s+|\s+$/g,mt=/^\s+/,_t=/\s+$/,gt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,yt=/\{\n\/\* \[wrapped with (.+)\] \*/,vt=/,? & /,bt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,wt=/\\(\\)?/g,Mt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Lt=/\w*$/,kt=/^[-+]0x[0-9a-f]+$/i,xt=/^0b[01]+$/i,Tt=/^\[object .+?Constructor\]$/,Yt=/^0o[0-7]+$/i,Dt=/^(?:0|[1-9]\d*)$/,St=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,jt=/($^)/,Ct=/['\n\r\u2028\u2029\\]/g,Et="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Ht="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ot="["+Ht+"]",At="["+Et+"]",Pt="[a-z\\xdf-\\xf6\\xf8-\\xff]",Nt="[^\\ud800-\\udfff"+Ht+"\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",It="\\ud83c[\\udffb-\\udfff]",Rt="[^\\ud800-\\udfff]",$t="(?:\\ud83c[\\udde6-\\uddff]){2}",Wt="[\\ud800-\\udbff][\\udc00-\\udfff]",Ft="[A-Z\\xc0-\\xd6\\xd8-\\xde]",zt="(?:"+Pt+"|"+Nt+")",qt="(?:"+At+"|"+It+")?",Bt="[\\ufe0e\\ufe0f]?"+qt+"(?:\\u200d(?:"+[Rt,$t,Wt].join("|")+")[\\ufe0e\\ufe0f]?"+qt+")*",Ut="(?:"+["[\\u2700-\\u27bf]",$t,Wt].join("|")+")"+Bt,Vt="(?:"+[Rt+At+"?",At,$t,Wt,"[\\ud800-\\udfff]"].join("|")+")",Jt=RegExp("['’]","g"),Gt=RegExp(At,"g"),Xt=RegExp(It+"(?="+It+")|"+Vt+Bt,"g"),Zt=RegExp([Ft+"?"+Pt+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[Ot,Ft,"$"].join("|")+")","(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[Ot,Ft+zt,"$"].join("|")+")",Ft+"?"+zt+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Ft+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)","\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)","\\d+",Ut].join("|"),"g"),Qt=RegExp("[\\u200d\\ud800-\\udfff"+Et+"\\ufe0e\\ufe0f]"),Kt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,en=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],tn=-1,nn={};nn[ze]=nn[qe]=nn[Be]=nn[Ue]=nn[Ve]=nn[Je]=nn[Ge]=nn[Xe]=nn[Ze]=!0,nn[we]=nn[Me]=nn[We]=nn[ke]=nn[Fe]=nn[xe]=nn[Ye]=nn[De]=nn[je]=nn[Ce]=nn[He]=nn[Ae]=nn[Pe]=nn[Ne]=nn[$e]=!1;var rn={};rn[we]=rn[Me]=rn[We]=rn[Fe]=rn[ke]=rn[xe]=rn[ze]=rn[qe]=rn[Be]=rn[Ue]=rn[Ve]=rn[je]=rn[Ce]=rn[He]=rn[Ae]=rn[Pe]=rn[Ne]=rn[Ie]=rn[Je]=rn[Ge]=rn[Xe]=rn[Ze]=!0,rn[Ye]=rn[De]=rn[$e]=!1;var on={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},an=parseFloat,sn=parseInt,un="object"==typeof e&&e&&e.Object===Object&&e,ln="object"==typeof self&&self&&self.Object===Object&&self,dn=un||ln||Function("return this")(),cn="object"==typeof t&&t&&!t.nodeType&&t,fn=cn&&"object"==typeof r&&r&&!r.nodeType&&r,hn=fn&&fn.exports===cn,pn=hn&&un.process,mn=function(){try{return pn&&pn.binding&&pn.binding("util")}catch(e){}}(),_n=mn&&mn.isArrayBuffer,gn=mn&&mn.isDate,yn=mn&&mn.isMap,vn=mn&&mn.isRegExp,bn=mn&&mn.isSet,wn=mn&&mn.isTypedArray,Mn=T("length"),Ln=Y({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),kn=Y({"&":"&","<":"<",">":">",'"':""","'":"'"}),xn=Y({"&":"&","<":"<",">":">",""":'"',"'":"'"}),Tn=function e(t){function n(e){if(ro(e)&&!Gs(e)&&!(e instanceof Y)){if(e instanceof i)return e;if(Jo.call(e,"__wrapped__"))return Si(e)}return new i(e)}function r(){}function i(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=B}function Y(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=ge,this.__views__=[]}function Et(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Qt(e,t,n,r,i,s){var u,d=t&X,c=t&Z,f=t&Q;if(n&&(u=i?n(e,r,i,s):n(e)),u!==B)return u;if(!no(e))return e;var h=Gs(e);if(h){if(u=function(e){var t=e.length,n=e.constructor(t);return t&&"string"==typeof e[0]&&Jo.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!d)return Cr(e,u)}else{var p=is(e),m=p==De||p==Se;if(Zs(e))return xr(e,d);if(p==He||p==we||m&&!i){if(u=c||m?{}:hi(e),!d)return c?function(e,t){return Er(e,rs(e),t)}(e,function(e,t){return e&&Er(t,vo(t),e)}(u,e)):function(e,t){return Er(e,ns(e),t)}(e,Bt(u,e))}else{if(!rn[p])return i?e:{};u=function(e,t,n,r){var i,s,u,l=e.constructor;switch(t){case We:return Tr(e);case ke:case xe:return new l(+e);case Fe:return function(e,t){var n=t?Tr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,r);case ze:case qe:case Be:case Ue:case Ve:case Je:case Ge:case Xe:case Ze:return Yr(e,r);case je:return function(e,t,n){return g(t?n(I(e),X):I(e),o,new e.constructor)}(e,r,n);case Ce:case Ne:return new l(e);case Ae:return(u=new(s=e).constructor(s.source,Lt.exec(s))).lastIndex=s.lastIndex,u;case Pe:return function(e,t,n){return g(t?n(W(e),X):W(e),a,new e.constructor)}(e,r,n);case Ie:return i=e,za?Ro(za.call(i)):{}}}(e,p,Qt,d)}}s||(s=new Pt);var _=s.get(e);if(_)return _;s.set(e,u);var y=h?B:(f?c?oi:ii:c?vo:yo)(e);return l(y||e,function(r,i){y&&(r=e[i=r]),Ft(u,i,Qt(r,t,n,i,e,s))}),u}function on(e,t,n){var r=n.length;if(null==e)return!r;for(e=Ro(e);r--;){var i=n[r],o=t[i],a=e[i];if(a===B&&!(i in e)||!o(a))return!1}return!0}function un(e,t,n){if("function"!=typeof e)throw new Fo(V);return ss(function(){e.apply(B,n)},t)}function ln(e,t,n,r){var i=-1,o=h,a=!0,s=e.length,u=[],l=t.length;if(!s)return u;n&&(t=m(t,C(n))),r?(o=p,a=!1):t.length>=U&&(o=H,a=!1,t=new At(t));e:for(;++i0&&n(s)?t>1?mn(s,t-1,n,r,i):_(i,s):r||(i[i.length]=s)}return i}function Mn(e,t){return e&&Ja(e,t,yo)}function Yn(e,t){return e&&Ga(e,t,yo)}function Dn(e,t){return f(t,function(t){return Ki(e[t])})}function Sn(e,t){for(var n=0,r=(t=Lr(t,e)).length;null!=e&&nt}function Hn(e,t){return null!=e&&Jo.call(e,t)}function On(e,t){return null!=e&&t in Ro(e)}function An(e,t,n){for(var r=n?p:h,i=e[0].length,o=e.length,a=o,s=Oo(o),u=1/0,l=[];a--;){var d=e[a];a&&t&&(d=m(d,C(t))),u=ka(d.length,u),s[a]=!n&&(t||i>=120&&d.length>=120)?new At(a&&d):B}d=e[0];var c=-1,f=s[0];e:for(;++c=s)return u;return u*("desc"==n[r]?-1:1)}}return e.index-t.index}(e,t,n)})}function Zn(e,t,n){for(var r=-1,i=t.length,o={};++r-1;)s!==e&&ua.call(s,u,1),ua.call(e,u,1);return e}function Kn(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==o){var o=i;mi(i)?ua.call(e,i,1):mr(e,i)}}return e}function er(e,t){return e+ga(Ya()*(t-e+1))}function tr(e,t){var n="";if(!e||t<1||t>pe)return n;do{t%2&&(n+=e),(t=ga(t/2))&&(e+=e)}while(t);return n}function nr(e,t){return us(Mi(e,t,To),e+"")}function rr(e){return It(wo(e))}function ir(e,t){var n=wo(e);return Ti(n,Xt(t,0,n.length))}function or(e,t,n,r){if(!no(e))return e;for(var i=-1,o=(t=Lr(t,e)).length,a=o-1,s=e;null!=s&&++ii?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Oo(i);++r>>1,a=e[o];null!==a&&!so(a)&&(n?a<=t:a=U){var l=t?null:es(e);if(l)return W(l);a=!1,i=H,u=new At}else u=t?[]:s;e:for(;++r=r?e:sr(e,t,n)}function xr(e,t){if(t)return e.slice();var n=e.length,r=ia?ia(n):new e.constructor(n);return e.copy(r),r}function Tr(e){var t=new e.constructor(e.byteLength);return new ra(t).set(new ra(e)),t}function Yr(e,t){var n=t?Tr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Dr(e,t){if(e!==t){var n=e!==B,r=null===e,i=e==e,o=so(e),a=t!==B,s=null===t,u=t==t,l=so(t);if(!s&&!l&&!o&&e>t||o&&a&&u&&!s&&!l||r&&a&&u||!n&&u||!i)return 1;if(!r&&!o&&!l&&e1?n[i-1]:B,a=i>2?n[2]:B;for(o=e.length>3&&"function"==typeof o?(i--,o):B,a&&_i(n[0],n[1],a)&&(o=i<3?B:o,i=1),t=Ro(t);++r-1?i[o?t[a]:a]:B}}function Wr(e){return ri(function(t){var n=t.length,r=n,o=i.prototype.thru;for(e&&t.reverse();r--;){var a=t[r];if("function"!=typeof a)throw new Fo(V);if(o&&!s&&"wrapper"==ai(a))var s=new i([],!0)}for(r=s?r:n;++r1&&y.reverse(),d&&us))return!1;var l=o.get(e);if(l&&o.get(t))return l==t;var d=-1,c=!0,f=n&ee?new At:B;for(o.set(e,t),o.set(t,e);++d-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(gt,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return l(be,function(n){var r="_."+n[0];t&n[1]&&!h(e,r)&&e.push(r)}),e.sort()}(function(e){var t=e.match(yt);return t?t[1].split(vt):[]}(r),n)))}function xi(e){var t=0,n=0;return function(){var r=xa(),i=fe-(r-n);if(n=r,i>0){if(++t>=ce)return arguments[0]}else t=0;return e.apply(B,arguments)}}function Ti(e,t){var n=-1,r=e.length,i=r-1;for(t=t===B?r:t;++n0&&(n=t.apply(this,arguments)),e<=1&&(t=B),n}}function Ui(e,t,n){function r(t){var n=u,r=l;return u=l=B,p=t,c=e.apply(r,n)}function i(e){var n=e-h;return h===B||n>=t||n<0||_&&e-p>=d}function o(){var e=Ps();if(i(e))return a(e);f=ss(o,function(e){var n=t-(e-h);return _?ka(n,d-(e-p)):n}(e))}function a(e){return f=B,g&&u?r(e):(u=l=B,c)}function s(){var e=Ps(),n=i(e);if(u=arguments,l=this,h=e,n){if(f===B)return function(e){return p=e,f=ss(o,t),m?r(e):c}(h);if(_)return f=ss(o,t),r(h)}return f===B&&(f=ss(o,t)),c}var u,l,d,c,f,h,p=0,m=!1,_=!1,g=!0;if("function"!=typeof e)throw new Fo(V);return t=ho(t)||0,no(n)&&(m=!!n.leading,d=(_="maxWait"in n)?La(ho(n.maxWait)||0,t):d,g="trailing"in n?!!n.trailing:g),s.cancel=function(){f!==B&&Ka(f),p=0,u=h=l=f=B},s.flush=function(){return f===B?c:a(Ps())},s}function Vi(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Fo(V);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(Vi.Cache||Ot),n}function Ji(e){if("function"!=typeof e)throw new Fo(V);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function Gi(e,t){return e===t||e!=e&&t!=t}function Xi(e){return null!=e&&to(e.length)&&!Ki(e)}function Zi(e){return ro(e)&&Xi(e)}function Qi(e){if(!ro(e))return!1;var t=Cn(e);return t==Ye||t==Te||"string"==typeof e.message&&"string"==typeof e.name&&!oo(e)}function Ki(e){if(!no(e))return!1;var t=Cn(e);return t==De||t==Se||t==Le||t==Oe}function eo(e){return"number"==typeof e&&e==co(e)}function to(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=pe}function no(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function ro(e){return null!=e&&"object"==typeof e}function io(e){return"number"==typeof e||ro(e)&&Cn(e)==Ce}function oo(e){if(!ro(e)||Cn(e)!=He)return!1;var t=oa(e);if(null===t)return!0;var n=Jo.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Vo.call(n)==Qo}function ao(e){return"string"==typeof e||!Gs(e)&&ro(e)&&Cn(e)==Ne}function so(e){return"symbol"==typeof e||ro(e)&&Cn(e)==Ie}function uo(e){if(!e)return[];if(Xi(e))return ao(e)?q(e):Cr(e);if(da&&e[da])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[da]());var t=is(e);return(t==je?I:t==Pe?W:wo)(e)}function lo(e){return e?(e=ho(e))===he||e===-he?(e<0?-1:1)*me:e==e?e:0:0===e?e:0}function co(e){var t=lo(e),n=t%1;return t==t?n?t-n:t:0}function fo(e){return e?Xt(co(e),0,ge):0}function ho(e){if("number"==typeof e)return e;if(so(e))return _e;if(no(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=no(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(pt,"");var n=xt.test(e);return n||Yt.test(e)?sn(e.slice(2),n?2:8):kt.test(e)?_e:+e}function po(e){return Er(e,vo(e))}function mo(e){return null==e?"":hr(e)}function _o(e,t,n){var r=null==e?B:Sn(e,t);return r===B?n:r}function go(e,t){return null!=e&&fi(e,t,On)}function yo(e){return Xi(e)?Nt(e):Fn(e)}function vo(e){return Xi(e)?Nt(e,!0):zn(e)}function bo(e,t){if(null==e)return{};var n=m(oi(e),function(e){return[e]});return t=ui(t),Zn(e,n,function(e,n){return t(e,n[0])})}function wo(e){return null==e?[]:E(e,yo(e))}function Mo(e){return Du(mo(e).toLowerCase())}function Lo(e){return(e=mo(e))&&e.replace(St,Ln).replace(Gt,"")}function ko(e,t,n){return e=mo(e),(t=n?B:t)===B?function(e){return Kt.test(e)}(e)?function(e){return e.match(Zt)||[]}(e):function(e){return e.match(bt)||[]}(e):e.match(t)||[]}function xo(e){return function(){return e}}function To(e){return e}function Yo(e){return Wn("function"==typeof e?e:Qt(e,X))}function Do(e,t,n){var r=yo(t),i=Dn(t,r);null!=n||no(t)&&(i.length||!r.length)||(n=t,t=e,e=this,i=Dn(t,yo(t)));var o=!(no(n)&&"chain"in n&&!n.chain),a=Ki(e);return l(i,function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__);return(n.__actions__=Cr(this.__actions__)).push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,_([this.value()],arguments))})}),e}function So(){}function jo(e){return gi(e)?T(Yi(e)):function(e){return function(t){return Sn(t,e)}}(e)}function Co(){return[]}function Eo(){return!1}var Ho,Oo=(t=null==t?dn:Tn.defaults(dn.Object(),t,Tn.pick(dn,en))).Array,Ao=t.Date,Po=t.Error,No=t.Function,Io=t.Math,Ro=t.Object,$o=t.RegExp,Wo=t.String,Fo=t.TypeError,zo=Oo.prototype,qo=No.prototype,Bo=Ro.prototype,Uo=t["__core-js_shared__"],Vo=qo.toString,Jo=Bo.hasOwnProperty,Go=0,Xo=(Ho=/[^.]+$/.exec(Uo&&Uo.keys&&Uo.keys.IE_PROTO||""))?"Symbol(src)_1."+Ho:"",Zo=Bo.toString,Qo=Vo.call(Ro),Ko=dn._,ea=$o("^"+Vo.call(Jo).replace(ft,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ta=hn?t.Buffer:B,na=t.Symbol,ra=t.Uint8Array,ia=ta?ta.allocUnsafe:B,oa=R(Ro.getPrototypeOf,Ro),aa=Ro.create,sa=Bo.propertyIsEnumerable,ua=zo.splice,la=na?na.isConcatSpreadable:B,da=na?na.iterator:B,ca=na?na.toStringTag:B,fa=function(){try{var e=ci(Ro,"defineProperty");return e({},"",{}),e}catch(e){}}(),ha=t.clearTimeout!==dn.clearTimeout&&t.clearTimeout,pa=Ao&&Ao.now!==dn.Date.now&&Ao.now,ma=t.setTimeout!==dn.setTimeout&&t.setTimeout,_a=Io.ceil,ga=Io.floor,ya=Ro.getOwnPropertySymbols,va=ta?ta.isBuffer:B,ba=t.isFinite,wa=zo.join,Ma=R(Ro.keys,Ro),La=Io.max,ka=Io.min,xa=Ao.now,Ta=t.parseInt,Ya=Io.random,Da=zo.reverse,Sa=ci(t,"DataView"),ja=ci(t,"Map"),Ca=ci(t,"Promise"),Ea=ci(t,"Set"),Ha=ci(t,"WeakMap"),Oa=ci(Ro,"create"),Aa=Ha&&new Ha,Pa={},Na=Di(Sa),Ia=Di(ja),Ra=Di(Ca),$a=Di(Ea),Wa=Di(Ha),Fa=na?na.prototype:B,za=Fa?Fa.valueOf:B,qa=Fa?Fa.toString:B,Ba=function(){function e(){}return function(t){if(!no(t))return{};if(aa)return aa(t);e.prototype=t;var n=new e;return e.prototype=B,n}}();n.templateSettings={escape:ot,evaluate:at,interpolate:st,variable:"",imports:{_:n}},n.prototype=r.prototype,n.prototype.constructor=n,i.prototype=Ba(r.prototype),i.prototype.constructor=i,Y.prototype=Ba(r.prototype),Y.prototype.constructor=Y,Et.prototype.clear=function(){this.__data__=Oa?Oa(null):{},this.size=0},Et.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Et.prototype.get=function(e){var t=this.__data__;if(Oa){var n=t[e];return n===J?B:n}return Jo.call(t,e)?t[e]:B},Et.prototype.has=function(e){var t=this.__data__;return Oa?t[e]!==B:Jo.call(t,e)},Et.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Oa&&t===B?J:t,this},Ht.prototype.clear=function(){this.__data__=[],this.size=0},Ht.prototype.delete=function(e){var t=this.__data__,n=zt(t,e);return!(n<0||(n==t.length-1?t.pop():ua.call(t,n,1),--this.size,0))},Ht.prototype.get=function(e){var t=this.__data__,n=zt(t,e);return n<0?B:t[n][1]},Ht.prototype.has=function(e){return zt(this.__data__,e)>-1},Ht.prototype.set=function(e,t){var n=this.__data__,r=zt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Ot.prototype.clear=function(){this.size=0,this.__data__={hash:new Et,map:new(ja||Ht),string:new Et}},Ot.prototype.delete=function(e){var t=li(this,e).delete(e);return this.size-=t?1:0,t},Ot.prototype.get=function(e){return li(this,e).get(e)},Ot.prototype.has=function(e){return li(this,e).has(e)},Ot.prototype.set=function(e,t){var n=li(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},At.prototype.add=At.prototype.push=function(e){return this.__data__.set(e,J),this},At.prototype.has=function(e){return this.__data__.has(e)},Pt.prototype.clear=function(){this.__data__=new Ht,this.size=0},Pt.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Pt.prototype.get=function(e){return this.__data__.get(e)},Pt.prototype.has=function(e){return this.__data__.has(e)},Pt.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ht){var r=n.__data__;if(!ja||r.length1?e[t-1]:B;return Ii(e,n="function"==typeof n?(e.pop(),n):B)}),Ys=ri(function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,o=function(t){return Vt(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Y&&mi(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:$i,args:[o],thisArg:B}),new i(r,this.__chain__).thru(function(e){return t&&!e.length&&e.push(B),e})):this.thru(o)}),Ds=Hr(function(e,t,n){Jo.call(e,n)?++e[n]:Ut(e,n,1)}),Ss=$r(ji),js=$r(Ci),Cs=Hr(function(e,t,n){Jo.call(e,n)?e[n].push(t):Ut(e,n,[t])}),Es=nr(function(e,t,n){var r=-1,i="function"==typeof t,o=Xi(e)?Oo(e.length):[];return Ua(e,function(e){o[++r]=i?s(t,e,n):Pn(e,t,n)}),o}),Hs=Hr(function(e,t,n){Ut(e,n,t)}),Os=Hr(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]}),As=nr(function(e,t){if(null==e)return[];var n=t.length;return n>1&&_i(e,t[0],t[1])?t=[]:n>2&&_i(t[0],t[1],t[2])&&(t=[t[0]]),Xn(e,mn(t,1),[])}),Ps=pa||function(){return dn.Date.now()},Ns=nr(function(e,t,n){var r=te;if(n.length){var i=$(n,si(Ns));r|=ae}return Qr(e,r,t,n,i)}),Is=nr(function(e,t,n){var r=te|ne;if(n.length){var i=$(n,si(Is));r|=ae}return Qr(t,r,e,n,i)}),Rs=nr(function(e,t){return un(e,1,t)}),$s=nr(function(e,t,n){return un(e,ho(t)||0,n)});Vi.Cache=Ot;var Ws,Fs=Qa(function(e,t){var n=(t=1==t.length&&Gs(t[0])?m(t[0],C(ui())):m(mn(t,1),C(ui()))).length;return nr(function(r){for(var i=-1,o=ka(r.length,n);++i=t}),Js=Nn(function(){return arguments}())?Nn:function(e){return ro(e)&&Jo.call(e,"callee")&&!sa.call(e,"callee")},Gs=Oo.isArray,Xs=_n?C(_n):function(e){return ro(e)&&Cn(e)==We},Zs=va||Eo,Qs=gn?C(gn):function(e){return ro(e)&&Cn(e)==xe},Ks=yn?C(yn):function(e){return ro(e)&&is(e)==je},eu=vn?C(vn):function(e){return ro(e)&&Cn(e)==Ae},tu=bn?C(bn):function(e){return ro(e)&&is(e)==Pe},nu=wn?C(wn):function(e){return ro(e)&&to(e.length)&&!!nn[Cn(e)]},ru=Jr(qn),iu=Jr(function(e,t){return e<=t}),ou=Or(function(e,t){if(vi(t)||Xi(t))Er(t,yo(t),e);else for(var n in t)Jo.call(t,n)&&Ft(e,n,t[n])}),au=Or(function(e,t){Er(t,vo(t),e)}),su=Or(function(e,t,n,r){Er(t,vo(t),e,r)}),uu=Or(function(e,t,n,r){Er(t,yo(t),e,r)}),lu=ri(Vt),du=nr(function(e){return e.push(B,Kr),s(su,B,e)}),cu=nr(function(e){return e.push(B,ei),s(_u,B,e)}),fu=zr(function(e,t,n){e[t]=n},xo(To)),hu=zr(function(e,t,n){Jo.call(e,t)?e[t].push(n):e[t]=[n]},ui),pu=nr(Pn),mu=Or(function(e,t,n){Jn(e,t,n)}),_u=Or(function(e,t,n,r){Jn(e,t,n,r)}),gu=ri(function(e,t){var n={};if(null==e)return n;var r=!1;t=m(t,function(t){return t=Lr(t,e),r||(r=t.length>1),t}),Er(e,oi(e),n),r&&(n=Qt(n,X|Z|Q,ti));for(var i=t.length;i--;)mr(n,t[i]);return n}),yu=ri(function(e,t){return null==e?{}:function(e,t){return Zn(e,t,function(t,n){return go(e,n)})}(e,t)}),vu=Zr(yo),bu=Zr(vo),wu=Ir(function(e,t,n){return t=t.toLowerCase(),e+(n?Mo(t):t)}),Mu=Ir(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),Lu=Ir(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),ku=Nr("toLowerCase"),xu=Ir(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}),Tu=Ir(function(e,t,n){return e+(n?" ":"")+Du(t)}),Yu=Ir(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()}),Du=Nr("toUpperCase"),Su=nr(function(e,t){try{return s(e,B,t)}catch(e){return Qi(e)?e:new Po(e)}}),ju=ri(function(e,t){return l(t,function(t){t=Yi(t),Ut(e,t,Ns(e[t],e))}),e}),Cu=Wr(),Eu=Wr(!0),Hu=nr(function(e,t){return function(n){return Pn(n,e,t)}}),Ou=nr(function(e,t){return function(n){return Pn(e,n,t)}}),Au=Br(m),Pu=Br(c),Nu=Br(v),Iu=Vr(),Ru=Vr(!0),$u=qr(function(e,t){return e+t},0),Wu=Xr("ceil"),Fu=qr(function(e,t){return e/t},1),zu=Xr("floor"),qu=qr(function(e,t){return e*t},1),Bu=Xr("round"),Uu=qr(function(e,t){return e-t},0);return n.after=function(e,t){if("function"!=typeof t)throw new Fo(V);return e=co(e),function(){if(--e<1)return t.apply(this,arguments)}},n.ary=qi,n.assign=ou,n.assignIn=au,n.assignInWith=su,n.assignWith=uu,n.at=lu,n.before=Bi,n.bind=Ns,n.bindAll=ju,n.bindKey=Is,n.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Gs(e)?e:[e]},n.chain=Ri,n.chunk=function(e,t,n){t=(n?_i(e,t,n):t===B)?1:La(co(t),0);var r=null==e?0:e.length;if(!r||t<1)return[];for(var i=0,o=0,a=Oo(_a(r/t));ii?0:i+n),(r=r===B||r>i?i:co(r))<0&&(r+=i),r=n>r?0:fo(r);n>>0)?(e=mo(e))&&("string"==typeof t||null!=t&&!eu(t))&&!(t=hr(t))&&N(e)?kr(q(e),0,n):e.split(t,n):[]},n.spread=function(e,t){if("function"!=typeof e)throw new Fo(V);return t=null==t?0:La(co(t),0),nr(function(n){var r=n[t],i=kr(n,0,t);return r&&_(i,r),s(e,this,i)})},n.tail=function(e){var t=null==e?0:e.length;return t?sr(e,1,t):[]},n.take=function(e,t,n){return e&&e.length?sr(e,0,(t=n||t===B?1:co(t))<0?0:t):[]},n.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?sr(e,(t=r-(t=n||t===B?1:co(t)))<0?0:t,r):[]},n.takeRightWhile=function(e,t){return e&&e.length?gr(e,ui(t,3),!1,!0):[]},n.takeWhile=function(e,t){return e&&e.length?gr(e,ui(t,3)):[]},n.tap=function(e,t){return t(e),e},n.throttle=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new Fo(V);return no(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Ui(e,t,{leading:r,maxWait:t,trailing:i})},n.thru=$i,n.toArray=uo,n.toPairs=vu,n.toPairsIn=bu,n.toPath=function(e){return Gs(e)?m(e,Yi):so(e)?[e]:Cr(ls(mo(e)))},n.toPlainObject=po,n.transform=function(e,t,n){var r=Gs(e),i=r||Zs(e)||nu(e);if(t=ui(t,4),null==n){var o=e&&e.constructor;n=i?r?new o:[]:no(e)&&Ki(o)?Ba(oa(e)):{}}return(i?l:Mn)(e,function(e,r,i){return t(n,e,r,i)}),n},n.unary=function(e){return qi(e,1)},n.union=ys,n.unionBy=vs,n.unionWith=bs,n.uniq=function(e){return e&&e.length?pr(e):[]},n.uniqBy=function(e,t){return e&&e.length?pr(e,ui(t,2)):[]},n.uniqWith=function(e,t){return t="function"==typeof t?t:B,e&&e.length?pr(e,B,t):[]},n.unset=function(e,t){return null==e||mr(e,t)},n.unzip=Ni,n.unzipWith=Ii,n.update=function(e,t,n){return null==e?e:_r(e,t,Mr(n))},n.updateWith=function(e,t,n,r){return r="function"==typeof r?r:B,null==e?e:_r(e,t,Mr(n),r)},n.values=wo,n.valuesIn=function(e){return null==e?[]:E(e,vo(e))},n.without=ws,n.words=ko,n.wrap=function(e,t){return zs(Mr(t),e)},n.xor=Ms,n.xorBy=Ls,n.xorWith=ks,n.zip=xs,n.zipObject=function(e,t){return br(e||[],t||[],Ft)},n.zipObjectDeep=function(e,t){return br(e||[],t||[],or)},n.zipWith=Ts,n.entries=vu,n.entriesIn=bu,n.extend=au,n.extendWith=su,Do(n,n),n.add=$u,n.attempt=Su,n.camelCase=wu,n.capitalize=Mo,n.ceil=Wu,n.clamp=function(e,t,n){return n===B&&(n=t,t=B),n!==B&&(n=(n=ho(n))==n?n:0),t!==B&&(t=(t=ho(t))==t?t:0),Xt(ho(e),t,n)},n.clone=function(e){return Qt(e,Q)},n.cloneDeep=function(e){return Qt(e,X|Q)},n.cloneDeepWith=function(e,t){return Qt(e,X|Q,t="function"==typeof t?t:B)},n.cloneWith=function(e,t){return Qt(e,Q,t="function"==typeof t?t:B)},n.conformsTo=function(e,t){return null==t||on(e,t,yo(t))},n.deburr=Lo,n.defaultTo=function(e,t){return null==e||e!=e?t:e},n.divide=Fu,n.endsWith=function(e,t,n){e=mo(e),t=hr(t);var r=e.length,i=n=n===B?r:Xt(co(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},n.eq=Gi,n.escape=function(e){return(e=mo(e))&&it.test(e)?e.replace(nt,kn):e},n.escapeRegExp=function(e){return(e=mo(e))&&ht.test(e)?e.replace(ft,"\\$&"):e},n.every=function(e,t,n){var r=Gs(e)?c:cn;return n&&_i(e,t,n)&&(t=B),r(e,ui(t,3))},n.find=Ss,n.findIndex=ji,n.findKey=function(e,t){return b(e,ui(t,3),Mn)},n.findLast=js,n.findLastIndex=Ci,n.findLastKey=function(e,t){return b(e,ui(t,3),Yn)},n.floor=zu,n.forEach=Wi,n.forEachRight=Fi,n.forIn=function(e,t){return null==e?e:Ja(e,ui(t,3),vo)},n.forInRight=function(e,t){return null==e?e:Ga(e,ui(t,3),vo)},n.forOwn=function(e,t){return e&&Mn(e,ui(t,3))},n.forOwnRight=function(e,t){return e&&Yn(e,ui(t,3))},n.get=_o,n.gt=Us,n.gte=Vs,n.has=function(e,t){return null!=e&&fi(e,t,Hn)},n.hasIn=go,n.head=Hi,n.identity=To,n.includes=function(e,t,n,r){e=Xi(e)?e:wo(e),n=n&&!r?co(n):0;var i=e.length;return n<0&&(n=La(i+n,0)),ao(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&M(e,t,n)>-1},n.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:co(n);return i<0&&(i=La(r+i,0)),M(e,t,i)},n.inRange=function(e,t,n){return t=lo(t),n===B?(n=t,t=0):n=lo(n),function(e,t,n){return e>=ka(t,n)&&e=-pe&&e<=pe},n.isSet=tu,n.isString=ao,n.isSymbol=so,n.isTypedArray=nu,n.isUndefined=function(e){return e===B},n.isWeakMap=function(e){return ro(e)&&is(e)==$e},n.isWeakSet=function(e){return ro(e)&&"[object WeakSet]"==Cn(e)},n.join=function(e,t){return null==e?"":wa.call(e,t)},n.kebabCase=Mu,n.last=Oi,n.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return n!==B&&(i=(i=co(n))<0?La(r+i,0):ka(i,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,i):w(e,k,i,!0)},n.lowerCase=Lu,n.lowerFirst=ku,n.lt=ru,n.lte=iu,n.max=function(e){return e&&e.length?fn(e,To,En):B},n.maxBy=function(e,t){return e&&e.length?fn(e,ui(t,2),En):B},n.mean=function(e){return x(e,To)},n.meanBy=function(e,t){return x(e,ui(t,2))},n.min=function(e){return e&&e.length?fn(e,To,qn):B},n.minBy=function(e,t){return e&&e.length?fn(e,ui(t,2),qn):B},n.stubArray=Co,n.stubFalse=Eo,n.stubObject=function(){return{}},n.stubString=function(){return""},n.stubTrue=function(){return!0},n.multiply=qu,n.nth=function(e,t){return e&&e.length?Gn(e,co(t)):B},n.noConflict=function(){return dn._===this&&(dn._=Ko),this},n.noop=So,n.now=Ps,n.pad=function(e,t,n){e=mo(e);var r=(t=co(t))?z(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return Ur(ga(i),n)+e+Ur(_a(i),n)},n.padEnd=function(e,t,n){e=mo(e);var r=(t=co(t))?z(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var i=Ya();return ka(e+i*(t-e+an("1e-"+((i+"").length-1))),t)}return er(e,t)},n.reduce=function(e,t,n){var r=Gs(e)?g:D,i=arguments.length<3;return r(e,ui(t,4),n,i,Ua)},n.reduceRight=function(e,t,n){var r=Gs(e)?y:D,i=arguments.length<3;return r(e,ui(t,4),n,i,Va)},n.repeat=function(e,t,n){return t=(n?_i(e,t,n):t===B)?1:co(t),tr(mo(e),t)},n.replace=function(){var e=arguments,t=mo(e[0]);return e.length<3?t:t.replace(e[1],e[2])},n.result=function(e,t,n){var r=-1,i=(t=Lr(t,e)).length;for(i||(i=1,e=B);++rpe)return[];var n=ge,r=ka(e,ge);t=ui(t),e-=ge;for(var i=j(r,t);++n=o)return e;var s=n-z(r);if(s<1)return r;var u=a?kr(a,0,s).join(""):e.slice(0,s);if(i===B)return u+r;if(a&&(s+=u.length-s),eu(i)){if(e.slice(s).search(i)){var l,d=u;for(i.global||(i=$o(i.source,mo(Lt.exec(i))+"g")),i.lastIndex=0;l=i.exec(d);)var c=l.index;u=u.slice(0,c===B?s:c)}}else if(e.indexOf(hr(i),s)!=s){var f=u.lastIndexOf(i);f>-1&&(u=u.slice(0,f))}return u+r},n.unescape=function(e){return(e=mo(e))&&rt.test(e)?e.replace(tt,xn):e},n.uniqueId=function(e){var t=++Go;return mo(e)+t},n.upperCase=Yu,n.upperFirst=Du,n.each=Wi,n.eachRight=Fi,n.first=Hi,Do(n,(Ws={},Mn(n,function(e,t){Jo.call(n.prototype,t)||(Ws[t]=e)}),Ws),{chain:!1}),n.VERSION="4.17.4",l(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){n[e].placeholder=n}),l(["drop","take"],function(e,t){Y.prototype[e]=function(n){n=n===B?1:La(co(n),0);var r=this.__filtered__&&!t?new Y(this):this.clone();return r.__filtered__?r.__takeCount__=ka(n,r.__takeCount__):r.__views__.push({size:ka(n,ge),type:e+(r.__dir__<0?"Right":"")}),r},Y.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),l(["filter","map","takeWhile"],function(e,t){var n=t+1,r=1==n||3==n;Y.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:ui(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}}),l(["head","last"],function(e,t){var n="take"+(t?"Right":"");Y.prototype[e]=function(){return this[n](1).value()[0]}}),l(["initial","tail"],function(e,t){var n="drop"+(t?"":"Right");Y.prototype[e]=function(){return this.__filtered__?new Y(this):this[n](1)}}),Y.prototype.compact=function(){return this.filter(To)},Y.prototype.find=function(e){return this.filter(e).head()},Y.prototype.findLast=function(e){return this.reverse().find(e)},Y.prototype.invokeMap=nr(function(e,t){return"function"==typeof e?new Y(this):this.map(function(n){return Pn(n,e,t)})}),Y.prototype.reject=function(e){return this.filter(Ji(ui(e)))},Y.prototype.slice=function(e,t){e=co(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Y(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==B&&(n=(t=co(t))<0?n.dropRight(-t):n.take(t-e)),n)},Y.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Y.prototype.toArray=function(){return this.take(ge)},Mn(Y.prototype,function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),o=/^(?:head|last)$/.test(t),a=n[o?"take"+("last"==t?"Right":""):t],s=o||/^find/.test(t);a&&(n.prototype[t]=function(){var t=this.__wrapped__,u=o?[1]:arguments,l=t instanceof Y,d=u[0],c=l||Gs(t),f=function(e){var t=a.apply(n,_([e],u));return o&&h?t[0]:t};c&&r&&"function"==typeof d&&1!=d.length&&(l=c=!1);var h=this.__chain__,p=!!this.__actions__.length,m=s&&!h,g=l&&!p;if(!s&&c){t=g?t:new Y(this);var y=e.apply(t,u);return y.__actions__.push({func:$i,args:[f],thisArg:B}),new i(y,h)}return m&&g?e.apply(this,u):(y=this.thru(f),m?o?y.value()[0]:y.value():y)})}),l(["pop","push","shift","sort","splice","unshift"],function(e){var t=zo[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);n.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var n=this.value();return t.apply(Gs(n)?n:[],e)}return this[r](function(n){return t.apply(Gs(n)?n:[],e)})}}),Mn(Y.prototype,function(e,t){var r=n[t];if(r){var i=r.name+"";(Pa[i]||(Pa[i]=[])).push({name:t,func:r})}}),Pa[Fr(B,ne).name]=[{name:"wrapper",func:B}],Y.prototype.clone=function(){var e=new Y(this.__wrapped__);return e.__actions__=Cr(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Cr(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Cr(this.__views__),e},Y.prototype.reverse=function(){if(this.__filtered__){var e=new Y(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Y.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Gs(e),r=t<0,i=n?e.length:0,o=function(e,t,n){for(var r=-1,i=n.length;++r=this.__values__.length;return{done:e,value:e?B:this.__values__[this.__index__++]}},n.prototype.plant=function(e){for(var t,n=this;n instanceof r;){var i=Si(n);i.__index__=0,i.__values__=B,t?o.__wrapped__=i:t=i;var o=i;n=n.__wrapped__}return o.__wrapped__=e,t},n.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Y){var t=e;return this.__actions__.length&&(t=new Y(this)),(t=t.reverse()).__actions__.push({func:$i,args:[Pi],thisArg:B}),new i(t,this.__chain__)}return this.thru(Pi)},n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=function(){return yr(this.__wrapped__,this.__actions__)},n.prototype.first=n.prototype.head,da&&(n.prototype[da]=function(){return this}),n}();dn._=Tn,(i=function(){return Tn}.call(t,n,t,r))===B||(r.exports=i)}).call(this)}).call(t,n(9),n(14)(e))},,function(e,t,n){e.exports=n(155)},function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r "+t+") {","args = new Array(arguments.length + 1);","for (var i = 0; i < arguments.length; i++) {","args[i] = arguments[i];","}","}","return new Promise(function (rs, rj) {","var cb = "+o+";","var res;","switch (argLength) {",n.concat(["extra"]).map(function(e,t){return"case "+t+":res = fn.call("+["self"].concat(n.slice(0,t)).concat("cb").join(",")+");break;"}).join(""),"default:","args[argLength] = cb;","res = fn.apply(self, args);","}","if (res &&",'(typeof res === "object" || typeof res === "function") &&','typeof res.then === "function"',") {rs(res);}","});","};"].join("");return Function(["Promise","fn"],a)(r,e)}(e)};var o="function (err, res) {if (err) { rj(err); } else { rs(res); }}";r.nodeify=function(e){return function(){var t=Array.prototype.slice.call(arguments),n="function"==typeof t[t.length-1]?t.pop():null,o=this;try{return e.apply(this,arguments).nodeify(n,o)}catch(e){if(null===n||void 0===n)return new r(function(t,n){n(e)});i(function(){n.call(o,e)})}}},r.prototype.nodeify=function(e,t){if("function"!=typeof e)return this;this.then(function(n){i(function(){e.call(t,null,n)})},function(n){i(function(){e.call(t,n)})})}},function(e,t,n){"use strict";function r(e){var t;(t=a.length?a.pop():new i).task=e,o(t)}function i(){this.task=null}var o=n(12),a=[],s=[],u=o.makeRequestCallFromTimer(function(){if(s.length)throw s.shift()});e.exports=r,i.prototype.call=function(){try{this.task.call()}catch(e){r.onerror?r.onerror(e):(s.push(e),u())}finally{this.task=null,a[a.length]=this}}},function(e,t,n){"use strict";var r=n(6);e.exports=r,r.enableSynchronous=function(){r.prototype.isPending=function(){return 0==this.getState()},r.prototype.isFulfilled=function(){return 1==this.getState()},r.prototype.isRejected=function(){return 2==this.getState()},r.prototype.getValue=function(){if(3===this._65)return this._55.getValue();if(!this.isFulfilled())throw new Error("Cannot get a value of an unfulfilled promise.");return this._55},r.prototype.getReason=function(){if(3===this._65)return this._55.getReason();if(!this.isRejected())throw new Error("Cannot get a rejection reason of a non-rejected promise.");return this._55},r.prototype.getState=function(){return 3===this._65?this._55.getState():-1===this._65||-2===this._65?0:this._65}},r.disableSynchronous=function(){r.prototype.isPending=void 0,r.prototype.isFulfilled=void 0,r.prototype.isRejected=void 0,r.prototype.getValue=void 0,r.prototype.getReason=void 0,r.prototype.getState=void 0}},function(e,t,n){window._=n(13);try{window.$=window.jQuery=n(153),n(154)}catch(e){}window.axios=n(15),window.axios.defaults.headers.common["X-Requested-With"]="XMLHttpRequest";var r=document.head.querySelector('meta[name="token"]');r?window.axios.defaults.headers.common["X-CSRF-TOKEN"]=r.content:console.error("CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token")},function(e,t,n){var r,i,o;i="undefined"!=typeof window?window:this,o=function(n,i){function o(e){var t=!!e&&"length"in e&&e.length,n=te.type(e);return"function"!==n&&!te.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function a(e,t,n){if(te.isFunction(t))return te.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return te.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(ce.test(t))return te.filter(t,e,n);t=te.filter(t,e)}return te.grep(e,function(e){return X.call(t,e)>-1!==n})}function s(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function u(){U.removeEventListener("DOMContentLoaded",u),n.removeEventListener("load",u),te.ready()}function l(){this.expando=te.expando+l.uid++}function d(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Le,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:Me.test(n)?te.parseJSON(n):n)}catch(e){}we.set(e,t,n)}else n=void 0;return n}function c(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return te.css(e,t,"")},u=s(),l=n&&n[3]||(te.cssNumber[t]?"":"px"),d=(te.cssNumber[t]||"px"!==l&&+u)&&xe.exec(te.css(e,t));if(d&&d[3]!==l){l=l||d[3],n=n||[],d=+u||1;do{d/=o=o||".5",te.style(e,t,d+l)}while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(d=+d||+u||0,i=n[1]?d+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=d,r.end=i)),i}function f(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&te.nodeName(e,t)?te.merge([e],n):n}function h(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=te.contains(o.ownerDocument,o),a=f(c.appendChild(o),"script"),l&&h(a),n)for(d=0;o=a[d++];)je.test(o.type||"")&&n.push(o);return c}function m(){return!0}function _(){return!1}function g(){try{return U.activeElement}catch(e){}}function y(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)y(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=_;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return te().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=te.guid++)),e.each(function(){te.event.add(this,t,i,r,n)})}function v(e,t){return te.nodeName(e,"table")&&te.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function b(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function w(e){var t=We.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function M(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(be.hasData(e)&&(o=be.access(e),a=be.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n1&&"string"==typeof m&&!ee.checkClone&&$e.test(m))return e.each(function(i){var o=e.eq(i);_&&(t[0]=m.call(this,i,o.html())),L(o,t,n,r)});if(c&&(o=(i=p(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=te.map(f(i,"script"),b)).length;d")).appendTo(t.documentElement))[0].contentDocument).write(),t.close(),n=x(e,t),ze.detach()),qe[e]=n),n}function Y(e,t,n){var r,i,o,a,s=e.style;return""!==(a=(n=n||Ve(e))?n.getPropertyValue(t)||n[t]:void 0)&&void 0!==a||te.contains(e.ownerDocument,e)||(a=te.style(e,t)),n&&!ee.pixelMarginRight()&&Ue.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0!==a?a+"":a}function D(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}function S(e){if(e in et)return e;for(var t=e[0].toUpperCase()+e.slice(1),n=Ke.length;n--;)if((e=Ke[n]+t)in et)return e}function j(e,t,n){var r=xe.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function C(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;o<4;o+=2)"margin"===n&&(a+=te.css(e,n+Te[o],!0,i)),r?("content"===n&&(a-=te.css(e,"padding"+Te[o],!0,i)),"margin"!==n&&(a-=te.css(e,"border"+Te[o]+"Width",!0,i))):(a+=te.css(e,"padding"+Te[o],!0,i),"padding"!==n&&(a+=te.css(e,"border"+Te[o]+"Width",!0,i)));return a}function E(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Ve(e),a="border-box"===te.css(e,"boxSizing",!1,o);if(i<=0||null==i){if(((i=Y(e,t,o))<0||null==i)&&(i=e.style[t]),Ue.test(i))return i;r=a&&(ee.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+C(e,t,n||(a?"border":"content"),r,o)+"px"}function H(e,t){for(var n,r,i,o=[],a=0,s=e.length;a=0&&n=0},isPlainObject:function(e){var t;if("object"!==te.type(e)||e.nodeType||te.isWindow(e))return!1;if(e.constructor&&!K.call(e,"constructor")&&!K.call(e.constructor.prototype||{},"isPrototypeOf"))return!1;for(t in e);return void 0===t||K.call(e,t)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?Z[Q.call(e)]||"object":typeof e},globalEval:function(e){var t,n=eval;(e=te.trim(e))&&(1===e.indexOf("use strict")?((t=U.createElement("script")).text=e,U.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(re,"ms-").replace(ie,oe) -},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var n,r=0;if(o(e))for(n=e.length;ry.cacheLength&&delete t[e.shift()],t[n+" "]=r}}function r(e){return e[A]=!0,e}function i(e){var t=D.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)y.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||z)-(~e.sourceIndex||z);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e){return e&&void 0!==e.getElementsByTagName&&e}function l(){}function d(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function h(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s-1&&(r[d]=!(s[d]=f))}}else v=h(v===s?v.splice(_,v.length):v),a?a(null,s,v,l):J.apply(s,v)})}function m(e){for(var t,n,r,i=e.length,o=y.relative[e[0].type],a=o||y.relative[" "],s=o?1:0,u=c(function(e){return e===t},a,!0),l=c(function(e){return X(t,e)>-1},a,!0),h=[function(e,n,r){var i=!o&&(r||n!==k)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s1&&f(h),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(re,"$1"),n,s+~]|"+Q+")"+Q+"*"),ae=new RegExp("="+Q+"*([^\\]'\"]*?)"+Q+"*\\]","g"),se=new RegExp(te),ue=new RegExp("^"+K+"$"),le={ID:new RegExp("^#("+K+")"),CLASS:new RegExp("^\\.("+K+")"),TAG:new RegExp("^("+K+"|[*])"),ATTR:new RegExp("^"+ee),PSEUDO:new RegExp("^"+te),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+Q+"*(even|odd|(([+-]|)(\\d*)n|)"+Q+"*(?:([+-]|)"+Q+"*(\\d+)|))"+Q+"*\\)|)","i"),bool:new RegExp("^(?:"+Z+")$","i"),needsContext:new RegExp("^"+Q+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+Q+"*((?:-\\d)?\\d*)"+Q+"*\\)|)(?=[^-]|$)","i")},de=/^(?:input|select|textarea|button)$/i,ce=/^h\d$/i,fe=/^[^{]+\{\s*\[native \w/,he=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,pe=/[+~]/,me=/'|\\/g,_e=new RegExp("\\\\([\\da-f]{1,6}"+Q+"?|("+Q+")|.)","ig"),ge=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},ye=function(){Y()};try{J.apply(B=G.call(P.childNodes),P.childNodes),B[P.childNodes.length].nodeType}catch(e){J={apply:B.length?function(e,t){V.apply(e,G.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}for(_ in g=t.support={},b=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},Y=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:P;return r!==D&&9===r.nodeType&&r.documentElement?(S=(D=r).documentElement,j=!b(D),(n=D.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",ye,!1):n.attachEvent&&n.attachEvent("onunload",ye)),g.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),g.getElementsByTagName=i(function(e){return e.appendChild(D.createComment("")),!e.getElementsByTagName("*").length}),g.getElementsByClassName=fe.test(D.getElementsByClassName),g.getById=i(function(e){return S.appendChild(e).id=A,!D.getElementsByName||!D.getElementsByName(A).length}),g.getById?(y.find.ID=function(e,t){if(void 0!==t.getElementById&&j){var n=t.getElementById(e);return n?[n]:[]}},y.filter.ID=function(e){var t=e.replace(_e,ge);return function(e){return e.getAttribute("id")===t}}):(delete y.find.ID,y.filter.ID=function(e){var t=e.replace(_e,ge);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),y.find.TAG=g.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):g.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},y.find.CLASS=g.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&j)return t.getElementsByClassName(e)},E=[],C=[],(g.qsa=fe.test(D.querySelectorAll))&&(i(function(e){S.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&C.push("[*^$]="+Q+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||C.push("\\["+Q+"*(?:value|"+Z+")"),e.querySelectorAll("[id~="+A+"-]").length||C.push("~="),e.querySelectorAll(":checked").length||C.push(":checked"),e.querySelectorAll("a#"+A+"+*").length||C.push(".#.+[+~]")}),i(function(e){var t=D.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&C.push("name"+Q+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||C.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),C.push(",.*:")})),(g.matchesSelector=fe.test(H=S.matches||S.webkitMatchesSelector||S.mozMatchesSelector||S.oMatchesSelector||S.msMatchesSelector))&&i(function(e){g.disconnectedMatch=H.call(e,"div"),H.call(e,"[s!='']:x"),E.push("!=",te)}),C=C.length&&new RegExp(C.join("|")),E=E.length&&new RegExp(E.join("|")),t=fe.test(S.compareDocumentPosition),O=t||fe.test(S.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},F=t?function(e,t){if(e===t)return T=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!g.sortDetached&&t.compareDocumentPosition(e)===n?e===D||e.ownerDocument===P&&O(P,e)?-1:t===D||t.ownerDocument===P&&O(P,t)?1:x?X(x,e)-X(x,t):0:4&n?-1:1)}:function(e,t){if(e===t)return T=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===D?-1:t===D?1:i?-1:o?1:x?X(x,e)-X(x,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===P?-1:u[r]===P?1:0},D):D},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==D&&Y(e),n=n.replace(ae,"='$1']"),g.matchesSelector&&j&&!W[n+" "]&&(!E||!E.test(n))&&(!C||!C.test(n)))try{var r=H.call(e,n);if(r||g.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,D,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==D&&Y(e),O(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==D&&Y(e);var n=y.attrHandle[t.toLowerCase()],r=n&&q.call(y.attrHandle,t.toLowerCase())?n(e,t,!j):void 0;return void 0!==r?r:g.attributes||!j?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(T=!g.detectDuplicates,x=!g.sortStable&&e.slice(0),e.sort(F),T){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return x=null,e},v=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=v(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=v(t);return n},(y=t.selectors={cacheLength:50,createPseudo:r,match:le,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(_e,ge),e[3]=(e[3]||e[4]||e[5]||"").replace(_e,ge),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return le.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&se.test(n)&&(t=w(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(_e,ge).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=R[e+" "];return t||(t=new RegExp("(^|"+Q+")"+e+"("+Q+"|$)"))&&R(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ne," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,d,c,f,h,p,m=o!==a?"nextSibling":"previousSibling",_=t.parentNode,g=s&&t.nodeName.toLowerCase(),y=!u&&!s,v=!1;if(_){if(o){for(;m;){for(f=t;f=f[m];)if(s?f.nodeName.toLowerCase()===g:1===f.nodeType)return!1;p=m="only"===e&&!p&&"nextSibling"}return!0}if(p=[a?_.firstChild:_.lastChild],a&&y){for(v=(h=(l=(d=(c=(f=_)[A]||(f[A]={}))[f.uniqueID]||(c[f.uniqueID]={}))[e]||[])[0]===N&&l[1])&&l[2],f=h&&_.childNodes[h];f=++h&&f&&f[m]||(v=h=0)||p.pop();)if(1===f.nodeType&&++v&&f===t){d[e]=[N,h,v];break}}else if(y&&(v=h=(l=(d=(c=(f=t)[A]||(f[A]={}))[f.uniqueID]||(c[f.uniqueID]={}))[e]||[])[0]===N&&l[1]),!1===v)for(;(f=++h&&f&&f[m]||(v=h=0)||p.pop())&&((s?f.nodeName.toLowerCase()!==g:1!==f.nodeType)||!++v||(y&&((d=(c=f[A]||(f[A]={}))[f.uniqueID]||(c[f.uniqueID]={}))[e]=[N,v]),f!==t)););return(v-=i)===r||v%r==0&&v/r>=0}}},PSEUDO:function(e,n){var i,o=y.pseudos[e]||y.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[A]?o(n):o.length>1?(i=[e,e,"",n],y.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)e[r=X(e,i[a])]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=M(e.replace(re,"$1"));return i[A]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(_e,ge),function(t){return(t.textContent||t.innerText||v(t)).indexOf(e)>-1}}),lang:r(function(e){return ue.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(_e,ge).toLowerCase(),function(t){var n;do{if(n=j?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===S},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!y.pseudos.empty(e)},header:function(e){return ce.test(e.nodeName)},input:function(e){return de.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:s(function(){return[0]}),last:s(function(e,t){return[t-1]}),eq:s(function(e,t,n){return[n<0?n+t:n]}),even:s(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:s(function(e,t,n){for(var r=n<0?n+t:n;++r0,o=e.length>0,a=function(r,a,s,u,l){var d,c,f,p=0,m="0",_=r&&[],g=[],v=k,b=r||o&&y.find.TAG("*",l),w=N+=null==v?1:Math.random()||.1,M=b.length;for(l&&(k=a===D||a||l);m!==M&&null!=(d=b[m]);m++){if(o&&d){for(c=0,a||d.ownerDocument===D||(Y(d),s=!j);f=e[c++];)if(f(d,a||D,s)){u.push(d);break}l&&(N=w)}i&&((d=!f&&d)&&p--,r&&_.push(d))}if(p+=m,i&&m!==p){for(c=0;f=n[c++];)f(_,g,a,s);if(r){if(p>0)for(;m--;)_[m]||g[m]||(g[m]=U.call(u));g=h(g)}J.apply(u,g),l&&!r&&g.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(N=w,k=v),_};return i?r(a):a}(a,o))).selector=e}return s},L=t.select=function(e,t,n,r){var i,o,a,s,l,c="function"==typeof e&&e,f=!r&&w(e=c.selector||e);if(n=n||[],1===f.length){if((o=f[0]=f[0].slice(0)).length>2&&"ID"===(a=o[0]).type&&g.getById&&9===t.nodeType&&j&&y.relative[o[1].type]){if(!(t=(y.find.ID(a.matches[0].replace(_e,ge),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=le.needsContext.test(e)?0:o.length;i--&&(a=o[i],!y.relative[s=a.type]);)if((l=y.find[s])&&(r=l(a.matches[0].replace(_e,ge),pe.test(o[0].type)&&u(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&d(o)))return J.apply(n,r),n;break}}return(c||M(e,f))(r,t,!j,n,!t||pe.test(e)&&u(t.parentNode)||t),n},g.sortStable=A.split("").sort(F).join("")===A,g.detectDuplicates=!!T,Y(),g.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),g.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(Z,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(n);te.find=ae,te.expr=ae.selectors,te.expr[":"]=te.expr.pseudos,te.uniqueSort=te.unique=ae.uniqueSort,te.text=ae.getText,te.isXMLDoc=ae.isXML,te.contains=ae.contains;var se=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&te(e).is(n))break;r.push(e)}return r},ue=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},le=te.expr.match.needsContext,de=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,ce=/^.[^:#\[\.,]*$/;te.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?te.find.matchesSelector(r,e)?[r]:[]:te.find.matches(e,te.grep(t,function(e){return 1===e.nodeType}))},te.fn.extend({find:function(e){var t,n=this.length,r=[],i=this;if("string"!=typeof e)return this.pushStack(te(e).filter(function(){for(t=0;t1?te.unique(r):r)).selector=this.selector?this.selector+" "+e:e,r},filter:function(e){return this.pushStack(a(this,e||[],!1))},not:function(e){return this.pushStack(a(this,e||[],!0))},is:function(e){return!!a(this,"string"==typeof e&&le.test(e)?te(e):e||[],!1).length}});var fe,he=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(te.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||fe,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:he.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof te?t[0]:t,te.merge(this,te.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:U,!0)),de.test(r[1])&&te.isPlainObject(t))for(r in t)te.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=U.getElementById(r[2]))&&i.parentNode&&(this.length=1,this[0]=i),this.context=U,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):te.isFunction(e)?void 0!==n.ready?n.ready(e):e(te):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),te.makeArray(e,this))}).prototype=te.fn,fe=te(U);var pe=/^(?:parents|prev(?:Until|All))/,me={children:!0,contents:!0,next:!0,prev:!0};te.fn.extend({has:function(e){var t=te(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&te.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?te.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?X.call(te(e),this[0]):X.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(te.uniqueSort(te.merge(this.get(),te(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),te.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return se(e,"parentNode")},parentsUntil:function(e,t,n){return se(e,"parentNode",n)},next:function(e){return s(e,"nextSibling")},prev:function(e){return s(e,"previousSibling")},nextAll:function(e){return se(e,"nextSibling")},prevAll:function(e){return se(e,"previousSibling")},nextUntil:function(e,t,n){return se(e,"nextSibling",n)},prevUntil:function(e,t,n){return se(e,"previousSibling",n)},siblings:function(e){return ue((e.parentNode||{}).firstChild,e)},children:function(e){return ue(e.firstChild)},contents:function(e){return e.contentDocument||te.merge([],e.childNodes)}},function(e,t){te.fn[e]=function(n,r){var i=te.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=te.filter(r,i)),this.length>1&&(me[e]||te.uniqueSort(i),pe.test(e)&&i.reverse()),this.pushStack(i)}});var _e,ge=/\S+/g;te.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return te.each(e.match(ge)||[],function(e,n){t[n]=!0}),t}(e):te.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?te.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},te.extend({Deferred:function(e){var t=[["resolve","done",te.Callbacks("once memory"),"resolved"],["reject","fail",te.Callbacks("once memory"),"rejected"],["notify","progress",te.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return te.Deferred(function(n){te.each(t,function(t,o){var a=te.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&te.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?te.extend(e,r):r}},i={};return r.pipe=r.then,te.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=V.call(arguments),a=o.length,s=1!==a||e&&te.isFunction(e.promise)?a:0,u=1===s?e:te.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?V.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i0||(_e.resolveWith(U,[te]),te.fn.triggerHandler&&(te(U).triggerHandler("ready"),te(U).off("ready"))))}}),te.ready.promise=function(e){return _e||(_e=te.Deferred(),"complete"===U.readyState||"loading"!==U.readyState&&!U.documentElement.doScroll?n.setTimeout(te.ready):(U.addEventListener("DOMContentLoaded",u),n.addEventListener("load",u))),_e.promise(e)},te.ready.promise();var ye=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===te.type(n))for(s in i=!0,n)ye(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,te.isFunction(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(te(e),n)})),t))for(;s-1&&void 0!==n&&we.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){we.remove(this,e)})}}),te.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=be.get(e,t),n&&(!r||te.isArray(n)?r=be.access(e,t,te.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=te.queue(e,t),r=n.length,i=n.shift(),o=te._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){te.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return be.get(e,n)||be.access(e,n,{empty:te.Callbacks("once memory").add(function(){be.remove(e,[t+"queue",n])})})}}),te.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length",""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Ce.optgroup=Ce.option,Ce.tbody=Ce.tfoot=Ce.colgroup=Ce.caption=Ce.thead,Ce.th=Ce.td;var Ee,He,Oe=/<|&#?\w+;/;Ee=U.createDocumentFragment().appendChild(U.createElement("div")),(He=U.createElement("input")).setAttribute("type","radio"),He.setAttribute("checked","checked"),He.setAttribute("name","t"),Ee.appendChild(He),ee.checkClone=Ee.cloneNode(!0).cloneNode(!0).lastChild.checked,Ee.innerHTML="",ee.noCloneChecked=!!Ee.cloneNode(!0).lastChild.defaultValue;var Ae=/^key/,Pe=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ne=/^([^.]*)(?:\.(.+)|)/;te.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,d,c,f,h,p,m,_=be.get(e);if(_)for(n.handler&&(n=(o=n).handler,i=o.selector),n.guid||(n.guid=te.guid++),(u=_.events)||(u=_.events={}), -(a=_.handle)||(a=_.handle=function(t){return void 0!==te&&te.event.triggered!==t.type?te.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(ge)||[""]).length;l--;)h=m=(s=Ne.exec(t[l])||[])[1],p=(s[2]||"").split(".").sort(),h&&(c=te.event.special[h]||{},h=(i?c.delegateType:c.bindType)||h,c=te.event.special[h]||{},d=te.extend({type:h,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&te.expr.match.needsContext.test(i),namespace:p.join(".")},o),(f=u[h])||((f=u[h]=[]).delegateCount=0,c.setup&&!1!==c.setup.call(e,r,p,a)||e.addEventListener&&e.addEventListener(h,a)),c.add&&(c.add.call(e,d),d.handler.guid||(d.handler.guid=n.guid)),i?f.splice(f.delegateCount++,0,d):f.push(d),te.event.global[h]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,d,c,f,h,p,m,_=be.hasData(e)&&be.get(e);if(_&&(u=_.events)){for(l=(t=(t||"").match(ge)||[""]).length;l--;)if(h=m=(s=Ne.exec(t[l])||[])[1],p=(s[2]||"").split(".").sort(),h){for(c=te.event.special[h]||{},f=u[h=(r?c.delegateType:c.bindType)||h]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=f.length;o--;)d=f[o],!i&&m!==d.origType||n&&n.guid!==d.guid||s&&!s.test(d.namespace)||r&&r!==d.selector&&("**"!==r||!d.selector)||(f.splice(o,1),d.selector&&f.delegateCount--,c.remove&&c.remove.call(e,d));a&&!f.length&&(c.teardown&&!1!==c.teardown.call(e,p,_.handle)||te.removeEvent(e,h,_.handle),delete u[h])}else for(h in u)te.event.remove(e,h+t[l],n,r,!0);te.isEmptyObject(u)&&be.remove(e,"handle events")}},dispatch:function(e){e=te.event.fix(e);var t,n,r,i,o,a,s=V.call(arguments),u=(be.get(this,"events")||{})[e.type]||[],l=te.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||!1!==l.preDispatch.call(this,e)){for(a=te.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,void 0!==(r=((te.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(e.result=r)&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&(!0!==u.disabled||"click"!==e.type)){for(r=[],n=0;n-1:te.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s]*)\/>/gi,Re=/\s*$/g;te.extend({htmlPrefilter:function(e){return e.replace(Ie,"<$1>")},clone:function(e,t,n){var r,i,o,a,s,u,l,d=e.cloneNode(!0),c=te.contains(e.ownerDocument,e);if(!(ee.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||te.isXMLDoc(e)))for(a=f(d),r=0,i=(o=f(e)).length;r0&&h(a,!c&&f(e,"script")),d},cleanData:function(e){for(var t,n,r,i=te.event.special,o=0;void 0!==(n=e[o]);o++)if(ve(n)){if(t=n[be.expando]){if(t.events)for(r in t.events)i[r]?te.event.remove(n,r):te.removeEvent(n,r,t.handle);n[be.expando]=void 0}n[we.expando]&&(n[we.expando]=void 0)}}}),te.fn.extend({domManip:L,detach:function(e){return k(this,e,!0)},remove:function(e){return k(this,e)},text:function(e){return ye(this,function(e){return void 0===e?te.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return L(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||v(this,e).appendChild(e)})},prepend:function(){return L(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=v(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return L(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return L(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(te.cleanData(f(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return te.clone(this,e,t)})},html:function(e){return ye(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Re.test(e)&&!Ce[(Se.exec(e)||["",""])[1].toLowerCase()]){e=te.htmlPrefilter(e);try{for(;n1)},show:function(){return H(this,!0)},hide:function(){return H(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ye(this)?te(this).show():te(this).hide()})}}),te.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||te.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(te.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=te.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=te.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){te.fx.step[e.prop]?te.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[te.cssProps[e.prop]]&&!te.cssHooks[e.prop]?e.elem[e.prop]=e.now:te.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},te.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},te.fx=O.prototype.init,te.fx.step={};var tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;te.Animation=te.extend(I,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return c(n.elem,e,xe.exec(t),n),n}]},tweener:function(e,t){te.isFunction(e)?(t=e,e=["*"]):e=e.match(ge);for(var n,r=0,i=e.length;r1)},removeAttr:function(e){return this.each(function(){te.removeAttr(this,e)})}}),te.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?te.prop(e,t,n):(1===o&&te.isXMLDoc(e)||(t=t.toLowerCase(),i=te.attrHooks[t]||(te.expr.match.bool.test(t)?ot:void 0)),void 0!==n?null===n?void te.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=te.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!ee.radioValue&&"radio"===t&&te.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(ge);if(o&&1===e.nodeType)for(;n=o[i++];)r=te.propFix[n]||n,te.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)}}),ot={set:function(e,t,n){return!1===t?te.removeAttr(e,n):e.setAttribute(n,n),n}},te.each(te.expr.match.bool.source.match(/\w+/g),function(e,t){var n=at[t]||te.find.attr;at[t]=function(e,t,r){var i,o;return r||(o=at[t],at[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,at[t]=o),i}});var st=/^(?:input|select|textarea|button)$/i,ut=/^(?:a|area)$/i;te.fn.extend({prop:function(e,t){return ye(this,te.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[te.propFix[e]||e]})}}),te.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&te.isXMLDoc(e)||(t=te.propFix[t]||t,i=te.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=te.find.attr(e,"tabindex");return t?parseInt(t,10):st.test(e.nodeName)||ut.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),ee.optSelected||(te.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),te.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){te.propFix[this.toLowerCase()]=this});var lt=/[\t\r\n\f]/g;te.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(te.isFunction(e))return this.each(function(t){te(this).addClass(e.call(this,t,R(this)))});if("string"==typeof e&&e)for(t=e.match(ge)||[];n=this[u++];)if(i=R(n),r=1===n.nodeType&&(" "+i+" ").replace(lt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=te.trim(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(te.isFunction(e))return this.each(function(t){te(this).removeClass(e.call(this,t,R(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(ge)||[];n=this[u++];)if(i=R(n),r=1===n.nodeType&&(" "+i+" ").replace(lt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");i!==(s=te.trim(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):te.isFunction(e)?this.each(function(n){te(this).toggleClass(e.call(this,n,R(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=te(this),o=e.match(ge)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||((t=R(this))&&be.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":be.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+R(n)+" ").replace(lt," ").indexOf(t)>-1)return!0;return!1}});var dt=/\r/g,ct=/[\x20\t\r\n\f]+/g;te.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=te.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,te(this).val()):e)?i="":"number"==typeof i?i+="":te.isArray(i)&&(i=te.map(i,function(e){return null==e?"":e+""})),(t=te.valHooks[this.type]||te.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))})):i?(t=te.valHooks[i.type]||te.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(dt,""):null==n?"":n:void 0}}),te.extend({valHooks:{option:{get:function(e){var t=te.find.attr(e,"value");return null!=t?t:te.trim(te.text(e)).replace(ct," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),te.each(["radio","checkbox"],function(){te.valHooks[this]={set:function(e,t){if(te.isArray(t))return e.checked=te.inArray(te(e).val(),t)>-1}},ee.checkOn||(te.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var ft=/^(?:focusinfocus|focusoutblur)$/;te.extend(te.event,{trigger:function(e,t,r,i){var o,a,s,u,l,d,c,f=[r||U],h=K.call(e,"type")?e.type:e,p=K.call(e,"namespace")?e.namespace.split("."):[];if(a=s=r=r||U,3!==r.nodeType&&8!==r.nodeType&&!ft.test(h+te.event.triggered)&&(h.indexOf(".")>-1&&(h=(p=h.split(".")).shift(),p.sort()),l=h.indexOf(":")<0&&"on"+h,(e=e[te.expando]?e:new te.Event(h,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=p.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=r),t=null==t?[e]:te.makeArray(t,[e]),c=te.event.special[h]||{},i||!c.trigger||!1!==c.trigger.apply(r,t))){if(!i&&!c.noBubble&&!te.isWindow(r)){for(u=c.delegateType||h,ft.test(u+h)||(a=a.parentNode);a;a=a.parentNode)f.push(a),s=a;s===(r.ownerDocument||U)&&f.push(s.defaultView||s.parentWindow||n)}for(o=0;(a=f[o++])&&!e.isPropagationStopped();)e.type=o>1?u:c.bindType||h,(d=(be.get(a,"events")||{})[e.type]&&be.get(a,"handle"))&&d.apply(a,t),(d=l&&a[l])&&d.apply&&ve(a)&&(e.result=d.apply(a,t),!1===e.result&&e.preventDefault());return e.type=h,i||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(f.pop(),t)||!ve(r)||l&&te.isFunction(r[h])&&!te.isWindow(r)&&((s=r[l])&&(r[l]=null),te.event.triggered=h,r[h](),te.event.triggered=void 0,s&&(r[l]=s)),e.result}},simulate:function(e,t,n){var r=te.extend(new te.Event,n,{type:e,isSimulated:!0});te.event.trigger(r,null,t)}}),te.fn.extend({trigger:function(e,t){return this.each(function(){te.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return te.event.trigger(e,t,n,!0)}}),te.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){te.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),te.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ee.focusin="onfocusin"in n,ee.focusin||te.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){te.event.simulate(t,e.target,te.event.fix(e))};te.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=be.access(r,t);i||r.addEventListener(e,n,!0),be.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=be.access(r,t)-1;i?be.access(r,t,i):(r.removeEventListener(e,n,!0),be.remove(r,t))}}});var ht=n.location,pt=te.now(),mt=/\?/;te.parseJSON=function(e){return JSON.parse(e+"")},te.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||te.error("Invalid XML: "+e),t};var _t=/#.*$/,gt=/([?&])_=[^&]*/,yt=/^(.*?):[ \t]*([^\r\n]*)$/gm,vt=/^(?:GET|HEAD)$/,bt=/^\/\//,wt={},Mt={},Lt="*/".concat("*"),kt=U.createElement("a");kt.href=ht.href,te.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ht.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(ht.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Lt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":te.parseJSON,"text xml":te.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?F(F(e,te.ajaxSettings),t):F(te.ajaxSettings,e)},ajaxPrefilter:$(wt),ajaxTransport:$(Mt),ajax:function(e,t){function r(e,t,r,s){var l,c,y,v,w,L=t;2!==b&&(b=2,u&&n.clearTimeout(u),i=void 0,a=s||"",M.readyState=e>0?4:0,l=e>=200&&e<300||304===e,r&&(v=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(f,M,r)),v=function(e,t,n,r){var i,o,a,s,u,l={},d=e.dataTypes.slice();if(d[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=d.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=d.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],d.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(f,v,M,l),l?(f.ifModified&&((w=M.getResponseHeader("Last-Modified"))&&(te.lastModified[o]=w),(w=M.getResponseHeader("etag"))&&(te.etag[o]=w)),204===e||"HEAD"===f.type?L="nocontent":304===e?L="notmodified":(L=v.state,c=v.data,l=!(y=v.error))):(y=L,!e&&L||(L="error",e<0&&(e=0))),M.status=e,M.statusText=(t||L)+"",l?m.resolveWith(h,[c,L,M]):m.rejectWith(h,[M,L,y]),M.statusCode(g),g=void 0,d&&p.trigger(l?"ajaxSuccess":"ajaxError",[M,f,l?c:y]),_.fireWith(h,[M,L]),d&&(p.trigger("ajaxComplete",[M,f]),--te.active||te.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var i,o,a,s,u,l,d,c,f=te.ajaxSetup({},t),h=f.context||f,p=f.context&&(h.nodeType||h.jquery)?te(h):te.event,m=te.Deferred(),_=te.Callbacks("once memory"),g=f.statusCode||{},y={},v={},b=0,w="canceled",M={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!s)for(s={};t=yt.exec(a);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)g[t]=[g[t],e[t]];else M.always(e[M.status]);return this},abort:function(e){var t=e||w;return i&&i.abort(t),r(0,t),this}};if(m.promise(M).complete=_.add,M.success=M.done,M.error=M.fail,f.url=((e||f.url||ht.href)+"").replace(_t,"").replace(bt,ht.protocol+"//"),f.type=t.method||t.type||f.method||f.type,f.dataTypes=te.trim(f.dataType||"*").toLowerCase().match(ge)||[""],null==f.crossDomain){l=U.createElement("a");try{l.href=f.url,l.href=l.href,f.crossDomain=kt.protocol+"//"+kt.host!=l.protocol+"//"+l.host}catch(e){f.crossDomain=!0}}if(f.data&&f.processData&&"string"!=typeof f.data&&(f.data=te.param(f.data,f.traditional)),W(wt,f,t,M),2===b)return M;for(c in(d=te.event&&f.global)&&0==te.active++&&te.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!vt.test(f.type),o=f.url,f.hasContent||(f.data&&(o=f.url+=(mt.test(o)?"&":"?")+f.data,delete f.data),!1===f.cache&&(f.url=gt.test(o)?o.replace(gt,"$1_="+pt++):o+(mt.test(o)?"&":"?")+"_="+pt++)),f.ifModified&&(te.lastModified[o]&&M.setRequestHeader("If-Modified-Since",te.lastModified[o]),te.etag[o]&&M.setRequestHeader("If-None-Match",te.etag[o])), -(f.data&&f.hasContent&&!1!==f.contentType||t.contentType)&&M.setRequestHeader("Content-Type",f.contentType),M.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+Lt+"; q=0.01":""):f.accepts["*"]),f.headers)M.setRequestHeader(c,f.headers[c]);if(f.beforeSend&&(!1===f.beforeSend.call(h,M,f)||2===b))return M.abort();for(c in w="abort",{success:1,error:1,complete:1})M[c](f[c]);if(i=W(Mt,f,t,M)){if(M.readyState=1,d&&p.trigger("ajaxSend",[M,f]),2===b)return M;f.async&&f.timeout>0&&(u=n.setTimeout(function(){M.abort("timeout")},f.timeout));try{b=1,i.send(y,r)}catch(e){if(!(b<2))throw e;r(-1,e)}}else r(-1,"No Transport");return M},getJSON:function(e,t,n){return te.get(e,t,n,"json")},getScript:function(e,t){return te.get(e,void 0,t,"script")}}),te.each(["get","post"],function(e,t){te[t]=function(e,n,r,i){return te.isFunction(n)&&(i=i||r,r=n,n=void 0),te.ajax(te.extend({url:e,type:t,dataType:i,data:n,success:r},te.isPlainObject(e)&&e))}}),te._evalUrl=function(e){return te.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,throws:!0})},te.fn.extend({wrapAll:function(e){var t;return te.isFunction(e)?this.each(function(t){te(this).wrapAll(e.call(this,t))}):(this[0]&&(t=te(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return te.isFunction(e)?this.each(function(t){te(this).wrapInner(e.call(this,t))}):this.each(function(){var t=te(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=te.isFunction(e);return this.each(function(n){te(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){te.nodeName(this,"body")||te(this).replaceWith(this.childNodes)}).end()}}),te.expr.filters.hidden=function(e){return!te.expr.filters.visible(e)},te.expr.filters.visible=function(e){return e.offsetWidth>0||e.offsetHeight>0||e.getClientRects().length>0};var xt=/%20/g,Tt=/\[\]$/,Yt=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,St=/^(?:input|select|textarea|keygen)/i;te.param=function(e,t){var n,r=[],i=function(e,t){t=te.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=te.ajaxSettings&&te.ajaxSettings.traditional),te.isArray(e)||e.jquery&&!te.isPlainObject(e))te.each(e,function(){i(this.name,this.value)});else for(n in e)z(n,e[n],t,i);return r.join("&").replace(xt,"+")},te.fn.extend({serialize:function(){return te.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=te.prop(this,"elements");return e?te.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!te(this).is(":disabled")&&St.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!De.test(e))}).map(function(e,t){var n=te(this).val();return null==n?null:te.isArray(n)?te.map(n,function(e){return{name:t.name,value:e.replace(Yt,"\r\n")}}):{name:t.name,value:n.replace(Yt,"\r\n")}}).get()}}),te.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var jt={0:200,1223:204},Ct=te.ajaxSettings.xhr();ee.cors=!!Ct&&"withCredentials"in Ct,ee.ajax=Ct=!!Ct,te.ajaxTransport(function(e){var t,r;if(ee.cors||Ct&&!e.crossDomain)return{send:function(i,o){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=r=s.onload=s.onerror=s.onabort=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(jt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),r=s.onerror=t("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&n.setTimeout(function(){t&&r()})},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}}),te.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return te.globalEval(e),e}}}),te.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),te.ajaxTransport("script",function(e){var t,n;if(e.crossDomain)return{send:function(r,i){t=te(" diff --git a/resources/assets/js/components/dashboard/Dashboard.vue b/resources/assets/js/components/dashboard/Dashboard.vue index e8a9736f..6b85c0a1 100644 --- a/resources/assets/js/components/dashboard/Dashboard.vue +++ b/resources/assets/js/components/dashboard/Dashboard.vue @@ -1,8 +1,14 @@ diff --git a/resources/views/layout/dashboard.blade.php b/resources/views/layout/dashboard.blade.php index 9438fb8d..374026cf 100644 --- a/resources/views/layout/dashboard.blade.php +++ b/resources/views/layout/dashboard.blade.php @@ -20,16 +20,16 @@ - {{ $page_title or $site_title }} + {{ $pageTitle or $siteTitle }} - @if($enable_external_dependencies) - + @if($enableExternalDependencies) + @endif @yield('css') @@ -44,7 +44,7 @@
@include('dashboard.partials.sidebar')
- @if(!$is_writeable) + @if(!$isWriteable)
diff --git a/resources/views/layout/master.blade.php b/resources/views/layout/master.blade.php index dd36f66c..d94267e6 100644 --- a/resources/views/layout/master.blade.php +++ b/resources/views/layout/master.blade.php @@ -7,25 +7,25 @@ - - + + - + - + - + @if (isset($favicon)) @@ -44,10 +44,10 @@ - @yield('title', $site_title) + @yield('title', $siteTitle) - @if($enable_external_dependencies) - + @if($enableExternalDependencies) + @endif @@ -55,26 +55,25 @@ @include('partials.crowdin') - @if($app_stylesheet) + @if($appStylesheet) @endif diff --git a/resources/views/notifications/incident/new.blade.php b/resources/views/notifications/incident/new.blade.php new file mode 100644 index 00000000..22f4ddcc --- /dev/null +++ b/resources/views/notifications/incident/new.blade.php @@ -0,0 +1,15 @@ +@component('mail::message') +# {{ trans('notifications.incident.new.mail.greeting', ['app_name' => Config::get('setting.app_name')]) }} + +{{ $incident->message }} + +@component('mail::button', ['url' => $actionUrl]) +{{ $actionText }} +@endcomponent + +Thanks,
+{{ Config::get('setting.app_name') }} + +@include('notifications.partials.subscription') + +@endcomponent diff --git a/resources/views/notifications/partials/subscription.blade.php b/resources/views/notifications/partials/subscription.blade.php new file mode 100644 index 00000000..6e8ebf3d --- /dev/null +++ b/resources/views/notifications/partials/subscription.blade.php @@ -0,0 +1,3 @@ +@component('mail::subcopy') +[{{ $unsubscribeText }}]({{ $unsubscribeUrl }}) — [{{ $manageSubscriptionText }}]({{ $manageSubscriptionUrl }}) +@endcomponent diff --git a/resources/views/partials/about-app.blade.php b/resources/views/partials/about-app.blade.php index ca857340..f514743d 100644 --- a/resources/views/partials/about-app.blade.php +++ b/resources/views/partials/about-app.blade.php @@ -1,7 +1,7 @@ -@if($about_app) +@if($aboutApp)

{{ trans('cachet.about_this_site') }}

- {!! $about_app !!} + {!! $aboutApp !!}
@endif diff --git a/resources/views/partials/analytics.blade.php b/resources/views/partials/analytics.blade.php index b93d9626..75142651 100644 --- a/resources/views/partials/analytics.blade.php +++ b/resources/views/partials/analytics.blade.php @@ -1,36 +1,36 @@ -@if($enable_external_dependencies) -@if($app_analytics) +@if($enableExternalDependencies) +@if($appAnalytics) @endif -@if($app_analytics_go_squared) +@if($appAnalyticsGoSquared) @endif -@if($app_analytics_piwik_url) +@if($appAnalyticsPiwikUrl) - + @endif @endif diff --git a/resources/views/partials/banner.blade.php b/resources/views/partials/banner.blade.php index dc284cde..9ab23ab2 100644 --- a/resources/views/partials/banner.blade.php +++ b/resources/views/partials/banner.blade.php @@ -1,15 +1,15 @@ -@if($app_header) -{!! $app_header !!} +@if($appHeader) +{!! $appHeader !!} @else -@if($app_banner) -
+@if($appBanner) +
-
+
- @if($app_domain) - + @if($appDomain) + @else - + @endif
diff --git a/resources/views/partials/components.blade.php b/resources/views/partials/components.blade.php index aedfab2d..2fd869af 100644 --- a/resources/views/partials/components.blade.php +++ b/resources/views/partials/components.blade.php @@ -1,5 +1,5 @@ -@if($component_groups->isNotEmpty()) -@foreach($component_groups as $componentGroup) +@if($componentGroups->isNotEmpty()) +@foreach($componentGroups as $componentGroup)
    @if($componentGroup->enabled_components->isNotEmpty())
  • @@ -19,16 +19,16 @@ @endforeach @endif -@if($ungrouped_components->isNotEmpty()) +@if($ungroupedComponents->isNotEmpty())
    • {{ trans('cachet.components.group.other') }}
      - +
    • - @each('partials.component', $ungrouped_components, 'component') + @each('partials.component', $ungroupedComponents, 'component')
    @endif diff --git a/resources/views/partials/components_form.blade.php b/resources/views/partials/components_form.blade.php index a6f5c8f7..44f687ba 100644 --- a/resources/views/partials/components_form.blade.php +++ b/resources/views/partials/components_form.blade.php @@ -1,5 +1,5 @@ -@if($component_groups->isNotEmpty()) -@foreach($component_groups as $componentGroup) +@if($componentGroups->isNotEmpty()) +@foreach($componentGroups as $componentGroup)
      @if($componentGroup->enabled_components->isNotEmpty())
    • @@ -21,12 +21,12 @@ @endforeach @endif -@if($ungrouped_components->isNotEmpty()) +@if($ungroupedComponents->isNotEmpty())
      • {{ trans('cachet.components.group.other') }}
      • - @foreach($ungrouped_components as $component) + @foreach($ungroupedComponents as $component) @include('partials.component_input', compact($component)) @endforeach
      diff --git a/resources/views/partials/crowdin.blade.php b/resources/views/partials/crowdin.blade.php index 18d4944b..88303f56 100644 --- a/resources/views/partials/crowdin.blade.php +++ b/resources/views/partials/crowdin.blade.php @@ -1,4 +1,4 @@ -@if($app_locale === 'en-UD' && $enable_external_dependencies) +@if($appLocale === 'en-UD' && $enableExternalDependencies)