diff --git a/demo/Angular2_Demo/CHANGELOG.md b/demo/Angular2_Demo/CHANGELOG.md
deleted file mode 100644
index e11191d0606e66e461e487ae505623d7cf8dda4d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/CHANGELOG.md
+++ /dev/null
@@ -1,110 +0,0 @@
-<a name="0.2.5"></a>
-# 0.2.6 (2016-08-09)
-* Angular 2 RC5 version
-* Updated new forms, router and angular2-in-memory-web-api
-
-<a name="0.2.5"></a>
-# 0.2.5 (2016-06-30)
-* Angular 2 RC4 version
-* Updated new forms and router
-
-<a name="0.2.4"></a>
-# 0.2.4 (2016-06-21)
-* Angular 2 RC3 version
-* Add new forms and router
-* Add support for TS e2e tests
-
-<a name="0.2.3"></a>
-# 0.2.3 (2016-06-15)
-* Angular 2 RC2 version
-
-<a name="0.2.2"></a>
-# 0.2.2 (2016-05-21)
-* Update to Typings 1.x
-
-<a name="0.2.1"></a>
-# 0.2.1 (2016-05-03)
-* Angular 2 RC01 version
-  
-<a name="0.2.0"></a>
-# 0.2.0 (2016-05-02)
-* Angular 2 RC0 version
-  
-<a name="0.1.17"></a>
-# 0.1.17 (2016-04-29)
-* update packages
-  * Angular 2 beta 17
-  * RxJS 5.0.0-beta.6
-  * a2-in-memory-web-api 0.1.17
-
-<a name="0.1.16"></a>
-# 0.1.16 (2016-04-26)
-* update packages
-  * Angular 2 beta 16
-  * a2-in-memory-web-api 0.1.6
-  * protractor 3.3.0
-  * typings 0.8.1
-  * zone.js 0.6.12
-
- * added favicon.ico
-
- * testing
-   - updated wallaby.js and karma.conf.js
-   - updated app.component.spec.ts
-
-
- <a name="0.1.15"></a>
-# 0.1.15 (2016-04-13)
-* Add testing support
-  * npm scripts
-  * karma/jasmine
-  * protractor
-
-* update packages
-  * Angular 2 beta 15
-  * lite-server 2.2.0
-  * systemjs 0.19.26
-  * typescript 1.8.10
-  * typings 0.7.12
-
-* add run packages
-  * a2-in-memory-web-api
-
-* add testing dev-dependency packages
-  * canonical-path: 0.0.2,
-  * http-server: ^0.9.0,
-  * jasmine-core: ~2.4.1,
-  * karma: ^0.13.22,
-  * karma-chrome-launcher: ^0.2.3,
-  * karma-cli: ^0.1.2,
-  * karma-htmlfile-reporter: ^0.2.2,
-  * karma-jasmine: ^0.3.8,
-  * protractor: ^3.2.2,
-  * rimraf: ^2.5.2  
-
-<a name="0.1.14"></a>
-# 0.1.14 (2016-04-07)
-* update packages
-  * Angular 2 beta 14
-  * lite-server 2.2.0
-  * typings 0.7.12
-
-<a name="0.1.13"></a>
-# 0.1.13 (2016-03-31)
-* update packages
-  * Angular 2 beta 13
-
-<a name="0.1.12"></a>
-# 0.1.12 (2016-03-23)
-* update packages
-  * Angular 2 beta 12
-  * zones 0.6.6
-* remove es6-promise because no longer needed.
-
-<a name="0.1.11"></a>
-# 0.1.11 (2016-03-18)
-* update packages
-  * Angular 2 beta 11
-  * zones 0.6.4
-  * typescript 1.8.9
-  * typings 0.7.9
diff --git a/demo/Angular2_Demo/Dockerfile b/demo/Angular2_Demo/Dockerfile
deleted file mode 100644
index 724cbf3503d73810be480ddb9149548efcc96526..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# To build and run with Docker:
-#
-#  $ docker build -t ng2-quickstart .
-#  $ docker run -it --rm -p 3000:3000 -p 3001:3001 ng2-quickstart
-#
-FROM node:latest
-
-RUN mkdir -p /quickstart /home/nodejs && \
-    groupadd -r nodejs && \
-    useradd -r -g nodejs -d /home/nodejs -s /sbin/nologin nodejs && \
-    chown -R nodejs:nodejs /home/nodejs
-
-WORKDIR /quickstart
-COPY package.json typings.json /quickstart/
-RUN npm install --unsafe-perm=true
-
-COPY . /quickstart
-RUN chown -R nodejs:nodejs /quickstart
-USER nodejs
-
-CMD npm start
diff --git a/demo/Angular2_Demo/LICENSE b/demo/Angular2_Demo/LICENSE
deleted file mode 100644
index 51b127e827ee012613dfa41e280337c6aa18161a..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2014-2016 Google, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/demo/Angular2_Demo/README.md b/demo/Angular2_Demo/README.md
deleted file mode 100644
index 9aa466c9061cb527ac3f61e2e22c073b5f6275bb..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/README.md
+++ /dev/null
@@ -1,154 +0,0 @@
-# Angular 2 QuickStart Source
-[![Build Status][travis-badge]][travis-badge-url]
-
-This repository holds the TypeScript source code of the [angular.io quickstart](https://angular.io/docs/ts/latest/quickstart.html),
-the foundation for most of the documentation samples and potentially a good starting point for your application.
-
-It's been extended with testing support so you can start writing tests immediately.
-
-**This is not the perfect arrangement for your application. It is not designed for production.
-It exists primarily to get you started quickly with learning and prototyping in Angular 2**
-
-We are unlikely to accept suggestions about how to grow this QuickStart into something it is not.
-Please keep that in mind before posting issues and PRs.
-
-## Prerequisites
-
-Node.js and npm are essential to Angular 2 development. 
-    
-<a href="https://docs.npmjs.com/getting-started/installing-node" target="_blank" title="Installing Node.js and updating npm">
-Get it now</a> if it's not already installed on your machine.
- 
-**Verify that you are running at least node `v4.x.x` and npm `3.x.x`**
-by running `node -v` and `npm -v` in a terminal/console window.
-Older versions produce errors.
-
-We recommend [nvm](https://github.com/creationix/nvm) for managing multiple versions of node and npm.
-
-## Create a new project based on the QuickStart
-
-Clone this repo into new project folder (e.g., `my-proj`).
-```bash
-git clone  https://github.com/angular/quickstart  my-proj
-cd my-proj
-```
-
-We have no intention of updating the source on `angular/quickstart`.
-Discard everything "git-like" by deleting the `.git` folder.
-```bash
-rm -rf .git  # non-Windows
-rd .git /S/Q # windows
-```
-
-### Create a new git repo
-You could [start writing code](#start-development) now and throw it all away when you're done.
-If you'd rather preserve your work under source control, consider taking the following steps.
-
-Initialize this project as a *local git repo* and make the first commit:
-```bash
-git init
-git add .
-git commit -m "Initial commit"
-```
-
-Create a *remote repository* for this project on the service of your choice.
-
-Grab its address (e.g. *`https://github.com/<my-org>/my-proj.git`*) and push the *local repo* to the *remote*.
-```bash
-git remote add origin <repo-address>
-git push -u origin master
-```
-## Install npm packages
-
-> See npm and nvm version notes above
-
-Install the npm packages described in the `package.json` and verify that it works:
-
-**Attention Windows Developers:  You must run all of these commands in administrator mode**.
-
-```bash
-npm install
-npm start
-```
-
-> If the `typings` folder doesn't show up after `npm install` please install them manually with:
-
-> `npm run typings -- install`
-
-The `npm start` command first compiles the application, 
-then simultaneously re-compiles and runs the `lite-server`.
-Both the compiler and the server watch for file changes.
-
-Shut it down manually with Ctrl-C.
-
-You're ready to write your application.
-
-### npm scripts
-
-We've captured many of the most useful commands in npm scripts defined in the `package.json`:
-
-* `npm start` - runs the compiler and a server at the same time, both in "watch mode".
-* `npm run tsc` - runs the TypeScript compiler once.
-* `npm run tsc:w` - runs the TypeScript compiler in watch mode; the process keeps running, awaiting changes to TypeScript files and re-compiling when it sees them.
-* `npm run lite` - runs the [lite-server](https://www.npmjs.com/package/lite-server), a light-weight, static file server, written and maintained by
-[John Papa](https://github.com/johnpapa) and
-[Christopher Martin](https://github.com/cgmartin)
-with excellent support for Angular apps that use routing.
-* `npm run typings` - runs the typings tool.
-* `npm run postinstall` - called by *npm* automatically *after* it successfully completes package installation. This script installs the TypeScript definition files this app requires.
-Here are the test related scripts:
-* `npm test` - compiles, runs and watches the karma unit tests
-* `npm run e2e` - run protractor e2e tests, written in JavaScript (*e2e-spec.js)
-
-## Testing
-
-The QuickStart documentation doesn't discuss testing.
-This repo adds both karma/jasmine unit test and protractor end-to-end testing support.
-
-These tools are configured for specific conventions described below.
-
-*It is unwise and rarely possible to run the application, the unit tests, and the e2e tests at the same time.
-We recommend that you shut down one before starting another.*
-
-### Unit Tests
-TypeScript unit-tests are usually in the `app` folder. Their filenames must end in `.spec`.
-
-Look for the example `app/app.component.spec.ts`.
-Add more `.spec.ts` files as you wish; we configured karma to find them.
-
-Run it with `npm test`
-
-That command first compiles the application, then simultaneously re-compiles and runs the karma test-runner.
-Both the compiler and the karma watch for (different) file changes.
-
-Shut it down manually with Ctrl-C.
-
-Test-runner output appears in the terminal window.
-We can update our app and our tests in real-time, keeping a weather eye on the console for broken tests.
-Karma is occasionally confused and it is often necessary to shut down its browser or even shut the command down (Ctrl-C) and
-restart it. No worries; it's pretty quick.
-
-The `HTML-Reporter` is also wired in. That produces a prettier output; look for it in `~_test-output/tests.html`.
-
-### End-to-end (E2E) Tests
-
-E2E tests are in the `e2e` directory, side by side with the `app` folder.
-Their filenames must end in `.e2e-spec.ts`.
-
-Look for the example `e2e/app.e2e-spec.ts`.
-Add more `.e2e-spec.js` files as you wish (although one usually suffices for small projects);
-we configured protractor to find them.
-
-Thereafter, run them with `npm run e2e`.
-
-That command first compiles, then simultaneously starts the Http-Server at `localhost:8080`
-and launches protractor.  
-
-The pass/fail test results appear at the bottom of the terminal window.
-A custom reporter (see `protractor.config.js`) generates a  `./_test-output/protractor-results.txt` file
-which is easier to read; this file is excluded from source control.
-
-Shut it down manually with Ctrl-C.
-
-[travis-badge]: https://travis-ci.org/angular/quickstart.svg?branch=master
-[travis-badge-url]: https://travis-ci.org/angular/quickstart
diff --git a/demo/Angular2_Demo/app/app.component.js b/demo/Angular2_Demo/app/app.component.js
deleted file mode 100644
index 085a169c60a1037caacf9617f9ad5b93a054be77..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.component.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var nav_dropdown_directive_1 = require('./shared/nav-dropdown.directive');
-var AppComponent = (function () {
-    function AppComponent() {
-    }
-    AppComponent = __decorate([
-        core_1.Component({
-            selector: 'body',
-            template: '<router-outlet></router-outlet>',
-            directives: [nav_dropdown_directive_1.NAV_DROPDOWN_DIRECTIVES]
-        }), 
-        __metadata('design:paramtypes', [])
-    ], AppComponent);
-    return AppComponent;
-}());
-exports.AppComponent = AppComponent;
-//# sourceMappingURL=app.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/app.component.js.map b/demo/Angular2_Demo/app/app.component.js.map
deleted file mode 100644
index c36dd19b84b0df48443d7a517f19377a148f871c..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"app.component.js","sourceRoot":"","sources":["app.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAA0B,eAAe,CAAC,CAAA;AAC1C,uCAAyC,iCAAiC,CAAC,CAAA;AAO3E;IAAA;IAA4B,CAAC;IAL7B;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,iCAAiC;YAC3C,UAAU,EAAE,CAAE,gDAAuB,CAAE;SAC1C,CAAC;;oBAAA;IAC0B,mBAAC;AAAD,CAAC,AAA7B,IAA6B;AAAhB,oBAAY,eAAI,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/app.component.spec.js b/demo/Angular2_Demo/app/app.component.spec.js
deleted file mode 100644
index 03016c23f7e7475e06c0f676f270b174b749ac9e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.component.spec.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-/* tslint:disable:no-unused-variable */
-var app_component_1 = require('./app.component');
-var testing_1 = require('@angular/core/testing');
-var platform_browser_1 = require('@angular/platform-browser');
-////////  SPECS  /////////////
-/// Delete this
-describe('Smoke test', function () {
-    it('should run a passing test', function () {
-        expect(true).toEqual(true, 'should pass');
-    });
-});
-describe('AppComponent with TCB', function () {
-    beforeEach(function () {
-        testing_1.TestBed.configureTestingModule({ declarations: [app_component_1.AppComponent] });
-    });
-    it('should instantiate component', function () {
-        var fixture = testing_1.TestBed.createComponent(app_component_1.AppComponent);
-        expect(fixture.componentInstance instanceof app_component_1.AppComponent).toBe(true, 'should create AppComponent');
-    });
-    it('should have expected <h1> text', function () {
-        var fixture = testing_1.TestBed.createComponent(app_component_1.AppComponent);
-        fixture.detectChanges();
-        var h1 = fixture.debugElement.query(function (el) { return el.name === 'h1'; }).nativeElement; // it works
-        h1 = fixture.debugElement.query(platform_browser_1.By.css('h1')).nativeElement; // preferred
-        expect(h1.innerText).toMatch(/angular 2 app/i, '<h1> should say something about "Angular 2 App"');
-    });
-});
-//# sourceMappingURL=app.component.spec.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/app.component.spec.js.map b/demo/Angular2_Demo/app/app.component.spec.js.map
deleted file mode 100644
index a294223111e67ceb344de358feb86975148c87f8..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.component.spec.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"app.component.spec.js","sourceRoot":"","sources":["app.component.spec.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,8BAA6B,iBAAiB,CAAC,CAAA;AAE/C,wBAAwB,uBAAuB,CAAC,CAAA;AAEhD,iCAA+B,2BAA2B,CAAC,CAAA;AAE3D,8BAA8B;AAE9B,eAAe;AACf,QAAQ,CAAC,YAAY,EAAE;IACrB,EAAE,CAAC,2BAA2B,EAAE;QAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE;IAChC,UAAU,CAAC;QACT,iBAAO,CAAC,sBAAsB,CAAC,EAAC,YAAY,EAAE,CAAC,4BAAY,CAAC,EAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE;QACjC,IAAI,OAAO,GAAG,iBAAO,CAAC,eAAe,CAAC,4BAAY,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,iBAAiB,YAAY,4BAAY,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAI,OAAO,GAAG,iBAAO,CAAC,eAAe,CAAC,4BAAY,CAAC,CAAC;QACpD,OAAO,CAAC,aAAa,EAAE,CAAC;QAExB,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,IAAI,KAAK,IAAI,EAAhB,CAAgB,CAAC,CAAC,aAAa,CAAC,CAAE,WAAW;QAEnF,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,qBAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAY,YAAY;QAExF,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,iDAAiD,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/app.component.spec.ts b/demo/Angular2_Demo/app/app.component.spec.ts
deleted file mode 100644
index 211fadfda35f83ff0f7f86fcc741345442196448..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.component.spec.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-/* tslint:disable:no-unused-variable */
-import { AppComponent } from './app.component';
-
-import { TestBed } from '@angular/core/testing';
-
-import { By }             from '@angular/platform-browser';
-
-////////  SPECS  /////////////
-
-/// Delete this
-describe('Smoke test', () => {
-  it('should run a passing test', () => {
-    expect(true).toEqual(true, 'should pass');
-  });
-});
-
-describe('AppComponent with TCB', function () {
-  beforeEach(() => {
-    TestBed.configureTestingModule({declarations: [AppComponent]});
-  });
-
-  it('should instantiate component', () => {
-    let fixture = TestBed.createComponent(AppComponent);
-    expect(fixture.componentInstance instanceof AppComponent).toBe(true, 'should create AppComponent');
-  });
-
-  it('should have expected <h1> text', () => {
-    let fixture = TestBed.createComponent(AppComponent);
-    fixture.detectChanges();
-
-    let h1 = fixture.debugElement.query(el => el.name === 'h1').nativeElement;  // it works
-
-        h1 = fixture.debugElement.query(By.css('h1')).nativeElement;            // preferred
-
-    expect(h1.innerText).toMatch(/angular 2 app/i, '<h1> should say something about "Angular 2 App"');
-  });
-});
diff --git a/demo/Angular2_Demo/app/app.component.ts b/demo/Angular2_Demo/app/app.component.ts
deleted file mode 100644
index 806092fd2021fa12a59190c439c839e48e34eeeb..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.component.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Component } from '@angular/core';
-import { NAV_DROPDOWN_DIRECTIVES }  from './shared/nav-dropdown.directive';
-
-@Component({
-    selector: 'body',
-    template: '<router-outlet></router-outlet>',
-    directives: [ NAV_DROPDOWN_DIRECTIVES ]
-})
-export class AppComponent { }
diff --git a/demo/Angular2_Demo/app/app.module.js b/demo/Angular2_Demo/app/app.module.js
deleted file mode 100644
index 8b319bc6cbe85ae80f13d09a301ec8c983041a36..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.module.js
+++ /dev/null
@@ -1,78 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var platform_browser_1 = require('@angular/platform-browser');
-var app_component_1 = require('./app.component');
-var ng2_bootstrap_1 = require('ng2-bootstrap/ng2-bootstrap');
-var app_routing_1 = require('./app.routing');
-//Layouts
-var full_layout_component_1 = require('./layouts/full-layout.component');
-var simple_layout_component_1 = require('./layouts/simple-layout.component');
-//Main view
-var dashboard_component_1 = require('./dashboard/dashboard.component');
-//Components
-var buttons_component_1 = require('./components/buttons.component');
-var cards_component_1 = require('./components/cards.component');
-var forms_component_1 = require('./components/forms.component');
-var social_buttons_component_1 = require('./components/social-buttons.component');
-var switches_component_1 = require('./components/switches.component');
-var tables_component_1 = require('./components/tables.component');
-//Icons
-var font_awesome_component_1 = require('./icons/font-awesome.component');
-var simple_line_icons_component_1 = require('./icons/simple-line-icons.component');
-//Widgets
-var widgets_component_1 = require('./widgets/widgets.component');
-//Charts
-var charts_component_1 = require('./charts/charts.component');
-//Pages
-var _404_component_1 = require('./pages/404.component');
-var _500_component_1 = require('./pages/500.component');
-var login_component_1 = require('./pages/login.component');
-var register_component_1 = require('./pages/register.component');
-var AppModule = (function () {
-    function AppModule() {
-    }
-    AppModule = __decorate([
-        core_1.NgModule({
-            imports: [
-                platform_browser_1.BrowserModule,
-                app_routing_1.routing
-            ],
-            declarations: [
-                app_component_1.AppComponent,
-                ng2_bootstrap_1.DROPDOWN_DIRECTIVES,
-                full_layout_component_1.FullLayoutComponent,
-                simple_layout_component_1.SimpleLayoutComponent,
-                dashboard_component_1.DashboardComponent,
-                buttons_component_1.ButtonsComponent,
-                cards_component_1.CardsComponent,
-                forms_component_1.FormsComponent,
-                social_buttons_component_1.SocialButtonsComponent,
-                switches_component_1.SwitchesComponent,
-                tables_component_1.TablesComponent,
-                font_awesome_component_1.FontAwesomeComponent,
-                simple_line_icons_component_1.SimpleLineIconsComponent,
-                widgets_component_1.WidgetsComponent,
-                charts_component_1.ChartsComponent,
-                _404_component_1.p404Component,
-                _500_component_1.p500Component,
-                login_component_1.LoginComponent,
-                register_component_1.RegisterComponent
-            ],
-            providers: [],
-            bootstrap: [app_component_1.AppComponent]
-        }), 
-        __metadata('design:paramtypes', [])
-    ], AppModule);
-    return AppModule;
-}());
-exports.AppModule = AppModule;
-//# sourceMappingURL=app.module.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/app.module.js.map b/demo/Angular2_Demo/app/app.module.js.map
deleted file mode 100644
index 0d08b8652cf10d900aad7de40f95cc3ae6d0fd25..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.module.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"app.module.js","sourceRoot":"","sources":["app.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAA6C,eAAe,CAAC,CAAA;AAC7D,iCAA6C,2BAA2B,CAAC,CAAA;AAEzE,8BAA6C,iBAAiB,CAAC,CAAA;AAC/D,8BAA6C,6BAA6B,CAAC,CAAA;AAC3E,4BAA6C,eAAe,CAAC,CAAA;AAE7D,SAAS;AACT,sCAA6C,iCAAiC,CAAC,CAAA;AAC/E,wCAA6C,mCAAmC,CAAC,CAAA;AAEjF,WAAW;AACX,oCAA6C,iCAAiC,CAAC,CAAA;AAE/E,YAAY;AACZ,kCAA6C,gCAAgC,CAAC,CAAA;AAC9E,gCAA6C,8BAA8B,CAAC,CAAA;AAC5E,gCAA6C,8BAA8B,CAAC,CAAA;AAC5E,yCAA6C,uCAAuC,CAAC,CAAA;AACrF,mCAA6C,iCAAiC,CAAC,CAAA;AAC/E,iCAA6C,+BAA+B,CAAC,CAAA;AAE7E,OAAO;AACP,uCAA6C,gCAAgC,CAAC,CAAA;AAC9E,4CAA6C,qCAAqC,CAAC,CAAA;AAEnF,SAAS;AACT,kCAA6C,6BAA6B,CAAC,CAAA;AAE3E,QAAQ;AACR,iCAA6C,2BAA2B,CAAC,CAAA;AAEzE,OAAO;AACP,+BAA6C,uBAAuB,CAAC,CAAA;AACrE,+BAA6C,uBAAuB,CAAC,CAAA;AACrE,gCAA6C,yBAAyB,CAAC,CAAA;AACvE,mCAA6C,4BAA4B,CAAC,CAAA;AA+B1E;IAAA;IAAyB,CAAC;IA7B1B;QAAC,eAAQ,CAAC;YACR,OAAO,EAAE;gBACP,gCAAa;gBACb,qBAAO;aACR;YACD,YAAY,EAAE;gBACZ,4BAAY;gBACZ,mCAAmB;gBACnB,2CAAmB;gBACnB,+CAAqB;gBACrB,wCAAkB;gBAClB,oCAAgB;gBAChB,gCAAc;gBACd,gCAAc;gBACd,iDAAsB;gBACtB,sCAAiB;gBACjB,kCAAe;gBACf,6CAAoB;gBACpB,sDAAwB;gBACxB,oCAAgB;gBAChB,kCAAe;gBACf,8BAAa;gBACb,8BAAa;gBACb,gCAAc;gBACd,sCAAiB;aAClB;YACD,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,CAAE,4BAAY,CAAE;SAC5B,CAAC;;iBAAA;IACuB,gBAAC;AAAD,CAAC,AAA1B,IAA0B;AAAb,iBAAS,YAAI,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/app.module.ts b/demo/Angular2_Demo/app/app.module.ts
deleted file mode 100644
index fd1877dc0a0ad65b422fdd34fdca0ff1f8339be4..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.module.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { NgModule }                     from '@angular/core';
-import { BrowserModule }                from '@angular/platform-browser';
-
-import { AppComponent }                 from './app.component';
-import { DROPDOWN_DIRECTIVES }          from 'ng2-bootstrap/ng2-bootstrap';
-import { routing }                      from './app.routing';
-
-//Layouts
-import { FullLayoutComponent }          from './layouts/full-layout.component';
-import { SimpleLayoutComponent }        from './layouts/simple-layout.component';
-
-//Main view
-import { DashboardComponent }           from './dashboard/dashboard.component';
-
-//Components
-import { ButtonsComponent }             from './components/buttons.component';
-import { CardsComponent }               from './components/cards.component';
-import { FormsComponent }               from './components/forms.component';
-import { SocialButtonsComponent }       from './components/social-buttons.component';
-import { SwitchesComponent }            from './components/switches.component';
-import { TablesComponent }              from './components/tables.component';
-
-//Icons
-import { FontAwesomeComponent }         from './icons/font-awesome.component';
-import { SimpleLineIconsComponent }     from './icons/simple-line-icons.component';
-
-//Widgets
-import { WidgetsComponent }             from './widgets/widgets.component';
-
-//Charts
-import { ChartsComponent }              from './charts/charts.component';
-
-//Pages
-import { p404Component }                from './pages/404.component';
-import { p500Component }                from './pages/500.component';
-import { LoginComponent }               from './pages/login.component';
-import { RegisterComponent }            from './pages/register.component';
-
-@NgModule({
-  imports: [
-    BrowserModule,
-    routing
-  ],
-  declarations: [
-    AppComponent,
-    DROPDOWN_DIRECTIVES,
-    FullLayoutComponent,
-    SimpleLayoutComponent,
-    DashboardComponent,
-    ButtonsComponent,
-    CardsComponent,
-    FormsComponent,
-    SocialButtonsComponent,
-    SwitchesComponent,
-    TablesComponent,
-    FontAwesomeComponent,
-    SimpleLineIconsComponent,
-    WidgetsComponent,
-    ChartsComponent,
-    p404Component,
-    p500Component,
-    LoginComponent,
-    RegisterComponent
-  ],
-  providers: [],
-  bootstrap: [ AppComponent ]
-})
-export class AppModule { }
diff --git a/demo/Angular2_Demo/app/app.routing.js b/demo/Angular2_Demo/app/app.routing.js
deleted file mode 100644
index ef46251ce641a9d85573fdc372f7a2cd449dd8bb..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.routing.js
+++ /dev/null
@@ -1,184 +0,0 @@
-"use strict";
-var router_1 = require('@angular/router');
-//Layouts
-var full_layout_component_1 = require('./layouts/full-layout.component');
-var simple_layout_component_1 = require('./layouts/simple-layout.component');
-//Main view
-var dashboard_component_1 = require('./dashboard/dashboard.component');
-//Components
-var buttons_component_1 = require('./components/buttons.component');
-var cards_component_1 = require('./components/cards.component');
-var forms_component_1 = require('./components/forms.component');
-var social_buttons_component_1 = require('./components/social-buttons.component');
-var switches_component_1 = require('./components/switches.component');
-var tables_component_1 = require('./components/tables.component');
-//Icons
-var font_awesome_component_1 = require('./icons/font-awesome.component');
-var simple_line_icons_component_1 = require('./icons/simple-line-icons.component');
-//Widgets
-var widgets_component_1 = require('./widgets/widgets.component');
-//Charts
-var charts_component_1 = require('./charts/charts.component');
-//Pages
-var _404_component_1 = require('./pages/404.component');
-var _500_component_1 = require('./pages/500.component');
-var login_component_1 = require('./pages/login.component');
-var register_component_1 = require('./pages/register.component');
-var appRoutes = [
-    {
-        path: '',
-        redirectTo: 'dashboard',
-        pathMatch: 'full',
-    },
-    {
-        path: '',
-        component: full_layout_component_1.FullLayoutComponent,
-        data: {
-            title: 'Home'
-        },
-        children: [
-            {
-                path: 'dashboard',
-                component: dashboard_component_1.DashboardComponent,
-                data: {
-                    title: 'Dashboard'
-                }
-            },
-            {
-                path: 'components',
-                redirectTo: 'components/buttons',
-                pathMatch: 'full',
-            },
-            {
-                path: 'components',
-                data: {
-                    title: 'Components'
-                },
-                children: [
-                    {
-                        path: 'buttons',
-                        component: buttons_component_1.ButtonsComponent,
-                        data: {
-                            title: 'Buttons'
-                        }
-                    },
-                    {
-                        path: 'cards',
-                        component: cards_component_1.CardsComponent,
-                        data: {
-                            title: 'Cards'
-                        }
-                    },
-                    {
-                        path: 'forms',
-                        component: forms_component_1.FormsComponent,
-                        data: {
-                            title: 'Forms'
-                        }
-                    },
-                    {
-                        path: 'social-buttons',
-                        component: social_buttons_component_1.SocialButtonsComponent,
-                        data: {
-                            title: 'Social buttons'
-                        }
-                    },
-                    {
-                        path: 'switches',
-                        component: switches_component_1.SwitchesComponent,
-                        data: {
-                            title: 'Switches'
-                        }
-                    },
-                    {
-                        path: 'tables',
-                        component: tables_component_1.TablesComponent,
-                        data: {
-                            title: 'Tables'
-                        }
-                    }
-                ]
-            },
-            {
-                path: 'icons',
-                redirectTo: 'icons/font-awesome',
-                pathMatch: 'full',
-            },
-            {
-                path: 'icons',
-                data: {
-                    title: 'Icons'
-                },
-                children: [
-                    {
-                        path: 'font-awesome',
-                        component: font_awesome_component_1.FontAwesomeComponent,
-                        data: {
-                            title: 'Font Awesome'
-                        }
-                    },
-                    {
-                        path: 'simple-line-icons',
-                        component: simple_line_icons_component_1.SimpleLineIconsComponent,
-                        data: {
-                            title: 'Simple Line Icons'
-                        }
-                    }
-                ]
-            },
-            {
-                path: 'widgets',
-                component: widgets_component_1.WidgetsComponent,
-                data: {
-                    title: 'Widgets'
-                }
-            },
-            {
-                path: 'charts',
-                component: charts_component_1.ChartsComponent,
-                data: {
-                    title: 'Charts'
-                }
-            }
-        ]
-    },
-    {
-        path: 'pages',
-        component: simple_layout_component_1.SimpleLayoutComponent,
-        data: {
-            title: 'Pages'
-        },
-        children: [
-            {
-                path: '404',
-                component: _404_component_1.p404Component,
-                data: {
-                    title: 'Page 404'
-                }
-            },
-            {
-                path: '500',
-                component: _500_component_1.p500Component,
-                data: {
-                    title: 'Page 500'
-                }
-            },
-            {
-                path: 'login',
-                component: login_component_1.LoginComponent,
-                data: {
-                    title: 'Login Page'
-                }
-            },
-            {
-                path: 'register',
-                component: register_component_1.RegisterComponent,
-                data: {
-                    title: 'Register Page'
-                }
-            }
-        ]
-    }
-];
-exports.routing = router_1.RouterModule.forRoot(appRoutes);
-//# sourceMappingURL=app.routing.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/app.routing.js.map b/demo/Angular2_Demo/app/app.routing.js.map
deleted file mode 100644
index 4efb5f11e1a4bd99f9de31b5ba2209b50c3ef344..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.routing.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"app.routing.js","sourceRoot":"","sources":["app.routing.ts"],"names":[],"mappings":";AAAA,uBAA6C,iBAAiB,CAAC,CAAA;AAE/D,SAAS;AACT,sCAA6C,iCAAiC,CAAC,CAAA;AAC/E,wCAA6C,mCAAmC,CAAC,CAAA;AAEjF,WAAW;AACX,oCAA6C,iCAAiC,CAAC,CAAA;AAE/E,YAAY;AACZ,kCAA6C,gCAAgC,CAAC,CAAA;AAC9E,gCAA6C,8BAA8B,CAAC,CAAA;AAC5E,gCAA6C,8BAA8B,CAAC,CAAA;AAC5E,yCAA6C,uCAAuC,CAAC,CAAA;AACrF,mCAA6C,iCAAiC,CAAC,CAAA;AAC/E,iCAA6C,+BAA+B,CAAC,CAAA;AAE7E,OAAO;AACP,uCAA6C,gCAAgC,CAAC,CAAA;AAC9E,4CAA6C,qCAAqC,CAAC,CAAA;AAEnF,SAAS;AACT,kCAA6C,6BAA6B,CAAC,CAAA;AAE3E,QAAQ;AACR,iCAA6C,2BAA2B,CAAC,CAAA;AAEzE,OAAO;AACP,+BAA6C,uBAAuB,CAAC,CAAA;AACrE,+BAA6C,uBAAuB,CAAC,CAAA;AACrE,gCAA6C,yBAAyB,CAAC,CAAA;AACvE,mCAA6C,4BAA4B,CAAC,CAAA;AAE1E,IAAM,SAAS,GAAW;IACtB;QACI,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,WAAW;QACvB,SAAS,EAAE,MAAM;KACpB;IACD;QACI,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,2CAAmB;QAC9B,IAAI,EAAE;YACF,KAAK,EAAE,MAAM;SAChB;QACD,QAAQ,EAAE;YACN;gBACI,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,wCAAkB;gBAC7B,IAAI,EAAE;oBACF,KAAK,EAAE,WAAW;iBACrB;aACJ;YACD;gBACI,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,oBAAoB;gBAChC,SAAS,EAAE,MAAM;aACpB;YACD;gBACI,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE;oBACF,KAAK,EAAE,YAAY;iBACtB;gBACD,QAAQ,EAAE;oBACN;wBACI,IAAI,EAAE,SAAS;wBACf,SAAS,EAAE,oCAAgB;wBAC3B,IAAI,EAAE;4BACF,KAAK,EAAE,SAAS;yBACnB;qBACJ;oBACD;wBACI,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE,gCAAc;wBACzB,IAAI,EAAE;4BACF,KAAK,EAAE,OAAO;yBACjB;qBACJ;oBACD;wBACI,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE,gCAAc;wBACzB,IAAI,EAAE;4BACF,KAAK,EAAE,OAAO;yBACjB;qBACJ;oBACD;wBACI,IAAI,EAAE,gBAAgB;wBACtB,SAAS,EAAE,iDAAsB;wBACjC,IAAI,EAAE;4BACF,KAAK,EAAE,gBAAgB;yBAC1B;qBACJ;oBACD;wBACI,IAAI,EAAE,UAAU;wBAChB,SAAS,EAAE,sCAAiB;wBAC5B,IAAI,EAAE;4BACF,KAAK,EAAE,UAAU;yBACpB;qBACJ;oBACD;wBACI,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,kCAAe;wBAC1B,IAAI,EAAE;4BACF,KAAK,EAAE,QAAQ;yBAClB;qBACJ;iBACJ;aACJ;YACD;gBACI,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,oBAAoB;gBAChC,SAAS,EAAE,MAAM;aACpB;YACD;gBACI,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE;oBACF,KAAK,EAAE,OAAO;iBACjB;gBACD,QAAQ,EAAE;oBACN;wBACI,IAAI,EAAE,cAAc;wBACpB,SAAS,EAAE,6CAAoB;wBAC/B,IAAI,EAAE;4BACF,KAAK,EAAE,cAAc;yBACxB;qBACJ;oBACD;wBACI,IAAI,EAAE,mBAAmB;wBACzB,SAAS,EAAE,sDAAwB;wBACnC,IAAI,EAAE;4BACF,KAAK,EAAE,mBAAmB;yBAC7B;qBACJ;iBACJ;aACJ;YACD;gBACI,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,oCAAgB;gBAC3B,IAAI,EAAE;oBACF,KAAK,EAAE,SAAS;iBACnB;aACJ;YACD;gBACI,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,kCAAe;gBAC1B,IAAI,EAAE;oBACF,KAAK,EAAE,QAAQ;iBAClB;aACJ;SACJ;KACJ;IACD;QACI,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,+CAAqB;QAChC,IAAI,EAAE;YACF,KAAK,EAAE,OAAO;SACjB;QACD,QAAQ,EAAE;YACN;gBACI,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,8BAAa;gBACxB,IAAI,EAAE;oBACF,KAAK,EAAE,UAAU;iBACpB;aACJ;YACD;gBACI,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,8BAAa;gBACxB,IAAI,EAAE;oBACF,KAAK,EAAE,UAAU;iBACpB;aACJ;YACD;gBACI,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,gCAAc;gBACzB,IAAI,EAAE;oBACF,KAAK,EAAE,YAAY;iBACtB;aACJ;YACD;gBACI,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,sCAAiB;gBAC5B,IAAI,EAAE;oBACF,KAAK,EAAE,eAAe;iBACzB;aACJ;SACJ;KACJ;CACJ,CAAC;AAEW,eAAO,GAAG,qBAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/app.routing.ts b/demo/Angular2_Demo/app/app.routing.ts
deleted file mode 100644
index 9752f63d763041fc7cf70982e20763c5ebbe8502..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/app.routing.ts
+++ /dev/null
@@ -1,191 +0,0 @@
-import { Routes, RouterModule }         from '@angular/router';
-
-//Layouts
-import { FullLayoutComponent }          from './layouts/full-layout.component';
-import { SimpleLayoutComponent }        from './layouts/simple-layout.component';
-
-//Main view
-import { DashboardComponent }           from './dashboard/dashboard.component';
-
-//Components
-import { ButtonsComponent }             from './components/buttons.component';
-import { CardsComponent }               from './components/cards.component';
-import { FormsComponent }               from './components/forms.component';
-import { SocialButtonsComponent }       from './components/social-buttons.component';
-import { SwitchesComponent }            from './components/switches.component';
-import { TablesComponent }              from './components/tables.component';
-
-//Icons
-import { FontAwesomeComponent }         from './icons/font-awesome.component';
-import { SimpleLineIconsComponent }     from './icons/simple-line-icons.component';
-
-//Widgets
-import { WidgetsComponent }             from './widgets/widgets.component';
-
-//Charts
-import { ChartsComponent }              from './charts/charts.component';
-
-//Pages
-import { p404Component }                from './pages/404.component';
-import { p500Component }                from './pages/500.component';
-import { LoginComponent }               from './pages/login.component';
-import { RegisterComponent }            from './pages/register.component';
-
-const appRoutes: Routes = [
-    {
-        path: '',
-        redirectTo: 'dashboard',
-        pathMatch: 'full',
-    },
-    {
-        path: '',
-        component: FullLayoutComponent,
-        data: {
-            title: 'Home'
-        },
-        children: [
-            {
-                path: 'dashboard',
-                component: DashboardComponent,
-                data: {
-                    title: 'Dashboard'
-                }
-            },
-            {
-                path: 'components',
-                redirectTo: 'components/buttons',
-                pathMatch: 'full',
-            },
-            {
-                path: 'components',
-                data: {
-                    title: 'Components'
-                },
-                children: [
-                    {
-                        path: 'buttons',
-                        component: ButtonsComponent,
-                        data: {
-                            title: 'Buttons'
-                        }
-                    },
-                    {
-                        path: 'cards',
-                        component: CardsComponent,
-                        data: {
-                            title: 'Cards'
-                        }
-                    },
-                    {
-                        path: 'forms',
-                        component: FormsComponent,
-                        data: {
-                            title: 'Forms'
-                        }
-                    },
-                    {
-                        path: 'social-buttons',
-                        component: SocialButtonsComponent,
-                        data: {
-                            title: 'Social buttons'
-                        }
-                    },
-                    {
-                        path: 'switches',
-                        component: SwitchesComponent,
-                        data: {
-                            title: 'Switches'
-                        }
-                    },
-                    {
-                        path: 'tables',
-                        component: TablesComponent,
-                        data: {
-                            title: 'Tables'
-                        }
-                    }
-                ]
-            },
-            {
-                path: 'icons',
-                redirectTo: 'icons/font-awesome',
-                pathMatch: 'full',
-            },
-            {
-                path: 'icons',
-                data: {
-                    title: 'Icons'
-                },
-                children: [
-                    {
-                        path: 'font-awesome',
-                        component: FontAwesomeComponent,
-                        data: {
-                            title: 'Font Awesome'
-                        }
-                    },
-                    {
-                        path: 'simple-line-icons',
-                        component: SimpleLineIconsComponent,
-                        data: {
-                            title: 'Simple Line Icons'
-                        }
-                    }
-                ]
-            },
-            {
-                path: 'widgets',
-                component: WidgetsComponent,
-                data: {
-                    title: 'Widgets'
-                }
-            },
-            {
-                path: 'charts',
-                component: ChartsComponent,
-                data: {
-                    title: 'Charts'
-                }
-            }
-        ]
-    },
-    {
-        path: 'pages',
-        component: SimpleLayoutComponent,
-        data: {
-            title: 'Pages'
-        },
-        children: [
-            {
-                path: '404',
-                component: p404Component,
-                data: {
-                    title: 'Page 404'
-                }
-            },
-            {
-                path: '500',
-                component: p500Component,
-                data: {
-                    title: 'Page 500'
-                }
-            },
-            {
-                path: 'login',
-                component: LoginComponent,
-                data: {
-                    title: 'Login Page'
-                }
-            },
-            {
-                path: 'register',
-                component: RegisterComponent,
-                data: {
-                    title: 'Register Page'
-                }
-            }
-        ]
-    }
-];
-
-export const routing = RouterModule.forRoot(appRoutes);
diff --git a/demo/Angular2_Demo/app/charts/charts.component.html b/demo/Angular2_Demo/app/charts/charts.component.html
deleted file mode 100644
index acc76f17aa67d8c305314f1a8b8da8ce9304f47b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/charts/charts.component.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<div class="animated fadeIn">
-    <div class="card-columns col-2">
-        <div class="card">
-            <div class="card-header">
-                Line Chart
-                <div class="card-actions">
-                    <a href="http://www.chartjs.org">
-                        <small class="text-muted">docs</small>
-                    </a>
-                </div>
-            </div>
-            <div class="card-block">
-                <div class="chart-wrapper">
-                    <base-chart class="chart" [datasets]="lineChartData" [labels]="lineChartLabels" [options]="lineChartOptions" [colors]="lineChartColours" [legend]="lineChartLegend" [chartType]="lineChartType" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"></base-chart>
-                </div>
-            </div>
-        </div>
-        <div class="card">
-            <div class="card-header">
-                Bar Chart
-                <div class="card-actions">
-                    <a href="http://www.chartjs.org">
-                        <small class="text-muted">docs</small>
-                    </a>
-                </div>
-            </div>
-            <div class="card-block">
-                <div class="chart-wrapper">
-                    <base-chart class="chart" [datasets]="barChartData" [labels]="barChartLabels" [options]="barChartOptions" [legend]="barChartLegend" [chartType]="barChartType" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"></base-chart>
-                </div>
-            </div>
-        </div>
-        <div class="card">
-            <div class="card-header">
-                Doughnut Chart
-                <div class="card-actions">
-                    <a href="http://www.chartjs.org">
-                        <small class="text-muted">docs</small>
-                    </a>
-                </div>
-            </div>
-            <div class="card-block">
-                <div class="chart-wrapper">
-                    <base-chart class="chart" [data]="doughnutChartData" [labels]="doughnutChartLabels" [chartType]="doughnutChartType" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"></base-chart>
-                </div>
-            </div>
-        </div>
-        <div class="card">
-            <div class="card-header">
-                Radar Chart
-                <div class="card-actions">
-                    <a href="http://www.chartjs.org">
-                        <small class="text-muted">docs</small>
-                    </a>
-                </div>
-            </div>
-            <div class="card-block">
-                <div class="chart-wrapper">
-                    <base-chart class="chart" [datasets]="radarChartData" [labels]="radarChartLabels" [chartType]="radarChartType" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"></base-chart>
-                </div>
-            </div>
-        </div>
-        <div class="card">
-            <div class="card-header">
-                Pie Chart
-                <div class="card-actions">
-                    <a href="http://www.chartjs.org">
-                        <small class="text-muted">docs</small>
-                    </a>
-                </div>
-            </div>
-            <div class="card-block">
-                <div class="chart-wrapper">
-                    <base-chart class="chart" [data]="pieChartData" [labels]="pieChartLabels" [chartType]="pieChartType" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"></base-chart>
-                </div>
-            </div>
-        </div>
-        <div class="card">
-            <div class="card-header">
-                Polar Area Chart
-                <div class="card-actions">
-                    <a href="http://www.chartjs.org">
-                        <small class="text-muted">docs</small>
-                    </a>
-                </div>
-            </div>
-            <div class="card-block">
-                <div class="chart-wrapper">
-                    <base-chart class="chart" [data]="polarAreaChartData" [labels]="polarAreaChartLabels" [legend]="polarAreaLegend" [chartType]="polarAreaChartType" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"></base-chart>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
diff --git a/demo/Angular2_Demo/app/charts/charts.component.js b/demo/Angular2_Demo/app/charts/charts.component.js
deleted file mode 100644
index 79a78a791f046cb3bb16ccd372f0d9356514e937..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/charts/charts.component.js
+++ /dev/null
@@ -1,104 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var ng2_charts_1 = require('ng2-charts/ng2-charts');
-var ChartsComponent = (function () {
-    function ChartsComponent() {
-        // lineChart
-        this.lineChartData = [
-            { data: [65, 59, 80, 81, 56, 55, 40], label: 'Series A' },
-            { data: [28, 48, 40, 19, 86, 27, 90], label: 'Series B' },
-            { data: [18, 48, 77, 9, 100, 27, 40], label: 'Series C' }
-        ];
-        this.lineChartLabels = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-        this.lineChartOptions = {
-            animation: false,
-            responsive: true
-        };
-        this.lineChartColours = [
-            {
-                backgroundColor: 'rgba(148,159,177,0.2)',
-                borderColor: 'rgba(148,159,177,1)',
-                pointBackgroundColor: 'rgba(148,159,177,1)',
-                pointBorderColor: '#fff',
-                pointHoverBackgroundColor: '#fff',
-                pointHoverBorderColor: 'rgba(148,159,177,0.8)'
-            },
-            {
-                backgroundColor: 'rgba(77,83,96,0.2)',
-                borderColor: 'rgba(77,83,96,1)',
-                pointBackgroundColor: 'rgba(77,83,96,1)',
-                pointBorderColor: '#fff',
-                pointHoverBackgroundColor: '#fff',
-                pointHoverBorderColor: 'rgba(77,83,96,1)'
-            },
-            {
-                backgroundColor: 'rgba(148,159,177,0.2)',
-                borderColor: 'rgba(148,159,177,1)',
-                pointBackgroundColor: 'rgba(148,159,177,1)',
-                pointBorderColor: '#fff',
-                pointHoverBackgroundColor: '#fff',
-                pointHoverBorderColor: 'rgba(148,159,177,0.8)'
-            }
-        ];
-        this.lineChartLegend = true;
-        this.lineChartType = 'line';
-        // barChart
-        this.barChartOptions = {
-            scaleShowVerticalLines: false,
-            responsive: true
-        };
-        this.barChartLabels = ['2006', '2007', '2008', '2009', '2010', '2011', '2012'];
-        this.barChartType = 'bar';
-        this.barChartLegend = true;
-        this.barChartData = [
-            { data: [65, 59, 80, 81, 56, 55, 40], label: 'Series A' },
-            { data: [28, 48, 40, 19, 86, 27, 90], label: 'Series B' }
-        ];
-        // Doughnut
-        this.doughnutChartLabels = ['Download Sales', 'In-Store Sales', 'Mail-Order Sales'];
-        this.doughnutChartData = [350, 450, 100];
-        this.doughnutChartType = 'doughnut';
-        // Radar
-        this.radarChartLabels = ['Eating', 'Drinking', 'Sleeping', 'Designing', 'Coding', 'Cycling', 'Running'];
-        this.radarChartData = [
-            { data: [65, 59, 90, 81, 56, 55, 40], label: 'Series A' },
-            { data: [28, 48, 40, 19, 96, 27, 100], label: 'Series B' }
-        ];
-        this.radarChartType = 'radar';
-        // Pie
-        this.pieChartLabels = ['Download Sales', 'In-Store Sales', 'Mail Sales'];
-        this.pieChartData = [300, 500, 100];
-        this.pieChartType = 'pie';
-        // PolarArea
-        this.polarAreaChartLabels = ['Download Sales', 'In-Store Sales', 'Mail Sales', 'Telesales', 'Corporate Sales'];
-        this.polarAreaChartData = [300, 500, 100, 40, 120];
-        this.polarAreaLegend = true;
-        this.polarAreaChartType = 'polarArea';
-    }
-    // events
-    ChartsComponent.prototype.chartClicked = function (e) {
-        console.log(e);
-    };
-    ChartsComponent.prototype.chartHovered = function (e) {
-        console.log(e);
-    };
-    ChartsComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/charts/charts.component.html',
-            directives: [ng2_charts_1.CHART_DIRECTIVES]
-        }), 
-        __metadata('design:paramtypes', [])
-    ], ChartsComponent);
-    return ChartsComponent;
-}());
-exports.ChartsComponent = ChartsComponent;
-//# sourceMappingURL=charts.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/charts/charts.component.js.map b/demo/Angular2_Demo/app/charts/charts.component.js.map
deleted file mode 100644
index c70df23161afeb90492a5edb3d03c23b851e8605..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/charts/charts.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"charts.component.js","sourceRoot":"","sources":["charts.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AACjD,2BAAiC,uBAAuB,CAAC,CAAA;AAOzD;IAEI;QAWA,YAAY;QACL,kBAAa,GAAc;YAC9B,EAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAC;YACvD,EAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAC;YACvD,EAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAC;SAC1D,CAAC;QACK,oBAAe,GAAc,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9F,qBAAgB,GAAO;YAC1B,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,IAAI;SACnB,CAAC;QACK,qBAAgB,GAAc;YACjC;gBACI,eAAe,EAAE,uBAAuB;gBACxC,WAAW,EAAE,qBAAqB;gBAClC,oBAAoB,EAAE,qBAAqB;gBAC3C,gBAAgB,EAAE,MAAM;gBACxB,yBAAyB,EAAE,MAAM;gBACjC,qBAAqB,EAAE,uBAAuB;aACjD;YACD;gBACI,eAAe,EAAE,oBAAoB;gBACrC,WAAW,EAAE,kBAAkB;gBAC/B,oBAAoB,EAAE,kBAAkB;gBACxC,gBAAgB,EAAE,MAAM;gBACxB,yBAAyB,EAAE,MAAM;gBACjC,qBAAqB,EAAE,kBAAkB;aAC5C;YACD;gBACI,eAAe,EAAE,uBAAuB;gBACxC,WAAW,EAAE,qBAAqB;gBAClC,oBAAoB,EAAE,qBAAqB;gBAC3C,gBAAgB,EAAE,MAAM;gBACxB,yBAAyB,EAAE,MAAM;gBACjC,qBAAqB,EAAE,uBAAuB;aACjD;SACJ,CAAC;QACK,oBAAe,GAAW,IAAI,CAAC;QAC/B,kBAAa,GAAU,MAAM,CAAC;QAErC,WAAW;QACJ,oBAAe,GAAO;YACzB,sBAAsB,EAAE,KAAK;YAC7B,UAAU,EAAE,IAAI;SACnB,CAAC;QACK,mBAAc,GAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACnF,iBAAY,GAAU,KAAK,CAAC;QAC5B,mBAAc,GAAW,IAAI,CAAC;QAE9B,iBAAY,GAAS;YACxB,EAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAC,UAAU,EAAC;YACtD,EAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAC,UAAU,EAAC;SACzD,CAAC;QAEF,WAAW;QACJ,wBAAmB,GAAY,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QACxF,sBAAiB,GAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7C,sBAAiB,GAAU,UAAU,CAAC;QAE7C,QAAQ;QACD,qBAAgB,GAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAE5G,mBAAc,GAAO;YACxB,EAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAC;YACvD,EAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAC;SAC3D,CAAC;QACK,mBAAc,GAAU,OAAO,CAAC;QAEvC,MAAM;QACC,mBAAc,GAAY,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC7E,iBAAY,GAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,iBAAY,GAAU,KAAK,CAAC;QAEnC,YAAY;QACL,yBAAoB,GAAY,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACnH,uBAAkB,GAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACvD,oBAAe,GAAW,IAAI,CAAC;QAE/B,uBAAkB,GAAU,WAAW,CAAC;IAzF/B,CAAC;IAEjB,SAAS;IACF,sCAAY,GAAnB,UAAoB,CAAK;QACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAEM,sCAAY,GAAnB,UAAoB,CAAK;QACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAfL;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,kCAAkC;YAC/C,UAAU,EAAE,CAAE,6BAAgB,CAAE;SACnC,CAAC;;uBAAA;IA8FF,sBAAC;AAAD,CAAC,AA7FD,IA6FC;AA7FY,uBAAe,kBA6F3B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/charts/charts.component.ts b/demo/Angular2_Demo/app/charts/charts.component.ts
deleted file mode 100644
index 68b043a11003225beb612fe7358a441214162d61..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/charts/charts.component.ts
+++ /dev/null
@@ -1,102 +0,0 @@
-import { Component }        from '@angular/core';
-import { CHART_DIRECTIVES } from 'ng2-charts/ng2-charts';
-
-
-@Component({
-    templateUrl: 'app/charts/charts.component.html',
-    directives: [ CHART_DIRECTIVES ]
-})
-export class ChartsComponent {
-
-    constructor() { }
-
-    // events
-    public chartClicked(e:any):void {
-        console.log(e);
-    }
-
-    public chartHovered(e:any):void {
-        console.log(e);
-    }
-
-    // lineChart
-    public lineChartData:Array<any> = [
-        {data: [65, 59, 80, 81, 56, 55, 40], label: 'Series A'},
-        {data: [28, 48, 40, 19, 86, 27, 90], label: 'Series B'},
-        {data: [18, 48, 77, 9, 100, 27, 40], label: 'Series C'}
-    ];
-    public lineChartLabels:Array<any> = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-    public lineChartOptions:any = {
-        animation: false,
-        responsive: true
-    };
-    public lineChartColours:Array<any> = [
-        { // grey
-            backgroundColor: 'rgba(148,159,177,0.2)',
-            borderColor: 'rgba(148,159,177,1)',
-            pointBackgroundColor: 'rgba(148,159,177,1)',
-            pointBorderColor: '#fff',
-            pointHoverBackgroundColor: '#fff',
-            pointHoverBorderColor: 'rgba(148,159,177,0.8)'
-        },
-        { // dark grey
-            backgroundColor: 'rgba(77,83,96,0.2)',
-            borderColor: 'rgba(77,83,96,1)',
-            pointBackgroundColor: 'rgba(77,83,96,1)',
-            pointBorderColor: '#fff',
-            pointHoverBackgroundColor: '#fff',
-            pointHoverBorderColor: 'rgba(77,83,96,1)'
-        },
-        { // grey
-            backgroundColor: 'rgba(148,159,177,0.2)',
-            borderColor: 'rgba(148,159,177,1)',
-            pointBackgroundColor: 'rgba(148,159,177,1)',
-            pointBorderColor: '#fff',
-            pointHoverBackgroundColor: '#fff',
-            pointHoverBorderColor: 'rgba(148,159,177,0.8)'
-        }
-    ];
-    public lineChartLegend:boolean = true;
-    public lineChartType:string = 'line';
-
-    // barChart
-    public barChartOptions:any = {
-        scaleShowVerticalLines: false,
-        responsive: true
-    };
-    public barChartLabels:string[] = ['2006', '2007', '2008', '2009', '2010', '2011', '2012'];
-    public barChartType:string = 'bar';
-    public barChartLegend:boolean = true;
-
-    public barChartData:any[] = [
-        {data: [65, 59, 80, 81, 56, 55, 40], label:'Series A'},
-        {data: [28, 48, 40, 19, 86, 27, 90], label:'Series B'}
-    ];
-
-    // Doughnut
-    public doughnutChartLabels:string[] = ['Download Sales', 'In-Store Sales', 'Mail-Order Sales'];
-    public doughnutChartData:number[] = [350, 450, 100];
-    public doughnutChartType:string = 'doughnut';
-
-    // Radar
-    public radarChartLabels:string[] = ['Eating', 'Drinking', 'Sleeping', 'Designing', 'Coding', 'Cycling', 'Running'];
-
-    public radarChartData:any = [
-        {data: [65, 59, 90, 81, 56, 55, 40], label: 'Series A'},
-        {data: [28, 48, 40, 19, 96, 27, 100], label: 'Series B'}
-    ];
-    public radarChartType:string = 'radar';
-
-    // Pie
-    public pieChartLabels:string[] = ['Download Sales', 'In-Store Sales', 'Mail Sales'];
-    public pieChartData:number[] = [300, 500, 100];
-    public pieChartType:string = 'pie';
-
-    // PolarArea
-    public polarAreaChartLabels:string[] = ['Download Sales', 'In-Store Sales', 'Mail Sales', 'Telesales', 'Corporate Sales'];
-    public polarAreaChartData:number[] = [300, 500, 100, 40, 120];
-    public polarAreaLegend:boolean = true;
-
-    public polarAreaChartType:string = 'polarArea';
-
-}
diff --git a/demo/Angular2_Demo/app/components/buttons.component.html b/demo/Angular2_Demo/app/components/buttons.component.html
deleted file mode 100644
index 94037bde7e32a6b57e5206a79df5d15835baded2..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/buttons.component.html
+++ /dev/null
@@ -1,264 +0,0 @@
-<div class="animated fadeIn">
-    <div class="row">
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Options</strong>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-primary">Primary</button>
-                    <button type="button" class="btn btn-secondary">Secondary</button>
-                    <button type="button" class="btn btn-success">Success</button>
-                    <button type="button" class="btn btn-warning">Warning</button>
-                    <button type="button" class="btn btn-danger">Danger</button>
-                    <button type="button" class="btn btn-link">Link</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>With Icons</strong>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-primary"><i class="fa fa-star"></i>&nbsp; Primary</button>
-                    <button type="button" class="btn btn-secondary"><i class="fa fa-lightbulb-o"></i>&nbsp; Secondary</button>
-                    <button type="button" class="btn btn-success"><i class="fa fa-magic"></i>&nbsp; Success</button>
-                    <button type="button" class="btn btn-warning"><i class="fa fa-map-marker"></i>&nbsp; Warning</button>
-                    <button type="button" class="btn btn-danger"><i class="fa fa-rss"></i>&nbsp; Danger</button>
-                    <button type="button" class="btn btn-link"><i class="fa fa-link"></i>&nbsp; Link</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Size Large</strong>
-                    <small>Add this class
-                        <code>.btn-lg</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-primary btn-lg">Primary</button>
-                    <button type="button" class="btn btn-secondary btn-lg">Secondary</button>
-                    <button type="button" class="btn btn-success btn-lg">Success</button>
-                    <button type="button" class="btn btn-info btn-lg">Info</button>
-                    <button type="button" class="btn btn-warning btn-lg">Warning</button>
-                    <button type="button" class="btn btn-danger btn-lg">Danger</button>
-                    <button type="button" class="btn btn-link btn-lg">Link</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Size Small</strong>
-                    <small>Add this class
-                        <code>.btn-sm</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-primary btn-sm">Primary</button>
-                    <button type="button" class="btn btn-secondary btn-sm">Secondary</button>
-                    <button type="button" class="btn btn-success btn-sm">Success</button>
-                    <button type="button" class="btn btn-info btn-sm">Info</button>
-                    <button type="button" class="btn btn-warning btn-sm">Warning</button>
-                    <button type="button" class="btn btn-danger btn-sm">Danger</button>
-                    <button type="button" class="btn btn-link btn-sm">Link</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Size Extra Small</strong>
-                    <small>Add this class
-                        <code>.btn-xs</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-primary btn-xs">Primary</button>
-                    <button type="button" class="btn btn-secondary btn-xs">Secondary</button>
-                    <button type="button" class="btn btn-success btn-xs">Success</button>
-                    <button type="button" class="btn btn-info btn-xs">Info</button>
-                    <button type="button" class="btn btn-warning btn-xs">Warning</button>
-                    <button type="button" class="btn btn-danger btn-xs">Danger</button>
-                    <button type="button" class="btn btn-link btn-xs">Link</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Disabled state</strong>
-                    <small>Add this
-                        <code>disabled="disabled"</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-primary" disabled="disabled">Primary</button>
-                    <button type="button" class="btn btn-secondary" disabled="disabled">Secondary</button>
-                    <button type="button" class="btn btn-success" disabled="disabled">Success</button>
-                    <button type="button" class="btn btn-info" disabled="disabled">Info</button>
-                    <button type="button" class="btn btn-warning" disabled="disabled">Warning</button>
-                    <button type="button" class="btn btn-danger" disabled="disabled">Danger</button>
-                    <button type="button" class="btn btn-link" disabled="disabled">Link</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Active state</strong>
-                    <small>Add this class
-                        <code>.active</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-primary active">Primary</button>
-                    <button type="button" class="btn btn-secondary active">Secondary</button>
-                    <button type="button" class="btn btn-success active">Success</button>
-                    <button type="button" class="btn btn-info active">Info</button>
-                    <button type="button" class="btn btn-warning active">Warning</button>
-                    <button type="button" class="btn btn-danger active">Danger</button>
-                    <button type="button" class="btn btn-link active">Link</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Block Level Buttons</strong>
-                    <small>Add this class
-                        <code>.btn-block</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-secondary btn-lg btn-block">Block level button</button>
-                    <button type="button" class="btn btn-primary btn-lg btn-block">Block level button</button>
-                    <button type="button" class="btn btn-success btn-lg btn-block">Block level button</button>
-                    <button type="button" class="btn btn-info btn-lg btn-block">Block level button</button>
-                    <button type="button" class="btn btn-warning btn-lg btn-block">Block level button</button>
-                    <button type="button" class="btn btn-danger btn-lg btn-block">Block level button</button>
-                    <button type="button" class="btn btn-link btn-lg btn-block">Block level button</button>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Options</strong>
-                </div>
-                <div class="card-block">
-                    <!-- Provides extra visual weight and identifies the primary action in a set of buttons -->
-                    <button type="button" class="btn btn-outline-primary">Primary</button>
-                    <!-- Secondary, outline button -->
-                    <button type="button" class="btn btn-outline-secondary">Secondary</button>
-                    <!-- Indicates a successful or positive action -->
-                    <button type="button" class="btn btn-outline-success">Success</button>
-                    <!-- Indicates caution should be taken with this action -->
-                    <button type="button" class="btn btn-outline-warning">Warning</button>
-                    <!-- Indicates a dangerous or potentially negative action -->
-                    <button type="button" class="btn btn-outline-danger">Danger</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>With Icons</strong>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-outline-primary"><i class="fa fa-star"></i>&nbsp; Primary</button>
-                    <button type="button" class="btn btn-outline-secondary"><i class="fa fa-lightbulb-o"></i>&nbsp; Secondary</button>
-                    <button type="button" class="btn btn-outline-success"><i class="fa fa-magic"></i>&nbsp; Success</button>
-                    <button type="button" class="btn btn-outline-warning"><i class="fa fa-map-marker"></i>&nbsp; Warning</button>
-                    <button type="button" class="btn btn-outline-danger"><i class="fa fa-rss"></i>&nbsp; Danger</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Size Large</strong>
-                    <small>Add this class
-                        <code>.btn-lg</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-outline-primary btn-lg">Primary</button>
-                    <button type="button" class="btn btn-outline-secondary btn-lg">Secondary</button>
-                    <button type="button" class="btn btn-outline-success btn-lg">Success</button>
-                    <button type="button" class="btn btn-outline-info btn-lg">Info</button>
-                    <button type="button" class="btn btn-outline-warning btn-lg">Warning</button>
-                    <button type="button" class="btn btn-outline-danger btn-lg">Danger</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Size Small</strong>
-                    <small>Add this class
-                        <code>.btn-sm</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-outline-primary btn-sm">Primary</button>
-                    <button type="button" class="btn btn-outline-secondary btn-sm">Secondary</button>
-                    <button type="button" class="btn btn-outline-success btn-sm">Success</button>
-                    <button type="button" class="btn btn-outline-info btn-sm">Info</button>
-                    <button type="button" class="btn btn-outline-warning btn-sm">Warning</button>
-                    <button type="button" class="btn btn-outline-danger btn-sm">Danger</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Size Extra Small</strong>
-                    <small>Add this class
-                        <code>.btn-xs</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-outline-primary btn-xs">Primary</button>
-                    <button type="button" class="btn btn-outline-secondary btn-xs">Secondary</button>
-                    <button type="button" class="btn btn-outline-success btn-xs">Success</button>
-                    <button type="button" class="btn btn-outline-info btn-xs">Info</button>
-                    <button type="button" class="btn btn-outline-warning btn-xs">Warning</button>
-                    <button type="button" class="btn btn-outline-danger btn-xs">Danger</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Disabled state</strong>
-                    <small>Add this
-                        <code>disabled="disabled"</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-outline-primary" disabled="disabled">Primary</button>
-                    <button type="button" class="btn btn-outline-secondary" disabled="disabled">Secondary</button>
-                    <button type="button" class="btn btn-success" disabled="disabled">Success</button>
-                    <button type="button" class="btn btn-outline-info" disabled="disabled">Info</button>
-                    <button type="button" class="btn btn-outline-warning" disabled="disabled">Warning</button>
-                    <button type="button" class="btn btn-outline-danger" disabled="disabled">Danger</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Active state</strong>
-                    <small>Add this class
-                        <code>.active</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-outline-primary active">Primary</button>
-                    <button type="button" class="btn btn-outline-secondary active">Secondary</button>
-                    <button type="button" class="btn btn-outline-success active">Success</button>
-                    <button type="button" class="btn btn-outline-info active">Info</button>
-                    <button type="button" class="btn btn-outline-warning active">Warning</button>
-                    <button type="button" class="btn btn-outline-danger active">Danger</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Block Level Buttons</strong>
-                    <small>Add this class
-                        <code>.btn-block</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <button type="button" class="btn btn-outline-secondary btn-lg btn-block">Block level button</button>
-                    <button type="button" class="btn btn-outline-primary btn-lg btn-block">Block level button</button>
-                    <button type="button" class="btn btn-outline-success btn-lg btn-block">Block level button</button>
-                    <button type="button" class="btn btn-outline-info btn-lg btn-block">Block level button</button>
-                    <button type="button" class="btn btn-outline-warning btn-lg btn-block">Block level button</button>
-                    <button type="button" class="btn btn-outline-danger btn-lg btn-block">Block level button</button>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-</div>
diff --git a/demo/Angular2_Demo/app/components/buttons.component.js b/demo/Angular2_Demo/app/components/buttons.component.js
deleted file mode 100644
index 4f7952a7bcab1de798488ea235051d4e68ad5672..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/buttons.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var ButtonsComponent = (function () {
-    function ButtonsComponent() {
-    }
-    ButtonsComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/components/buttons.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], ButtonsComponent);
-    return ButtonsComponent;
-}());
-exports.ButtonsComponent = ButtonsComponent;
-//# sourceMappingURL=buttons.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/buttons.component.js.map b/demo/Angular2_Demo/app/components/buttons.component.js.map
deleted file mode 100644
index ec10d84ec1bf28f614e3585b9382bd51047d4579..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/buttons.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"buttons.component.js","sourceRoot":"","sources":["buttons.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,uCAAuC;SACvD,CAAC;;wBAAA;IAKF,uBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,wBAAgB,mBAI5B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/buttons.component.ts b/demo/Angular2_Demo/app/components/buttons.component.ts
deleted file mode 100644
index 00dbbf59be2a7f0fd9291c97b417adb39ade726a..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/buttons.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/components/buttons.component.html'
-})
-export class ButtonsComponent {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/components/cards.component.html b/demo/Angular2_Demo/app/components/cards.component.html
deleted file mode 100644
index d6284182f12dfec8c1fd7ae76f8d07f7371ef103..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/cards.component.html
+++ /dev/null
@@ -1,279 +0,0 @@
-<div class="animated fadeIn">
-    <div class="row">
-        <div class="col-sm-6 col-md-4">
-            <div class="card">
-                <div class="card-header">
-                    Card title
-                </div>
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card">
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-                <div class="card-footer">Card footer</div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-default">
-                <div class="card-header">
-                    Card Minimized
-                    <small>Add this class
-                        <code>.panel-minimized</code>
-                    </small>
-                    <div class="card-actions">
-                        <a href="#" class="btn-minimize"><i class="icon-arrow-up"></i></a>
-                    </div>
-                </div>
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card">
-                <div class="card-header">
-                    <i class="fa fa-check"></i>Card with icon
-                </div>
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card">
-                <div class="card-header">
-                    Card with switch
-                    <label class="switch switch-sm switch-text switch-info pull-right m-b-0">
-                        <input type="checkbox" class="switch-input">
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card">
-                <div class="card-header">
-                    Card with label
-                    <span class="tag tag-success pull-right">Success</span>
-                </div>
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card">
-                <div class="card-header">
-                    Card with label
-                    <span class="tag tag-pill tag-danger pull-right">42</span>
-                </div>
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card">
-                <div class="card-header">
-                    Card with tabs
-                    <ul class="nav nav-tabs pull-right" role="tablist">
-                        <li class="nav-item">
-                            <a tab class="nav-link active" data-toggle="tab" href="#home" role="tab">Home</a>
-                        </li>
-                        <li class="nav-item">
-                            <a tab class="nav-link" data-toggle="tab" href="#profile" role="tab">Profile</a>
-                        </li>
-                        <li class="nav-item">
-                            <a tab class="nav-link" data-toggle="tab" href="#messages" role="tab">Messages</a>
-                        </li>
-                    </ul>
-                </div>
-                <div class="card-block">
-                    <div class="tab-content">
-                        <div class="tab-pane active" id="home" role="tabpanel">
-                            1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip
-                            ex ea commodo consequat.
-                        </div>
-                        <div class="tab-pane" id="profile" role="tabpanel">
-                            2. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip
-                            ex ea commodo consequat.
-                        </div>
-                        <div class="tab-pane" id="messages" role="tabpanel">
-                            3. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip
-                            ex ea commodo consequat.
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-    <div class="row">
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-inverse card-primary text-xs-center">
-                <div class="card-block">
-                    <blockquote class="card-blockquote">
-                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
-                        <footer>Someone famous in
-                            <cite title="Source Title">Source Title</cite>
-                        </footer>
-                    </blockquote>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-inverse card-success text-xs-center">
-                <div class="card-block">
-                    <blockquote class="card-blockquote">
-                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
-                        <footer>Someone famous in
-                            <cite title="Source Title">Source Title</cite>
-                        </footer>
-                    </blockquote>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-inverse card-info text-xs-center">
-                <div class="card-block">
-                    <blockquote class="card-blockquote">
-                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
-                        <footer>Someone famous in
-                            <cite title="Source Title">Source Title</cite>
-                        </footer>
-                    </blockquote>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-inverse card-warning text-xs-center">
-                <div class="card-block">
-                    <blockquote class="card-blockquote">
-                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
-                        <footer>Someone famous in
-                            <cite title="Source Title">Source Title</cite>
-                        </footer>
-                    </blockquote>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-inverse card-danger text-xs-center">
-                <div class="card-block">
-                    <blockquote class="card-blockquote">
-                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
-                        <footer>Someone famous in
-                            <cite title="Source Title">Source Title</cite>
-                        </footer>
-                    </blockquote>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-inverse card-primary text-xs-center">
-                <div class="card-block">
-                    <blockquote class="card-blockquote">
-                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
-                        <footer>Someone famous in
-                            <cite title="Source Title">Source Title</cite>
-                        </footer>
-                    </blockquote>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-    <div class="row">
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-inverse card-primary">
-                <div class="card-header">
-                    Card title
-                </div>
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-inverse card-success">
-                <div class="card-header">
-                    Card title
-                </div>
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-inverse card-info">
-                <div class="card-header">
-                    Card title
-                </div>
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-inverse card-warning">
-                <div class="card-header">
-                    Card title
-                </div>
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-md-4">
-            <div class="card card-inverse card-danger">
-                <div class="card-header">
-                    Card title
-                </div>
-                <div class="card-block">
-                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
-                    ea commodo consequat.
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-</div>
diff --git a/demo/Angular2_Demo/app/components/cards.component.js b/demo/Angular2_Demo/app/components/cards.component.js
deleted file mode 100644
index 0b10f9f18868723747ebef37f2d41b2b6a11de3f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/cards.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var CardsComponent = (function () {
-    function CardsComponent() {
-    }
-    CardsComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/components/cards.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], CardsComponent);
-    return CardsComponent;
-}());
-exports.CardsComponent = CardsComponent;
-//# sourceMappingURL=cards.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/cards.component.js.map b/demo/Angular2_Demo/app/components/cards.component.js.map
deleted file mode 100644
index e876e747d94f9221c8ce60f740af41767a08476f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/cards.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"cards.component.js","sourceRoot":"","sources":["cards.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,qCAAqC;SACrD,CAAC;;sBAAA;IAKF,qBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,sBAAc,iBAI1B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/cards.component.ts b/demo/Angular2_Demo/app/components/cards.component.ts
deleted file mode 100644
index bb7b0b8d4d09552b41a3d79ba1b474a0b99f8cde..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/cards.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/components/cards.component.html'
-})
-export class CardsComponent {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/components/forms.component.html b/demo/Angular2_Demo/app/components/forms.component.html
deleted file mode 100644
index 97a0f81aa207250e78ec616a3911b2de3bf03b9c..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/forms.component.html
+++ /dev/null
@@ -1,1039 +0,0 @@
-<div class="animated fadeIn">
-    <div class="row">
-        <div class="col-sm-6">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Credit Card</strong>
-                    <small>Form</small>
-                </div>
-                <div class="card-block">
-                    <div class="row">
-                        <div class="col-sm-12">
-                            <div class="form-group">
-                                <label for="name">Name</label>
-                                <input type="text" class="form-control" id="name" placeholder="Enter your name">
-                            </div>
-                        </div>
-                    </div>
-                    <!--/row-->
-                    <div class="row">
-                        <div class="col-sm-12">
-                            <div class="form-group">
-                                <label for="ccnumber">Credit Card Number</label>
-                                <input type="text" class="form-control" id="ccnumber" placeholder="0000 0000 0000 0000">
-                            </div>
-                        </div>
-                    </div>
-                    <!--/row-->
-                    <div class="row">
-                        <div class="form-group col-sm-4">
-                            <label for="ccmonth">Month</label>
-                            <select class="form-control" id="ccmonth">
-                                <option>1</option>
-                                <option>2</option>
-                                <option>3</option>
-                                <option>4</option>
-                                <option>5</option>
-                                <option>6</option>
-                                <option>7</option>
-                                <option>8</option>
-                                <option>9</option>
-                                <option>10</option>
-                                <option>11</option>
-                                <option>12</option>
-                            </select>
-                        </div>
-                        <div class="form-group col-sm-4">
-                            <label for="ccyear">Year</label>
-                            <select class="form-control" id="ccyear">
-                                <option>2014</option>
-                                <option>2015</option>
-                                <option>2016</option>
-                                <option>2017</option>
-                                <option>2018</option>
-                                <option>2019</option>
-                                <option>2020</option>
-                                <option>2021</option>
-                                <option>2022</option>
-                                <option>2023</option>
-                                <option>2024</option>
-                                <option>2025</option>
-                            </select>
-                        </div>
-                        <div class="col-sm-4">
-                            <div class="form-group">
-                                <label for="cvv">CVV/CVC</label>
-                                <input type="text" class="form-control" id="cvv" placeholder="123">
-                            </div>
-                        </div>
-                    </div>
-                    <!--/row-->
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Company</strong>
-                    <small>Form</small>
-                </div>
-                <div class="card-block">
-                    <div class="form-group">
-                        <label for="company">Company</label>
-                        <input type="text" class="form-control" id="company" placeholder="Enter your company name">
-                    </div>
-                    <div class="form-group">
-                        <label for="vat">VAT</label>
-                        <input type="text" class="form-control" id="vat" placeholder="PL1234567890">
-                    </div>
-                    <div class="form-group">
-                        <label for="street">Street</label>
-                        <input type="text" class="form-control" id="street" placeholder="Enter street name">
-                    </div>
-                    <div class="row">
-                        <div class="form-group col-sm-8">
-                            <label for="city">City</label>
-                            <input type="text" class="form-control" id="city" placeholder="Enter your city">
-                        </div>
-                        <div class="form-group col-sm-4">
-                            <label for="postal-code">Postal Code</label>
-                            <input type="text" class="form-control" id="postal-code" placeholder="Postal Code">
-                        </div>
-                    </div>
-                    <!--/row-->
-                    <div class="form-group">
-                        <label for="country">Country</label>
-                        <input type="text" class="form-control" id="country" placeholder="Country name">
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/.row-->
-    <div class="row">
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Basic Form</strong>Elements
-                </div>
-                <div class="card-block">
-                    <form action="" method="post" enctype="multipart/form-data" class="form-horizontal ">
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label">Static</label>
-                            <div class="col-md-9">
-                                <p class="form-control-static">Username</p>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="text-input">Text Input</label>
-                            <div class="col-md-9">
-                                <input type="text" id="text-input" name="text-input" class="form-control" placeholder="Text">
-                                <span class="help-block">This is a help text</span>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="email-input">Email Input</label>
-                            <div class="col-md-9">
-                                <input type="email" id="email-input" name="email-input" class="form-control" placeholder="Enter Email">
-                                <span class="help-block">Please enter your email</span>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="password-input">Password</label>
-                            <div class="col-md-9">
-                                <input type="password" id="password-input" name="password-input" class="form-control" placeholder="Password">
-                                <span class="help-block">Please enter a complex password</span>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="disabled-input">Disabled Input</label>
-                            <div class="col-md-9">
-                                <input type="text" id="disabled-input" name="disabled-input" class="form-control" placeholder="Disabled" disabled>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="textarea-input">Textarea</label>
-                            <div class="col-md-9">
-                                <textarea id="textarea-input" name="textarea-input" rows="9" class="form-control" placeholder="Content.."></textarea>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="select">Select</label>
-                            <div class="col-md-9">
-                                <select id="select" name="select" class="form-control" size="1">
-                                    <option value="0">Please select</option>
-                                    <option value="1">Option #1</option>
-                                    <option value="2">Option #2</option>
-                                    <option value="3">Option #3</option>
-                                </select>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="select">Select Large</label>
-                            <div class="col-md-9">
-                                <select id="select" name="select" class="form-control input-lg" size="1">
-                                    <option value="0">Please select</option>
-                                    <option value="1">Option #1</option>
-                                    <option value="2">Option #2</option>
-                                    <option value="3">Option #3</option>
-                                </select>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="select">Select Small</label>
-                            <div class="col-md-9">
-                                <select id="select" name="select" class="form-control input-sm" size="1">
-                                    <option value="0">Please select</option>
-                                    <option value="1">Option #1</option>
-                                    <option value="2">Option #2</option>
-                                    <option value="3">Option #3</option>
-                                </select>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="select">Disabled Select</label>
-                            <div class="col-md-9">
-                                <select id="disabledSelect" class="form-control" disabled>
-                                    <option value="0">Please select</option>
-                                    <option value="1">Option #1</option>
-                                    <option value="2">Option #2</option>
-                                    <option value="3">Option #3</option>
-                                </select>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="multiple-select">Multiple select</label>
-                            <div class="col-md-9">
-                                <select id="multiple-select" name="multiple-select" class="form-control" size="5" multiple>
-                                    <option value="1">Option #1</option>
-                                    <option value="2">Option #2</option>
-                                    <option value="3">Option #3</option>
-                                    <option value="4">Option #4</option>
-                                    <option value="5">Option #5</option>
-                                    <option value="6">Option #6</option>
-                                    <option value="7">Option #7</option>
-                                    <option value="8">Option #8</option>
-                                    <option value="9">Option #9</option>
-                                    <option value="10">Option #10</option>
-                                </select>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label">Radios</label>
-                            <div class="col-md-9">
-                                <div class="radio">
-                                    <label for="radio1">
-                                        <input type="radio" id="radio1" name="radios" value="option1">Option 1
-                                    </label>
-                                </div>
-                                <div class="radio">
-                                    <label for="radio2">
-                                        <input type="radio" id="radio2" name="radios" value="option2">Option 2
-                                    </label>
-                                </div>
-                                <div class="radio">
-                                    <label for="radio3">
-                                        <input type="radio" id="radio3" name="radios" value="option3">Option 3
-                                    </label>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label">Inline Radios</label>
-                            <div class="col-md-9">
-                                <label class="radio-inline" for="inline-radio1">
-                                    <input type="radio" id="inline-radio1" name="inline-radios" value="option1">One
-                                </label>
-                                <label class="radio-inline" for="inline-radio2">
-                                    <input type="radio" id="inline-radio2" name="inline-radios" value="option2">Two
-                                </label>
-                                <label class="radio-inline" for="inline-radio3">
-                                    <input type="radio" id="inline-radio3" name="inline-radios" value="option3">Three
-                                </label>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label">Checkboxes</label>
-                            <div class="col-md-9">
-                                <div class="checkbox">
-                                    <label for="checkbox1">
-                                        <input type="checkbox" id="checkbox1" name="checkbox1" value="option1">Option 1
-                                    </label>
-                                </div>
-                                <div class="checkbox">
-                                    <label for="checkbox2">
-                                        <input type="checkbox" id="checkbox2" name="checkbox2" value="option2">Option 2
-                                    </label>
-                                </div>
-                                <div class="checkbox">
-                                    <label for="checkbox3">
-                                        <input type="checkbox" id="checkbox3" name="checkbox3" value="option3">Option 3
-                                    </label>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label">Inline Checkboxes</label>
-                            <div class="col-md-9">
-                                <label class="checkbox-inline" for="inline-checkbox1">
-                                    <input type="checkbox" id="inline-checkbox1" name="inline-checkbox1" value="option1">One
-                                </label>
-                                <label class="checkbox-inline" for="inline-checkbox2">
-                                    <input type="checkbox" id="inline-checkbox2" name="inline-checkbox2" value="option2">Two
-                                </label>
-                                <label class="checkbox-inline" for="inline-checkbox3">
-                                    <input type="checkbox" id="inline-checkbox3" name="inline-checkbox3" value="option3">Three
-                                </label>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="file-input">File input</label>
-                            <div class="col-md-9">
-                                <input type="file" id="file-input" name="file-input">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="file-multiple-input">Multiple File input</label>
-                            <div class="col-md-9">
-                                <input type="file" id="file-multiple-input" name="file-multiple-input" multiple>
-                            </div>
-                        </div>
-                    </form>
-                </div>
-                <div class="card-footer">
-                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>
-                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Inline</strong>Form
-                </div>
-                <div class="card-block">
-                    <form action="" method="post" class="form-inline">
-                        <div class="form-group">
-                            <label class="sr-only" for="if-email">Email</label>
-                            <input type="email" id="if-email" name="if-email" class="form-control" placeholder="Enter Email..">
-                        </div>
-                        <div class="form-group">
-                            <label class="sr-only" for="if-password">Password</label>
-                            <input type="password" id="if-password" name="if-password" class="form-control" placeholder="Enter Password..">
-                        </div>
-                    </form>
-                </div>
-                <div class="card-footer">
-                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>
-                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
-                </div>
-            </div>
-        </div>
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Horizontal</strong>Form
-                </div>
-                <div class="card-block">
-                    <form action="" method="post" class="form-horizontal ">
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="hf-email">Email</label>
-                            <div class="col-md-9">
-                                <input type="email" id="hf-email" name="hf-email" class="form-control" placeholder="Enter Email..">
-                                <span class="help-block">Please enter your email</span>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-md-3 form-control-label" for="hf-password">Password</label>
-                            <div class="col-md-9">
-                                <input type="password" id="hf-password" name="hf-password" class="form-control" placeholder="Enter Password..">
-                                <span class="help-block">Please enter your password</span>
-                            </div>
-                        </div>
-                    </form>
-                </div>
-                <div class="card-footer">
-                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>
-                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    <strong>Normal</strong>Form
-                </div>
-                <div class="card-block">
-                    <form action="" method="post">
-                        <div class="form-group">
-                            <label for="nf-email">Email</label>
-                            <input type="email" id="nf-email" name="nf-email" class="form-control" placeholder="Enter Email..">
-                            <span class="help-block">Please enter your email</span>
-                        </div>
-                        <div class="form-group">
-                            <label for="nf-password">Password</label>
-                            <input type="password" id="nf-password" name="nf-password" class="form-control" placeholder="Enter Password..">
-                            <span class="help-block">Please enter your password</span>
-                        </div>
-                    </form>
-                </div>
-                <div class="card-footer">
-                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>
-                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    Input
-                    <strong>Grid</strong>
-                </div>
-                <div class="card-block">
-                    <form action="" method="post" class="form-horizontal ">
-                        <div class="form-group row">
-                            <div class="col-sm-3">
-                                <input type="text" class="form-control" placeholder=".col-sm-3">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-sm-4">
-                                <input type="text" class="form-control" placeholder=".col-sm-4">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-sm-5">
-                                <input type="text" class="form-control" placeholder=".col-sm-5">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-sm-6">
-                                <input type="text" class="form-control" placeholder=".col-sm-6">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-sm-7">
-                                <input type="text" class="form-control" placeholder=".col-sm-7">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-sm-8">
-                                <input type="text" class="form-control" placeholder=".col-sm-8">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-sm-9">
-                                <input type="text" class="form-control" placeholder=".col-sm-9">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-sm-10">
-                                <input type="text" class="form-control" placeholder=".col-sm-10">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-sm-11">
-                                <input type="text" class="form-control" placeholder=".col-sm-11">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-sm-12">
-                                <input type="text" class="form-control" placeholder=".col-sm-12">
-                            </div>
-                        </div>
-                    </form>
-                </div>
-                <div class="card-footer">
-                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-user"></i> Login</button>
-                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
-                </div>
-            </div>
-            <div class="card">
-                <div class="card-header">
-                    Input
-                    <strong>Sizes</strong>
-                </div>
-                <div class="card-block">
-                    <form action="" method="post" class="form-horizontal ">
-                        <div class="form-group row">
-                            <label class="col-sm-3 form-control-label" for="input-small">Small Input</label>
-                            <div class="col-sm-6">
-                                <input type="text" id="input-small" name="input-small" class="form-control input-sm" placeholder=".input-sm">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-sm-3 form-control-label" for="input-normal">Normal Input</label>
-                            <div class="col-sm-6">
-                                <input type="text" id="input-normal" name="input-normal" class="form-control" placeholder="Normal">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <label class="col-sm-3 form-control-label" for="input-large">Large Input</label>
-                            <div class="col-sm-6">
-                                <input type="text" id="input-large" name="input-large" class="form-control input-lg" placeholder=".input-lg">
-                            </div>
-                        </div>
-                    </form>
-                </div>
-                <div class="card-footer">
-                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>
-                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/.row-->
-    <div class="row">
-        <div class="col-sm-6">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Validation states</strong>Form
-                </div>
-                <div class="card-block">
-                    <div class="form-group has-success">
-                        <label class="form-form-control-label" for="inputSuccess1">Input with success</label>
-                        <input type="text" class="form-control" id="inputSuccess1">
-                    </div>
-                    <div class="form-group has-warning">
-                        <label class="form-form-control-label" for="inputWarning1">Input with warning</label>
-                        <input type="text" class="form-control" id="inputWarning1">
-                    </div>
-                    <div class="form-group has-danger">
-                        <label class="form-form-control-label" for="inputError1">Input with error</label>
-                        <input type="text" class="form-control" id="inputError1">
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Validation states</strong>with optional icons
-                </div>
-                <div class="card-block">
-                    <div class="form-group has-success">
-                        <label class="form-form-control-label" for="inputSuccess2">Input with success</label>
-                        <input type="text" class="form-control form-control-success" id="inputSuccess2">
-                    </div>
-                    <div class="form-group has-warning">
-                        <label class="form-form-control-label" for="inputWarning2">Input with warning</label>
-                        <input type="text" class="form-control form-control-warning" id="inputWarning2">
-                    </div>
-                    <div class="form-group has-danger has-feedback">
-                        <label class="form-form-control-label" for="inputError2">Input with error</label>
-                        <input type="text" class="form-control form-control-danger" id="inputError2">
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <div class="row">
-        <div class="col-sm-4">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Icon/Text</strong>Groups
-                </div>
-                <div class="card-block">
-                    <form action="" method="post" class="form-horizontal ">
-                        <div class="form-group row">
-                            <div class="col-md-12">
-                                <div class="input-group">
-                                    <span class="input-group-addon"><i class="fa fa-user"></i>
-                                    </span>
-                                    <input type="text" id="input1-group1" name="input1-group1" class="form-control" placeholder="Username">
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-md-12">
-                                <div class="input-group">
-                                    <input type="email" id="input2-group1" name="input2-group1" class="form-control" placeholder="Email">
-                                    <span class="input-group-addon"><i class="fa fa-envelope-o"></i>
-                                    </span>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-md-12">
-                                <div class="input-group">
-                                    <span class="input-group-addon"><i class="fa fa-euro"></i>
-                                    </span>
-                                    <input type="text" id="input3-group1" name="input3-group1" class="form-control" placeholder="..">
-                                    <span class="input-group-addon">.00</span>
-                                </div>
-                            </div>
-                        </div>
-                    </form>
-                </div>
-                <div class="card-footer">
-                    <button type="submit" class="btn btn-sm btn-success"><i class="fa fa-dot-circle-o"></i> Submit</button>
-                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-4">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Buttons</strong>Groups
-                </div>
-                <div class="card-block">
-                    <form action="" method="post" class="form-horizontal ">
-                        <div class="form-group row">
-                            <div class="col-md-12">
-                                <div class="input-group">
-                                    <span class="input-group-btn">
-                                        <button type="button" class="btn btn-primary"><i class="fa fa-search"></i> Search</button>
-                                    </span>
-                                    <input type="text" id="input1-group2" name="input1-group2" class="form-control" placeholder="Username">
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-md-12">
-                                <div class="input-group">
-                                    <input type="email" id="input2-group2" name="input2-group2" class="form-control" placeholder="Email">
-                                    <span class="input-group-btn">
-                                        <button type="button" class="btn btn-primary">Submit</button>
-                                    </span>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-md-12">
-                                <div class="input-group">
-                                    <span class="input-group-btn">
-                                        <button type="button" class="btn btn-primary"><i class="fa fa-facebook"></i>
-                                        </button>
-                                    </span>
-                                    <input type="text" id="input3-group2" name="input3-group2" class="form-control" placeholder="Search">
-                                    <span class="input-group-btn">
-                                        <button type="button" class="btn btn-primary"><i class="fa fa-twitter"></i>
-                                        </button>
-                                    </span>
-                                </div>
-                            </div>
-                        </div>
-                    </form>
-                </div>
-                <div class="card-footer">
-                    <button type="submit" class="btn btn-sm btn-success"><i class="fa fa-dot-circle-o"></i> Submit</button>
-                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-4">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Dropdowns</strong>Groups
-                </div>
-                <div class="card-block">
-                    <form action="" method="post" class="form-horizontal ">
-                        <div class="form-group row">
-                            <div class="col-md-12">
-                                <div class="input-group">
-                                    <div class="input-group-btn">
-                                        <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">Action
-                                            <span class="caret"></span>
-                                        </button>
-                                        <ul class="dropdown-menu">
-                                            <li><a href="javascript:void(0)">Action</a>
-                                            </li>
-                                            <li><a href="javascript:void(0)">Another action</a>
-                                            </li>
-                                            <li><a href="javascript:void(0)">Something else here</a>
-                                            </li>
-                                            <li class="divider"></li>
-                                            <li><a href="javascript:void(0)">Separated link</a>
-                                            </li>
-                                        </ul>
-                                    </div>
-                                    <input type="text" id="input1-group3" name="input1-group3" class="form-control" placeholder="Username">
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-md-12">
-                                <div class="input-group">
-                                    <input type="email" id="input2-group3" name="input2-group3" class="form-control" placeholder="Email">
-                                    <div class="input-group-btn">
-                                        <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">Action
-                                            <span class="caret"></span>
-                                        </button>
-                                        <ul class="dropdown-menu dropdown-menu-right">
-                                            <li><a href="javascript:void(0)">Action</a>
-                                            </li>
-                                            <li><a href="javascript:void(0)">Another action</a>
-                                            </li>
-                                            <li><a href="javascript:void(0)">Something else here</a>
-                                            </li>
-                                            <li class="divider"></li>
-                                            <li><a href="javascript:void(0)">Separated link</a>
-                                            </li>
-                                        </ul>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-md-12">
-                                <div class="input-group">
-                                    <div class="input-group-btn">
-                                        <button type="button" class="btn btn-primary">Action</button>
-                                        <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
-                                            <span class="caret"></span>
-                                        </button>
-                                        <ul class="dropdown-menu">
-                                            <li><a href="javascript:void(0)">Action</a>
-                                            </li>
-                                            <li><a href="javascript:void(0)">Another action</a>
-                                            </li>
-                                            <li><a href="javascript:void(0)">Something else here</a>
-                                            </li>
-                                            <li class="divider"></li>
-                                            <li><a href="javascript:void(0)">Separated link</a>
-                                            </li>
-                                        </ul>
-                                    </div>
-                                    <input type="text" id="input3-group3" name="input3-group3" class="form-control" placeholder="..">
-                                    <div class="input-group-btn">
-                                        <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
-                                            <span class="caret"></span>
-                                        </button>
-                                        <ul class="dropdown-menu dropdown-menu-right">
-                                            <li><a href="javascript:void(0)">Action</a>
-                                            </li>
-                                            <li><a href="javascript:void(0)">Another action</a>
-                                            </li>
-                                            <li><a href="javascript:void(0)">Something else here</a>
-                                            </li>
-                                            <li class="divider"></li>
-                                            <li><a href="javascript:void(0)">Separated link</a>
-                                            </li>
-                                        </ul>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                    </form>
-                </div>
-                <div class="card-footer">
-                    <button type="submit" class="btn btn-sm btn-success"><i class="fa fa-dot-circle-o"></i> Submit</button>
-                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="row">
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Use the grid for big devices!
-                    <small>
-                        <code>.col-lg-*</code>
-                        <code>.col-md-*</code>
-                        <code>.col-sm-*</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <form action="" method="post" class="form-horizontal ">
-                        <div class="form-group row">
-                            <div class="col-md-8">
-                                <input type="text" class="form-control" placeholder=".col-md-8">
-                            </div>
-                            <div class="col-md-4">
-                                <input type="text" class="form-control" placeholder=".col-md-4">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-md-7">
-                                <input type="text" class="form-control" placeholder=".col-md-7">
-                            </div>
-                            <div class="col-md-5">
-                                <input type="text" class="form-control" placeholder=".col-md-5">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-md-6">
-                                <input type="text" class="form-control" placeholder=".col-md-6">
-                            </div>
-                            <div class="col-md-6">
-                                <input type="text" class="form-control" placeholder=".col-md-6">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-md-5">
-                                <input type="text" class="form-control" placeholder=".col-md-5">
-                            </div>
-                            <div class="col-md-7">
-                                <input type="text" class="form-control" placeholder=".col-md-7">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-md-4">
-                                <input type="text" class="form-control" placeholder=".col-md-4">
-                            </div>
-                            <div class="col-md-8">
-                                <input type="text" class="form-control" placeholder=".col-md-8">
-                            </div>
-                        </div>
-                    </form>
-                </div>
-                <div class="card-footer">
-                    <button type="submit" class="btn btn-sm btn-primary">Action</button>
-                    <button type="button" class="btn btn-sm btn-danger">Action</button>
-                    <button type="button" class="btn btn-sm btn-warning">Action</button>
-                    <button type="button" class="btn btn-sm btn-info">Action</button>
-                    <button type="button" class="btn btn-sm btn-success">Action</button>
-                </div>
-            </div>
-        </div>
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Input Grid for small devices!
-                    <small>
-                        <code>.col-xs-*</code>
-                    </small>
-                </div>
-                <div class="card-block">
-                    <form action="" method="post" class="form-horizontal ">
-                        <div class="form-group row">
-                            <div class="col-xs-4">
-                                <input type="text" class="form-control" placeholder=".col-xs-4">
-                            </div>
-                            <div class="col-xs-8">
-                                <input type="text" class="form-control" placeholder=".col-xs-8">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-xs-5">
-                                <input type="text" class="form-control" placeholder=".col-xs-5">
-                            </div>
-                            <div class="col-xs-7">
-                                <input type="text" class="form-control" placeholder=".col-xs-7">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-xs-6">
-                                <input type="text" class="form-control" placeholder=".col-xs-6">
-                            </div>
-                            <div class="col-xs-6">
-                                <input type="text" class="form-control" placeholder=".col-xs-6">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-xs-7">
-                                <input type="text" class="form-control" placeholder=".col-xs-5">
-                            </div>
-                            <div class="col-xs-5">
-                                <input type="text" class="form-control" placeholder=".col-xs-5">
-                            </div>
-                        </div>
-                        <div class="form-group row">
-                            <div class="col-xs-8">
-                                <input type="text" class="form-control" placeholder=".col-xs-8">
-                            </div>
-                            <div class="col-xs-4">
-                                <input type="text" class="form-control" placeholder=".col-xs-4">
-                            </div>
-                        </div>
-                    </form>
-                </div>
-                <div class="card-footer">
-                    <button type="submit" class="btn btn-sm btn-primary">Action</button>
-                    <button type="button" class="btn btn-sm btn-danger">Action</button>
-                    <button type="button" class="btn btn-sm btn-warning">Action</button>
-                    <button type="button" class="btn btn-sm btn-info">Action</button>
-                    <button type="button" class="btn btn-sm btn-success">Action</button>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="row">
-        <div class="col-sm-4">
-            <div class="card">
-                <div class="card-header">
-                    Example Form
-                </div>
-                <div class="card-block">
-                    <form action="" method="post">
-                        <div class="form-group">
-                            <div class="input-group">
-                                <span class="input-group-addon">Username</span>
-                                <input type="text" id="username3" name="username3" class="form-control">
-                                <span class="input-group-addon"><i class="fa fa-user"></i>
-                                </span>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <div class="input-group">
-                                <span class="input-group-addon">Email</span>
-                                <input type="email" id="email3" name="email3" class="form-control">
-                                <span class="input-group-addon"><i class="fa fa-envelope"></i>
-                                </span>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <div class="input-group">
-                                <span class="input-group-addon">Password</span>
-                                <input type="password" id="password3" name="password3" class="form-control">
-                                <span class="input-group-addon"><i class="fa fa-asterisk"></i>
-                                </span>
-                            </div>
-                        </div>
-                        <div class="form-group form-actions">
-                            <button type="submit" class="btn btn-sm btn-primary">Submit</button>
-                        </div>
-                    </form>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-4">
-            <div class="card">
-                <div class="card-header">
-                    Example Form
-                </div>
-                <div class="card-block">
-                    <form action="" method="post">
-                        <div class="form-group">
-                            <div class="input-group">
-                                <input type="text" id="username2" name="username2" class="form-control" placeholder="Username">
-                                <span class="input-group-addon"><i class="fa fa-user"></i>
-                                </span>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <div class="input-group">
-                                <input type="email" id="email2" name="email2" class="form-control" placeholder="Email">
-                                <span class="input-group-addon"><i class="fa fa-envelope"></i>
-                                </span>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <div class="input-group">
-                                <input type="password" id="password2" name="password2" class="form-control" placeholder="Password">
-                                <span class="input-group-addon"><i class="fa fa-asterisk"></i>
-                                </span>
-                            </div>
-                        </div>
-                        <div class="form-group form-actions">
-                            <button type="submit" class="btn btn-sm btn-default">Submit</button>
-                        </div>
-                    </form>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-4">
-            <div class="card">
-                <div class="card-header">
-                    Example Form
-                </div>
-                <div class="card-block">
-                    <form action="" method="post">
-                        <div class="form-group">
-                            <div class="input-group">
-                                <span class="input-group-addon"><i class="fa fa-user"></i>
-                                </span>
-                                <input type="text" id="username" name="username" class="form-control" placeholder="Username">
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <div class="input-group">
-                                <span class="input-group-addon"><i class="fa fa-envelope"></i>
-                                </span>
-                                <input type="email" id="email" name="email" class="form-control" placeholder="Email">
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <div class="input-group">
-                                <span class="input-group-addon"><i class="fa fa-asterisk"></i>
-                                </span>
-                                <input type="password" id="password" name="password" class="form-control" placeholder="Password">
-                            </div>
-                        </div>
-                        <div class="form-group form-actions">
-                            <button type="submit" class="btn btn-sm btn-success">Submit</button>
-                        </div>
-                    </form>
-                </div>
-            </div>
-        </div>
-    </div>
-    <!--/row-->
-    <div class="row">
-        <div class="col-lg-12">
-            <div class="card">
-                <div class="card-header">
-                    <i class="fa fa-edit"></i>Form Elements
-                    <div class="card-actions">
-                        <a href="#" class="btn-setting"><i class="icon-settings"></i></a>
-                        <a href="#" class="btn-minimize"><i class="icon-arrow-up"></i></a>
-                        <a href="#" class="btn-close"><i class="icon-close"></i></a>
-                    </div>
-                </div>
-                <div class="card-block">
-                    <form class="form-horizontal">
-                        <div class="form-group">
-                            <label class="form-control-label" for="prependedInput">Prepended text</label>
-                            <div class="controls">
-                                <div class="input-prepend input-group">
-                                    <span class="input-group-addon">@</span>
-                                    <input id="prependedInput" class="form-control" size="16" type="text">
-                                </div>
-                                <p class="help-block">Here's some help text</p>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <label class="form-control-label" for="appendedInput">Appended text</label>
-                            <div class="controls">
-                                <div class="input-group">
-                                    <input id="appendedInput" class="form-control" size="16" type="text">
-                                    <span class="input-group-addon">.00</span>
-                                </div>
-                                <span class="help-block">Here's more help text</span>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <label class="form-control-label" for="appendedPrependedInput">Append and prepend</label>
-                            <div class="controls">
-                                <div class="input-prepend input-group">
-                                    <span class="input-group-addon">$</span>
-                                    <input id="appendedPrependedInput" class="form-control" size="16" type="text">
-                                    <span class="input-group-addon">.00</span>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <label class="form-control-label" for="appendedInputButton">Append with button</label>
-                            <div class="controls">
-                                <div class="input-group">
-                                    <input id="appendedInputButton" class="form-control" size="16" type="text">
-                                    <span class="input-group-btn">
-                                        <button class="btn btn-default" type="button">Go!</button>
-                                    </span>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <label class="form-control-label" for="appendedInputButtons">Two-button append</label>
-                            <div class="controls">
-                                <div class="input-group">
-                                    <input id="appendedInputButtons" size="16" class="form-control" type="text">
-                                    <span class="input-group-btn">
-                                        <button class="btn btn-default" type="button">Search</button>
-                                        <button class="btn btn-default" type="button">Options</button>
-                                    </span>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-actions">
-                            <button type="submit" class="btn btn-primary">Save changes</button>
-                            <button class="btn btn-default" type="button">Cancel</button>
-                        </div>
-                    </form>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-</div>
diff --git a/demo/Angular2_Demo/app/components/forms.component.js b/demo/Angular2_Demo/app/components/forms.component.js
deleted file mode 100644
index 7d58986f738254423dc1f3d44c7ec1bce00d94f0..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/forms.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var FormsComponent = (function () {
-    function FormsComponent() {
-    }
-    FormsComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/components/forms.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], FormsComponent);
-    return FormsComponent;
-}());
-exports.FormsComponent = FormsComponent;
-//# sourceMappingURL=forms.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/forms.component.js.map b/demo/Angular2_Demo/app/components/forms.component.js.map
deleted file mode 100644
index f04d6c890e78d274446139ec5019b9d9e5587ee2..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/forms.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"forms.component.js","sourceRoot":"","sources":["forms.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,qCAAqC;SACrD,CAAC;;sBAAA;IAKF,qBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,sBAAc,iBAI1B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/forms.component.ts b/demo/Angular2_Demo/app/components/forms.component.ts
deleted file mode 100644
index 2542f581bbbdb383c03bd56c22a74ead48d764bd..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/forms.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/components/forms.component.html'
-})
-export class FormsComponent {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/components/social-buttons.component.html b/demo/Angular2_Demo/app/components/social-buttons.component.html
deleted file mode 100644
index 155a4701f8b698ac438b11e9229f62305a2744cc..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/social-buttons.component.html
+++ /dev/null
@@ -1,788 +0,0 @@
-<div class="animated fadeIn">
-    <div class="row">
-        <div class="col-xs-12">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Social Media Button</strong>
-                    <small>Usage ex.</small>
-                    <code style="text-transform:lowercase">&lt;button class="btn btn-facebook" type="button"&gt;&lt;span&gt;Facebook&lt;/span&gt;&lt;/button&gt;</code>
-                    <div class="card-actions">
-                        <a href="#" class="btn-setting"><i class="icon-settings"></i></a>
-                        <button class="btn-minimize" type="button" data-toggle="collapse" data-target="" aria-expanded="false" aria-controls="collapseExample">
-                            <i class="icon-arrow-up"></i>
-                        </button>
-                        <a href="#" class="btn-close"><i class="icon-close"></i></a>
-                    </div>
-                </div>
-                <div class="card-block">
-                    <h6>Size Small
-                        <small>Add this class
-                            <code>.btn-sm</code>
-                        </small>
-                    </h6>
-                    <p>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-facebook" type="button">
-                            <span>Facebook</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-twitter" type="button">
-                            <span>Twitter</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-linkedin" type="button">
-                            <span>LinkedIn</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-flickr" type="button">
-                            <span>Flickr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-tumblr" type="button">
-                            <span>Tumblr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-xing" type="button">
-                            <span>Xing</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-github" type="button">
-                            <span>Github</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-html5" type="button">
-                            <span>HTML5</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-openid" type="button">
-                            <span>OpenID</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-stack-overflow" type="button">
-                            <span>StackOverflow</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-css3" type="button">
-                            <span>CSS3</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-youtube" type="button">
-                            <span>YouTube</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dribbble" type="button">
-                            <span>Dribbble</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-google-plus" type="button">
-                            <span>Google+</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-instagram" type="button">
-                            <span>Instagram</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-pinterest" type="button">
-                            <span>Pinterest</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vk" type="button">
-                            <span>VK</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-yahoo" type="button">
-                            <span>Yahoo</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-behance" type="button">
-                            <span>Behance</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dropbox" type="button">
-                            <span>Dropbox</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-reddit" type="button">
-                            <span>Reddit</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-spotify" type="button">
-                            <span>Spotify</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vine" type="button">
-                            <span>Vine</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-foursquare" type="button">
-                            <span>Forsquare</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vimeo" type="button">
-                            <span>Vimeo</span>
-                        </button>
-                    </p>
-                    <h6>Size Normal</h6>
-                    <p>
-                        <button style="margin-bottom: 4px" class="btn btn-facebook" type="button">
-                            <span>Facebook</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-twitter" type="button">
-                            <span>Twitter</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-linkedin" type="button">
-                            <span>LinkedIn</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-flickr" type="button">
-                            <span>Flickr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-tumblr" type="button">
-                            <span>Tumblr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-xing" type="button">
-                            <span>Xing</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-github" type="button">
-                            <span>Github</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-html5" type="button">
-                            <span>HTML5</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-openid" type="button">
-                            <span>OpenID</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-stack-overflow" type="button">
-                            <span>StackOverflow</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-css3" type="button">
-                            <span>CSS3</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-youtube" type="button">
-                            <span>YouTube</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-dribbble" type="button">
-                            <span>Dribbble</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-google-plus" type="button">
-                            <span>Google+</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-instagram" type="button">
-                            <span>Instagram</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-pinterest" type="button">
-                            <span>Pinterest</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-vk" type="button">
-                            <span>VK</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-yahoo" type="button">
-                            <span>Yahoo</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-behance" type="button">
-                            <span>Behance</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-dropbox" type="button">
-                            <span>Dropbox</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-reddit" type="button">
-                            <span>Reddit</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-spotify" type="button">
-                            <span>Spotify</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-vine" type="button">
-                            <span>Vine</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-foursquare" type="button">
-                            <span>Forsquare</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-vimeo" type="button">
-                            <span>Vimeo</span>
-                        </button>
-                    </p>
-                    <h6>Size Large
-                        <small>Add this class
-                            <code>.btn-lg</code>
-                        </small>
-                    </h6>
-                    <p>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-facebook" type="button">
-                            <span>Facebook</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-twitter" type="button">
-                            <span>Twitter</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-linkedin" type="button">
-                            <span>LinkedIn</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-flickr" type="button">
-                            <span>Flickr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-tumblr" type="button">
-                            <span>Tumblr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-xing" type="button">
-                            <span>Xing</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-github" type="button">
-                            <span>Github</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-html5" type="button">
-                            <span>HTML5</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-openid" type="button">
-                            <span>OpenID</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-stack-overflow" type="button">
-                            <span>StackOverflow</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-css3" type="button">
-                            <span>CSS3</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-youtube" type="button">
-                            <span>YouTube</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dribbble" type="button">
-                            <span>Dribbble</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-google-plus" type="button">
-                            <span>Google+</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-instagram" type="button">
-                            <span>Instagram</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-pinterest" type="button">
-                            <span>Pinterest</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vk" type="button">
-                            <span>VK</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-yahoo" type="button">
-                            <span>Yahoo</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-behance" type="button">
-                            <span>Behance</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dropbox" type="button">
-                            <span>Dropbox</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-reddit" type="button">
-                            <span>Reddit</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-spotify" type="button">
-                            <span>Spotify</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vine" type="button">
-                            <span>Vine</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-foursquare" type="button">
-                            <span>Forsquare</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vimeo" type="button">
-                            <span>Vimeo</span>
-                        </button>
-                    </p>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-xs-12">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Social Media Button</strong>
-                    <small>Only icons. Usage ex.</small>
-                    <code style="text-transform:lowercase">&lt;button class="btn btn-facebook icon" type="button"&gt;&lt;span&gt;Facebook&lt;/span&gt;&lt;/button&gt;</code>
-                    <div class="card-actions">
-                        <a href="#" class="btn-setting"><i class="icon-settings"></i></a>
-                        <button class="btn-minimize" type="button" data-toggle="collapse" data-target="" aria-expanded="false" aria-controls="collapseExample">
-                            <i class="icon-arrow-up"></i>
-                        </button>
-                        <a href="#" class="btn-close"><i class="icon-close"></i></a>
-                    </div>
-                </div>
-                <div class="card-block collapse in">
-                    <h6>Size Small
-                        <small>Add this class
-                            <code>.btn-sm</code>
-                        </small>
-                    </h6>
-                    <p>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-facebook icon" type="button">
-                            <span>Facebook</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-twitter icon" type="button">
-                            <span>Twitter</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-linkedin icon" type="button">
-                            <span>LinkedIn</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-flickr icon" type="button">
-                            <span>Flickr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-tumblr icon" type="button">
-                            <span>Tumblr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-xing icon" type="button">
-                            <span>Xing</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-github icon" type="button">
-                            <span>Github</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-html5 icon" type="button">
-                            <span>HTML5</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-openid icon" type="button">
-                            <span>OpenID</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-stack-overflow icon" type="button">
-                            <span>StackOverflow</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-css3 icon" type="button">
-                            <span>CSS3</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-youtube icon" type="button">
-                            <span>YouTube</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dribbble icon" type="button">
-                            <span>Dribbble</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-google-plus icon" type="button">
-                            <span>Google+</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-instagram icon" type="button">
-                            <span>Instagram</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-pinterest icon" type="button">
-                            <span>Pinterest</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vk icon" type="button">
-                            <span>VK</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-yahoo icon" type="button">
-                            <span>Yahoo</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-behance icon" type="button">
-                            <span>Behance</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dropbox icon" type="button">
-                            <span>Dropbox</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-reddit icon" type="button">
-                            <span>Reddit</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-spotify icon" type="button">
-                            <span>Spotify</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vine icon" type="button">
-                            <span>Vine</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-foursquare icon" type="button">
-                            <span>Forsquare</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vimeo icon" type="button">
-                            <span>Vimeo</span>
-                        </button>
-                    </p>
-                    <h6>Size Normal</h6>
-                    <p>
-                        <button style="margin-bottom: 4px" class="btn btn-facebook icon" type="button">
-                            <span>Facebook</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-twitter icon" type="button">
-                            <span>Twitter</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-linkedin icon" type="button">
-                            <span>LinkedIn</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-flickr icon" type="button">
-                            <span>Flickr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-tumblr icon" type="button">
-                            <span>Tumblr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-xing icon" type="button">
-                            <span>Xing</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-github icon" type="button">
-                            <span>Github</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-html5 icon" type="button">
-                            <span>HTML5</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-openid icon" type="button">
-                            <span>OpenID</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-stack-overflow icon" type="button">
-                            <span>StackOverflow</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-css3 icon" type="button">
-                            <span>CSS3</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-youtube icon" type="button">
-                            <span>YouTube</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-dribbble icon" type="button">
-                            <span>Dribbble</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-google-plus icon" type="button">
-                            <span>Google+</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-instagram icon" type="button">
-                            <span>Instagram</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-pinterest icon" type="button">
-                            <span>Pinterest</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-vk icon" type="button">
-                            <span>VK</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-yahoo icon" type="button">
-                            <span>Yahoo</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-behance icon" type="button">
-                            <span>Behance</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-dropbox icon" type="button">
-                            <span>Dropbox</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-reddit icon" type="button">
-                            <span>Reddit</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-spotify icon" type="button">
-                            <span>Spotify</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-vine icon" type="button">
-                            <span>Vine</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-foursquare icon" type="button">
-                            <span>Forsquare</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-vimeo icon" type="button">
-                            <span>Vimeo</span>
-                        </button>
-                    </p>
-                    <h6>Size Large
-                        <small>Add this class
-                            <code>.btn-lg</code>
-                        </small>
-                    </h6>
-                    <p>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-facebook icon" type="button">
-                            <span>Facebook</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-twitter icon" type="button">
-                            <span>Twitter</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-linkedin icon" type="button">
-                            <span>LinkedIn</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-flickr icon" type="button">
-                            <span>Flickr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-tumblr icon" type="button">
-                            <span>Tumblr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-xing icon" type="button">
-                            <span>Xing</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-github icon" type="button">
-                            <span>Github</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-html5 icon" type="button">
-                            <span>HTML5</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-openid icon" type="button">
-                            <span>OpenID</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-stack-overflow icon" type="button">
-                            <span>StackOverflow</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-css3 icon" type="button">
-                            <span>CSS3</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-youtube icon" type="button">
-                            <span>YouTube</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dribbble icon" type="button">
-                            <span>Dribbble</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-google-plus icon" type="button">
-                            <span>Google+</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-instagram icon" type="button">
-                            <span>Instagram</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-pinterest icon" type="button">
-                            <span>Pinterest</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vk icon" type="button">
-                            <span>VK</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-yahoo icon" type="button">
-                            <span>Yahoo</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-behance icon" type="button">
-                            <span>Behance</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dropbox icon" type="button">
-                            <span>Dropbox</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-reddit icon" type="button">
-                            <span>Reddit</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-spotify icon" type="button">
-                            <span>Spotify</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vine icon" type="button">
-                            <span>Vine</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-foursquare icon" type="button">
-                            <span>Forsquare</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vimeo icon" type="button">
-                            <span>Vimeo</span>
-                        </button>
-                    </p>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-xs-12">
-            <div class="card">
-                <div class="card-header">
-                    <strong>Social Media Button</strong>
-                    <small>Only text. Usage ex.</small>
-                    <code style="text-transform:lowercase">&lt;button class="btn btn-facebook text" type="button"&gt;&lt;span&gt;Facebook&lt;/span&gt;&lt;/button&gt;</code>
-                    <div class="card-actions">
-                        <a href="#" class="btn-setting"><i class="icon-settings"></i></a>
-                        <button class="btn-minimize" type="button" data-toggle="collapse" data-target="" aria-expanded="false" aria-controls="collapseExample">
-                            <i class="icon-arrow-up"></i>
-                        </button>
-                        <a href="#" class="btn-close"><i class="icon-close"></i></a>
-                    </div>
-                </div>
-                <div class="card-block collapse in">
-                    <h6>Size Small
-                        <small>Add this class
-                            <code>.btn-sm</code>
-                        </small>
-                    </h6>
-                    <p>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-facebook text" type="button">
-                            <span>Facebook</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-twitter text" type="button">
-                            <span>Twitter</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-linkedin text" type="button">
-                            <span>LinkedIn</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-flickr text" type="button">
-                            <span>Flickr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-tumblr text" type="button">
-                            <span>Tumblr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-xing text" type="button">
-                            <span>Xing</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-github text" type="button">
-                            <span>Github</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-html5 text" type="button">
-                            <span>HTML5</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-openid text" type="button">
-                            <span>OpenID</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-stack-overflow text" type="button">
-                            <span>StackOverflow</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-css3 text" type="button">
-                            <span>CSS3</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-youtube text" type="button">
-                            <span>YouTube</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dribbble text" type="button">
-                            <span>Dribbble</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-google-plus text" type="button">
-                            <span>Google+</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-instagram text" type="button">
-                            <span>Instagram</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-pinterest text" type="button">
-                            <span>Pinterest</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vk text" type="button">
-                            <span>VK</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-yahoo text" type="button">
-                            <span>Yahoo</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-behance text" type="button">
-                            <span>Behance</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dropbox text" type="button">
-                            <span>Dropbox</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-reddit text" type="button">
-                            <span>Reddit</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-spotify text" type="button">
-                            <span>Spotify</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vine text" type="button">
-                            <span>Vine</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-foursquare text" type="button">
-                            <span>Forsquare</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vimeo text" type="button">
-                            <span>Vimeo</span>
-                        </button>
-                    </p>
-                    <h6>Size Normal</h6>
-                    <p>
-                        <button style="margin-bottom: 4px" class="btn btn-facebook text" type="button">
-                            <span>Facebook</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-twitter text" type="button">
-                            <span>Twitter</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-linkedin text" type="button">
-                            <span>LinkedIn</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-flickr text" type="button">
-                            <span>Flickr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-tumblr text" type="button">
-                            <span>Tumblr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-xing text" type="button">
-                            <span>Xing</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-github text" type="button">
-                            <span>Github</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-html5 text" type="button">
-                            <span>HTML5</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-openid text" type="button">
-                            <span>OpenID</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-stack-overflow text" type="button">
-                            <span>StackOverflow</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-css3 text" type="button">
-                            <span>CSS3</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-youtube text" type="button">
-                            <span>YouTube</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-dribbble text" type="button">
-                            <span>Dribbble</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-google-plus text" type="button">
-                            <span>Google+</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-instagram text" type="button">
-                            <span>Instagram</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-pinterest text" type="button">
-                            <span>Pinterest</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-vk text" type="button">
-                            <span>VK</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-yahoo text" type="button">
-                            <span>Yahoo</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-behance text" type="button">
-                            <span>Behance</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-dropbox text" type="button">
-                            <span>Dropbox</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-reddit text" type="button">
-                            <span>Reddit</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-spotify text" type="button">
-                            <span>Spotify</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-vine text" type="button">
-                            <span>Vine</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-foursquare text" type="button">
-                            <span>Forsquare</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-vimeo text" type="button">
-                            <span>Vimeo</span>
-                        </button>
-                    </p>
-                    <h6>Size Large
-                        <small>Add this class
-                            <code>.btn-lg</code>
-                        </small>
-                    </h6>
-                    <p>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-facebook text" type="button">
-                            <span>Facebook</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-twitter text" type="button">
-                            <span>Twitter</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-linkedin text" type="button">
-                            <span>LinkedIn</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-flickr text" type="button">
-                            <span>Flickr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-tumblr text" type="button">
-                            <span>Tumblr</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-xing text" type="button">
-                            <span>Xing</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-github text" type="button">
-                            <span>Github</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-html5 text" type="button">
-                            <span>HTML5</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-openid text" type="button">
-                            <span>OpenID</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-stack-overflow text" type="button">
-                            <span>StackOverflow</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-css3 text" type="button">
-                            <span>CSS3</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-youtube text" type="button">
-                            <span>YouTube</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dribbble text" type="button">
-                            <span>Dribbble</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-google-plus text" type="button">
-                            <span>Google+</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-instagram text" type="button">
-                            <span>Instagram</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-pinterest text" type="button">
-                            <span>Pinterest</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vk text" type="button">
-                            <span>VK</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-yahoo text" type="button">
-                            <span>Yahoo</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-behance text" type="button">
-                            <span>Behance</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dropbox text" type="button">
-                            <span>Dropbox</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-reddit text" type="button">
-                            <span>Reddit</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-spotify text" type="button">
-                            <span>Spotify</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vine text" type="button">
-                            <span>Vine</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-foursquare text" type="button">
-                            <span>Forsquare</span>
-                        </button>
-                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vimeo text" type="button">
-                            <span>Vimeo</span>
-                        </button>
-                    </p>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-</div>
diff --git a/demo/Angular2_Demo/app/components/social-buttons.component.js b/demo/Angular2_Demo/app/components/social-buttons.component.js
deleted file mode 100644
index dce909e4c73dd26db28e64f690bd2f57d1c650dc..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/social-buttons.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var SocialButtonsComponent = (function () {
-    function SocialButtonsComponent() {
-    }
-    SocialButtonsComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/components/social-buttons.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], SocialButtonsComponent);
-    return SocialButtonsComponent;
-}());
-exports.SocialButtonsComponent = SocialButtonsComponent;
-//# sourceMappingURL=social-buttons.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/social-buttons.component.js.map b/demo/Angular2_Demo/app/components/social-buttons.component.js.map
deleted file mode 100644
index 503886e80b2a04d983fd72512b19208979970a55..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/social-buttons.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"social-buttons.component.js","sourceRoot":"","sources":["social-buttons.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,8CAA8C;SAC9D,CAAC;;8BAAA;IAKF,6BAAC;AAAD,CAAC,AAJD,IAIC;AAJY,8BAAsB,yBAIlC,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/social-buttons.component.ts b/demo/Angular2_Demo/app/components/social-buttons.component.ts
deleted file mode 100644
index f7bc5a46a9ce81b697d122475a493e6863d7fc6b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/social-buttons.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/components/social-buttons.component.html'
-})
-export class SocialButtonsComponent {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/components/switches.component.html b/demo/Angular2_Demo/app/components/switches.component.html
deleted file mode 100644
index 8fce99288cbc21e006b4037ffc6ecbe4a0452fa3..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/switches.component.html
+++ /dev/null
@@ -1,942 +0,0 @@
-<div class="animated fadeIn">
-    <div class="row">
-        <div class="col-md-12">
-            <div class="card">
-                <div class="card-header">
-                    3d Switch
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-3d switch-primary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-3d switch-secondary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-3d switch-success">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-3d switch-warning">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-3d switch-info">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-3d switch-danger">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch default
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-default switch-primary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-secondary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-success">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-warning">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-info">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-danger">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch default - pills
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-default switch-pill switch-primary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-secondary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-success">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-warning">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-info">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-danger">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch outline
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-default switch-primary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-secondary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-success-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-warning-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-info-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-danger-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch outline - pills
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-default switch-pill switch-primary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-secondary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-success-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-warning-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-info-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-danger-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch outline alternative
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-default switch-primary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-secondary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-success-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-warning-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-info-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-danger-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch outline alternative - pills
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-default switch-pill switch-primary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-secondary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-success-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-warning-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-info-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-default switch-pill switch-danger-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with text
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-text switch-primary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-secondary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-success">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-warning">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-info">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-danger">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with text - pills
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-text switch-pill switch-primary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-secondary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-success">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-warning">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-info">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-danger">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with text outline
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-text switch-primary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-secondary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-success-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-warning-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-info-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-danger-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with text outline - pills
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-text switch-pill switch-primary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-secondary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-success-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-warning-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-info-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-danger-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with text outline alternative
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-text switch-primary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-secondary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-success-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-warning-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-info-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-danger-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with text outline alternative - pills
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-text switch-pill switch-primary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-secondary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-success-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-warning-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-info-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-text switch-pill switch-danger-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="On" data-off="Off"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with icon
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-icon switch-primary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-secondary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-success">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-warning">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-info">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-danger">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with icon - pills
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-icon switch-pill switch-primary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-secondary">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-success">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-warning">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-info">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-danger">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with icon outline
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-icon switch-primary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-secondary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-success-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-warning-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-info-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-danger-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with icon outline - pills
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-icon switch-pill switch-primary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-secondary-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-success-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-warning-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-info-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-danger-outline">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with icon outline alternative
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-icon switch-primary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-secondary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-success-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-warning-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-info-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-danger-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-6">
-            <div class="card">
-                <div class="card-header">
-                    Switch with icon outline alternative - pills
-                </div>
-                <div class="card-block">
-                    <label class="switch switch-icon switch-pill switch-primary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-secondary-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-success-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-warning-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-info-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                    &nbsp;&nbsp;&nbsp;
-                    <label class="switch switch-icon switch-pill switch-danger-outline-alt">
-                        <input type="checkbox" class="switch-input" checked>
-                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>
-                        <span class="switch-handle"></span>
-                    </label>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-12">
-            <div class="card">
-                <div class="card-header">
-                    Sizes
-                </div>
-                <div class="card-block p-a-0">
-                    <table class="table table-hover table-striped table-align-middle m-b-0">
-                        <thead>
-                            <th>Size</th>
-                            <th>Example</th>
-                            <th>CSS Class</th>
-                        </thead>
-                        <tbody>
-                            <tr>
-                                <td>
-                                    Large
-                                </td>
-                                <td>
-                                    <label class="switch switch-lg switch-3d switch-primary">
-                                        <input type="checkbox" class="switch-input" checked>
-                                        <span class="switch-label"></span>
-                                        <span class="switch-handle"></span>
-                                    </label>
-                                </td>
-                                <td>
-                                    Add following class
-                                    <code>.switch-lg</code>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    Normal
-                                </td>
-                                <td>
-                                    <label class="switch switch-3d switch-primary">
-                                        <input type="checkbox" class="switch-input" checked>
-                                        <span class="switch-label"></span>
-                                        <span class="switch-handle"></span>
-                                    </label>
-                                </td>
-                                <td>
-                                    -
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    Small
-                                </td>
-                                <td>
-                                    <label class="switch switch-sm switch-3d switch-primary">
-                                        <input type="checkbox" class="switch-input" checked>
-                                        <span class="switch-label"></span>
-                                        <span class="switch-handle"></span>
-                                    </label>
-                                </td>
-                                <td>
-                                    Add following class
-                                    <code>.switch-sm</code>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    Extra small
-                                </td>
-                                <td>
-                                    <label class="switch switch-xs switch-3d switch-primary">
-                                        <input type="checkbox" class="switch-input" checked>
-                                        <span class="switch-label"></span>
-                                        <span class="switch-handle"></span>
-                                    </label>
-                                </td>
-                                <td>
-                                    Add following class
-                                    <code>.switch-sm</code>
-                                </td>
-                            </tr>
-                        </tbody>
-                    </table>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-</div>
diff --git a/demo/Angular2_Demo/app/components/switches.component.js b/demo/Angular2_Demo/app/components/switches.component.js
deleted file mode 100644
index 0529c4d4703d9d7ea4300cb3e531ba2d146074c5..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/switches.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var SwitchesComponent = (function () {
-    function SwitchesComponent() {
-    }
-    SwitchesComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/components/switches.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], SwitchesComponent);
-    return SwitchesComponent;
-}());
-exports.SwitchesComponent = SwitchesComponent;
-//# sourceMappingURL=switches.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/switches.component.js.map b/demo/Angular2_Demo/app/components/switches.component.js.map
deleted file mode 100644
index 0e7b47a023928784ce61ab44ea967f9c45813766..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/switches.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switches.component.js","sourceRoot":"","sources":["switches.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,wCAAwC;SACxD,CAAC;;yBAAA;IAKF,wBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,yBAAiB,oBAI7B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/switches.component.ts b/demo/Angular2_Demo/app/components/switches.component.ts
deleted file mode 100644
index 2b4fb62e482436b188a6a02b16cb2292ee914e1f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/switches.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/components/switches.component.html'
-})
-export class SwitchesComponent {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/components/tables.component.html b/demo/Angular2_Demo/app/components/tables.component.html
deleted file mode 100644
index c0c97c081f298a67abe014f9fde06111dbf3da00..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/tables.component.html
+++ /dev/null
@@ -1,398 +0,0 @@
-<div class="animated fadeIn">
-    <div class="row">
-        <div class="col-lg-6">
-            <div class="card">
-                <div class="card-header">
-                    <i class="fa fa-align-justify"></i> Simple Table
-                </div>
-                <div class="card-block">
-                    <table class="table">
-                        <thead>
-                            <tr>
-                                <th>Username</th>
-                                <th>Date registered</th>
-                                <th>Role</th>
-                                <th>Status</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            <tr>
-                                <td>Samppa Nori</td>
-                                <td>2012/01/01</td>
-                                <td>Member</td>
-                                <td>
-                                    <span class="tag tag-success">Active</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Estavan Lykos</td>
-                                <td>2012/02/01</td>
-                                <td>Staff</td>
-                                <td>
-                                    <span class="tag tag-danger">Banned</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Chetan Mohamed</td>
-                                <td>2012/02/01</td>
-                                <td>Admin</td>
-                                <td>
-                                    <span class="tag tag-default">Inactive</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Derick Maximinus</td>
-                                <td>2012/03/01</td>
-                                <td>Member</td>
-                                <td>
-                                    <span class="tag tag-warning">Pending</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Friderik Dávid</td>
-                                <td>2012/01/21</td>
-                                <td>Staff</td>
-                                <td>
-                                    <span class="tag tag-success">Active</span>
-                                </td>
-                            </tr>
-                        </tbody>
-                    </table>
-                    <ul class="pagination">
-                        <li class="page-item"><a class="page-link" href="#">Prev</a>
-                        </li>
-                        <li class="page-item active">
-                            <a class="page-link" href="#">1</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">2</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">3</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">4</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">Next</a>
-                        </li>
-                    </ul>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-lg-6">
-            <div class="card">
-                <div class="card-header">
-                    <i class="fa fa-align-justify"></i> Striped Table
-                </div>
-                <div class="card-block">
-                    <table class="table table-striped">
-                        <thead>
-                            <tr>
-                                <th>Username</th>
-                                <th>Date registered</th>
-                                <th>Role</th>
-                                <th>Status</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            <tr>
-                                <td>Yiorgos Avraamu</td>
-                                <td>2012/01/01</td>
-                                <td>Member</td>
-                                <td>
-                                    <span class="tag tag-success">Active</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Avram Tarasios</td>
-                                <td>2012/02/01</td>
-                                <td>Staff</td>
-                                <td>
-                                    <span class="tag tag-danger">Banned</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Quintin Ed</td>
-                                <td>2012/02/01</td>
-                                <td>Admin</td>
-                                <td>
-                                    <span class="tag tag-default">Inactive</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Enéas Kwadwo</td>
-                                <td>2012/03/01</td>
-                                <td>Member</td>
-                                <td>
-                                    <span class="tag tag-warning">Pending</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Agapetus Tadeáš</td>
-                                <td>2012/01/21</td>
-                                <td>Staff</td>
-                                <td>
-                                    <span class="tag tag-success">Active</span>
-                                </td>
-                            </tr>
-                        </tbody>
-                    </table>
-                    <ul class="pagination">
-                        <li class="page-item"><a class="page-link" href="#">Prev</a>
-                        </li>
-                        <li class="page-item active">
-                            <a class="page-link" href="#">1</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">2</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">3</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">4</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">Next</a>
-                        </li>
-                    </ul>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-    <div class="row">
-        <div class="col-lg-6">
-            <div class="card">
-                <div class="card-header">
-                    <i class="fa fa-align-justify"></i> Condensed Table
-                </div>
-                <div class="card-block">
-                    <table class="table table-condensed">
-                        <thead>
-                            <tr>
-                                <th>Username</th>
-                                <th>Date registered</th>
-                                <th>Role</th>
-                                <th>Status</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            <tr>
-                                <td>Carwyn Fachtna</td>
-                                <td>2012/01/01</td>
-                                <td>Member</td>
-                                <td>
-                                    <span class="tag tag-success">Active</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Nehemiah Tatius</td>
-                                <td>2012/02/01</td>
-                                <td>Staff</td>
-                                <td>
-                                    <span class="tag tag-danger">Banned</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Ebbe Gemariah</td>
-                                <td>2012/02/01</td>
-                                <td>Admin</td>
-                                <td>
-                                    <span class="tag tag-default">Inactive</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Eustorgios Amulius</td>
-                                <td>2012/03/01</td>
-                                <td>Member</td>
-                                <td>
-                                    <span class="tag tag-warning">Pending</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Leopold Gáspár</td>
-                                <td>2012/01/21</td>
-                                <td>Staff</td>
-                                <td>
-                                    <span class="tag tag-success">Active</span>
-                                </td>
-                            </tr>
-                        </tbody>
-                    </table>
-                    <ul class="pagination">
-                        <li class="page-item"><a class="page-link" href="#">Prev</a>
-                        </li>
-                        <li class="page-item active">
-                            <a class="page-link" href="#">1</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">2</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">3</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">4</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">Next</a>
-                        </li>
-                    </ul>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-lg-6">
-            <div class="card">
-                <div class="card-header">
-                    <i class="fa fa-align-justify"></i> Bordered Table
-                </div>
-                <div class="card-block">
-                    <table class="table table-bordered">
-                        <thead>
-                            <tr>
-                                <th>Username</th>
-                                <th>Date registered</th>
-                                <th>Role</th>
-                                <th>Status</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            <tr>
-                                <td>Pompeius René</td>
-                                <td>2012/01/01</td>
-                                <td>Member</td>
-                                <td>
-                                    <span class="tag tag-success">Active</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Paĉjo Jadon</td>
-                                <td>2012/02/01</td>
-                                <td>Staff</td>
-                                <td>
-                                    <span class="tag tag-danger">Banned</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Micheal Mercurius</td>
-                                <td>2012/02/01</td>
-                                <td>Admin</td>
-                                <td>
-                                    <span class="tag tag-default">Inactive</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Ganesha Dubhghall</td>
-                                <td>2012/03/01</td>
-                                <td>Member</td>
-                                <td>
-                                    <span class="tag tag-warning">Pending</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Hiroto Å imun</td>
-                                <td>2012/01/21</td>
-                                <td>Staff</td>
-                                <td>
-                                    <span class="tag tag-success">Active</span>
-                                </td>
-                            </tr>
-                        </tbody>
-                    </table>
-                    <ul class="pagination">
-                        <li class="page-item"><a class="page-link" href="#">Prev</a>
-                        </li>
-                        <li class="page-item active">
-                            <a class="page-link" href="#">1</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">2</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">3</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">4</a>
-                        </li>
-                        <li class="page-item"><a class="page-link" href="#">Next</a>
-                        </li>
-                    </ul>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-    <div class="row">
-        <div class="col-lg-12">
-            <div class="card">
-                <div class="card-header">
-                    <i class="fa fa-align-justify"></i> Combined All Table
-                </div>
-                <div class="card-block">
-                    <table class="table table-bordered table-striped table-condensed">
-                        <thead>
-                            <tr>
-                                <th>Username</th>
-                                <th>Date registered</th>
-                                <th>Role</th>
-                                <th>Status</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            <tr>
-                                <td>Vishnu Serghei</td>
-                                <td>2012/01/01</td>
-                                <td>Member</td>
-                                <td>
-                                    <span class="tag tag-success">Active</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Zbyněk Phoibos</td>
-                                <td>2012/02/01</td>
-                                <td>Staff</td>
-                                <td>
-                                    <span class="tag tag-danger">Banned</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Einar Randall</td>
-                                <td>2012/02/01</td>
-                                <td>Admin</td>
-                                <td>
-                                    <span class="tag tag-default">Inactive</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Félix Troels</td>
-                                <td>2012/03/01</td>
-                                <td>Member</td>
-                                <td>
-                                    <span class="tag tag-warning">Pending</span>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>Aulus Agmundr</td>
-                                <td>2012/01/21</td>
-                                <td>Staff</td>
-                                <td>
-                                    <span class="tag tag-success">Active</span>
-                                </td>
-                            </tr>
-                        </tbody>
-                    </table>
-                    <nav>
-                        <ul class="pagination">
-                            <li class="page-item"><a class="page-link" href="#">Prev</a>
-                            </li>
-                            <li class="page-item active">
-                                <a class="page-link" href="#">1</a>
-                            </li>
-                            <li class="page-item"><a class="page-link" href="#">2</a>
-                            </li>
-                            <li class="page-item"><a class="page-link" href="#">3</a>
-                            </li>
-                            <li class="page-item"><a class="page-link" href="#">4</a>
-                            </li>
-                            <li class="page-item"><a class="page-link" href="#">Next</a>
-                            </li>
-                        </ul>
-                    </nav>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-</div>
diff --git a/demo/Angular2_Demo/app/components/tables.component.js b/demo/Angular2_Demo/app/components/tables.component.js
deleted file mode 100644
index 5bdd8f0f51e02314253875a2805c1842ee3135c1..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/tables.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var TablesComponent = (function () {
-    function TablesComponent() {
-    }
-    TablesComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/components/tables.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], TablesComponent);
-    return TablesComponent;
-}());
-exports.TablesComponent = TablesComponent;
-//# sourceMappingURL=tables.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/tables.component.js.map b/demo/Angular2_Demo/app/components/tables.component.js.map
deleted file mode 100644
index 343ddfaf13ce6ffe0f61ddfd78beae7654345340..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/tables.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"tables.component.js","sourceRoot":"","sources":["tables.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,sCAAsC;SACtD,CAAC;;uBAAA;IAKF,sBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,uBAAe,kBAI3B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/components/tables.component.ts b/demo/Angular2_Demo/app/components/tables.component.ts
deleted file mode 100644
index 8eb4b4fedc6ae4c5beb7ee00062b48b6e82d6764..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/components/tables.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/components/tables.component.html'
-})
-export class TablesComponent {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/dashboard/dashboard.component.html b/demo/Angular2_Demo/app/dashboard/dashboard.component.html
deleted file mode 100644
index a186986ef8c0f54a5342517e2aeae9e921b9af61..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/dashboard/dashboard.component.html
+++ /dev/null
@@ -1,820 +0,0 @@
-<div class="animated fadeIn">
-    <div class="row">
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-primary">
-                <div class="card-block p-b-0">
-                    <div class="btn-group pull-right" dropdown>
-                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" dropdownToggle>
-                            <i class="icon-settings"></i>
-                        </button>
-                        <div class="dropdown-menu dropdown-menu-right" dropdownMenu>
-                            <a class="dropdown-item" href="#">Action</a>
-                            <a class="dropdown-item" href="#">Another action</a>
-                            <a class="dropdown-item" href="#">Something else here</a>
-                        </div>
-                    </div>
-                    <h4 class="m-b-0">9.823</h4>
-                    <p>Members online</p>
-                </div>
-                <div class="chart-wrapper p-x-1">
-                    <base-chart class="chart" [datasets]="lineChart1Data" [labels]="lineChart1Labels" [options]="lineChart1Options" [colors]="lineChart1Colours" [legend]="lineChart1Legend" [chartType]="lineChart1Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:70px;"></base-chart>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-info">
-                <div class="card-block p-b-0">
-                    <button type="button" class="btn btn-transparent p-a-0 pull-right">
-                        <i class="icon-location-pin"></i>
-                    </button>
-                    <h4 class="m-b-0">9.823</h4>
-                    <p>Members online</p>
-                </div>
-                <div class="chart-wrapper p-x-1" style="height:70px;">
-                    <base-chart class="chart" [datasets]="lineChart2Data" [labels]="lineChart2Labels" [options]="lineChart2Options" [colors]="lineChart2Colours" [legend]="lineChart2Legend" [chartType]="lineChart2Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:70px;"></base-chart>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-warning">
-                <div class="card-block p-b-0">
-                    <div class="btn-group pull-right">
-                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                            <i class="icon-settings"></i>
-                        </button>
-                        <div class="dropdown-menu dropdown-menu-right">
-                            <a class="dropdown-item" href="#">Action</a>
-                            <a class="dropdown-item" href="#">Another action</a>
-                            <a class="dropdown-item" href="#">Something else here</a>
-                        </div>
-                    </div>
-                    <h4 class="m-b-0">9.823</h4>
-                    <p>Members online</p>
-                </div>
-                <div class="chart-wrapper" style="height:70px;">
-                    <base-chart class="chart" [datasets]="lineChart3Data" [labels]="lineChart3Labels" [options]="lineChart3Options" [colors]="lineChart3Colours" [legend]="lineChart3Legend" [chartType]="lineChart3Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:70px;"></base-chart>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-danger">
-                <div class="card-block p-b-0">
-                    <div class="btn-group pull-right" dropdown>
-                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" dropdownToggle>
-                            <i class="icon-settings"></i>
-                        </button>
-                        <div class="dropdown-menu dropdown-menu-right" dropdownMenu>
-                            <a class="dropdown-item" href="#">Action</a>
-                            <a class="dropdown-item" href="#">Another action</a>
-                            <a class="dropdown-item" href="#">Something else here</a>
-                        </div>
-                    </div>
-                    <h4 class="m-b-0">9.823</h4>
-                    <p>Members online</p>
-                </div>
-                <div class="chart-wrapper p-x-1" style="height:70px;">
-                    <base-chart class="chart" [datasets]="barChart1Data" [labels]="barChart1Labels" [options]="barChart1Options" [colors]="barChart1Colours" [legend]="barChart1Legend" [chartType]="barChart1Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:70px;"></base-chart>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-    <div class="card">
-        <div class="card-block">
-            <div class="row">
-                <div class="col-sm-6">
-                    <h4 class="card-title m-b-0">Traffic</h4>
-                    <div class="small text-muted">November 2015</div>
-                </div>
-                <div class="col-sm-6">
-                    <div class="btn-toolbar pull-right" role="toolbar" aria-label="Toolbar with button groups">
-                        <div class="btn-group" data-toggle="buttons" aria-label="First group">
-                            <label class="btn btn-outline-secondary">
-                                <input type="radio" name="options" id="option1">Day
-                            </label>
-                            <label class="btn btn-outline-secondary active">
-                                <input type="radio" name="options" id="option2" checked>Month
-                            </label>
-                            <label class="btn btn-outline-secondary">
-                                <input type="radio" name="options" id="option3">Year
-                            </label>
-                        </div>
-                        <div class="btn-group" role="group" aria-label="Second group">
-                            <button type="button" class="btn btn-primary"><i class="icon-cloud-download"></i>
-                            </button>
-                        </div>
-                    </div>
-                </div>
-            </div>
-            <div class="chart-wrapper" style="height:300px;margin-top:40px;">
-                <base-chart class="chart" [datasets]="mainChartData" [labels]="mainChartLabels" [options]="mainChartOptions" [colors]="mainChartColours" [legend]="mainChartLegend" [chartType]="mainChartType" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                style="height:300px;"></base-chart>
-            </div>
-        </div>
-        <div class="card-footer">
-            <ul>
-                <li>
-                    <div class="text-muted">Visits</div>
-                    <strong>29.703 Users (40%)</strong>
-                    <progress class="progress progress-xs progress-success" value="40" max="100">40%</progress>
-                </li>
-                <li class="hidden-xs-down">
-                    <div class="text-muted">Unique</div>
-                    <strong>24.093 Unique Users (20%)</strong>
-                    <progress class="progress progress-xs progress-info" value="20" max="100">20%</progress>
-                </li>
-                <li>
-                    <div class="text-muted">Pageviews</div>
-                    <strong>78.706 Views (60%)</strong>
-                    <progress class="progress progress-xs progress-warning" value="60" max="100">60%</progress>
-                </li>
-                <li class="hidden-xs-down">
-                    <div class="text-muted">New Users</div>
-                    <strong>22.123 Users (80%)</strong>
-                    <progress class="progress progress-xs progress-danger" value="80" max="100">80%</progress>
-                </li>
-                <li class="hidden-xs-down">
-                    <div class="text-muted">Bounce Rate</div>
-                    <strong>40.15%</strong>
-                    <progress class="progress progress-xs progress-primary" value="40" max="100">40%</progress>
-                </li>
-            </ul>
-        </div>
-    </div>
-    <!--/.card-->
-    <div class="row">
-        <div class="col-sm-6 col-lg-3">
-            <div class="social-box facebook">
-                <i class="fa fa-facebook"></i>
-                <div class="chart-wrapper">
-                    <base-chart class="chart" [datasets]="socialChartData1" [labels]="socialChartLabels" [options]="socialChartOptions" [colors]="socialChartColours" [legend]="socialChartLegend" [chartType]="socialChartType" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:90px;"></base-chart>
-                </div>
-                <ul>
-                    <li>
-                        <strong>89k</strong>
-                        <span>friends</span>
-                    </li>
-                    <li>
-                        <strong>459</strong>
-                        <span>feeds</span>
-                    </li>
-                </ul>
-            </div>
-            <!--/.social-box-->
-        </div>
-        <!--/.col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="social-box twitter">
-                <i class="fa fa-twitter"></i>
-                <div class="chart-wrapper">
-                    <base-chart class="chart" [datasets]="socialChartData2" [labels]="socialChartLabels" [options]="socialChartOptions" [colors]="socialChartColours" [legend]="socialChartLegend" [chartType]="socialChartType" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:90px;"></base-chart>
-                </div>
-                <ul>
-                    <li>
-                        <strong>973k</strong>
-                        <span>followers</span>
-                    </li>
-                    <li>
-                        <strong>1.792</strong>
-                        <span>tweets</span>
-                    </li>
-                </ul>
-            </div>
-            <!--/.social-box-->
-        </div>
-        <!--/.col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="social-box linkedin">
-                <i class="fa fa-linkedin"></i>
-                <div class="chart-wrapper">
-                    <base-chart class="chart" [datasets]="socialChartData3" [labels]="socialChartLabels" [options]="socialChartOptions" [colors]="socialChartColours" [legend]="socialChartLegend" [chartType]="socialChartType" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:90px;"></base-chart>>
-                </div>
-                <ul>
-                    <li>
-                        <strong>500+</strong>
-                        <span>contacts</span>
-                    </li>
-                    <li>
-                        <strong>292</strong>
-                        <span>feeds</span>
-                    </li>
-                </ul>
-            </div>
-            <!--/.social-box-->
-        </div>
-        <!--/.col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="social-box google-plus">
-                <i class="fa fa-google-plus"></i>
-                <div class="chart-wrapper">
-                    <base-chart class="chart" [datasets]="socialChartData4" [labels]="socialChartLabels" [options]="socialChartOptions" [colors]="socialChartColours" [legend]="socialChartLegend" [chartType]="socialChartType" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:90px;"></base-chart>
-                </div>
-                <ul>
-                    <li>
-                        <strong>894</strong>
-                        <span>followers</span>
-                    </li>
-                    <li>
-                        <strong>92</strong>
-                        <span>circles</span>
-                    </li>
-                </ul>
-            </div>
-            <!--/.social-box-->
-        </div>
-        <!--/.col-->
-    </div>
-    <!--/.row-->
-    <div class="row">
-        <div class="col-md-12">
-            <div class="card">
-                <div class="card-header">
-                    Traffic &amp; Sales
-                </div>
-                <div class="card-block">
-                    <div class="row">
-                        <div class="col-sm-12 col-lg-4">
-                            <div class="row">
-                                <div class="col-sm-6">
-                                    <div class="callout callout-info">
-                                        <small class="text-muted">New Clients</small>
-                                        <br>
-                                        <strong class="h4">9,123</strong>
-                                        <div class="chart-wrapper">
-                                            <base-chart class="chart" [datasets]="sparklineChartData1" [labels]="sparklineChartLabels" [options]="sparklineChartOptions" [colors]="sparklineChartInfo" [legend]="sparklineChartLegend" [chartType]="sparklineChartType" (chartHover)="chartHovered($event)"
-                                            (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>
-                                        </div>
-                                    </div>
-                                </div>
-                                <!--/.col-->
-                                <div class="col-sm-6">
-                                    <div class="callout callout-danger">
-                                        <small class="text-muted">Recuring Clients</small>
-                                        <br>
-                                        <strong class="h4">22,643</strong>
-                                        <div class="chart-wrapper">
-                                            <base-chart class="chart" [datasets]="sparklineChartData2" [labels]="sparklineChartLabels" [options]="sparklineChartOptions" [colors]="sparklineChartDanger" [legend]="sparklineChartLegend" [chartType]="sparklineChartType" (chartHover)="chartHovered($event)"
-                                            (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>
-                                        </div>
-                                    </div>
-                                </div>
-                                <!--/.col-->
-                            </div>
-                            <!--/.row-->
-                            <hr class="m-t-0">
-                            <ul class="horizontal-bars">
-                                <li>
-                                    <div class="title">
-                                        Monday
-                                    </div>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-info" value="34" max="100" style="margin-bottom: 2px;">34%</progress>
-                                        <progress class="progress progress-xs progress-danger m-a-0" value="78" max="100">78%</progress>
-                                    </div>
-                                </li>
-                                <li>
-                                    <div class="title">
-                                        Tuesday
-                                    </div>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-info" value="56" max="100" style="margin-bottom: 2px;">56%</progress>
-                                        <progress class="progress progress-xs progress-danger m-a-0" value="94" max="100">94%</progress>
-                                    </div>
-                                </li>
-                                <li>
-                                    <div class="title">
-                                        Wednesday
-                                    </div>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-info" value="12" max="100" style="margin-bottom: 2px;">12%</progress>
-                                        <progress class="progress progress-xs progress-danger m-a-0" value="67" max="100">67%</progress>
-                                    </div>
-                                </li>
-                                <li>
-                                    <div class="title">
-                                        Thursday
-                                    </div>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-info" value="43" max="100" style="margin-bottom: 2px;">43%</progress>
-                                        <progress class="progress progress-xs progress-danger m-a-0" value="91" max="100">91%</progress>
-                                    </div>
-                                </li>
-                                <li>
-                                    <div class="title">
-                                        Friday
-                                    </div>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-info" value="22" max="100" style="margin-bottom: 2px;">22%</progress>
-                                        <progress class="progress progress-xs progress-danger m-a-0" value="73" max="100">73%</progress>
-                                    </div>
-                                </li>
-                                <li>
-                                    <div class="title">
-                                        Saturday
-                                    </div>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-info" value="53" max="100" style="margin-bottom: 2px;">53%</progress>
-                                        <progress class="progress progress-xs progress-danger m-a-0" value="82" max="100">82%</progress>
-                                    </div>
-                                </li>
-                                <li>
-                                    <div class="title">
-                                        Sunday
-                                    </div>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-info" value="9" max="100" style="margin-bottom: 2px;">9%</progress>
-                                        <progress class="progress progress-xs progress-danger m-a-0" value="69" max="100">69%</progress>
-                                    </div>
-                                </li>
-                                <li class="legend">
-                                    <span class="tag tag-pill tag-info"></span>
-                                    <small>New clients</small>&nbsp;
-                                    <span class="tag tag-pill tag-danger"></span>
-                                    <small>Recurring clients</small>
-                                </li>
-                            </ul>
-                        </div>
-                        <!--/.col-->
-                        <div class="col-sm-6 col-lg-4">
-                            <div class="row">
-                                <div class="col-sm-6">
-                                    <div class="callout callout-warning">
-                                        <small class="text-muted">Pageviews</small>
-                                        <br>
-                                        <strong class="h4">78,623</strong>
-                                        <div class="chart-wrapper">
-                                            <base-chart class="chart" [datasets]="sparklineChartData1" [labels]="sparklineChartLabels" [options]="sparklineChartOptions" [colors]="sparklineChartWarning" [legend]="sparklineChartLegend" [chartType]="sparklineChartType" (chartHover)="chartHovered($event)"
-                                            (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>
-                                        </div>
-                                    </div>
-                                </div>
-                                <!--/.col-->
-                                <div class="col-sm-6">
-                                    <div class="callout callout-success">
-                                        <small class="text-muted">Organic</small>
-                                        <br>
-                                        <strong class="h4">49,123</strong>
-                                        <div class="chart-wrapper">
-                                            <base-chart class="chart" [datasets]="sparklineChartData2" [labels]="sparklineChartLabels" [options]="sparklineChartOptions" [colors]="sparklineChartSuccess" [legend]="sparklineChartLegend" [chartType]="sparklineChartType" (chartHover)="chartHovered($event)"
-                                            (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>
-                                        </div>
-                                    </div>
-                                </div>
-                                <!--/.col-->
-                            </div>
-                            <!--/.row-->
-                            <hr class="m-t-0">
-                            <ul class="horizontal-bars type-2">
-                                <li>
-                                    <i class="icon-user"></i>
-                                    <span class="title">Male</span>
-                                    <span class="value">43%</span>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-warning m-a-0" value="43" max="100">43%</progress>
-                                    </div>
-                                </li>
-                                <li>
-                                    <i class="icon-user-female"></i>
-                                    <span class="title">Female</span>
-                                    <span class="value">37%</span>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-warning m-a-0" value="37" max="100">37%</progress>
-                                    </div>
-                                </li>
-                                <li class="divider"></li>
-                                <li>
-                                    <i class="icon-globe"></i>
-                                    <span class="title">Organic Search</span>
-                                    <span class="value">191,235
-                                        <span class="text-muted small">(56%)</span>
-                                    </span>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-success m-a-0" value="56" max="100">56%</progress>
-                                    </div>
-                                </li>
-                                <li>
-                                    <i class="icon-social-facebook"></i>
-                                    <span class="title">Facebook</span>
-                                    <span class="value">51,223
-                                        <span class="text-muted small">(15%)</span>
-                                    </span>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-success m-a-0" value="15" max="100">15%</progress>
-                                    </div>
-                                </li>
-                                <li>
-                                    <i class="icon-social-twitter"></i>
-                                    <span class="title">Twitter</span>
-                                    <span class="value">37,564
-                                        <span class="text-muted small">(11%)</span>
-                                    </span>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-success m-a-0" value="11" max="100">11%</progress>
-                                    </div>
-                                </li>
-                                <li>
-                                    <i class="icon-social-linkedin"></i>
-                                    <span class="title">LinkedIn</span>
-                                    <span class="value">27,319
-                                        <span class="text-muted small">(8%)</span>
-                                    </span>
-                                    <div class="bars">
-                                        <progress class="progress progress-xs progress-success m-a-0" value="8" max="100">8%</progress>
-                                    </div>
-                                </li>
-                                <li class="divider text-xs-center">
-                                    <button type="button" class="btn btn-sm btn-link text-muted" data-toggle="tooltip" data-placement="top" title="" data-original-title="show more"><i class="icon-options"></i>
-                                    </button>
-                                </li>
-                            </ul>
-                        </div>
-                        <!--/.col-->
-                        <div class="col-sm-6 col-lg-4">
-                            <div class="row">
-                                <div class="col-sm-6">
-                                    <div class="callout">
-                                        <small class="text-muted">CTR</small>
-                                        <br>
-                                        <strong class="h4">23%</strong>
-                                        <div class="chart-wrapper">
-                                            <base-chart class="chart" [datasets]="sparklineChartData1" [labels]="sparklineChartLabels" [options]="sparklineChartOptions" [colors]="sparklineChartDefault" [legend]="sparklineChartLegend" [chartType]="sparklineChartType" (chartHover)="chartHovered($event)"
-                                            (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>
-                                        </div>
-                                    </div>
-                                </div>
-                                <!--/.col-->
-                                <div class="col-sm-6">
-                                    <div class="callout callout-primary">
-                                        <small class="text-muted">Bounce Rate</small>
-                                        <br>
-                                        <strong class="h4">5%</strong>
-                                        <div class="chart-wrapper">
-                                            <base-chart class="chart" [datasets]="sparklineChartData2" [labels]="sparklineChartLabels" [options]="sparklineChartOptions" [colors]="sparklineChartPrimary" [legend]="sparklineChartLegend" [chartType]="sparklineChartType" (chartHover)="chartHovered($event)"
-                                            (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>
-                                        </div>
-                                    </div>
-                                </div>
-                                <!--/.col-->
-                            </div>
-                            <!--/.row-->
-                            <hr class="m-t-0">
-                            <ul class="icons-list">
-                                <li>
-                                    <i class="icon-screen-desktop bg-primary"></i>
-                                    <div class="desc">
-                                        <div class="title">iMac 4k</div>
-                                        <small>Lorem ipsum dolor sit amet</small>
-                                    </div>
-                                    <div class="value">
-                                        <div class="small text-muted">Sold this week</div>
-                                        <strong>1.924</strong>
-                                    </div>
-                                    <div class="actions">
-                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i>
-                                        </button>
-                                    </div>
-                                </li>
-                                <li>
-                                    <i class="icon-screen-smartphone bg-info"></i>
-                                    <div class="desc">
-                                        <div class="title">Samsung Galaxy Edge</div>
-                                        <small>Lorem ipsum dolor sit amet</small>
-                                    </div>
-                                    <div class="value">
-                                        <div class="small text-muted">Sold this week</div>
-                                        <strong>1.224</strong>
-                                    </div>
-                                    <div class="actions">
-                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i>
-                                        </button>
-                                    </div>
-                                </li>
-                                <li>
-                                    <i class="icon-screen-smartphone bg-warning"></i>
-                                    <div class="desc">
-                                        <div class="title">iPhone 6S</div>
-                                        <small>Lorem ipsum dolor sit amet</small>
-                                    </div>
-                                    <div class="value">
-                                        <div class="small text-muted">Sold this week</div>
-                                        <strong>1.163</strong>
-                                    </div>
-                                    <div class="actions">
-                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i>
-                                        </button>
-                                    </div>
-                                </li>
-                                <li>
-                                    <i class="icon-user bg-danger"></i>
-                                    <div class="desc">
-                                        <div class="title">Premium accounts</div>
-                                        <small>Lorem ipsum dolor sit amet</small>
-                                    </div>
-                                    <div class="value">
-                                        <div class="small text-muted">Sold this week</div>
-                                        <strong>928</strong>
-                                    </div>
-                                    <div class="actions">
-                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i>
-                                        </button>
-                                    </div>
-                                </li>
-                                <li>
-                                    <i class="icon-social-spotify bg-success"></i>
-                                    <div class="desc">
-                                        <div class="title">Spotify Subscriptions</div>
-                                        <small>Lorem ipsum dolor sit amet</small>
-                                    </div>
-                                    <div class="value">
-                                        <div class="small text-muted">Sold this week</div>
-                                        <strong>893</strong>
-                                    </div>
-                                    <div class="actions">
-                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i>
-                                        </button>
-                                    </div>
-                                </li>
-                                <li>
-                                    <i class="icon-cloud-download bg-danger"></i>
-                                    <div class="desc">
-                                        <div class="title">Ebook</div>
-                                        <small>Lorem ipsum dolor sit amet</small>
-                                    </div>
-                                    <div class="value">
-                                        <div class="small text-muted">Downloads</div>
-                                        <strong>121.924</strong>
-                                    </div>
-                                    <div class="actions">
-                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i>
-                                        </button>
-                                    </div>
-                                </li>
-                                <li>
-                                    <i class="icon-camera bg-warning"></i>
-                                    <div class="desc">
-                                        <div class="title">Photos</div>
-                                        <small>Lorem ipsum dolor sit amet</small>
-                                    </div>
-                                    <div class="value">
-                                        <div class="small text-muted">Uploaded</div>
-                                        <strong>12.125</strong>
-                                    </div>
-                                    <div class="actions">
-                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i>
-                                        </button>
-                                    </div>
-                                </li>
-                                <li class="divider text-xs-center">
-                                    <button type="button" class="btn btn-sm btn-link text-muted" data-toggle="tooltip" data-placement="top" title="show more"><i class="icon-options"></i>
-                                    </button>
-                                </li>
-                            </ul>
-                        </div>
-                        <!--/.col-->
-                    </div>
-                    <!--/.row-->
-                    <br>
-                    <table class="table table-hover table-outline m-b-0 hidden-sm-down">
-                        <thead class="thead-default">
-                            <tr>
-                                <th class="text-xs-center"><i class="icon-people"></i>
-                                </th>
-                                <th>User</th>
-                                <th class="text-xs-center">Country</th>
-                                <th>Usage</th>
-                                <th class="text-xs-center">Payment Method</th>
-                                <th>Activity</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            <tr>
-                                <td class="text-xs-center">
-                                    <div class="avatar">
-                                        <img src="img/avatars/1.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                                        <span class="avatar-status tag-success"></span>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div>Yiorgos Avraamu</div>
-                                    <div class="small text-muted">
-                                        <span>New</span>| Registered: Jan 1, 2015
-                                    </div>
-                                </td>
-                                <td class="text-xs-center">
-                                    <img src="img/flags/USA.png" alt="USA" style="height:24px;">
-                                </td>
-                                <td>
-                                    <div class="clearfix">
-                                        <div class="pull-left">
-                                            <strong>50%</strong>
-                                        </div>
-                                        <div class="pull-right">
-                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>
-                                        </div>
-                                    </div>
-                                    <progress class="progress progress-xs progress-success" value="50" max="100" style="margin:5px 0 0 0;">50%</progress>
-                                </td>
-                                <td class="text-xs-center">
-                                    <i class="fa fa-cc-mastercard" style="font-size:24px"></i>
-                                </td>
-                                <td>
-                                    <div class="small text-muted">Last login</div>
-                                    <strong>10 sec ago</strong>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="text-xs-center">
-                                    <div class="avatar">
-                                        <img src="img/avatars/2.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                                        <span class="avatar-status tag-danger"></span>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div>Avram Tarasios</div>
-                                    <div class="small text-muted">
-                                        <span>Recurring</span>| Registered: Jan 1, 2015
-                                    </div>
-                                </td>
-                                <td class="text-xs-center">
-                                    <img src="img/flags/Brazil.png" alt="Brazil" style="height:24px;">
-                                </td>
-                                <td>
-                                    <div class="clearfix">
-                                        <div class="pull-left">
-                                            <strong>10%</strong>
-                                        </div>
-                                        <div class="pull-right">
-                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>
-                                        </div>
-                                    </div>
-                                    <progress class="progress progress-xs progress-info" value="10" max="100" style="margin:5px 0 0 0;">10%</progress>
-                                </td>
-                                <td class="text-xs-center">
-                                    <i class="fa fa-cc-visa" style="font-size:24px"></i>
-                                </td>
-                                <td>
-                                    <div class="small text-muted">Last login</div>
-                                    <strong>5 minutes ago</strong>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="text-xs-center">
-                                    <div class="avatar">
-                                        <img src="img/avatars/3.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                                        <span class="avatar-status tag-warning"></span>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div>Quintin Ed</div>
-                                    <div class="small text-muted">
-                                        <span>New</span>| Registered: Jan 1, 2015
-                                    </div>
-                                </td>
-                                <td class="text-xs-center">
-                                    <img src="img/flags/India.png" alt="India" style="height:24px;">
-                                </td>
-                                <td>
-                                    <div class="clearfix">
-                                        <div class="pull-left">
-                                            <strong>74%</strong>
-                                        </div>
-                                        <div class="pull-right">
-                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>
-                                        </div>
-                                    </div>
-                                    <progress class="progress progress-xs progress-warning" value="74" max="100" style="margin:5px 0 0 0;">74%</progress>
-                                </td>
-                                <td class="text-xs-center">
-                                    <i class="fa fa-cc-stripe" style="font-size:24px"></i>
-                                </td>
-                                <td>
-                                    <div class="small text-muted">Last login</div>
-                                    <strong>1 hour ago</strong>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="text-xs-center">
-                                    <div class="avatar">
-                                        <img src="img/avatars/4.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                                        <span class="avatar-status tag-default"></span>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div>Enéas Kwadwo</div>
-                                    <div class="small text-muted">
-                                        <span>New</span>| Registered: Jan 1, 2015
-                                    </div>
-                                </td>
-                                <td class="text-xs-center">
-                                    <img src="img/flags/France.png" alt="France" style="height:24px;">
-                                </td>
-                                <td>
-                                    <div class="clearfix">
-                                        <div class="pull-left">
-                                            <strong>98%</strong>
-                                        </div>
-                                        <div class="pull-right">
-                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>
-                                        </div>
-                                    </div>
-                                    <progress class="progress progress-xs progress-danger" value="98" max="100" style="margin:5px 0 0 0;">98%</progress>
-                                </td>
-                                <td class="text-xs-center">
-                                    <i class="fa fa-paypal" style="font-size:24px"></i>
-                                </td>
-                                <td>
-                                    <div class="small text-muted">Last login</div>
-                                    <strong>Last month</strong>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="text-xs-center">
-                                    <div class="avatar">
-                                        <img src="img/avatars/5.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                                        <span class="avatar-status tag-success"></span>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div>Agapetus Tadeáš</div>
-                                    <div class="small text-muted">
-                                        <span>New</span>| Registered: Jan 1, 2015
-                                    </div>
-                                </td>
-                                <td class="text-xs-center">
-                                    <img src="img/flags/Spain.png" alt="Spain" style="height:24px;">
-                                </td>
-                                <td>
-                                    <div class="clearfix">
-                                        <div class="pull-left">
-                                            <strong>22%</strong>
-                                        </div>
-                                        <div class="pull-right">
-                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>
-                                        </div>
-                                    </div>
-                                    <progress class="progress progress-xs progress-info" value="22" max="100" style="margin:5px 0 0 0;">22%</progress>
-                                </td>
-                                <td class="text-xs-center">
-                                    <i class="fa fa-google-wallet" style="font-size:24px"></i>
-                                </td>
-                                <td>
-                                    <div class="small text-muted">Last login</div>
-                                    <strong>Last week</strong>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td class="text-xs-center">
-                                    <div class="avatar">
-                                        <img src="img/avatars/6.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                                        <span class="avatar-status tag-danger"></span>
-                                    </div>
-                                </td>
-                                <td>
-                                    <div>Friderik Dávid</div>
-                                    <div class="small text-muted">
-                                        <span>New</span>| Registered: Jan 1, 2015
-                                    </div>
-                                </td>
-                                <td class="text-xs-center">
-                                    <img src="img/flags/Poland.png" alt="Poland" style="height:24px;">
-                                </td>
-                                <td>
-                                    <div class="clearfix">
-                                        <div class="pull-left">
-                                            <strong>43%</strong>
-                                        </div>
-                                        <div class="pull-right">
-                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>
-                                        </div>
-                                    </div>
-                                    <progress class="progress progress-xs progress-success" value="43" max="100" style="margin:5px 0 0 0;">43%</progress>
-                                </td>
-                                <td class="text-xs-center">
-                                    <i class="fa fa-cc-amex" style="font-size:24px"></i>
-                                </td>
-                                <td>
-                                    <div class="small text-muted">Last login</div>
-                                    <strong>Yesterday</strong>
-                                </td>
-                            </tr>
-                        </tbody>
-                    </table>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-    </div>
-    <!--/.row-->
-</div>
diff --git a/demo/Angular2_Demo/app/dashboard/dashboard.component.js b/demo/Angular2_Demo/app/dashboard/dashboard.component.js
deleted file mode 100644
index e7d0f44096845f910a5112fe4ffb78d834c4ce2a..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/dashboard/dashboard.component.js
+++ /dev/null
@@ -1,461 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var router_1 = require('@angular/router');
-var ng2_charts_1 = require('ng2-charts/ng2-charts');
-var DashboardComponent = (function () {
-    function DashboardComponent(router) {
-        this.router = router;
-        this.brandPrimary = '#20a8d8';
-        this.brandSuccess = '#4dbd74';
-        this.brandInfo = '#63c2de';
-        this.brandWarning = '#f8cb00';
-        this.brandDanger = '#f86c6b';
-        // dropdown buttons
-        this.status = { isopen: false };
-        // lineChart1
-        this.lineChart1Data = [
-            {
-                data: [65, 59, 84, 84, 51, 55, 40],
-                label: 'Series A'
-            }
-        ];
-        this.lineChart1Labels = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-        this.lineChart1Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        gridLines: {
-                            color: 'transparent',
-                            zeroLineColor: 'transparent'
-                        },
-                        ticks: {
-                            fontSize: 2,
-                            fontColor: 'transparent',
-                        }
-                    }],
-                yAxes: [{
-                        display: false,
-                        ticks: {
-                            display: false,
-                            min: 40 - 5,
-                            max: 84 + 5,
-                        }
-                    }],
-            },
-            elements: {
-                line: {
-                    borderWidth: 1
-                },
-                point: {
-                    radius: 4,
-                    hitRadius: 10,
-                    hoverRadius: 4,
-                },
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.lineChart1Colours = [
-            {
-                backgroundColor: this.brandPrimary,
-                borderColor: 'rgba(255,255,255,.55)'
-            }
-        ];
-        this.lineChart1Legend = false;
-        this.lineChart1Type = 'line';
-        // lineChart2
-        this.lineChart2Data = [
-            {
-                data: [1, 18, 9, 17, 34, 22, 11],
-                label: 'Series A'
-            }
-        ];
-        this.lineChart2Labels = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-        this.lineChart2Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        gridLines: {
-                            color: 'transparent',
-                            zeroLineColor: 'transparent'
-                        },
-                        ticks: {
-                            fontSize: 2,
-                            fontColor: 'transparent',
-                        }
-                    }],
-                yAxes: [{
-                        display: false,
-                        ticks: {
-                            display: false,
-                            min: 1 - 5,
-                            max: 34 + 5,
-                        }
-                    }],
-            },
-            elements: {
-                line: {
-                    tension: 0.00001,
-                    borderWidth: 1
-                },
-                point: {
-                    radius: 4,
-                    hitRadius: 10,
-                    hoverRadius: 4,
-                },
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.lineChart2Colours = [
-            {
-                backgroundColor: this.brandInfo,
-                borderColor: 'rgba(255,255,255,.55)'
-            }
-        ];
-        this.lineChart2Legend = false;
-        this.lineChart2Type = 'line';
-        // lineChart3
-        this.lineChart3Data = [
-            {
-                data: [78, 81, 80, 45, 34, 12, 40],
-                label: 'Series A'
-            }
-        ];
-        this.lineChart3Labels = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-        this.lineChart3Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        display: false
-                    }],
-                yAxes: [{
-                        display: false
-                    }]
-            },
-            elements: {
-                line: {
-                    borderWidth: 2
-                },
-                point: {
-                    radius: 0,
-                    hitRadius: 10,
-                    hoverRadius: 4,
-                },
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.lineChart3Colours = [
-            {
-                backgroundColor: 'rgba(255,255,255,.2)',
-                borderColor: 'rgba(255,255,255,.55)',
-            }
-        ];
-        this.lineChart3Legend = false;
-        this.lineChart3Type = 'line';
-        // barChart1
-        this.barChart1Data = [
-            {
-                data: [78, 81, 80, 45, 34, 12, 40, 78, 81, 80, 45, 34, 12, 40, 12, 40],
-                label: 'Series A'
-            }
-        ];
-        this.barChart1Labels = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'];
-        this.barChart1Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        display: false,
-                        barPercentage: 0.6,
-                    }],
-                yAxes: [{
-                        display: false
-                    }]
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.barChart1Colours = [
-            {
-                backgroundColor: 'rgba(255,255,255,.3)',
-                borderWidth: 0
-            }
-        ];
-        this.barChart1Legend = false;
-        this.barChart1Type = 'bar';
-        this.mainChartElements = 27;
-        this.mainChartData1 = [];
-        this.mainChartData2 = [];
-        this.mainChartData3 = [];
-        this.mainChartData = [
-            {
-                data: this.mainChartData1,
-                label: 'Current'
-            },
-            {
-                data: this.mainChartData2,
-                label: 'Previous'
-            },
-            {
-                data: this.mainChartData3,
-                label: 'BEP'
-            }
-        ];
-        this.mainChartLabels = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 'Monday', 'Thursday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
-        this.mainChartOptions = {
-            responsive: true,
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        gridLines: {
-                            drawOnChartArea: false,
-                        },
-                        ticks: {
-                            callback: function (value) {
-                                return value.charAt(0);
-                            }
-                        }
-                    }],
-                yAxes: [{
-                        ticks: {
-                            beginAtZero: true,
-                            maxTicksLimit: 5,
-                            stepSize: Math.ceil(250 / 5),
-                            max: 250
-                        }
-                    }]
-            },
-            elements: {
-                line: {
-                    borderWidth: 2
-                },
-                point: {
-                    radius: 0,
-                    hitRadius: 10,
-                    hoverRadius: 4,
-                    hoverBorderWidth: 3,
-                }
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.mainChartColours = [
-            {
-                backgroundColor: this.convertHex(this.brandInfo, 10),
-                borderColor: this.brandInfo,
-                pointHoverBackgroundColor: '#fff'
-            },
-            {
-                backgroundColor: 'transparent',
-                borderColor: this.brandSuccess,
-                pointHoverBackgroundColor: '#fff'
-            },
-            {
-                backgroundColor: 'transparent',
-                borderColor: this.brandDanger,
-                pointHoverBackgroundColor: '#fff',
-                borderWidth: 1,
-                borderDash: [8, 5]
-            }
-        ];
-        this.mainChartLegend = false;
-        this.mainChartType = 'line';
-        // social box charts
-        this.socialChartData1 = [
-            {
-                data: [65, 59, 84, 84, 51, 55, 40],
-                label: 'Facebook'
-            }
-        ];
-        this.socialChartData2 = [
-            {
-                data: [1, 13, 9, 17, 34, 41, 38],
-                label: 'Twitter'
-            }
-        ];
-        this.socialChartData3 = [
-            {
-                data: [78, 81, 80, 45, 34, 12, 40],
-                label: 'LinkedIn'
-            }
-        ];
-        this.socialChartData4 = [
-            {
-                data: [35, 23, 56, 22, 97, 23, 64],
-                label: 'Google+'
-            }
-        ];
-        this.socialChartLabels = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-        this.socialChartOptions = {
-            responsive: true,
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        display: false,
-                    }],
-                yAxes: [{
-                        display: false,
-                    }]
-            },
-            elements: {
-                line: {
-                    borderWidth: 2
-                },
-                point: {
-                    radius: 0,
-                    hitRadius: 10,
-                    hoverRadius: 4,
-                    hoverBorderWidth: 3,
-                }
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.socialChartColours = [
-            {
-                backgroundColor: 'rgba(255,255,255,.1)',
-                borderColor: 'rgba(255,255,255,.55)',
-                pointHoverBackgroundColor: '#fff'
-            }
-        ];
-        this.socialChartLegend = false;
-        this.socialChartType = 'line';
-        // sparkline charts
-        this.sparklineChartData1 = [
-            {
-                data: [35, 23, 56, 22, 97, 23, 64],
-                label: 'Clients'
-            }
-        ];
-        this.sparklineChartData2 = [
-            {
-                data: [65, 59, 84, 84, 51, 55, 40],
-                label: 'Clients'
-            }
-        ];
-        this.sparklineChartLabels = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-        this.sparklineChartOptions = {
-            responsive: true,
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        display: false,
-                    }],
-                yAxes: [{
-                        display: false,
-                    }]
-            },
-            elements: {
-                line: {
-                    borderWidth: 2
-                },
-                point: {
-                    radius: 0,
-                    hitRadius: 10,
-                    hoverRadius: 4,
-                    hoverBorderWidth: 3,
-                }
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.sparklineChartDefault = [
-            {
-                backgroundColor: 'transparent',
-                borderColor: '#d1d4d7',
-            }
-        ];
-        this.sparklineChartPrimary = [
-            {
-                backgroundColor: 'transparent',
-                borderColor: this.brandPrimary,
-            }
-        ];
-        this.sparklineChartInfo = [
-            {
-                backgroundColor: 'transparent',
-                borderColor: this.brandInfo,
-            }
-        ];
-        this.sparklineChartDanger = [
-            {
-                backgroundColor: 'transparent',
-                borderColor: this.brandDanger,
-            }
-        ];
-        this.sparklineChartWarning = [
-            {
-                backgroundColor: 'transparent',
-                borderColor: this.brandWarning,
-            }
-        ];
-        this.sparklineChartSuccess = [
-            {
-                backgroundColor: 'transparent',
-                borderColor: this.brandSuccess,
-            }
-        ];
-        this.sparklineChartLegend = false;
-        this.sparklineChartType = 'line';
-    }
-    DashboardComponent.prototype.toggleDropdown = function ($event) {
-        $event.preventDefault();
-        $event.stopPropagation();
-        this.status.isopen = !this.status.isopen;
-    };
-    //convert Hex to RGBA
-    DashboardComponent.prototype.convertHex = function (hex, opacity) {
-        hex = hex.replace('#', '');
-        var r = parseInt(hex.substring(0, 2), 16);
-        var g = parseInt(hex.substring(2, 4), 16);
-        var b = parseInt(hex.substring(4, 6), 16);
-        var rgba = 'rgba(' + r + ',' + g + ',' + b + ',' + opacity / 100 + ')';
-        return rgba;
-    };
-    // events
-    DashboardComponent.prototype.chartClicked = function (e) {
-        console.log(e);
-    };
-    DashboardComponent.prototype.chartHovered = function (e) {
-        console.log(e);
-    };
-    // mainChart
-    DashboardComponent.prototype.random = function (min, max) {
-        return Math.floor(Math.random() * (max - min + 1) + min);
-    };
-    DashboardComponent.prototype.ngOnInit = function () {
-        //generate random values for mainChart
-        for (var i = 0; i <= this.mainChartElements; i++) {
-            this.mainChartData1.push(this.random(50, 200));
-            this.mainChartData2.push(this.random(80, 100));
-            this.mainChartData3.push(65);
-        }
-    };
-    DashboardComponent = __decorate([
-        core_1.Component({
-            templateUrl: './app/dashboard/dashboard.component.html',
-            directives: [ng2_charts_1.CHART_DIRECTIVES]
-        }), 
-        __metadata('design:paramtypes', [router_1.Router])
-    ], DashboardComponent);
-    return DashboardComponent;
-}());
-exports.DashboardComponent = DashboardComponent;
-//# sourceMappingURL=dashboard.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/dashboard/dashboard.component.js.map b/demo/Angular2_Demo/app/dashboard/dashboard.component.js.map
deleted file mode 100644
index 08186cb701f80c7a328288740fa3944aa31cec31..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/dashboard/dashboard.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"dashboard.component.js","sourceRoot":"","sources":["dashboard.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAqC,eAAe,CAAC,CAAA;AACrD,uBAAqC,iBAAiB,CAAC,CAAA;AACvD,2BAAqC,uBAAuB,CAAC,CAAA;AAM7D;IAEI,4BAAqB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAE5B,iBAAY,GAAW,SAAS,CAAC;QACjC,iBAAY,GAAW,SAAS,CAAC;QACjC,cAAS,GAAc,SAAS,CAAC;QACjC,iBAAY,GAAW,SAAS,CAAC;QACjC,gBAAW,GAAY,SAAS,CAAC;QAExC,mBAAmB;QACZ,WAAM,GAAwB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QA2BvD,aAAa;QACN,mBAAc,GAAc;YAC/B;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,qBAAgB,GAAc,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/F,sBAAiB,GAAO;YAC3B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,SAAS,EAAE;4BACP,KAAK,EAAE,aAAa;4BACpB,aAAa,EAAE,aAAa;yBAC/B;wBACD,KAAK,EAAE;4BACH,QAAQ,EAAE,CAAC;4BACX,SAAS,EAAE,aAAa;yBAC3B;qBAEJ,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACH,OAAO,EAAE,KAAK;4BACd,GAAG,EAAE,EAAE,GAAG,CAAC;4BACX,GAAG,EAAE,EAAE,GAAG,CAAC;yBACd;qBACJ,CAAC;aACL;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,WAAW,EAAE,CAAC;iBACjB;gBACD,KAAK,EAAE;oBACH,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,CAAC;iBACjB;aACJ;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,sBAAiB,GAAc;YAClC;gBACI,eAAe,EAAE,IAAI,CAAC,YAAY;gBAClC,WAAW,EAAE,uBAAuB;aACvC;SACJ,CAAC;QACK,qBAAgB,GAAW,KAAK,CAAC;QACjC,mBAAc,GAAU,MAAM,CAAC;QAEtC,aAAa;QACN,mBAAc,GAAc;YAC/B;gBACI,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAChC,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,qBAAgB,GAAc,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/F,sBAAiB,GAAO;YAC3B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,SAAS,EAAE;4BACP,KAAK,EAAE,aAAa;4BACpB,aAAa,EAAE,aAAa;yBAC/B;wBACD,KAAK,EAAE;4BACH,QAAQ,EAAE,CAAC;4BACX,SAAS,EAAE,aAAa;yBAC3B;qBAEJ,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACH,OAAO,EAAE,KAAK;4BACd,GAAG,EAAE,CAAC,GAAG,CAAC;4BACV,GAAG,EAAE,EAAE,GAAG,CAAC;yBACd;qBACJ,CAAC;aACL;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,CAAC;iBACjB;gBACD,KAAK,EAAE;oBACH,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,CAAC;iBACjB;aACJ;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,sBAAiB,GAAc;YAClC;gBACI,eAAe,EAAE,IAAI,CAAC,SAAS;gBAC/B,WAAW,EAAE,uBAAuB;aACvC;SACJ,CAAC;QACK,qBAAgB,GAAW,KAAK,CAAC;QACjC,mBAAc,GAAU,MAAM,CAAC;QAGtC,aAAa;QACN,mBAAc,GAAc;YAC/B;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,qBAAgB,GAAc,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/F,sBAAiB,GAAO;YAC3B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;qBACjB,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;qBACjB,CAAC;aACL;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,WAAW,EAAE,CAAC;iBACjB;gBACD,KAAK,EAAE;oBACH,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,CAAC;iBACjB;aACJ;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,sBAAiB,GAAc;YAClC;gBACI,eAAe,EAAE,sBAAsB;gBACvC,WAAW,EAAE,uBAAuB;aACvC;SACJ,CAAC;QACK,qBAAgB,GAAW,KAAK,CAAC;QACjC,mBAAc,GAAU,MAAM,CAAC;QAGtC,YAAY;QACL,kBAAa,GAAc;YAC9B;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBACtE,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,oBAAe,GAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrH,qBAAgB,GAAO;YAC1B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;wBACd,aAAa,EAAE,GAAG;qBACrB,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;qBACjB,CAAC;aACL;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,qBAAgB,GAAc;YACjC;gBACI,eAAe,EAAE,sBAAsB;gBACvC,WAAW,EAAE,CAAC;aACjB;SACJ,CAAC;QACK,oBAAe,GAAW,KAAK,CAAC;QAChC,kBAAa,GAAU,KAAK,CAAC;QAQ7B,sBAAiB,GAAU,EAAE,CAAC;QAC9B,mBAAc,GAAiB,EAAE,CAAC;QAClC,mBAAc,GAAiB,EAAE,CAAC;QAClC,mBAAc,GAAiB,EAAE,CAAC;QAElC,kBAAa,GAAc;YAC9B;gBACI,IAAI,EAAE,IAAI,CAAC,cAAc;gBACzB,KAAK,EAAE,SAAS;aACnB;YACD;gBACI,IAAI,EAAE,IAAI,CAAC,cAAc;gBACzB,KAAK,EAAE,UAAU;aACpB;YACD;gBACI,IAAI,EAAE,IAAI,CAAC,cAAc;gBACzB,KAAK,EAAE,KAAK;aACf;SACJ,CAAC;QACK,oBAAe,GAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvV,qBAAgB,GAAO;YAC1B,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,SAAS,EAAE;4BACP,eAAe,EAAE,KAAK;yBACzB;wBACD,KAAK,EAAE;4BACH,QAAQ,EAAE,UAAS,KAAS;gCACxB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC3B,CAAC;yBACJ;qBACJ,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,KAAK,EAAE;4BACH,WAAW,EAAE,IAAI;4BACjB,aAAa,EAAE,CAAC;4BAChB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;4BAC5B,GAAG,EAAE,GAAG;yBACX;qBACJ,CAAC;aACL;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,WAAW,EAAE,CAAC;iBACjB;gBACD,KAAK,EAAE;oBACH,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,CAAC;oBACd,gBAAgB,EAAE,CAAC;iBACtB;aACJ;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,qBAAgB,GAAc;YACjC;gBACI,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAC,EAAE,CAAC;gBACnD,WAAW,EAAE,IAAI,CAAC,SAAS;gBAC3B,yBAAyB,EAAE,MAAM;aACpC;YACD;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,yBAAyB,EAAE,MAAM;aACpC;YACD;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,yBAAyB,EAAE,MAAM;gBACjC,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aACrB;SACJ,CAAC;QACK,oBAAe,GAAW,KAAK,CAAC;QAChC,kBAAa,GAAU,MAAM,CAAC;QAErC,oBAAoB;QAEb,qBAAgB,GAAc;YACjC;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,qBAAgB,GAAc;YACjC;gBACI,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAChC,KAAK,EAAE,SAAS;aACnB;SACJ,CAAC;QACK,qBAAgB,GAAc;YACjC;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,qBAAgB,GAAc;YACjC;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,KAAK,EAAE,SAAS;aACnB;SACJ,CAAC;QAEK,sBAAiB,GAAc,CAAC,SAAS,EAAC,UAAU,EAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,CAAC,CAAC;QAC1F,uBAAkB,GAAO;YAC5B,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAC,KAAK;qBAChB,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAC,KAAK;qBAChB,CAAC;aACL;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,WAAW,EAAE,CAAC;iBACjB;gBACD,KAAK,EAAE;oBACH,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,CAAC;oBACd,gBAAgB,EAAE,CAAC;iBACtB;aACJ;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,uBAAkB,GAAc;YACnC;gBACI,eAAe,EAAE,sBAAsB;gBACvC,WAAW,EAAE,uBAAuB;gBACpC,yBAAyB,EAAE,MAAM;aACpC;SACJ,CAAC;QACK,sBAAiB,GAAW,KAAK,CAAC;QAClC,oBAAe,GAAU,MAAM,CAAC;QAEvC,mBAAmB;QAEZ,wBAAmB,GAAc;YACpC;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,KAAK,EAAE,SAAS;aACnB;SACJ,CAAC;QACK,wBAAmB,GAAc;YACpC;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,KAAK,EAAE,SAAS;aACnB;SACJ,CAAC;QAEK,yBAAoB,GAAc,CAAC,SAAS,EAAC,UAAU,EAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,CAAC,CAAC;QAC7F,0BAAqB,GAAO;YAC/B,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAC,KAAK;qBAChB,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAC,KAAK;qBAChB,CAAC;aACL;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,WAAW,EAAE,CAAC;iBACjB;gBACD,KAAK,EAAE;oBACH,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,CAAC;oBACd,gBAAgB,EAAE,CAAC;iBACtB;aACJ;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,0BAAqB,GAAc;YACtC;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,SAAS;aACzB;SACJ,CAAC;QACK,0BAAqB,GAAc;YACtC;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,IAAI,CAAC,YAAY;aACjC;SACJ,CAAC;QACK,uBAAkB,GAAc;YACnC;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,IAAI,CAAC,SAAS;aAC9B;SACJ,CAAC;QACK,yBAAoB,GAAc;YACrC;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;aAChC;SACJ,CAAC;QACK,0BAAqB,GAAc;YACtC;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,IAAI,CAAC,YAAY;aACjC;SACJ,CAAC;QACK,0BAAqB,GAAc;YACtC;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,IAAI,CAAC,YAAY;aACjC;SACJ,CAAC;QAGK,yBAAoB,GAAW,KAAK,CAAC;QACrC,uBAAkB,GAAU,MAAM,CAAC;IAncF,CAAC;IAUlC,2CAAc,GAArB,UAAsB,MAAiB;QACnC,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,CAAC,eAAe,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,qBAAqB;IACd,uCAAU,GAAjB,UAAkB,GAAU,EAAC,OAAc;QACvC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEzC,IAAI,IAAI,GAAG,OAAO,GAAC,CAAC,GAAC,GAAG,GAAC,CAAC,GAAC,GAAG,GAAC,CAAC,GAAC,GAAG,GAAC,OAAO,GAAC,GAAG,GAAC,GAAG,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,SAAS;IACF,yCAAY,GAAnB,UAAoB,CAAK;QACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAEM,yCAAY,GAAnB,UAAoB,CAAK;QACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IA0LD,YAAY;IAEL,mCAAM,GAAb,UAAc,GAAU,EAAE,GAAU;QAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,CAAC,GAAG,GAAC,GAAG,GAAC,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAsOD,qCAAQ,GAAR;QACI,sCAAsC;QACtC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAndL;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,0CAA0C;YACvD,UAAU,EAAE,CAAE,6BAAgB,CAAE;SACnC,CAAC;;0BAAA;IAidF,yBAAC;AAAD,CAAC,AAhdD,IAgdC;AAhdY,0BAAkB,qBAgd9B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/dashboard/dashboard.component.ts b/demo/Angular2_Demo/app/dashboard/dashboard.component.ts
deleted file mode 100644
index d0bdd4749e9f7d30d64fa96aebcf59d6236a8656..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/dashboard/dashboard.component.ts
+++ /dev/null
@@ -1,473 +0,0 @@
-import { Component, OnInit }    from '@angular/core';
-import { Router }               from '@angular/router';
-import { CHART_DIRECTIVES }     from 'ng2-charts/ng2-charts';
-
-@Component({
-    templateUrl: './app/dashboard/dashboard.component.html',
-    directives: [ CHART_DIRECTIVES ]
-})
-export class DashboardComponent implements OnInit {
-
-    constructor( private router: Router ) { }
-
-    public brandPrimary:string =  '#20a8d8';
-    public brandSuccess:string =  '#4dbd74';
-    public brandInfo:string =     '#63c2de';
-    public brandWarning:string =  '#f8cb00';
-    public brandDanger:string =   '#f86c6b';
-
-    // dropdown buttons
-    public status: { isopen: boolean } = { isopen: false };
-    public toggleDropdown($event:MouseEvent):void {
-        $event.preventDefault();
-        $event.stopPropagation();
-        this.status.isopen = !this.status.isopen;
-    }
-
-    //convert Hex to RGBA
-    public convertHex(hex:string,opacity:number){
-        hex = hex.replace('#','');
-        let r = parseInt(hex.substring(0,2), 16);
-        let g = parseInt(hex.substring(2,4), 16);
-        let b = parseInt(hex.substring(4,6), 16);
-
-        let rgba = 'rgba('+r+','+g+','+b+','+opacity/100+')';
-        return rgba;
-    }
-
-    // events
-    public chartClicked(e:any):void {
-        console.log(e);
-    }
-
-    public chartHovered(e:any):void {
-        console.log(e);
-    }
-
-    // lineChart1
-    public lineChart1Data:Array<any> = [
-        {
-            data: [65, 59, 84, 84, 51, 55, 40],
-            label: 'Series A'
-        }
-    ];
-    public lineChart1Labels:Array<any> = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-    public lineChart1Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                gridLines: {
-                    color: 'transparent',
-                    zeroLineColor: 'transparent'
-                },
-                ticks: {
-                    fontSize: 2,
-                    fontColor: 'transparent',
-                }
-
-            }],
-            yAxes: [{
-                display: false,
-                ticks: {
-                    display: false,
-                    min: 40 - 5,
-                    max: 84 + 5,
-                }
-            }],
-        },
-        elements: {
-            line: {
-                borderWidth: 1
-            },
-            point: {
-                radius: 4,
-                hitRadius: 10,
-                hoverRadius: 4,
-            },
-        },
-        legend: {
-            display: false
-        }
-    };
-    public lineChart1Colours:Array<any> = [
-        { // grey
-            backgroundColor: this.brandPrimary,
-            borderColor: 'rgba(255,255,255,.55)'
-        }
-    ];
-    public lineChart1Legend:boolean = false;
-    public lineChart1Type:string = 'line';
-
-    // lineChart2
-    public lineChart2Data:Array<any> = [
-        {
-            data: [1, 18, 9, 17, 34, 22, 11],
-            label: 'Series A'
-        }
-    ];
-    public lineChart2Labels:Array<any> = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-    public lineChart2Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                gridLines: {
-                    color: 'transparent',
-                    zeroLineColor: 'transparent'
-                },
-                ticks: {
-                    fontSize: 2,
-                    fontColor: 'transparent',
-                }
-
-            }],
-            yAxes: [{
-                display: false,
-                ticks: {
-                    display: false,
-                    min: 1 - 5,
-                    max: 34 + 5,
-                }
-            }],
-        },
-        elements: {
-            line: {
-                tension: 0.00001,
-                borderWidth: 1
-            },
-            point: {
-                radius: 4,
-                hitRadius: 10,
-                hoverRadius: 4,
-            },
-        },
-        legend: {
-            display: false
-        }
-    };
-    public lineChart2Colours:Array<any> = [
-        { // grey
-            backgroundColor: this.brandInfo,
-            borderColor: 'rgba(255,255,255,.55)'
-        }
-    ];
-    public lineChart2Legend:boolean = false;
-    public lineChart2Type:string = 'line';
-
-
-    // lineChart3
-    public lineChart3Data:Array<any> = [
-        {
-            data: [78, 81, 80, 45, 34, 12, 40],
-            label: 'Series A'
-        }
-    ];
-    public lineChart3Labels:Array<any> = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-    public lineChart3Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                display: false
-            }],
-            yAxes: [{
-                display: false
-            }]
-        },
-        elements: {
-            line: {
-                borderWidth: 2
-            },
-            point: {
-                radius: 0,
-                hitRadius: 10,
-                hoverRadius: 4,
-            },
-        },
-        legend: {
-            display: false
-        }
-    };
-    public lineChart3Colours:Array<any> = [
-        {
-            backgroundColor: 'rgba(255,255,255,.2)',
-            borderColor: 'rgba(255,255,255,.55)',
-        }
-    ];
-    public lineChart3Legend:boolean = false;
-    public lineChart3Type:string = 'line';
-
-
-    // barChart1
-    public barChart1Data:Array<any> = [
-        {
-            data: [78, 81, 80, 45, 34, 12, 40, 78, 81, 80, 45, 34, 12, 40, 12, 40],
-            label: 'Series A'
-        }
-    ];
-    public barChart1Labels:Array<any> = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'];
-    public barChart1Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                display: false,
-                barPercentage: 0.6,
-            }],
-            yAxes: [{
-                display: false
-            }]
-        },
-        legend: {
-            display: false
-        }
-    };
-    public barChart1Colours:Array<any> = [
-        {
-            backgroundColor: 'rgba(255,255,255,.3)',
-            borderWidth: 0
-        }
-    ];
-    public barChart1Legend:boolean = false;
-    public barChart1Type:string = 'bar';
-
-    // mainChart
-
-    public random(min:number, max:number) {
-        return Math.floor(Math.random()*(max-min+1)+min);
-    }
-
-    public mainChartElements:number = 27;
-    public mainChartData1:Array<number> = [];
-    public mainChartData2:Array<number> = [];
-    public mainChartData3:Array<number> = [];
-
-    public mainChartData:Array<any> = [
-        {
-            data: this.mainChartData1,
-            label: 'Current'
-        },
-        {
-            data: this.mainChartData2,
-            label: 'Previous'
-        },
-        {
-            data: this.mainChartData3,
-            label: 'BEP'
-        }
-    ];
-    public mainChartLabels:Array<any> = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 'Monday', 'Thursday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
-    public mainChartOptions:any = {
-        responsive: true,
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                gridLines: {
-                    drawOnChartArea: false,
-                },
-                ticks: {
-                    callback: function(value:any) {
-                        return value.charAt(0);
-                    }
-                }
-            }],
-            yAxes: [{
-                ticks: {
-                    beginAtZero: true,
-                    maxTicksLimit: 5,
-                    stepSize: Math.ceil(250 / 5),
-                    max: 250
-                }
-            }]
-        },
-        elements: {
-            line: {
-                borderWidth: 2
-            },
-            point: {
-                radius: 0,
-                hitRadius: 10,
-                hoverRadius: 4,
-                hoverBorderWidth: 3,
-            }
-        },
-        legend: {
-            display: false
-        }
-    };
-    public mainChartColours:Array<any> = [
-        { //brandInfo
-            backgroundColor: this.convertHex(this.brandInfo,10),
-            borderColor: this.brandInfo,
-            pointHoverBackgroundColor: '#fff'
-        },
-        { //brandSuccess
-            backgroundColor: 'transparent',
-            borderColor: this.brandSuccess,
-            pointHoverBackgroundColor: '#fff'
-        },
-        { //brandDanger
-            backgroundColor: 'transparent',
-            borderColor: this.brandDanger,
-            pointHoverBackgroundColor: '#fff',
-            borderWidth: 1,
-            borderDash: [8, 5]
-        }
-    ];
-    public mainChartLegend:boolean = false;
-    public mainChartType:string = 'line';
-
-    // social box charts
-
-    public socialChartData1:Array<any> = [
-        {
-            data: [65, 59, 84, 84, 51, 55, 40],
-            label: 'Facebook'
-        }
-    ];
-    public socialChartData2:Array<any> = [
-        {
-            data: [1, 13, 9, 17, 34, 41, 38],
-            label: 'Twitter'
-        }
-    ];
-    public socialChartData3:Array<any> = [
-        {
-            data: [78, 81, 80, 45, 34, 12, 40],
-            label: 'LinkedIn'
-        }
-    ];
-    public socialChartData4:Array<any> = [
-        {
-            data: [35, 23, 56, 22, 97, 23, 64],
-            label: 'Google+'
-        }
-    ];
-
-    public socialChartLabels:Array<any> = ['January','February','March','April','May','June','July'];
-    public socialChartOptions:any = {
-        responsive: true,
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                display:false,
-            }],
-            yAxes: [{
-                display:false,
-            }]
-        },
-        elements: {
-            line: {
-                borderWidth: 2
-            },
-            point: {
-                radius: 0,
-                hitRadius: 10,
-                hoverRadius: 4,
-                hoverBorderWidth: 3,
-            }
-        },
-        legend: {
-            display: false
-        }
-    };
-    public socialChartColours:Array<any> = [
-        {
-            backgroundColor: 'rgba(255,255,255,.1)',
-            borderColor: 'rgba(255,255,255,.55)',
-            pointHoverBackgroundColor: '#fff'
-        }
-    ];
-    public socialChartLegend:boolean = false;
-    public socialChartType:string = 'line';
-
-    // sparkline charts
-
-    public sparklineChartData1:Array<any> = [
-        {
-            data: [35, 23, 56, 22, 97, 23, 64],
-            label: 'Clients'
-        }
-    ];
-    public sparklineChartData2:Array<any> = [
-        {
-            data: [65, 59, 84, 84, 51, 55, 40],
-            label: 'Clients'
-        }
-    ];
-
-    public sparklineChartLabels:Array<any> = ['January','February','March','April','May','June','July'];
-    public sparklineChartOptions:any = {
-        responsive: true,
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                display:false,
-            }],
-            yAxes: [{
-                display:false,
-            }]
-        },
-        elements: {
-            line: {
-                borderWidth: 2
-            },
-            point: {
-                radius: 0,
-                hitRadius: 10,
-                hoverRadius: 4,
-                hoverBorderWidth: 3,
-            }
-        },
-        legend: {
-            display: false
-        }
-    };
-    public sparklineChartDefault:Array<any> = [
-        {
-            backgroundColor: 'transparent',
-            borderColor: '#d1d4d7',
-        }
-    ];
-    public sparklineChartPrimary:Array<any> = [
-        {
-            backgroundColor: 'transparent',
-            borderColor: this.brandPrimary,
-        }
-    ];
-    public sparklineChartInfo:Array<any> = [
-        {
-            backgroundColor: 'transparent',
-            borderColor: this.brandInfo,
-        }
-    ];
-    public sparklineChartDanger:Array<any> = [
-        {
-            backgroundColor: 'transparent',
-            borderColor: this.brandDanger,
-        }
-    ];
-    public sparklineChartWarning:Array<any> = [
-        {
-            backgroundColor: 'transparent',
-            borderColor: this.brandWarning,
-        }
-    ];
-    public sparklineChartSuccess:Array<any> = [
-        {
-            backgroundColor: 'transparent',
-            borderColor: this.brandSuccess,
-        }
-    ];
-
-
-    public sparklineChartLegend:boolean = false;
-    public sparklineChartType:string = 'line';
-
-
-    ngOnInit(): void {
-        //generate random values for mainChart
-        for (var i = 0; i <= this.mainChartElements; i++) {
-            this.mainChartData1.push(this.random(50,200));
-            this.mainChartData2.push(this.random(80,100));
-            this.mainChartData3.push(65);
-        }
-    }
-}
diff --git a/demo/Angular2_Demo/app/icons/font-awesome.component.html b/demo/Angular2_Demo/app/icons/font-awesome.component.html
deleted file mode 100644
index 64991383e9e801b56c2c2a967e522fb5c3a9a61a..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/icons/font-awesome.component.html
+++ /dev/null
@@ -1,3547 +0,0 @@
-<div class="animated fadeIn">
-    <div class="card" id="new">
-        <div class="card-header">20 New Icons in 4.5</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bluetooth fa-lg m-t-2"></i>
-                    <br>bluetooth
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bluetooth-b fa-lg m-t-2"></i>
-                    <br>bluetooth-b
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-codiepie fa-lg m-t-2"></i>
-                    <br>codiepie
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-credit-card-alt fa-lg m-t-2"></i>
-                    <br>credit-card-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-edge fa-lg m-t-2"></i>
-                    <br>edge
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-fort-awesome fa-lg m-t-2"></i>
-                    <br>fort-awesome
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hashtag fa-lg m-t-2"></i>
-                    <br>hashtag
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mixcloud fa-lg m-t-2"></i>
-                    <br>mixcloud
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-modx fa-lg m-t-2"></i>
-                    <br>modx
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pause-circle fa-lg m-t-2"></i>
-                    <br>pause-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pause-circle-o fa-lg m-t-2"></i>
-                    <br>pause-circle-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-percent fa-lg m-t-2"></i>
-                    <br>percent
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-product-hunt fa-lg m-t-2"></i>
-                    <br>product-hunt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-reddit-alien fa-lg m-t-2"></i>
-                    <br>reddit-alien
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-scribd fa-lg m-t-2"></i>
-                    <br>scribd
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-shopping-bag fa-lg m-t-2"></i>
-                    <br>shopping-bag
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-shopping-basket fa-lg m-t-2"></i>
-                    <br>shopping-basket
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-stop-circle fa-lg m-t-2"></i>
-                    <br>stop-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-stop-circle-o fa-lg m-t-2"></i>
-                    <br>stop-circle-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-usb fa-lg m-t-2"></i>
-                    <br>usb
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="web-application">
-        <div class="card-header">Web Application Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-adjust fa-lg m-t-2"></i>
-                    <br>adjust
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-anchor fa-lg m-t-2"></i>
-                    <br>anchor
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-archive fa-lg m-t-2"></i>
-                    <br>archive
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-area-chart fa-lg m-t-2"></i>
-                    <br>area-chart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrows fa-lg m-t-2"></i>
-                    <br>arrows
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrows-h fa-lg m-t-2"></i>
-                    <br>arrows-h
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrows-v fa-lg m-t-2"></i>
-                    <br>arrows-v
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-asterisk fa-lg m-t-2"></i>
-                    <br>asterisk
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-at fa-lg m-t-2"></i>
-                    <br>at
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-automobile fa-lg m-t-2"></i>
-                    <br>automobile
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-balance-scale fa-lg m-t-2"></i>
-                    <br>balance-scale
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ban fa-lg m-t-2"></i>
-                    <br>ban
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bank fa-lg m-t-2"></i>
-                    <br>bank
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bar-chart fa-lg m-t-2"></i>
-                    <br>bar-chart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bar-chart-o fa-lg m-t-2"></i>
-                    <br>bar-chart-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-barcode fa-lg m-t-2"></i>
-                    <br>barcode
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bars fa-lg m-t-2"></i>
-                    <br>bars
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-battery-0 fa-lg m-t-2"></i>
-                    <br>battery-0
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-battery-1 fa-lg m-t-2"></i>
-                    <br>battery-1
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-battery-2 fa-lg m-t-2"></i>
-                    <br>battery-2
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-battery-3 fa-lg m-t-2"></i>
-                    <br>battery-3
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-battery-4 fa-lg m-t-2"></i>
-                    <br>battery-4
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-battery-empty fa-lg m-t-2"></i>
-                    <br>battery-empty
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-battery-full fa-lg m-t-2"></i>
-                    <br>battery-full
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-battery-half fa-lg m-t-2"></i>
-                    <br>battery-half
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-battery-quarter fa-lg m-t-2"></i>
-                    <br>battery-quarter
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-battery-three-quarters fa-lg m-t-2"></i>
-                    <br>battery-three-quarters
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bed fa-lg m-t-2"></i>
-                    <br>bed
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-beer fa-lg m-t-2"></i>
-                    <br>beer
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bell fa-lg m-t-2"></i>
-                    <br>bell
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bell-o fa-lg m-t-2"></i>
-                    <br>bell-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bell-slash fa-lg m-t-2"></i>
-                    <br>bell-slash
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bell-slash-o fa-lg m-t-2"></i>
-                    <br>bell-slash-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bicycle fa-lg m-t-2"></i>
-                    <br>bicycle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-binoculars fa-lg m-t-2"></i>
-                    <br>binoculars
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-birthday-cake fa-lg m-t-2"></i>
-                    <br>birthday-cake
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bluetooth fa-lg m-t-2"></i>
-                    <br>bluetooth
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bluetooth-b fa-lg m-t-2"></i>
-                    <br>bluetooth-b
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bolt fa-lg m-t-2"></i>
-                    <br>bolt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bomb fa-lg m-t-2"></i>
-                    <br>bomb
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-book fa-lg m-t-2"></i>
-                    <br>book
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bookmark fa-lg m-t-2"></i>
-                    <br>bookmark
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bookmark-o fa-lg m-t-2"></i>
-                    <br>bookmark-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-briefcase fa-lg m-t-2"></i>
-                    <br>briefcase
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bug fa-lg m-t-2"></i>
-                    <br>bug
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-building fa-lg m-t-2"></i>
-                    <br>building
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-building-o fa-lg m-t-2"></i>
-                    <br>building-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bullhorn fa-lg m-t-2"></i>
-                    <br>bullhorn
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bullseye fa-lg m-t-2"></i>
-                    <br>bullseye
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bus fa-lg m-t-2"></i>
-                    <br>bus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cab fa-lg m-t-2"></i>
-                    <br>cab
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-calculator fa-lg m-t-2"></i>
-                    <br>calculator
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-calendar fa-lg m-t-2"></i>
-                    <br>calendar
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-calendar-check-o fa-lg m-t-2"></i>
-                    <br>calendar-check-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-calendar-minus-o fa-lg m-t-2"></i>
-                    <br>calendar-minus-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-calendar-o fa-lg m-t-2"></i>
-                    <br>calendar-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-calendar-plus-o fa-lg m-t-2"></i>
-                    <br>calendar-plus-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-calendar-times-o fa-lg m-t-2"></i>
-                    <br>calendar-times-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-camera fa-lg m-t-2"></i>
-                    <br>camera
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-camera-retro fa-lg m-t-2"></i>
-                    <br>camera-retro
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-car fa-lg m-t-2"></i>
-                    <br>car
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-square-o-down fa-lg m-t-2"></i>
-                    <br>caret-square-o-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-square-o-left fa-lg m-t-2"></i>
-                    <br>caret-square-o-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-square-o-right fa-lg m-t-2"></i>
-                    <br>caret-square-o-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-square-o-up fa-lg m-t-2"></i>
-                    <br>caret-square-o-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cart-arrow-down fa-lg m-t-2"></i>
-                    <br>cart-arrow-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cart-plus fa-lg m-t-2"></i>
-                    <br>cart-plus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc fa-lg m-t-2"></i>
-                    <br>cc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-certificate fa-lg m-t-2"></i>
-                    <br>certificate
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-check fa-lg m-t-2"></i>
-                    <br>check
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-check-circle fa-lg m-t-2"></i>
-                    <br>check-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-check-circle-o fa-lg m-t-2"></i>
-                    <br>check-circle-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-check-square fa-lg m-t-2"></i>
-                    <br>check-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-check-square-o fa-lg m-t-2"></i>
-                    <br>check-square-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-child fa-lg m-t-2"></i>
-                    <br>child
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-circle fa-lg m-t-2"></i>
-                    <br>circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-circle-o fa-lg m-t-2"></i>
-                    <br>circle-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-circle-o-notch fa-lg m-t-2"></i>
-                    <br>circle-o-notch
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-circle-thin fa-lg m-t-2"></i>
-                    <br>circle-thin
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-clock-o fa-lg m-t-2"></i>
-                    <br>clock-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-clone fa-lg m-t-2"></i>
-                    <br>clone
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-close fa-lg m-t-2"></i>
-                    <br>close
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cloud fa-lg m-t-2"></i>
-                    <br>cloud
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cloud-download fa-lg m-t-2"></i>
-                    <br>cloud-download
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cloud-upload fa-lg m-t-2"></i>
-                    <br>cloud-upload
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-code fa-lg m-t-2"></i>
-                    <br>code
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-code-fork fa-lg m-t-2"></i>
-                    <br>code-fork
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-coffee fa-lg m-t-2"></i>
-                    <br>coffee
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cog fa-lg m-t-2"></i>
-                    <br>cog
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cogs fa-lg m-t-2"></i>
-                    <br>cogs
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-comment fa-lg m-t-2"></i>
-                    <br>comment
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-comment-o fa-lg m-t-2"></i>
-                    <br>comment-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-commenting fa-lg m-t-2"></i>
-                    <br>commenting
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-commenting-o fa-lg m-t-2"></i>
-                    <br>commenting-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-comments fa-lg m-t-2"></i>
-                    <br>comments
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-comments-o fa-lg m-t-2"></i>
-                    <br>comments-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-compass fa-lg m-t-2"></i>
-                    <br>compass
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-copyright fa-lg m-t-2"></i>
-                    <br>copyright
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-creative-commons fa-lg m-t-2"></i>
-                    <br>creative-commons
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-credit-card fa-lg m-t-2"></i>
-                    <br>credit-card
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-credit-card-alt fa-lg m-t-2"></i>
-                    <br>credit-card-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-crop fa-lg m-t-2"></i>
-                    <br>crop
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-crosshairs fa-lg m-t-2"></i>
-                    <br>crosshairs
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cube fa-lg m-t-2"></i>
-                    <br>cube
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cubes fa-lg m-t-2"></i>
-                    <br>cubes
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cutlery fa-lg m-t-2"></i>
-                    <br>cutlery
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-dashboard fa-lg m-t-2"></i>
-                    <br>dashboard
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-database fa-lg m-t-2"></i>
-                    <br>database
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-desktop fa-lg m-t-2"></i>
-                    <br>desktop
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-diamond fa-lg m-t-2"></i>
-                    <br>diamond
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-dot-circle-o fa-lg m-t-2"></i>
-                    <br>dot-circle-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-download fa-lg m-t-2"></i>
-                    <br>download
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-edit fa-lg m-t-2"></i>
-                    <br>edit
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ellipsis-h fa-lg m-t-2"></i>
-                    <br>ellipsis-h
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ellipsis-v fa-lg m-t-2"></i>
-                    <br>ellipsis-v
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-envelope fa-lg m-t-2"></i>
-                    <br>envelope
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-envelope-o fa-lg m-t-2"></i>
-                    <br>envelope-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-envelope-square fa-lg m-t-2"></i>
-                    <br>envelope-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-eraser fa-lg m-t-2"></i>
-                    <br>eraser
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-exchange fa-lg m-t-2"></i>
-                    <br>exchange
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-exclamation fa-lg m-t-2"></i>
-                    <br>exclamation
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-exclamation-circle fa-lg m-t-2"></i>
-                    <br>exclamation-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-exclamation-triangle fa-lg m-t-2"></i>
-                    <br>exclamation-triangle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-external-link fa-lg m-t-2"></i>
-                    <br>external-link
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-external-link-square fa-lg m-t-2"></i>
-                    <br>external-link-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-eye fa-lg m-t-2"></i>
-                    <br>eye
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-eye-slash fa-lg m-t-2"></i>
-                    <br>eye-slash
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-eyedropper fa-lg m-t-2"></i>
-                    <br>eyedropper
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-fax fa-lg m-t-2"></i>
-                    <br>fax
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-feed fa-lg m-t-2"></i>
-                    <br>feed
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-female fa-lg m-t-2"></i>
-                    <br>female
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-fighter-jet fa-lg m-t-2"></i>
-                    <br>fighter-jet
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-archive-o fa-lg m-t-2"></i>
-                    <br>file-archive-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-audio-o fa-lg m-t-2"></i>
-                    <br>file-audio-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-code-o fa-lg m-t-2"></i>
-                    <br>file-code-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-excel-o fa-lg m-t-2"></i>
-                    <br>file-excel-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-image-o fa-lg m-t-2"></i>
-                    <br>file-image-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-movie-o fa-lg m-t-2"></i>
-                    <br>file-movie-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-pdf-o fa-lg m-t-2"></i>
-                    <br>file-pdf-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-photo-o fa-lg m-t-2"></i>
-                    <br>file-photo-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-picture-o fa-lg m-t-2"></i>
-                    <br>file-picture-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-powerpoint-o fa-lg m-t-2"></i>
-                    <br>file-powerpoint-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-sound-o fa-lg m-t-2"></i>
-                    <br>file-sound-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-video-o fa-lg m-t-2"></i>
-                    <br>file-video-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-word-o fa-lg m-t-2"></i>
-                    <br>file-word-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-zip-o fa-lg m-t-2"></i>
-                    <br>file-zip-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-film fa-lg m-t-2"></i>
-                    <br>film
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-filter fa-lg m-t-2"></i>
-                    <br>filter
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-fire fa-lg m-t-2"></i>
-                    <br>fire
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-fire-extinguisher fa-lg m-t-2"></i>
-                    <br>fire-extinguisher
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-flag fa-lg m-t-2"></i>
-                    <br>flag
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-flag-checkered fa-lg m-t-2"></i>
-                    <br>flag-checkered
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-flag-o fa-lg m-t-2"></i>
-                    <br>flag-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-flash fa-lg m-t-2"></i>
-                    <br>flash
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-flask fa-lg m-t-2"></i>
-                    <br>flask
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-folder fa-lg m-t-2"></i>
-                    <br>folder
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-folder-o fa-lg m-t-2"></i>
-                    <br>folder-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-folder-open fa-lg m-t-2"></i>
-                    <br>folder-open
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-folder-open-o fa-lg m-t-2"></i>
-                    <br>folder-open-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-frown-o fa-lg m-t-2"></i>
-                    <br>frown-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-futbol-o fa-lg m-t-2"></i>
-                    <br>futbol-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gamepad fa-lg m-t-2"></i>
-                    <br>gamepad
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gavel fa-lg m-t-2"></i>
-                    <br>gavel
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gear fa-lg m-t-2"></i>
-                    <br>gear
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gears fa-lg m-t-2"></i>
-                    <br>gears
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gift fa-lg m-t-2"></i>
-                    <br>gift
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-glass fa-lg m-t-2"></i>
-                    <br>glass
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-globe fa-lg m-t-2"></i>
-                    <br>globe
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-graduation-cap fa-lg m-t-2"></i>
-                    <br>graduation-cap
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-group fa-lg m-t-2"></i>
-                    <br>group
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-grab-o fa-lg m-t-2"></i>
-                    <br>hand-grab-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-lizard-o fa-lg m-t-2"></i>
-                    <br>hand-lizard-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-paper-o fa-lg m-t-2"></i>
-                    <br>hand-paper-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-peace-o fa-lg m-t-2"></i>
-                    <br>hand-peace-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-pointer-o fa-lg m-t-2"></i>
-                    <br>hand-pointer-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-rock-o fa-lg m-t-2"></i>
-                    <br>hand-rock-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-scissors-o fa-lg m-t-2"></i>
-                    <br>hand-scissors-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-spock-o fa-lg m-t-2"></i>
-                    <br>hand-spock-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-stop-o fa-lg m-t-2"></i>
-                    <br>hand-stop-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hashtag fa-lg m-t-2"></i>
-                    <br>hashtag
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hdd-o fa-lg m-t-2"></i>
-                    <br>hdd-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-headphones fa-lg m-t-2"></i>
-                    <br>headphones
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-heart fa-lg m-t-2"></i>
-                    <br>heart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-heart-o fa-lg m-t-2"></i>
-                    <br>heart-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-heartbeat fa-lg m-t-2"></i>
-                    <br>heartbeat
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-history fa-lg m-t-2"></i>
-                    <br>history
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-home fa-lg m-t-2"></i>
-                    <br>home
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hotel fa-lg m-t-2"></i>
-                    <br>hotel
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hourglass fa-lg m-t-2"></i>
-                    <br>hourglass
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hourglass-1 fa-lg m-t-2"></i>
-                    <br>hourglass-1
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hourglass-2 fa-lg m-t-2"></i>
-                    <br>hourglass-2
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hourglass-3 fa-lg m-t-2"></i>
-                    <br>hourglass-3
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hourglass-end fa-lg m-t-2"></i>
-                    <br>hourglass-end
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hourglass-half fa-lg m-t-2"></i>
-                    <br>hourglass-half
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hourglass-o fa-lg m-t-2"></i>
-                    <br>hourglass-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hourglass-start fa-lg m-t-2"></i>
-                    <br>hourglass-start
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-i-cursor fa-lg m-t-2"></i>
-                    <br>i-cursor
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-image fa-lg m-t-2"></i>
-                    <br>image
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-inbox fa-lg m-t-2"></i>
-                    <br>inbox
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-industry fa-lg m-t-2"></i>
-                    <br>industry
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-info fa-lg m-t-2"></i>
-                    <br>info
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-info-circle fa-lg m-t-2"></i>
-                    <br>info-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-institution fa-lg m-t-2"></i>
-                    <br>institution
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-key fa-lg m-t-2"></i>
-                    <br>key
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-keyboard-o fa-lg m-t-2"></i>
-                    <br>keyboard-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-language fa-lg m-t-2"></i>
-                    <br>language
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-laptop fa-lg m-t-2"></i>
-                    <br>laptop
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-leaf fa-lg m-t-2"></i>
-                    <br>leaf
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-legal fa-lg m-t-2"></i>
-                    <br>legal
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-lemon-o fa-lg m-t-2"></i>
-                    <br>lemon-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-level-down fa-lg m-t-2"></i>
-                    <br>level-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-level-up fa-lg m-t-2"></i>
-                    <br>level-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-life-bouy fa-lg m-t-2"></i>
-                    <br>life-bouy
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-life-buoy fa-lg m-t-2"></i>
-                    <br>life-buoy
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-life-ring fa-lg m-t-2"></i>
-                    <br>life-ring
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-life-saver fa-lg m-t-2"></i>
-                    <br>life-saver
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-lightbulb-o fa-lg m-t-2"></i>
-                    <br>lightbulb-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-line-chart fa-lg m-t-2"></i>
-                    <br>line-chart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-location-arrow fa-lg m-t-2"></i>
-                    <br>location-arrow
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-lock fa-lg m-t-2"></i>
-                    <br>lock
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-magic fa-lg m-t-2"></i>
-                    <br>magic
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-magnet fa-lg m-t-2"></i>
-                    <br>magnet
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mail-forward fa-lg m-t-2"></i>
-                    <br>mail-forward
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mail-reply fa-lg m-t-2"></i>
-                    <br>mail-reply
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mail-reply-all fa-lg m-t-2"></i>
-                    <br>mail-reply-all
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-male fa-lg m-t-2"></i>
-                    <br>male
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-map fa-lg m-t-2"></i>
-                    <br>map
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-map-marker fa-lg m-t-2"></i>
-                    <br>map-marker
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-map-o fa-lg m-t-2"></i>
-                    <br>map-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-map-pin fa-lg m-t-2"></i>
-                    <br>map-pin
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-map-signs fa-lg m-t-2"></i>
-                    <br>map-signs
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-meh-o fa-lg m-t-2"></i>
-                    <br>meh-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-microphone fa-lg m-t-2"></i>
-                    <br>microphone
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-microphone-slash fa-lg m-t-2"></i>
-                    <br>microphone-slash
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-minus fa-lg m-t-2"></i>
-                    <br>minus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-minus-circle fa-lg m-t-2"></i>
-                    <br>minus-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-minus-square fa-lg m-t-2"></i>
-                    <br>minus-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-minus-square-o fa-lg m-t-2"></i>
-                    <br>minus-square-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mobile fa-lg m-t-2"></i>
-                    <br>mobile
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mobile-phone fa-lg m-t-2"></i>
-                    <br>mobile-phone
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-money fa-lg m-t-2"></i>
-                    <br>money
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-moon-o fa-lg m-t-2"></i>
-                    <br>moon-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mortar-board fa-lg m-t-2"></i>
-                    <br>mortar-board
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-motorcycle fa-lg m-t-2"></i>
-                    <br>motorcycle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mouse-pointer fa-lg m-t-2"></i>
-                    <br>mouse-pointer
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-music fa-lg m-t-2"></i>
-                    <br>music
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-navicon fa-lg m-t-2"></i>
-                    <br>navicon
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-newspaper-o fa-lg m-t-2"></i>
-                    <br>newspaper-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-object-group fa-lg m-t-2"></i>
-                    <br>object-group
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-object-ungroup fa-lg m-t-2"></i>
-                    <br>object-ungroup
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-paint-brush fa-lg m-t-2"></i>
-                    <br>paint-brush
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-paper-plane fa-lg m-t-2"></i>
-                    <br>paper-plane
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-paper-plane-o fa-lg m-t-2"></i>
-                    <br>paper-plane-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-paw fa-lg m-t-2"></i>
-                    <br>paw
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pencil fa-lg m-t-2"></i>
-                    <br>pencil
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pencil-square fa-lg m-t-2"></i>
-                    <br>pencil-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pencil-square-o fa-lg m-t-2"></i>
-                    <br>pencil-square-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-percent fa-lg m-t-2"></i>
-                    <br>percent
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-phone fa-lg m-t-2"></i>
-                    <br>phone
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-phone-square fa-lg m-t-2"></i>
-                    <br>phone-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-photo fa-lg m-t-2"></i>
-                    <br>photo
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-picture-o fa-lg m-t-2"></i>
-                    <br>picture-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pie-chart fa-lg m-t-2"></i>
-                    <br>pie-chart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-plane fa-lg m-t-2"></i>
-                    <br>plane
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-plug fa-lg m-t-2"></i>
-                    <br>plug
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-plus fa-lg m-t-2"></i>
-                    <br>plus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-plus-circle fa-lg m-t-2"></i>
-                    <br>plus-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-plus-square fa-lg m-t-2"></i>
-                    <br>plus-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-plus-square-o fa-lg m-t-2"></i>
-                    <br>plus-square-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-power-off fa-lg m-t-2"></i>
-                    <br>power-off
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-print fa-lg m-t-2"></i>
-                    <br>print
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-puzzle-piece fa-lg m-t-2"></i>
-                    <br>puzzle-piece
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-qrcode fa-lg m-t-2"></i>
-                    <br>qrcode
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-question fa-lg m-t-2"></i>
-                    <br>question
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-question-circle fa-lg m-t-2"></i>
-                    <br>question-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-quote-left fa-lg m-t-2"></i>
-                    <br>quote-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-quote-right fa-lg m-t-2"></i>
-                    <br>quote-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-random fa-lg m-t-2"></i>
-                    <br>random
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-recycle fa-lg m-t-2"></i>
-                    <br>recycle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-refresh fa-lg m-t-2"></i>
-                    <br>refresh
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-registered fa-lg m-t-2"></i>
-                    <br>registered
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-remove fa-lg m-t-2"></i>
-                    <br>remove
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-reorder fa-lg m-t-2"></i>
-                    <br>reorder
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-reply fa-lg m-t-2"></i>
-                    <br>reply
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-reply-all fa-lg m-t-2"></i>
-                    <br>reply-all
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-retweet fa-lg m-t-2"></i>
-                    <br>retweet
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-road fa-lg m-t-2"></i>
-                    <br>road
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-rocket fa-lg m-t-2"></i>
-                    <br>rocket
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-rss fa-lg m-t-2"></i>
-                    <br>rss
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-rss-square fa-lg m-t-2"></i>
-                    <br>rss-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-search fa-lg m-t-2"></i>
-                    <br>search
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-search-minus fa-lg m-t-2"></i>
-                    <br>search-minus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-search-plus fa-lg m-t-2"></i>
-                    <br>search-plus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-send fa-lg m-t-2"></i>
-                    <br>send
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-send-o fa-lg m-t-2"></i>
-                    <br>send-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-server fa-lg m-t-2"></i>
-                    <br>server
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-share fa-lg m-t-2"></i>
-                    <br>share
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-share-alt fa-lg m-t-2"></i>
-                    <br>share-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-share-alt-square fa-lg m-t-2"></i>
-                    <br>share-alt-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-share-square fa-lg m-t-2"></i>
-                    <br>share-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-share-square-o fa-lg m-t-2"></i>
-                    <br>share-square-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-shield fa-lg m-t-2"></i>
-                    <br>shield
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ship fa-lg m-t-2"></i>
-                    <br>ship
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-shopping-bag fa-lg m-t-2"></i>
-                    <br>shopping-bag
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-shopping-basket fa-lg m-t-2"></i>
-                    <br>shopping-basket
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-shopping-cart fa-lg m-t-2"></i>
-                    <br>shopping-cart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sign-in fa-lg m-t-2"></i>
-                    <br>sign-in
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sign-out fa-lg m-t-2"></i>
-                    <br>sign-out
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-signal fa-lg m-t-2"></i>
-                    <br>signal
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sitemap fa-lg m-t-2"></i>
-                    <br>sitemap
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sliders fa-lg m-t-2"></i>
-                    <br>sliders
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-smile-o fa-lg m-t-2"></i>
-                    <br>smile-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-soccer-ball-o fa-lg m-t-2"></i>
-                    <br>soccer-ball-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sort fa-lg m-t-2"></i>
-                    <br>sort
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sort-alpha-asc fa-lg m-t-2"></i>
-                    <br>sort-alpha-asc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sort-alpha-desc fa-lg m-t-2"></i>
-                    <br>sort-alpha-desc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sort-amount-asc fa-lg m-t-2"></i>
-                    <br>sort-amount-asc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sort-amount-desc fa-lg m-t-2"></i>
-                    <br>sort-amount-desc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sort-asc fa-lg m-t-2"></i>
-                    <br>sort-asc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sort-desc fa-lg m-t-2"></i>
-                    <br>sort-desc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sort-down fa-lg m-t-2"></i>
-                    <br>sort-down
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sort-numeric-asc fa-lg m-t-2"></i>
-                    <br>sort-numeric-asc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sort-numeric-desc fa-lg m-t-2"></i>
-                    <br>sort-numeric-desc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sort-up fa-lg m-t-2"></i>
-                    <br>sort-up
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-space-shuttle fa-lg m-t-2"></i>
-                    <br>space-shuttle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-spinner fa-lg m-t-2"></i>
-                    <br>spinner
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-spoon fa-lg m-t-2"></i>
-                    <br>spoon
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-square fa-lg m-t-2"></i>
-                    <br>square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-square-o fa-lg m-t-2"></i>
-                    <br>square-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-star fa-lg m-t-2"></i>
-                    <br>star
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-star-half fa-lg m-t-2"></i>
-                    <br>star-half
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-star-half-empty fa-lg m-t-2"></i>
-                    <br>star-half-empty
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-star-half-full fa-lg m-t-2"></i>
-                    <br>star-half-full
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-star-half-o fa-lg m-t-2"></i>
-                    <br>star-half-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-star-o fa-lg m-t-2"></i>
-                    <br>star-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sticky-note fa-lg m-t-2"></i>
-                    <br>sticky-note
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sticky-note-o fa-lg m-t-2"></i>
-                    <br>sticky-note-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-street-view fa-lg m-t-2"></i>
-                    <br>street-view
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-suitcase fa-lg m-t-2"></i>
-                    <br>suitcase
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sun-o fa-lg m-t-2"></i>
-                    <br>sun-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-support fa-lg m-t-2"></i>
-                    <br>support
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tablet fa-lg m-t-2"></i>
-                    <br>tablet
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tachometer fa-lg m-t-2"></i>
-                    <br>tachometer
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tag fa-lg m-t-2"></i>
-                    <br>tag
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tags fa-lg m-t-2"></i>
-                    <br>tags
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tasks fa-lg m-t-2"></i>
-                    <br>tasks
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-taxi fa-lg m-t-2"></i>
-                    <br>taxi
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-television fa-lg m-t-2"></i>
-                    <br>television
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-terminal fa-lg m-t-2"></i>
-                    <br>terminal
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-thumb-tack fa-lg m-t-2"></i>
-                    <br>thumb-tack
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-thumbs-down fa-lg m-t-2"></i>
-                    <br>thumbs-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-thumbs-o-down fa-lg m-t-2"></i>
-                    <br>thumbs-o-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-thumbs-o-up fa-lg m-t-2"></i>
-                    <br>thumbs-o-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-thumbs-up fa-lg m-t-2"></i>
-                    <br>thumbs-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ticket fa-lg m-t-2"></i>
-                    <br>ticket
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-times fa-lg m-t-2"></i>
-                    <br>times
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-times-circle fa-lg m-t-2"></i>
-                    <br>times-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-times-circle-o fa-lg m-t-2"></i>
-                    <br>times-circle-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tint fa-lg m-t-2"></i>
-                    <br>tint
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-toggle-down fa-lg m-t-2"></i>
-                    <br>toggle-down
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-toggle-left fa-lg m-t-2"></i>
-                    <br>toggle-left
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-toggle-off fa-lg m-t-2"></i>
-                    <br>toggle-off
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-toggle-on fa-lg m-t-2"></i>
-                    <br>toggle-on
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-toggle-right fa-lg m-t-2"></i>
-                    <br>toggle-right
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-toggle-up fa-lg m-t-2"></i>
-                    <br>toggle-up
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-trademark fa-lg m-t-2"></i>
-                    <br>trademark
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-trash fa-lg m-t-2"></i>
-                    <br>trash
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-trash-o fa-lg m-t-2"></i>
-                    <br>trash-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tree fa-lg m-t-2"></i>
-                    <br>tree
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-trophy fa-lg m-t-2"></i>
-                    <br>trophy
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-truck fa-lg m-t-2"></i>
-                    <br>truck
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tty fa-lg m-t-2"></i>
-                    <br>tty
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tv fa-lg m-t-2"></i>
-                    <br>tv
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-umbrella fa-lg m-t-2"></i>
-                    <br>umbrella
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-university fa-lg m-t-2"></i>
-                    <br>university
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-unlock fa-lg m-t-2"></i>
-                    <br>unlock
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-unlock-alt fa-lg m-t-2"></i>
-                    <br>unlock-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-unsorted fa-lg m-t-2"></i>
-                    <br>unsorted
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-upload fa-lg m-t-2"></i>
-                    <br>upload
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-user fa-lg m-t-2"></i>
-                    <br>user
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-user-plus fa-lg m-t-2"></i>
-                    <br>user-plus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-user-secret fa-lg m-t-2"></i>
-                    <br>user-secret
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-user-times fa-lg m-t-2"></i>
-                    <br>user-times
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-users fa-lg m-t-2"></i>
-                    <br>users
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-video-camera fa-lg m-t-2"></i>
-                    <br>video-camera
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-volume-down fa-lg m-t-2"></i>
-                    <br>volume-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-volume-off fa-lg m-t-2"></i>
-                    <br>volume-off
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-volume-up fa-lg m-t-2"></i>
-                    <br>volume-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-warning fa-lg m-t-2"></i>
-                    <br>warning
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-wheelchair fa-lg m-t-2"></i>
-                    <br>wheelchair
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-wifi fa-lg m-t-2"></i>
-                    <br>wifi
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-wrench fa-lg m-t-2"></i>
-                    <br>wrench
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="hand">
-        <div class="card-header">Hand Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-grab-o fa-lg m-t-2"></i>
-                    <br>hand-grab-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-lizard-o fa-lg m-t-2"></i>
-                    <br>hand-lizard-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-o-down fa-lg m-t-2"></i>
-                    <br>hand-o-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-o-left fa-lg m-t-2"></i>
-                    <br>hand-o-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-o-right fa-lg m-t-2"></i>
-                    <br>hand-o-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-o-up fa-lg m-t-2"></i>
-                    <br>hand-o-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-paper-o fa-lg m-t-2"></i>
-                    <br>hand-paper-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-peace-o fa-lg m-t-2"></i>
-                    <br>hand-peace-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-pointer-o fa-lg m-t-2"></i>
-                    <br>hand-pointer-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-rock-o fa-lg m-t-2"></i>
-                    <br>hand-rock-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-scissors-o fa-lg m-t-2"></i>
-                    <br>hand-scissors-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-spock-o fa-lg m-t-2"></i>
-                    <br>hand-spock-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-stop-o fa-lg m-t-2"></i>
-                    <br>hand-stop-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-thumbs-down fa-lg m-t-2"></i>
-                    <br>thumbs-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-thumbs-o-down fa-lg m-t-2"></i>
-                    <br>thumbs-o-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-thumbs-o-up fa-lg m-t-2"></i>
-                    <br>thumbs-o-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-thumbs-up fa-lg m-t-2"></i>
-                    <br>thumbs-up
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="transportation">
-        <div class="card-header">Transportation Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ambulance fa-lg m-t-2"></i>
-                    <br>ambulance
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-automobile fa-lg m-t-2"></i>
-                    <br>automobile
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bicycle fa-lg m-t-2"></i>
-                    <br>bicycle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bus fa-lg m-t-2"></i>
-                    <br>bus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cab fa-lg m-t-2"></i>
-                    <br>cab
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-car fa-lg m-t-2"></i>
-                    <br>car
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-fighter-jet fa-lg m-t-2"></i>
-                    <br>fighter-jet
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-motorcycle fa-lg m-t-2"></i>
-                    <br>motorcycle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-plane fa-lg m-t-2"></i>
-                    <br>plane
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-rocket fa-lg m-t-2"></i>
-                    <br>rocket
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ship fa-lg m-t-2"></i>
-                    <br>ship
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-space-shuttle fa-lg m-t-2"></i>
-                    <br>space-shuttle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-subway fa-lg m-t-2"></i>
-                    <br>subway
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-taxi fa-lg m-t-2"></i>
-                    <br>taxi
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-train fa-lg m-t-2"></i>
-                    <br>train
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-truck fa-lg m-t-2"></i>
-                    <br>truck
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-wheelchair fa-lg m-t-2"></i>
-                    <br>wheelchair
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="gender">
-        <div class="card-header">Gender Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-genderless fa-lg m-t-2"></i>
-                    <br>genderless
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-intersex fa-lg m-t-2"></i>
-                    <br>intersex
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mars fa-lg m-t-2"></i>
-                    <br>mars
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mars-double fa-lg m-t-2"></i>
-                    <br>mars-double
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mars-stroke fa-lg m-t-2"></i>
-                    <br>mars-stroke
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mars-stroke-h fa-lg m-t-2"></i>
-                    <br>mars-stroke-h
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mars-stroke-v fa-lg m-t-2"></i>
-                    <br>mars-stroke-v
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mercury fa-lg m-t-2"></i>
-                    <br>mercury
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-neuter fa-lg m-t-2"></i>
-                    <br>neuter
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-transgender fa-lg m-t-2"></i>
-                    <br>transgender
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-transgender-alt fa-lg m-t-2"></i>
-                    <br>transgender-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-venus fa-lg m-t-2"></i>
-                    <br>venus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-venus-double fa-lg m-t-2"></i>
-                    <br>venus-double
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-venus-mars fa-lg m-t-2"></i>
-                    <br>venus-mars
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="file-type">
-        <div class="card-header">File Type Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file fa-lg m-t-2"></i>
-                    <br>file
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-archive-o fa-lg m-t-2"></i>
-                    <br>file-archive-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-audio-o fa-lg m-t-2"></i>
-                    <br>file-audio-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-code-o fa-lg m-t-2"></i>
-                    <br>file-code-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-excel-o fa-lg m-t-2"></i>
-                    <br>file-excel-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-image-o fa-lg m-t-2"></i>
-                    <br>file-image-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-movie-o fa-lg m-t-2"></i>
-                    <br>file-movie-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-o fa-lg m-t-2"></i>
-                    <br>file-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-pdf-o fa-lg m-t-2"></i>
-                    <br>file-pdf-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-photo-o fa-lg m-t-2"></i>
-                    <br>file-photo-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-picture-o fa-lg m-t-2"></i>
-                    <br>file-picture-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-powerpoint-o fa-lg m-t-2"></i>
-                    <br>file-powerpoint-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-sound-o fa-lg m-t-2"></i>
-                    <br>file-sound-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-text fa-lg m-t-2"></i>
-                    <br>file-text
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-text-o fa-lg m-t-2"></i>
-                    <br>file-text-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-video-o fa-lg m-t-2"></i>
-                    <br>file-video-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-word-o fa-lg m-t-2"></i>
-                    <br>file-word-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-zip-o fa-lg m-t-2"></i>
-                    <br>file-zip-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="spinner">
-        <div class="card-header">Spinner Icons</div>
-        <div class="card-block">
-            <div class="alert alert-success">
-                <ul class="fa-ul">
-                    <li>
-                        <i class="fa fa-info-circle fa-li"></i> These icons work great with the
-                        <code>fa-spin</code>class.
-                    </li>
-                </ul>
-            </div>
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-circle-o-notch fa-lg m-t-2"></i>
-                    <br>circle-o-notch
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cog fa-lg m-t-2"></i>
-                    <br>cog
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gear fa-lg m-t-2"></i>
-                    <br>gear
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-refresh fa-lg m-t-2"></i>
-                    <br>refresh
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-spinner fa-lg m-t-2"></i>
-                    <br>spinner
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="form-control">
-        <div class="card-header">Form Control Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-check-square fa-lg m-t-2"></i>
-                    <br>check-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-check-square-o fa-lg m-t-2"></i>
-                    <br>check-square-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-circle fa-lg m-t-2"></i>
-                    <br>circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-circle-o fa-lg m-t-2"></i>
-                    <br>circle-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-dot-circle-o fa-lg m-t-2"></i>
-                    <br>dot-circle-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-minus-square fa-lg m-t-2"></i>
-                    <br>minus-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-minus-square-o fa-lg m-t-2"></i>
-                    <br>minus-square-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-plus-square fa-lg m-t-2"></i>
-                    <br>plus-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-plus-square-o fa-lg m-t-2"></i>
-                    <br>plus-square-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-square fa-lg m-t-2"></i>
-                    <br>square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-square-o fa-lg m-t-2"></i>
-                    <br>square-o
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="payment">
-        <div class="card-header">Payment Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-amex fa-lg m-t-2"></i>
-                    <br>cc-amex
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-diners-club fa-lg m-t-2"></i>
-                    <br>cc-diners-club
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-discover fa-lg m-t-2"></i>
-                    <br>cc-discover
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-jcb fa-lg m-t-2"></i>
-                    <br>cc-jcb
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-mastercard fa-lg m-t-2"></i>
-                    <br>cc-mastercard
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-paypal fa-lg m-t-2"></i>
-                    <br>cc-paypal
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-stripe fa-lg m-t-2"></i>
-                    <br>cc-stripe
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-visa fa-lg m-t-2"></i>
-                    <br>cc-visa
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-credit-card fa-lg m-t-2"></i>
-                    <br>credit-card
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-credit-card-alt fa-lg m-t-2"></i>
-                    <br>credit-card-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-google-wallet fa-lg m-t-2"></i>
-                    <br>google-wallet
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-paypal fa-lg m-t-2"></i>
-                    <br>paypal
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="chart">
-        <div class="card-header">Chart Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-area-chart fa-lg m-t-2"></i>
-                    <br>area-chart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bar-chart fa-lg m-t-2"></i>
-                    <br>bar-chart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bar-chart-o fa-lg m-t-2"></i>
-                    <br>bar-chart-o
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-line-chart fa-lg m-t-2"></i>
-                    <br>line-chart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pie-chart fa-lg m-t-2"></i>
-                    <br>pie-chart
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="currency">
-        <div class="card-header">Currency Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bitcoin fa-lg m-t-2"></i>
-                    <br>bitcoin
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-btc fa-lg m-t-2"></i>
-                    <br>btc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cny fa-lg m-t-2"></i>
-                    <br>cny
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-dollar fa-lg m-t-2"></i>
-                    <br>dollar
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-eur fa-lg m-t-2"></i>
-                    <br>eur
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-euro fa-lg m-t-2"></i>
-                    <br>euro
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gbp fa-lg m-t-2"></i>
-                    <br>gbp
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gg fa-lg m-t-2"></i>
-                    <br>gg
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gg-circle fa-lg m-t-2"></i>
-                    <br>gg-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ils fa-lg m-t-2"></i>
-                    <br>ils
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-inr fa-lg m-t-2"></i>
-                    <br>inr
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-jpy fa-lg m-t-2"></i>
-                    <br>jpy
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-krw fa-lg m-t-2"></i>
-                    <br>krw
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-money fa-lg m-t-2"></i>
-                    <br>money
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-rmb fa-lg m-t-2"></i>
-                    <br>rmb
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-rouble fa-lg m-t-2"></i>
-                    <br>rouble
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-rub fa-lg m-t-2"></i>
-                    <br>rub
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ruble fa-lg m-t-2"></i>
-                    <br>ruble
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-rupee fa-lg m-t-2"></i>
-                    <br>rupee
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-shekel fa-lg m-t-2"></i>
-                    <br>shekel
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sheqel fa-lg m-t-2"></i>
-                    <br>sheqel
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-try fa-lg m-t-2"></i>
-                    <br>try
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-turkish-lira fa-lg m-t-2"></i>
-                    <br>turkish-lira
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-usd fa-lg m-t-2"></i>
-                    <br>usd
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-won fa-lg m-t-2"></i>
-                    <br>won
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-yen fa-lg m-t-2"></i>
-                    <br>yen
-                    <span class="text-muted">(alias)</span>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="text-editor">
-        <div class="card-header">Text Editor Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-align-center fa-lg m-t-2"></i>
-                    <br>align-center
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-align-justify fa-lg m-t-2"></i>
-                    <br>align-justify
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-align-left fa-lg m-t-2"></i>
-                    <br>align-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-align-right fa-lg m-t-2"></i>
-                    <br>align-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bold fa-lg m-t-2"></i>
-                    <br>bold
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-chain fa-lg m-t-2"></i>
-                    <br>chain
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-chain-broken fa-lg m-t-2"></i>
-                    <br>chain-broken
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-clipboard fa-lg m-t-2"></i>
-                    <br>clipboard
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-columns fa-lg m-t-2"></i>
-                    <br>columns
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-copy fa-lg m-t-2"></i>
-                    <br>copy
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cut fa-lg m-t-2"></i>
-                    <br>cut
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-dedent fa-lg m-t-2"></i>
-                    <br>dedent
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-eraser fa-lg m-t-2"></i>
-                    <br>eraser
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file fa-lg m-t-2"></i>
-                    <br>file
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-o fa-lg m-t-2"></i>
-                    <br>file-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-text fa-lg m-t-2"></i>
-                    <br>file-text
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-file-text-o fa-lg m-t-2"></i>
-                    <br>file-text-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-files-o fa-lg m-t-2"></i>
-                    <br>files-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-floppy-o fa-lg m-t-2"></i>
-                    <br>floppy-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-font fa-lg m-t-2"></i>
-                    <br>font
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-header fa-lg m-t-2"></i>
-                    <br>header
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-indent fa-lg m-t-2"></i>
-                    <br>indent
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-italic fa-lg m-t-2"></i>
-                    <br>italic
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-link fa-lg m-t-2"></i>
-                    <br>link
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-list fa-lg m-t-2"></i>
-                    <br>list
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-list-alt fa-lg m-t-2"></i>
-                    <br>list-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-list-ol fa-lg m-t-2"></i>
-                    <br>list-ol
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-list-ul fa-lg m-t-2"></i>
-                    <br>list-ul
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-outdent fa-lg m-t-2"></i>
-                    <br>outdent
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-paperclip fa-lg m-t-2"></i>
-                    <br>paperclip
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-paragraph fa-lg m-t-2"></i>
-                    <br>paragraph
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-paste fa-lg m-t-2"></i>
-                    <br>paste
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-repeat fa-lg m-t-2"></i>
-                    <br>repeat
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-rotate-left fa-lg m-t-2"></i>
-                    <br>rotate-left
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-rotate-right fa-lg m-t-2"></i>
-                    <br>rotate-right
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-save fa-lg m-t-2"></i>
-                    <br>save
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-scissors fa-lg m-t-2"></i>
-                    <br>scissors
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-strikethrough fa-lg m-t-2"></i>
-                    <br>strikethrough
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-subscript fa-lg m-t-2"></i>
-                    <br>subscript
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-superscript fa-lg m-t-2"></i>
-                    <br>superscript
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-table fa-lg m-t-2"></i>
-                    <br>table
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-text-height fa-lg m-t-2"></i>
-                    <br>text-height
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-text-width fa-lg m-t-2"></i>
-                    <br>text-width
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-th fa-lg m-t-2"></i>
-                    <br>th
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-th-large fa-lg m-t-2"></i>
-                    <br>th-large
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-th-list fa-lg m-t-2"></i>
-                    <br>th-list
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-underline fa-lg m-t-2"></i>
-                    <br>underline
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-undo fa-lg m-t-2"></i>
-                    <br>undo
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-unlink fa-lg m-t-2"></i>
-                    <br>unlink
-                    <span class="text-muted">(alias)</span>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="directional">
-        <div class="card-header">Directional Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-angle-double-down fa-lg m-t-2"></i>
-                    <br>angle-double-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-angle-double-left fa-lg m-t-2"></i>
-                    <br>angle-double-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-angle-double-right fa-lg m-t-2"></i>
-                    <br>angle-double-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-angle-double-up fa-lg m-t-2"></i>
-                    <br>angle-double-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-angle-down fa-lg m-t-2"></i>
-                    <br>angle-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-angle-left fa-lg m-t-2"></i>
-                    <br>angle-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-angle-right fa-lg m-t-2"></i>
-                    <br>angle-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-angle-up fa-lg m-t-2"></i>
-                    <br>angle-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-circle-down fa-lg m-t-2"></i>
-                    <br>arrow-circle-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-circle-left fa-lg m-t-2"></i>
-                    <br>arrow-circle-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-circle-o-down fa-lg m-t-2"></i>
-                    <br>arrow-circle-o-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-circle-o-left fa-lg m-t-2"></i>
-                    <br>arrow-circle-o-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-circle-o-right fa-lg m-t-2"></i>
-                    <br>arrow-circle-o-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-circle-o-up fa-lg m-t-2"></i>
-                    <br>arrow-circle-o-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-circle-right fa-lg m-t-2"></i>
-                    <br>arrow-circle-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-circle-up fa-lg m-t-2"></i>
-                    <br>arrow-circle-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-down fa-lg m-t-2"></i>
-                    <br>arrow-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-left fa-lg m-t-2"></i>
-                    <br>arrow-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-right fa-lg m-t-2"></i>
-                    <br>arrow-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrow-up fa-lg m-t-2"></i>
-                    <br>arrow-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrows fa-lg m-t-2"></i>
-                    <br>arrows
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrows-alt fa-lg m-t-2"></i>
-                    <br>arrows-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrows-h fa-lg m-t-2"></i>
-                    <br>arrows-h
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrows-v fa-lg m-t-2"></i>
-                    <br>arrows-v
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-down fa-lg m-t-2"></i>
-                    <br>caret-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-left fa-lg m-t-2"></i>
-                    <br>caret-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-right fa-lg m-t-2"></i>
-                    <br>caret-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-square-o-down fa-lg m-t-2"></i>
-                    <br>caret-square-o-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-square-o-left fa-lg m-t-2"></i>
-                    <br>caret-square-o-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-square-o-right fa-lg m-t-2"></i>
-                    <br>caret-square-o-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-square-o-up fa-lg m-t-2"></i>
-                    <br>caret-square-o-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-caret-up fa-lg m-t-2"></i>
-                    <br>caret-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-chevron-circle-down fa-lg m-t-2"></i>
-                    <br>chevron-circle-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-chevron-circle-left fa-lg m-t-2"></i>
-                    <br>chevron-circle-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-chevron-circle-right fa-lg m-t-2"></i>
-                    <br>chevron-circle-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-chevron-circle-up fa-lg m-t-2"></i>
-                    <br>chevron-circle-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-chevron-down fa-lg m-t-2"></i>
-                    <br>chevron-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-chevron-left fa-lg m-t-2"></i>
-                    <br>chevron-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-chevron-right fa-lg m-t-2"></i>
-                    <br>chevron-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-chevron-up fa-lg m-t-2"></i>
-                    <br>chevron-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-exchange fa-lg m-t-2"></i>
-                    <br>exchange
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-o-down fa-lg m-t-2"></i>
-                    <br>hand-o-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-o-left fa-lg m-t-2"></i>
-                    <br>hand-o-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-o-right fa-lg m-t-2"></i>
-                    <br>hand-o-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hand-o-up fa-lg m-t-2"></i>
-                    <br>hand-o-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-long-arrow-down fa-lg m-t-2"></i>
-                    <br>long-arrow-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-long-arrow-left fa-lg m-t-2"></i>
-                    <br>long-arrow-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-long-arrow-right fa-lg m-t-2"></i>
-                    <br>long-arrow-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-long-arrow-up fa-lg m-t-2"></i>
-                    <br>long-arrow-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-toggle-down fa-lg m-t-2"></i>
-                    <br>toggle-down
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-toggle-left fa-lg m-t-2"></i>
-                    <br>toggle-left
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-toggle-right fa-lg m-t-2"></i>
-                    <br>toggle-right
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-toggle-up fa-lg m-t-2"></i>
-                    <br>toggle-up
-                    <span class="text-muted">(alias)</span>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="video-player">
-        <div class="card-header">Video Player Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-arrows-alt fa-lg m-t-2"></i>
-                    <br>arrows-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-backward fa-lg m-t-2"></i>
-                    <br>backward
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-compress fa-lg m-t-2"></i>
-                    <br>compress
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-eject fa-lg m-t-2"></i>
-                    <br>eject
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-expand fa-lg m-t-2"></i>
-                    <br>expand
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-fast-backward fa-lg m-t-2"></i>
-                    <br>fast-backward
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-fast-forward fa-lg m-t-2"></i>
-                    <br>fast-forward
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-forward fa-lg m-t-2"></i>
-                    <br>forward
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pause fa-lg m-t-2"></i>
-                    <br>pause
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pause-circle fa-lg m-t-2"></i>
-                    <br>pause-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pause-circle-o fa-lg m-t-2"></i>
-                    <br>pause-circle-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-play fa-lg m-t-2"></i>
-                    <br>play
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-play-circle fa-lg m-t-2"></i>
-                    <br>play-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-play-circle-o fa-lg m-t-2"></i>
-                    <br>play-circle-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-random fa-lg m-t-2"></i>
-                    <br>random
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-step-backward fa-lg m-t-2"></i>
-                    <br>step-backward
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-step-forward fa-lg m-t-2"></i>
-                    <br>step-forward
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-stop fa-lg m-t-2"></i>
-                    <br>stop
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-stop-circle fa-lg m-t-2"></i>
-                    <br>stop-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-stop-circle-o fa-lg m-t-2"></i>
-                    <br>stop-circle-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-youtube-play fa-lg m-t-2"></i>
-                    <br>youtube-play
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="brand">
-        <div class="card-header">Brand Icons</div>
-        <div class="card-block">
-            <div class="alert alert-warning">
-                <h4><i class="fa fa-warning"></i> Warning!</h4>
-                Apparently, Adblock Plus can remove Font Awesome brand icons with their "Remove Social Media Buttons" setting. We will not use hacks to force them to display. Please
-                <a href="https://adblockplus.org/en/bugs" class="alert-link">report an issue with Adblock Plus</a> if you believe this to be an error. To work around this, you'll need to modify the social icon class names.
-            </div>
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-500px fa-lg m-t-2"></i>
-                    <br>500px
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-adn fa-lg m-t-2"></i>
-                    <br>adn
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-amazon fa-lg m-t-2"></i>
-                    <br>amazon
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-android fa-lg m-t-2"></i>
-                    <br>android
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-angellist fa-lg m-t-2"></i>
-                    <br>angellist
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-apple fa-lg m-t-2"></i>
-                    <br>apple
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-behance fa-lg m-t-2"></i>
-                    <br>behance
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-behance-square fa-lg m-t-2"></i>
-                    <br>behance-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bitbucket fa-lg m-t-2"></i>
-                    <br>bitbucket
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bitbucket-square fa-lg m-t-2"></i>
-                    <br>bitbucket-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bitcoin fa-lg m-t-2"></i>
-                    <br>bitcoin
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-black-tie fa-lg m-t-2"></i>
-                    <br>black-tie
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bluetooth fa-lg m-t-2"></i>
-                    <br>bluetooth
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-bluetooth-b fa-lg m-t-2"></i>
-                    <br>bluetooth-b
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-btc fa-lg m-t-2"></i>
-                    <br>btc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-buysellads fa-lg m-t-2"></i>
-                    <br>buysellads
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-amex fa-lg m-t-2"></i>
-                    <br>cc-amex
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-diners-club fa-lg m-t-2"></i>
-                    <br>cc-diners-club
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-discover fa-lg m-t-2"></i>
-                    <br>cc-discover
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-jcb fa-lg m-t-2"></i>
-                    <br>cc-jcb
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-mastercard fa-lg m-t-2"></i>
-                    <br>cc-mastercard
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-paypal fa-lg m-t-2"></i>
-                    <br>cc-paypal
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-stripe fa-lg m-t-2"></i>
-                    <br>cc-stripe
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-cc-visa fa-lg m-t-2"></i>
-                    <br>cc-visa
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-chrome fa-lg m-t-2"></i>
-                    <br>chrome
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-codepen fa-lg m-t-2"></i>
-                    <br>codepen
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-codiepie fa-lg m-t-2"></i>
-                    <br>codiepie
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-connectdevelop fa-lg m-t-2"></i>
-                    <br>connectdevelop
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-contao fa-lg m-t-2"></i>
-                    <br>contao
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-css3 fa-lg m-t-2"></i>
-                    <br>css3
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-dashcube fa-lg m-t-2"></i>
-                    <br>dashcube
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-delicious fa-lg m-t-2"></i>
-                    <br>delicious
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-deviantart fa-lg m-t-2"></i>
-                    <br>deviantart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-digg fa-lg m-t-2"></i>
-                    <br>digg
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-dribbble fa-lg m-t-2"></i>
-                    <br>dribbble
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-dropbox fa-lg m-t-2"></i>
-                    <br>dropbox
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-drupal fa-lg m-t-2"></i>
-                    <br>drupal
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-edge fa-lg m-t-2"></i>
-                    <br>edge
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-empire fa-lg m-t-2"></i>
-                    <br>empire
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-expeditedssl fa-lg m-t-2"></i>
-                    <br>expeditedssl
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-facebook fa-lg m-t-2"></i>
-                    <br>facebook
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-facebook-f fa-lg m-t-2"></i>
-                    <br>facebook-f
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-facebook-official fa-lg m-t-2"></i>
-                    <br>facebook-official
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-facebook-square fa-lg m-t-2"></i>
-                    <br>facebook-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-firefox fa-lg m-t-2"></i>
-                    <br>firefox
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-flickr fa-lg m-t-2"></i>
-                    <br>flickr
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-fonticons fa-lg m-t-2"></i>
-                    <br>fonticons
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-fort-awesome fa-lg m-t-2"></i>
-                    <br>fort-awesome
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-forumbee fa-lg m-t-2"></i>
-                    <br>forumbee
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-foursquare fa-lg m-t-2"></i>
-                    <br>foursquare
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ge fa-lg m-t-2"></i>
-                    <br>ge
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-get-pocket fa-lg m-t-2"></i>
-                    <br>get-pocket
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gg fa-lg m-t-2"></i>
-                    <br>gg
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gg-circle fa-lg m-t-2"></i>
-                    <br>gg-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-git fa-lg m-t-2"></i>
-                    <br>git
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-git-square fa-lg m-t-2"></i>
-                    <br>git-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-github fa-lg m-t-2"></i>
-                    <br>github
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-github-alt fa-lg m-t-2"></i>
-                    <br>github-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-github-square fa-lg m-t-2"></i>
-                    <br>github-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gittip fa-lg m-t-2"></i>
-                    <br>gittip
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-google fa-lg m-t-2"></i>
-                    <br>google
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-google-plus fa-lg m-t-2"></i>
-                    <br>google-plus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-google-plus-square fa-lg m-t-2"></i>
-                    <br>google-plus-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-google-wallet fa-lg m-t-2"></i>
-                    <br>google-wallet
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-gratipay fa-lg m-t-2"></i>
-                    <br>gratipay
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hacker-news fa-lg m-t-2"></i>
-                    <br>hacker-news
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-houzz fa-lg m-t-2"></i>
-                    <br>houzz
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-html5 fa-lg m-t-2"></i>
-                    <br>html5
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-instagram fa-lg m-t-2"></i>
-                    <br>instagram
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-internet-explorer fa-lg m-t-2"></i>
-                    <br>internet-explorer
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ioxhost fa-lg m-t-2"></i>
-                    <br>ioxhost
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-joomla fa-lg m-t-2"></i>
-                    <br>joomla
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-jsfiddle fa-lg m-t-2"></i>
-                    <br>jsfiddle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-lastfm fa-lg m-t-2"></i>
-                    <br>lastfm
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-lastfm-square fa-lg m-t-2"></i>
-                    <br>lastfm-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-leanpub fa-lg m-t-2"></i>
-                    <br>leanpub
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-linkedin fa-lg m-t-2"></i>
-                    <br>linkedin
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-linkedin-square fa-lg m-t-2"></i>
-                    <br>linkedin-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-linux fa-lg m-t-2"></i>
-                    <br>linux
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-maxcdn fa-lg m-t-2"></i>
-                    <br>maxcdn
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-meanpath fa-lg m-t-2"></i>
-                    <br>meanpath
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-medium fa-lg m-t-2"></i>
-                    <br>medium
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-mixcloud fa-lg m-t-2"></i>
-                    <br>mixcloud
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-modx fa-lg m-t-2"></i>
-                    <br>modx
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-odnoklassniki fa-lg m-t-2"></i>
-                    <br>odnoklassniki
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-odnoklassniki-square fa-lg m-t-2"></i>
-                    <br>odnoklassniki-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-opencart fa-lg m-t-2"></i>
-                    <br>opencart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-openid fa-lg m-t-2"></i>
-                    <br>openid
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-opera fa-lg m-t-2"></i>
-                    <br>opera
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-optin-monster fa-lg m-t-2"></i>
-                    <br>optin-monster
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pagelines fa-lg m-t-2"></i>
-                    <br>pagelines
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-paypal fa-lg m-t-2"></i>
-                    <br>paypal
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pied-piper fa-lg m-t-2"></i>
-                    <br>pied-piper
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pied-piper-alt fa-lg m-t-2"></i>
-                    <br>pied-piper-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pinterest fa-lg m-t-2"></i>
-                    <br>pinterest
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pinterest-p fa-lg m-t-2"></i>
-                    <br>pinterest-p
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-pinterest-square fa-lg m-t-2"></i>
-                    <br>pinterest-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-product-hunt fa-lg m-t-2"></i>
-                    <br>product-hunt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-qq fa-lg m-t-2"></i>
-                    <br>qq
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ra fa-lg m-t-2"></i>
-                    <br>ra
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-rebel fa-lg m-t-2"></i>
-                    <br>rebel
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-reddit fa-lg m-t-2"></i>
-                    <br>reddit
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-reddit-alien fa-lg m-t-2"></i>
-                    <br>reddit-alien
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-reddit-square fa-lg m-t-2"></i>
-                    <br>reddit-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-renren fa-lg m-t-2"></i>
-                    <br>renren
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-safari fa-lg m-t-2"></i>
-                    <br>safari
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-scribd fa-lg m-t-2"></i>
-                    <br>scribd
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-sellsy fa-lg m-t-2"></i>
-                    <br>sellsy
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-share-alt fa-lg m-t-2"></i>
-                    <br>share-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-share-alt-square fa-lg m-t-2"></i>
-                    <br>share-alt-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-shirtsinbulk fa-lg m-t-2"></i>
-                    <br>shirtsinbulk
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-simplybuilt fa-lg m-t-2"></i>
-                    <br>simplybuilt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-skyatlas fa-lg m-t-2"></i>
-                    <br>skyatlas
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-skype fa-lg m-t-2"></i>
-                    <br>skype
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-slack fa-lg m-t-2"></i>
-                    <br>slack
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-slideshare fa-lg m-t-2"></i>
-                    <br>slideshare
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-soundcloud fa-lg m-t-2"></i>
-                    <br>soundcloud
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-spotify fa-lg m-t-2"></i>
-                    <br>spotify
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-stack-exchange fa-lg m-t-2"></i>
-                    <br>stack-exchange
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-stack-overflow fa-lg m-t-2"></i>
-                    <br>stack-overflow
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-steam fa-lg m-t-2"></i>
-                    <br>steam
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-steam-square fa-lg m-t-2"></i>
-                    <br>steam-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-stumbleupon fa-lg m-t-2"></i>
-                    <br>stumbleupon
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-stumbleupon-circle fa-lg m-t-2"></i>
-                    <br>stumbleupon-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tencent-weibo fa-lg m-t-2"></i>
-                    <br>tencent-weibo
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-trello fa-lg m-t-2"></i>
-                    <br>trello
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tripadvisor fa-lg m-t-2"></i>
-                    <br>tripadvisor
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tumblr fa-lg m-t-2"></i>
-                    <br>tumblr
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-tumblr-square fa-lg m-t-2"></i>
-                    <br>tumblr-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-twitch fa-lg m-t-2"></i>
-                    <br>twitch
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-twitter fa-lg m-t-2"></i>
-                    <br>twitter
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-twitter-square fa-lg m-t-2"></i>
-                    <br>twitter-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-usb fa-lg m-t-2"></i>
-                    <br>usb
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-viacoin fa-lg m-t-2"></i>
-                    <br>viacoin
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-vimeo fa-lg m-t-2"></i>
-                    <br>vimeo
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-vimeo-square fa-lg m-t-2"></i>
-                    <br>vimeo-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-vine fa-lg m-t-2"></i>
-                    <br>vine
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-vk fa-lg m-t-2"></i>
-                    <br>vk
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-wechat fa-lg m-t-2"></i>
-                    <br>wechat
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-weibo fa-lg m-t-2"></i>
-                    <br>weibo
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-weixin fa-lg m-t-2"></i>
-                    <br>weixin
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-whatsapp fa-lg m-t-2"></i>
-                    <br>whatsapp
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-wikipedia-w fa-lg m-t-2"></i>
-                    <br>wikipedia-w
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-windows fa-lg m-t-2"></i>
-                    <br>windows
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-wordpress fa-lg m-t-2"></i>
-                    <br>wordpress
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-xing fa-lg m-t-2"></i>
-                    <br>xing
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-xing-square fa-lg m-t-2"></i>
-                    <br>xing-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-y-combinator fa-lg m-t-2"></i>
-                    <br>y-combinator
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-y-combinator-square fa-lg m-t-2"></i>
-                    <br>y-combinator-square
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-yahoo fa-lg m-t-2"></i>
-                    <br>yahoo
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-yc fa-lg m-t-2"></i>
-                    <br>yc
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-yc-square fa-lg m-t-2"></i>
-                    <br>yc-square
-                    <span class="text-muted">(alias)</span>
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-yelp fa-lg m-t-2"></i>
-                    <br>yelp
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-youtube fa-lg m-t-2"></i>
-                    <br>youtube
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-youtube-play fa-lg m-t-2"></i>
-                    <br>youtube-play
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-youtube-square fa-lg m-t-2"></i>
-                    <br>youtube-square
-                </div>
-            </div>
-            <div class="alert alert-success m-t-2">
-                <ul class="margin-bottom-none padding-left-lg">
-                    <li>All brand icons are trademarks of their respective owners.</li>
-                    <li>The use of these trademarks does not indicate endorsement of the trademark holder by Font Awesome, nor vice versa.</li>
-                    <li>Brand icons should only be used to represent the company or product to which they refer.</li>
-                </ul>
-            </div>
-        </div>
-    </div>
-    <div class="card" id="medical">
-        <div class="card-header">Medical Icons</div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-ambulance fa-lg m-t-2"></i>
-                    <br>ambulance
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-h-square fa-lg m-t-2"></i>
-                    <br>h-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-heart fa-lg m-t-2"></i>
-                    <br>heart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-heart-o fa-lg m-t-2"></i>
-                    <br>heart-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-heartbeat fa-lg m-t-2"></i>
-                    <br>heartbeat
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-hospital-o fa-lg m-t-2"></i>
-                    <br>hospital-o
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-medkit fa-lg m-t-2"></i>
-                    <br>medkit
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-plus-square fa-lg m-t-2"></i>
-                    <br>plus-square
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-stethoscope fa-lg m-t-2"></i>
-                    <br>stethoscope
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-user-md fa-lg m-t-2"></i>
-                    <br>user-md
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
-                    <i class="fa fa-wheelchair fa-lg m-t-2"></i>
-                    <br>wheelchair
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
diff --git a/demo/Angular2_Demo/app/icons/font-awesome.component.js b/demo/Angular2_Demo/app/icons/font-awesome.component.js
deleted file mode 100644
index 6ace37914671456d6cd4e279ef85697e4df3c37b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/icons/font-awesome.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var FontAwesomeComponent = (function () {
-    function FontAwesomeComponent() {
-    }
-    FontAwesomeComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/icons/font-awesome.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], FontAwesomeComponent);
-    return FontAwesomeComponent;
-}());
-exports.FontAwesomeComponent = FontAwesomeComponent;
-//# sourceMappingURL=font-awesome.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/icons/font-awesome.component.js.map b/demo/Angular2_Demo/app/icons/font-awesome.component.js.map
deleted file mode 100644
index 40e45ed65ec2276c8811653b1e3e0226f2569fc3..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/icons/font-awesome.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"font-awesome.component.js","sourceRoot":"","sources":["font-awesome.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,uCAAuC;SACvD,CAAC;;4BAAA;IAKF,2BAAC;AAAD,CAAC,AAJD,IAIC;AAJY,4BAAoB,uBAIhC,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/icons/font-awesome.component.ts b/demo/Angular2_Demo/app/icons/font-awesome.component.ts
deleted file mode 100644
index c3a2fed375d6c6f49f6c0cd2fe2e760c00749312..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/icons/font-awesome.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/icons/font-awesome.component.html'
-})
-export class FontAwesomeComponent {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/icons/simple-line-icons.component.html b/demo/Angular2_Demo/app/icons/simple-line-icons.component.html
deleted file mode 100644
index b1e6a1da3b9c772af58a83ecb8c2288946c97486..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/icons/simple-line-icons.component.html
+++ /dev/null
@@ -1,561 +0,0 @@
-<div class="animated fadeIn">
-    <div class="card card-default">
-        <div class="card-header">
-            <i class="fa fa-picture-o"></i> Simple Line Icons
-        </div>
-        <div class="card-block">
-            <div class="row text-xs-center">
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-user icons font-2xl d-block m-t-2"></i>icon-user
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-people icons font-2xl d-block m-t-2"></i>icon-people
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-user-female icons font-2xl d-block m-t-2"></i>icon-user-female
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-user-follow icons font-2xl d-block m-t-2"></i>icon-user-follow
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-user-following icons font-2xl d-block m-t-2"></i>icon-user-following
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-user-unfollow icons font-2xl d-block m-t-2"></i>icon-user-unfollow
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-login icons font-2xl d-block m-t-2"></i>icon-login
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-logout icons font-2xl d-block m-t-2"></i>icon-logout
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-emotsmile icons font-2xl d-block m-t-2"></i>icon-emotsmile
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-phone icons font-2xl d-block m-t-2"></i>icon-phone
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-call-end icons font-2xl d-block m-t-2"></i>icon-call-end
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-call-in icons font-2xl d-block m-t-2"></i>icon-call-in
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-call-out icons font-2xl d-block m-t-2"></i>icon-call-out
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-map icons font-2xl d-block m-t-2"></i>icon-map
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-location-pin icons font-2xl d-block m-t-2"></i>icon-location-pin
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-direction icons font-2xl d-block m-t-2"></i>icon-direction
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-directions icons font-2xl d-block m-t-2"></i>icon-directions
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-compass icons font-2xl d-block m-t-2"></i>icon-compass
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-layers icons font-2xl d-block m-t-2"></i>icon-layers
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-menu icons font-2xl d-block m-t-2"></i>icon-menu
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-list icons font-2xl d-block m-t-2"></i>icon-list
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-options-vertical icons font-2xl d-block m-t-2"></i>icon-options-vertical
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-options icons font-2xl d-block m-t-2"></i>icon-options
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-arrow-down icons font-2xl d-block m-t-2"></i>icon-arrow-down
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-arrow-left icons font-2xl d-block m-t-2"></i>icon-arrow-left
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-arrow-right icons font-2xl d-block m-t-2"></i>icon-arrow-right
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-arrow-up icons font-2xl d-block m-t-2"></i>icon-arrow-up
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-arrow-up-circle icons font-2xl d-block m-t-2"></i>icon-arrow-up-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-arrow-left-circle icons font-2xl d-block m-t-2"></i>icon-arrow-left-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-arrow-right-circle icons font-2xl d-block m-t-2"></i>icon-arrow-right-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-arrow-down-circle icons font-2xl d-block m-t-2"></i>icon-arrow-down-circle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-check icons font-2xl d-block m-t-2"></i>icon-check
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-clock icons font-2xl d-block m-t-2"></i>icon-clock
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-plus icons font-2xl d-block m-t-2"></i>icon-plus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-close icons font-2xl d-block m-t-2"></i>icon-close
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-trophy icons font-2xl d-block m-t-2"></i>icon-trophy
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-screen-smartphone icons font-2xl d-block m-t-2"></i>icon-screen-smartphone
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-screen-desktop icons font-2xl d-block m-t-2"></i>icon-screen-desktop
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-plane icons font-2xl d-block m-t-2"></i>icon-plane
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-notebook icons font-2xl d-block m-t-2"></i>icon-notebook
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-mustache icons font-2xl d-block m-t-2"></i>icon-mustache
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-mouse icons font-2xl d-block m-t-2"></i>icon-mouse
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-magnet icons font-2xl d-block m-t-2"></i>icon-magnet
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-energy icons font-2xl d-block m-t-2"></i>icon-energy
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-disc icons font-2xl d-block m-t-2"></i>icon-disc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-cursor icons font-2xl d-block m-t-2"></i>icon-cursor
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-cursor-move icons font-2xl d-block m-t-2"></i>icon-cursor-move
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-crop icons font-2xl d-block m-t-2"></i>icon-crop
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-chemistry icons font-2xl d-block m-t-2"></i>icon-chemistry
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-speedometer icons font-2xl d-block m-t-2"></i>icon-speedometer
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-shield icons font-2xl d-block m-t-2"></i>icon-shield
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-screen-tablet icons font-2xl d-block m-t-2"></i>icon-screen-tablet
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-magic-wand icons font-2xl d-block m-t-2"></i>icon-magic-wand
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-hourglass icons font-2xl d-block m-t-2"></i>icon-hourglass
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-graduation icons font-2xl d-block m-t-2"></i>icon-graduation
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-ghost icons font-2xl d-block m-t-2"></i>icon-ghost
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-game-controller icons font-2xl d-block m-t-2"></i>icon-game-controller
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-fire icons font-2xl d-block m-t-2"></i>icon-fire
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-eyeglass icons font-2xl d-block m-t-2"></i>icon-eyeglass
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-envelope-open icons font-2xl d-block m-t-2"></i>icon-envelope-open
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-envelope-letter icons font-2xl d-block m-t-2"></i>icon-envelope-letter
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-bell icons font-2xl d-block m-t-2"></i>icon-bell
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-badge icons font-2xl d-block m-t-2"></i>icon-badge
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-anchor icons font-2xl d-block m-t-2"></i>icon-anchor
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-wallet icons font-2xl d-block m-t-2"></i>icon-wallet
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-vector icons font-2xl d-block m-t-2"></i>icon-vector
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-speech icons font-2xl d-block m-t-2"></i>icon-speech
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-puzzle icons font-2xl d-block m-t-2"></i>icon-puzzle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-printer icons font-2xl d-block m-t-2"></i>icon-printer
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-present icons font-2xl d-block m-t-2"></i>icon-present
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-playlist icons font-2xl d-block m-t-2"></i>icon-playlist
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-pin icons font-2xl d-block m-t-2"></i>icon-pin
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-picture icons font-2xl d-block m-t-2"></i>icon-picture
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-handbag icons font-2xl d-block m-t-2"></i>icon-handbag
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-globe-alt icons font-2xl d-block m-t-2"></i>icon-globe-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-globe icons font-2xl d-block m-t-2"></i>icon-globe
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-folder-alt icons font-2xl d-block m-t-2"></i>icon-folder-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-folder icons font-2xl d-block m-t-2"></i>icon-folder
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-film icons font-2xl d-block m-t-2"></i>icon-film
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-feed icons font-2xl d-block m-t-2"></i>icon-feed
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-drop icons font-2xl d-block m-t-2"></i>icon-drop
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-drawer icons font-2xl d-block m-t-2"></i>icon-drawer
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-docs icons font-2xl d-block m-t-2"></i>icon-docs
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-doc icons font-2xl d-block m-t-2"></i>icon-doc
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-diamond icons font-2xl d-block m-t-2"></i>icon-diamond
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-cup icons font-2xl d-block m-t-2"></i>icon-cup
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-calculator icons font-2xl d-block m-t-2"></i>icon-calculator
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-bubbles icons font-2xl d-block m-t-2"></i>icon-bubbles
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-briefcase icons font-2xl d-block m-t-2"></i>icon-briefcase
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-book-open icons font-2xl d-block m-t-2"></i>icon-book-open
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-basket-loaded icons font-2xl d-block m-t-2"></i>icon-basket-loaded
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-basket icons font-2xl d-block m-t-2"></i>icon-basket
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-bag icons font-2xl d-block m-t-2"></i>icon-bag
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-action-undo icons font-2xl d-block m-t-2"></i>icon-action-undo
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-action-redo icons font-2xl d-block m-t-2"></i>icon-action-redo
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-wrench icons font-2xl d-block m-t-2"></i>icon-wrench
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-umbrella icons font-2xl d-block m-t-2"></i>icon-umbrella
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-trash icons font-2xl d-block m-t-2"></i>icon-trash
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-tag icons font-2xl d-block m-t-2"></i>icon-tag
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-support icons font-2xl d-block m-t-2"></i>icon-support
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-frame icons font-2xl d-block m-t-2"></i>icon-frame
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-size-fullscreen icons font-2xl d-block m-t-2"></i>icon-size-fullscreen
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-size-actual icons font-2xl d-block m-t-2"></i>icon-size-actual
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-shuffle icons font-2xl d-block m-t-2"></i>icon-shuffle
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-share-alt icons font-2xl d-block m-t-2"></i>icon-share-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-share icons font-2xl d-block m-t-2"></i>icon-share
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-rocket icons font-2xl d-block m-t-2"></i>icon-rocket
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-question icons font-2xl d-block m-t-2"></i>icon-question
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-pie-chart icons font-2xl d-block m-t-2"></i>icon-pie-chart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-pencil icons font-2xl d-block m-t-2"></i>icon-pencil
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-note icons font-2xl d-block m-t-2"></i>icon-note
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-loop icons font-2xl d-block m-t-2"></i>icon-loop
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-home icons font-2xl d-block m-t-2"></i>icon-home
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-grid icons font-2xl d-block m-t-2"></i>icon-grid
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-graph icons font-2xl d-block m-t-2"></i>icon-graph
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-microphone icons font-2xl d-block m-t-2"></i>icon-microphone
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-music-tone-alt icons font-2xl d-block m-t-2"></i>icon-music-tone-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-music-tone icons font-2xl d-block m-t-2"></i>icon-music-tone
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-earphones-alt icons font-2xl d-block m-t-2"></i>icon-earphones-alt
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-earphones icons font-2xl d-block m-t-2"></i>icon-earphones
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-equalizer icons font-2xl d-block m-t-2"></i>icon-equalizer
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-like icons font-2xl d-block m-t-2"></i>icon-like
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-dislike icons font-2xl d-block m-t-2"></i>icon-dislike
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-control-start icons font-2xl d-block m-t-2"></i>icon-control-start
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-control-rewind icons font-2xl d-block m-t-2"></i>icon-control-rewind
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-control-play icons font-2xl d-block m-t-2"></i>icon-control-play
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-control-pause icons font-2xl d-block m-t-2"></i>icon-control-pause
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-control-forward icons font-2xl d-block m-t-2"></i>icon-control-forward
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-control-end icons font-2xl d-block m-t-2"></i>icon-control-end
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-volume-1 icons font-2xl d-block m-t-2"></i>icon-volume-1
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-volume-2 icons font-2xl d-block m-t-2"></i>icon-volume-2
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-volume-off icons font-2xl d-block m-t-2"></i>icon-volume-off
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-calendar icons font-2xl d-block m-t-2"></i>icon-calendar
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-bulb icons font-2xl d-block m-t-2"></i>icon-bulb
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-chart icons font-2xl d-block m-t-2"></i>icon-chart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-ban icons font-2xl d-block m-t-2"></i>icon-ban
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-bubble icons font-2xl d-block m-t-2"></i>icon-bubble
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-camrecorder icons font-2xl d-block m-t-2"></i>icon-camrecorder
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-camera icons font-2xl d-block m-t-2"></i>icon-camera
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-cloud-download icons font-2xl d-block m-t-2"></i>icon-cloud-download
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-cloud-upload icons font-2xl d-block m-t-2"></i>icon-cloud-upload
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-envelope icons font-2xl d-block m-t-2"></i>icon-envelope
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-eye icons font-2xl d-block m-t-2"></i>icon-eye
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-flag icons font-2xl d-block m-t-2"></i>icon-flag
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-heart icons font-2xl d-block m-t-2"></i>icon-heart
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-info icons font-2xl d-block m-t-2"></i>icon-info
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-key icons font-2xl d-block m-t-2"></i>icon-key
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-link icons font-2xl d-block m-t-2"></i>icon-link
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-lock icons font-2xl d-block m-t-2"></i>icon-lock
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-lock-open icons font-2xl d-block m-t-2"></i>icon-lock-open
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-magnifier icons font-2xl d-block m-t-2"></i>icon-magnifier
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-magnifier-add icons font-2xl d-block m-t-2"></i>icon-magnifier-add
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-magnifier-remove icons font-2xl d-block m-t-2"></i>icon-magnifier-remove
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-paper-clip icons font-2xl d-block m-t-2"></i>icon-paper-clip
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-paper-plane icons font-2xl d-block m-t-2"></i>icon-paper-plane
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-power icons font-2xl d-block m-t-2"></i>icon-power
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-refresh icons font-2xl d-block m-t-2"></i>icon-refresh
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-reload icons font-2xl d-block m-t-2"></i>icon-reload
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-settings icons font-2xl d-block m-t-2"></i>icon-settings
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-star icons font-2xl d-block m-t-2"></i>icon-star
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-symbol-female icons font-2xl d-block m-t-2"></i>icon-symbol-female
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-symbol-male icons font-2xl d-block m-t-2"></i>icon-symbol-male
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-target icons font-2xl d-block m-t-2"></i>icon-target
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-credit-card icons font-2xl d-block m-t-2"></i>icon-credit-card
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-paypal icons font-2xl d-block m-t-2"></i>icon-paypal
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-tumblr icons font-2xl d-block m-t-2"></i>icon-social-tumblr
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-twitter icons font-2xl d-block m-t-2"></i>icon-social-twitter
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-facebook icons font-2xl d-block m-t-2"></i>icon-social-facebook
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-instagram icons font-2xl d-block m-t-2"></i>icon-social-instagram
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-linkedin icons font-2xl d-block m-t-2"></i>icon-social-linkedin
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-pinterest icons font-2xl d-block m-t-2"></i>icon-social-pinterest
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-github icons font-2xl d-block m-t-2"></i>icon-social-github
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-gplus icons font-2xl d-block m-t-2"></i>icon-social-gplus
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-reddit icons font-2xl d-block m-t-2"></i>icon-social-reddit
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-skype icons font-2xl d-block m-t-2"></i>icon-social-skype
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-dribbble icons font-2xl d-block m-t-2"></i>icon-social-dribbble
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-behance icons font-2xl d-block m-t-2"></i>icon-social-behance
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-foursqare icons font-2xl d-block m-t-2"></i>icon-social-foursqare
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-soundcloud icons font-2xl d-block m-t-2"></i>icon-social-soundcloud
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-spotify icons font-2xl d-block m-t-2"></i>icon-social-spotify
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-stumbleupon icons font-2xl d-block m-t-2"></i>icon-social-stumbleupon
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-youtube icons font-2xl d-block m-t-2"></i>icon-social-youtube
-                </div>
-                <div class="col-xs-6 col-sm-4 col-md-3">
-                    <i class="icon-social-dropbox icons font-2xl d-block m-t-2"></i>icon-social-dropbox
-                </div>
-            </div>
-            <!--/.row-->
-        </div>
-    </div>
-</div>
diff --git a/demo/Angular2_Demo/app/icons/simple-line-icons.component.js b/demo/Angular2_Demo/app/icons/simple-line-icons.component.js
deleted file mode 100644
index adb595bbe426f447d121c8b88694bbf45bce4325..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/icons/simple-line-icons.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var SimpleLineIconsComponent = (function () {
-    function SimpleLineIconsComponent() {
-    }
-    SimpleLineIconsComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/icons/simple-line-icons.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], SimpleLineIconsComponent);
-    return SimpleLineIconsComponent;
-}());
-exports.SimpleLineIconsComponent = SimpleLineIconsComponent;
-//# sourceMappingURL=simple-line-icons.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/icons/simple-line-icons.component.js.map b/demo/Angular2_Demo/app/icons/simple-line-icons.component.js.map
deleted file mode 100644
index 4e1c45d1ff8b2f1c263588f6248bc6d8def0fb2e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/icons/simple-line-icons.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"simple-line-icons.component.js","sourceRoot":"","sources":["simple-line-icons.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,4CAA4C;SAC5D,CAAC;;gCAAA;IAKF,+BAAC;AAAD,CAAC,AAJD,IAIC;AAJY,gCAAwB,2BAIpC,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/icons/simple-line-icons.component.ts b/demo/Angular2_Demo/app/icons/simple-line-icons.component.ts
deleted file mode 100644
index b65567e2017041048a7ef20d9b11aa5c6067fda1..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/icons/simple-line-icons.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/icons/simple-line-icons.component.html'
-})
-export class SimpleLineIconsComponent {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/layouts/full-layout.component.html b/demo/Angular2_Demo/app/layouts/full-layout.component.html
deleted file mode 100644
index dc900074fbef269eae531374ef809d8a709861a9..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/layouts/full-layout.component.html
+++ /dev/null
@@ -1,451 +0,0 @@
-<header class="navbar">
-    <div class="container-fluid">
-        <button class="navbar-toggler hidden-lg-up" type="button">&#9776;</button>
-        <a class="navbar-brand" href="#"></a>
-
-        <ul class="nav navbar-nav hidden-md-down">
-            <li class="nav-item">
-                <a class="nav-link navbar-toggler sidebar-toggle" href="#">&#9776;</a>
-            </li>
-            <li class="nav-item p-x-1">
-                <a class="nav-link" href="#">Dashboard</a>
-            </li>
-            <li class="nav-item p-x-1">
-                <a class="nav-link" href="#">Users</a>
-            </li>
-            <li class="nav-item p-x-1">
-                <a class="nav-link" href="#">Settings</a>
-            </li>
-        </ul>
-        <ul class="nav navbar-nav pull-right hidden-md-down">
-            <li class="nav-item">
-                <a class="nav-link" href="#"><i class="icon-bell"></i><span class="tag tag-pill tag-danger">5</span></a>
-            </li>
-            <li class="nav-item">
-                <a class="nav-link" href="#"><i class="icon-list"></i></a>
-            </li>
-            <li class="nav-item">
-                <a class="nav-link" href="#"><i class="icon-location-pin"></i></a>
-            </li>
-            <li class="nav-item dropdown" dropdown (onToggle)="toggled($event)">
-                <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false" dropdownToggle>
-                    <img src="img/avatars/6.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    <span class="hidden-md-down">admin</span>
-                </a>
-                <div class="dropdown-menu dropdown-menu-right" dropdownMenu aria-labelledby="simple-dropdown">
-
-                    <div class="dropdown-header text-xs-center">
-                        <strong>Account</strong>
-                    </div>
-
-                    <a class="dropdown-item" href="#"><i class="fa fa-bell-o"></i> Updates<span class="tag tag-info">42</span></a>
-                    <a class="dropdown-item" href="#"><i class="fa fa-envelope-o"></i> Messages<span class="tag tag-success">42</span></a>
-                    <a class="dropdown-item" href="#"><i class="fa fa-tasks"></i> Tasks<span class="tag tag-danger">42</span></a>
-                    <a class="dropdown-item" href="#"><i class="fa fa-comments"></i> Comment<span class="tag tag-warning">42</span></a>
-
-                    <div class="dropdown-header text-xs-center">
-                        <strong>Settings</strong>
-                    </div>
-
-                    <a class="dropdown-item" href="#"><i class="fa fa-user"></i> Profile</a>
-                    <a class="dropdown-item" href="#"><i class="fa fa-wrench"></i> Setting</a>
-                    <a class="dropdown-item" href="#"><i class="fa fa-usd"></i> Payments<span class="tag tag-default">42</span></a>
-                    <a class="dropdown-item" href="#"><i class="fa fa-file"></i> Projects<span class="tag tag-primary">42</span></a>
-                    <div class="divider"></div>
-                    <a class="dropdown-item" href="#"><i class="fa fa-shield"></i> Lock account</a>
-                    <a class="dropdown-item" href="#"><i class="fa fa-lock"></i> Logout</a>
-                </div>
-            </li>
-            <li class="nav-item">
-                <a class="nav-link navbar-toggler aside-toggle" href="#">&#9776;</a>
-            </li>
-        </ul>
-
-    </div>
-</header>
-
-<div class="sidebar">
-    <nav class="sidebar-nav">
-        <ul class="nav">
-            <li class="nav-item">
-                <a class="nav-link" routerLinkActive="active" [routerLink]="['/dashboard']"><i class="icon-speedometer"></i> Dashboard <span class="tag tag-info">NEW</span></a>
-            </li>
-
-            <li class="divider"></li>
-            <li class="nav-title">
-                UI Elements
-            </li>
-            <li class="nav-item nav-dropdown" routerLinkActive="open">
-                <a class="nav-link nav-dropdown-toggle" href="#"><i class="icon-puzzle"></i> Components</a>
-                <ul class="nav-dropdown-items">
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/components/buttons']"><i class="icon-puzzle"></i> Buttons</a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/components/social-buttons']"><i class="icon-puzzle"></i> Social Buttons</a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/components/cards']"><i class="icon-puzzle"></i> Cards</a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/components/forms']"><i class="icon-puzzle"></i> Forms</a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/components/switches']"><i class="icon-puzzle"></i> Switches</a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/components/tables']"><i class="icon-puzzle"></i> Tables</a>
-                    </li>
-                </ul>
-            </li>
-            <li class="nav-item nav-dropdown" routerLinkActive="open">
-                <a class="nav-link nav-dropdown-toggle" href="#"><i class="icon-star"></i> Icons</a>
-                <ul class="nav-dropdown-items">
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/icons/font-awesome']"><i class="icon-star"></i> Font Awesome</a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/icons/simple-line-icons']"><i class="icon-star"></i> Simple Line Icons</a>
-                    </li>
-                </ul>
-            </li>
-            <li class="nav-item">
-                <a class="nav-link" routerLinkActive="active" [routerLink]="['/widgets']"><i class="icon-calculator"></i> Widgets <span class="tag tag-info">NEW</span></a>
-            </li>
-            <li class="nav-item">
-                <a class="nav-link" routerLinkActive="active" [routerLink]="['/charts']"><i class="icon-pie-chart"></i> Charts</a>
-            </li>
-            <li class="divider"></li>
-            <li class="nav-title">
-                Extras
-            </li>
-            <li class="nav-item nav-dropdown">
-                <a class="nav-link nav-dropdown-toggle" href="#"><i class="icon-star"></i> Pages</a>
-                <ul class="nav-dropdown-items">
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/pages/login']"><i class="icon-star"></i> Login</a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/pages/register']"><i class="icon-star"></i> Register</a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/pages/404']"><i class="icon-star"></i> Error 404</a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link" routerLinkActive="active" [routerLink]="['/pages/500']"><i class="icon-star"></i> Error 500</a>
-                    </li>
-                </ul>
-            </li>
-
-        </ul>
-    </nav>
-</div>
-
-<!-- Main content -->
-<main class="main">
-
-    <!-- Breadcrumb -->
-    <ol class="breadcrumb">
-        <breadcrumbs></breadcrumbs>
-
-        <!-- Breadcrumb Menu-->
-        <li class="breadcrumb-menu">
-            <div class="btn-group" role="group" aria-label="Button group with nested dropdown">
-                <a class="btn btn-secondary" href="#"><i class="icon-speech"></i></a>
-                <a class="btn btn-secondary" [routerLink]="['/dashboard']"><i class="icon-graph"></i> &nbsp;Dashboard</a>
-                <a class="btn btn-secondary" href="#"><i class="icon-settings"></i> &nbsp;Settings</a>
-            </div>
-        </li>
-
-    </ol>
-
-    <div class="container-fluid">
-        <router-outlet></router-outlet>
-    </div>
-    <!-- /.conainer-fluid -->
-</main>
-
-<aside class="aside-menu">
-    <tabset>
-        <tab>
-            <template tabHeading><i class="icon-list"></i>
-            </template>
-            <div class="callout m-a-0 p-y-h text-muted text-xs-center bg-faded text-uppercase">
-                <small><b>Today</b>
-                </small>
-            </div>
-            <hr class="transparent m-x-1 m-y-0">
-            <div class="callout callout-warning m-a-0 p-y-1">
-                <div class="avatar pull-xs-right">
-                    <img src="img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                </div>
-                <div>Meeting with
-                    <strong>Lucas</strong>
-                </div>
-                <small class="text-muted m-r-1"><i class="icon-calendar"></i>&nbsp; 1 - 3pm</small>
-                <small class="text-muted"><i class="icon-location-pin"></i>&nbsp; Palo Alto, CA</small>
-            </div>
-            <hr class="m-x-1 m-y-0">
-            <div class="callout callout-info m-a-0 p-y-1">
-                <div class="avatar pull-xs-right">
-                    <img src="img/avatars/4.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                </div>
-                <div>Skype with
-                    <strong>Megan</strong>
-                </div>
-                <small class="text-muted m-r-1"><i class="icon-calendar"></i>&nbsp; 4 - 5pm</small>
-                <small class="text-muted"><i class="icon-social-skype"></i>&nbsp; On-line</small>
-            </div>
-            <hr class="transparent m-x-1 m-y-0">
-            <div class="callout m-a-0 p-y-h text-muted text-xs-center bg-faded text-uppercase">
-                <small><b>Tomorrow</b>
-                </small>
-            </div>
-            <hr class="transparent m-x-1 m-y-0">
-            <div class="callout callout-danger m-a-0 p-y-1">
-                <div>New UI Project -
-                    <strong>deadline</strong>
-                </div>
-                <small class="text-muted m-r-1"><i class="icon-calendar"></i>&nbsp; 10 - 11pm</small>
-                <small class="text-muted"><i class="icon-home"></i>&nbsp; creativeLabs HQ</small>
-                <div class="avatars-stack m-t-h">
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/2.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/3.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/4.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/5.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/6.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                </div>
-            </div>
-            <hr class="m-x-1 m-y-0">
-            <div class="callout callout-success m-a-0 p-y-1">
-                <div>
-                    <strong>#10 Startups.Garden</strong>Meetup</div>
-                <small class="text-muted m-r-1"><i class="icon-calendar"></i>&nbsp; 1 - 3pm</small>
-                <small class="text-muted"><i class="icon-location-pin"></i>&nbsp; Palo Alto, CA</small>
-            </div>
-            <hr class="m-x-1 m-y-0">
-            <div class="callout callout-primary m-a-0 p-y-1">
-                <div>
-                    <strong>Team meeting</strong>
-                </div>
-                <small class="text-muted m-r-1"><i class="icon-calendar"></i>&nbsp; 4 - 6pm</small>
-                <small class="text-muted"><i class="icon-home"></i>&nbsp; creativeLabs HQ</small>
-                <div class="avatars-stack m-t-h">
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/2.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/3.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/4.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/5.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/6.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                    <div class="avatar avatar-xs">
-                        <img src="img/avatars/8.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                    </div>
-                </div>
-            </div>
-            <hr class="m-x-1 m-y-0">
-        </tab>
-        <tab>
-            <template tabHeading><i class="icon-speech"></i>
-            </template>
-            <div class="p-a-1">
-                <div class="message">
-                    <div class="p-y-1 p-b-3 m-r-1 pull-left">
-                        <div class="avatar">
-                            <img src="img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                            <span class="avatar-status tag-success"></span>
-                        </div>
-                    </div>
-                    <div>
-                        <small class="text-muted">Lukasz Holeczek</small>
-                        <small class="text-muted pull-right m-t-q">1:52 PM</small>
-                    </div>
-                    <div class="text-truncate font-weight-bold">Lorem ipsum dolor sit amet</div>
-                    <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt...</small>
-                </div>
-                <hr>
-                <div class="message">
-                    <div class="p-y-1 p-b-3 m-r-1 pull-left">
-                        <div class="avatar">
-                            <img src="img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                            <span class="avatar-status tag-success"></span>
-                        </div>
-                    </div>
-                    <div>
-                        <small class="text-muted">Lukasz Holeczek</small>
-                        <small class="text-muted pull-right m-t-q">1:52 PM</small>
-                    </div>
-                    <div class="text-truncate font-weight-bold">Lorem ipsum dolor sit amet</div>
-                    <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt...</small>
-                </div>
-                <hr>
-                <div class="message">
-                    <div class="p-y-1 p-b-3 m-r-1 pull-left">
-                        <div class="avatar">
-                            <img src="img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                            <span class="avatar-status tag-success"></span>
-                        </div>
-                    </div>
-                    <div>
-                        <small class="text-muted">Lukasz Holeczek</small>
-                        <small class="text-muted pull-right m-t-q">1:52 PM</small>
-                    </div>
-                    <div class="text-truncate font-weight-bold">Lorem ipsum dolor sit amet</div>
-                    <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt...</small>
-                </div>
-                <hr>
-                <div class="message">
-                    <div class="p-y-1 p-b-3 m-r-1 pull-left">
-                        <div class="avatar">
-                            <img src="img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                            <span class="avatar-status tag-success"></span>
-                        </div>
-                    </div>
-                    <div>
-                        <small class="text-muted">Lukasz Holeczek</small>
-                        <small class="text-muted pull-right m-t-q">1:52 PM</small>
-                    </div>
-                    <div class="text-truncate font-weight-bold">Lorem ipsum dolor sit amet</div>
-                    <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt...</small>
-                </div>
-                <hr>
-                <div class="message">
-                    <div class="p-y-1 p-b-3 m-r-1 pull-left">
-                        <div class="avatar">
-                            <img src="img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">
-                            <span class="avatar-status tag-success"></span>
-                        </div>
-                    </div>
-                    <div>
-                        <small class="text-muted">Lukasz Holeczek</small>
-                        <small class="text-muted pull-right m-t-q">1:52 PM</small>
-                    </div>
-                    <div class="text-truncate font-weight-bold">Lorem ipsum dolor sit amet</div>
-                    <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt...</small>
-                </div>
-            </div>
-        </tab>
-        <tab>
-            <template tabHeading><i class="icon-settings"></i>
-            </template>
-            <div class="p-a-1">
-                <h6>Settings</h6>
-
-                <div class="aside-options">
-                    <div class="clearfix m-t-2">
-                        <small><b>Option 1</b>
-                        </small>
-                        <label class="switch switch-text switch-pill switch-success switch-sm pull-right">
-                            <input type="checkbox" class="switch-input" checked>
-                            <span class="switch-label" data-on="On" data-off="Off"></span>
-                            <span class="switch-handle"></span>
-                        </label>
-                    </div>
-                    <div>
-                        <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</small>
-                    </div>
-                </div>
-
-                <div class="aside-options">
-                    <div class="clearfix m-t-1">
-                        <small><b>Option 2</b>
-                        </small>
-                        <label class="switch switch-text switch-pill switch-success switch-sm pull-right">
-                            <input type="checkbox" class="switch-input">
-                            <span class="switch-label" data-on="On" data-off="Off"></span>
-                            <span class="switch-handle"></span>
-                        </label>
-                    </div>
-                    <div>
-                        <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</small>
-                    </div>
-                </div>
-
-                <div class="aside-options">
-                    <div class="clearfix m-t-1">
-                        <small><b>Option 3</b>
-                        </small>
-                        <label class="switch switch-text switch-pill switch-success switch-sm pull-right">
-                            <input type="checkbox" class="switch-input">
-                            <span class="switch-label" data-on="On" data-off="Off"></span>
-                            <span class="switch-handle"></span>
-                        </label>
-                    </div>
-                </div>
-
-                <div class="aside-options">
-                    <div class="clearfix m-t-1">
-                        <small><b>Option 4</b>
-                        </small>
-                        <label class="switch switch-text switch-pill switch-success switch-sm pull-right">
-                            <input type="checkbox" class="switch-input" checked>
-                            <span class="switch-label" data-on="On" data-off="Off"></span>
-                            <span class="switch-handle"></span>
-                        </label>
-                    </div>
-                </div>
-
-                <hr>
-                <h6>System Utilization</h6>
-
-                <div class="text-uppercase m-b-q m-t-2">
-                    <small><b>CPU Usage</b>
-                    </small>
-                </div>
-                <progress class="progress progress-xs progress-info m-a-0" value="25" max="100">25%</progress>
-                <small class="text-muted">348 Processes. 1/4 Cores.</small>
-
-                <div class="text-uppercase m-b-q m-t-h">
-                    <small><b>Memory Usage</b>
-                    </small>
-                </div>
-                <progress class="progress progress-xs progress-warning m-a-0" value="70" max="100">70%</progress>
-                <small class="text-muted">11444GB/16384MB</small>
-
-                <div class="text-uppercase m-b-q m-t-h">
-                    <small><b>SSD 1 Usage</b>
-                    </small>
-                </div>
-                <progress class="progress progress-xs progress-danger m-a-0" value="95" max="100">95%</progress>
-                <small class="text-muted">243GB/256GB</small>
-
-                <div class="text-uppercase m-b-q m-t-h">
-                    <small><b>SSD 2 Usage</b>
-                    </small>
-                </div>
-                <progress class="progress progress-xs progress-success m-a-0" value="10" max="100">10%</progress>
-                <small class="text-muted">25GB/256GB</small>
-            </div>
-        </tab>
-    </tabset>
-</aside>
-
-<footer class="footer">
-    <span class="text-left">
-        <a href="http://coreui.io">CoreUI</a> &copy; 2016 creativeLabs.
-    </span>
-    <span class="pull-right">
-        Powered by <a href="http://coreui.io">CoreUI</a>
-    </span>
-</footer>
diff --git a/demo/Angular2_Demo/app/layouts/full-layout.component.js b/demo/Angular2_Demo/app/layouts/full-layout.component.js
deleted file mode 100644
index 324e9deb0a745d2c2988afae04e1879bc9ba784f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/layouts/full-layout.component.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var router_1 = require('@angular/router');
-var ng2_bootstrap_1 = require('ng2-bootstrap/ng2-bootstrap');
-var nav_dropdown_directive_1 = require('./../shared/nav-dropdown.directive');
-var sidebar_directive_1 = require('./../shared/sidebar.directive');
-var aside_directive_1 = require('./../shared/aside.directive');
-var breadcrumb_component_1 = require('./../shared/breadcrumb.component');
-var FullLayoutComponent = (function () {
-    function FullLayoutComponent(router) {
-        this.router = router;
-        this.disabled = false;
-        this.status = { isopen: false };
-    }
-    FullLayoutComponent.prototype.toggled = function (open) {
-        console.log('Dropdown is now: ', open);
-    };
-    FullLayoutComponent.prototype.toggleDropdown = function ($event) {
-        $event.preventDefault();
-        $event.stopPropagation();
-        this.status.isopen = !this.status.isopen;
-    };
-    FullLayoutComponent.prototype.ngOnInit = function () { };
-    FullLayoutComponent = __decorate([
-        core_1.Component({
-            selector: 'app-dashboard',
-            templateUrl: 'app/layouts/full-layout.component.html',
-            directives: [nav_dropdown_directive_1.NAV_DROPDOWN_DIRECTIVES, ng2_bootstrap_1.TAB_DIRECTIVES, sidebar_directive_1.SIDEBAR_TOGGLE_DIRECTIVES, aside_directive_1.AsideToggleDirective, breadcrumb_component_1.BreadcrumbsComponent],
-            providers: [ng2_bootstrap_1.TabsetComponent]
-        }), 
-        __metadata('design:paramtypes', [router_1.Router])
-    ], FullLayoutComponent);
-    return FullLayoutComponent;
-}());
-exports.FullLayoutComponent = FullLayoutComponent;
-//# sourceMappingURL=full-layout.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/layouts/full-layout.component.js.map b/demo/Angular2_Demo/app/layouts/full-layout.component.js.map
deleted file mode 100644
index c5a7c9d7e7e06fac575e82a33768f6a2f4148221..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/layouts/full-layout.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"full-layout.component.js","sourceRoot":"","sources":["full-layout.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAA6C,eAAe,CAAC,CAAA;AAC7D,uBAA6C,iBAAiB,CAAC,CAAA;AAC/D,8BAE6C,6BAA6B,CAAC,CAAA;AAC3E,uCAA6C,oCAAoC,CAAC,CAAA;AAClF,kCAA6C,+BAA+B,CAAC,CAAA;AAC7E,gCAA6C,6BAA6B,CAAC,CAAA;AAC3E,qCAA6C,kCAAkC,CAAC,CAAA;AAShF;IAEI,6BAAqB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAE5B,aAAQ,GAAW,KAAK,CAAC;QACzB,WAAM,GAAoB,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC;IAHT,CAAC;IAKlC,qCAAO,GAAd,UAAe,IAAY;QACvB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEM,4CAAc,GAArB,UAAsB,MAAiB;QACnC,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,CAAC,eAAe,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,sCAAQ,GAAR,cAAkB,CAAC;IAvBvB;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,wCAAwC;YACrD,UAAU,EAAE,CAAE,gDAAuB,EAAE,8BAAc,EAAE,6CAAyB,EAAE,sCAAoB,EAAE,2CAAoB,CAAE;YAC9H,SAAS,EAAE,CAAE,+BAAe,CAAE;SACjC,CAAC;;2BAAA;IAmBF,0BAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,2BAAmB,sBAkB/B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/layouts/full-layout.component.ts b/demo/Angular2_Demo/app/layouts/full-layout.component.ts
deleted file mode 100644
index a78e19ef74ad4f6456925e0a6e62fc9d238ae470..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/layouts/full-layout.component.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { Component, OnInit }            from '@angular/core';
-import { Router }                       from '@angular/router';
-import { DROPDOWN_DIRECTIVES,
-         TAB_DIRECTIVES,
-         TabsetComponent }              from 'ng2-bootstrap/ng2-bootstrap';
-import { NAV_DROPDOWN_DIRECTIVES }      from './../shared/nav-dropdown.directive';
-import { SIDEBAR_TOGGLE_DIRECTIVES }    from './../shared/sidebar.directive';
-import { AsideToggleDirective }         from './../shared/aside.directive';
-import { BreadcrumbsComponent }         from './../shared/breadcrumb.component';
-
-
-@Component({
-    selector: 'app-dashboard',
-    templateUrl: 'app/layouts/full-layout.component.html',
-    directives: [ NAV_DROPDOWN_DIRECTIVES, TAB_DIRECTIVES, SIDEBAR_TOGGLE_DIRECTIVES, AsideToggleDirective, BreadcrumbsComponent ],
-    providers: [ TabsetComponent ]
-})
-export class FullLayoutComponent implements OnInit {
-
-    constructor( private router: Router ) { }
-
-    public disabled:boolean = false;
-    public status:{isopen:boolean} = {isopen: false};
-
-    public toggled(open:boolean):void {
-        console.log('Dropdown is now: ', open);
-    }
-
-    public toggleDropdown($event:MouseEvent):void {
-        $event.preventDefault();
-        $event.stopPropagation();
-        this.status.isopen = !this.status.isopen;
-    }
-
-    ngOnInit(): void {}
-}
diff --git a/demo/Angular2_Demo/app/layouts/simple-layout.component.html b/demo/Angular2_Demo/app/layouts/simple-layout.component.html
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/demo/Angular2_Demo/app/layouts/simple-layout.component.js b/demo/Angular2_Demo/app/layouts/simple-layout.component.js
deleted file mode 100644
index 4cf8c2d6a92b8526990abd18a7254303a3df5020..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/layouts/simple-layout.component.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var router_1 = require('@angular/router');
-var SimpleLayoutComponent = (function () {
-    function SimpleLayoutComponent(router) {
-        this.router = router;
-    }
-    SimpleLayoutComponent.prototype.ngOnInit = function () { };
-    SimpleLayoutComponent = __decorate([
-        core_1.Component({
-            selector: 'app-dashboard',
-            template: '<router-outlet></router-outlet>',
-        }), 
-        __metadata('design:paramtypes', [router_1.Router])
-    ], SimpleLayoutComponent);
-    return SimpleLayoutComponent;
-}());
-exports.SimpleLayoutComponent = SimpleLayoutComponent;
-//# sourceMappingURL=simple-layout.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/layouts/simple-layout.component.js.map b/demo/Angular2_Demo/app/layouts/simple-layout.component.js.map
deleted file mode 100644
index b3f83a5d9150215dc4cf2ee7e3540769b2cc191f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/layouts/simple-layout.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"simple-layout.component.js","sourceRoot":"","sources":["simple-layout.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAyC,eAAe,CAAC,CAAA;AACzD,uBAAyC,iBAAiB,CAAC,CAAA;AAM3D;IAEI,+BAAqB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAK,CAAC;IAEzC,wCAAQ,GAAR,cAAmB,CAAC;IARxB;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,eAAe;YACzB,QAAQ,EAAE,iCAAiC;SAC9C,CAAC;;6BAAA;IAMF,4BAAC;AAAD,CAAC,AALD,IAKC;AALY,6BAAqB,wBAKjC,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/layouts/simple-layout.component.ts b/demo/Angular2_Demo/app/layouts/simple-layout.component.ts
deleted file mode 100644
index 9261ced9a5f033d5eefc4c97c03f22a9de919081..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/layouts/simple-layout.component.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Component, OnInit }        from '@angular/core';
-import { Router }                   from '@angular/router';
-
-@Component({
-    selector: 'app-dashboard',
-    template: '<router-outlet></router-outlet>',
-})
-export class SimpleLayoutComponent implements OnInit {
-
-    constructor( private router: Router ) { }
-
-    ngOnInit(): void { }
-}
diff --git a/demo/Angular2_Demo/app/main.js b/demo/Angular2_Demo/app/main.js
deleted file mode 100644
index 06ef8e879d4e1fff8fad9e16955710356b015066..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/main.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-var platform_browser_dynamic_1 = require('@angular/platform-browser-dynamic');
-var app_module_1 = require('./app.module');
-platform_browser_dynamic_1.platformBrowserDynamic().bootstrapModule(app_module_1.AppModule);
-//# sourceMappingURL=main.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/main.js.map b/demo/Angular2_Demo/app/main.js.map
deleted file mode 100644
index a9afe9f752da67bbcc4bf28a2e23bf3d1512fc62..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/main.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"main.js","sourceRoot":"","sources":["main.ts"],"names":[],"mappings":";AAAA,yCAAuC,mCAAmC,CAAC,CAAA;AAE3E,2BAA0B,cAAc,CAAC,CAAA;AAEzC,iDAAsB,EAAE,CAAC,eAAe,CAAC,sBAAS,CAAC,CAAC"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/main.ts b/demo/Angular2_Demo/app/main.ts
deleted file mode 100644
index 6af7a5b2ae880b3c3c310714154509dfe721d07d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/main.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
-
-import { AppModule } from './app.module';
-
-platformBrowserDynamic().bootstrapModule(AppModule);
diff --git a/demo/Angular2_Demo/app/pages/404.component.html b/demo/Angular2_Demo/app/pages/404.component.html
deleted file mode 100644
index 4309433e37bb024e871e233c4f750270ccfaf0c7..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/404.component.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<div class="container">
-    <div class="row">
-        <div vamiddle class="col-md-5 m-x-auto pull-xs-none">
-            <div class="clearfix">
-                <h1 class="pull-left display-3 m-r-2">404</h1>
-                <h4 class="p-t-1">Oops! You're lost.</h4>
-                <p class="text-muted">The page you are looking for was not found.</p>
-            </div>
-            <div class="input-prepend input-group">
-                <span class="input-group-addon"><i class="fa fa-search"></i>
-                </span>
-                <input id="prependedInput" class="form-control" size="16" type="text" placeholder="What are you looking for?">
-                <span class="input-group-btn">
-                    <button class="btn btn-info" type="button">Search</button>
-                </span>
-            </div>
-        </div>
-    </div>
-</div>
diff --git a/demo/Angular2_Demo/app/pages/404.component.js b/demo/Angular2_Demo/app/pages/404.component.js
deleted file mode 100644
index 487f984b53ebb9fb8e0676918363474f117c9cf6..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/404.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var p404Component = (function () {
-    function p404Component() {
-    }
-    p404Component = __decorate([
-        core_1.Component({
-            templateUrl: 'app/pages/404.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], p404Component);
-    return p404Component;
-}());
-exports.p404Component = p404Component;
-//# sourceMappingURL=404.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/pages/404.component.js.map b/demo/Angular2_Demo/app/pages/404.component.js.map
deleted file mode 100644
index 766debf683a4d5ce31017214da46d8b2b99c8e2d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/404.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"404.component.js","sourceRoot":"","sources":["404.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,8BAA8B;SAC9C,CAAC;;qBAAA;IAKF,oBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,qBAAa,gBAIzB,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/pages/404.component.ts b/demo/Angular2_Demo/app/pages/404.component.ts
deleted file mode 100644
index e077991b1c51fafdf3f1d575d682361b6099614f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/404.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/pages/404.component.html'
-})
-export class p404Component {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/pages/500.component.html b/demo/Angular2_Demo/app/pages/500.component.html
deleted file mode 100644
index f2841cd055288ae13889661e8c4715c9fb72d5e5..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/500.component.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<div class="container">
-    <div class="row">
-        <div vamiddle class="col-md-6 m-x-auto pull-xs-none">
-            <div class="clearfix">
-                <h1 class="pull-left display-3 m-r-2">500</h1>
-                <h4 class="p-t-1">Houston, we have a problem!</h4>
-                <p class="text-muted">The page you are looking for is temporarily unavailable.</p>
-            </div>
-            <div class="input-prepend input-group">
-                <span class="input-group-addon"><i class="fa fa-search"></i>
-                </span>
-                <input id="prependedInput" class="form-control" size="16" type="text" placeholder="What are you looking for?">
-                <span class="input-group-btn">
-                    <button class="btn btn-info" type="button">Search</button>
-                </span>
-            </div>
-        </div>
-    </div>
-</div>
diff --git a/demo/Angular2_Demo/app/pages/500.component.js b/demo/Angular2_Demo/app/pages/500.component.js
deleted file mode 100644
index b400a370cfc2616d6f06c365e342eb71870cc9b4..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/500.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var p500Component = (function () {
-    function p500Component() {
-    }
-    p500Component = __decorate([
-        core_1.Component({
-            templateUrl: 'app/pages/500.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], p500Component);
-    return p500Component;
-}());
-exports.p500Component = p500Component;
-//# sourceMappingURL=500.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/pages/500.component.js.map b/demo/Angular2_Demo/app/pages/500.component.js.map
deleted file mode 100644
index 00095639602bfd43694ac2e13e755da854c66802..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/500.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"500.component.js","sourceRoot":"","sources":["500.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,8BAA8B;SAC9C,CAAC;;qBAAA;IAKF,oBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,qBAAa,gBAIzB,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/pages/500.component.ts b/demo/Angular2_Demo/app/pages/500.component.ts
deleted file mode 100644
index ed741b0f9ea342fa4d1763236e8bfb6a3b9734e4..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/500.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/pages/500.component.html'
-})
-export class p500Component {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/pages/login.component.html b/demo/Angular2_Demo/app/pages/login.component.html
deleted file mode 100644
index 834868fec8cb461e196ce9afe2d926473a3dc9c7..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/login.component.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<div class="container">
-    <div class="row">
-        <div vamiddle class="col-md-8 m-x-auto pull-xs-none">
-            <div class="card-group">
-                <div class="card p-a-2">
-                    <div class="card-block">
-                        <h1>Login</h1>
-                        <p class="text-muted">Sign In to your account</p>
-                        <div class="input-group m-b-1">
-                            <span class="input-group-addon"><i class="icon-user"></i>
-                            </span>
-                            <input type="text" class="form-control" placeholder="Username">
-                        </div>
-                        <div class="input-group m-b-2">
-                            <span class="input-group-addon"><i class="icon-lock"></i>
-                            </span>
-                            <input type="password" class="form-control" placeholder="Password">
-                        </div>
-                        <div class="row">
-                            <div class="col-xs-6">
-                                <button type="button" class="btn btn-primary p-x-2">Login</button>
-                            </div>
-                            <div class="col-xs-6 text-xs-right">
-                                <button type="button" class="btn btn-link p-x-0">Forgot password?</button>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                <div class="card card-inverse card-primary p-y-3" style="width:44%">
-                    <div class="card-block text-xs-center">
-                        <div>
-                            <h2>Sign up</h2>
-                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
-                            <button type="button" class="btn btn-primary active m-t-1">Register Now!</button>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
diff --git a/demo/Angular2_Demo/app/pages/login.component.js b/demo/Angular2_Demo/app/pages/login.component.js
deleted file mode 100644
index f1e0efb14745d7edb30ac4f0e4130ff7229f1b7e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/login.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var LoginComponent = (function () {
-    function LoginComponent() {
-    }
-    LoginComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/pages/login.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], LoginComponent);
-    return LoginComponent;
-}());
-exports.LoginComponent = LoginComponent;
-//# sourceMappingURL=login.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/pages/login.component.js.map b/demo/Angular2_Demo/app/pages/login.component.js.map
deleted file mode 100644
index 5b1eea792516327afe19f361e3a436326b1103dc..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/login.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"login.component.js","sourceRoot":"","sources":["login.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,gCAAgC;SAChD,CAAC;;sBAAA;IAKF,qBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,sBAAc,iBAI1B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/pages/login.component.ts b/demo/Angular2_Demo/app/pages/login.component.ts
deleted file mode 100644
index 6e3154d8367c13101d8e9f9bd14402a14dafab9a..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/login.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/pages/login.component.html'
-})
-export class LoginComponent {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/pages/register.component.html b/demo/Angular2_Demo/app/pages/register.component.html
deleted file mode 100644
index 0c5fea9bfed48bb8ee78767d27582bf34dca0df1..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/register.component.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<div class="container">
-    <div class="row">
-        <div vamiddle class="col-md-5 m-x-auto pull-xs-none">
-            <div class="card">
-                <div class="card-block p-a-2">
-                    <h1>Register</h1>
-                    <p class="text-muted">Create your account</p>
-                    <div class="input-group m-b-1">
-                        <span class="input-group-addon"><i class="icon-user"></i>
-                        </span>
-                        <input type="text" class="form-control" placeholder="Username">
-                    </div>
-                    <div class="input-group m-b-1">
-                        <span class="input-group-addon">@</span>
-                        <input type="text" class="form-control" placeholder="Email">
-                    </div>
-                    <div class="input-group m-b-1">
-                        <span class="input-group-addon"><i class="icon-lock"></i>
-                        </span>
-                        <input type="password" class="form-control" placeholder="Password">
-                    </div>
-                    <div class="input-group m-b-2">
-                        <span class="input-group-addon"><i class="icon-lock"></i>
-                        </span>
-                        <input type="password" class="form-control" placeholder="Repeat password">
-                    </div>
-                    <button type="button" class="btn btn-block btn-success">Create Account</button>
-                </div>
-                <div class="card-footer p-a-2">
-                    <div class="row">
-                        <div class="col-xs-6">
-                            <button class="btn btn-block btn-facebook" type="button">
-                                <span>facebook</span>
-                            </button>
-                        </div>
-                        <div class="col-xs-6">
-                            <button class="btn btn-block btn-twitter" type="button">
-                                <span>twitter</span>
-                            </button>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
diff --git a/demo/Angular2_Demo/app/pages/register.component.js b/demo/Angular2_Demo/app/pages/register.component.js
deleted file mode 100644
index 362e30157cb5ed00e7299b9f5bcae6352e0b56a9..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/register.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var RegisterComponent = (function () {
-    function RegisterComponent() {
-    }
-    RegisterComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/pages/register.component.html'
-        }), 
-        __metadata('design:paramtypes', [])
-    ], RegisterComponent);
-    return RegisterComponent;
-}());
-exports.RegisterComponent = RegisterComponent;
-//# sourceMappingURL=register.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/pages/register.component.js.map b/demo/Angular2_Demo/app/pages/register.component.js.map
deleted file mode 100644
index e61d606ca203303c1999077b0712cd9780f45549..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/register.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"register.component.js","sourceRoot":"","sources":["register.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AAKjD;IAEI;IAAgB,CAAC;IALrB;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,mCAAmC;SACnD,CAAC;;yBAAA;IAKF,wBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,yBAAiB,oBAI7B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/pages/register.component.ts b/demo/Angular2_Demo/app/pages/register.component.ts
deleted file mode 100644
index 68fd57e3036b04906930b9aac5456db58b6a171b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/pages/register.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component }        from '@angular/core';
-
-@Component({
-    templateUrl: 'app/pages/register.component.html'
-})
-export class RegisterComponent {
-
-    constructor() { }
-
-}
diff --git a/demo/Angular2_Demo/app/shared/aside.directive.js b/demo/Angular2_Demo/app/shared/aside.directive.js
deleted file mode 100644
index f5d2cb77b2bace1ac8effa02fb32bca273fdc99f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/aside.directive.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-/**
-* Allows the aside to be toggled via click.
-*/
-var AsideToggleDirective = (function () {
-    function AsideToggleDirective() {
-    }
-    AsideToggleDirective.prototype.toggleOpen = function ($event) {
-        $event.preventDefault();
-        document.querySelector('body').classList.toggle('aside-menu-open');
-    };
-    __decorate([
-        core_1.HostListener('click', ['$event']), 
-        __metadata('design:type', Function), 
-        __metadata('design:paramtypes', [Object]), 
-        __metadata('design:returntype', void 0)
-    ], AsideToggleDirective.prototype, "toggleOpen", null);
-    AsideToggleDirective = __decorate([
-        core_1.Directive({
-            selector: '.aside-toggle',
-        }), 
-        __metadata('design:paramtypes', [])
-    ], AsideToggleDirective);
-    return AsideToggleDirective;
-}());
-exports.AsideToggleDirective = AsideToggleDirective;
-//# sourceMappingURL=aside.directive.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/shared/aside.directive.js.map b/demo/Angular2_Demo/app/shared/aside.directive.js.map
deleted file mode 100644
index b1d85cca20f9d92f54d965652b8bbeedb6d0f90c..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/aside.directive.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"aside.directive.js","sourceRoot":"","sources":["aside.directive.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAwC,eAAe,CAAC,CAAA;AAExD;;EAEE;AAIF;IACI;IAAgB,CAAC;IAGjB,yCAAU,GAAV,UAAW,MAAU;QACjB,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACvE,CAAC;IAJD;QAAC,mBAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;;;;0DAAA;IANtC;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,eAAe;SAC5B,CAAC;;4BAAA;IASF,2BAAC;AAAD,CAAC,AARD,IAQC;AARY,4BAAoB,uBAQhC,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/shared/aside.directive.ts b/demo/Angular2_Demo/app/shared/aside.directive.ts
deleted file mode 100644
index ab3d3e3ad8fbb69997fd536eeabfe3f2cdc9f0e7..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/aside.directive.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Directive, HostListener } from '@angular/core';
-
-/**
-* Allows the aside to be toggled via click.
-*/
-@Directive({
-    selector: '.aside-toggle',
-})
-export class AsideToggleDirective {
-    constructor() { }
-
-    @HostListener('click', ['$event'])
-    toggleOpen($event:any) {
-        $event.preventDefault();
-        document.querySelector('body').classList.toggle('aside-menu-open');
-    }
-}
diff --git a/demo/Angular2_Demo/app/shared/breadcrumb.component.js b/demo/Angular2_Demo/app/shared/breadcrumb.component.js
deleted file mode 100644
index bbd1a9e55ac2381d1ddf36663c4cfa85f8798714..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/breadcrumb.component.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var router_1 = require('@angular/router');
-require('rxjs/add/operator/filter');
-var BreadcrumbsComponent = (function () {
-    function BreadcrumbsComponent(router, route) {
-        this.router = router;
-        this.route = route;
-    }
-    BreadcrumbsComponent.prototype.ngOnInit = function () {
-        var _this = this;
-        this.router.events.filter(function (event) { return event instanceof router_1.NavigationEnd; }).subscribe(function (event) {
-            _this.breadcrumbs = [];
-            var currentRoute = _this.route.root, url = '';
-            do {
-                var childrenRoutes = currentRoute.children;
-                currentRoute = null;
-                childrenRoutes.forEach(function (route) {
-                    if (route.outlet === 'primary') {
-                        var routeSnapshot = route.snapshot;
-                        url += '/' + routeSnapshot.url.map(function (segment) { return segment.path; }).join('/');
-                        _this.breadcrumbs.push({
-                            label: route.snapshot.data,
-                            url: url });
-                        currentRoute = route;
-                    }
-                });
-            } while (currentRoute);
-        });
-    };
-    BreadcrumbsComponent = __decorate([
-        core_1.Component({
-            selector: 'breadcrumbs',
-            template: "\n    <li class=\"breadcrumb-item\" *ngFor=\"let breadcrumb of breadcrumbs; let last = last\" [ngClass]=\"{active: last}\">\n    <a *ngIf=\"!last\" [routerLink]=\"breadcrumb.url\">{{breadcrumb.label.title}}</a>\n    <span *ngIf=\"last\" [routerLink]=\"breadcrumb.url\">{{breadcrumb.label.title}}</span>\n    </li>"
-        }), 
-        __metadata('design:paramtypes', [router_1.Router, router_1.ActivatedRoute])
-    ], BreadcrumbsComponent);
-    return BreadcrumbsComponent;
-}());
-exports.BreadcrumbsComponent = BreadcrumbsComponent;
-//# sourceMappingURL=breadcrumb.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/shared/breadcrumb.component.js.map b/demo/Angular2_Demo/app/shared/breadcrumb.component.js.map
deleted file mode 100644
index cdc702bb444e15e38d0797a72257a9cd561f725c..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/breadcrumb.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"breadcrumb.component.js","sourceRoot":"","sources":["breadcrumb.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAyD,eAAe,CAAC,CAAA;AACzE,uBAAyD,iBAAiB,CAAC,CAAA;AAC3E,QAAO,0BAA0B,CAAC,CAAA;AAUlC;IAEI,8BAAoB,MAAa,EAAU,KAAoB;QAA3C,WAAM,GAAN,MAAM,CAAO;QAAU,UAAK,GAAL,KAAK,CAAe;IAAG,CAAC;IACnE,uCAAQ,GAAR;QAAA,iBAqBK;QApBD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,YAAY,sBAAa,EAA9B,CAA8B,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK;YAC9E,KAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,YAAY,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,EAClC,GAAG,GAAG,EAAE,CAAC;YACT,GAAG,CAAC;gBACA,IAAI,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC;gBAC3C,YAAY,GAAG,IAAI,CAAC;gBACpB,cAAc,CAAC,OAAO,CAAC,UAAA,KAAK;oBACxB,EAAE,CAAA,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;wBAC5B,IAAI,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC;wBACnC,GAAG,IAAI,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,IAAI,EAAZ,CAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACtE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC;4BAClB,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;4BAC1B,GAAG,EAAI,GAAG,EAAE,CAAC,CAAC;wBACd,YAAY,GAAG,KAAK,CAAC;oBACzB,CAAC;gBAEL,CAAC,CAAC,CAAA;YACN,CAAC,QAAO,YAAY,EAAE;QAC1B,CAAC,CAAC,CAAA;IACN,CAAC;IAhCT;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,2TAIJ;SACT,CAAC;;4BAAA;IA0BE,2BAAC;AAAD,CAAC,AAzBL,IAyBK;AAzBQ,4BAAoB,uBAyB5B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/shared/breadcrumb.component.ts b/demo/Angular2_Demo/app/shared/breadcrumb.component.ts
deleted file mode 100644
index 085024e772ebc3fd72abfe4d683e7e63aa3b1ba9..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/breadcrumb.component.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Component }                                from '@angular/core';
-import { Router, ActivatedRoute, NavigationEnd }    from '@angular/router';
-import 'rxjs/add/operator/filter';
-
-@Component({
-    selector: 'breadcrumbs',
-    template: `
-    <li class="breadcrumb-item" *ngFor="let breadcrumb of breadcrumbs; let last = last" [ngClass]="{active: last}">
-    <a *ngIf="!last" [routerLink]="breadcrumb.url">{{breadcrumb.label.title}}</a>
-    <span *ngIf="last" [routerLink]="breadcrumb.url">{{breadcrumb.label.title}}</span>
-    </li>`
-})
-export class BreadcrumbsComponent {
-    breadcrumbs: Array<Object>;
-    constructor(private router:Router, private route:ActivatedRoute) {}
-    ngOnInit(): void {
-        this.router.events.filter(event => event instanceof NavigationEnd).subscribe(event => {
-            this.breadcrumbs = [];
-            let currentRoute = this.route.root,
-            url = '';
-            do {
-                let childrenRoutes = currentRoute.children;
-                currentRoute = null;
-                childrenRoutes.forEach(route => {
-                    if(route.outlet === 'primary') {
-                        let routeSnapshot = route.snapshot;
-                        url += '/' + routeSnapshot.url.map(segment => segment.path).join('/');
-                        this.breadcrumbs.push({
-                            label: route.snapshot.data,
-                            url:   url });
-                            currentRoute = route;
-                        }
-
-                    })
-                } while(currentRoute);
-            })
-        }
-    }
diff --git a/demo/Angular2_Demo/app/shared/nav-dropdown.directive.js b/demo/Angular2_Demo/app/shared/nav-dropdown.directive.js
deleted file mode 100644
index 9e61a4e7a57b50dcaeac1666859acba4f0097e77..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/nav-dropdown.directive.js
+++ /dev/null
@@ -1,83 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var NavDropdownDirective = (function () {
-    function NavDropdownDirective() {
-        this._open = false;
-    }
-    /**
-    * Checks if the dropdown menu is open or not.
-    */
-    NavDropdownDirective.prototype.isOpen = function () { return this._open; };
-    /**
-    * Opens the dropdown menu.
-    */
-    NavDropdownDirective.prototype.open = function () {
-        this._open = true;
-    };
-    /**
-    * Closes the dropdown menu .
-    */
-    NavDropdownDirective.prototype.close = function () {
-        this._open = false;
-    };
-    /**
-    * Toggles the dropdown menu.
-    */
-    NavDropdownDirective.prototype.toggle = function () {
-        if (this.isOpen()) {
-            this.close();
-        }
-        else {
-            this.open();
-        }
-    };
-    NavDropdownDirective = __decorate([
-        core_1.Directive({
-            selector: '.nav-dropdown',
-            host: {
-                '[class.open]': '_open',
-            }
-        }), 
-        __metadata('design:paramtypes', [])
-    ], NavDropdownDirective);
-    return NavDropdownDirective;
-}());
-exports.NavDropdownDirective = NavDropdownDirective;
-/**
-* Allows the dropdown to be toggled via click.
-*/
-var NavDropdownToggleDirective = (function () {
-    function NavDropdownToggleDirective(dropdown) {
-        this.dropdown = dropdown;
-    }
-    NavDropdownToggleDirective.prototype.toggleOpen = function ($event) {
-        $event.preventDefault();
-        this.dropdown.toggle();
-    };
-    __decorate([
-        core_1.HostListener('click', ['$event']), 
-        __metadata('design:type', Function), 
-        __metadata('design:paramtypes', [Object]), 
-        __metadata('design:returntype', void 0)
-    ], NavDropdownToggleDirective.prototype, "toggleOpen", null);
-    NavDropdownToggleDirective = __decorate([
-        core_1.Directive({
-            selector: '.nav-dropdown-toggle',
-        }), 
-        __metadata('design:paramtypes', [NavDropdownDirective])
-    ], NavDropdownToggleDirective);
-    return NavDropdownToggleDirective;
-}());
-exports.NavDropdownToggleDirective = NavDropdownToggleDirective;
-exports.NAV_DROPDOWN_DIRECTIVES = [NavDropdownDirective, NavDropdownToggleDirective];
-// export const NGB_DROPDOWN_DIRECTIVES = [NgbDropdownToggle, NgbDropdown];
-//# sourceMappingURL=nav-dropdown.directive.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/shared/nav-dropdown.directive.js.map b/demo/Angular2_Demo/app/shared/nav-dropdown.directive.js.map
deleted file mode 100644
index 2bf0590dc1291b3403f8406f4564341660dbfbc3..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/nav-dropdown.directive.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"nav-dropdown.directive.js","sourceRoot":"","sources":["nav-dropdown.directive.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAwC,eAAe,CAAC,CAAA;AAQxD;IAAA;QAEY,UAAK,GAAG,KAAK,CAAC;IA+B1B,CAAC;IA7BG;;MAEE;IACF,qCAAM,GAAN,cAAW,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/B;;MAEE;IACF,mCAAI,GAAJ;QACI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED;;MAEE;IACF,oCAAK,GAAL;QACI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;MAEE;IACF,qCAAM,GAAN;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;IACL,CAAC;IAtCL;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE;gBACF,cAAc,EAAE,OAAO;aAC1B;SACJ,CAAC;;4BAAA;IAkCF,2BAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,4BAAoB,uBAiChC,CAAA;AAED;;EAEE;AAIF;IACI,oCAAoB,QAA8B;QAA9B,aAAQ,GAAR,QAAQ,CAAsB;IAAG,CAAC;IAGtD,+CAAU,GAAV,UAAW,MAAU;QACjB,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAJD;QAAC,mBAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;;;;gEAAA;IANtC;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,sBAAsB;SACnC,CAAC;;kCAAA;IASF,iCAAC;AAAD,CAAC,AARD,IAQC;AARY,kCAA0B,6BAQtC,CAAA;AAEY,+BAAuB,GAAG,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAAC;AAC1F,2EAA2E"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/shared/nav-dropdown.directive.ts b/demo/Angular2_Demo/app/shared/nav-dropdown.directive.ts
deleted file mode 100644
index 3668cfbc45a2b401410a144230d7fbe0b987398a..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/nav-dropdown.directive.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import { Directive, HostListener } from '@angular/core';
-
-@Directive({
-    selector: '.nav-dropdown',
-    host: {
-        '[class.open]': '_open',
-    }
-})
-export class NavDropdownDirective {
-
-    private _open = false;
-
-    /**
-    * Checks if the dropdown menu is open or not.
-    */
-    isOpen() { return this._open; }
-
-    /**
-    * Opens the dropdown menu.
-    */
-    open() {
-        this._open = true;
-    }
-
-    /**
-    * Closes the dropdown menu .
-    */
-    close() {
-        this._open = false;
-    }
-
-    /**
-    * Toggles the dropdown menu.
-    */
-    toggle() {
-        if (this.isOpen()) {
-            this.close();
-        } else {
-            this.open();
-        }
-    }
-}
-
-/**
-* Allows the dropdown to be toggled via click.
-*/
-@Directive({
-    selector: '.nav-dropdown-toggle',
-})
-export class NavDropdownToggleDirective{
-    constructor(private dropdown: NavDropdownDirective) {}
-
-    @HostListener('click', ['$event'])
-    toggleOpen($event:any) {
-        $event.preventDefault();
-        this.dropdown.toggle();
-    }
-}
-
-export const NAV_DROPDOWN_DIRECTIVES = [NavDropdownDirective, NavDropdownToggleDirective];
-// export const NGB_DROPDOWN_DIRECTIVES = [NgbDropdownToggle, NgbDropdown];
diff --git a/demo/Angular2_Demo/app/shared/sidebar.directive.js b/demo/Angular2_Demo/app/shared/sidebar.directive.js
deleted file mode 100644
index 7ce16eb8d1d622430d3ff870998c0a5a93c21c05..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/sidebar.directive.js
+++ /dev/null
@@ -1,110 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-/**
-* Allows the sidebar to be toggled via click.
-*/
-var SidebarToggleDirective = (function () {
-    function SidebarToggleDirective() {
-    }
-    //Check if element has class
-    SidebarToggleDirective.prototype.hasClass = function (target, elementClassName) {
-        return new RegExp('(\\s|^)' + elementClassName + '(\\s|$)').test(target.className);
-    };
-    //Toggle element class
-    SidebarToggleDirective.prototype.toggleClass = function (elem, elementClassName) {
-        var newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' ';
-        if (this.hasClass(elem, elementClassName)) {
-            while (newClass.indexOf(' ' + elementClassName + ' ') >= 0) {
-                newClass = newClass.replace(' ' + elementClassName + ' ', ' ');
-            }
-            elem.className = newClass.replace(/^\s+|\s+$/g, '');
-        }
-        else {
-            elem.className += ' ' + elementClassName;
-        }
-    };
-    SidebarToggleDirective.prototype.toggleOpen = function ($event) {
-        $event.preventDefault();
-        var bodyClass = localStorage.getItem('body-class');
-        if (this.hasClass(document.querySelector('body'), 'sidebar-off-canvas')) {
-            this.toggleClass(document.querySelector('body'), 'sidebar-opened');
-            this.toggleClass(document.querySelector('html'), 'sidebar-opened');
-        }
-        else if (this.hasClass(document.querySelector('body'), 'sidebar-nav') || bodyClass == 'sidebar-nav') {
-            this.toggleClass(document.querySelector('body'), 'sidebar-nav');
-            localStorage.setItem('body-class', 'sidebar-nav');
-            if (bodyClass == 'sidebar-nav') {
-                localStorage.clear();
-            }
-        }
-    };
-    __decorate([
-        core_1.HostListener('click', ['$event']), 
-        __metadata('design:type', Function), 
-        __metadata('design:paramtypes', [Object]), 
-        __metadata('design:returntype', void 0)
-    ], SidebarToggleDirective.prototype, "toggleOpen", null);
-    SidebarToggleDirective = __decorate([
-        core_1.Directive({
-            selector: '.sidebar-toggle',
-        }), 
-        __metadata('design:paramtypes', [])
-    ], SidebarToggleDirective);
-    return SidebarToggleDirective;
-}());
-exports.SidebarToggleDirective = SidebarToggleDirective;
-/**
-* Allows the off-canvas sidebar to be closed via click.
-*/
-var SidebarOffCanvasCloseDirective = (function () {
-    function SidebarOffCanvasCloseDirective() {
-    }
-    //Check if element has class
-    SidebarOffCanvasCloseDirective.prototype.hasClass = function (target, elementClassName) {
-        return new RegExp('(\\s|^)' + elementClassName + '(\\s|$)').test(target.className);
-    };
-    //Toggle element class
-    SidebarOffCanvasCloseDirective.prototype.toggleClass = function (elem, elementClassName) {
-        var newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' ';
-        if (this.hasClass(elem, elementClassName)) {
-            while (newClass.indexOf(' ' + elementClassName + ' ') >= 0) {
-                newClass = newClass.replace(' ' + elementClassName + ' ', ' ');
-            }
-            elem.className = newClass.replace(/^\s+|\s+$/g, '');
-        }
-        else {
-            elem.className += ' ' + elementClassName;
-        }
-    };
-    SidebarOffCanvasCloseDirective.prototype.toggleOpen = function ($event) {
-        $event.preventDefault();
-        if (this.hasClass(document.querySelector('body'), 'sidebar-off-canvas')) {
-            this.toggleClass(document.querySelector('body'), 'sidebar-opened');
-        }
-    };
-    __decorate([
-        core_1.HostListener('click', ['$event']), 
-        __metadata('design:type', Function), 
-        __metadata('design:paramtypes', [Object]), 
-        __metadata('design:returntype', void 0)
-    ], SidebarOffCanvasCloseDirective.prototype, "toggleOpen", null);
-    SidebarOffCanvasCloseDirective = __decorate([
-        core_1.Directive({
-            selector: '.sidebar-close',
-        }), 
-        __metadata('design:paramtypes', [])
-    ], SidebarOffCanvasCloseDirective);
-    return SidebarOffCanvasCloseDirective;
-}());
-exports.SidebarOffCanvasCloseDirective = SidebarOffCanvasCloseDirective;
-exports.SIDEBAR_TOGGLE_DIRECTIVES = [SidebarToggleDirective, SidebarOffCanvasCloseDirective];
-//# sourceMappingURL=sidebar.directive.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/shared/sidebar.directive.js.map b/demo/Angular2_Demo/app/shared/sidebar.directive.js.map
deleted file mode 100644
index 46659f21f1f182179306d6acf441cf028db0d763..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/sidebar.directive.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sidebar.directive.js","sourceRoot":"","sources":["sidebar.directive.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAwC,eAAe,CAAC,CAAA;AAExD;;EAEE;AAIF;IACI;IAAgB,CAAC;IAEjB,4BAA4B;IACpB,yCAAQ,GAAhB,UAAiB,MAAU,EAAE,gBAAuB;QAChD,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;IAED,sBAAsB;IACd,4CAAW,GAAnB,UAAoB,IAAQ,EAAE,gBAAuB;QACjD,IAAI,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAE,WAAW,EAAE,GAAG,CAAE,GAAG,GAAG,CAAC;QACtE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAG,CAAC;gBAC1D,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAE,GAAG,GAAG,gBAAgB,GAAG,GAAG,EAAG,GAAG,CAAE,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,SAAS,IAAI,GAAG,GAAG,gBAAgB,CAAC;QAC7C,CAAC;IACL,CAAC;IAGD,2CAAU,GAAV,UAAW,MAAU;QACjB,MAAM,CAAC,cAAc,EAAE,CAAC;QAExB,IAAI,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAEnD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC;YACnE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACvE,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,IAAI,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC;YAChE,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAClD,EAAE,CAAC,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC;gBAC7B,YAAY,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;QACL,CAAC;IACL,CAAC;IAhBD;QAAC,mBAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;;;;4DAAA;IAxBtC;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;SAC9B,CAAC;;8BAAA;IAuCF,6BAAC;AAAD,CAAC,AAtCD,IAsCC;AAtCY,8BAAsB,yBAsClC,CAAA;AAED;;EAEE;AAIF;IACI;IAAgB,CAAC;IAEjB,4BAA4B;IACpB,iDAAQ,GAAhB,UAAiB,MAAU,EAAE,gBAAuB;QAChD,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;IAED,sBAAsB;IACd,oDAAW,GAAnB,UAAoB,IAAQ,EAAE,gBAAuB;QACjD,IAAI,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAE,WAAW,EAAE,GAAG,CAAE,GAAG,GAAG,CAAC;QACtE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAG,CAAC;gBAC1D,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAE,GAAG,GAAG,gBAAgB,GAAG,GAAG,EAAG,GAAG,CAAE,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,SAAS,IAAI,GAAG,GAAG,gBAAgB,CAAC;QAC7C,CAAC;IACL,CAAC;IAGD,mDAAU,GAAV,UAAW,MAAU;QACjB,MAAM,CAAC,cAAc,EAAE,CAAC;QAExB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAPD;QAAC,mBAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;;;;oEAAA;IAxBtC;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,gBAAgB;SAC7B,CAAC;;sCAAA;IA8BF,qCAAC;AAAD,CAAC,AA7BD,IA6BC;AA7BY,sCAA8B,iCA6B1C,CAAA;AAEY,iCAAyB,GAAG,CAAC,sBAAsB,EAAE,8BAA8B,CAAC,CAAC"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/shared/sidebar.directive.ts b/demo/Angular2_Demo/app/shared/sidebar.directive.ts
deleted file mode 100644
index e4968499517f77162774012a966d56b79641777e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/shared/sidebar.directive.ts
+++ /dev/null
@@ -1,86 +0,0 @@
-import { Directive, HostListener } from '@angular/core';
-
-/**
-* Allows the sidebar to be toggled via click.
-*/
-@Directive({
-    selector: '.sidebar-toggle',
-})
-export class SidebarToggleDirective {
-    constructor() { }
-
-    //Check if element has class
-    private hasClass(target:any, elementClassName:string) {
-        return new RegExp('(\\s|^)' + elementClassName + '(\\s|$)').test(target.className);
-    }
-
-    //Toggle element class
-    private toggleClass(elem:any, elementClassName:string) {
-        let newClass = ' ' + elem.className.replace( /[\t\r\n]/g, ' ' ) + ' ';
-        if (this.hasClass(elem, elementClassName)) {
-            while (newClass.indexOf(' ' + elementClassName + ' ') >= 0 ) {
-                newClass = newClass.replace( ' ' + elementClassName + ' ' , ' ' );
-            }
-            elem.className = newClass.replace(/^\s+|\s+$/g, '');
-        } else {
-            elem.className += ' ' + elementClassName;
-        }
-    }
-
-    @HostListener('click', ['$event'])
-    toggleOpen($event:any) {
-        $event.preventDefault();
-
-        let bodyClass = localStorage.getItem('body-class');
-
-        if (this.hasClass(document.querySelector('body'), 'sidebar-off-canvas')) {
-            this.toggleClass(document.querySelector('body'), 'sidebar-opened');
-            this.toggleClass(document.querySelector('html'), 'sidebar-opened');
-        } else if (this.hasClass(document.querySelector('body'), 'sidebar-nav') || bodyClass == 'sidebar-nav') {
-            this.toggleClass(document.querySelector('body'), 'sidebar-nav');
-            localStorage.setItem('body-class', 'sidebar-nav');
-            if (bodyClass == 'sidebar-nav') {
-                localStorage.clear();
-            }
-        }
-    }
-}
-
-/**
-* Allows the off-canvas sidebar to be closed via click.
-*/
-@Directive({
-    selector: '.sidebar-close',
-})
-export class SidebarOffCanvasCloseDirective {
-    constructor() { }
-
-    //Check if element has class
-    private hasClass(target:any, elementClassName:string) {
-        return new RegExp('(\\s|^)' + elementClassName + '(\\s|$)').test(target.className);
-    }
-
-    //Toggle element class
-    private toggleClass(elem:any, elementClassName:string) {
-        let newClass = ' ' + elem.className.replace( /[\t\r\n]/g, ' ' ) + ' ';
-        if (this.hasClass(elem, elementClassName)) {
-            while (newClass.indexOf(' ' + elementClassName + ' ') >= 0 ) {
-                newClass = newClass.replace( ' ' + elementClassName + ' ' , ' ' );
-            }
-            elem.className = newClass.replace(/^\s+|\s+$/g, '');
-        } else {
-            elem.className += ' ' + elementClassName;
-        }
-    }
-
-    @HostListener('click', ['$event'])
-    toggleOpen($event:any) {
-        $event.preventDefault();
-
-        if (this.hasClass(document.querySelector('body'), 'sidebar-off-canvas')) {
-            this.toggleClass(document.querySelector('body'), 'sidebar-opened');
-        }
-    }
-}
-
-export const SIDEBAR_TOGGLE_DIRECTIVES = [SidebarToggleDirective, SidebarOffCanvasCloseDirective];
diff --git a/demo/Angular2_Demo/app/widgets/widgets.component.html b/demo/Angular2_Demo/app/widgets/widgets.component.html
deleted file mode 100644
index 5fa02e8372c8587de1910e0bd18dc7a2c959a43d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/widgets/widgets.component.html
+++ /dev/null
@@ -1,820 +0,0 @@
-<div class="animated fadeIn">
-    <div class="row">
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-primary">
-                <div class="card-block p-b-0">
-                    <div class="btn-group pull-right" dropdown>
-                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" dropdownToggle>
-                            <i class="icon-settings"></i>
-                        </button>
-                        <div class="dropdown-menu dropdown-menu-right" dropdownMenu>
-                            <a class="dropdown-item" href="#">Action</a>
-                            <a class="dropdown-item" href="#">Another action</a>
-                            <a class="dropdown-item" href="#">Something else here</a>
-                        </div>
-                    </div>
-                    <h4 class="m-b-0">9.823</h4>
-                    <p>Members online</p>
-                </div>
-                <div class="chart-wrapper p-x-1">
-                    <base-chart class="chart" [datasets]="lineChart1Data" [labels]="lineChart1Labels" [options]="lineChart1Options" [colors]="lineChart1Colours" [legend]="lineChart1Legend" [chartType]="lineChart1Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:70px;"></base-chart>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-info">
-                <div class="card-block p-b-0">
-                    <button type="button" class="btn btn-transparent p-a-0 pull-right">
-                        <i class="icon-location-pin"></i>
-                    </button>
-                    <h4 class="m-b-0">9.823</h4>
-                    <p>Members online</p>
-                </div>
-                <div class="chart-wrapper p-x-1" style="height:70px;">
-                    <base-chart class="chart" [datasets]="lineChart2Data" [labels]="lineChart2Labels" [options]="lineChart2Options" [colors]="lineChart2Colours" [legend]="lineChart2Legend" [chartType]="lineChart2Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:70px;"></base-chart>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-warning">
-                <div class="card-block p-b-0">
-                    <div class="btn-group pull-right">
-                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                            <i class="icon-settings"></i>
-                        </button>
-                        <div class="dropdown-menu dropdown-menu-right">
-                            <a class="dropdown-item" href="#">Action</a>
-                            <a class="dropdown-item" href="#">Another action</a>
-                            <a class="dropdown-item" href="#">Something else here</a>
-                        </div>
-                    </div>
-                    <h4 class="m-b-0">9.823</h4>
-                    <p>Members online</p>
-                </div>
-                <div class="chart-wrapper" style="height:70px;">
-                    <base-chart class="chart" [datasets]="lineChart3Data" [labels]="lineChart3Labels" [options]="lineChart3Options" [colors]="lineChart3Colours" [legend]="lineChart3Legend" [chartType]="lineChart3Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:70px;"></base-chart>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-danger">
-                <div class="card-block p-b-0">
-                    <div class="btn-group pull-right" dropdown>
-                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" dropdownToggle>
-                            <i class="icon-settings"></i>
-                        </button>
-                        <div class="dropdown-menu dropdown-menu-right" dropdownMenu>
-                            <a class="dropdown-item" href="#">Action</a>
-                            <a class="dropdown-item" href="#">Another action</a>
-                            <a class="dropdown-item" href="#">Something else here</a>
-                        </div>
-                    </div>
-                    <h4 class="m-b-0">9.823</h4>
-                    <p>Members online</p>
-                </div>
-                <div class="chart-wrapper p-x-1" style="height:70px;">
-                    <base-chart class="chart" [datasets]="barChart1Data" [labels]="barChart1Labels" [options]="barChart1Options" [colors]="barChart1Colours" [legend]="barChart1Legend" [chartType]="barChart1Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                    style="height:70px;"></base-chart>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-    <div class="row">
-        <div class="col-sm-6 col-lg-3">
-            <div class="card">
-                <div class="card-header card-header-inverse card-header-primary">
-                    <div class="font-weight-bold">
-                        <span>SALE</span>
-                        <span class="pull-right">$1.890,65</span>
-                    </div>
-                    <div>
-                        <span>
-                            <small>Today 6:43 AM</small>
-                        </span>
-                        <span class="pull-right">
-                            <small>+432,50 (15,78%)</small>
-                        </span>
-                    </div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="lineChart4Data" [labels]="lineChart4Labels" [options]="lineChart4Options" [colors]="lineChart4Colours" [legend]="lineChart4Legend" [chartType]="lineChart4Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:38px;"></base-chart>
-                    </div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="barChart2Data" [labels]="barChart2Labels" [options]="barChart2Options" [colors]="barChart2Colours" [legend]="barChart2Legend" [chartType]="barChart2Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:38px;"></base-chart>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-lg-3">
-            <div class="card">
-                <div class="card-header card-header-inverse card-header-danger">
-                    <div class="font-weight-bold">
-                        <span>SALE</span>
-                        <span class="pull-right">$1.890,65</span>
-                    </div>
-                    <div>
-                        <span>
-                            <small>Today 6:43 AM</small>
-                        </span>
-                        <span class="pull-right">
-                            <small>+432,50 (15,78%)</small>
-                        </span>
-                    </div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="lineChart4Data" [labels]="lineChart4Labels" [options]="lineChart4Options" [colors]="lineChart4Colours" [legend]="lineChart4Legend" [chartType]="lineChart4Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:38px;"></base-chart>
-                    </div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="barChart2Data" [labels]="barChart2Labels" [options]="barChart2Options" [colors]="barChart2Colours" [legend]="barChart2Legend" [chartType]="barChart2Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:38px;"></base-chart>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-lg-3">
-            <div class="card">
-                <div class="card-header card-header-inverse card-header-success">
-                    <div class="font-weight-bold">
-                        <span>SALE</span>
-                        <span class="pull-right">$1.890,65</span>
-                    </div>
-                    <div>
-                        <span>
-                            <small>Today 6:43 AM</small>
-                        </span>
-                        <span class="pull-right">
-                            <small>+432,50 (15,78%)</small>
-                        </span>
-                    </div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="lineChart4Data" [labels]="lineChart4Labels" [options]="lineChart4Options" [colors]="lineChart4Colours" [legend]="lineChart4Legend" [chartType]="lineChart4Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:38px;"></base-chart>
-                    </div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="barChart2Data" [labels]="barChart2Labels" [options]="barChart2Options" [colors]="barChart2Colours" [legend]="barChart2Legend" [chartType]="barChart2Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:38px;"></base-chart>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-lg-3">
-            <div class="card">
-                <div class="card-header card-header-inverse card-header-warning">
-                    <div class="font-weight-bold">
-                        <span>SALE</span>
-                        <span class="pull-right">$1.890,65</span>
-                    </div>
-                    <div>
-                        <span>
-                            <small>Today 6:43 AM</small>
-                        </span>
-                        <span class="pull-right">
-                            <small>+432,50 (15,78%)</small>
-                        </span>
-                    </div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="lineChart4Data" [labels]="lineChart4Labels" [options]="lineChart4Options" [colors]="lineChart4Colours" [legend]="lineChart4Legend" [chartType]="lineChart4Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:38px;"></base-chart>
-                    </div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="barChart2Data" [labels]="barChart2Labels" [options]="barChart2Options" [colors]="barChart2Colours" [legend]="barChart2Legend" [chartType]="barChart2Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:38px;"></base-chart>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="row">
-        <div class="col-sm-6 col-lg-3">
-            <div class="card">
-                <div class="card-block">
-                    <div class="h4 m-a-0">89.9%</div>
-                    <div class="p-b-1">Lorem ipsum...</div>
-                    <progress class="progress progress-xs progress-success" value="25" max="100">25%</progress>
-                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card">
-                <div class="card-block">
-                    <div class="h4 m-a-0">12.124</div>
-                    <div class="p-b-1">Lorem ipsum...</div>
-                    <progress class="progress progress-xs progress-info" value="25" max="100">25%</progress>
-                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card">
-                <div class="card-block">
-                    <div class="h4 m-a-0">$98.111,00</div>
-                    <div class="p-b-1">Lorem ipsum...</div>
-                    <progress class="progress progress-xs progress-warning" value="25" max="100">25%</progress>
-                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card">
-                <div class="card-block">
-                    <div class="h4 m-a-0">2 TB</div>
-                    <div class="p-b-1">Lorem ipsum...</div>
-                    <progress class="progress progress-xs progress-danger" value="25" max="100">25%</progress>
-                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-    <div class="row">
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-primary">
-                <div class="card-block">
-                    <div class="h4 m-a-0">89.9%</div>
-                    <div class="p-b-1">Lorem ipsum...</div>
-                    <progress class="progress progress-xs progress-success" value="25" max="100">25%</progress>
-                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-warning">
-                <div class="card-block">
-                    <div class="h4 m-a-0">12.124</div>
-                    <div class="p-b-1">Lorem ipsum...</div>
-                    <progress class="progress progress-xs progress-info" value="25" max="100">25%</progress>
-                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-danger">
-                <div class="card-block">
-                    <div class="h4 m-a-0">$98.111,00</div>
-                    <div class="p-b-1">Lorem ipsum...</div>
-                    <progress class="progress progress-xs progress-warning" value="25" max="100">25%</progress>
-                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-sm-6 col-lg-3">
-            <div class="card card-inverse card-info">
-                <div class="card-block">
-                    <div class="h4 m-a-0">2 TB</div>
-                    <div class="p-b-1">Lorem ipsum...</div>
-                    <progress class="progress progress-xs progress-danger" value="25" max="100">25%</progress>
-                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-    <div class="row">
-        <div class="col-md-2 col-sm-4">
-            <div class="card">
-                <div class="card-block text-xs-center">
-                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>
-                    <div class="h2 p-y-1">1,123</div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="barChart3Data" [labels]="barChart3Labels" [options]="barChart3Options" [colors]="barChart3Primary" [legend]="barChart3Legend" [chartType]="barChart3Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:40px;width:80px;display:inline-block !important;"></base-chart>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-2 col-sm-4">
-            <div class="card">
-                <div class="card-block text-xs-center">
-                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>
-                    <div class="h2 p-y-1">1,123</div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="barChart3Data" [labels]="barChart3Labels" [options]="barChart3Options" [colors]="barChart3Danger" [legend]="barChart3Legend" [chartType]="barChart3Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:40px;width:80px;display:inline-block !important;"></base-chart>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-2 col-sm-4">
-            <div class="card">
-                <div class="card-block text-xs-center">
-                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>
-                    <div class="h2 p-y-1">1,123</div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="barChart3Data" [labels]="barChart3Labels" [options]="barChart3Options" [colors]="barChart3Success" [legend]="barChart3Legend" [chartType]="barChart3Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:40px;width:80px;display:inline-block !important;"></base-chart>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-2 col-sm-4">
-            <div class="card">
-                <div class="card-block text-xs-center">
-                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>
-                    <div class="h2 p-y-1">1,123</div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="lineChart5Data" [labels]="lineChart5Labels" [options]="lineChart5Options" [colors]="lineChart5Info" [legend]="lineChart5Legend" [chartType]="lineChart5Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:40px;width:100px;display:inline-block !important;"></base-chart>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-2 col-sm-4">
-            <div class="card">
-                <div class="card-block text-xs-center">
-                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>
-                    <div class="h2 p-y-1">1,123</div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="lineChart5Data" [labels]="lineChart5Labels" [options]="lineChart5Options" [colors]="lineChart5Success" [legend]="lineChart5Legend" [chartType]="lineChart5Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:40px;width:100px;display:inline-block !important;"></base-chart>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-        <div class="col-md-2 col-sm-4">
-            <div class="card">
-                <div class="card-block text-xs-center">
-                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>
-                    <div class="h2 p-y-1">1,123</div>
-                    <div class="chart-wrapper">
-                        <base-chart class="chart" [datasets]="lineChart5Data" [labels]="lineChart5Labels" [options]="lineChart5Options" [colors]="lineChart5Warning" [legend]="lineChart5Legend" [chartType]="lineChart5Type" (chartHover)="chartHovered($event)" (chartClick)="chartClicked($event)"
-                        style="height:40px;width:100px;display:inline-block !important;"></base-chart>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-    <div class="row">
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-1 clearfix">
-                    <i class="fa fa-cogs bg-primary p-a-1 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-primary m-b-0 m-t-h">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-1 clearfix">
-                    <i class="fa fa-laptop bg-info p-a-1 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-info m-b-0 m-t-h">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-1 clearfix">
-                    <i class="fa fa-moon-o bg-warning p-a-1 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-warning m-b-0 m-t-h">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-1 clearfix">
-                    <i class="fa fa-bell bg-danger p-a-1 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-danger m-b-0 m-t-h">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-1 clearfix">
-                    <i class="fa fa-cogs bg-primary p-a-1 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-primary m-b-0 m-t-h">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-                <div class="card-footer p-x-1 p-y-h">
-                    <a class="font-weight-bold font-xs btn-block text-muted" href="#">View More <i class="fa fa-angle-right pull-right font-lg"></i></a>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-1 clearfix">
-                    <i class="fa fa-laptop bg-info p-a-1 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-info m-b-0 m-t-h">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-                <div class="card-footer p-x-1 p-y-h">
-                    <a class="font-weight-bold font-xs btn-block text-muted" href="#">View More <i class="fa fa-angle-right pull-right font-lg"></i></a>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-1 clearfix">
-                    <i class="fa fa-moon-o bg-warning p-a-1 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-warning m-b-0 m-t-h">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-                <div class="card-footer p-x-1 p-y-h">
-                    <a class="font-weight-bold font-xs btn-block text-muted" href="#">View More <i class="fa fa-angle-right pull-right font-lg"></i></a>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-1 clearfix">
-                    <i class="fa fa-bell bg-danger p-a-1 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-danger m-b-0 m-t-h">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-                <div class="card-footer p-x-1 p-y-h">
-                    <a class="font-weight-bold font-xs btn-block text-muted" href="#">View More <i class="fa fa-angle-right pull-right font-lg"></i></a>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-    </div>
-    <!--/.row-->
-    <div class="row">
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-0 clearfix">
-                    <i class="fa fa-cogs bg-primary p-a-2 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-primary m-b-0 p-t-1">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-0 clearfix">
-                    <i class="fa fa-laptop bg-info p-a-2 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-info m-b-0 p-t-1">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-0 clearfix">
-                    <i class="fa fa-moon-o bg-warning p-a-2 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-warning m-b-0 p-t-1">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-0 clearfix">
-                    <i class="fa fa-bell bg-danger p-a-2 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-danger m-b-0 p-t-1">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-0 clearfix">
-                    <i class="fa fa-cogs bg-primary p-a-2 p-x-3 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-primary m-b-0 p-t-1">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-0 clearfix">
-                    <i class="fa fa-laptop bg-info p-a-2 p-x-3 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-info m-b-0 p-t-1">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-0 clearfix">
-                    <i class="fa fa-moon-o bg-warning p-a-2 p-x-3 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-warning m-b-0 p-t-1">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-        <div class="col-xs-6 col-lg-3">
-            <div class="card">
-                <div class="card-block p-a-0 clearfix">
-                    <i class="fa fa-bell bg-danger p-a-2 p-x-3 font-2xl m-r-1 pull-left"></i>
-                    <div class="h5 text-danger m-b-0 p-t-1">$1.999,50</div>
-                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>
-                </div>
-            </div>
-        </div>
-        <!--/.col-->
-    </div>
-    <!--/.row-->
-    <div class="row">
-        <div class="col-md-3 col-sm-6">
-            <div class="social-box facebook">
-                <i class="fa fa-facebook"></i>
-                <ul>
-                    <li>
-                        <strong>89k</strong>
-                        <span>friends</span>
-                    </li>
-                    <li>
-                        <strong>459</strong>
-                        <span>feeds</span>
-                    </li>
-                </ul>
-            </div>
-            <!--/social-box-->
-        </div>
-        <!--/col-->
-        <div class="col-md-3 col-sm-6">
-            <div class="social-box twitter">
-                <i class="fa fa-twitter"></i>
-                <ul>
-                    <li>
-                        <strong>973k</strong>
-                        <span>followers</span>
-                    </li>
-                    <li>
-                        <strong>1.792</strong>
-                        <span>tweets</span>
-                    </li>
-                </ul>
-            </div>
-            <!--/social-box-->
-        </div>
-        <!--/col-->
-        <div class="col-md-3 col-sm-6">
-            <div class="social-box linkedin">
-                <i class="fa fa-linkedin"></i>
-                <ul>
-                    <li>
-                        <strong>500+</strong>
-                        <span>contacts</span>
-                    </li>
-                    <li>
-                        <strong>292</strong>
-                        <span>feeds</span>
-                    </li>
-                </ul>
-            </div>
-            <!--/social-box-->
-        </div>
-        <!--/col-->
-        <div class="col-md-3 col-sm-6">
-            <div class="social-box google-plus">
-                <i class="fa fa-google-plus"></i>
-                <ul>
-                    <li>
-                        <strong>894</strong>
-                        <span>followers</span>
-                    </li>
-                    <li>
-                        <strong>92</strong>
-                        <span>circles</span>
-                    </li>
-                </ul>
-            </div>
-            <!--/social-box-->
-        </div>
-        <!--/col-->
-    </div>
-    <!--/row-->
-    <div class="card-group m-b-1">
-        <div class="card">
-            <div class="card-block">
-                <div class="h1 text-muted text-xs-right m-b-2">
-                    <i class="icon-people"></i>
-                </div>
-                <div class="h4 m-b-0">87.500</div>
-                <small class="text-muted text-uppercase font-weight-bold">Visitors</small>
-                <progress class="progress progress-xs progress-info m-t-1 m-b-0" value="25" max="100">25%</progress>
-            </div>
-        </div>
-        <div class="card">
-            <div class="card-block">
-                <div class="h1 text-muted text-xs-right m-b-2">
-                    <i class="icon-user-follow"></i>
-                </div>
-                <div class="h4 m-b-0">385</div>
-                <small class="text-muted text-uppercase font-weight-bold">New Clients</small>
-                <progress class="progress progress-xs progress-success m-t-1 m-b-0" value="25" max="100">25%</progress>
-            </div>
-        </div>
-        <div class="card">
-            <div class="card-block">
-                <div class="h1 text-muted text-xs-right m-b-2">
-                    <i class="icon-basket-loaded"></i>
-                </div>
-                <div class="h4 m-b-0">1238</div>
-                <small class="text-muted text-uppercase font-weight-bold">Products sold</small>
-                <progress class="progress progress-xs progress-warning m-t-1 m-b-0" value="25" max="100">25%</progress>
-            </div>
-        </div>
-        <div class="card">
-            <div class="card-block">
-                <div class="h1 text-muted text-xs-right m-b-2">
-                    <i class="icon-pie-chart"></i>
-                </div>
-                <div class="h4 m-b-0">28%</div>
-                <small class="text-muted text-uppercase font-weight-bold">Returning Visitors</small>
-                <progress class="progress progress-xs progress-primary m-t-1 m-b-0" value="25" max="100">25%</progress>
-            </div>
-        </div>
-        <div class="card">
-            <div class="card-block">
-                <div class="h1 text-muted text-xs-right m-b-2">
-                    <i class="icon-speedometer"></i>
-                </div>
-                <div class="h4 m-b-0">5:34:11</div>
-                <small class="text-muted text-uppercase font-weight-bold">Avg. Time</small>
-                <progress class="progress progress-xs progress-danger m-t-1 m-b-0" value="25" max="100">25%</progress>
-            </div>
-        </div>
-    </div>
-    <div class="row">
-        <div class="col-sm-6 col-md-2">
-            <div class="card">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-people"></i>
-                    </div>
-                    <div class="h4 m-b-0">87.500</div>
-                    <small class="text-muted text-uppercase font-weight-bold">Visitors</small>
-                    <progress class="progress progress-xs progress-info m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-md-2">
-            <div class="card">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-user-follow"></i>
-                    </div>
-                    <div class="h4 m-b-0">385</div>
-                    <small class="text-muted text-uppercase font-weight-bold">New Clients</small>
-                    <progress class="progress progress-xs progress-success m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-md-2">
-            <div class="card">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-basket-loaded"></i>
-                    </div>
-                    <div class="h4 m-b-0">1238</div>
-                    <small class="text-muted text-uppercase font-weight-bold">Products sold</small>
-                    <progress class="progress progress-xs progress-warning m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-md-2">
-            <div class="card">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-pie-chart"></i>
-                    </div>
-                    <div class="h4 m-b-0">28%</div>
-                    <small class="text-muted text-uppercase font-weight-bold">Returning Visitors</small>
-                    <progress class="progress progress-xs progress-primary m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-md-2">
-            <div class="card">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-speedometer"></i>
-                    </div>
-                    <div class="h4 m-b-0">5:34:11</div>
-                    <small class="text-muted text-uppercase font-weight-bold">Avg. Time</small>
-                    <progress class="progress progress-xs progress-danger m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-md-2">
-            <div class="card">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-speech"></i>
-                    </div>
-                    <div class="h4 m-b-0">972</div>
-                    <small class="text-muted text-uppercase font-weight-bold">Comments</small>
-                    <progress class="progress progress-xs progress-info m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="row">
-        <div class="col-sm-6 col-md-2">
-            <div class="card card-inverse card-info">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-people"></i>
-                    </div>
-                    <div class="h4 m-b-0">87.500</div>
-                    <small class="text-muted text-uppercase font-weight-bold">Visitors</small>
-                    <progress class="progress progress-xs progress-info m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-md-2">
-            <div class="card card-inverse card-success">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-user-follow"></i>
-                    </div>
-                    <div class="h4 m-b-0">385</div>
-                    <small class="text-muted text-uppercase font-weight-bold">New Clients</small>
-                    <progress class="progress progress-xs progress-success m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-md-2">
-            <div class="card card-inverse card-warning">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-basket-loaded"></i>
-                    </div>
-                    <div class="h4 m-b-0">1238</div>
-                    <small class="text-muted text-uppercase font-weight-bold">Products sold</small>
-                    <progress class="progress progress-xs progress-warning m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-md-2">
-            <div class="card card-inverse card-primary">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-pie-chart"></i>
-                    </div>
-                    <div class="h4 m-b-0">28%</div>
-                    <small class="text-muted text-uppercase font-weight-bold">Returning Visitors</small>
-                    <progress class="progress progress-xs progress-primary m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-md-2">
-            <div class="card card-inverse card-danger">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-speedometer"></i>
-                    </div>
-                    <div class="h4 m-b-0">5:34:11</div>
-                    <small class="text-muted text-uppercase font-weight-bold">Avg. Time</small>
-                    <progress class="progress progress-xs progress-danger m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-        <div class="col-sm-6 col-md-2">
-            <div class="card card-inverse card-info">
-                <div class="card-block">
-                    <div class="h1 text-muted text-xs-right m-b-2">
-                        <i class="icon-speech"></i>
-                    </div>
-                    <div class="h4 m-b-0">972</div>
-                    <small class="text-muted text-uppercase font-weight-bold">Comments</small>
-                    <progress class="progress progress-xs progress-info m-t-1 m-b-0" value="25" max="100">25%</progress>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
diff --git a/demo/Angular2_Demo/app/widgets/widgets.component.js b/demo/Angular2_Demo/app/widgets/widgets.component.js
deleted file mode 100644
index 5580c30d19ffca2e05c7d12361770f1a60b2e71e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/widgets/widgets.component.js
+++ /dev/null
@@ -1,382 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var core_1 = require('@angular/core');
-var ng2_charts_1 = require('ng2-charts/ng2-charts');
-var WidgetsComponent = (function () {
-    function WidgetsComponent() {
-        this.brandPrimary = '#20a8d8';
-        this.brandSuccess = '#4dbd74';
-        this.brandInfo = '#63c2de';
-        this.brandWarning = '#f8cb00';
-        this.brandDanger = '#f86c6b';
-        // lineChart1
-        this.lineChart1Data = [
-            {
-                data: [65, 59, 84, 84, 51, 55, 40],
-                label: 'Series A'
-            }
-        ];
-        this.lineChart1Labels = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-        this.lineChart1Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        gridLines: {
-                            color: 'transparent',
-                            zeroLineColor: 'transparent'
-                        },
-                        ticks: {
-                            fontSize: 2,
-                            fontColor: 'transparent',
-                        }
-                    }],
-                yAxes: [{
-                        display: false,
-                        ticks: {
-                            display: false,
-                            min: 40 - 5,
-                            max: 84 + 5,
-                        }
-                    }],
-            },
-            elements: {
-                line: {
-                    borderWidth: 1
-                },
-                point: {
-                    radius: 4,
-                    hitRadius: 10,
-                    hoverRadius: 4,
-                },
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.lineChart1Colours = [
-            {
-                backgroundColor: this.brandPrimary,
-                borderColor: 'rgba(255,255,255,.55)'
-            }
-        ];
-        this.lineChart1Legend = false;
-        this.lineChart1Type = 'line';
-        // lineChart2
-        this.lineChart2Data = [
-            {
-                data: [1, 18, 9, 17, 34, 22, 11],
-                label: 'Series A'
-            }
-        ];
-        this.lineChart2Labels = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-        this.lineChart2Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        gridLines: {
-                            color: 'transparent',
-                            zeroLineColor: 'transparent'
-                        },
-                        ticks: {
-                            fontSize: 2,
-                            fontColor: 'transparent',
-                        }
-                    }],
-                yAxes: [{
-                        display: false,
-                        ticks: {
-                            display: false,
-                            min: 1 - 5,
-                            max: 34 + 5,
-                        }
-                    }],
-            },
-            elements: {
-                line: {
-                    tension: 0.00001,
-                    borderWidth: 1
-                },
-                point: {
-                    radius: 4,
-                    hitRadius: 10,
-                    hoverRadius: 4,
-                },
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.lineChart2Colours = [
-            {
-                backgroundColor: this.brandInfo,
-                borderColor: 'rgba(255,255,255,.55)'
-            }
-        ];
-        this.lineChart2Legend = false;
-        this.lineChart2Type = 'line';
-        // lineChart3
-        this.lineChart3Data = [
-            {
-                data: [78, 81, 80, 45, 34, 12, 40],
-                label: 'Series A'
-            }
-        ];
-        this.lineChart3Labels = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-        this.lineChart3Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        display: false
-                    }],
-                yAxes: [{
-                        display: false
-                    }]
-            },
-            elements: {
-                line: {
-                    borderWidth: 2
-                },
-                point: {
-                    radius: 0,
-                    hitRadius: 10,
-                    hoverRadius: 4,
-                },
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.lineChart3Colours = [
-            {
-                backgroundColor: 'rgba(255,255,255,.2)',
-                borderColor: 'rgba(255,255,255,.55)',
-            }
-        ];
-        this.lineChart3Legend = false;
-        this.lineChart3Type = 'line';
-        // barChart1
-        this.barChart1Data = [
-            {
-                data: [78, 81, 80, 45, 34, 12, 40, 78, 81, 80, 45, 34, 12, 40, 12, 40],
-                label: 'Series A'
-            }
-        ];
-        this.barChart1Labels = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'];
-        this.barChart1Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        display: false,
-                        barPercentage: 0.6,
-                    }],
-                yAxes: [{
-                        display: false
-                    }]
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.barChart1Colours = [
-            {
-                backgroundColor: 'rgba(255,255,255,.3)',
-                borderWidth: 0
-            }
-        ];
-        this.barChart1Legend = false;
-        this.barChart1Type = 'bar';
-        // lineChart4
-        this.lineChart4Data = [
-            {
-                data: [4, 18, 9, 17, 34, 22, 11, 3, 15, 12, 18, 9],
-                label: 'Series A'
-            }
-        ];
-        this.lineChart4Labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
-        this.lineChart4Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        display: false,
-                        points: false,
-                    }],
-                yAxes: [{
-                        display: false,
-                    }]
-            },
-            elements: { point: { radius: 0 } },
-            legend: {
-                display: false
-            }
-        };
-        this.lineChart4Colours = [
-            {
-                backgroundColor: 'transparent',
-                borderColor: 'rgba(255,255,255,.55)',
-                borderWidth: 2
-            }
-        ];
-        this.lineChart4Legend = false;
-        this.lineChart4Type = 'line';
-        // barChart2
-        this.barChart2Data = [
-            {
-                data: [4, 18, 9, 17, 34, 22, 11, 3, 15, 12, 18, 9],
-                label: 'Series A'
-            }
-        ];
-        this.barChart2Labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
-        this.barChart2Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        display: false,
-                        barPercentage: 0.6,
-                    }],
-                yAxes: [{
-                        display: false,
-                        ticks: {
-                            beginAtZero: true,
-                        }
-                    }]
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.barChart2Colours = [
-            {
-                backgroundColor: 'rgba(0,0,0,.2)',
-                borderWidth: 0
-            }
-        ];
-        this.barChart2Legend = false;
-        this.barChart2Type = 'bar';
-        // barChart3
-        this.barChart3Data = [
-            {
-                data: [4, 18, 9, 17, 34, 22, 11, 3, 15, 12, 18, 9],
-                label: 'Series A'
-            }
-        ];
-        this.barChart3Labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
-        this.barChart3Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        display: false
-                    }],
-                yAxes: [{
-                        display: false
-                    }]
-            },
-            legend: {
-                display: false
-            }
-        };
-        this.barChart3Primary = [
-            {
-                backgroundColor: this.brandPrimary,
-                borderColor: 'transparent',
-                borderWidth: 1
-            }
-        ];
-        this.barChart3Danger = [
-            {
-                backgroundColor: this.brandDanger,
-                borderColor: 'transparent',
-                borderWidth: 1
-            }
-        ];
-        this.barChart3Success = [
-            {
-                backgroundColor: this.brandSuccess,
-                borderColor: 'transparent',
-                borderWidth: 1
-            }
-        ];
-        this.barChart3Legend = false;
-        this.barChart3Type = 'bar';
-        // lineChart5
-        this.lineChart5Data = [
-            {
-                data: [65, 59, 84, 84, 51, 55, 40],
-                label: 'Series A'
-            }
-        ];
-        this.lineChart5Labels = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-        this.lineChart5Options = {
-            maintainAspectRatio: false,
-            scales: {
-                xAxes: [{
-                        display: false,
-                        points: false,
-                    }],
-                yAxes: [{
-                        display: false,
-                    }]
-            },
-            elements: { point: { radius: 0 } },
-            legend: {
-                display: false
-            }
-        };
-        this.lineChart5Info = [
-            {
-                backgroundColor: 'transparent',
-                borderColor: this.brandInfo,
-                borderWidth: 2
-            }
-        ];
-        this.lineChart5Success = [
-            {
-                backgroundColor: 'transparent',
-                borderColor: this.brandInfo,
-                borderWidth: 2
-            }
-        ];
-        this.lineChart5Warning = [
-            {
-                backgroundColor: 'transparent',
-                borderColor: this.brandWarning,
-                borderWidth: 2
-            }
-        ];
-        this.lineChart5Legend = false;
-        this.lineChart5Type = 'line';
-    }
-    //convert Hex to RGBA
-    WidgetsComponent.prototype.convertHex = function (hex, opacity) {
-        hex = hex.replace('#', '');
-        var r = parseInt(hex.substring(0, 2), 16);
-        var g = parseInt(hex.substring(2, 4), 16);
-        var b = parseInt(hex.substring(4, 6), 16);
-        var rgba = 'rgba(' + r + ',' + g + ',' + b + ',' + opacity / 100 + ')';
-        return rgba;
-    };
-    // events
-    WidgetsComponent.prototype.chartClicked = function (e) {
-        console.log(e);
-    };
-    WidgetsComponent.prototype.chartHovered = function (e) {
-        console.log(e);
-    };
-    WidgetsComponent = __decorate([
-        core_1.Component({
-            templateUrl: 'app/widgets/widgets.component.html',
-            directives: [ng2_charts_1.CHART_DIRECTIVES]
-        }), 
-        __metadata('design:paramtypes', [])
-    ], WidgetsComponent);
-    return WidgetsComponent;
-}());
-exports.WidgetsComponent = WidgetsComponent;
-//# sourceMappingURL=widgets.component.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/widgets/widgets.component.js.map b/demo/Angular2_Demo/app/widgets/widgets.component.js.map
deleted file mode 100644
index d5a64890f6381da7eda0338c75deec142ad3ffbe..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/widgets/widgets.component.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"widgets.component.js","sourceRoot":"","sources":["widgets.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAAiC,eAAe,CAAC,CAAA;AACjD,2BAAiC,uBAAuB,CAAC,CAAA;AAMzD;IAEI;QAEO,iBAAY,GAAW,SAAS,CAAC;QACjC,iBAAY,GAAW,SAAS,CAAC;QACjC,cAAS,GAAc,SAAS,CAAC;QACjC,iBAAY,GAAW,SAAS,CAAC;QACjC,gBAAW,GAAY,SAAS,CAAC;QAsBxC,aAAa;QACN,mBAAc,GAAc;YAC/B;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,qBAAgB,GAAc,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/F,sBAAiB,GAAO;YAC3B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,SAAS,EAAE;4BACP,KAAK,EAAE,aAAa;4BACpB,aAAa,EAAE,aAAa;yBAC/B;wBACD,KAAK,EAAE;4BACH,QAAQ,EAAE,CAAC;4BACX,SAAS,EAAE,aAAa;yBAC3B;qBAEJ,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACH,OAAO,EAAE,KAAK;4BACd,GAAG,EAAE,EAAE,GAAG,CAAC;4BACX,GAAG,EAAE,EAAE,GAAG,CAAC;yBACd;qBACJ,CAAC;aACL;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,WAAW,EAAE,CAAC;iBACjB;gBACD,KAAK,EAAE;oBACH,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,CAAC;iBACjB;aACJ;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,sBAAiB,GAAc;YAClC;gBACI,eAAe,EAAE,IAAI,CAAC,YAAY;gBAClC,WAAW,EAAE,uBAAuB;aACvC;SACJ,CAAC;QACK,qBAAgB,GAAW,KAAK,CAAC;QACjC,mBAAc,GAAU,MAAM,CAAC;QAEtC,aAAa;QACN,mBAAc,GAAc;YAC/B;gBACI,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAChC,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,qBAAgB,GAAc,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/F,sBAAiB,GAAO;YAC3B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,SAAS,EAAE;4BACP,KAAK,EAAE,aAAa;4BACpB,aAAa,EAAE,aAAa;yBAC/B;wBACD,KAAK,EAAE;4BACH,QAAQ,EAAE,CAAC;4BACX,SAAS,EAAE,aAAa;yBAC3B;qBAEJ,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACH,OAAO,EAAE,KAAK;4BACd,GAAG,EAAE,CAAC,GAAG,CAAC;4BACV,GAAG,EAAE,EAAE,GAAG,CAAC;yBACd;qBACJ,CAAC;aACL;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,CAAC;iBACjB;gBACD,KAAK,EAAE;oBACH,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,CAAC;iBACjB;aACJ;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,sBAAiB,GAAc;YAClC;gBACI,eAAe,EAAE,IAAI,CAAC,SAAS;gBAC/B,WAAW,EAAE,uBAAuB;aACvC;SACJ,CAAC;QACK,qBAAgB,GAAW,KAAK,CAAC;QACjC,mBAAc,GAAU,MAAM,CAAC;QAGtC,aAAa;QACN,mBAAc,GAAc;YAC/B;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,qBAAgB,GAAc,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/F,sBAAiB,GAAO;YAC3B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;qBACjB,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;qBACjB,CAAC;aACL;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,WAAW,EAAE,CAAC;iBACjB;gBACD,KAAK,EAAE;oBACH,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,CAAC;iBACjB;aACJ;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,sBAAiB,GAAc;YAClC;gBACI,eAAe,EAAE,sBAAsB;gBACvC,WAAW,EAAE,uBAAuB;aACvC;SACJ,CAAC;QACK,qBAAgB,GAAW,KAAK,CAAC;QACjC,mBAAc,GAAU,MAAM,CAAC;QAGtC,YAAY;QACL,kBAAa,GAAc;YAC9B;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBACtE,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,oBAAe,GAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrH,qBAAgB,GAAO;YAC1B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;wBACd,aAAa,EAAE,GAAG;qBACrB,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;qBACjB,CAAC;aACL;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,qBAAgB,GAAc;YACjC;gBACI,eAAe,EAAE,sBAAsB;gBACvC,WAAW,EAAE,CAAC;aACjB;SACJ,CAAC;QACK,oBAAe,GAAW,KAAK,CAAC;QAChC,kBAAa,GAAU,KAAK,CAAC;QAEpC,aAAa;QACN,mBAAc,GAAc;YAC/B;gBACI,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClD,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,qBAAgB,GAAc,CAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC,CAAC;QACxG,sBAAiB,GAAO;YAC3B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAC,KAAK;wBACb,MAAM,EAAC,KAAK;qBACf,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAC,KAAK;qBAChB,CAAC;aACL;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,sBAAiB,GAAc;YAClC;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,uBAAuB;gBACpC,WAAW,EAAE,CAAC;aACjB;SACJ,CAAC;QACK,qBAAgB,GAAW,KAAK,CAAC;QACjC,mBAAc,GAAU,MAAM,CAAC;QAGtC,YAAY;QACL,kBAAa,GAAc;YAC9B;gBACI,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClD,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,oBAAe,GAAc,CAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC,CAAC;QACvG,qBAAgB,GAAO;YAC1B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAC,KAAK;wBACb,aAAa,EAAE,GAAG;qBACrB,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAC,KAAK;wBACb,KAAK,EAAE;4BACH,WAAW,EAAE,IAAI;yBACpB;qBACJ,CAAC;aACL;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,qBAAgB,GAAc;YACjC;gBACI,eAAe,EAAE,gBAAgB;gBACjC,WAAW,EAAE,CAAC;aACjB;SACJ,CAAC;QACK,oBAAe,GAAW,KAAK,CAAC;QAChC,kBAAa,GAAU,KAAK,CAAC;QAGpC,YAAY;QACL,kBAAa,GAAc;YAC9B;gBACI,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClD,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,oBAAe,GAAc,CAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC,CAAC;QACvG,qBAAgB,GAAO;YAC1B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;qBACjB,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;qBACjB,CAAC;aACL;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,qBAAgB,GAAc;YACjC;gBACI,eAAe,EAAE,IAAI,CAAC,YAAY;gBAClC,WAAW,EAAE,aAAa;gBAC1B,WAAW,EAAE,CAAC;aACjB;SACJ,CAAC;QACK,oBAAe,GAAc;YAChC;gBACI,eAAe,EAAE,IAAI,CAAC,WAAW;gBACjC,WAAW,EAAE,aAAa;gBAC1B,WAAW,EAAE,CAAC;aACjB;SACJ,CAAC;QACK,qBAAgB,GAAc;YACjC;gBACI,eAAe,EAAE,IAAI,CAAC,YAAY;gBAClC,WAAW,EAAE,aAAa;gBAC1B,WAAW,EAAE,CAAC;aACjB;SACJ,CAAC;QACK,oBAAe,GAAW,KAAK,CAAC;QAChC,kBAAa,GAAU,KAAK,CAAC;QAGpC,aAAa;QACN,mBAAc,GAAc;YAC/B;gBACI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC;QACK,qBAAgB,GAAc,CAAC,SAAS,EAAC,UAAU,EAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,CAAC,CAAC;QACzF,sBAAiB,GAAO;YAC3B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAC,KAAK;wBACb,MAAM,EAAC,KAAK;qBACf,CAAC;gBACF,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAC,KAAK;qBAChB,CAAC;aACL;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,EAAE;gBACJ,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC;QACK,mBAAc,GAAc;YAC/B;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,IAAI,CAAC,SAAS;gBAC3B,WAAW,EAAE,CAAC;aACjB;SACJ,CAAC;QACK,sBAAiB,GAAc;YAClC;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,IAAI,CAAC,SAAS;gBAC3B,WAAW,EAAE,CAAC;aACjB;SACJ,CAAC;QACK,sBAAiB,GAAc;YAClC;gBACI,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,WAAW,EAAE,CAAC;aACjB;SACJ,CAAC;QACK,qBAAgB,GAAW,KAAK,CAAC;QACjC,mBAAc,GAAU,MAAM,CAAC;IAxXtB,CAAC;IAQjB,qBAAqB;IACd,qCAAU,GAAjB,UAAkB,GAAU,EAAC,OAAc;QACvC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEzC,IAAI,IAAI,GAAG,OAAO,GAAC,CAAC,GAAC,GAAG,GAAC,CAAC,GAAC,GAAG,GAAC,CAAC,GAAC,GAAG,GAAC,OAAO,GAAC,GAAG,GAAC,GAAG,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,SAAS;IACF,uCAAY,GAAnB,UAAoB,CAAK;QACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAEM,uCAAY,GAAnB,UAAoB,CAAK;QACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAhCL;QAAC,gBAAS,CAAC;YACP,WAAW,EAAE,oCAAoC;YACjD,UAAU,EAAE,CAAE,6BAAgB,CAAE;SACnC,CAAC;;wBAAA;IA6XF,uBAAC;AAAD,CAAC,AA5XD,IA4XC;AA5XY,wBAAgB,mBA4X5B,CAAA"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/app/widgets/widgets.component.ts b/demo/Angular2_Demo/app/widgets/widgets.component.ts
deleted file mode 100644
index 9fe6ac56189c32c854ba7133ba7b5d3ecd092112..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/app/widgets/widgets.component.ts
+++ /dev/null
@@ -1,388 +0,0 @@
-import { Component }        from '@angular/core';
-import { CHART_DIRECTIVES } from 'ng2-charts/ng2-charts';
-
-@Component({
-    templateUrl: 'app/widgets/widgets.component.html',
-    directives: [ CHART_DIRECTIVES ]
-})
-export class WidgetsComponent {
-
-    constructor() { }
-
-    public brandPrimary:string =  '#20a8d8';
-    public brandSuccess:string =  '#4dbd74';
-    public brandInfo:string =     '#63c2de';
-    public brandWarning:string =  '#f8cb00';
-    public brandDanger:string =   '#f86c6b';
-
-    //convert Hex to RGBA
-    public convertHex(hex:string,opacity:number){
-        hex = hex.replace('#','');
-        let r = parseInt(hex.substring(0,2), 16);
-        let g = parseInt(hex.substring(2,4), 16);
-        let b = parseInt(hex.substring(4,6), 16);
-
-        let rgba = 'rgba('+r+','+g+','+b+','+opacity/100+')';
-        return rgba;
-    }
-
-    // events
-    public chartClicked(e:any):void {
-        console.log(e);
-    }
-
-    public chartHovered(e:any):void {
-        console.log(e);
-    }
-
-    // lineChart1
-    public lineChart1Data:Array<any> = [
-        {
-            data: [65, 59, 84, 84, 51, 55, 40],
-            label: 'Series A'
-        }
-    ];
-    public lineChart1Labels:Array<any> = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-    public lineChart1Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                gridLines: {
-                    color: 'transparent',
-                    zeroLineColor: 'transparent'
-                },
-                ticks: {
-                    fontSize: 2,
-                    fontColor: 'transparent',
-                }
-
-            }],
-            yAxes: [{
-                display: false,
-                ticks: {
-                    display: false,
-                    min: 40 - 5,
-                    max: 84 + 5,
-                }
-            }],
-        },
-        elements: {
-            line: {
-                borderWidth: 1
-            },
-            point: {
-                radius: 4,
-                hitRadius: 10,
-                hoverRadius: 4,
-            },
-        },
-        legend: {
-            display: false
-        }
-    };
-    public lineChart1Colours:Array<any> = [
-        { // grey
-            backgroundColor: this.brandPrimary,
-            borderColor: 'rgba(255,255,255,.55)'
-        }
-    ];
-    public lineChart1Legend:boolean = false;
-    public lineChart1Type:string = 'line';
-
-    // lineChart2
-    public lineChart2Data:Array<any> = [
-        {
-            data: [1, 18, 9, 17, 34, 22, 11],
-            label: 'Series A'
-        }
-    ];
-    public lineChart2Labels:Array<any> = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-    public lineChart2Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                gridLines: {
-                    color: 'transparent',
-                    zeroLineColor: 'transparent'
-                },
-                ticks: {
-                    fontSize: 2,
-                    fontColor: 'transparent',
-                }
-
-            }],
-            yAxes: [{
-                display: false,
-                ticks: {
-                    display: false,
-                    min: 1 - 5,
-                    max: 34 + 5,
-                }
-            }],
-        },
-        elements: {
-            line: {
-                tension: 0.00001,
-                borderWidth: 1
-            },
-            point: {
-                radius: 4,
-                hitRadius: 10,
-                hoverRadius: 4,
-            },
-        },
-        legend: {
-            display: false
-        }
-    };
-    public lineChart2Colours:Array<any> = [
-        { // grey
-            backgroundColor: this.brandInfo,
-            borderColor: 'rgba(255,255,255,.55)'
-        }
-    ];
-    public lineChart2Legend:boolean = false;
-    public lineChart2Type:string = 'line';
-
-
-    // lineChart3
-    public lineChart3Data:Array<any> = [
-        {
-            data: [78, 81, 80, 45, 34, 12, 40],
-            label: 'Series A'
-        }
-    ];
-    public lineChart3Labels:Array<any> = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
-    public lineChart3Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                display: false
-            }],
-            yAxes: [{
-                display: false
-            }]
-        },
-        elements: {
-            line: {
-                borderWidth: 2
-            },
-            point: {
-                radius: 0,
-                hitRadius: 10,
-                hoverRadius: 4,
-            },
-        },
-        legend: {
-            display: false
-        }
-    };
-    public lineChart3Colours:Array<any> = [
-        {
-            backgroundColor: 'rgba(255,255,255,.2)',
-            borderColor: 'rgba(255,255,255,.55)',
-        }
-    ];
-    public lineChart3Legend:boolean = false;
-    public lineChart3Type:string = 'line';
-
-
-    // barChart1
-    public barChart1Data:Array<any> = [
-        {
-            data: [78, 81, 80, 45, 34, 12, 40, 78, 81, 80, 45, 34, 12, 40, 12, 40],
-            label: 'Series A'
-        }
-    ];
-    public barChart1Labels:Array<any> = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'];
-    public barChart1Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                display: false,
-                barPercentage: 0.6,
-            }],
-            yAxes: [{
-                display: false
-            }]
-        },
-        legend: {
-            display: false
-        }
-    };
-    public barChart1Colours:Array<any> = [
-        {
-            backgroundColor: 'rgba(255,255,255,.3)',
-            borderWidth: 0
-        }
-    ];
-    public barChart1Legend:boolean = false;
-    public barChart1Type:string = 'bar';
-
-    // lineChart4
-    public lineChart4Data:Array<any> = [
-        {
-            data: [4, 18, 9, 17, 34, 22, 11, 3, 15, 12, 18, 9],
-            label: 'Series A'
-        }
-    ];
-    public lineChart4Labels:Array<any> = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
-    public lineChart4Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                display:false,
-                points:false,
-            }],
-            yAxes: [{
-                display:false,
-            }]
-        },
-        elements: { point: { radius: 0 } },
-        legend: {
-            display: false
-        }
-    };
-    public lineChart4Colours:Array<any> = [
-        {
-            backgroundColor: 'transparent',
-            borderColor: 'rgba(255,255,255,.55)',
-            borderWidth: 2
-        }
-    ];
-    public lineChart4Legend:boolean = false;
-    public lineChart4Type:string = 'line';
-
-
-    // barChart2
-    public barChart2Data:Array<any> = [
-        {
-            data: [4, 18, 9, 17, 34, 22, 11, 3, 15, 12, 18, 9],
-            label: 'Series A'
-        }
-    ];
-    public barChart2Labels:Array<any> = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
-    public barChart2Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                display:false,
-                barPercentage: 0.6,
-            }],
-            yAxes: [{
-                display:false,
-                ticks: {
-                    beginAtZero: true,
-                }
-            }]
-        },
-        legend: {
-            display: false
-        }
-    };
-    public barChart2Colours:Array<any> = [
-        {
-            backgroundColor: 'rgba(0,0,0,.2)',
-            borderWidth: 0
-        }
-    ];
-    public barChart2Legend:boolean = false;
-    public barChart2Type:string = 'bar';
-
-
-    // barChart3
-    public barChart3Data:Array<any> = [
-        {
-            data: [4, 18, 9, 17, 34, 22, 11, 3, 15, 12, 18, 9],
-            label: 'Series A'
-        }
-    ];
-    public barChart3Labels:Array<any> = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
-    public barChart3Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                display: false
-            }],
-            yAxes: [{
-                display: false
-            }]
-        },
-        legend: {
-            display: false
-        }
-    };
-    public barChart3Primary:Array<any> = [
-        {
-            backgroundColor: this.brandPrimary,
-            borderColor: 'transparent',
-            borderWidth: 1
-        }
-    ];
-    public barChart3Danger:Array<any> = [
-        {
-            backgroundColor: this.brandDanger,
-            borderColor: 'transparent',
-            borderWidth: 1
-        }
-    ];
-    public barChart3Success:Array<any> = [
-        {
-            backgroundColor: this.brandSuccess,
-            borderColor: 'transparent',
-            borderWidth: 1
-        }
-    ];
-    public barChart3Legend:boolean = false;
-    public barChart3Type:string = 'bar';
-
-
-    // lineChart5
-    public lineChart5Data:Array<any> = [
-        {
-            data: [65, 59, 84, 84, 51, 55, 40],
-            label: 'Series A'
-        }
-    ];
-    public lineChart5Labels:Array<any> = ['January','February','March','April','May','June','July'];
-    public lineChart5Options:any = {
-        maintainAspectRatio: false,
-        scales: {
-            xAxes: [{
-                display:false,
-                points:false,
-            }],
-            yAxes: [{
-                display:false,
-            }]
-        },
-        elements: { point: { radius: 0 } }
-        legend: {
-            display: false
-        }
-    };
-    public lineChart5Info:Array<any> = [
-        {
-            backgroundColor: 'transparent',
-            borderColor: this.brandInfo,
-            borderWidth: 2
-        }
-    ];
-    public lineChart5Success:Array<any> = [
-        {
-            backgroundColor: 'transparent',
-            borderColor: this.brandInfo,
-            borderWidth: 2
-        }
-    ];
-    public lineChart5Warning:Array<any> = [
-        {
-            backgroundColor: 'transparent',
-            borderColor: this.brandWarning,
-            borderWidth: 2
-        }
-    ];
-    public lineChart5Legend:boolean = false;
-    public lineChart5Type:string = 'line';
-
-}
diff --git a/demo/Angular2_Demo/app/app.component.html b/demo/Angular2_Demo/assets/.npmignore
similarity index 100%
rename from demo/Angular2_Demo/app/app.component.html
rename to demo/Angular2_Demo/assets/.npmignore
diff --git a/demo/Angular2_Demo/css/font-awesome.css b/demo/Angular2_Demo/assets/css/font-awesome.css
similarity index 100%
rename from demo/Angular2_Demo/css/font-awesome.css
rename to demo/Angular2_Demo/assets/css/font-awesome.css
diff --git a/demo/Angular2_Demo/css/font-awesome.css.map b/demo/Angular2_Demo/assets/css/font-awesome.css.map
similarity index 100%
rename from demo/Angular2_Demo/css/font-awesome.css.map
rename to demo/Angular2_Demo/assets/css/font-awesome.css.map
diff --git a/demo/Angular2_Demo/css/font-awesome.min.css b/demo/Angular2_Demo/assets/css/font-awesome.min.css
similarity index 100%
rename from demo/Angular2_Demo/css/font-awesome.min.css
rename to demo/Angular2_Demo/assets/css/font-awesome.min.css
diff --git a/demo/Angular2_Demo/css/simple-line-icons.css b/demo/Angular2_Demo/assets/css/simple-line-icons.css
similarity index 100%
rename from demo/Angular2_Demo/css/simple-line-icons.css
rename to demo/Angular2_Demo/assets/css/simple-line-icons.css
diff --git a/demo/Angular2_Demo/css/style.css b/demo/Angular2_Demo/assets/css/style.css
old mode 100755
new mode 100644
similarity index 97%
rename from demo/Angular2_Demo/css/style.css
rename to demo/Angular2_Demo/assets/css/style.css
index 50768a548cfbab69e1f253e3264f1907859cd501..156d63b5b1f445b267324308b08348417a07c058
--- a/demo/Angular2_Demo/css/style.css
+++ b/demo/Angular2_Demo/assets/css/style.css
@@ -1546,14 +1546,8 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
 
 .has-success .form-control-feedback,
 .has-success .form-control-label,
-.has-success .radio,
-.has-success .checkbox,
-.has-success .radio-inline,
-.has-success .checkbox-inline,
-.has-success.radio label,
-.has-success.checkbox label,
-.has-success.radio-inline label,
-.has-success.checkbox-inline label,
+.has-success .form-check-label,
+.has-success .form-check-inline,
 .has-success .custom-control {
   color: #4dbd74; }
 
@@ -1573,14 +1567,8 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
 
 .has-warning .form-control-feedback,
 .has-warning .form-control-label,
-.has-warning .radio,
-.has-warning .checkbox,
-.has-warning .radio-inline,
-.has-warning .checkbox-inline,
-.has-warning.radio label,
-.has-warning.checkbox label,
-.has-warning.radio-inline label,
-.has-warning.checkbox-inline label,
+.has-warning .form-check-label,
+.has-warning .form-check-inline,
 .has-warning .custom-control {
   color: #f8cb00; }
 
@@ -1600,14 +1588,8 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
 
 .has-danger .form-control-feedback,
 .has-danger .form-control-label,
-.has-danger .radio,
-.has-danger .checkbox,
-.has-danger .radio-inline,
-.has-danger .checkbox-inline,
-.has-danger.radio label,
-.has-danger.checkbox label,
-.has-danger.radio-inline label,
-.has-danger.checkbox-inline label,
+.has-danger .form-check-label,
+.has-danger .form-check-inline,
 .has-danger .custom-control {
   color: #f86c6b; }
 
@@ -2866,7 +2848,6 @@ input[type="button"].btn-block {
     column-count: 3;
     column-gap: 1.25rem; }
     .card-columns .card {
-      display: inline-block;
       width: 100%; } }
 
 .breadcrumb {
@@ -2996,7 +2977,7 @@ a.tag:focus, a.tag:hover {
     background-color: #f63c3a; }
 
 .alert {
-  padding: 15px;
+  padding: 1rem;
   margin-bottom: 1rem;
   border: 1px solid transparent; }
 
@@ -3007,11 +2988,11 @@ a.tag:focus, a.tag:hover {
   font-weight: bold; }
 
 .alert-dismissible {
-  padding-right: 35px; }
+  padding-right: 2rem; }
   .alert-dismissible .close {
     position: relative;
-    top: -2px;
-    right: -21px;
+    top: -.125rem;
+    right: -1rem;
     color: inherit; }
 
 .alert-success {
@@ -3172,11 +3153,6 @@ base::-moz-progress-bar,
   .progress-danger .progress-bar {
     background-color: #f86c6b; } }
 
-.media {
-  margin-top: 15px; }
-  .media:first-child {
-    margin-top: 0; }
-
 .media,
 .media-body {
   overflow: hidden; }
@@ -3699,9 +3675,6 @@ button.close {
   content: "";
   border-width: 10px; }
 
-.bg-inverse {
-  background-color: #263238; }
-
 .bg-faded {
   background-color: #eceff1; }
 
@@ -3740,6 +3713,13 @@ a.bg-warning:focus, a.bg-warning:hover {
 a.bg-danger:focus, a.bg-danger:hover {
   background-color: #f63c3a; }
 
+.bg-inverse {
+  color: #fff !important;
+  background-color: #263238 !important; }
+
+a.bg-inverse:focus, a.bg-inverse:hover {
+  background-color: #11171a; }
+
 .clearfix::after {
   content: "";
   display: table;
@@ -4177,37 +4157,37 @@ a.bg-danger:focus, a.bg-danger:hover {
   color: #b0bec5 !important; }
 
 a.text-muted:focus, a.text-muted:hover {
-  color: #93a6af; }
+  color: #93a6af !important; }
 
 .text-primary {
   color: #20a8d8 !important; }
 
 a.text-primary:focus, a.text-primary:hover {
-  color: #1985ac; }
+  color: #1985ac !important; }
 
 .text-success {
   color: #4dbd74 !important; }
 
 a.text-success:focus, a.text-success:hover {
-  color: #3a9d5d; }
+  color: #3a9d5d !important; }
 
 .text-info {
   color: #63c2de !important; }
 
 a.text-info:focus, a.text-info:hover {
-  color: #39b2d5; }
+  color: #39b2d5 !important; }
 
 .text-warning {
   color: #f8cb00 !important; }
 
 a.text-warning:focus, a.text-warning:hover {
-  color: #c5a100; }
+  color: #c5a100 !important; }
 
 .text-danger {
   color: #f86c6b !important; }
 
 a.text-danger:focus, a.text-danger:hover {
-  color: #f63c3a; }
+  color: #f63c3a !important; }
 
 .text-hide {
   font: 0/0 a;
@@ -4279,6 +4259,49 @@ a.text-danger:focus, a.text-danger:hover {
   .hidden-print {
     display: none !important; } }
 
+.chart-legend,
+.bar-legend,
+.line-legend,
+.pie-legend,
+.radar-legend,
+.polararea-legend,
+.doughnut-legend {
+  list-style-type: none;
+  margin-top: 5px;
+  text-align: center;
+  -webkit-padding-start: 0;
+  -moz-padding-start: 0;
+  padding-left: 0; }
+
+.chart-legend li,
+.bar-legend li,
+.line-legend li,
+.pie-legend li,
+.radar-legend li,
+.polararea-legend li,
+.doughnut-legend li {
+  display: inline-block;
+  white-space: nowrap;
+  position: relative;
+  margin-bottom: 4px;
+  padding: 2px 8px 2px 28px;
+  font-size: smaller;
+  cursor: default; }
+
+.chart-legend li span,
+.bar-legend li span,
+.line-legend li span,
+.pie-legend li span,
+.radar-legend li span,
+.polararea-legend li span,
+.doughnut-legend li span {
+  display: block;
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 20px;
+  height: 20px; }
+
 .breadcrumb {
   position: relative;
   margin-bottom: 20px;
@@ -4568,7 +4591,7 @@ header.navbar {
     height: 55px;
     padding: 0.5rem 1rem;
     background-color: #fff;
-    background-image: url("../img/coreui-logotyp.png");
+    background-image: url("../img/logo.png");
     background-repeat: no-repeat;
     background-position: center center;
     background-size: 70px auto;
@@ -4630,49 +4653,6 @@ header.navbar .navbar-nav .nav-link {
 .tag-pill {
   border-radius: 10rem; }
 
-.chart-legend,
-.bar-legend,
-.line-legend,
-.pie-legend,
-.radar-legend,
-.polararea-legend,
-.doughnut-legend {
-  list-style-type: none;
-  margin-top: 5px;
-  text-align: center;
-  -webkit-padding-start: 0;
-  -moz-padding-start: 0;
-  padding-left: 0; }
-
-.chart-legend li,
-.bar-legend li,
-.line-legend li,
-.pie-legend li,
-.radar-legend li,
-.polararea-legend li,
-.doughnut-legend li {
-  display: inline-block;
-  white-space: nowrap;
-  position: relative;
-  margin-bottom: 4px;
-  padding: 2px 8px 2px 28px;
-  font-size: smaller;
-  cursor: default; }
-
-.chart-legend li span,
-.bar-legend li span,
-.line-legend li span,
-.pie-legend li span,
-.radar-legend li span,
-.polararea-legend li span,
-.doughnut-legend li span {
-  display: block;
-  position: absolute;
-  left: 0;
-  top: 0;
-  width: 20px;
-  height: 20px; }
-
 body {
   -moz-osx-font-smoothing: grayscale;
   -webkit-font-smoothing: antialiased; }
@@ -4913,23 +4893,6 @@ body:not(.top-nav) .sidebar {
     opacity: .8; }
     body:not(.top-nav) .sidebar .sidebar-close:hover {
       opacity: 1; }
-  body:not(.top-nav) .sidebar .sidebar-header {
-    padding-bottom: 10px;
-    text-align: center;
-    background: rgba(0, 0, 0, 0.2); }
-    body:not(.top-nav) .sidebar .sidebar-header .img-avatar {
-      width: 80px;
-      margin: 20px auto 10px;
-      border-radius: 50em; }
-    body:not(.top-nav) .sidebar .sidebar-header .text-muted {
-      margin-top: -5px; }
-    body:not(.top-nav) .sidebar .sidebar-header > .btn-group {
-      margin-top: 10px; }
-    body:not(.top-nav) .sidebar .sidebar-header .btn-link {
-      color: #b0bec5; }
-      body:not(.top-nav) .sidebar .sidebar-header .btn-link:hover {
-        color: #fff;
-        text-decoration: none; }
   body:not(.top-nav) .sidebar .sidebar-nav {
     position: relative;
     overflow-x: hidden;
@@ -5024,90 +4987,13 @@ body:not(.top-nav) .sidebar {
           transform: rotate(-90deg); }
         body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open .nav-dropdown.open {
           border-left: 0; }
-  body:not(.top-nav) .sidebar .sidebar-footer {
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    width: 200px;
-    height: 86px;
-    padding: 10px 0 0;
-    overflow: visible;
-    background: rgba(0, 0, 0, 0.2); }
-    body:not(.top-nav) .sidebar .sidebar-footer ul.sidebar-footer-menu {
-      position: relative;
-      display: table;
-      width: 100%;
-      padding: 0;
-      margin: 0;
-      table-layout: fixed; }
-      body:not(.top-nav) .sidebar .sidebar-footer ul.sidebar-footer-menu li {
-        display: table-cell;
-        text-align: center; }
-        body:not(.top-nav) .sidebar .sidebar-footer ul.sidebar-footer-menu li button {
-          color: #fff;
-          background: none;
-          border: 0; }
-          body:not(.top-nav) .sidebar .sidebar-footer ul.sidebar-footer-menu li button i {
-            display: block;
-            font-size: 20px; }
-          body:not(.top-nav) .sidebar .sidebar-footer ul.sidebar-footer-menu li button span {
-            font-size: 10px; }
-      body:not(.top-nav) .sidebar .sidebar-footer ul.sidebar-footer-menu .dropdown-menu {
-        position: fixed;
-        bottom: 85px;
-        left: 5px;
-        width: 190px;
-        overflow: hidden;
-        background: #fff;
-        border: 0; }
-        body:not(.top-nav) .sidebar .sidebar-footer ul.sidebar-footer-menu .dropdown-menu div .title {
-          font-size: 12px; }
-          body:not(.top-nav) .sidebar .sidebar-footer ul.sidebar-footer-menu .dropdown-menu div .title span {
-            float: right;
-            font-weight: 600; }
-      body:not(.top-nav) .sidebar .sidebar-footer ul.sidebar-footer-menu .btn-group .dropdown-toggle:active:before,
-      body:not(.top-nav) .sidebar .sidebar-footer ul.sidebar-footer-menu .btn-group.open .dropdown-toggle:before {
-        position: absolute;
-        top: -8px;
-        margin-left: -8px;
-        content: '';
-        border-top: 8px solid #fff;
-        border-right: 8px solid transparent;
-        border-left: 8px solid transparent; }
-    body:not(.top-nav) .sidebar .sidebar-footer ul.terms {
-      position: relative;
-      display: table;
-      width: 100%;
-      padding: 0;
-      line-height: 30px;
-      table-layout: fixed;
-      background: rgba(0, 0, 0, 0.2); }
-      body:not(.top-nav) .sidebar .sidebar-footer ul.terms li {
-        display: table-cell;
-        padding: 0;
-        font-size: 12px;
-        text-align: center; }
-        body:not(.top-nav) .sidebar .sidebar-footer ul.terms li a {
-          color: #b0bec5;
-          text-decoration: none; }
-          body:not(.top-nav) .sidebar .sidebar-footer ul.terms li a:hover {
-            color: #fff; }
 
 @media (min-width: 544px) {
   body.sidebar-nav.compact-nav .sidebar {
     z-index: 1029;
     width: 50px; }
-    body.sidebar-nav.compact-nav .sidebar .sidebar-header {
-      padding: 0; }
-      body.sidebar-nav.compact-nav .sidebar .sidebar-header .img-avatar {
-        width: 40px;
-        margin: 5px auto; }
-      body.sidebar-nav.compact-nav .sidebar .sidebar-header div {
-        display: none; }
     body.sidebar-nav.compact-nav .sidebar .sidebar-items {
       overflow: visible; }
-    body.sidebar-nav.compact-nav .sidebar .sidebar-footer {
-      display: none; }
     body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-title, body.sidebar-nav.compact-nav .sidebar ul.nav li.divider {
       display: none; }
     body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item {
@@ -5140,12 +5026,7 @@ body:not(.top-nav) .sidebar {
           right: 15px;
           display: none; }
         body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link:hover {
-          width: 200px;
-          background: #20a8d8 !important;
-          color: #fff !important; }
-          body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link:hover.nav-dropdown-toggle, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link:hover.nav-dropdown-toggle.active {
-            background: #20a8d8 !important;
-            color: #fff !important; }
+          width: 200px; }
           body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link:hover .tag {
             display: inline; }
       body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul {
@@ -5161,15 +5042,10 @@ body:not(.top-nav) .sidebar {
             position: absolute;
             top: 0;
             left: 100%; }
-      body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item.nav-dropdown.open {
-        background: #20a8d8 !important;
-        color: #fff !important; }
-        body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item.nav-dropdown.open > ul, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item.nav-dropdown.open > ol {
-          display: none; }
+      body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item.nav-dropdown.open > ul, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item.nav-dropdown.open > ol {
+        display: none; }
       body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > a.nav-link {
-        width: 250px;
-        background: #20a8d8 !important;
-        color: #fff !important; }
+        width: 250px; }
       body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ul, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ol {
         display: inline; }
         body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ul a.nav-link, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ol a.nav-link {
diff --git a/demo/Angular2_Demo/fonts/FontAwesome.otf b/demo/Angular2_Demo/assets/fonts/FontAwesome.otf
similarity index 100%
rename from demo/Angular2_Demo/fonts/FontAwesome.otf
rename to demo/Angular2_Demo/assets/fonts/FontAwesome.otf
diff --git a/demo/Angular2_Demo/fonts/Simple-Line-Icons.eot b/demo/Angular2_Demo/assets/fonts/Simple-Line-Icons.eot
similarity index 100%
rename from demo/Angular2_Demo/fonts/Simple-Line-Icons.eot
rename to demo/Angular2_Demo/assets/fonts/Simple-Line-Icons.eot
diff --git a/demo/Angular2_Demo/fonts/Simple-Line-Icons.svg b/demo/Angular2_Demo/assets/fonts/Simple-Line-Icons.svg
similarity index 100%
rename from demo/Angular2_Demo/fonts/Simple-Line-Icons.svg
rename to demo/Angular2_Demo/assets/fonts/Simple-Line-Icons.svg
diff --git a/demo/Angular2_Demo/fonts/Simple-Line-Icons.ttf b/demo/Angular2_Demo/assets/fonts/Simple-Line-Icons.ttf
similarity index 100%
rename from demo/Angular2_Demo/fonts/Simple-Line-Icons.ttf
rename to demo/Angular2_Demo/assets/fonts/Simple-Line-Icons.ttf
diff --git a/demo/Angular2_Demo/fonts/Simple-Line-Icons.woff b/demo/Angular2_Demo/assets/fonts/Simple-Line-Icons.woff
similarity index 100%
rename from demo/Angular2_Demo/fonts/Simple-Line-Icons.woff
rename to demo/Angular2_Demo/assets/fonts/Simple-Line-Icons.woff
diff --git a/demo/Angular2_Demo/fonts/Simple-Line-Icons.woff2 b/demo/Angular2_Demo/assets/fonts/Simple-Line-Icons.woff2
similarity index 100%
rename from demo/Angular2_Demo/fonts/Simple-Line-Icons.woff2
rename to demo/Angular2_Demo/assets/fonts/Simple-Line-Icons.woff2
diff --git a/demo/Angular2_Demo/fonts/fontawesome-webfont.eot b/demo/Angular2_Demo/assets/fonts/fontawesome-webfont.eot
similarity index 100%
rename from demo/Angular2_Demo/fonts/fontawesome-webfont.eot
rename to demo/Angular2_Demo/assets/fonts/fontawesome-webfont.eot
diff --git a/demo/Angular2_Demo/fonts/fontawesome-webfont.svg b/demo/Angular2_Demo/assets/fonts/fontawesome-webfont.svg
similarity index 100%
rename from demo/Angular2_Demo/fonts/fontawesome-webfont.svg
rename to demo/Angular2_Demo/assets/fonts/fontawesome-webfont.svg
diff --git a/demo/Angular2_Demo/fonts/fontawesome-webfont.ttf b/demo/Angular2_Demo/assets/fonts/fontawesome-webfont.ttf
similarity index 100%
rename from demo/Angular2_Demo/fonts/fontawesome-webfont.ttf
rename to demo/Angular2_Demo/assets/fonts/fontawesome-webfont.ttf
diff --git a/demo/Angular2_Demo/fonts/fontawesome-webfont.woff b/demo/Angular2_Demo/assets/fonts/fontawesome-webfont.woff
similarity index 100%
rename from demo/Angular2_Demo/fonts/fontawesome-webfont.woff
rename to demo/Angular2_Demo/assets/fonts/fontawesome-webfont.woff
diff --git a/demo/Angular2_Demo/fonts/fontawesome-webfont.woff2 b/demo/Angular2_Demo/assets/fonts/fontawesome-webfont.woff2
similarity index 100%
rename from demo/Angular2_Demo/fonts/fontawesome-webfont.woff2
rename to demo/Angular2_Demo/assets/fonts/fontawesome-webfont.woff2
diff --git a/demo/Angular2_Demo/img/avatars/1.jpg b/demo/Angular2_Demo/assets/img/avatars/1.jpg
similarity index 100%
rename from demo/Angular2_Demo/img/avatars/1.jpg
rename to demo/Angular2_Demo/assets/img/avatars/1.jpg
diff --git a/demo/Angular2_Demo/img/avatars/2.jpg b/demo/Angular2_Demo/assets/img/avatars/2.jpg
similarity index 100%
rename from demo/Angular2_Demo/img/avatars/2.jpg
rename to demo/Angular2_Demo/assets/img/avatars/2.jpg
diff --git a/demo/Angular2_Demo/img/avatars/3.jpg b/demo/Angular2_Demo/assets/img/avatars/3.jpg
similarity index 100%
rename from demo/Angular2_Demo/img/avatars/3.jpg
rename to demo/Angular2_Demo/assets/img/avatars/3.jpg
diff --git a/demo/Angular2_Demo/img/avatars/4.jpg b/demo/Angular2_Demo/assets/img/avatars/4.jpg
similarity index 100%
rename from demo/Angular2_Demo/img/avatars/4.jpg
rename to demo/Angular2_Demo/assets/img/avatars/4.jpg
diff --git a/demo/Angular2_Demo/img/avatars/5.jpg b/demo/Angular2_Demo/assets/img/avatars/5.jpg
similarity index 100%
rename from demo/Angular2_Demo/img/avatars/5.jpg
rename to demo/Angular2_Demo/assets/img/avatars/5.jpg
diff --git a/demo/Angular2_Demo/img/avatars/6.jpg b/demo/Angular2_Demo/assets/img/avatars/6.jpg
similarity index 100%
rename from demo/Angular2_Demo/img/avatars/6.jpg
rename to demo/Angular2_Demo/assets/img/avatars/6.jpg
diff --git a/demo/Angular2_Demo/img/avatars/7.jpg b/demo/Angular2_Demo/assets/img/avatars/7.jpg
similarity index 100%
rename from demo/Angular2_Demo/img/avatars/7.jpg
rename to demo/Angular2_Demo/assets/img/avatars/7.jpg
diff --git a/demo/Angular2_Demo/img/avatars/8.jpg b/demo/Angular2_Demo/assets/img/avatars/8.jpg
similarity index 100%
rename from demo/Angular2_Demo/img/avatars/8.jpg
rename to demo/Angular2_Demo/assets/img/avatars/8.jpg
diff --git a/demo/Angular2_Demo/img/flags/ASEAN.png b/demo/Angular2_Demo/assets/img/flags/ASEAN.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/ASEAN.png
rename to demo/Angular2_Demo/assets/img/flags/ASEAN.png
diff --git a/demo/Angular2_Demo/img/flags/Afghanistan.png b/demo/Angular2_Demo/assets/img/flags/Afghanistan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Afghanistan.png
rename to demo/Angular2_Demo/assets/img/flags/Afghanistan.png
diff --git a/demo/Angular2_Demo/img/flags/African Union.png b/demo/Angular2_Demo/assets/img/flags/African Union.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/African Union.png
rename to demo/Angular2_Demo/assets/img/flags/African Union.png
diff --git a/demo/Angular2_Demo/img/flags/Albania.png b/demo/Angular2_Demo/assets/img/flags/Albania.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Albania.png
rename to demo/Angular2_Demo/assets/img/flags/Albania.png
diff --git a/demo/Angular2_Demo/img/flags/Algeria.png b/demo/Angular2_Demo/assets/img/flags/Algeria.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Algeria.png
rename to demo/Angular2_Demo/assets/img/flags/Algeria.png
diff --git a/demo/Angular2_Demo/img/flags/American Samoa.png b/demo/Angular2_Demo/assets/img/flags/American Samoa.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/American Samoa.png
rename to demo/Angular2_Demo/assets/img/flags/American Samoa.png
diff --git a/demo/Angular2_Demo/img/flags/Andorra.png b/demo/Angular2_Demo/assets/img/flags/Andorra.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Andorra.png
rename to demo/Angular2_Demo/assets/img/flags/Andorra.png
diff --git a/demo/Angular2_Demo/img/flags/Angola.png b/demo/Angular2_Demo/assets/img/flags/Angola.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Angola.png
rename to demo/Angular2_Demo/assets/img/flags/Angola.png
diff --git a/demo/Angular2_Demo/img/flags/Anguilla.png b/demo/Angular2_Demo/assets/img/flags/Anguilla.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Anguilla.png
rename to demo/Angular2_Demo/assets/img/flags/Anguilla.png
diff --git a/demo/Angular2_Demo/img/flags/Antarctica.png b/demo/Angular2_Demo/assets/img/flags/Antarctica.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Antarctica.png
rename to demo/Angular2_Demo/assets/img/flags/Antarctica.png
diff --git a/demo/Angular2_Demo/img/flags/Antigua & Barbuda.png b/demo/Angular2_Demo/assets/img/flags/Antigua & Barbuda.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Antigua & Barbuda.png
rename to demo/Angular2_Demo/assets/img/flags/Antigua & Barbuda.png
diff --git a/demo/Angular2_Demo/img/flags/Arab League.png b/demo/Angular2_Demo/assets/img/flags/Arab League.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Arab League.png
rename to demo/Angular2_Demo/assets/img/flags/Arab League.png
diff --git a/demo/Angular2_Demo/img/flags/Argentina.png b/demo/Angular2_Demo/assets/img/flags/Argentina.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Argentina.png
rename to demo/Angular2_Demo/assets/img/flags/Argentina.png
diff --git a/demo/Angular2_Demo/img/flags/Armenia.png b/demo/Angular2_Demo/assets/img/flags/Armenia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Armenia.png
rename to demo/Angular2_Demo/assets/img/flags/Armenia.png
diff --git a/demo/Angular2_Demo/img/flags/Aruba.png b/demo/Angular2_Demo/assets/img/flags/Aruba.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Aruba.png
rename to demo/Angular2_Demo/assets/img/flags/Aruba.png
diff --git a/demo/Angular2_Demo/img/flags/Australia.png b/demo/Angular2_Demo/assets/img/flags/Australia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Australia.png
rename to demo/Angular2_Demo/assets/img/flags/Australia.png
diff --git a/demo/Angular2_Demo/img/flags/Austria.png b/demo/Angular2_Demo/assets/img/flags/Austria.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Austria.png
rename to demo/Angular2_Demo/assets/img/flags/Austria.png
diff --git a/demo/Angular2_Demo/img/flags/Azerbaijan.png b/demo/Angular2_Demo/assets/img/flags/Azerbaijan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Azerbaijan.png
rename to demo/Angular2_Demo/assets/img/flags/Azerbaijan.png
diff --git a/demo/Angular2_Demo/img/flags/Bahamas.png b/demo/Angular2_Demo/assets/img/flags/Bahamas.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Bahamas.png
rename to demo/Angular2_Demo/assets/img/flags/Bahamas.png
diff --git a/demo/Angular2_Demo/img/flags/Bahrain.png b/demo/Angular2_Demo/assets/img/flags/Bahrain.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Bahrain.png
rename to demo/Angular2_Demo/assets/img/flags/Bahrain.png
diff --git a/demo/Angular2_Demo/img/flags/Bangladesh.png b/demo/Angular2_Demo/assets/img/flags/Bangladesh.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Bangladesh.png
rename to demo/Angular2_Demo/assets/img/flags/Bangladesh.png
diff --git a/demo/Angular2_Demo/img/flags/Barbados.png b/demo/Angular2_Demo/assets/img/flags/Barbados.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Barbados.png
rename to demo/Angular2_Demo/assets/img/flags/Barbados.png
diff --git a/demo/Angular2_Demo/img/flags/Belarus.png b/demo/Angular2_Demo/assets/img/flags/Belarus.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Belarus.png
rename to demo/Angular2_Demo/assets/img/flags/Belarus.png
diff --git a/demo/Angular2_Demo/img/flags/Belgium.png b/demo/Angular2_Demo/assets/img/flags/Belgium.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Belgium.png
rename to demo/Angular2_Demo/assets/img/flags/Belgium.png
diff --git a/demo/Angular2_Demo/img/flags/Belize.png b/demo/Angular2_Demo/assets/img/flags/Belize.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Belize.png
rename to demo/Angular2_Demo/assets/img/flags/Belize.png
diff --git a/demo/Angular2_Demo/img/flags/Benin.png b/demo/Angular2_Demo/assets/img/flags/Benin.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Benin.png
rename to demo/Angular2_Demo/assets/img/flags/Benin.png
diff --git a/demo/Angular2_Demo/img/flags/Bermuda.png b/demo/Angular2_Demo/assets/img/flags/Bermuda.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Bermuda.png
rename to demo/Angular2_Demo/assets/img/flags/Bermuda.png
diff --git a/demo/Angular2_Demo/img/flags/Bhutan.png b/demo/Angular2_Demo/assets/img/flags/Bhutan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Bhutan.png
rename to demo/Angular2_Demo/assets/img/flags/Bhutan.png
diff --git a/demo/Angular2_Demo/img/flags/Bolivia.png b/demo/Angular2_Demo/assets/img/flags/Bolivia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Bolivia.png
rename to demo/Angular2_Demo/assets/img/flags/Bolivia.png
diff --git a/demo/Angular2_Demo/img/flags/Bosnia & Herzegovina.png b/demo/Angular2_Demo/assets/img/flags/Bosnia & Herzegovina.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Bosnia & Herzegovina.png
rename to demo/Angular2_Demo/assets/img/flags/Bosnia & Herzegovina.png
diff --git a/demo/Angular2_Demo/img/flags/Botswana.png b/demo/Angular2_Demo/assets/img/flags/Botswana.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Botswana.png
rename to demo/Angular2_Demo/assets/img/flags/Botswana.png
diff --git a/demo/Angular2_Demo/img/flags/Brazil.png b/demo/Angular2_Demo/assets/img/flags/Brazil.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Brazil.png
rename to demo/Angular2_Demo/assets/img/flags/Brazil.png
diff --git a/demo/Angular2_Demo/img/flags/Brunei.png b/demo/Angular2_Demo/assets/img/flags/Brunei.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Brunei.png
rename to demo/Angular2_Demo/assets/img/flags/Brunei.png
diff --git a/demo/Angular2_Demo/img/flags/Bulgaria.png b/demo/Angular2_Demo/assets/img/flags/Bulgaria.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Bulgaria.png
rename to demo/Angular2_Demo/assets/img/flags/Bulgaria.png
diff --git a/demo/Angular2_Demo/img/flags/Burkina Faso.png b/demo/Angular2_Demo/assets/img/flags/Burkina Faso.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Burkina Faso.png
rename to demo/Angular2_Demo/assets/img/flags/Burkina Faso.png
diff --git a/demo/Angular2_Demo/img/flags/Burundi.png b/demo/Angular2_Demo/assets/img/flags/Burundi.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Burundi.png
rename to demo/Angular2_Demo/assets/img/flags/Burundi.png
diff --git a/demo/Angular2_Demo/img/flags/CARICOM.png b/demo/Angular2_Demo/assets/img/flags/CARICOM.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/CARICOM.png
rename to demo/Angular2_Demo/assets/img/flags/CARICOM.png
diff --git a/demo/Angular2_Demo/img/flags/CIS.png b/demo/Angular2_Demo/assets/img/flags/CIS.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/CIS.png
rename to demo/Angular2_Demo/assets/img/flags/CIS.png
diff --git a/demo/Angular2_Demo/img/flags/Cambodja.png b/demo/Angular2_Demo/assets/img/flags/Cambodja.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Cambodja.png
rename to demo/Angular2_Demo/assets/img/flags/Cambodja.png
diff --git a/demo/Angular2_Demo/img/flags/Cameroon.png b/demo/Angular2_Demo/assets/img/flags/Cameroon.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Cameroon.png
rename to demo/Angular2_Demo/assets/img/flags/Cameroon.png
diff --git a/demo/Angular2_Demo/img/flags/Canada.png b/demo/Angular2_Demo/assets/img/flags/Canada.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Canada.png
rename to demo/Angular2_Demo/assets/img/flags/Canada.png
diff --git a/demo/Angular2_Demo/img/flags/Cape Verde.png b/demo/Angular2_Demo/assets/img/flags/Cape Verde.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Cape Verde.png
rename to demo/Angular2_Demo/assets/img/flags/Cape Verde.png
diff --git a/demo/Angular2_Demo/img/flags/Cayman Islands.png b/demo/Angular2_Demo/assets/img/flags/Cayman Islands.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Cayman Islands.png
rename to demo/Angular2_Demo/assets/img/flags/Cayman Islands.png
diff --git a/demo/Angular2_Demo/img/flags/Central African Republic.png b/demo/Angular2_Demo/assets/img/flags/Central African Republic.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Central African Republic.png
rename to demo/Angular2_Demo/assets/img/flags/Central African Republic.png
diff --git a/demo/Angular2_Demo/img/flags/Chad.png b/demo/Angular2_Demo/assets/img/flags/Chad.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Chad.png
rename to demo/Angular2_Demo/assets/img/flags/Chad.png
diff --git a/demo/Angular2_Demo/img/flags/Chile.png b/demo/Angular2_Demo/assets/img/flags/Chile.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Chile.png
rename to demo/Angular2_Demo/assets/img/flags/Chile.png
diff --git a/demo/Angular2_Demo/img/flags/China.png b/demo/Angular2_Demo/assets/img/flags/China.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/China.png
rename to demo/Angular2_Demo/assets/img/flags/China.png
diff --git a/demo/Angular2_Demo/img/flags/Colombia.png b/demo/Angular2_Demo/assets/img/flags/Colombia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Colombia.png
rename to demo/Angular2_Demo/assets/img/flags/Colombia.png
diff --git a/demo/Angular2_Demo/img/flags/Commonwealth.png b/demo/Angular2_Demo/assets/img/flags/Commonwealth.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Commonwealth.png
rename to demo/Angular2_Demo/assets/img/flags/Commonwealth.png
diff --git a/demo/Angular2_Demo/img/flags/Comoros.png b/demo/Angular2_Demo/assets/img/flags/Comoros.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Comoros.png
rename to demo/Angular2_Demo/assets/img/flags/Comoros.png
diff --git a/demo/Angular2_Demo/img/flags/Congo-Brazzaville.png b/demo/Angular2_Demo/assets/img/flags/Congo-Brazzaville.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Congo-Brazzaville.png
rename to demo/Angular2_Demo/assets/img/flags/Congo-Brazzaville.png
diff --git a/demo/Angular2_Demo/img/flags/Congo-Kinshasa(Zaire).png b/demo/Angular2_Demo/assets/img/flags/Congo-Kinshasa(Zaire).png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Congo-Kinshasa(Zaire).png
rename to demo/Angular2_Demo/assets/img/flags/Congo-Kinshasa(Zaire).png
diff --git a/demo/Angular2_Demo/img/flags/Cook Islands.png b/demo/Angular2_Demo/assets/img/flags/Cook Islands.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Cook Islands.png
rename to demo/Angular2_Demo/assets/img/flags/Cook Islands.png
diff --git a/demo/Angular2_Demo/img/flags/Costa Rica.png b/demo/Angular2_Demo/assets/img/flags/Costa Rica.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Costa Rica.png
rename to demo/Angular2_Demo/assets/img/flags/Costa Rica.png
diff --git a/demo/Angular2_Demo/img/flags/Cote d'Ivoire.png b/demo/Angular2_Demo/assets/img/flags/Cote d'Ivoire.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Cote d'Ivoire.png
rename to demo/Angular2_Demo/assets/img/flags/Cote d'Ivoire.png
diff --git a/demo/Angular2_Demo/img/flags/Croatia.png b/demo/Angular2_Demo/assets/img/flags/Croatia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Croatia.png
rename to demo/Angular2_Demo/assets/img/flags/Croatia.png
diff --git a/demo/Angular2_Demo/img/flags/Cuba.png b/demo/Angular2_Demo/assets/img/flags/Cuba.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Cuba.png
rename to demo/Angular2_Demo/assets/img/flags/Cuba.png
diff --git a/demo/Angular2_Demo/img/flags/Cyprus.png b/demo/Angular2_Demo/assets/img/flags/Cyprus.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Cyprus.png
rename to demo/Angular2_Demo/assets/img/flags/Cyprus.png
diff --git a/demo/Angular2_Demo/img/flags/Czech Republic.png b/demo/Angular2_Demo/assets/img/flags/Czech Republic.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Czech Republic.png
rename to demo/Angular2_Demo/assets/img/flags/Czech Republic.png
diff --git a/demo/Angular2_Demo/img/flags/Denmark.png b/demo/Angular2_Demo/assets/img/flags/Denmark.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Denmark.png
rename to demo/Angular2_Demo/assets/img/flags/Denmark.png
diff --git a/demo/Angular2_Demo/img/flags/Djibouti.png b/demo/Angular2_Demo/assets/img/flags/Djibouti.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Djibouti.png
rename to demo/Angular2_Demo/assets/img/flags/Djibouti.png
diff --git a/demo/Angular2_Demo/img/flags/Dominica.png b/demo/Angular2_Demo/assets/img/flags/Dominica.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Dominica.png
rename to demo/Angular2_Demo/assets/img/flags/Dominica.png
diff --git a/demo/Angular2_Demo/img/flags/Dominican Republic.png b/demo/Angular2_Demo/assets/img/flags/Dominican Republic.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Dominican Republic.png
rename to demo/Angular2_Demo/assets/img/flags/Dominican Republic.png
diff --git a/demo/Angular2_Demo/img/flags/Ecuador.png b/demo/Angular2_Demo/assets/img/flags/Ecuador.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Ecuador.png
rename to demo/Angular2_Demo/assets/img/flags/Ecuador.png
diff --git a/demo/Angular2_Demo/img/flags/Egypt.png b/demo/Angular2_Demo/assets/img/flags/Egypt.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Egypt.png
rename to demo/Angular2_Demo/assets/img/flags/Egypt.png
diff --git a/demo/Angular2_Demo/img/flags/El Salvador.png b/demo/Angular2_Demo/assets/img/flags/El Salvador.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/El Salvador.png
rename to demo/Angular2_Demo/assets/img/flags/El Salvador.png
diff --git a/demo/Angular2_Demo/img/flags/England.png b/demo/Angular2_Demo/assets/img/flags/England.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/England.png
rename to demo/Angular2_Demo/assets/img/flags/England.png
diff --git a/demo/Angular2_Demo/img/flags/Equatorial Guinea.png b/demo/Angular2_Demo/assets/img/flags/Equatorial Guinea.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Equatorial Guinea.png
rename to demo/Angular2_Demo/assets/img/flags/Equatorial Guinea.png
diff --git a/demo/Angular2_Demo/img/flags/Eritrea.png b/demo/Angular2_Demo/assets/img/flags/Eritrea.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Eritrea.png
rename to demo/Angular2_Demo/assets/img/flags/Eritrea.png
diff --git a/demo/Angular2_Demo/img/flags/Estonia.png b/demo/Angular2_Demo/assets/img/flags/Estonia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Estonia.png
rename to demo/Angular2_Demo/assets/img/flags/Estonia.png
diff --git a/demo/Angular2_Demo/img/flags/Ethiopia.png b/demo/Angular2_Demo/assets/img/flags/Ethiopia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Ethiopia.png
rename to demo/Angular2_Demo/assets/img/flags/Ethiopia.png
diff --git a/demo/Angular2_Demo/img/flags/European Union.png b/demo/Angular2_Demo/assets/img/flags/European Union.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/European Union.png
rename to demo/Angular2_Demo/assets/img/flags/European Union.png
diff --git a/demo/Angular2_Demo/img/flags/Faroes.png b/demo/Angular2_Demo/assets/img/flags/Faroes.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Faroes.png
rename to demo/Angular2_Demo/assets/img/flags/Faroes.png
diff --git a/demo/Angular2_Demo/img/flags/Fiji.png b/demo/Angular2_Demo/assets/img/flags/Fiji.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Fiji.png
rename to demo/Angular2_Demo/assets/img/flags/Fiji.png
diff --git a/demo/Angular2_Demo/img/flags/Finland.png b/demo/Angular2_Demo/assets/img/flags/Finland.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Finland.png
rename to demo/Angular2_Demo/assets/img/flags/Finland.png
diff --git a/demo/Angular2_Demo/img/flags/France.png b/demo/Angular2_Demo/assets/img/flags/France.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/France.png
rename to demo/Angular2_Demo/assets/img/flags/France.png
diff --git a/demo/Angular2_Demo/img/flags/Gabon.png b/demo/Angular2_Demo/assets/img/flags/Gabon.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Gabon.png
rename to demo/Angular2_Demo/assets/img/flags/Gabon.png
diff --git a/demo/Angular2_Demo/img/flags/Gambia.png b/demo/Angular2_Demo/assets/img/flags/Gambia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Gambia.png
rename to demo/Angular2_Demo/assets/img/flags/Gambia.png
diff --git a/demo/Angular2_Demo/img/flags/Georgia.png b/demo/Angular2_Demo/assets/img/flags/Georgia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Georgia.png
rename to demo/Angular2_Demo/assets/img/flags/Georgia.png
diff --git a/demo/Angular2_Demo/img/flags/Germany.png b/demo/Angular2_Demo/assets/img/flags/Germany.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Germany.png
rename to demo/Angular2_Demo/assets/img/flags/Germany.png
diff --git a/demo/Angular2_Demo/img/flags/Ghana.png b/demo/Angular2_Demo/assets/img/flags/Ghana.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Ghana.png
rename to demo/Angular2_Demo/assets/img/flags/Ghana.png
diff --git a/demo/Angular2_Demo/img/flags/Gibraltar.png b/demo/Angular2_Demo/assets/img/flags/Gibraltar.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Gibraltar.png
rename to demo/Angular2_Demo/assets/img/flags/Gibraltar.png
diff --git a/demo/Angular2_Demo/img/flags/Greece.png b/demo/Angular2_Demo/assets/img/flags/Greece.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Greece.png
rename to demo/Angular2_Demo/assets/img/flags/Greece.png
diff --git a/demo/Angular2_Demo/img/flags/Greenland.png b/demo/Angular2_Demo/assets/img/flags/Greenland.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Greenland.png
rename to demo/Angular2_Demo/assets/img/flags/Greenland.png
diff --git a/demo/Angular2_Demo/img/flags/Grenada.png b/demo/Angular2_Demo/assets/img/flags/Grenada.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Grenada.png
rename to demo/Angular2_Demo/assets/img/flags/Grenada.png
diff --git a/demo/Angular2_Demo/img/flags/Guadeloupe.png b/demo/Angular2_Demo/assets/img/flags/Guadeloupe.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Guadeloupe.png
rename to demo/Angular2_Demo/assets/img/flags/Guadeloupe.png
diff --git a/demo/Angular2_Demo/img/flags/Guam.png b/demo/Angular2_Demo/assets/img/flags/Guam.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Guam.png
rename to demo/Angular2_Demo/assets/img/flags/Guam.png
diff --git a/demo/Angular2_Demo/img/flags/Guatemala.png b/demo/Angular2_Demo/assets/img/flags/Guatemala.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Guatemala.png
rename to demo/Angular2_Demo/assets/img/flags/Guatemala.png
diff --git a/demo/Angular2_Demo/img/flags/Guernsey.png b/demo/Angular2_Demo/assets/img/flags/Guernsey.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Guernsey.png
rename to demo/Angular2_Demo/assets/img/flags/Guernsey.png
diff --git a/demo/Angular2_Demo/img/flags/Guinea-Bissau.png b/demo/Angular2_Demo/assets/img/flags/Guinea-Bissau.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Guinea-Bissau.png
rename to demo/Angular2_Demo/assets/img/flags/Guinea-Bissau.png
diff --git a/demo/Angular2_Demo/img/flags/Guinea.png b/demo/Angular2_Demo/assets/img/flags/Guinea.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Guinea.png
rename to demo/Angular2_Demo/assets/img/flags/Guinea.png
diff --git a/demo/Angular2_Demo/img/flags/Guyana.png b/demo/Angular2_Demo/assets/img/flags/Guyana.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Guyana.png
rename to demo/Angular2_Demo/assets/img/flags/Guyana.png
diff --git a/demo/Angular2_Demo/img/flags/Haiti.png b/demo/Angular2_Demo/assets/img/flags/Haiti.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Haiti.png
rename to demo/Angular2_Demo/assets/img/flags/Haiti.png
diff --git a/demo/Angular2_Demo/img/flags/Honduras.png b/demo/Angular2_Demo/assets/img/flags/Honduras.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Honduras.png
rename to demo/Angular2_Demo/assets/img/flags/Honduras.png
diff --git a/demo/Angular2_Demo/img/flags/Hong Kong.png b/demo/Angular2_Demo/assets/img/flags/Hong Kong.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Hong Kong.png
rename to demo/Angular2_Demo/assets/img/flags/Hong Kong.png
diff --git a/demo/Angular2_Demo/img/flags/Hungary.png b/demo/Angular2_Demo/assets/img/flags/Hungary.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Hungary.png
rename to demo/Angular2_Demo/assets/img/flags/Hungary.png
diff --git a/demo/Angular2_Demo/img/flags/Iceland.png b/demo/Angular2_Demo/assets/img/flags/Iceland.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Iceland.png
rename to demo/Angular2_Demo/assets/img/flags/Iceland.png
diff --git a/demo/Angular2_Demo/img/flags/India.png b/demo/Angular2_Demo/assets/img/flags/India.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/India.png
rename to demo/Angular2_Demo/assets/img/flags/India.png
diff --git a/demo/Angular2_Demo/img/flags/Indonezia.png b/demo/Angular2_Demo/assets/img/flags/Indonezia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Indonezia.png
rename to demo/Angular2_Demo/assets/img/flags/Indonezia.png
diff --git a/demo/Angular2_Demo/img/flags/Iran.png b/demo/Angular2_Demo/assets/img/flags/Iran.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Iran.png
rename to demo/Angular2_Demo/assets/img/flags/Iran.png
diff --git a/demo/Angular2_Demo/img/flags/Iraq.png b/demo/Angular2_Demo/assets/img/flags/Iraq.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Iraq.png
rename to demo/Angular2_Demo/assets/img/flags/Iraq.png
diff --git a/demo/Angular2_Demo/img/flags/Ireland.png b/demo/Angular2_Demo/assets/img/flags/Ireland.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Ireland.png
rename to demo/Angular2_Demo/assets/img/flags/Ireland.png
diff --git a/demo/Angular2_Demo/img/flags/Islamic Conference.png b/demo/Angular2_Demo/assets/img/flags/Islamic Conference.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Islamic Conference.png
rename to demo/Angular2_Demo/assets/img/flags/Islamic Conference.png
diff --git a/demo/Angular2_Demo/img/flags/Isle of Man.png b/demo/Angular2_Demo/assets/img/flags/Isle of Man.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Isle of Man.png
rename to demo/Angular2_Demo/assets/img/flags/Isle of Man.png
diff --git a/demo/Angular2_Demo/img/flags/Israel.png b/demo/Angular2_Demo/assets/img/flags/Israel.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Israel.png
rename to demo/Angular2_Demo/assets/img/flags/Israel.png
diff --git a/demo/Angular2_Demo/img/flags/Italy.png b/demo/Angular2_Demo/assets/img/flags/Italy.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Italy.png
rename to demo/Angular2_Demo/assets/img/flags/Italy.png
diff --git a/demo/Angular2_Demo/img/flags/Jamaica.png b/demo/Angular2_Demo/assets/img/flags/Jamaica.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Jamaica.png
rename to demo/Angular2_Demo/assets/img/flags/Jamaica.png
diff --git a/demo/Angular2_Demo/img/flags/Japan.png b/demo/Angular2_Demo/assets/img/flags/Japan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Japan.png
rename to demo/Angular2_Demo/assets/img/flags/Japan.png
diff --git a/demo/Angular2_Demo/img/flags/Jersey.png b/demo/Angular2_Demo/assets/img/flags/Jersey.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Jersey.png
rename to demo/Angular2_Demo/assets/img/flags/Jersey.png
diff --git a/demo/Angular2_Demo/img/flags/Jordan.png b/demo/Angular2_Demo/assets/img/flags/Jordan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Jordan.png
rename to demo/Angular2_Demo/assets/img/flags/Jordan.png
diff --git a/demo/Angular2_Demo/img/flags/Kazakhstan.png b/demo/Angular2_Demo/assets/img/flags/Kazakhstan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Kazakhstan.png
rename to demo/Angular2_Demo/assets/img/flags/Kazakhstan.png
diff --git a/demo/Angular2_Demo/img/flags/Kenya.png b/demo/Angular2_Demo/assets/img/flags/Kenya.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Kenya.png
rename to demo/Angular2_Demo/assets/img/flags/Kenya.png
diff --git a/demo/Angular2_Demo/img/flags/Kiribati.png b/demo/Angular2_Demo/assets/img/flags/Kiribati.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Kiribati.png
rename to demo/Angular2_Demo/assets/img/flags/Kiribati.png
diff --git a/demo/Angular2_Demo/img/flags/Kosovo.png b/demo/Angular2_Demo/assets/img/flags/Kosovo.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Kosovo.png
rename to demo/Angular2_Demo/assets/img/flags/Kosovo.png
diff --git a/demo/Angular2_Demo/img/flags/Kuwait.png b/demo/Angular2_Demo/assets/img/flags/Kuwait.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Kuwait.png
rename to demo/Angular2_Demo/assets/img/flags/Kuwait.png
diff --git a/demo/Angular2_Demo/img/flags/Kyrgyzstan.png b/demo/Angular2_Demo/assets/img/flags/Kyrgyzstan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Kyrgyzstan.png
rename to demo/Angular2_Demo/assets/img/flags/Kyrgyzstan.png
diff --git a/demo/Angular2_Demo/img/flags/Laos.png b/demo/Angular2_Demo/assets/img/flags/Laos.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Laos.png
rename to demo/Angular2_Demo/assets/img/flags/Laos.png
diff --git a/demo/Angular2_Demo/img/flags/Latvia.png b/demo/Angular2_Demo/assets/img/flags/Latvia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Latvia.png
rename to demo/Angular2_Demo/assets/img/flags/Latvia.png
diff --git a/demo/Angular2_Demo/img/flags/Lebanon.png b/demo/Angular2_Demo/assets/img/flags/Lebanon.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Lebanon.png
rename to demo/Angular2_Demo/assets/img/flags/Lebanon.png
diff --git a/demo/Angular2_Demo/img/flags/Lesotho.png b/demo/Angular2_Demo/assets/img/flags/Lesotho.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Lesotho.png
rename to demo/Angular2_Demo/assets/img/flags/Lesotho.png
diff --git a/demo/Angular2_Demo/img/flags/Liberia.png b/demo/Angular2_Demo/assets/img/flags/Liberia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Liberia.png
rename to demo/Angular2_Demo/assets/img/flags/Liberia.png
diff --git a/demo/Angular2_Demo/img/flags/Libya.png b/demo/Angular2_Demo/assets/img/flags/Libya.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Libya.png
rename to demo/Angular2_Demo/assets/img/flags/Libya.png
diff --git a/demo/Angular2_Demo/img/flags/Liechtenshein.png b/demo/Angular2_Demo/assets/img/flags/Liechtenshein.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Liechtenshein.png
rename to demo/Angular2_Demo/assets/img/flags/Liechtenshein.png
diff --git a/demo/Angular2_Demo/img/flags/Lithuania.png b/demo/Angular2_Demo/assets/img/flags/Lithuania.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Lithuania.png
rename to demo/Angular2_Demo/assets/img/flags/Lithuania.png
diff --git a/demo/Angular2_Demo/img/flags/Luxembourg.png b/demo/Angular2_Demo/assets/img/flags/Luxembourg.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Luxembourg.png
rename to demo/Angular2_Demo/assets/img/flags/Luxembourg.png
diff --git a/demo/Angular2_Demo/img/flags/Macao.png b/demo/Angular2_Demo/assets/img/flags/Macao.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Macao.png
rename to demo/Angular2_Demo/assets/img/flags/Macao.png
diff --git a/demo/Angular2_Demo/img/flags/Macedonia.png b/demo/Angular2_Demo/assets/img/flags/Macedonia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Macedonia.png
rename to demo/Angular2_Demo/assets/img/flags/Macedonia.png
diff --git a/demo/Angular2_Demo/img/flags/Madagascar.png b/demo/Angular2_Demo/assets/img/flags/Madagascar.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Madagascar.png
rename to demo/Angular2_Demo/assets/img/flags/Madagascar.png
diff --git a/demo/Angular2_Demo/img/flags/Malawi.png b/demo/Angular2_Demo/assets/img/flags/Malawi.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Malawi.png
rename to demo/Angular2_Demo/assets/img/flags/Malawi.png
diff --git a/demo/Angular2_Demo/img/flags/Malaysia.png b/demo/Angular2_Demo/assets/img/flags/Malaysia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Malaysia.png
rename to demo/Angular2_Demo/assets/img/flags/Malaysia.png
diff --git a/demo/Angular2_Demo/img/flags/Maldives.png b/demo/Angular2_Demo/assets/img/flags/Maldives.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Maldives.png
rename to demo/Angular2_Demo/assets/img/flags/Maldives.png
diff --git a/demo/Angular2_Demo/img/flags/Mali.png b/demo/Angular2_Demo/assets/img/flags/Mali.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Mali.png
rename to demo/Angular2_Demo/assets/img/flags/Mali.png
diff --git a/demo/Angular2_Demo/img/flags/Malta.png b/demo/Angular2_Demo/assets/img/flags/Malta.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Malta.png
rename to demo/Angular2_Demo/assets/img/flags/Malta.png
diff --git a/demo/Angular2_Demo/img/flags/Marshall Islands.png b/demo/Angular2_Demo/assets/img/flags/Marshall Islands.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Marshall Islands.png
rename to demo/Angular2_Demo/assets/img/flags/Marshall Islands.png
diff --git a/demo/Angular2_Demo/img/flags/Martinique.png b/demo/Angular2_Demo/assets/img/flags/Martinique.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Martinique.png
rename to demo/Angular2_Demo/assets/img/flags/Martinique.png
diff --git a/demo/Angular2_Demo/img/flags/Mauritania.png b/demo/Angular2_Demo/assets/img/flags/Mauritania.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Mauritania.png
rename to demo/Angular2_Demo/assets/img/flags/Mauritania.png
diff --git a/demo/Angular2_Demo/img/flags/Mauritius.png b/demo/Angular2_Demo/assets/img/flags/Mauritius.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Mauritius.png
rename to demo/Angular2_Demo/assets/img/flags/Mauritius.png
diff --git a/demo/Angular2_Demo/img/flags/Mexico.png b/demo/Angular2_Demo/assets/img/flags/Mexico.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Mexico.png
rename to demo/Angular2_Demo/assets/img/flags/Mexico.png
diff --git a/demo/Angular2_Demo/img/flags/Micronesia.png b/demo/Angular2_Demo/assets/img/flags/Micronesia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Micronesia.png
rename to demo/Angular2_Demo/assets/img/flags/Micronesia.png
diff --git a/demo/Angular2_Demo/img/flags/Moldova.png b/demo/Angular2_Demo/assets/img/flags/Moldova.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Moldova.png
rename to demo/Angular2_Demo/assets/img/flags/Moldova.png
diff --git a/demo/Angular2_Demo/img/flags/Monaco.png b/demo/Angular2_Demo/assets/img/flags/Monaco.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Monaco.png
rename to demo/Angular2_Demo/assets/img/flags/Monaco.png
diff --git a/demo/Angular2_Demo/img/flags/Mongolia.png b/demo/Angular2_Demo/assets/img/flags/Mongolia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Mongolia.png
rename to demo/Angular2_Demo/assets/img/flags/Mongolia.png
diff --git a/demo/Angular2_Demo/img/flags/Montenegro.png b/demo/Angular2_Demo/assets/img/flags/Montenegro.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Montenegro.png
rename to demo/Angular2_Demo/assets/img/flags/Montenegro.png
diff --git a/demo/Angular2_Demo/img/flags/Montserrat.png b/demo/Angular2_Demo/assets/img/flags/Montserrat.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Montserrat.png
rename to demo/Angular2_Demo/assets/img/flags/Montserrat.png
diff --git a/demo/Angular2_Demo/img/flags/Morocco.png b/demo/Angular2_Demo/assets/img/flags/Morocco.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Morocco.png
rename to demo/Angular2_Demo/assets/img/flags/Morocco.png
diff --git a/demo/Angular2_Demo/img/flags/Mozambique.png b/demo/Angular2_Demo/assets/img/flags/Mozambique.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Mozambique.png
rename to demo/Angular2_Demo/assets/img/flags/Mozambique.png
diff --git a/demo/Angular2_Demo/img/flags/Myanmar(Burma).png b/demo/Angular2_Demo/assets/img/flags/Myanmar(Burma).png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Myanmar(Burma).png
rename to demo/Angular2_Demo/assets/img/flags/Myanmar(Burma).png
diff --git a/demo/Angular2_Demo/img/flags/NATO.png b/demo/Angular2_Demo/assets/img/flags/NATO.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/NATO.png
rename to demo/Angular2_Demo/assets/img/flags/NATO.png
diff --git a/demo/Angular2_Demo/img/flags/Namibia.png b/demo/Angular2_Demo/assets/img/flags/Namibia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Namibia.png
rename to demo/Angular2_Demo/assets/img/flags/Namibia.png
diff --git a/demo/Angular2_Demo/img/flags/Nauru.png b/demo/Angular2_Demo/assets/img/flags/Nauru.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Nauru.png
rename to demo/Angular2_Demo/assets/img/flags/Nauru.png
diff --git a/demo/Angular2_Demo/img/flags/Nepal.png b/demo/Angular2_Demo/assets/img/flags/Nepal.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Nepal.png
rename to demo/Angular2_Demo/assets/img/flags/Nepal.png
diff --git a/demo/Angular2_Demo/img/flags/Netherlands Antilles.png b/demo/Angular2_Demo/assets/img/flags/Netherlands Antilles.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Netherlands Antilles.png
rename to demo/Angular2_Demo/assets/img/flags/Netherlands Antilles.png
diff --git a/demo/Angular2_Demo/img/flags/Netherlands.png b/demo/Angular2_Demo/assets/img/flags/Netherlands.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Netherlands.png
rename to demo/Angular2_Demo/assets/img/flags/Netherlands.png
diff --git a/demo/Angular2_Demo/img/flags/New Caledonia.png b/demo/Angular2_Demo/assets/img/flags/New Caledonia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/New Caledonia.png
rename to demo/Angular2_Demo/assets/img/flags/New Caledonia.png
diff --git a/demo/Angular2_Demo/img/flags/New Zealand.png b/demo/Angular2_Demo/assets/img/flags/New Zealand.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/New Zealand.png
rename to demo/Angular2_Demo/assets/img/flags/New Zealand.png
diff --git a/demo/Angular2_Demo/img/flags/Nicaragua.png b/demo/Angular2_Demo/assets/img/flags/Nicaragua.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Nicaragua.png
rename to demo/Angular2_Demo/assets/img/flags/Nicaragua.png
diff --git a/demo/Angular2_Demo/img/flags/Niger.png b/demo/Angular2_Demo/assets/img/flags/Niger.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Niger.png
rename to demo/Angular2_Demo/assets/img/flags/Niger.png
diff --git a/demo/Angular2_Demo/img/flags/Nigeria.png b/demo/Angular2_Demo/assets/img/flags/Nigeria.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Nigeria.png
rename to demo/Angular2_Demo/assets/img/flags/Nigeria.png
diff --git a/demo/Angular2_Demo/img/flags/North Korea.png b/demo/Angular2_Demo/assets/img/flags/North Korea.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/North Korea.png
rename to demo/Angular2_Demo/assets/img/flags/North Korea.png
diff --git a/demo/Angular2_Demo/img/flags/Northern Cyprus.png b/demo/Angular2_Demo/assets/img/flags/Northern Cyprus.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Northern Cyprus.png
rename to demo/Angular2_Demo/assets/img/flags/Northern Cyprus.png
diff --git a/demo/Angular2_Demo/img/flags/Northern Ireland.png b/demo/Angular2_Demo/assets/img/flags/Northern Ireland.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Northern Ireland.png
rename to demo/Angular2_Demo/assets/img/flags/Northern Ireland.png
diff --git a/demo/Angular2_Demo/img/flags/Norway.png b/demo/Angular2_Demo/assets/img/flags/Norway.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Norway.png
rename to demo/Angular2_Demo/assets/img/flags/Norway.png
diff --git a/demo/Angular2_Demo/img/flags/OPEC.png b/demo/Angular2_Demo/assets/img/flags/OPEC.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/OPEC.png
rename to demo/Angular2_Demo/assets/img/flags/OPEC.png
diff --git a/demo/Angular2_Demo/img/flags/Olimpic Movement.png b/demo/Angular2_Demo/assets/img/flags/Olimpic Movement.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Olimpic Movement.png
rename to demo/Angular2_Demo/assets/img/flags/Olimpic Movement.png
diff --git a/demo/Angular2_Demo/img/flags/Oman.png b/demo/Angular2_Demo/assets/img/flags/Oman.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Oman.png
rename to demo/Angular2_Demo/assets/img/flags/Oman.png
diff --git a/demo/Angular2_Demo/img/flags/Pakistan.png b/demo/Angular2_Demo/assets/img/flags/Pakistan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Pakistan.png
rename to demo/Angular2_Demo/assets/img/flags/Pakistan.png
diff --git a/demo/Angular2_Demo/img/flags/Palau.png b/demo/Angular2_Demo/assets/img/flags/Palau.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Palau.png
rename to demo/Angular2_Demo/assets/img/flags/Palau.png
diff --git a/demo/Angular2_Demo/img/flags/Palestine.png b/demo/Angular2_Demo/assets/img/flags/Palestine.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Palestine.png
rename to demo/Angular2_Demo/assets/img/flags/Palestine.png
diff --git a/demo/Angular2_Demo/img/flags/Panama.png b/demo/Angular2_Demo/assets/img/flags/Panama.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Panama.png
rename to demo/Angular2_Demo/assets/img/flags/Panama.png
diff --git a/demo/Angular2_Demo/img/flags/Papua New Guinea.png b/demo/Angular2_Demo/assets/img/flags/Papua New Guinea.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Papua New Guinea.png
rename to demo/Angular2_Demo/assets/img/flags/Papua New Guinea.png
diff --git a/demo/Angular2_Demo/img/flags/Paraguay.png b/demo/Angular2_Demo/assets/img/flags/Paraguay.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Paraguay.png
rename to demo/Angular2_Demo/assets/img/flags/Paraguay.png
diff --git a/demo/Angular2_Demo/img/flags/Peru.png b/demo/Angular2_Demo/assets/img/flags/Peru.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Peru.png
rename to demo/Angular2_Demo/assets/img/flags/Peru.png
diff --git a/demo/Angular2_Demo/img/flags/Philippines.png b/demo/Angular2_Demo/assets/img/flags/Philippines.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Philippines.png
rename to demo/Angular2_Demo/assets/img/flags/Philippines.png
diff --git a/demo/Angular2_Demo/img/flags/Poland.png b/demo/Angular2_Demo/assets/img/flags/Poland.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Poland.png
rename to demo/Angular2_Demo/assets/img/flags/Poland.png
diff --git a/demo/Angular2_Demo/img/flags/Portugal.png b/demo/Angular2_Demo/assets/img/flags/Portugal.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Portugal.png
rename to demo/Angular2_Demo/assets/img/flags/Portugal.png
diff --git a/demo/Angular2_Demo/img/flags/Puerto Rico.png b/demo/Angular2_Demo/assets/img/flags/Puerto Rico.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Puerto Rico.png
rename to demo/Angular2_Demo/assets/img/flags/Puerto Rico.png
diff --git a/demo/Angular2_Demo/img/flags/Qatar.png b/demo/Angular2_Demo/assets/img/flags/Qatar.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Qatar.png
rename to demo/Angular2_Demo/assets/img/flags/Qatar.png
diff --git a/demo/Angular2_Demo/img/flags/Red Cross.png b/demo/Angular2_Demo/assets/img/flags/Red Cross.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Red Cross.png
rename to demo/Angular2_Demo/assets/img/flags/Red Cross.png
diff --git a/demo/Angular2_Demo/img/flags/Reunion.png b/demo/Angular2_Demo/assets/img/flags/Reunion.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Reunion.png
rename to demo/Angular2_Demo/assets/img/flags/Reunion.png
diff --git a/demo/Angular2_Demo/img/flags/Romania.png b/demo/Angular2_Demo/assets/img/flags/Romania.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Romania.png
rename to demo/Angular2_Demo/assets/img/flags/Romania.png
diff --git a/demo/Angular2_Demo/img/flags/Russia.png b/demo/Angular2_Demo/assets/img/flags/Russia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Russia.png
rename to demo/Angular2_Demo/assets/img/flags/Russia.png
diff --git a/demo/Angular2_Demo/img/flags/Rwanda.png b/demo/Angular2_Demo/assets/img/flags/Rwanda.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Rwanda.png
rename to demo/Angular2_Demo/assets/img/flags/Rwanda.png
diff --git a/demo/Angular2_Demo/img/flags/Saint Lucia.png b/demo/Angular2_Demo/assets/img/flags/Saint Lucia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Saint Lucia.png
rename to demo/Angular2_Demo/assets/img/flags/Saint Lucia.png
diff --git a/demo/Angular2_Demo/img/flags/Samoa.png b/demo/Angular2_Demo/assets/img/flags/Samoa.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Samoa.png
rename to demo/Angular2_Demo/assets/img/flags/Samoa.png
diff --git a/demo/Angular2_Demo/img/flags/San Marino.png b/demo/Angular2_Demo/assets/img/flags/San Marino.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/San Marino.png
rename to demo/Angular2_Demo/assets/img/flags/San Marino.png
diff --git a/demo/Angular2_Demo/img/flags/Sao Tome & Principe.png b/demo/Angular2_Demo/assets/img/flags/Sao Tome & Principe.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Sao Tome & Principe.png
rename to demo/Angular2_Demo/assets/img/flags/Sao Tome & Principe.png
diff --git a/demo/Angular2_Demo/img/flags/Saudi Arabia.png b/demo/Angular2_Demo/assets/img/flags/Saudi Arabia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Saudi Arabia.png
rename to demo/Angular2_Demo/assets/img/flags/Saudi Arabia.png
diff --git a/demo/Angular2_Demo/img/flags/Scotland.png b/demo/Angular2_Demo/assets/img/flags/Scotland.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Scotland.png
rename to demo/Angular2_Demo/assets/img/flags/Scotland.png
diff --git a/demo/Angular2_Demo/img/flags/Senegal.png b/demo/Angular2_Demo/assets/img/flags/Senegal.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Senegal.png
rename to demo/Angular2_Demo/assets/img/flags/Senegal.png
diff --git a/demo/Angular2_Demo/img/flags/Serbia(Yugoslavia).png b/demo/Angular2_Demo/assets/img/flags/Serbia(Yugoslavia).png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Serbia(Yugoslavia).png
rename to demo/Angular2_Demo/assets/img/flags/Serbia(Yugoslavia).png
diff --git a/demo/Angular2_Demo/img/flags/Seychelles.png b/demo/Angular2_Demo/assets/img/flags/Seychelles.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Seychelles.png
rename to demo/Angular2_Demo/assets/img/flags/Seychelles.png
diff --git a/demo/Angular2_Demo/img/flags/Sierra Leone.png b/demo/Angular2_Demo/assets/img/flags/Sierra Leone.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Sierra Leone.png
rename to demo/Angular2_Demo/assets/img/flags/Sierra Leone.png
diff --git a/demo/Angular2_Demo/img/flags/Singapore.png b/demo/Angular2_Demo/assets/img/flags/Singapore.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Singapore.png
rename to demo/Angular2_Demo/assets/img/flags/Singapore.png
diff --git a/demo/Angular2_Demo/img/flags/Slovakia.png b/demo/Angular2_Demo/assets/img/flags/Slovakia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Slovakia.png
rename to demo/Angular2_Demo/assets/img/flags/Slovakia.png
diff --git a/demo/Angular2_Demo/img/flags/Slovenia.png b/demo/Angular2_Demo/assets/img/flags/Slovenia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Slovenia.png
rename to demo/Angular2_Demo/assets/img/flags/Slovenia.png
diff --git a/demo/Angular2_Demo/img/flags/Solomon Islands.png b/demo/Angular2_Demo/assets/img/flags/Solomon Islands.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Solomon Islands.png
rename to demo/Angular2_Demo/assets/img/flags/Solomon Islands.png
diff --git a/demo/Angular2_Demo/img/flags/Somalia.png b/demo/Angular2_Demo/assets/img/flags/Somalia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Somalia.png
rename to demo/Angular2_Demo/assets/img/flags/Somalia.png
diff --git a/demo/Angular2_Demo/img/flags/Somaliland.png b/demo/Angular2_Demo/assets/img/flags/Somaliland.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Somaliland.png
rename to demo/Angular2_Demo/assets/img/flags/Somaliland.png
diff --git a/demo/Angular2_Demo/img/flags/South Africa.png b/demo/Angular2_Demo/assets/img/flags/South Africa.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/South Africa.png
rename to demo/Angular2_Demo/assets/img/flags/South Africa.png
diff --git a/demo/Angular2_Demo/img/flags/South Korea.png b/demo/Angular2_Demo/assets/img/flags/South Korea.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/South Korea.png
rename to demo/Angular2_Demo/assets/img/flags/South Korea.png
diff --git a/demo/Angular2_Demo/img/flags/Spain.png b/demo/Angular2_Demo/assets/img/flags/Spain.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Spain.png
rename to demo/Angular2_Demo/assets/img/flags/Spain.png
diff --git a/demo/Angular2_Demo/img/flags/Sri Lanka.png b/demo/Angular2_Demo/assets/img/flags/Sri Lanka.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Sri Lanka.png
rename to demo/Angular2_Demo/assets/img/flags/Sri Lanka.png
diff --git a/demo/Angular2_Demo/img/flags/St Kitts & Nevis.png b/demo/Angular2_Demo/assets/img/flags/St Kitts & Nevis.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/St Kitts & Nevis.png
rename to demo/Angular2_Demo/assets/img/flags/St Kitts & Nevis.png
diff --git a/demo/Angular2_Demo/img/flags/St Vincent & the Grenadines.png b/demo/Angular2_Demo/assets/img/flags/St Vincent & the Grenadines.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/St Vincent & the Grenadines.png
rename to demo/Angular2_Demo/assets/img/flags/St Vincent & the Grenadines.png
diff --git a/demo/Angular2_Demo/img/flags/Sudan.png b/demo/Angular2_Demo/assets/img/flags/Sudan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Sudan.png
rename to demo/Angular2_Demo/assets/img/flags/Sudan.png
diff --git a/demo/Angular2_Demo/img/flags/Suriname.png b/demo/Angular2_Demo/assets/img/flags/Suriname.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Suriname.png
rename to demo/Angular2_Demo/assets/img/flags/Suriname.png
diff --git a/demo/Angular2_Demo/img/flags/Swaziland.png b/demo/Angular2_Demo/assets/img/flags/Swaziland.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Swaziland.png
rename to demo/Angular2_Demo/assets/img/flags/Swaziland.png
diff --git a/demo/Angular2_Demo/img/flags/Sweden.png b/demo/Angular2_Demo/assets/img/flags/Sweden.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Sweden.png
rename to demo/Angular2_Demo/assets/img/flags/Sweden.png
diff --git a/demo/Angular2_Demo/img/flags/Switzerland.png b/demo/Angular2_Demo/assets/img/flags/Switzerland.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Switzerland.png
rename to demo/Angular2_Demo/assets/img/flags/Switzerland.png
diff --git a/demo/Angular2_Demo/img/flags/Syria.png b/demo/Angular2_Demo/assets/img/flags/Syria.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Syria.png
rename to demo/Angular2_Demo/assets/img/flags/Syria.png
diff --git a/demo/Angular2_Demo/img/flags/Tahiti(French Polinesia).png b/demo/Angular2_Demo/assets/img/flags/Tahiti(French Polinesia).png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Tahiti(French Polinesia).png
rename to demo/Angular2_Demo/assets/img/flags/Tahiti(French Polinesia).png
diff --git a/demo/Angular2_Demo/img/flags/Taiwan.png b/demo/Angular2_Demo/assets/img/flags/Taiwan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Taiwan.png
rename to demo/Angular2_Demo/assets/img/flags/Taiwan.png
diff --git a/demo/Angular2_Demo/img/flags/Tajikistan.png b/demo/Angular2_Demo/assets/img/flags/Tajikistan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Tajikistan.png
rename to demo/Angular2_Demo/assets/img/flags/Tajikistan.png
diff --git a/demo/Angular2_Demo/img/flags/Tanzania.png b/demo/Angular2_Demo/assets/img/flags/Tanzania.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Tanzania.png
rename to demo/Angular2_Demo/assets/img/flags/Tanzania.png
diff --git a/demo/Angular2_Demo/img/flags/Thailand.png b/demo/Angular2_Demo/assets/img/flags/Thailand.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Thailand.png
rename to demo/Angular2_Demo/assets/img/flags/Thailand.png
diff --git a/demo/Angular2_Demo/img/flags/Timor-Leste.png b/demo/Angular2_Demo/assets/img/flags/Timor-Leste.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Timor-Leste.png
rename to demo/Angular2_Demo/assets/img/flags/Timor-Leste.png
diff --git a/demo/Angular2_Demo/img/flags/Togo.png b/demo/Angular2_Demo/assets/img/flags/Togo.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Togo.png
rename to demo/Angular2_Demo/assets/img/flags/Togo.png
diff --git a/demo/Angular2_Demo/img/flags/Tonga.png b/demo/Angular2_Demo/assets/img/flags/Tonga.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Tonga.png
rename to demo/Angular2_Demo/assets/img/flags/Tonga.png
diff --git a/demo/Angular2_Demo/img/flags/Trinidad & Tobago.png b/demo/Angular2_Demo/assets/img/flags/Trinidad & Tobago.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Trinidad & Tobago.png
rename to demo/Angular2_Demo/assets/img/flags/Trinidad & Tobago.png
diff --git a/demo/Angular2_Demo/img/flags/Tunisia.png b/demo/Angular2_Demo/assets/img/flags/Tunisia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Tunisia.png
rename to demo/Angular2_Demo/assets/img/flags/Tunisia.png
diff --git a/demo/Angular2_Demo/img/flags/Turkey.png b/demo/Angular2_Demo/assets/img/flags/Turkey.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Turkey.png
rename to demo/Angular2_Demo/assets/img/flags/Turkey.png
diff --git a/demo/Angular2_Demo/img/flags/Turkmenistan.png b/demo/Angular2_Demo/assets/img/flags/Turkmenistan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Turkmenistan.png
rename to demo/Angular2_Demo/assets/img/flags/Turkmenistan.png
diff --git a/demo/Angular2_Demo/img/flags/Turks and Caicos Islands.png b/demo/Angular2_Demo/assets/img/flags/Turks and Caicos Islands.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Turks and Caicos Islands.png
rename to demo/Angular2_Demo/assets/img/flags/Turks and Caicos Islands.png
diff --git a/demo/Angular2_Demo/img/flags/Tuvalu.png b/demo/Angular2_Demo/assets/img/flags/Tuvalu.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Tuvalu.png
rename to demo/Angular2_Demo/assets/img/flags/Tuvalu.png
diff --git a/demo/Angular2_Demo/img/flags/USA.png b/demo/Angular2_Demo/assets/img/flags/USA.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/USA.png
rename to demo/Angular2_Demo/assets/img/flags/USA.png
diff --git a/demo/Angular2_Demo/img/flags/Uganda.png b/demo/Angular2_Demo/assets/img/flags/Uganda.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Uganda.png
rename to demo/Angular2_Demo/assets/img/flags/Uganda.png
diff --git a/demo/Angular2_Demo/img/flags/Ukraine.png b/demo/Angular2_Demo/assets/img/flags/Ukraine.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Ukraine.png
rename to demo/Angular2_Demo/assets/img/flags/Ukraine.png
diff --git a/demo/Angular2_Demo/img/flags/United Arab Emirates.png b/demo/Angular2_Demo/assets/img/flags/United Arab Emirates.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/United Arab Emirates.png
rename to demo/Angular2_Demo/assets/img/flags/United Arab Emirates.png
diff --git a/demo/Angular2_Demo/img/flags/United Nations.png b/demo/Angular2_Demo/assets/img/flags/United Nations.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/United Nations.png
rename to demo/Angular2_Demo/assets/img/flags/United Nations.png
diff --git a/demo/Angular2_Demo/img/flags/United-Kingdom.png b/demo/Angular2_Demo/assets/img/flags/United-Kingdom.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/United-Kingdom.png
rename to demo/Angular2_Demo/assets/img/flags/United-Kingdom.png
diff --git a/demo/Angular2_Demo/img/flags/Uruguay.png b/demo/Angular2_Demo/assets/img/flags/Uruguay.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Uruguay.png
rename to demo/Angular2_Demo/assets/img/flags/Uruguay.png
diff --git a/demo/Angular2_Demo/img/flags/Uzbekistan.png b/demo/Angular2_Demo/assets/img/flags/Uzbekistan.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Uzbekistan.png
rename to demo/Angular2_Demo/assets/img/flags/Uzbekistan.png
diff --git a/demo/Angular2_Demo/img/flags/Vanutau.png b/demo/Angular2_Demo/assets/img/flags/Vanutau.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Vanutau.png
rename to demo/Angular2_Demo/assets/img/flags/Vanutau.png
diff --git a/demo/Angular2_Demo/img/flags/Vatican City.png b/demo/Angular2_Demo/assets/img/flags/Vatican City.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Vatican City.png
rename to demo/Angular2_Demo/assets/img/flags/Vatican City.png
diff --git a/demo/Angular2_Demo/img/flags/Venezuela.png b/demo/Angular2_Demo/assets/img/flags/Venezuela.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Venezuela.png
rename to demo/Angular2_Demo/assets/img/flags/Venezuela.png
diff --git a/demo/Angular2_Demo/img/flags/Viet Nam.png b/demo/Angular2_Demo/assets/img/flags/Viet Nam.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Viet Nam.png
rename to demo/Angular2_Demo/assets/img/flags/Viet Nam.png
diff --git a/demo/Angular2_Demo/img/flags/Virgin Islands British.png b/demo/Angular2_Demo/assets/img/flags/Virgin Islands British.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Virgin Islands British.png
rename to demo/Angular2_Demo/assets/img/flags/Virgin Islands British.png
diff --git a/demo/Angular2_Demo/img/flags/Virgin Islands US.png b/demo/Angular2_Demo/assets/img/flags/Virgin Islands US.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Virgin Islands US.png
rename to demo/Angular2_Demo/assets/img/flags/Virgin Islands US.png
diff --git a/demo/Angular2_Demo/img/flags/Wales.png b/demo/Angular2_Demo/assets/img/flags/Wales.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Wales.png
rename to demo/Angular2_Demo/assets/img/flags/Wales.png
diff --git a/demo/Angular2_Demo/img/flags/Western Sahara.png b/demo/Angular2_Demo/assets/img/flags/Western Sahara.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Western Sahara.png
rename to demo/Angular2_Demo/assets/img/flags/Western Sahara.png
diff --git a/demo/Angular2_Demo/img/flags/Yemen.png b/demo/Angular2_Demo/assets/img/flags/Yemen.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Yemen.png
rename to demo/Angular2_Demo/assets/img/flags/Yemen.png
diff --git a/demo/Angular2_Demo/img/flags/Zambia.png b/demo/Angular2_Demo/assets/img/flags/Zambia.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Zambia.png
rename to demo/Angular2_Demo/assets/img/flags/Zambia.png
diff --git a/demo/Angular2_Demo/img/flags/Zimbabwe.png b/demo/Angular2_Demo/assets/img/flags/Zimbabwe.png
old mode 100755
new mode 100644
similarity index 100%
rename from demo/Angular2_Demo/img/flags/Zimbabwe.png
rename to demo/Angular2_Demo/assets/img/flags/Zimbabwe.png
diff --git a/demo/Angular2_Demo/img/coreui-logotyp.png b/demo/Angular2_Demo/assets/img/logo.png
similarity index 100%
rename from demo/Angular2_Demo/img/coreui-logotyp.png
rename to demo/Angular2_Demo/assets/img/logo.png
diff --git a/demo/Angular2_Demo/e2e/app.e2e-spec.js b/demo/Angular2_Demo/e2e/app.e2e-spec.js
deleted file mode 100644
index d59931a0869c9f4c8c85b8639f053632720267eb..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/e2e/app.e2e-spec.js
+++ /dev/null
@@ -1,10 +0,0 @@
-describe('QuickStart E2E Tests', function () {
-    var expectedMsg = 'My First Angular 2 App';
-    beforeEach(function () {
-        browser.get('');
-    });
-    it('should display: ' + expectedMsg, function () {
-        expect(element(by.css('h1')).getText()).toEqual(expectedMsg);
-    });
-});
-//# sourceMappingURL=app.e2e-spec.js.map
\ No newline at end of file
diff --git a/demo/Angular2_Demo/e2e/app.e2e-spec.js.map b/demo/Angular2_Demo/e2e/app.e2e-spec.js.map
deleted file mode 100644
index 3094b5cf24fd06e80cf6eb14eecb366f3474a661..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/e2e/app.e2e-spec.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"app.e2e-spec.js","sourceRoot":"","sources":["app.e2e-spec.ts"],"names":[],"mappings":"AACA,QAAQ,CAAC,sBAAsB,EAAE;IAE/B,IAAI,WAAW,GAAG,wBAAwB,CAAC;IAG3C,UAAU,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,GAAG,WAAW,EAAE;QACnC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/e2e/app.e2e-spec.ts b/demo/Angular2_Demo/e2e/app.e2e-spec.ts
deleted file mode 100644
index 54ba789f7c0870db4012caf9f45f01f9118e5700..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/e2e/app.e2e-spec.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-
-describe('QuickStart E2E Tests', function () {
-
-  let expectedMsg = 'My First Angular 2 App';
-
-
-  beforeEach(function () {
-    browser.get('');
-  });
-
-  it('should display: ' + expectedMsg, function () {
-    expect(element(by.css('h1')).getText()).toEqual(expectedMsg);
-  });
-
-});
diff --git a/demo/Angular2_Demo/favicon.ico b/demo/Angular2_Demo/favicon.ico
deleted file mode 100644
index 8081c7ceaf2be08bf59010158c586170d9d2d517..0000000000000000000000000000000000000000
Binary files a/demo/Angular2_Demo/favicon.ico and /dev/null differ
diff --git a/demo/Angular2_Demo/gulpfile.js b/demo/Angular2_Demo/gulpfile.js
deleted file mode 100644
index 93e5ede0ad81bc265a34b8cce362cd36458f2d8d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/gulpfile.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-var gulp = require('gulp');
-var sass = require('gulp-sass');
-var concat = require('gulp-concat');
-
-gulp.task('sass', function () {
-    return gulp.src('./scss/bootstrap/bootstrap.scss')
-    .pipe(sass().on('error', sass.logError))
-    .pipe(concat('style.css'))
-    .pipe(gulp.dest('./css'));
-});
-
-gulp.task('sass:watch', function () {
-    gulp.watch('./scss/**/*.scss', ['sass']);
-});
diff --git a/demo/Angular2_Demo/index.html b/demo/Angular2_Demo/index.html
index 0cefdc5865ff5fb28e2e588eaa2c0513ff21e334..8702dad8a2cb219fb784822950db3a8be41fd10e 100644
--- a/demo/Angular2_Demo/index.html
+++ b/demo/Angular2_Demo/index.html
@@ -1,7 +1,7 @@
+<!doctype html>
 <html>
-
 <head>
-    <base href="http://coreui.io/demo/Angular2_Demo/">
+    <base href="./">
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
@@ -12,29 +12,16 @@
     <title>CoreUI Bootstrap 4 Admin Template</title>
 
     <!-- Icons -->
-    <link href="css/font-awesome.min.css" rel="stylesheet">
-    <link href="css/simple-line-icons.css" rel="stylesheet">
+    <link href="assets/css/font-awesome.min.css" rel="stylesheet">
+    <link href="assets/css/simple-line-icons.css" rel="stylesheet">
 
     <!-- Main styles for this application -->
-    <link href="css/style.css" rel="stylesheet">
-
-    <!-- Polyfill(s) for older browsers -->
-    <script src="node_modules/core-js/client/shim.min.js"></script>
-
-    <script src="node_modules/zone.js/dist/zone.js"></script>
-    <script src="node_modules/reflect-metadata/Reflect.js"></script>
-    <script src="node_modules/systemjs/dist/system.src.js"></script>
-    <script src="node_modules/ng2-bootstrap/bundles/ng2-bootstrap.min.js"></script>
-    <script src="node_modules/chart.js/dist/Chart.bundle.min.js"></script>
+    <link href="assets/css/style.css" rel="stylesheet">
 
-    <script src="systemjs.config.js"></script>
-    <script>
-        System.import('app').catch(function(err){ console.error(err); });
-    </script>
 </head>
 
-<body class="navbar-fixed sidebar-nav fixed-nav footer-fixed">
-    <!--  Loading... -->
-</body>
+<body class="navbar-fixed sidebar-nav fixed-nav">
+    <!-- App Loading... -->
+<script type="text/javascript" src="inline.js"></script><script type="text/javascript" src="scripts.8c9efe9ca9e73edd6f76.bundle.js"></script><script type="text/javascript" src="main.386b62d50903aa6ad827.bundle.js"></script></body>
 
 </html>
diff --git a/demo/Angular2_Demo/inline.js b/demo/Angular2_Demo/inline.js
new file mode 100644
index 0000000000000000000000000000000000000000..960992ec728493f2c6b20d57ed384c3eeef2c610
--- /dev/null
+++ b/demo/Angular2_Demo/inline.js
@@ -0,0 +1 @@
+!function(e){function __webpack_require__(r){if(_[r])return _[r].exports;var n=_[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,__webpack_require__),n.l=!0,n.exports}var r=window.webpackJsonp;window.webpackJsonp=function(_,t,o){for(var c,i,a,u=0,p=[];u<_.length;u++)i=_[u],n[i]&&p.push(n[i][0]),n[i]=0;for(c in t)Object.prototype.hasOwnProperty.call(t,c)&&(e[c]=t[c]);for(r&&r(_,t,o);p.length;)p.shift()();if(o)for(u=0;u<o.length;u++)a=__webpack_require__(__webpack_require__.s=o[u]);return a};var _={},n={2:0};__webpack_require__.e=function(e){function onScriptComplete(){_.onerror=_.onload=null,clearTimeout(t);var r=n[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}if(0===n[e])return Promise.resolve();if(n[e])return n[e][2];var r=document.getElementsByTagName("head")[0],_=document.createElement("script");_.type="text/javascript",_.charset="utf-8",_.async=!0,_.timeout=12e4,_.src=__webpack_require__.p+""+e+"."+{0:"386b62d50903aa6ad827",1:"8c9efe9ca9e73edd6f76"}[e]+".chunk.js";var t=setTimeout(onScriptComplete,12e4);_.onerror=_.onload=onScriptComplete,r.appendChild(_);var o=new Promise(function(r,_){n[e]=[r,_]});return n[e][2]=o},__webpack_require__.m=e,__webpack_require__.c=_,__webpack_require__.i=function(e){return e},__webpack_require__.d=function(e,r,_){Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:_})},__webpack_require__.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(r,"a",r),r},__webpack_require__.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},__webpack_require__.p="",__webpack_require__.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
diff --git a/demo/Angular2_Demo/karma-test-shim.js b/demo/Angular2_Demo/karma-test-shim.js
deleted file mode 100644
index 9ad166440205eec7f10e8e75cc619aef058a8dfc..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/karma-test-shim.js
+++ /dev/null
@@ -1,51 +0,0 @@
-// /*global jasmine, __karma__, window*/
-Error.stackTraceLimit = Infinity;
-jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000;
-
-__karma__.loaded = function () {
-};
-
-function isJsFile(path) {
-  return path.slice(-3) == '.js';
-}
-
-function isSpecFile(path) {
-  return /\.spec\.js$/.test(path);
-}
-
-function isBuiltFile(path) {
-  var builtPath = '/base/app/';
-  return isJsFile(path) && (path.substr(0, builtPath.length) == builtPath);
-}
-
-var allSpecFiles = Object.keys(window.__karma__.files)
-  .filter(isSpecFile)
-  .filter(isBuiltFile);
-
-System.config({
-  baseURL: '/base',
-  packageWithIndex: true // sadly, we can't use umd packages (yet?)
-});
-
-System.import('systemjs.config.js')
-  .then(() => Promise.all([
-      System.import('@angular/core/testing'),
-      System.import('@angular/platform-browser-dynamic/testing')
-    ]))
-  .then((providers) => {
-    var coreTesting = providers[0];
-    var browserTesting = providers[1];
-    coreTesting.TestBed.initTestEnvironment(
-            browserTesting.BrowserDynamicTestingModule,
-            browserTesting.platformBrowserDynamicTesting());
-
-  })
-  .then(function () {
-  // Finally, load all spec files.
-  // This will run the tests directly.
-  return Promise.all(
-    allSpecFiles.map(function (moduleName) {
-      return System.import(moduleName);
-    }));
-  })
-  .then(__karma__.start, __karma__.error);
diff --git a/demo/Angular2_Demo/karma.conf.js b/demo/Angular2_Demo/karma.conf.js
deleted file mode 100644
index 28c0b52d713434ae4aa1f4aeda0f3eed7ed54c8e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/karma.conf.js
+++ /dev/null
@@ -1,89 +0,0 @@
-module.exports = function(config) {
-
-  var appBase   = 'app/';      // transpiled app JS files
-  var appAssets ='/base/app/'; // component assets fetched by Angular's compiler
-
-  config.set({
-    basePath: '',
-    frameworks: ['jasmine'],
-    plugins: [
-      require('karma-jasmine'),
-      require('karma-chrome-launcher'),
-      require('karma-htmlfile-reporter')
-    ],
-
-    customLaunchers: {
-      // From the CLI. Not used here but interesting
-      // chrome setup for travis CI using chromium
-      Chrome_travis_ci: {
-        base: 'Chrome',
-        flags: ['--no-sandbox']
-      }
-    },
-    files: [
-      // System.js for module loading
-      'node_modules/systemjs/dist/system.src.js',
-
-      // Polyfills
-      'node_modules/core-js/client/shim.js',
-
-      // Reflect and Zone.js
-      'node_modules/reflect-metadata/Reflect.js',
-      'node_modules/zone.js/dist/zone.js',
-      'node_modules/zone.js/dist/async-test.js',
-      'node_modules/zone.js/dist/fake-async-test.js',
-      'node_modules/zone.js/dist/sync-test.js',
-      'node_modules/zone.js/dist/proxy.js',
-
-      // RxJs.
-      { pattern: 'node_modules/rxjs/**/*.js', included: false, watched: false },
-      { pattern: 'node_modules/rxjs/**/*.js.map', included: false, watched: false },
-
-      // Angular 2 itself and the testing library
-      {pattern: 'node_modules/@angular/**/*.js', included: false, watched: false},
-      {pattern: 'node_modules/@angular/**/*.js.map', included: false, watched: false},
-
-      {pattern: 'systemjs.config.js', included: false, watched: false},
-      'karma-test-shim.js',
-
-      // transpiled application & spec code paths loaded via module imports
-      {pattern: appBase + '**/*.js', included: false, watched: true},
-
-      // asset (HTML & CSS) paths loaded via Angular's component compiler
-      // (these paths need to be rewritten, see proxies section)
-      {pattern: appBase + '**/*.html', included: false, watched: true},
-      {pattern: appBase + '**/*.css', included: false, watched: true},
-
-      // paths for debugging with source maps in dev tools
-      {pattern: appBase + '**/*.ts', included: false, watched: false},
-      {pattern: appBase + '**/*.js.map', included: false, watched: false}
-    ],
-
-    // proxied base paths for loading assets
-    proxies: {
-      // required for component assets fetched by Angular's compiler
-      "/app/": appAssets
-    },
-
-    exclude: [],
-    preprocessors: {},
-    reporters: ['progress', 'html'],
-
-    // HtmlReporter configuration
-    htmlReporter: {
-      // Open this file to see results in browser
-      outputFile: '_test-output/tests.html',
-
-      // Optional
-      pageTitle: 'Unit Tests',
-      subPageTitle: __dirname
-    },
-
-    port: 9876,
-    colors: true,
-    logLevel: config.LOG_INFO,
-    autoWatch: true,
-    browsers: ['Chrome'],
-    singleRun: false
-  })
-}
diff --git a/demo/Angular2_Demo/main.386b62d50903aa6ad827.bundle.js b/demo/Angular2_Demo/main.386b62d50903aa6ad827.bundle.js
new file mode 100644
index 0000000000000000000000000000000000000000..3db6b73519cda77683544cd02bbb439b5472b52c
--- /dev/null
+++ b/demo/Angular2_Demo/main.386b62d50903aa6ad827.bundle.js
@@ -0,0 +1,2006 @@
+webpackJsonp([0,2],[function(t,e,n){"use strict";var r=n(477);for(var i in r)"default"!==i&&function(t){n.d(e,t,function(){return r[t]})}(i)},function(t,e,n){var r=n(14),i=n(13),o=n(49),a=n(27),s=n(72),c="prototype",l=function(t,e,n){var u,p,d,f,h=t&l.F,m=t&l.G,v=t&l.S,g=t&l.P,b=t&l.B,y=m?r:v?r[e]||(r[e]={}):(r[e]||{})[c],_=m?i:i[e]||(i[e]={}),w=_[c]||(_[c]={});m&&(n=e);for(u in n)p=!h&&y&&void 0!==y[u],d=(p?y:n)[u],f=b&&p?s(d,r):g&&"function"==typeof d?s(Function.call,d):d,y&&a(y,u,d,t&l.U),_[u]!=d&&o(_,u,f),g&&w[u]!=d&&(w[u]=d)};r.core=i,l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,t.exports=l},function(t,e,n){"use strict";(function(t){function scheduleMicroTask(t){Zone.current.scheduleMicroTask("scheduleMicrotask",t)}function getTypeNameForDebugging(t){return t.name?t.name:typeof t}function isPresent(t){return void 0!==t&&null!==t}function isBlank(t){return void 0===t||null===t}function isString(t){return"string"==typeof t}function isFunction(t){return"function"==typeof t}function isPromise(t){return isPresent(t)&&isFunction(t.then)}function isArray(t){return Array.isArray(t)}function stringify(t){if("string"==typeof t)return t;if(void 0===t||null===t)return""+t;if(t.overriddenName)return t.overriddenName;if(t.name)return t.name;var e=t.toString(),n=e.indexOf("\n");return n===-1?e:e.substring(0,n)}function looseIdentical(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}function getMapKey(t){return t}function isJsObject(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function print(t){console.log(t)}function warn(t){console.warn(t)}function getSymbolIterator(){if(isBlank(l))if(isPresent(r.Symbol)&&isPresent(Symbol.iterator))l=Symbol.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),e=0;e<t.length;++e){var n=t[e];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(l=n)}return l}function isPrimitive(t){return!isJsObject(t)}e.s=scheduleMicroTask,n.d(e,"c",function(){return i}),e.q=getTypeNameForDebugging,n.d(e,"l",function(){return o}),e.g=isPresent,e.f=isBlank,e.d=isString,e.b=isFunction,e.k=isPromise,e.h=isArray,e.a=stringify,n.d(e,"e",function(){return s}),n.d(e,"t",function(){return c}),e.o=looseIdentical,e.p=getMapKey,e.i=isJsObject,e.m=print,e.n=warn,e.j=getSymbolIterator,e.r=isPrimitive;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;r="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:t:window;var i=r,o=i.Math,a=i.Date;i.assert=function(t){};var s=(Object.getPrototypeOf({}),function(){function StringWrapper(){}return StringWrapper.fromCharCode=function(t){return String.fromCharCode(t)},StringWrapper.charCodeAt=function(t,e){return t.charCodeAt(e)},StringWrapper.split=function(t,e){return t.split(e)},StringWrapper.equals=function(t,e){return t===e},StringWrapper.stripLeft=function(t,e){if(t&&t.length){for(var n=0,r=0;r<t.length&&t[r]==e;r++)n++;t=t.substring(n)}return t},StringWrapper.stripRight=function(t,e){if(t&&t.length){for(var n=t.length,r=t.length-1;r>=0&&t[r]==e;r--)n--;t=t.substring(0,n)}return t},StringWrapper.replace=function(t,e,n){return t.replace(e,n)},StringWrapper.replaceAll=function(t,e,n){return t.replace(e,n)},StringWrapper.slice=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=null),t.slice(e,null===n?void 0:n)},StringWrapper.replaceAllMapped=function(t,e,n){return t.replace(e,function(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];return t.splice(-2,2),n(t)})},StringWrapper.contains=function(t,e){return t.indexOf(e)!=-1},StringWrapper.compare=function(t,e){return t<e?-1:t>e?1:0},StringWrapper}()),c=(function(){function StringJoiner(t){void 0===t&&(t=[]),this.parts=t}return StringJoiner.prototype.add=function(t){this.parts.push(t)},StringJoiner.prototype.toString=function(){return this.parts.join("")},StringJoiner}(),function(){function NumberWrapper(){}return NumberWrapper.toFixed=function(t,e){return t.toFixed(e)},NumberWrapper.equal=function(t,e){return t===e},NumberWrapper.parseIntAutoRadix=function(t){var e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e},NumberWrapper.parseInt=function(t,e){if(10==e){if(/^(\-|\+)?[0-9]+$/.test(t))return parseInt(t,e)}else if(16==e){if(/^(\-|\+)?[0-9ABCDEFabcdef]+$/.test(t))return parseInt(t,e)}else{var n=parseInt(t,e);if(!isNaN(n))return n}throw new Error("Invalid integer literal when parsing "+t+" in base "+e)},NumberWrapper.parseFloat=function(t){return parseFloat(t)},Object.defineProperty(NumberWrapper,"NaN",{get:function(){return NaN},enumerable:!0,configurable:!0}),NumberWrapper.isNumeric=function(t){return!isNaN(t-parseFloat(t))},NumberWrapper.isNaN=function(t){return isNaN(t)},NumberWrapper.isInteger=function(t){return Number.isInteger(t)},NumberWrapper}()),l=(i.RegExp,function(){function FunctionWrapper(){}return FunctionWrapper.apply=function(t,e){return t.apply(null,e)},FunctionWrapper.bind=function(t,e){return t.bind(e)},FunctionWrapper}(),function(){function Json(){}return Json.parse=function(t){return i.JSON.parse(t)},Json.stringify=function(t){return i.JSON.stringify(t,null,2)},Json}(),function(){function DateWrapper(){}return DateWrapper.create=function(t,e,n,r,i,o,s){return void 0===e&&(e=1),void 0===n&&(n=1),void 0===r&&(r=0),void 0===i&&(i=0),void 0===o&&(o=0),void 0===s&&(s=0),new a(t,e-1,n,r,i,o,s)},DateWrapper.fromISOString=function(t){return new a(t)},DateWrapper.fromMillis=function(t){return new a(t)},DateWrapper.toMillis=function(t){return t.getTime()},DateWrapper.now=function(){return new a},DateWrapper.toJson=function(t){return t.toJSON()},DateWrapper}(),null)}).call(e,n(59))},function(t,e,n){"use strict";(function(t){function isPresent(t){return void 0!==t&&null!==t}function isBlank(t){return void 0===t||null===t}function isString(t){return"string"==typeof t}function isStringMap(t){return"object"==typeof t&&null!==t}function isStrictStringMap(t){return isStringMap(t)&&Object.getPrototypeOf(t)===a}function isArray(t){return Array.isArray(t)}function stringify(t){if("string"==typeof t)return t;if(void 0===t||null===t)return""+t;if(t.overriddenName)return t.overriddenName;if(t.name)return t.name;var e=t.toString(),n=e.indexOf("\n");return n===-1?e:e.substring(0,n)}function normalizeBlank(t){return isBlank(t)?null:t}function normalizeBool(t){return!isBlank(t)&&t}function isJsObject(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function getSymbolIterator(){if(isBlank(u))if(isPresent(r.Symbol)&&isPresent(Symbol.iterator))u=Symbol.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),e=0;e<t.length;++e){var n=t[e];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(u=n)}return u}function evalExpression(t,e,n,r){var i=n+"\nreturn "+e+"\n//# sourceURL="+t,o=[],a=[];for(var s in r)o.push(s),a.push(r[s]);return(new(Function.bind.apply(Function,[void 0].concat(o.concat(i))))).apply(void 0,a)}function isPrimitive(t){return!isJsObject(t)}function escapeRegExp(t){return t.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}n.d(e,"b",function(){return i}),e.a=isPresent,e.c=isBlank,e.h=isString,e.m=isStringMap,e.i=isStrictStringMap,e.d=isArray,e.q=stringify,n.d(e,"g",function(){return s}),n.d(e,"o",function(){return c}),n.d(e,"n",function(){return l}),e.l=normalizeBlank,e.k=normalizeBool,e.e=isJsObject,e.f=getSymbolIterator,e.r=evalExpression,e.j=isPrimitive,e.p=escapeRegExp;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;r="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:t:window;var i=r,o=(i.Math,i.Date);i.assert=function(t){};var a=Object.getPrototypeOf({}),s=function(){function StringWrapper(){}return StringWrapper.fromCharCode=function(t){return String.fromCharCode(t)},StringWrapper.charCodeAt=function(t,e){return t.charCodeAt(e)},StringWrapper.split=function(t,e){return t.split(e)},StringWrapper.equals=function(t,e){return t===e},StringWrapper.stripLeft=function(t,e){if(t&&t.length){for(var n=0,r=0;r<t.length&&t[r]==e;r++)n++;t=t.substring(n)}return t},StringWrapper.stripRight=function(t,e){if(t&&t.length){for(var n=t.length,r=t.length-1;r>=0&&t[r]==e;r--)n--;t=t.substring(0,n)}return t},StringWrapper.replace=function(t,e,n){return t.replace(e,n)},StringWrapper.replaceAll=function(t,e,n){return t.replace(e,n)},StringWrapper.slice=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=null),t.slice(e,null===n?void 0:n)},StringWrapper.replaceAllMapped=function(t,e,n){return t.replace(e,function(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];return t.splice(-2,2),n(t)})},StringWrapper.contains=function(t,e){return t.indexOf(e)!=-1},StringWrapper.compare=function(t,e){return t<e?-1:t>e?1:0},StringWrapper}(),c=function(){function StringJoiner(t){void 0===t&&(t=[]),this.parts=t}return StringJoiner.prototype.add=function(t){this.parts.push(t)},StringJoiner.prototype.toString=function(){return this.parts.join("")},StringJoiner}(),l=function(){function NumberWrapper(){}return NumberWrapper.toFixed=function(t,e){return t.toFixed(e)},NumberWrapper.equal=function(t,e){return t===e},NumberWrapper.parseIntAutoRadix=function(t){var e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e},NumberWrapper.parseInt=function(t,e){if(10==e){if(/^(\-|\+)?[0-9]+$/.test(t))return parseInt(t,e)}else if(16==e){if(/^(\-|\+)?[0-9ABCDEFabcdef]+$/.test(t))return parseInt(t,e)}else{var n=parseInt(t,e);if(!isNaN(n))return n}throw new Error("Invalid integer literal when parsing "+t+" in base "+e)},NumberWrapper.parseFloat=function(t){return parseFloat(t)},Object.defineProperty(NumberWrapper,"NaN",{get:function(){return NaN},enumerable:!0,configurable:!0}),NumberWrapper.isNumeric=function(t){return!isNaN(t-parseFloat(t))},NumberWrapper.isNaN=function(t){return isNaN(t)},NumberWrapper.isInteger=function(t){return Number.isInteger(t)},NumberWrapper}(),u=(i.RegExp,function(){function FunctionWrapper(){}return FunctionWrapper.apply=function(t,e){return t.apply(null,e)},FunctionWrapper.bind=function(t,e){return t.bind(e)},FunctionWrapper}(),function(){function Json(){}return Json.parse=function(t){return i.JSON.parse(t)},Json.stringify=function(t){return i.JSON.stringify(t,null,2)},Json}(),function(){function DateWrapper(){}return DateWrapper.create=function(t,e,n,r,i,a,s){return void 0===e&&(e=1),void 0===n&&(n=1),void 0===r&&(r=0),void 0===i&&(i=0),void 0===a&&(a=0),void 0===s&&(s=0),new o(t,e-1,n,r,i,a,s)},DateWrapper.fromISOString=function(t){return new o(t)},DateWrapper.fromMillis=function(t){return new o(t)},DateWrapper.toMillis=function(t){return t.getTime()},DateWrapper.now=function(){return new o},DateWrapper.toJson=function(t){return t.toJSON()},DateWrapper}(),null)}).call(e,n(59))},function(t,e,n){var r=n(8);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e,n){"use strict";function _flattenArray(t,e){if(n.i(r.a)(t))for(var i=0;i<t.length;i++){var o=t[i];n.i(r.d)(o)?_flattenArray(o,e):e.push(o)}return e}var r=n(3);n.d(e,"c",function(){return u}),n.d(e,"b",function(){return p}),n.d(e,"a",function(){return d}),n.d(e,"d",function(){return h});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=r.b.Map,o=r.b.Set,a=function(){try{if(1===new i([[1,2]]).size)return function(t){return new i(t)}}catch(t){}return function(t){for(var e=new i,n=0;n<t.length;n++){var r=t[n];e.set(r[0],r[1])}return e}}(),s=function(){try{if(new i(new i))return function(t){return new i(t)}}catch(t){}return function(t){var e=new i;return t.forEach(function(t,n){e.set(n,t)}),e}}(),c=function(){return(new i).keys().next?function(t){for(var e,n=t.keys();!(e=n.next()).done;)t.set(e.value,null)}:function(t){t.forEach(function(e,n){t.set(n,null)})}}(),l=function(){try{if((new i).values().next)return function(t,e){return e?Array.from(t.values()):Array.from(t.keys())}}catch(t){}return function(t,e){var n=d.createFixedSize(t.size),r=0;return t.forEach(function(t,i){n[r]=e?t:i,r++}),n}}(),u=function(){function MapWrapper(){}return MapWrapper.clone=function(t){return s(t)},MapWrapper.createFromStringMap=function(t){var e=new i;for(var n in t)e.set(n,t[n]);return e},MapWrapper.toStringMap=function(t){var e={};return t.forEach(function(t,n){return e[n]=t}),e},MapWrapper.createFromPairs=function(t){return a(t)},MapWrapper.clearValues=function(t){c(t)},MapWrapper.iterable=function(t){return t},MapWrapper.keys=function(t){return l(t,!1)},MapWrapper.values=function(t){return l(t,!0)},MapWrapper}(),p=function(){function StringMapWrapper(){}return StringMapWrapper.create=function(){return{}},StringMapWrapper.contains=function(t,e){return t.hasOwnProperty(e)},StringMapWrapper.get=function(t,e){return t.hasOwnProperty(e)?t[e]:void 0},StringMapWrapper.set=function(t,e,n){t[e]=n},StringMapWrapper.keys=function(t){return Object.keys(t)},StringMapWrapper.values=function(t){return Object.keys(t).map(function(e){return t[e]})},StringMapWrapper.isEmpty=function(t){for(var e in t)return!1;return!0},StringMapWrapper.delete=function(t,e){delete t[e]},StringMapWrapper.forEach=function(t,e){for(var n=0,r=Object.keys(t);n<r.length;n++){var i=r[n];e(t[i],i)}},StringMapWrapper.merge=function(t,e){for(var n={},r=0,i=Object.keys(t);r<i.length;r++){var o=i[r];n[o]=t[o]}for(var a=0,s=Object.keys(e);a<s.length;a++){var o=s[a];n[o]=e[o]}return n},StringMapWrapper.equals=function(t,e){var n=Object.keys(t),r=Object.keys(e);if(n.length!=r.length)return!1;for(var i,o=0;o<n.length;o++)if(i=n[o],t[i]!==e[i])return!1;return!0},StringMapWrapper}(),d=function(){function ListWrapper(){}return ListWrapper.createFixedSize=function(t){return new Array(t)},ListWrapper.createGrowableSize=function(t){return new Array(t)},ListWrapper.clone=function(t){return t.slice(0)},ListWrapper.forEachWithIndex=function(t,e){for(var n=0;n<t.length;n++)e(t[n],n)},ListWrapper.first=function(t){return t?t[0]:null},ListWrapper.last=function(t){return t&&0!=t.length?t[t.length-1]:null},ListWrapper.indexOf=function(t,e,n){return void 0===n&&(n=0),t.indexOf(e,n)},ListWrapper.contains=function(t,e){return t.indexOf(e)!==-1},ListWrapper.reversed=function(t){var e=ListWrapper.clone(t);return e.reverse()},ListWrapper.concat=function(t,e){return t.concat(e)},ListWrapper.insert=function(t,e,n){t.splice(e,0,n)},ListWrapper.removeAt=function(t,e){var n=t[e];return t.splice(e,1),n},ListWrapper.removeAll=function(t,e){for(var n=0;n<e.length;++n){var r=t.indexOf(e[n]);t.splice(r,1)}},ListWrapper.remove=function(t,e){var n=t.indexOf(e);return n>-1&&(t.splice(n,1),!0)},ListWrapper.clear=function(t){t.length=0},ListWrapper.isEmpty=function(t){return 0==t.length},ListWrapper.fill=function(t,e,n,r){void 0===n&&(n=0),void 0===r&&(r=null),t.fill(e,n,null===r?t.length:r)},ListWrapper.equals=function(t,e){if(t.length!=e.length)return!1;for(var n=0;n<t.length;++n)if(t[n]!==e[n])return!1;return!0},ListWrapper.slice=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=null),t.slice(e,null===n?void 0:n)},ListWrapper.splice=function(t,e,n){return t.splice(e,n)},ListWrapper.sort=function(t,e){n.i(r.a)(e)?t.sort(e):t.sort()},ListWrapper.toString=function(t){return t.toString()},ListWrapper.toJSON=function(t){return JSON.stringify(t)},ListWrapper.maximum=function(t,e){if(0==t.length)return null;for(var i=null,o=-(1/0),a=0;a<t.length;a++){var s=t[a];if(!n.i(r.c)(s)){var c=e(s);c>o&&(i=s,o=c)}}return i},ListWrapper.flatten=function(t){var e=[];return _flattenArray(t,e),e},ListWrapper.addAll=function(t,e){for(var n=0;n<e.length;n++)t.push(e[n])},ListWrapper}(),f=function(){var t=new o([1,2,3]);return 3===t.size?function(t){return new o(t)}:function(t){var e=new o(t);if(e.size!==t.length)for(var n=0;n<t.length;n++)e.add(t[n]);return e}}(),h=function(){function SetWrapper(){}return SetWrapper.createFromList=function(t){return f(t)},SetWrapper.has=function(t,e){return t.has(e)},SetWrapper.delete=function(t,e){t.delete(e)},SetWrapper}()},function(t,e,n){"use strict";function replaceVarInExpression(t,e,n){var r=new ot(t,e);return n.visitExpression(r,null)}function findReadVarNames(t){var e=new at;return e.visitAllStatements(t,null),e.varNames}function variable(t,e){return void 0===e&&(e=null),new w(t,e)}function importExpr(t,e){return void 0===e&&(e=null),new O(t,null,e)}function importType(t,e,i){return void 0===e&&(e=null),void 0===i&&(i=null),n.i(r.a)(t)?new u(t,e,i):null}function literalArr(t,e){return void 0===e&&(e=null),new F(t,e)}function literalMap(t,e){return void 0===e&&(e=null),new W(t,e)}function not(t){return new D(t)}function fn(t,e,n){return void 0===n&&(n=null),new N(t,e,n)}function literal(t,e){return void 0===e&&(e=null),new T(t,e)}var r=n(3);n.d(e,"d",function(){return i}),n.d(e,"Q",function(){return s}),n.d(e,"R",function(){return a}),n.d(e,"I",function(){return u}),n.d(e,"q",function(){return p}),n.d(e,"w",function(){return d}),n.d(e,"l",function(){return f}),n.d(e,"D",function(){return h}),n.d(e,"L",function(){return m}),n.d(e,"K",function(){return v}),n.d(e,"E",function(){return g}),n.d(e,"y",function(){return c}),n.d(e,"m",function(){return y}),n.d(e,"O",function(){return b}),n.d(e,"B",function(){return w}),n.d(e,"r",function(){return _}),n.d(e,"G",function(){return T}),n.d(e,"S",function(){return O}),n.d(e,"k",function(){return I}),n.d(e,"z",function(){return V}),n.d(e,"o",function(){return L}),n.d(e,"n",function(){return B}),n.d(e,"J",function(){return U}),n.d(e,"h",function(){return z}),n.d(e,"u",function(){return k}),n.d(e,"P",function(){return H}),n.d(e,"x",function(){return q}),n.d(e,"F",function(){return Y}),n.d(e,"t",function(){return K}),n.d(e,"s",function(){return $}),n.d(e,"C",function(){return J}),n.d(e,"v",function(){return Q}),n.d(e,"M",function(){return X}),n.d(e,"i",function(){return tt}),n.d(e,"H",function(){return et}),e.p=replaceVarInExpression,e.N=findReadVarNames,e.e=variable,e.b=importExpr,e.c=importType,e.g=literalArr,e.f=literalMap,e.A=not,e.j=fn,e.a=literal;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i,o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)};!function(t){t[t.Const=0]="Const"}(i||(i={}));var a,s=function(){function Type(t){void 0===t&&(t=null),this.modifiers=t,n.i(r.c)(t)&&(this.modifiers=[])}return Type.prototype.hasModifier=function(t){return this.modifiers.indexOf(t)!==-1},Type}();!function(t){t[t.Dynamic=0]="Dynamic",t[t.Bool=1]="Bool",t[t.String=2]="String",t[t.Int=3]="Int",t[t.Number=4]="Number",t[t.Function=5]="Function"}(a||(a={}));var c,l=function(t){function BuiltinType(e,n){void 0===n&&(n=null),t.call(this,n),this.name=e}return o(BuiltinType,t),BuiltinType.prototype.visitType=function(t,e){return t.visitBuiltintType(this,e)},BuiltinType}(s),u=function(t){function ExternalType(e,n,r){void 0===n&&(n=null),void 0===r&&(r=null),t.call(this,r),this.value=e,this.typeParams=n}return o(ExternalType,t),ExternalType.prototype.visitType=function(t,e){return t.visitExternalType(this,e)},ExternalType}(s),p=function(t){function ArrayType(e,n){void 0===n&&(n=null),t.call(this,n),this.of=e}return o(ArrayType,t),ArrayType.prototype.visitType=function(t,e){return t.visitArrayType(this,e)},ArrayType}(s),d=function(t){function MapType(e,n){void 0===n&&(n=null),t.call(this,n),this.valueType=e}return o(MapType,t),MapType.prototype.visitType=function(t,e){return t.visitMapType(this,e)},MapType}(s),f=new l(a.Dynamic),h=new l(a.Bool),m=(new l(a.Int),new l(a.Number)),v=new l(a.String),g=new l(a.Function);!function(t){t[t.Equals=0]="Equals",t[t.NotEquals=1]="NotEquals",t[t.Identical=2]="Identical",t[t.NotIdentical=3]="NotIdentical",t[t.Minus=4]="Minus",t[t.Plus=5]="Plus",t[t.Divide=6]="Divide",t[t.Multiply=7]="Multiply",t[t.Modulo=8]="Modulo",t[t.And=9]="And",t[t.Or=10]="Or",t[t.Lower=11]="Lower",t[t.LowerEquals=12]="LowerEquals",t[t.Bigger=13]="Bigger",t[t.BiggerEquals=14]="BiggerEquals"}(c||(c={}));var b,y=function(){function Expression(t){this.type=t}return Expression.prototype.prop=function(t){return new L(this,t)},Expression.prototype.key=function(t,e){return void 0===e&&(e=null),new j(this,t,e)},Expression.prototype.callMethod=function(t,e){return new E(this,t,e)},Expression.prototype.callFn=function(t){return new P(this,t)},Expression.prototype.instantiate=function(t,e){return void 0===e&&(e=null),new A(this,t,e)},Expression.prototype.conditional=function(t,e){return void 0===e&&(e=null),new M(this,t,e)},Expression.prototype.equals=function(t){return new V(c.Equals,this,t)},Expression.prototype.notEquals=function(t){return new V(c.NotEquals,this,t)},Expression.prototype.identical=function(t){return new V(c.Identical,this,t)},Expression.prototype.notIdentical=function(t){return new V(c.NotIdentical,this,t)},Expression.prototype.minus=function(t){return new V(c.Minus,this,t)},Expression.prototype.plus=function(t){return new V(c.Plus,this,t)},Expression.prototype.divide=function(t){return new V(c.Divide,this,t)},Expression.prototype.multiply=function(t){return new V(c.Multiply,this,t)},Expression.prototype.modulo=function(t){return new V(c.Modulo,this,t)},Expression.prototype.and=function(t){return new V(c.And,this,t)},Expression.prototype.or=function(t){return new V(c.Or,this,t)},Expression.prototype.lower=function(t){return new V(c.Lower,this,t)},Expression.prototype.lowerEquals=function(t){return new V(c.LowerEquals,this,t)},Expression.prototype.bigger=function(t){return new V(c.Bigger,this,t)},Expression.prototype.biggerEquals=function(t){return new V(c.BiggerEquals,this,t)},Expression.prototype.isBlank=function(){return this.equals(z)},Expression.prototype.cast=function(t){return new R(this,t)},Expression.prototype.toStmt=function(){return new Y(this)},Expression}();!function(t){t[t.This=0]="This",t[t.Super=1]="Super",t[t.CatchError=2]="CatchError",t[t.CatchStack=3]="CatchStack"}(b||(b={}));var _,w=function(t){function ReadVarExpr(e,i){void 0===i&&(i=null),t.call(this,i),n.i(r.h)(e)?(this.name=e,this.builtin=null):(this.name=null,this.builtin=e)}return o(ReadVarExpr,t),ReadVarExpr.prototype.visitExpression=function(t,e){return t.visitReadVarExpr(this,e)},ReadVarExpr.prototype.set=function(t){return new x(this.name,t)},ReadVarExpr}(y),x=function(t){function WriteVarExpr(e,i,o){void 0===o&&(o=null),t.call(this,n.i(r.a)(o)?o:i.type),this.name=e,this.value=i}return o(WriteVarExpr,t),WriteVarExpr.prototype.visitExpression=function(t,e){return t.visitWriteVarExpr(this,e)},WriteVarExpr.prototype.toDeclStmt=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=null),new q(this.name,this.value,t,e)},WriteVarExpr}(y),C=function(t){function WriteKeyExpr(e,i,o,a){void 0===a&&(a=null),t.call(this,n.i(r.a)(a)?a:o.type),this.receiver=e,this.index=i,this.value=o}return o(WriteKeyExpr,t),WriteKeyExpr.prototype.visitExpression=function(t,e){return t.visitWriteKeyExpr(this,e)},WriteKeyExpr}(y),S=function(t){function WritePropExpr(e,i,o,a){void 0===a&&(a=null),t.call(this,n.i(r.a)(a)?a:o.type),this.receiver=e,this.name=i,this.value=o}return o(WritePropExpr,t),WritePropExpr.prototype.visitExpression=function(t,e){return t.visitWritePropExpr(this,e)},WritePropExpr}(y);!function(t){t[t.ConcatArray=0]="ConcatArray",t[t.SubscribeObservable=1]="SubscribeObservable",t[t.Bind=2]="Bind"}(_||(_={}));var k,E=function(t){function InvokeMethodExpr(e,i,o,a){void 0===a&&(a=null),t.call(this,a),this.receiver=e,this.args=o,n.i(r.h)(i)?(this.name=i,this.builtin=null):(this.name=null,this.builtin=i)}return o(InvokeMethodExpr,t),InvokeMethodExpr.prototype.visitExpression=function(t,e){return t.visitInvokeMethodExpr(this,e)},InvokeMethodExpr}(y),P=function(t){function InvokeFunctionExpr(e,n,r){void 0===r&&(r=null),t.call(this,r),this.fn=e,this.args=n}return o(InvokeFunctionExpr,t),InvokeFunctionExpr.prototype.visitExpression=function(t,e){return t.visitInvokeFunctionExpr(this,e)},InvokeFunctionExpr}(y),A=function(t){function InstantiateExpr(e,n,r){t.call(this,r),this.classExpr=e,this.args=n}return o(InstantiateExpr,t),InstantiateExpr.prototype.visitExpression=function(t,e){return t.visitInstantiateExpr(this,e)},InstantiateExpr}(y),T=function(t){function LiteralExpr(e,n){void 0===n&&(n=null),t.call(this,n),this.value=e}return o(LiteralExpr,t),LiteralExpr.prototype.visitExpression=function(t,e){return t.visitLiteralExpr(this,e)},LiteralExpr}(y),O=function(t){function ExternalExpr(e,n,r){void 0===n&&(n=null),void 0===r&&(r=null),t.call(this,n),this.value=e,this.typeParams=r}return o(ExternalExpr,t),ExternalExpr.prototype.visitExpression=function(t,e){return t.visitExternalExpr(this,e)},ExternalExpr}(y),M=function(t){function ConditionalExpr(e,i,o,a){void 0===o&&(o=null),void 0===a&&(a=null),t.call(this,n.i(r.a)(a)?a:i.type),this.condition=e,this.falseCase=o,this.trueCase=i}return o(ConditionalExpr,t),ConditionalExpr.prototype.visitExpression=function(t,e){return t.visitConditionalExpr(this,e)},ConditionalExpr}(y),D=function(t){function NotExpr(e){t.call(this,h),this.condition=e}return o(NotExpr,t),NotExpr.prototype.visitExpression=function(t,e){return t.visitNotExpr(this,e)},NotExpr}(y),R=function(t){function CastExpr(e,n){t.call(this,n),this.value=e}return o(CastExpr,t),CastExpr.prototype.visitExpression=function(t,e){return t.visitCastExpr(this,e)},CastExpr}(y),I=function(){function FnParam(t,e){void 0===e&&(e=null),this.name=t,this.type=e}return FnParam}(),N=function(t){function FunctionExpr(e,n,r){void 0===r&&(r=null),t.call(this,r),this.params=e,this.statements=n}return o(FunctionExpr,t),FunctionExpr.prototype.visitExpression=function(t,e){return t.visitFunctionExpr(this,e)},FunctionExpr.prototype.toDeclStmt=function(t,e){return void 0===e&&(e=null),new G(t,this.params,this.statements,this.type,e)},FunctionExpr}(y),V=function(t){function BinaryOperatorExpr(e,i,o,a){void 0===a&&(a=null),t.call(this,n.i(r.a)(a)?a:i.type),this.operator=e,this.rhs=o,this.lhs=i}return o(BinaryOperatorExpr,t),BinaryOperatorExpr.prototype.visitExpression=function(t,e){return t.visitBinaryOperatorExpr(this,e)},BinaryOperatorExpr}(y),L=function(t){function ReadPropExpr(e,n,r){void 0===r&&(r=null),t.call(this,r),this.receiver=e,this.name=n}return o(ReadPropExpr,t),ReadPropExpr.prototype.visitExpression=function(t,e){return t.visitReadPropExpr(this,e)},ReadPropExpr.prototype.set=function(t){return new S(this.receiver,this.name,t)},ReadPropExpr}(y),j=function(t){function ReadKeyExpr(e,n,r){void 0===r&&(r=null),t.call(this,r),this.receiver=e,this.index=n}return o(ReadKeyExpr,t),ReadKeyExpr.prototype.visitExpression=function(t,e){return t.visitReadKeyExpr(this,e)},ReadKeyExpr.prototype.set=function(t){return new C(this.receiver,this.index,t)},ReadKeyExpr}(y),F=function(t){function LiteralArrayExpr(e,n){void 0===n&&(n=null),t.call(this,n),this.entries=e}return o(LiteralArrayExpr,t),LiteralArrayExpr.prototype.visitExpression=function(t,e){return t.visitLiteralArrayExpr(this,e)},LiteralArrayExpr}(y),W=function(t){function LiteralMapExpr(e,i){void 0===i&&(i=null),t.call(this,i),this.entries=e,this.valueType=null,n.i(r.a)(i)&&(this.valueType=i.valueType)}return o(LiteralMapExpr,t),LiteralMapExpr.prototype.visitExpression=function(t,e){return t.visitLiteralMapExpr(this,e)},LiteralMapExpr}(y),B=new w(b.This),U=new w(b.Super),z=(new w(b.CatchError),new w(b.CatchStack),new T(null,null));!function(t){t[t.Final=0]="Final",t[t.Private=1]="Private"}(k||(k={}));var H=function(){function Statement(t){void 0===t&&(t=null),this.modifiers=t,n.i(r.c)(t)&&(this.modifiers=[])}return Statement.prototype.hasModifier=function(t){return this.modifiers.indexOf(t)!==-1},Statement}(),q=function(t){function DeclareVarStmt(e,i,o,a){void 0===o&&(o=null),void 0===a&&(a=null),t.call(this,a),this.name=e,this.value=i,this.type=n.i(r.a)(o)?o:i.type}return o(DeclareVarStmt,t),DeclareVarStmt.prototype.visitStatement=function(t,e){return t.visitDeclareVarStmt(this,e)},DeclareVarStmt}(H),G=function(t){function DeclareFunctionStmt(e,n,r,i,o){void 0===i&&(i=null),void 0===o&&(o=null),t.call(this,o),this.name=e,this.params=n,this.statements=r,this.type=i}return o(DeclareFunctionStmt,t),DeclareFunctionStmt.prototype.visitStatement=function(t,e){return t.visitDeclareFunctionStmt(this,e)},DeclareFunctionStmt}(H),Y=function(t){function ExpressionStatement(e){t.call(this),this.expr=e}return o(ExpressionStatement,t),ExpressionStatement.prototype.visitStatement=function(t,e){return t.visitExpressionStmt(this,e)},ExpressionStatement}(H),K=function(t){function ReturnStatement(e){t.call(this),this.value=e}return o(ReturnStatement,t),ReturnStatement.prototype.visitStatement=function(t,e){return t.visitReturnStmt(this,e)},ReturnStatement}(H),Z=function(){function AbstractClassPart(t,e){void 0===t&&(t=null),this.type=t,this.modifiers=e,n.i(r.c)(e)&&(this.modifiers=[])}return AbstractClassPart.prototype.hasModifier=function(t){return this.modifiers.indexOf(t)!==-1},AbstractClassPart}(),$=function(t){function ClassField(e,n,r){void 0===n&&(n=null),void 0===r&&(r=null),t.call(this,n,r),this.name=e}return o(ClassField,t),ClassField}(Z),J=function(t){function ClassMethod(e,n,r,i,o){void 0===i&&(i=null),void 0===o&&(o=null),t.call(this,i,o),this.name=e,this.params=n,this.body=r}return o(ClassMethod,t),ClassMethod}(Z),Q=function(t){function ClassGetter(e,n,r,i){void 0===r&&(r=null),void 0===i&&(i=null),t.call(this,r,i),this.name=e,this.body=n}return o(ClassGetter,t),ClassGetter}(Z),X=function(t){function ClassStmt(e,n,r,i,o,a,s){void 0===s&&(s=null),t.call(this,s),this.name=e,this.parent=n,this.fields=r,this.getters=i,this.constructorMethod=o,this.methods=a}return o(ClassStmt,t),ClassStmt.prototype.visitStatement=function(t,e){return t.visitDeclareClassStmt(this,e)},ClassStmt}(H),tt=function(t){function IfStmt(e,n,r){void 0===r&&(r=[]),t.call(this),this.condition=e,this.trueCase=n,this.falseCase=r}return o(IfStmt,t),IfStmt.prototype.visitStatement=function(t,e){return t.visitIfStmt(this,e)},IfStmt}(H),et=(function(t){function CommentStmt(e){t.call(this),this.comment=e}return o(CommentStmt,t),CommentStmt.prototype.visitStatement=function(t,e){return t.visitCommentStmt(this,e)},CommentStmt}(H),function(t){function TryCatchStmt(e,n){t.call(this),this.bodyStmts=e,this.catchStmts=n}return o(TryCatchStmt,t),TryCatchStmt.prototype.visitStatement=function(t,e){return t.visitTryCatchStmt(this,e)},TryCatchStmt}(H)),nt=function(t){function ThrowStmt(e){t.call(this),this.error=e}return o(ThrowStmt,t),ThrowStmt.prototype.visitStatement=function(t,e){return t.visitThrowStmt(this,e)},ThrowStmt}(H),rt=function(){function ExpressionTransformer(){}return ExpressionTransformer.prototype.visitReadVarExpr=function(t,e){return t},ExpressionTransformer.prototype.visitWriteVarExpr=function(t,e){return new x(t.name,t.value.visitExpression(this,e))},ExpressionTransformer.prototype.visitWriteKeyExpr=function(t,e){return new C(t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t.value.visitExpression(this,e))},ExpressionTransformer.prototype.visitWritePropExpr=function(t,e){return new S(t.receiver.visitExpression(this,e),t.name,t.value.visitExpression(this,e))},ExpressionTransformer.prototype.visitInvokeMethodExpr=function(t,e){var i=n.i(r.a)(t.builtin)?t.builtin:t.name;return new E(t.receiver.visitExpression(this,e),i,this.visitAllExpressions(t.args,e),t.type)},ExpressionTransformer.prototype.visitInvokeFunctionExpr=function(t,e){return new P(t.fn.visitExpression(this,e),this.visitAllExpressions(t.args,e),t.type)},ExpressionTransformer.prototype.visitInstantiateExpr=function(t,e){return new A(t.classExpr.visitExpression(this,e),this.visitAllExpressions(t.args,e),t.type)},ExpressionTransformer.prototype.visitLiteralExpr=function(t,e){return t},ExpressionTransformer.prototype.visitExternalExpr=function(t,e){return t},ExpressionTransformer.prototype.visitConditionalExpr=function(t,e){return new M(t.condition.visitExpression(this,e),t.trueCase.visitExpression(this,e),t.falseCase.visitExpression(this,e))},ExpressionTransformer.prototype.visitNotExpr=function(t,e){return new D(t.condition.visitExpression(this,e))},ExpressionTransformer.prototype.visitCastExpr=function(t,e){return new R(t.value.visitExpression(this,e),e)},ExpressionTransformer.prototype.visitFunctionExpr=function(t,e){return t},ExpressionTransformer.prototype.visitBinaryOperatorExpr=function(t,e){return new V(t.operator,t.lhs.visitExpression(this,e),t.rhs.visitExpression(this,e),t.type)},ExpressionTransformer.prototype.visitReadPropExpr=function(t,e){return new L(t.receiver.visitExpression(this,e),t.name,t.type)},ExpressionTransformer.prototype.visitReadKeyExpr=function(t,e){return new j(t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t.type)},ExpressionTransformer.prototype.visitLiteralArrayExpr=function(t,e){return new F(this.visitAllExpressions(t.entries,e))},ExpressionTransformer.prototype.visitLiteralMapExpr=function(t,e){var n=this;return new W(t.entries.map(function(t){return[t[0],t[1].visitExpression(n,e)]}))},ExpressionTransformer.prototype.visitAllExpressions=function(t,e){var n=this;return t.map(function(t){return t.visitExpression(n,e)})},ExpressionTransformer.prototype.visitDeclareVarStmt=function(t,e){return new q(t.name,t.value.visitExpression(this,e),t.type,t.modifiers)},ExpressionTransformer.prototype.visitDeclareFunctionStmt=function(t,e){return t},ExpressionTransformer.prototype.visitExpressionStmt=function(t,e){return new Y(t.expr.visitExpression(this,e))},ExpressionTransformer.prototype.visitReturnStmt=function(t,e){return new K(t.value.visitExpression(this,e))},ExpressionTransformer.prototype.visitDeclareClassStmt=function(t,e){return t},ExpressionTransformer.prototype.visitIfStmt=function(t,e){return new tt(t.condition.visitExpression(this,e),this.visitAllStatements(t.trueCase,e),this.visitAllStatements(t.falseCase,e))},ExpressionTransformer.prototype.visitTryCatchStmt=function(t,e){return new et(this.visitAllStatements(t.bodyStmts,e),this.visitAllStatements(t.catchStmts,e))},ExpressionTransformer.prototype.visitThrowStmt=function(t,e){return new nt(t.error.visitExpression(this,e))},ExpressionTransformer.prototype.visitCommentStmt=function(t,e){return t},ExpressionTransformer.prototype.visitAllStatements=function(t,e){var n=this;return t.map(function(t){return t.visitStatement(n,e)})},ExpressionTransformer}(),it=function(){function RecursiveExpressionVisitor(){}return RecursiveExpressionVisitor.prototype.visitReadVarExpr=function(t,e){return t},RecursiveExpressionVisitor.prototype.visitWriteVarExpr=function(t,e){return t.value.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitWriteKeyExpr=function(t,e){return t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t.value.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitWritePropExpr=function(t,e){return t.receiver.visitExpression(this,e),t.value.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitInvokeMethodExpr=function(t,e){return t.receiver.visitExpression(this,e),this.visitAllExpressions(t.args,e),t},RecursiveExpressionVisitor.prototype.visitInvokeFunctionExpr=function(t,e){return t.fn.visitExpression(this,e),this.visitAllExpressions(t.args,e),t},RecursiveExpressionVisitor.prototype.visitInstantiateExpr=function(t,e){return t.classExpr.visitExpression(this,e),this.visitAllExpressions(t.args,e),t},RecursiveExpressionVisitor.prototype.visitLiteralExpr=function(t,e){return t},RecursiveExpressionVisitor.prototype.visitExternalExpr=function(t,e){return t},RecursiveExpressionVisitor.prototype.visitConditionalExpr=function(t,e){return t.condition.visitExpression(this,e),t.trueCase.visitExpression(this,e),t.falseCase.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitNotExpr=function(t,e){return t.condition.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitCastExpr=function(t,e){return t.value.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitFunctionExpr=function(t,e){return t},RecursiveExpressionVisitor.prototype.visitBinaryOperatorExpr=function(t,e){return t.lhs.visitExpression(this,e),t.rhs.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitReadPropExpr=function(t,e){return t.receiver.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitReadKeyExpr=function(t,e){return t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitLiteralArrayExpr=function(t,e){return this.visitAllExpressions(t.entries,e),t},RecursiveExpressionVisitor.prototype.visitLiteralMapExpr=function(t,e){var n=this;return t.entries.forEach(function(t){return t[1].visitExpression(n,e)}),t},RecursiveExpressionVisitor.prototype.visitAllExpressions=function(t,e){var n=this;t.forEach(function(t){return t.visitExpression(n,e)})},RecursiveExpressionVisitor.prototype.visitDeclareVarStmt=function(t,e){return t.value.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitDeclareFunctionStmt=function(t,e){return t},RecursiveExpressionVisitor.prototype.visitExpressionStmt=function(t,e){return t.expr.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitReturnStmt=function(t,e){return t.value.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitDeclareClassStmt=function(t,e){return t},RecursiveExpressionVisitor.prototype.visitIfStmt=function(t,e){return t.condition.visitExpression(this,e),this.visitAllStatements(t.trueCase,e),this.visitAllStatements(t.falseCase,e),t},RecursiveExpressionVisitor.prototype.visitTryCatchStmt=function(t,e){return this.visitAllStatements(t.bodyStmts,e),this.visitAllStatements(t.catchStmts,e),t},RecursiveExpressionVisitor.prototype.visitThrowStmt=function(t,e){return t.error.visitExpression(this,e),t},RecursiveExpressionVisitor.prototype.visitCommentStmt=function(t,e){return t},RecursiveExpressionVisitor.prototype.visitAllStatements=function(t,e){var n=this;t.forEach(function(t){return t.visitStatement(n,e)})},RecursiveExpressionVisitor}(),ot=function(t){function _ReplaceVariableTransformer(e,n){t.call(this),this._varName=e,this._newValue=n}return o(_ReplaceVariableTransformer,t),_ReplaceVariableTransformer.prototype.visitReadVarExpr=function(t,e){return t.name==this._varName?this._newValue:t},_ReplaceVariableTransformer}(rt),at=function(t){function _VariableFinder(){t.apply(this,arguments),this.varNames=new Set}return o(_VariableFinder,t),_VariableFinder.prototype.visitReadVarExpr=function(t,e){return this.varNames.add(t.name),null},_VariableFinder}(it)},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){"use strict";var r=n(53),i=n(758),o=n(244),a=function(){function Observable(t){this._isScalar=!1,t&&(this._subscribe=t)}return Observable.prototype.lift=function(t){var e=new Observable;return e.source=this,e.operator=t,e},Observable.prototype.subscribe=function(t,e,n){var r=this.operator,o=i.toSubscriber(t,e,n);if(r?r.call(o,this):o.add(this._subscribe(o)),o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},Observable.prototype.forEach=function(t,e){var n=this;if(e||(r.root.Rx&&r.root.Rx.config&&r.root.Rx.config.Promise?e=r.root.Rx.config.Promise:r.root.Promise&&(e=r.root.Promise)),!e)throw new Error("no Promise impl found");return new e(function(e,r){var i=n.subscribe(function(e){if(i)try{t(e)}catch(n){r(n),i.unsubscribe()}else t(e)},r,e)})},Observable.prototype._subscribe=function(t){return this.source.subscribe(t)},Observable.prototype[o.$$observable]=function(){return this},Observable.create=function(t){return new Observable(t)},Observable}();e.Observable=a},function(t,e,n){"use strict";function _flattenArray(t,e){if(n.i(r.g)(t))for(var i=0;i<t.length;i++){var o=t[i];n.i(r.h)(o)?_flattenArray(o,e):e.push(o)}return e}function isListLikeIterable(t){return!!n.i(r.i)(t)&&(n.i(r.h)(t)||!(t instanceof i)&&n.i(r.j)()in t)}function areIterablesEqual(t,e,i){for(var o=t[n.i(r.j)()](),a=e[n.i(r.j)()]();;){var s=o.next(),c=a.next();if(s.done&&c.done)return!0;if(s.done||c.done)return!1;if(!i(s.value,c.value))return!1}}function iterateListLike(t,e){if(n.i(r.h)(t))for(var i=0;i<t.length;i++)e(t[i]);else for(var o,a=t[n.i(r.j)()]();!(o=a.next()).done;)e(o.value)}var r=n(2);n.d(e,"b",function(){return i}),n.d(e,"c",function(){return o}),n.d(e,"d",function(){return u}),n.d(e,"f",function(){return p}),n.d(e,"a",function(){return d}),e.g=isListLikeIterable,e.i=areIterablesEqual,e.h=iterateListLike,n.d(e,"e",function(){return h});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=r.c.Map,o=r.c.Set,a=function(){try{if(1===new i([[1,2]]).size)return function(t){return new i(t)}}catch(t){}return function(t){for(var e=new i,n=0;n<t.length;n++){var r=t[n];e.set(r[0],r[1])}return e}}(),s=function(){try{if(new i(new i))return function(t){return new i(t)}}catch(t){}return function(t){var e=new i;return t.forEach(function(t,n){e.set(n,t)}),e}}(),c=function(){return(new i).keys().next?function(t){for(var e,n=t.keys();!(e=n.next()).done;)t.set(e.value,null)}:function(t){t.forEach(function(e,n){t.set(n,null)})}}(),l=function(){try{if((new i).values().next)return function(t,e){return e?Array.from(t.values()):Array.from(t.keys())}}catch(t){}return function(t,e){var n=d.createFixedSize(t.size),r=0;return t.forEach(function(t,i){n[r]=e?t:i,r++}),n}}(),u=function(){function MapWrapper(){}return MapWrapper.clone=function(t){return s(t)},MapWrapper.createFromStringMap=function(t){var e=new i;for(var n in t)e.set(n,t[n]);return e},MapWrapper.toStringMap=function(t){var e={};return t.forEach(function(t,n){return e[n]=t}),e},MapWrapper.createFromPairs=function(t){return a(t)},MapWrapper.clearValues=function(t){c(t)},MapWrapper.iterable=function(t){return t},MapWrapper.keys=function(t){return l(t,!1)},MapWrapper.values=function(t){return l(t,!0)},MapWrapper}(),p=function(){function StringMapWrapper(){}return StringMapWrapper.create=function(){return{}},StringMapWrapper.contains=function(t,e){return t.hasOwnProperty(e)},StringMapWrapper.get=function(t,e){return t.hasOwnProperty(e)?t[e]:void 0},StringMapWrapper.set=function(t,e,n){t[e]=n},StringMapWrapper.keys=function(t){return Object.keys(t)},StringMapWrapper.values=function(t){return Object.keys(t).map(function(e){return t[e]})},StringMapWrapper.isEmpty=function(t){for(var e in t)return!1;return!0},StringMapWrapper.delete=function(t,e){delete t[e]},StringMapWrapper.forEach=function(t,e){for(var n=0,r=Object.keys(t);n<r.length;n++){var i=r[n];e(t[i],i)}},StringMapWrapper.merge=function(t,e){for(var n={},r=0,i=Object.keys(t);r<i.length;r++){var o=i[r];n[o]=t[o]}for(var a=0,s=Object.keys(e);a<s.length;a++){var o=s[a];n[o]=e[o]}return n},StringMapWrapper.equals=function(t,e){var n=Object.keys(t),r=Object.keys(e);if(n.length!=r.length)return!1;for(var i,o=0;o<n.length;o++)if(i=n[o],t[i]!==e[i])return!1;return!0},StringMapWrapper}(),d=function(){function ListWrapper(){}return ListWrapper.createFixedSize=function(t){return new Array(t)},ListWrapper.createGrowableSize=function(t){return new Array(t)},ListWrapper.clone=function(t){return t.slice(0)},ListWrapper.forEachWithIndex=function(t,e){for(var n=0;n<t.length;n++)e(t[n],n)},ListWrapper.first=function(t){return t?t[0]:null},ListWrapper.last=function(t){return t&&0!=t.length?t[t.length-1]:null},ListWrapper.indexOf=function(t,e,n){return void 0===n&&(n=0),t.indexOf(e,n)},ListWrapper.contains=function(t,e){return t.indexOf(e)!==-1},ListWrapper.reversed=function(t){var e=ListWrapper.clone(t);return e.reverse()},ListWrapper.concat=function(t,e){return t.concat(e)},ListWrapper.insert=function(t,e,n){t.splice(e,0,n)},ListWrapper.removeAt=function(t,e){var n=t[e];return t.splice(e,1),n},ListWrapper.removeAll=function(t,e){for(var n=0;n<e.length;++n){var r=t.indexOf(e[n]);t.splice(r,1)}},ListWrapper.remove=function(t,e){var n=t.indexOf(e);return n>-1&&(t.splice(n,1),!0)},ListWrapper.clear=function(t){t.length=0},ListWrapper.isEmpty=function(t){return 0==t.length},ListWrapper.fill=function(t,e,n,r){void 0===n&&(n=0),void 0===r&&(r=null),t.fill(e,n,null===r?t.length:r)},ListWrapper.equals=function(t,e){if(t.length!=e.length)return!1;for(var n=0;n<t.length;++n)if(t[n]!==e[n])return!1;return!0},ListWrapper.slice=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=null),t.slice(e,null===n?void 0:n)},ListWrapper.splice=function(t,e,n){return t.splice(e,n)},ListWrapper.sort=function(t,e){n.i(r.g)(e)?t.sort(e):t.sort()},ListWrapper.toString=function(t){return t.toString()},ListWrapper.toJSON=function(t){return JSON.stringify(t)},ListWrapper.maximum=function(t,e){if(0==t.length)return null;for(var i=null,o=-(1/0),a=0;a<t.length;a++){var s=t[a];if(!n.i(r.f)(s)){var c=e(s);c>o&&(i=s,o=c)}}return i},ListWrapper.flatten=function(t){var e=[];return _flattenArray(t,e),e},ListWrapper.addAll=function(t,e){for(var n=0;n<e.length;n++)t.push(e[n])},ListWrapper}(),f=function(){var t=new o([1,2,3]);return 3===t.size?function(t){return new o(t)}:function(t){var e=new o(t);if(e.size!==t.length)for(var n=0;n<t.length;n++)e.add(t[n]);return e}}(),h=function(){function SetWrapper(){}return SetWrapper.createFromList=function(t){return f(t)},SetWrapper.has=function(t,e){return t.has(e)},SetWrapper.delete=function(t,e){t.delete(e)},SetWrapper}()},function(t,e,n){var r=n(135)("wks"),i=n(95),o=n(14).Symbol,a="function"==typeof o,s=t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))};s.store=r},function(t,e,n){"use strict";(function(t){function getTypeNameForDebugging(t){return t.name?t.name:typeof t}function isPresent(t){return void 0!==t&&null!==t}function isBlank(t){return void 0===t||null===t}function isNumber(t){return"number"==typeof t}function isString(t){return"string"==typeof t}function isFunction(t){return"function"==typeof t}function isStringMap(t){return"object"==typeof t&&null!==t}function isPromise(t){return isPresent(t)&&isFunction(t.then)}function isArray(t){return Array.isArray(t)}function isDate(t){return t instanceof o&&!isNaN(t.valueOf())}function stringify(t){if("string"==typeof t)return t;if(void 0===t||null===t)return""+t;if(t.overriddenName)return t.overriddenName;if(t.name)return t.name;var e=t.toString(),n=e.indexOf("\n");return n===-1?e:e.substring(0,n)}function normalizeBlank(t){return isBlank(t)?null:t}function isJsObject(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function getSymbolIterator(){if(isBlank(u))if(isPresent(r.Symbol)&&isPresent(Symbol.iterator))u=Symbol.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),e=0;e<t.length;++e){var n=t[e];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(u=n)}return u}n.d(e,"e",function(){return i}),e.q=getTypeNameForDebugging,e.b=isPresent,e.c=isBlank,e.p=isNumber,e.k=isString,e.m=isStringMap,e.d=isPromise,e.f=isArray,e.l=isDate,e.a=stringify,n.d(e,"n",function(){return a}),n.d(e,"i",function(){return s}),e.r=normalizeBlank,e.g=isJsObject,n.d(e,"o",function(){return c}),n.d(e,"j",function(){return l}),e.h=getSymbolIterator;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;r="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:t:window;var i=r,o=(i.Math,i.Date);i.assert=function(t){};var a=(Object.getPrototypeOf({}),function(){function StringWrapper(){}return StringWrapper.fromCharCode=function(t){return String.fromCharCode(t)},StringWrapper.charCodeAt=function(t,e){return t.charCodeAt(e)},StringWrapper.split=function(t,e){return t.split(e)},StringWrapper.equals=function(t,e){return t===e},StringWrapper.stripLeft=function(t,e){if(t&&t.length){for(var n=0,r=0;r<t.length&&t[r]==e;r++)n++;t=t.substring(n)}return t},StringWrapper.stripRight=function(t,e){if(t&&t.length){for(var n=t.length,r=t.length-1;r>=0&&t[r]==e;r--)n--;t=t.substring(0,n)}return t},StringWrapper.replace=function(t,e,n){return t.replace(e,n)},StringWrapper.replaceAll=function(t,e,n){return t.replace(e,n)},StringWrapper.slice=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=null),t.slice(e,null===n?void 0:n)},StringWrapper.replaceAllMapped=function(t,e,n){return t.replace(e,function(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];return t.splice(-2,2),n(t)})},StringWrapper.contains=function(t,e){return t.indexOf(e)!=-1},StringWrapper.compare=function(t,e){return t<e?-1:t>e?1:0},StringWrapper}()),s=(function(){function StringJoiner(t){void 0===t&&(t=[]),this.parts=t}return StringJoiner.prototype.add=function(t){this.parts.push(t)},StringJoiner.prototype.toString=function(){return this.parts.join("")},StringJoiner}(),function(){function NumberWrapper(){}return NumberWrapper.toFixed=function(t,e){return t.toFixed(e)},NumberWrapper.equal=function(t,e){return t===e},NumberWrapper.parseIntAutoRadix=function(t){var e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e},NumberWrapper.parseInt=function(t,e){if(10==e){if(/^(\-|\+)?[0-9]+$/.test(t))return parseInt(t,e)}else if(16==e){if(/^(\-|\+)?[0-9ABCDEFabcdef]+$/.test(t))return parseInt(t,e)}else{var n=parseInt(t,e);if(!isNaN(n))return n}throw new Error("Invalid integer literal when parsing "+t+" in base "+e)},NumberWrapper.parseFloat=function(t){return parseFloat(t)},Object.defineProperty(NumberWrapper,"NaN",{get:function(){return NaN},enumerable:!0,configurable:!0}),NumberWrapper.isNumeric=function(t){return!isNaN(t-parseFloat(t))},NumberWrapper.isNaN=function(t){return isNaN(t)},NumberWrapper.isInteger=function(t){return Number.isInteger(t)},NumberWrapper}()),c=(i.RegExp,function(){function FunctionWrapper(){}return FunctionWrapper.apply=function(t,e){return t.apply(null,e)},FunctionWrapper.bind=function(t,e){return t.bind(e)},FunctionWrapper}(),function(){function Json(){}return Json.parse=function(t){return i.JSON.parse(t)},Json.stringify=function(t){return i.JSON.stringify(t,null,2)},Json}()),l=function(){function DateWrapper(){}return DateWrapper.create=function(t,e,n,r,i,a,s){return void 0===e&&(e=1),void 0===n&&(n=1),void 0===r&&(r=0),void 0===i&&(i=0),void 0===a&&(a=0),void 0===s&&(s=0),new o(t,e-1,n,r,i,a,s)},DateWrapper.fromISOString=function(t){return new o(t)},DateWrapper.fromMillis=function(t){return new o(t)},DateWrapper.toMillis=function(t){return t.getTime()},DateWrapper.now=function(){return new o},DateWrapper.toJson=function(t){return t.toJSON()},DateWrapper}(),u=null}).call(e,n(59))},function(t,e){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){"use strict";function getDOM(){return i}function setRootDomAdapter(t){n.i(r.c)(i)&&(i=t)}var r=n(25);e.a=getDOM,e.c=setRootDomAdapter,n.d(e,"b",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=null,o=function(){function DomAdapter(){this.resourceLoaderType=null}return Object.defineProperty(DomAdapter.prototype,"attrToPropMap",{get:function(){return this._attrToPropMap},set:function(t){this._attrToPropMap=t},enumerable:!0,configurable:!0}),DomAdapter}()},function(t,e,n){"use strict";function resolveIdentifier(t){return new i.a({name:t.name,moduleUrl:t.moduleUrl,reference:o.P.resolveIdentifier(t.name,t.moduleUrl,t.runtime)})}function identifierToken(t){return new i.b({identifier:t})}function resolveIdentifierToken(t){return identifierToken(resolveIdentifier(t))}function resolveEnumIdentifier(t,e){var n=o.P.resolveEnum(t.reference,e);return new i.a({name:t.name+"."+e,moduleUrl:t.moduleUrl,reference:n})}var r=n(0),i=n(20),o=n(17),a=n(23);n.d(e,"b",function(){return p}),e.d=resolveIdentifier,e.c=identifierToken,e.a=resolveIdentifierToken,e.e=resolveEnumIdentifier;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=n.i(a.c)("core","linker/view"),c=n.i(a.c)("core","linker/view_utils"),l=n.i(a.c)("core","change_detection/change_detection"),u=n.i(a.c)("core","animation/animation_style_util"),p=function(){function Identifiers(){}return Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS={name:"ANALYZE_FOR_ENTRY_COMPONENTS",moduleUrl:n.i(a.c)("core","metadata/di"),runtime:r.ANALYZE_FOR_ENTRY_COMPONENTS},Identifiers.ViewUtils={name:"ViewUtils",moduleUrl:n.i(a.c)("core","linker/view_utils"),runtime:o.a},Identifiers.AppView={name:"AppView",moduleUrl:s,runtime:o.b},Identifiers.DebugAppView={name:"DebugAppView",moduleUrl:s,runtime:o.c},Identifiers.AppElement={name:"AppElement",moduleUrl:n.i(a.c)("core","linker/element"),runtime:o.d},Identifiers.ElementRef={name:"ElementRef",moduleUrl:n.i(a.c)("core","linker/element_ref"),runtime:r.ElementRef},Identifiers.ViewContainerRef={name:"ViewContainerRef",moduleUrl:n.i(a.c)("core","linker/view_container_ref"),runtime:r.ViewContainerRef},Identifiers.ChangeDetectorRef={name:"ChangeDetectorRef",moduleUrl:n.i(a.c)("core","change_detection/change_detector_ref"),runtime:r.ChangeDetectorRef},Identifiers.RenderComponentType={name:"RenderComponentType",moduleUrl:n.i(a.c)("core","render/api"),runtime:r.RenderComponentType},Identifiers.QueryList={name:"QueryList",moduleUrl:n.i(a.c)("core","linker/query_list"),runtime:r.QueryList},Identifiers.TemplateRef={name:"TemplateRef",moduleUrl:n.i(a.c)("core","linker/template_ref"),runtime:r.TemplateRef},Identifiers.TemplateRef_={name:"TemplateRef_",moduleUrl:n.i(a.c)("core","linker/template_ref"),runtime:o.e},Identifiers.CodegenComponentFactoryResolver={name:"CodegenComponentFactoryResolver",moduleUrl:n.i(a.c)("core","linker/component_factory_resolver"),runtime:o.f},Identifiers.ComponentFactoryResolver={name:"ComponentFactoryResolver",moduleUrl:n.i(a.c)("core","linker/component_factory_resolver"),runtime:r.ComponentFactoryResolver},Identifiers.ComponentFactory={name:"ComponentFactory",runtime:r.ComponentFactory,moduleUrl:n.i(a.c)("core","linker/component_factory")},Identifiers.NgModuleFactory={name:"NgModuleFactory",runtime:r.NgModuleFactory,moduleUrl:n.i(a.c)("core","linker/ng_module_factory")},Identifiers.NgModuleInjector={name:"NgModuleInjector",runtime:o.g,moduleUrl:n.i(a.c)("core","linker/ng_module_factory")},Identifiers.ValueUnwrapper={name:"ValueUnwrapper",moduleUrl:l,runtime:o.h},Identifiers.Injector={name:"Injector",moduleUrl:n.i(a.c)("core","di/injector"),runtime:r.Injector},Identifiers.ViewEncapsulation={name:"ViewEncapsulation",moduleUrl:n.i(a.c)("core","metadata/view"),runtime:r.ViewEncapsulation},Identifiers.ViewType={name:"ViewType",moduleUrl:n.i(a.c)("core","linker/view_type"),runtime:o.i},Identifiers.ChangeDetectionStrategy={name:"ChangeDetectionStrategy",moduleUrl:l,runtime:r.ChangeDetectionStrategy},Identifiers.StaticNodeDebugInfo={name:"StaticNodeDebugInfo",moduleUrl:n.i(a.c)("core","linker/debug_context"),runtime:o.j},Identifiers.DebugContext={name:"DebugContext",moduleUrl:n.i(a.c)("core","linker/debug_context"),runtime:o.k},Identifiers.Renderer={name:"Renderer",moduleUrl:n.i(a.c)("core","render/api"),runtime:r.Renderer},Identifiers.SimpleChange={name:"SimpleChange",moduleUrl:l,runtime:r.SimpleChange},Identifiers.UNINITIALIZED={name:"UNINITIALIZED",moduleUrl:l,runtime:o.l},Identifiers.ChangeDetectorStatus={name:"ChangeDetectorStatus",moduleUrl:l,runtime:o.m},Identifiers.checkBinding={name:"checkBinding",moduleUrl:c,runtime:o.n},Identifiers.flattenNestedViewRenderNodes={name:"flattenNestedViewRenderNodes",moduleUrl:c,runtime:o.o},Identifiers.devModeEqual={name:"devModeEqual",moduleUrl:l,runtime:o.p},Identifiers.interpolate={name:"interpolate",moduleUrl:c,runtime:o.q},Identifiers.castByValue={name:"castByValue",moduleUrl:c,runtime:o.r},Identifiers.EMPTY_ARRAY={name:"EMPTY_ARRAY",moduleUrl:c,runtime:o.s},Identifiers.EMPTY_MAP={name:"EMPTY_MAP",moduleUrl:c,runtime:o.t},Identifiers.pureProxies=[null,{name:"pureProxy1",moduleUrl:c,runtime:o.u},{name:"pureProxy2",moduleUrl:c,runtime:o.v},{name:"pureProxy3",moduleUrl:c,runtime:o.w},{name:"pureProxy4",moduleUrl:c,runtime:o.x},{name:"pureProxy5",moduleUrl:c,runtime:o.y},{name:"pureProxy6",moduleUrl:c,runtime:o.z},{name:"pureProxy7",moduleUrl:c,runtime:o.A},{name:"pureProxy8",moduleUrl:c,runtime:o.B},{name:"pureProxy9",moduleUrl:c,runtime:o.C},{name:"pureProxy10",moduleUrl:c,runtime:o.D}],Identifiers.SecurityContext={name:"SecurityContext",moduleUrl:n.i(a.c)("core","security"),runtime:r.SecurityContext},Identifiers.AnimationKeyframe={name:"AnimationKeyframe",moduleUrl:n.i(a.c)("core","animation/animation_keyframe"),runtime:o.E},Identifiers.AnimationStyles={name:"AnimationStyles",moduleUrl:n.i(a.c)("core","animation/animation_styles"),runtime:o.F},Identifiers.NoOpAnimationPlayer={name:"NoOpAnimationPlayer",moduleUrl:n.i(a.c)("core","animation/animation_player"),runtime:o.G},Identifiers.AnimationGroupPlayer={name:"AnimationGroupPlayer",moduleUrl:n.i(a.c)("core","animation/animation_group_player"),runtime:o.H},Identifiers.AnimationSequencePlayer={name:"AnimationSequencePlayer",moduleUrl:n.i(a.c)("core","animation/animation_sequence_player"),runtime:o.I},Identifiers.prepareFinalAnimationStyles={name:"prepareFinalAnimationStyles",moduleUrl:u,runtime:o.J},Identifiers.balanceAnimationKeyframes={name:"balanceAnimationKeyframes",moduleUrl:u,runtime:o.K},Identifiers.clearStyles={name:"clearStyles",moduleUrl:u,runtime:o.L},Identifiers.renderStyles={name:"renderStyles",moduleUrl:u,runtime:o.M},Identifiers.collectAndResolveStyles={name:"collectAndResolveStyles",moduleUrl:u,runtime:o.N},Identifiers.LOCALE_ID={name:"LOCALE_ID",moduleUrl:n.i(a.c)("core","i18n/tokens"),runtime:r.LOCALE_ID},Identifiers.TRANSLATIONS_FORMAT={name:"TRANSLATIONS_FORMAT",moduleUrl:n.i(a.c)("core","i18n/tokens"),runtime:r.TRANSLATIONS_FORMAT},Identifiers.AnimationOutput={name:"AnimationOutput",moduleUrl:n.i(a.c)("core","animation/animation_output"),runtime:o.O},Identifiers}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"X",function(){return i}),n.d(e,"m",function(){return o}),n.d(e,"W",function(){return a}),n.d(e,"Z",function(){return s}),n.d(e,"Y",function(){return c}),n.d(e,"d",function(){return l}),n.d(e,"f",function(){return u}),n.d(e,"b",function(){return p}),n.d(e,"c",function(){return d}),n.d(e,"g",function(){return f}),n.d(e,"i",function(){return h}),n.d(e,"R",function(){return m}),n.d(e,"n",function(){return v}),n.d(e,"o",function(){return g}),n.d(e,"q",function(){return b}),n.d(e,"a",function(){return y}),n.d(e,"k",function(){return _}),n.d(e,"j",function(){return w}),n.d(e,"p",function(){return x}),n.d(e,"l",function(){return C}),n.d(e,"h",function(){return S}),n.d(e,"e",function(){return k}),n.d(e,"s",function(){return E}),n.d(e,"t",function(){return P}),n.d(e,"u",function(){return A}),n.d(e,"v",function(){return T}),n.d(e,"w",function(){return O}),n.d(e,"x",function(){return M}),n.d(e,"y",function(){return D}),n.d(e,"z",function(){return R}),n.d(e,"A",function(){return I}),n.d(e,"B",function(){return N}),n.d(e,"C",function(){return V}),n.d(e,"D",function(){return L}),n.d(e,"r",function(){return j}),n.d(e,"Q",function(){return F}),n.d(e,"P",function(){return W}),n.d(e,"_1",function(){return B}),n.d(e,"_2",function(){return U}),n.d(e,"G",function(){return z}),n.d(e,"I",function(){return H}),n.d(e,"H",function(){return q}),n.d(e,"E",function(){return G}),n.d(e,"F",function(){return Y}),n.d(e,"O",function(){return K}),n.d(e,"S",function(){return Z}),n.d(e,"U",function(){return $}),n.d(e,"V",function(){return J}),n.d(e,"T",function(){return Q}),n.d(e,"J",function(){return X}),n.d(e,"K",function(){return tt}),n.d(e,"L",function(){return et}),n.d(e,"N",function(){return nt}),n.d(e,"M",function(){return rt}),n.d(e,"_0",function(){return it});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=r.__core_private__.isDefaultChangeDetectionStrategy,o=r.__core_private__.ChangeDetectorStatus;r.__core_private__.CHANGE_DETECTION_STRATEGY_VALUES;var a=r.__core_private__.LifecycleHooks,s=r.__core_private__.LIFECYCLE_HOOKS_VALUES,c=r.__core_private__.ReflectorReader,l=r.__core_private__.AppElement,u=r.__core_private__.CodegenComponentFactoryResolver,p=r.__core_private__.AppView,d=r.__core_private__.DebugAppView,f=r.__core_private__.NgModuleInjector,h=r.__core_private__.ViewType,m=r.__core_private__.MAX_INTERPOLATION_VALUES,v=r.__core_private__.checkBinding,g=r.__core_private__.flattenNestedViewRenderNodes,b=r.__core_private__.interpolate,y=r.__core_private__.ViewUtils,_=r.__core_private__.DebugContext,w=r.__core_private__.StaticNodeDebugInfo,x=r.__core_private__.devModeEqual,C=r.__core_private__.UNINITIALIZED,S=r.__core_private__.ValueUnwrapper,k=r.__core_private__.TemplateRef_,E=(r.__core_private__.RenderDebugInfo,r.__core_private__.EMPTY_ARRAY),P=r.__core_private__.EMPTY_MAP,A=r.__core_private__.pureProxy1,T=r.__core_private__.pureProxy2,O=r.__core_private__.pureProxy3,M=r.__core_private__.pureProxy4,D=r.__core_private__.pureProxy5,R=r.__core_private__.pureProxy6,I=r.__core_private__.pureProxy7,N=r.__core_private__.pureProxy8,V=r.__core_private__.pureProxy9,L=r.__core_private__.pureProxy10,j=r.__core_private__.castByValue,F=r.__core_private__.Console,W=r.__core_private__.reflector,B=r.__core_private__.Reflector,U=r.__core_private__.ReflectionCapabilities,z=r.__core_private__.NoOpAnimationPlayer,H=(r.__core_private__.AnimationPlayer,r.__core_private__.AnimationSequencePlayer),q=r.__core_private__.AnimationGroupPlayer,G=r.__core_private__.AnimationKeyframe,Y=r.__core_private__.AnimationStyles,K=r.__core_private__.AnimationOutput,Z=r.__core_private__.ANY_STATE,$=r.__core_private__.DEFAULT_STATE,J=r.__core_private__.EMPTY_STATE,Q=r.__core_private__.FILL_STYLE_FLAG,X=r.__core_private__.prepareFinalAnimationStyles,tt=r.__core_private__.balanceAnimationKeyframes,et=r.__core_private__.clearStyles,nt=r.__core_private__.collectAndResolveStyles,rt=r.__core_private__.renderStyles,it=(r.__core_private__.ViewMetadata,r.__core_private__.ComponentStillLoadingError)},function(t,e,n){var r=n(4),i=n(366),o=n(65),a=Object.defineProperty;e.f=n(22)?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)try{return a(t,e,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){"use strict";var r=n(432);for(var i in r)"default"!==i&&function(t){n.d(e,t,function(){return r[t]})}(i)},function(t,e,n){"use strict";function unimplemented(){throw new Error("unimplemented")}function createHostComponentMeta(t){var e=a.a.parse(t.selector)[0].getMatchingElementTemplate();return O.create({type:new E({reference:Object,name:t.type.name+"_Host",moduleUrl:t.type.moduleUrl,isHost:!0}),template:new T({encapsulation:r.ViewEncapsulation.None,template:e,templateUrl:"",styles:[],styleUrls:[],ngContentSelectors:[],animations:[]}),changeDetection:r.ChangeDetectionStrategy.Default,inputs:[],outputs:[],host:{},isComponent:!0,selector:"*",providers:[],viewProviders:[],queries:[],viewQueries:[]})}function removeIdentifierDuplicates(t){var e=new Map;return t.forEach(function(t){e.get(t.identifier.reference)||e.set(t.identifier.reference,t)}),i.c.values(e)}function _normalizeArray(t){return n.i(o.a)(t)?t:[]}function isStaticSymbol(t){return n.i(o.m)(t)&&n.i(o.a)(t.name)&&n.i(o.a)(t.filePath)}var r=n(0),i=n(6),o=n(3),a=n(159),s=n(23);n.d(e,"r",function(){return u}),n.d(e,"g",function(){return d}),n.d(e,"s",function(){return f}),n.d(e,"l",function(){return m}),n.d(e,"h",function(){return v}),n.d(e,"k",function(){return g}),n.d(e,"j",function(){return b}),n.d(e,"i",function(){return y}),n.d(e,"m",function(){return _}),n.d(e,"a",function(){return w}),n.d(e,"c",function(){return x}),n.d(e,"d",function(){return C}),n.d(e,"v",function(){return S}),n.d(e,"b",function(){return k}),n.d(e,"e",function(){return E}),n.d(e,"y",function(){return P}),n.d(e,"o",function(){return A}),n.d(e,"p",function(){return T}),n.d(e,"q",function(){return O}),e.n=createHostComponentMeta,n.d(e,"w",function(){return M}),n.d(e,"t",function(){return D}),n.d(e,"u",function(){return R}),e.f=removeIdentifierDuplicates,e.z=isStaticSymbol,n.d(e,"x",function(){return I});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},l=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/,u=(new Object,function(){function CompileMetadataWithIdentifier(){}return Object.defineProperty(CompileMetadataWithIdentifier.prototype,"identifier",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),CompileMetadataWithIdentifier}(),function(){function CompileAnimationEntryMetadata(t,e){void 0===t&&(t=null),void 0===e&&(e=null),this.name=t,this.definitions=e}return CompileAnimationEntryMetadata}()),p=function(){function CompileAnimationStateMetadata(){}return CompileAnimationStateMetadata}(),d=function(t){function CompileAnimationStateDeclarationMetadata(e,n){t.call(this),this.stateNameExpr=e,this.styles=n}return c(CompileAnimationStateDeclarationMetadata,t),CompileAnimationStateDeclarationMetadata}(p),f=function(t){function CompileAnimationStateTransitionMetadata(e,n){t.call(this),this.stateChangeExpr=e,this.steps=n}return c(CompileAnimationStateTransitionMetadata,t),CompileAnimationStateTransitionMetadata}(p),h=function(){function CompileAnimationMetadata(){}return CompileAnimationMetadata}(),m=function(t){function CompileAnimationKeyframesSequenceMetadata(e){void 0===e&&(e=[]),t.call(this),this.steps=e}return c(CompileAnimationKeyframesSequenceMetadata,t),CompileAnimationKeyframesSequenceMetadata}(h),v=function(t){function CompileAnimationStyleMetadata(e,n){void 0===n&&(n=null),t.call(this),this.offset=e,this.styles=n}return c(CompileAnimationStyleMetadata,t),CompileAnimationStyleMetadata}(h),g=function(t){function CompileAnimationAnimateMetadata(e,n){void 0===e&&(e=0),void 0===n&&(n=null),t.call(this),this.timings=e,this.styles=n}return c(CompileAnimationAnimateMetadata,t),CompileAnimationAnimateMetadata}(h),b=function(t){function CompileAnimationWithStepsMetadata(e){void 0===e&&(e=null),t.call(this),this.steps=e}return c(CompileAnimationWithStepsMetadata,t),CompileAnimationWithStepsMetadata}(h),y=function(t){function CompileAnimationSequenceMetadata(e){void 0===e&&(e=null),t.call(this,e)}return c(CompileAnimationSequenceMetadata,t),CompileAnimationSequenceMetadata}(b),_=function(t){function CompileAnimationGroupMetadata(e){void 0===e&&(e=null),t.call(this,e)}return c(CompileAnimationGroupMetadata,t),CompileAnimationGroupMetadata}(b),w=function(){function CompileIdentifierMetadata(t){var e=void 0===t?{}:t,n=e.reference,r=e.name,i=e.moduleUrl,o=e.prefix,a=e.value;this.reference=n,this.name=r,this.prefix=o,this.moduleUrl=i,this.value=a}return Object.defineProperty(CompileIdentifierMetadata.prototype,"identifier",{get:function(){return this},enumerable:!0,configurable:!0}),CompileIdentifierMetadata}(),x=function(){function CompileDiDependencyMetadata(t){var e=void 0===t?{}:t,r=e.isAttribute,i=e.isSelf,a=e.isHost,s=e.isSkipSelf,c=e.isOptional,l=e.isValue,u=e.query,p=e.viewQuery,d=e.token,f=e.value;this.isAttribute=n.i(o.k)(r),this.isSelf=n.i(o.k)(i),this.isHost=n.i(o.k)(a),this.isSkipSelf=n.i(o.k)(s),this.isOptional=n.i(o.k)(c),this.isValue=n.i(o.k)(l),this.query=u,this.viewQuery=p,this.token=d,this.value=f}return CompileDiDependencyMetadata}(),C=function(){function CompileProviderMetadata(t){var e=t.token,r=t.useClass,i=t.useValue,a=t.useExisting,s=t.useFactory,c=t.deps,l=t.multi;this.token=e,this.useClass=r,this.useValue=i,this.useExisting=a,this.useFactory=s,this.deps=n.i(o.l)(c),this.multi=n.i(o.k)(l)}return CompileProviderMetadata}(),S=function(t){function CompileFactoryMetadata(e){var n=e.reference,r=e.name,i=e.moduleUrl,o=e.prefix,a=e.diDeps,s=e.value;t.call(this,{reference:n,name:r,prefix:o,moduleUrl:i,value:s}),this.diDeps=_normalizeArray(a)}return c(CompileFactoryMetadata,t),CompileFactoryMetadata}(w),k=function(){function CompileTokenMetadata(t){var e=t.value,r=t.identifier,i=t.identifierIsInstance;this.value=e,this.identifier=r,this.identifierIsInstance=n.i(o.k)(i)}return Object.defineProperty(CompileTokenMetadata.prototype,"reference",{get:function(){return n.i(o.a)(this.identifier)?this.identifier.reference:this.value},enumerable:!0,configurable:!0}),Object.defineProperty(CompileTokenMetadata.prototype,"name",{get:function(){return n.i(o.a)(this.value)?n.i(s.a)(this.value):this.identifier.name},enumerable:!0,configurable:!0}),CompileTokenMetadata}(),E=function(t){function CompileTypeMetadata(e){var r=void 0===e?{}:e,i=r.reference,a=r.name,s=r.moduleUrl,c=r.prefix,l=r.isHost,u=r.value,p=r.diDeps,d=r.lifecycleHooks;t.call(this,{reference:i,name:a,moduleUrl:s,prefix:c,value:u}),this.isHost=n.i(o.k)(l),this.diDeps=_normalizeArray(p),this.lifecycleHooks=_normalizeArray(d)}return c(CompileTypeMetadata,t),CompileTypeMetadata}(w),P=function(){function CompileQueryMetadata(t){var e=void 0===t?{}:t,r=e.selectors,i=e.descendants,a=e.first,s=e.propertyName,c=e.read;this.selectors=r,this.descendants=n.i(o.k)(i),this.first=n.i(o.k)(a),this.propertyName=s,this.read=c}return CompileQueryMetadata}(),A=function(){function CompileStylesheetMetadata(t){var e=void 0===t?{}:t,n=e.moduleUrl,r=e.styles,i=e.styleUrls;this.moduleUrl=n,this.styles=_normalizeArray(r),this.styleUrls=_normalizeArray(i)}return CompileStylesheetMetadata}(),T=function(){function CompileTemplateMetadata(t){var e=void 0===t?{}:t,r=e.encapsulation,a=e.template,s=e.templateUrl,c=e.styles,l=e.styleUrls,u=e.externalStylesheets,p=e.animations,d=e.ngContentSelectors,f=e.interpolation;if(this.encapsulation=r,this.template=a,this.templateUrl=s,this.styles=_normalizeArray(c),this.styleUrls=_normalizeArray(l),this.externalStylesheets=_normalizeArray(u),this.animations=n.i(o.a)(p)?i.a.flatten(p):[],this.ngContentSelectors=n.i(o.a)(d)?d:[],n.i(o.a)(f)&&2!=f.length)throw new Error("'interpolation' should have a start and an end symbol.");this.interpolation=f}return CompileTemplateMetadata}(),O=function(){function CompileDirectiveMetadata(t){var e=void 0===t?{}:t,n=e.type,r=e.isComponent,i=e.selector,o=e.exportAs,a=e.changeDetection,s=e.inputs,c=e.outputs,l=e.hostListeners,u=e.hostProperties,p=e.hostAttributes,d=e.providers,f=e.viewProviders,h=e.queries,m=e.viewQueries,v=e.entryComponents,g=e.template;this.type=n,this.isComponent=r,this.selector=i,this.exportAs=o,this.changeDetection=a,this.inputs=s,this.outputs=c,this.hostListeners=l,this.hostProperties=u,this.hostAttributes=p,this.providers=_normalizeArray(d),this.viewProviders=_normalizeArray(f),this.queries=_normalizeArray(h),this.viewQueries=_normalizeArray(m),this.entryComponents=_normalizeArray(v),this.template=g}return CompileDirectiveMetadata.create=function(t){var e=void 0===t?{}:t,r=e.type,a=e.isComponent,c=e.selector,u=e.exportAs,p=e.changeDetection,d=e.inputs,f=e.outputs,h=e.host,m=e.providers,v=e.viewProviders,g=e.queries,b=e.viewQueries,y=e.entryComponents,_=e.template,w={},x={},C={};n.i(o.a)(h)&&i.b.forEach(h,function(t,e){var r=e.match(l);null===r?C[e]=t:n.i(o.a)(r[1])?x[r[1]]=t:n.i(o.a)(r[2])&&(w[r[2]]=t)});var S={};n.i(o.a)(d)&&d.forEach(function(t){var e=n.i(s.b)(t,[t,t]);S[e[0]]=e[1]});var k={};return n.i(o.a)(f)&&f.forEach(function(t){var e=n.i(s.b)(t,[t,t]);k[e[0]]=e[1]}),new CompileDirectiveMetadata({type:r,isComponent:n.i(o.k)(a),selector:c,exportAs:u,changeDetection:p,inputs:S,outputs:k,hostListeners:w,hostProperties:x,hostAttributes:C,providers:m,viewProviders:v,queries:g,viewQueries:b,entryComponents:y,template:_})},Object.defineProperty(CompileDirectiveMetadata.prototype,"identifier",{get:function(){return this.type},enumerable:!0,configurable:!0}),CompileDirectiveMetadata}(),M=function(){function CompilePipeMetadata(t){var e=void 0===t?{}:t,r=e.type,i=e.name,a=e.pure;this.type=r,this.name=i,this.pure=n.i(o.k)(a)}return Object.defineProperty(CompilePipeMetadata.prototype,"identifier",{get:function(){return this.type},enumerable:!0,configurable:!0}),CompilePipeMetadata}(),D=function(){function CompileNgModuleMetadata(t){var e=void 0===t?{}:t,n=e.type,r=e.providers,i=e.declaredDirectives,o=e.exportedDirectives,a=e.declaredPipes,s=e.exportedPipes,c=e.entryComponents,l=e.bootstrapComponents,u=e.importedModules,p=e.exportedModules,d=e.schemas,f=e.transitiveModule;this.type=n,this.declaredDirectives=_normalizeArray(i),this.exportedDirectives=_normalizeArray(o),this.declaredPipes=_normalizeArray(a),this.exportedPipes=_normalizeArray(s),this.providers=_normalizeArray(r),this.entryComponents=_normalizeArray(c),this.bootstrapComponents=_normalizeArray(l),this.importedModules=_normalizeArray(u),this.exportedModules=_normalizeArray(p),this.schemas=_normalizeArray(d),this.transitiveModule=f}return Object.defineProperty(CompileNgModuleMetadata.prototype,"identifier",{get:function(){return this.type},enumerable:!0,configurable:!0}),CompileNgModuleMetadata}(),R=function(){function TransitiveCompileNgModuleMetadata(t,e,n,r,i){var o=this;this.modules=t,this.providers=e,this.entryComponents=n,this.directives=r,this.pipes=i,this.directivesSet=new Set,this.pipesSet=new Set,r.forEach(function(t){return o.directivesSet.add(t.type.reference)}),i.forEach(function(t){return o.pipesSet.add(t.type.reference)})}return TransitiveCompileNgModuleMetadata}(),I=function(){function ProviderMeta(t,e){var n=e.useClass,r=e.useValue,i=e.useExisting,o=e.useFactory,a=e.deps,s=e.multi;this.token=t,this.useClass=n,this.useValue=r,this.useExisting=i,this.useFactory=o,this.dependencies=a,this.multi=!!s}return ProviderMeta}()},function(t,e,n){"use strict";(function(t){function isPresent(t){return void 0!==t&&null!==t}function isBlank(t){return void 0===t||null===t}function isString(t){return"string"==typeof t}function isFunction(t){return"function"==typeof t}function isStringMap(t){return"object"==typeof t&&null!==t}function isPromise(t){return isPresent(t)&&isFunction(t.then)}function isArray(t){return Array.isArray(t)}function looseIdentical(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}function normalizeBool(t){return!isBlank(t)&&t}function isJsObject(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function getSymbolIterator(){if(isBlank(c))if(isPresent(r.Symbol)&&isPresent(Symbol.iterator))c=Symbol.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),e=0;e<t.length;++e){var n=t[e];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(c=n)}return c}function isPrimitive(t){return!isJsObject(t)}function hasConstructor(t,e){return t.constructor===e}n.d(e,"b",function(){return i}),e.a=isPresent,e.c=isBlank,e.g=isString,e.o=isStringMap,e.h=isPromise,e.d=isArray,n.d(e,"k",function(){return a}),n.d(e,"i",function(){return s}),e.l=looseIdentical,e.n=normalizeBool,e.e=isJsObject,e.f=getSymbolIterator,e.j=isPrimitive,e.m=hasConstructor;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;r="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:t:window;var i=r,o=(i.Math,i.Date);i.assert=function(t){};var a=(Object.getPrototypeOf({}),function(){function StringWrapper(){}return StringWrapper.fromCharCode=function(t){return String.fromCharCode(t)},StringWrapper.charCodeAt=function(t,e){return t.charCodeAt(e)},StringWrapper.split=function(t,e){return t.split(e)},StringWrapper.equals=function(t,e){return t===e},StringWrapper.stripLeft=function(t,e){if(t&&t.length){for(var n=0,r=0;r<t.length&&t[r]==e;r++)n++;t=t.substring(n)}return t},StringWrapper.stripRight=function(t,e){if(t&&t.length){for(var n=t.length,r=t.length-1;r>=0&&t[r]==e;r--)n--;t=t.substring(0,n)}return t},StringWrapper.replace=function(t,e,n){return t.replace(e,n)},StringWrapper.replaceAll=function(t,e,n){return t.replace(e,n)},StringWrapper.slice=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=null),t.slice(e,null===n?void 0:n)},StringWrapper.replaceAllMapped=function(t,e,n){return t.replace(e,function(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];return t.splice(-2,2),n(t)})},StringWrapper.contains=function(t,e){return t.indexOf(e)!=-1},StringWrapper.compare=function(t,e){return t<e?-1:t>e?1:0},StringWrapper}()),s=(function(){function StringJoiner(t){void 0===t&&(t=[]),this.parts=t}return StringJoiner.prototype.add=function(t){this.parts.push(t)},StringJoiner.prototype.toString=function(){return this.parts.join("")},StringJoiner}(),function(){function NumberWrapper(){}return NumberWrapper.toFixed=function(t,e){return t.toFixed(e)},NumberWrapper.equal=function(t,e){return t===e},NumberWrapper.parseIntAutoRadix=function(t){var e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e},NumberWrapper.parseInt=function(t,e){if(10==e){if(/^(\-|\+)?[0-9]+$/.test(t))return parseInt(t,e)}else if(16==e){if(/^(\-|\+)?[0-9ABCDEFabcdef]+$/.test(t))return parseInt(t,e)}else{var n=parseInt(t,e);if(!isNaN(n))return n}throw new Error("Invalid integer literal when parsing "+t+" in base "+e)},NumberWrapper.parseFloat=function(t){return parseFloat(t)},Object.defineProperty(NumberWrapper,"NaN",{get:function(){return NaN},enumerable:!0,configurable:!0}),NumberWrapper.isNumeric=function(t){return!isNaN(t-parseFloat(t))},NumberWrapper.isNaN=function(t){return isNaN(t)},NumberWrapper.isInteger=function(t){return Number.isInteger(t)},NumberWrapper}()),c=(i.RegExp,function(){function FunctionWrapper(){}return FunctionWrapper.apply=function(t,e){return t.apply(null,e)},FunctionWrapper.bind=function(t,e){return t.bind(e)},FunctionWrapper}(),function(){function Json(){}return Json.parse=function(t){return i.JSON.parse(t)},Json.stringify=function(t){return i.JSON.stringify(t,null,2)},Json}(),function(){function DateWrapper(){}return DateWrapper.create=function(t,e,n,r,i,a,s){return void 0===e&&(e=1),void 0===n&&(n=1),void 0===r&&(r=0),void 0===i&&(i=0),void 0===a&&(a=0),void 0===s&&(s=0),new o(t,e-1,n,r,i,a,s)},DateWrapper.fromISOString=function(t){return new o(t)},DateWrapper.fromMillis=function(t){return new o(t)},DateWrapper.toMillis=function(t){return t.getTime()},DateWrapper.now=function(){return new o},DateWrapper.toJson=function(t){return t.toJSON()},DateWrapper}(),null)}).call(e,n(59))},function(t,e,n){t.exports=!n(5)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){"use strict";function camelCaseToDashCase(t){return i.g.replaceAllMapped(t,s,function(t){return"-"+t[1].toLowerCase()})}function splitAtColon(t,e){var n=t.indexOf(":");return n==-1?e:[t.slice(0,n).trim(),t.slice(n+1).trim()]}function sanitizeIdentifier(t){return i.g.replaceAll(t,/\W/g,"_")}function visitValue(t,e,r){return n.i(i.d)(t)?e.visitArray(t,r):n.i(i.i)(t)?e.visitStringMap(t,r):n.i(i.c)(t)||n.i(i.j)(t)?e.visitPrimitive(t,r):e.visitOther(t,r)}function assetUrl(t,e,n){return void 0===e&&(e=null),void 0===n&&(n="src"),null==e?"asset:@angular/lib/"+t+"/index":"asset:@angular/lib/"+t+"/src/"+e}function createDiTokenExpression(t){return n.i(i.a)(t.value)?o.a(t.value):t.identifierIsInstance?o.b(t.identifier).instantiate([],o.c(t.identifier,[],[o.d.Const])):o.b(t.identifier)}var r=n(6),i=n(3),o=n(7);n.d(e,"h",function(){return a}),e.f=camelCaseToDashCase,e.b=splitAtColon,e.a=sanitizeIdentifier,e.d=visitValue,n.d(e,"i",function(){return c}),e.c=assetUrl,e.e=createDiTokenExpression,n.d(e,"g",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a="",s=/([A-Z])/g,c=function(){function ValueTransformer(){}return ValueTransformer.prototype.visitArray=function(t,e){var n=this;return t.map(function(t){return visitValue(t,n,e)})},ValueTransformer.prototype.visitStringMap=function(t,e){var n=this,i={};return r.b.forEach(t,function(t,r){i[r]=visitValue(t,n,e)}),i},ValueTransformer.prototype.visitPrimitive=function(t,e){return t},ValueTransformer.prototype.visitOther=function(t,e){return t},ValueTransformer}(),l=function(){function SyncAsyncResult(t,e){void 0===e&&(e=null),this.syncResult=t,this.asyncResult=e,e||(this.asyncResult=Promise.resolve(t))}return SyncAsyncResult}()},function(t,e,n){"use strict";var r=n(497);for(var i in r)"default"!==i&&function(t){n.d(e,t,function(){return r[t]})}(i)},function(t,e,n){"use strict";(function(t){function isPresent(t){return void 0!==t&&null!==t}function isBlank(t){return void 0===t||null===t}function isNumber(t){return"number"==typeof t}function isString(t){return"string"==typeof t}function isFunction(t){return"function"==typeof t}function isArray(t){return Array.isArray(t)}function stringify(t){if("string"==typeof t)return t;if(void 0===t||null===t)return""+t;if(t.overriddenName)return t.overriddenName;if(t.name)return t.name;var e=t.toString(),n=e.indexOf("\n");return n===-1?e:e.substring(0,n)}function isJsObject(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function setValueOnPath(t,e,n){for(var r=e.split("."),i=t;r.length>1;){var o=r.shift();i=i.hasOwnProperty(o)&&isPresent(i[o])?i[o]:i[o]={}}void 0!==i&&null!==i||(i={}),i[r.shift()]=n}function getSymbolIterator(){if(isBlank(u))if(isPresent(r.Symbol)&&isPresent(Symbol.iterator))u=Symbol.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),e=0;e<t.length;++e){var n=t[e];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(u=n)}return u}n.d(e,"a",function(){return i}),e.b=isPresent,e.c=isBlank,e.h=isNumber,e.l=isString,e.i=isFunction,e.d=isArray,e.n=stringify,n.d(e,"g",function(){return a}),n.d(e,"o",function(){return s}),e.e=isJsObject,n.d(e,"m",function(){return c}),n.d(e,"k",function(){return l}),e.j=setValueOnPath,e.f=getSymbolIterator;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;r="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:t:window;var i=r,o=(i.Math,i.Date);i.assert=function(t){};var a=(Object.getPrototypeOf({}),function(){function StringWrapper(){}return StringWrapper.fromCharCode=function(t){return String.fromCharCode(t)},StringWrapper.charCodeAt=function(t,e){return t.charCodeAt(e)},StringWrapper.split=function(t,e){return t.split(e)},StringWrapper.equals=function(t,e){return t===e},StringWrapper.stripLeft=function(t,e){if(t&&t.length){for(var n=0,r=0;r<t.length&&t[r]==e;r++)n++;t=t.substring(n)}return t},StringWrapper.stripRight=function(t,e){if(t&&t.length){for(var n=t.length,r=t.length-1;r>=0&&t[r]==e;r--)n--;t=t.substring(0,n)}return t},StringWrapper.replace=function(t,e,n){return t.replace(e,n)},StringWrapper.replaceAll=function(t,e,n){return t.replace(e,n)},StringWrapper.slice=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=null),t.slice(e,null===n?void 0:n)},StringWrapper.replaceAllMapped=function(t,e,n){return t.replace(e,function(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];return t.splice(-2,2),n(t)})},StringWrapper.contains=function(t,e){return t.indexOf(e)!=-1},StringWrapper.compare=function(t,e){return t<e?-1:t>e?1:0},StringWrapper}()),s=(function(){function StringJoiner(t){void 0===t&&(t=[]),this.parts=t}return StringJoiner.prototype.add=function(t){this.parts.push(t)},StringJoiner.prototype.toString=function(){return this.parts.join("")},StringJoiner}(),function(){function NumberWrapper(){}return NumberWrapper.toFixed=function(t,e){return t.toFixed(e)},NumberWrapper.equal=function(t,e){return t===e},NumberWrapper.parseIntAutoRadix=function(t){var e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e},NumberWrapper.parseInt=function(t,e){if(10==e){if(/^(\-|\+)?[0-9]+$/.test(t))return parseInt(t,e)}else if(16==e){if(/^(\-|\+)?[0-9ABCDEFabcdef]+$/.test(t))return parseInt(t,e)}else{var n=parseInt(t,e);if(!isNaN(n))return n}throw new Error("Invalid integer literal when parsing "+t+" in base "+e)},NumberWrapper.parseFloat=function(t){return parseFloat(t)},Object.defineProperty(NumberWrapper,"NaN",{get:function(){return NaN},enumerable:!0,configurable:!0}),NumberWrapper.isNumeric=function(t){return!isNaN(t-parseFloat(t))},NumberWrapper.isNaN=function(t){return isNaN(t)},NumberWrapper.isInteger=function(t){return Number.isInteger(t)},NumberWrapper}()),c=(i.RegExp,function(){function FunctionWrapper(){}return FunctionWrapper.apply=function(t,e){return t.apply(null,e)},FunctionWrapper.bind=function(t,e){return t.bind(e)},FunctionWrapper}(),function(){function Json(){}return Json.parse=function(t){return i.JSON.parse(t)},Json.stringify=function(t){return i.JSON.stringify(t,null,2)},Json}()),l=function(){function DateWrapper(){}return DateWrapper.create=function(t,e,n,r,i,a,s){return void 0===e&&(e=1),void 0===n&&(n=1),void 0===r&&(r=0),void 0===i&&(i=0),void 0===a&&(a=0),void 0===s&&(s=0),new o(t,e-1,n,r,i,a,s)},DateWrapper.fromISOString=function(t){return new o(t)},DateWrapper.fromMillis=function(t){return new o(t)},DateWrapper.toMillis=function(t){return t.getTime()},DateWrapper.now=function(){return new o},DateWrapper.toJson=function(t){return t.toJSON()},DateWrapper}(),u=null}).call(e,n(59))},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(14),i=n(49),o=n(26),a=n(95)("src"),s="toString",c=Function[s],l=(""+c).split(s);n(13).inspectSource=function(t){return c.call(t)},(t.exports=function(t,e,n,s){var c="function"==typeof n;c&&(o(n,"name")||i(n,"name",e)),t[e]!==n&&(c&&(o(n,a)||i(n,a,t[e]?""+t[e]:l.join(String(e)))),t===r?t[e]=n:s?t[e]?t[e]=n:i(t,e,n):(delete t[e],i(t,e,n)))})(Function.prototype,s,function(){return"function"==typeof this&&this[a]||c.call(this)})},function(t,e,n){var r=n(1),i=n(5),o=n(48),a=/"/g,s=function(t,e,n,r){var i=String(o(t)),s="<"+e;return""!==n&&(s+=" "+n+'="'+String(r).replace(a,"&quot;")+'"'),s+">"+i+"</"+e+">"};t.exports=function(t,e){var n={};n[t]=e(s),r(r.P+r.F*i(function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}),"String",n)}},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(425),o=n(142),a=n(731),s=n(245),c=function(t){function Subscriber(e,n,r){switch(t.call(this),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=a.empty;break;case 1:if(!e){this.destination=a.empty;break}if("object"==typeof e){e instanceof Subscriber?(this.destination=e,this.destination.add(this)):(this.syncErrorThrowable=!0,this.destination=new l(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new l(this,e,n,r)}}return r(Subscriber,t),Subscriber.prototype[s.$$rxSubscriber]=function(){return this},Subscriber.create=function(t,e,n){var r=new Subscriber(t,e,n);return r.syncErrorThrowable=!1,r},Subscriber.prototype.next=function(t){this.isStopped||this._next(t)},Subscriber.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},Subscriber.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},Subscriber.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this))},Subscriber.prototype._next=function(t){this.destination.next(t)},Subscriber.prototype._error=function(t){this.destination.error(t),this.unsubscribe()},Subscriber.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},Subscriber}(o.Subscription);e.Subscriber=c;var l=function(t){function SafeSubscriber(e,n,r,o){t.call(this),this._parent=e;var a,s=this;i.isFunction(n)?a=n:n&&(s=n,a=n.next,r=n.error,o=n.complete,i.isFunction(s.unsubscribe)&&this.add(s.unsubscribe.bind(s)),s.unsubscribe=this.unsubscribe.bind(this)),this._context=s,this._next=a,this._error=r,this._complete=o}return r(SafeSubscriber,t),SafeSubscriber.prototype.next=function(t){if(!this.isStopped&&this._next){var e=this._parent;e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}},SafeSubscriber.prototype.error=function(t){if(!this.isStopped){var e=this._parent;if(this._error)e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else{if(!e.syncErrorThrowable)throw this.unsubscribe(),t;e.syncErrorValue=t,e.syncErrorThrown=!0,this.unsubscribe()}}},SafeSubscriber.prototype.complete=function(){if(!this.isStopped){var t=this._parent;this._complete?t.syncErrorThrowable?(this.__tryOrSetError(t,this._complete),this.unsubscribe()):(this.__tryOrUnsub(this._complete),this.unsubscribe()):this.unsubscribe()}},SafeSubscriber.prototype.__tryOrUnsub=function(t,e){try{t.call(this._context,e)}catch(n){throw this.unsubscribe(),n}},SafeSubscriber.prototype.__tryOrSetError=function(t,e,n){try{e.call(this._context,n)}catch(r){return t.syncErrorValue=r,t.syncErrorThrown=!0,!0}return!1},SafeSubscriber.prototype._unsubscribe=function(){var t=this._parent;this._context=null,this._parent=null,t.unsubscribe()},SafeSubscriber}(c)},function(t,e,n){"use strict";function unimplemented(){throw new Error("unimplemented")}e.a=unimplemented,n.d(e,"b",function(){return i}),n.d(e,"c",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=function(t){function BaseError(e){var n=t.call(this,e);this._nativeError=n}return r(BaseError,t),Object.defineProperty(BaseError.prototype,"message",{get:function(){return this._nativeError.message},set:function(t){this._nativeError.message=t},enumerable:!0,configurable:!0}),Object.defineProperty(BaseError.prototype,"name",{get:function(){return this._nativeError.name},enumerable:!0,configurable:!0}),Object.defineProperty(BaseError.prototype,"stack",{get:function(){return this._nativeError.stack},set:function(t){this._nativeError.stack=t},enumerable:!0,configurable:!0}),BaseError.prototype.toString=function(){return this._nativeError.toString()},BaseError}(Error),o=function(t){function WrappedError(e,n){t.call(this,e+" caused by: "+(n instanceof Error?n.message:n)),this.originalError=n}return r(WrappedError,t),Object.defineProperty(WrappedError.prototype,"stack",{get:function(){return(this.originalError instanceof Error?this.originalError:this._nativeError).stack},enumerable:!0,configurable:!0}),WrappedError}(i)},function(t,e,n){var r=n(75),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e,n){var r=n(5);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){var r=n(91),i=n(48);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(48);t.exports=function(t){return Object(r(t))}},function(t,e,n){"use strict";var r=n(83),i=n(82),o=n(111),a=n(112),s=n(480),c=n(169),l=n(168),u=n(167);n.o(r,"a")&&n.d(e,"InjectMetadata",function(){return r.a}),n.o(r,"c")&&n.d(e,"InjectableMetadata",function(){return r.c}),n.o(r,"b")&&n.d(e,"OptionalMetadata",function(){return r.b}),n.o(r,"d")&&n.d(e,"SelfMetadata",function(){return r.d}),n.o(r,"f")&&n.d(e,"SkipSelfMetadata",function(){return r.f}),n.o(r,"e")&&n.d(e,"HostMetadata",function(){return r.e});for(var p in i)["InjectMetadata","InjectableMetadata","OptionalMetadata","SelfMetadata","SkipSelfMetadata","HostMetadata","forwardRef","resolveForwardRef","Injector","ReflectiveInjector","ResolvedReflectiveFactory","ReflectiveKey","OpaqueToken","default"].indexOf(p)<0&&function(t){n.d(e,t,function(){return i[t]})}(p);n.o(o,"b")&&n.d(e,"forwardRef",function(){return o.b}),n.o(o,"a")&&n.d(e,"resolveForwardRef",function(){return o.a}),n.o(a,"b")&&n.d(e,"Injector",function(){return a.b}),n.o(s,"a")&&n.d(e,"ReflectiveInjector",function(){return s.a}),n.o(c,"c")&&n.d(e,"ResolvedReflectiveFactory",function(){return c.c}),n.o(l,"a")&&n.d(e,"ReflectiveKey",function(){return l.a}),n.o(u,"a")&&n.d(e,"OpaqueToken",function(){return u.a})},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=new r.OpaqueToken("NgValueAccessor")},function(t,e,n){"use strict";function _flattenArray(t,e){if(n.i(r.a)(t))for(var i=0;i<t.length;i++){var o=t[i];n.i(r.d)(o)?_flattenArray(o,e):e.push(o)}return e}var r=n(21);n.d(e,"c",function(){return u}),n.d(e,"a",function(){return p}),n.d(e,"b",function(){return d});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=r.b.Map,o=r.b.Set,a=function(){try{if(1===new i([[1,2]]).size)return function(t){return new i(t)}}catch(t){}return function(t){for(var e=new i,n=0;n<t.length;n++){var r=t[n];e.set(r[0],r[1])}return e}}(),s=function(){try{if(new i(new i))return function(t){return new i(t)}}catch(t){}return function(t){var e=new i;return t.forEach(function(t,n){e.set(n,t)}),e}}(),c=function(){return(new i).keys().next?function(t){for(var e,n=t.keys();!(e=n.next()).done;)t.set(e.value,null)}:function(t){t.forEach(function(e,n){t.set(n,null)})}}(),l=function(){try{if((new i).values().next)return function(t,e){return e?Array.from(t.values()):Array.from(t.keys())}}catch(t){}return function(t,e){var n=d.createFixedSize(t.size),r=0;return t.forEach(function(t,i){n[r]=e?t:i,r++}),n}}(),u=function(){function MapWrapper(){}return MapWrapper.clone=function(t){return s(t)},MapWrapper.createFromStringMap=function(t){var e=new i;for(var n in t)e.set(n,t[n]);return e},MapWrapper.toStringMap=function(t){var e={};return t.forEach(function(t,n){return e[n]=t}),e},MapWrapper.createFromPairs=function(t){return a(t)},MapWrapper.clearValues=function(t){c(t)},MapWrapper.iterable=function(t){return t},MapWrapper.keys=function(t){return l(t,!1)},MapWrapper.values=function(t){return l(t,!0)},MapWrapper}(),p=function(){function StringMapWrapper(){}return StringMapWrapper.create=function(){return{}},StringMapWrapper.contains=function(t,e){return t.hasOwnProperty(e)},StringMapWrapper.get=function(t,e){return t.hasOwnProperty(e)?t[e]:void 0},StringMapWrapper.set=function(t,e,n){t[e]=n},StringMapWrapper.keys=function(t){return Object.keys(t)},StringMapWrapper.values=function(t){return Object.keys(t).map(function(e){return t[e]})},StringMapWrapper.isEmpty=function(t){for(var e in t)return!1;return!0},StringMapWrapper.delete=function(t,e){delete t[e]},StringMapWrapper.forEach=function(t,e){for(var n=0,r=Object.keys(t);n<r.length;n++){var i=r[n];e(t[i],i)}},StringMapWrapper.merge=function(t,e){for(var n={},r=0,i=Object.keys(t);r<i.length;r++){var o=i[r];n[o]=t[o]}for(var a=0,s=Object.keys(e);a<s.length;a++){var o=s[a];n[o]=e[o]}return n},StringMapWrapper.equals=function(t,e){var n=Object.keys(t),r=Object.keys(e);if(n.length!=r.length)return!1;for(var i,o=0;o<n.length;o++)if(i=n[o],t[i]!==e[i])return!1;return!0},StringMapWrapper}(),d=function(){function ListWrapper(){}return ListWrapper.createFixedSize=function(t){return new Array(t)},ListWrapper.createGrowableSize=function(t){return new Array(t)},ListWrapper.clone=function(t){return t.slice(0)},ListWrapper.forEachWithIndex=function(t,e){for(var n=0;n<t.length;n++)e(t[n],n)},ListWrapper.first=function(t){return t?t[0]:null},ListWrapper.last=function(t){return t&&0!=t.length?t[t.length-1]:null},ListWrapper.indexOf=function(t,e,n){return void 0===n&&(n=0),t.indexOf(e,n)},ListWrapper.contains=function(t,e){return t.indexOf(e)!==-1},ListWrapper.reversed=function(t){var e=ListWrapper.clone(t);return e.reverse()},ListWrapper.concat=function(t,e){return t.concat(e)},ListWrapper.insert=function(t,e,n){t.splice(e,0,n)},ListWrapper.removeAt=function(t,e){var n=t[e];return t.splice(e,1),n},ListWrapper.removeAll=function(t,e){for(var n=0;n<e.length;++n){var r=t.indexOf(e[n]);t.splice(r,1)}},ListWrapper.remove=function(t,e){var n=t.indexOf(e);return n>-1&&(t.splice(n,1),!0)},ListWrapper.clear=function(t){t.length=0},ListWrapper.isEmpty=function(t){return 0==t.length},ListWrapper.fill=function(t,e,n,r){void 0===n&&(n=0),void 0===r&&(r=null),t.fill(e,n,null===r?t.length:r)},ListWrapper.equals=function(t,e){if(t.length!=e.length)return!1;for(var n=0;n<t.length;++n)if(t[n]!==e[n])return!1;return!0},ListWrapper.slice=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=null),t.slice(e,null===n?void 0:n)},ListWrapper.splice=function(t,e,n){return t.splice(e,n)},ListWrapper.sort=function(t,e){n.i(r.a)(e)?t.sort(e):t.sort()},ListWrapper.toString=function(t){return t.toString()},ListWrapper.toJSON=function(t){return JSON.stringify(t)},ListWrapper.maximum=function(t,e){if(0==t.length)return null;for(var i=null,o=-(1/0),a=0;a<t.length;a++){var s=t[a];if(!n.i(r.c)(s)){var c=e(s);c>o&&(i=s,o=c)}}return i},ListWrapper.flatten=function(t){var e=[];return _flattenArray(t,e),e},ListWrapper.addAll=function(t,e){for(var n=0;n<e.length;n++)t.push(e[n])},ListWrapper}(),f=function(){var t=new o([1,2,3]);return 3===t.size?function(t){return new o(t)}:function(t){var e=new o(t);if(e.size!==t.length)for(var n=0;n<t.length;n++)e.add(t[n]);return e}}();(function(){function SetWrapper(){}return SetWrapper.createFromList=function(t){return f(t)},SetWrapper.has=function(t,e){return t.has(e)},SetWrapper.delete=function(t,e){t.delete(e)},SetWrapper})()},function(t,e,n){"use strict";function _convertToPromise(t){return n.i(a.h)(t)?t:i.toPromise.call(t)}function _executeValidators(t,e){return e.map(function(e){return e(t)})}function _executeAsyncValidators(t,e){return e.map(function(e){return e(t)})}function _mergeErrors(t){var e=t.reduce(function(t,e){return n.i(a.a)(e)?o.a.merge(t,e):t},{});return o.a.isEmpty(e)?null:e}var r=n(0),i=n(750),o=(n.n(i),n(37)),a=n(21);n.d(e,"b",function(){return s}),n.d(e,"c",function(){return c}),n.d(e,"a",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=new r.OpaqueToken("NgValidators"),c=new r.OpaqueToken("NgAsyncValidators"),l=function(){function Validators(){}return Validators.required=function(t){return n.i(a.c)(t.value)||n.i(a.g)(t.value)&&""==t.value?{required:!0}:null},Validators.minLength=function(t){return function(e){if(n.i(a.a)(Validators.required(e)))return null;var r=e.value;return r.length<t?{minlength:{requiredLength:t,actualLength:r.length}}:null}},Validators.maxLength=function(t){return function(e){if(n.i(a.a)(Validators.required(e)))return null;var r=e.value;return r.length>t?{maxlength:{requiredLength:t,actualLength:r.length}}:null}},Validators.pattern=function(t){return function(e){if(n.i(a.a)(Validators.required(e)))return null;var r=new RegExp("^"+t+"$"),i=e.value;return r.test(i)?null:{pattern:{requiredPattern:"^"+t+"$",actualValue:i}}}},Validators.nullValidator=function(t){return null},Validators.compose=function(t){if(n.i(a.c)(t))return null;var e=t.filter(a.a);return 0==e.length?null:function(t){return _mergeErrors(_executeValidators(t,e))}},Validators.composeAsync=function(t){if(n.i(a.c)(t))return null;var e=t.filter(a.a);return 0==e.length?null:function(t){var n=_executeAsyncValidators(t,e).map(_convertToPromise);return Promise.all(n).then(_mergeErrors)}},Validators}()},function(t,e,n){var r=n(1),i=n(13),o=n(5);t.exports=function(t,e){var n=(i.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*o(function(){n(1)}),"Object",a)}},function(t,e,n){"use strict";var r=n(267);n.d(e,"b",function(){return i}),n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function InterpolationConfig(t,e){this.start=t,this.end=e}return InterpolationConfig.fromArray=function(t){return t?(n.i(r.a)("interpolation",t),new InterpolationConfig(t[0],t[1])):o},InterpolationConfig}(),o=new i("{{","}}")},function(t,e,n){"use strict";var r=n(3);n.d(e,"c",function(){return o}),n.d(e,"b",function(){return a}),n.d(e,"d",function(){return s}),n.d(e,"e",function(){return i}),n.d(e,"a",function(){return c});var i,o=function(){function ParseLocation(t,e,n,r){this.file=t,this.offset=e,this.line=n,this.col=r}return ParseLocation.prototype.toString=function(){return n.i(r.a)(this.offset)?this.file.url+"@"+this.line+":"+this.col:this.file.url},ParseLocation}(),a=function(){function ParseSourceFile(t,e){this.content=t,this.url=e}return ParseSourceFile}(),s=function(){function ParseSourceSpan(t,e,n){void 0===n&&(n=null),this.start=t,this.end=e,this.details=n}return ParseSourceSpan.prototype.toString=function(){return this.start.file.content.substring(this.start.offset,this.end.offset)},ParseSourceSpan}();!function(t){t[t.WARNING=0]="WARNING",t[t.FATAL=1]="FATAL"}(i||(i={}));var c=function(){function ParseError(t,e,n){void 0===n&&(n=i.FATAL),this.span=t,this.msg=e,this.level=n}return ParseError.prototype.toString=function(){var t=this.span.start.file.content,e=this.span.start.offset,i="",o="";if(n.i(r.a)(e)){e>t.length-1&&(e=t.length-1);for(var a=e,s=0,c=0;s<100&&e>0&&(e--,s++,"\n"!=t[e]||3!=++c););for(s=0,c=0;s<100&&a<t.length-1&&(a++,s++,"\n"!=t[a]||3!=++c););var l=t.substring(e,this.span.start.offset)+"[ERROR ->]"+t.substring(this.span.start.offset,a+1);i=' ("'+l+'")'}return this.span.details&&(o=", "+this.span.details),""+this.msg+i+": "+this.span.start+o},ParseError}()},function(t,e,n){"use strict";function templateVisitAll(t,e,i){void 0===i&&(i=null);var o=[];return e.forEach(function(e){var a=e.visit(t,i);n.i(r.a)(a)&&o.push(a)}),o}var r=n(3);n.d(e,"e",function(){return o}),n.d(e,"d",function(){return a}),n.d(e,"f",function(){return s}),n.d(e,"k",function(){return c}),n.d(e,"m",function(){return l}),n.d(e,"n",function(){return u}),n.d(e,"j",function(){return p}),n.d(e,"i",function(){return d}),n.d(e,"h",function(){return f}),n.d(e,"p",function(){return h}),n.d(e,"o",function(){return m}),n.d(e,"b",function(){return v}),n.d(e,"a",function(){return i}),n.d(e,"g",function(){return b}),n.d(e,"l",function(){return g}),e.c=templateVisitAll;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i,o=function(){function TextAst(t,e,n){this.value=t,this.ngContentIndex=e,this.sourceSpan=n}return TextAst.prototype.visit=function(t,e){return t.visitText(this,e)},TextAst}(),a=function(){function BoundTextAst(t,e,n){this.value=t,this.ngContentIndex=e,this.sourceSpan=n}return BoundTextAst.prototype.visit=function(t,e){return t.visitBoundText(this,e)},BoundTextAst}(),s=function(){function AttrAst(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return AttrAst.prototype.visit=function(t,e){return t.visitAttr(this,e)},AttrAst}(),c=function(){function BoundElementPropertyAst(t,e,n,r,i,o){this.name=t,this.type=e,this.securityContext=n,this.value=r,this.unit=i,this.sourceSpan=o}return BoundElementPropertyAst.prototype.visit=function(t,e){return t.visitElementProperty(this,e)},BoundElementPropertyAst}(),l=function(){function BoundEventAst(t,e,n,r){this.name=t,this.target=e,this.handler=n,this.sourceSpan=r}return BoundEventAst.prototype.visit=function(t,e){return t.visitEvent(this,e)},Object.defineProperty(BoundEventAst.prototype,"fullName",{get:function(){return n.i(r.a)(this.target)?this.target+":"+this.name:this.name},enumerable:!0,configurable:!0}),BoundEventAst}(),u=function(){function ReferenceAst(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return ReferenceAst.prototype.visit=function(t,e){return t.visitReference(this,e)},ReferenceAst}(),p=function(){function VariableAst(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return VariableAst.prototype.visit=function(t,e){return t.visitVariable(this,e)},VariableAst}(),d=function(){function ElementAst(t,e,n,r,i,o,a,s,c,l,u){this.name=t,this.attrs=e,this.inputs=n,this.outputs=r,this.references=i,this.directives=o,this.providers=a,this.hasViewContainer=s,this.children=c,this.ngContentIndex=l,this.sourceSpan=u}return ElementAst.prototype.visit=function(t,e){return t.visitElement(this,e)},ElementAst}(),f=function(){function EmbeddedTemplateAst(t,e,n,r,i,o,a,s,c,l){this.attrs=t,this.outputs=e,this.references=n,this.variables=r,this.directives=i,this.providers=o,this.hasViewContainer=a,this.children=s,this.ngContentIndex=c,this.sourceSpan=l}return EmbeddedTemplateAst.prototype.visit=function(t,e){return t.visitEmbeddedTemplate(this,e)},EmbeddedTemplateAst}(),h=function(){function BoundDirectivePropertyAst(t,e,n,r){this.directiveName=t,this.templateName=e,this.value=n,this.sourceSpan=r}return BoundDirectivePropertyAst.prototype.visit=function(t,e){return t.visitDirectiveProperty(this,e)},BoundDirectivePropertyAst}(),m=function(){function DirectiveAst(t,e,n,r,i){this.directive=t,this.inputs=e,this.hostProperties=n,this.hostEvents=r,this.sourceSpan=i}return DirectiveAst.prototype.visit=function(t,e){return t.visitDirective(this,e)},DirectiveAst}(),v=function(){function ProviderAst(t,e,n,r,i,o,a){this.token=t,this.multiProvider=e,this.eager=n,this.providers=r,this.providerType=i,this.lifecycleHooks=o,this.sourceSpan=a}return ProviderAst.prototype.visit=function(t,e){return null},ProviderAst}();!function(t){t[t.PublicService=0]="PublicService",t[t.PrivateService=1]="PrivateService",t[t.Component=2]="Component",t[t.Directive=3]="Directive",t[t.Builtin=4]="Builtin"}(i||(i={}));var g,b=function(){function NgContentAst(t,e,n){this.index=t,this.ngContentIndex=e,this.sourceSpan=n}return NgContentAst.prototype.visit=function(t,e){return t.visitNgContent(this,e)},NgContentAst}();!function(t){t[t.Property=0]="Property",t[t.Attribute=1]="Attribute",t[t.Class=2]="Class",t[t.Style=3]="Style",t[t.Animation=4]="Animation"}(g||(g={}))},function(t,e,n){"use strict";var r=n(178);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},o=function(t){function ControlContainer(){t.apply(this,arguments)}return i(ControlContainer,t),Object.defineProperty(ControlContainer.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(ControlContainer.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),ControlContainer}(r.a)},function(t,e,n){"use strict";function _flattenArray(t,e){if(n.i(r.b)(t))for(var i=0;i<t.length;i++){var o=t[i];n.i(r.d)(o)?_flattenArray(o,e):e.push(o)}return e}var r=n(25);n.d(e,"a",function(){return u}),n.d(e,"b",function(){return p});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=r.a.Map,o=r.a.Set,a=function(){try{if(1===new i([[1,2]]).size)return function(t){return new i(t)}}catch(t){}return function(t){for(var e=new i,n=0;n<t.length;n++){var r=t[n];e.set(r[0],r[1])}return e}}(),s=function(){try{if(new i(new i))return function(t){return new i(t)}}catch(t){}return function(t){var e=new i;return t.forEach(function(t,n){e.set(n,t)}),e}}(),c=function(){return(new i).keys().next?function(t){for(var e,n=t.keys();!(e=n.next()).done;)t.set(e.value,null)}:function(t){t.forEach(function(e,n){t.set(n,null)})}}(),l=function(){try{if((new i).values().next)return function(t,e){return e?Array.from(t.values()):Array.from(t.keys())}}catch(t){}return function(t,e){var n=p.createFixedSize(t.size),r=0;return t.forEach(function(t,i){n[r]=e?t:i,r++}),n}}(),u=(function(){function MapWrapper(){}return MapWrapper.clone=function(t){return s(t)},MapWrapper.createFromStringMap=function(t){var e=new i;for(var n in t)e.set(n,t[n]);return e},MapWrapper.toStringMap=function(t){var e={};return t.forEach(function(t,n){return e[n]=t}),e},MapWrapper.createFromPairs=function(t){return a(t)},MapWrapper.clearValues=function(t){c(t)},MapWrapper.iterable=function(t){return t},MapWrapper.keys=function(t){return l(t,!1)},MapWrapper.values=function(t){return l(t,!0)},MapWrapper}(),function(){function StringMapWrapper(){}return StringMapWrapper.create=function(){return{}},StringMapWrapper.contains=function(t,e){return t.hasOwnProperty(e)},StringMapWrapper.get=function(t,e){return t.hasOwnProperty(e)?t[e]:void 0},StringMapWrapper.set=function(t,e,n){t[e]=n},StringMapWrapper.keys=function(t){return Object.keys(t)},StringMapWrapper.values=function(t){return Object.keys(t).map(function(e){return t[e]})},StringMapWrapper.isEmpty=function(t){for(var e in t)return!1;return!0},StringMapWrapper.delete=function(t,e){delete t[e]},StringMapWrapper.forEach=function(t,e){for(var n=0,r=Object.keys(t);n<r.length;n++){var i=r[n];e(t[i],i)}},StringMapWrapper.merge=function(t,e){for(var n={},r=0,i=Object.keys(t);r<i.length;r++){var o=i[r];n[o]=t[o]}for(var a=0,s=Object.keys(e);a<s.length;a++){var o=s[a];n[o]=e[o]}return n},StringMapWrapper.equals=function(t,e){var n=Object.keys(t),r=Object.keys(e);if(n.length!=r.length)return!1;for(var i,o=0;o<n.length;o++)if(i=n[o],t[i]!==e[i])return!1;return!0},StringMapWrapper}()),p=function(){function ListWrapper(){}return ListWrapper.createFixedSize=function(t){return new Array(t)},ListWrapper.createGrowableSize=function(t){return new Array(t)},ListWrapper.clone=function(t){return t.slice(0)},ListWrapper.forEachWithIndex=function(t,e){for(var n=0;n<t.length;n++)e(t[n],n)},ListWrapper.first=function(t){return t?t[0]:null},ListWrapper.last=function(t){return t&&0!=t.length?t[t.length-1]:null},ListWrapper.indexOf=function(t,e,n){return void 0===n&&(n=0),t.indexOf(e,n)},ListWrapper.contains=function(t,e){return t.indexOf(e)!==-1},ListWrapper.reversed=function(t){var e=ListWrapper.clone(t);return e.reverse()},ListWrapper.concat=function(t,e){return t.concat(e)},ListWrapper.insert=function(t,e,n){t.splice(e,0,n)},ListWrapper.removeAt=function(t,e){var n=t[e];return t.splice(e,1),n},ListWrapper.removeAll=function(t,e){for(var n=0;n<e.length;++n){var r=t.indexOf(e[n]);t.splice(r,1)}},ListWrapper.remove=function(t,e){var n=t.indexOf(e);return n>-1&&(t.splice(n,1),!0)},ListWrapper.clear=function(t){t.length=0},ListWrapper.isEmpty=function(t){return 0==t.length},ListWrapper.fill=function(t,e,n,r){void 0===n&&(n=0),void 0===r&&(r=null),t.fill(e,n,null===r?t.length:r)},ListWrapper.equals=function(t,e){if(t.length!=e.length)return!1;for(var n=0;n<t.length;++n)if(t[n]!==e[n])return!1;return!0},ListWrapper.slice=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=null),t.slice(e,null===n?void 0:n)},ListWrapper.splice=function(t,e,n){return t.splice(e,n)},ListWrapper.sort=function(t,e){n.i(r.b)(e)?t.sort(e):t.sort()},ListWrapper.toString=function(t){return t.toString()},ListWrapper.toJSON=function(t){return JSON.stringify(t)},ListWrapper.maximum=function(t,e){if(0==t.length)return null;for(var i=null,o=-(1/0),a=0;a<t.length;a++){var s=t[a];if(!n.i(r.c)(s)){var c=e(s);c>o&&(i=s,o=c)}}return i},ListWrapper.flatten=function(t){var e=[];return _flattenArray(t,e),e},ListWrapper.addAll=function(t,e){for(var n=0;n<e.length;n++)t.push(e[n])},ListWrapper}(),d=function(){var t=new o([1,2,3]);return 3===t.size?function(t){return new o(t)}:function(t){var e=new o(t);if(e.size!==t.length)for(var n=0;n<t.length;n++)e.add(t[n]);return e}}();(function(){function SetWrapper(){}return SetWrapper.createFromList=function(t){return d(t)},SetWrapper.has=function(t,e){return t.has(e)},SetWrapper.delete=function(t,e){t.delete(e)},SetWrapper})()},function(t,e,n){"use strict";n.d(e,"a",function(){return i}),n.d(e,"b",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i="primary",o=function(t){function NavigationCancelingError(e){t.call(this,e),this.message=e,this.stack=new Error(e).stack}return r(NavigationCancelingError,t),NavigationCancelingError.prototype.toString=function(){return this.message},NavigationCancelingError}(Error)},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function shallowEqualArrays(t,e){if(t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(!shallowEqual(t[n],e[n]))return!1;return!0}function shallowEqual(t,e){var n=Object.keys(t),r=Object.keys(e);if(n.length!=r.length)return!1;for(var i,o=0;o<n.length;o++)if(i=n[o],t[i]!==e[i])return!1;return!0}function flatten(t){for(var e=[],n=0;n<t.length;++n)for(var r=0;r<t[n].length;++r)e.push(t[n][r]);return e}function last(t){return t.length>0?t[t.length-1]:null}function merge(t,e){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);return n}function forEach(t,e){for(var n in t)t.hasOwnProperty(n)&&e(t[n],n)}function waitForMap(t,e){var r=[],i={};if(forEach(t,function(t,n){n===p.a&&r.push(l.map.call(e(n,t),function(t){return i[n]=t,t}))}),forEach(t,function(t,n){n!==p.a&&r.push(l.map.call(e(n,t),function(t){return i[n]=t,t}))}),r.length>0){var s=a.concatAll.call(o.of.apply(void 0,r)),u=c.last.call(s);return l.map.call(u,function(){return i})}return n.i(o.of)(i)}function andObservables(t){var e=u.mergeAll.call(t);return s.every.call(e,function(t){return t===!0})}function wrapIntoObservable(t){return t instanceof r.Observable?t:t instanceof Promise?n.i(i.fromPromise)(t):n.i(o.of)(t)}var r=n(9),i=(n.n(r),n(241)),o=(n.n(i),n(96)),a=(n.n(o),n(421)),s=(n.n(a),n(422)),c=(n.n(s),n(746)),l=(n.n(c),n(97)),u=(n.n(l),n(242)),p=(n.n(u),n(45));e.h=shallowEqualArrays,e.d=shallowEqual,e.a=flatten,e.i=last,e.g=merge,e.c=forEach,e.e=waitForMap,e.f=andObservables,e.b=wrapIntoObservable},function(t,e,n){var r=n(72),i=n(91),o=n(34),a=n(31),s=n(552);t.exports=function(t,e){var n=1==t,c=2==t,l=3==t,u=4==t,p=6==t,d=5==t||p,f=e||s;return function(e,s,h){for(var m,v,g=o(e),b=i(g),y=r(s,h,3),_=a(b.length),w=0,x=n?f(e,_):c?f(e,0):void 0;_>w;w++)if((d||w in b)&&(m=b[w],v=y(m,w,g),t))if(n)x[w]=v;else if(v)switch(t){case 3:return!0;case 5:return m;case 6:return w;case 2:x.push(m)}else if(u)return!1;return p?-1:l||u?u:x}}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on  "+t);return t}},function(t,e,n){var r=n(18),i=n(64);t.exports=n(22)?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(385),i=n(1),o=n(135)("metadata"),a=o.store||(o.store=new(n(673))),s=function(t,e,n){var i=a.get(t);if(!i){if(!n)return;a.set(t,i=new r)}var o=i.get(e);if(!o){if(!n)return;i.set(e,o=new r)}return o},c=function(t,e,n){var r=s(e,n,!1);return void 0!==r&&r.has(t)},l=function(t,e,n){var r=s(e,n,!1);return void 0===r?void 0:r.get(t)},u=function(t,e,n,r){s(n,r,!0).set(t,e)},p=function(t,e){var n=s(t,e,!1),r=[];return n&&n.forEach(function(t,e){r.push(e)}),r},d=function(t){return void 0===t||"symbol"==typeof t?t:String(t)},f=function(t){i(i.S,"Reflect",t)};t.exports={store:a,map:s,has:c,get:l,set:u,keys:p,key:d,exp:f}},function(t,e,n){var r=n(26),i=n(34),o=n(209)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(185),s=function(){function ComponentsHelper(t,e,n){this.applicationRef=t,this.componentFactoryResolver=e,this.injector=n}return ComponentsHelper.prototype.getDocument=function(){return this.injector.get(a.DOCUMENT)},ComponentsHelper.prototype.getRootViewContainerRef=function(t){var e=this.applicationRef.componentTypes[0],n=t.get(e);return n.viewContainerRef},ComponentsHelper.prototype.appendNextToLocation=function(t,e,n){var r=this.componentFactoryResolver.resolveComponentFactory(t),i=e.parentInjector,a=i;return n&&n.length>0&&(a=o.ReflectiveInjector.fromResolvedProviders(n,i)),e.createComponent(r,e.length,a)},ComponentsHelper.prototype.appendNextToRoot=function(t,e,n,r){var i=this.getRootViewContainerRef(r),a=o.ReflectiveInjector.resolve([{provide:e,useValue:n}]);return this.appendNextToLocation(t,i,a)},ComponentsHelper=r([o.Injectable(),i("design:paramtypes",[o.ApplicationRef,o.ComponentFactoryResolver,o.Injector])],ComponentsHelper)}();e.ComponentsHelper=s},function(t,e,n){"use strict";(function(t,n){var r={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1};e.root=r[typeof self]&&self||r[typeof window]&&window;var i=(r[typeof e]&&e&&!e.nodeType&&e,r[typeof t]&&t&&!t.nodeType&&t,r[typeof n]&&n);!i||i.global!==i&&i.window!==i||(e.root=i)}).call(e,n(428)(t),n(59))},function(t,e,n){"use strict";var r=n(437),i=n(12);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(t){function InvalidPipeArgumentError(e,r){t.call(this,"Invalid argument '"+r+"' for pipe '"+n.i(i.a)(e)+"'")}return o(InvalidPipeArgumentError,t),InvalidPipeArgumentError}(r.a)},function(t,e,n){"use strict";function visitAll(t,e,n){void 0===n&&(n=null);var r=[];return e.forEach(function(e){var i=e.visit(t,n);i&&r.push(i)}),r}n.d(e,"d",function(){return r}),n.d(e,"b",function(){return i}),n.d(e,"c",function(){return o}),n.d(e,"f",function(){return a}),n.d(e,"e",function(){return s}),n.d(e,"a",function(){return c}),e.g=visitAll;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function Text(t,e){this.value=t,this.sourceSpan=e}return Text.prototype.visit=function(t,e){return t.visitText(this,e)},Text}(),i=function(){function Expansion(t,e,n,r,i){this.switchValue=t,this.type=e,this.cases=n,this.sourceSpan=r,this.switchValueSourceSpan=i}return Expansion.prototype.visit=function(t,e){return t.visitExpansion(this,e)},Expansion}(),o=function(){function ExpansionCase(t,e,n,r,i){this.value=t,this.expression=e,this.sourceSpan=n,this.valueSourceSpan=r,this.expSourceSpan=i}return ExpansionCase.prototype.visit=function(t,e){return t.visitExpansionCase(this,e)},ExpansionCase}(),a=function(){function Attribute(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return Attribute.prototype.visit=function(t,e){return t.visitAttribute(this,e)},Attribute}(),s=function(){function Element(t,e,n,r,i,o){this.name=t,this.attrs=e,this.children=n,this.sourceSpan=r,this.startSourceSpan=i,this.endSourceSpan=o}return Element.prototype.visit=function(t,e){return t.visitElement(this,e)},Element}(),c=function(){function Comment(t,e){this.value=t,this.sourceSpan=e}return Comment.prototype.visit=function(t,e){return t.visitComment(this,e)},Comment}()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function controlPath(t,e){var n=r.b.clone(e.path);return n.push(t),n}function setUpControl(t,e){n.i(i.c)(t)&&_throwError(e,"Cannot find control with"),n.i(i.c)(e.valueAccessor)&&_throwError(e,"No value accessor for form control with"),t.validator=o.a.compose([t.validator,e.validator]),t.asyncValidator=o.a.composeAsync([t.asyncValidator,e.asyncValidator]),e.valueAccessor.writeValue(t.value),e.valueAccessor.registerOnChange(function(n){e.viewToModelUpdate(n),t.markAsDirty(),t.setValue(n,{emitModelToViewChange:!1})}),e.valueAccessor.registerOnTouched(function(){return t.markAsTouched()}),t.registerOnChange(function(t,n){e.valueAccessor.writeValue(t),n&&e.viewToModelUpdate(t)}),e.valueAccessor.setDisabledState&&t.registerOnDisabledChange(function(t){e.valueAccessor.setDisabledState(t)}),e._rawValidators.forEach(function(e){e.registerOnChange&&e.registerOnChange(function(){return t.updateValueAndValidity()})}),e._rawAsyncValidators.forEach(function(e){e.registerOnChange&&e.registerOnChange(function(){return t.updateValueAndValidity()})})}function cleanUpControl(t,e){e.valueAccessor.registerOnChange(function(){return _noControlError(e)}),e.valueAccessor.registerOnTouched(function(){return _noControlError(e)}),e._rawValidators.forEach(function(t){return t.registerOnChange(null)}),e._rawAsyncValidators.forEach(function(t){return t.registerOnChange(null)}),t&&t._clearChangeFns()}function setUpFormContainer(t,e){n.i(i.c)(t)&&_throwError(e,"Cannot find control with"),t.validator=o.a.compose([t.validator,e.validator]),t.asyncValidator=o.a.composeAsync([t.asyncValidator,e.asyncValidator])}function _noControlError(t){return _throwError(t,"There is no FormControl instance attached to form control element with")}function _throwError(t,e){var n;throw n=t.path.length>1?"path: '"+t.path.join(" -> ")+"'":t.path[0]?"name: '"+t.path+"'":"unspecified name attribute",new Error(e+" "+n)}function composeValidators(t){return n.i(i.a)(t)?o.a.compose(t.map(c.a)):null}function composeAsyncValidators(t){return n.i(i.a)(t)?o.a.composeAsync(t.map(c.b)):null}function isPropertyUpdated(t,e){if(!r.a.contains(t,"model"))return!1;var o=t.model;return!!o.isFirstChange()||!n.i(i.l)(e,o.currentValue)}function isBuiltInAccessor(t){return n.i(i.m)(t,a.a)||n.i(i.m)(t,l.a)||n.i(i.m)(t,p.a)||n.i(i.m)(t,d.a)||n.i(i.m)(t,u.a)}function selectValueAccessor(t,e){if(n.i(i.c)(e))return null;var r,o,a;return e.forEach(function(e){n.i(i.m)(e,s.a)?r=e:isBuiltInAccessor(e)?(n.i(i.a)(o)&&_throwError(t,"More than one built-in value accessor matches form control with"),o=e):(n.i(i.a)(a)&&_throwError(t,"More than one custom value accessor matches form control with"),a=e)}),n.i(i.a)(a)?a:n.i(i.a)(o)?o:n.i(i.a)(r)?r:(_throwError(t,"No valid value accessor for form control with"),null)}var r=n(37),i=n(21),o=n(38),a=n(118),s=n(119),c=n(495),l=n(181),u=n(121),p=n(123),d=n(124);e.a=controlPath,e.d=setUpControl,e.h=cleanUpControl,e.e=setUpFormContainer,e.b=composeValidators,e.c=composeAsyncValidators,e.g=isPropertyUpdated,e.f=selectValueAccessor},function(t,e,n){var r=n(95)("meta"),i=n(8),o=n(26),a=n(18).f,s=0,c=Object.isExtensible||function(){return!0},l=!n(5)(function(){return c(Object.preventExtensions({}))}),u=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},p=function(t,e){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,r)){if(!c(t))return"F";if(!e)return"E";u(t)}return t[r].i},d=function(t,e){if(!o(t,r)){if(!c(t))return!0;if(!e)return!1;u(t)}return t[r].w},f=function(t){return l&&h.NEED&&c(t)&&!o(t,r)&&u(t),t},h=t.exports={KEY:r,NEED:!1,fastKey:p,getWeak:d,onFreeze:f}},function(t,e,n){var r=n(133),i=n(64),o=n(33),a=n(65),s=n(26),c=n(366),l=Object.getOwnPropertyDescriptor;e.f=n(22)?l:function(t,e){if(t=o(t),e=a(e,!0),c)try{return l(t,e)}catch(n){}if(s(t,e))return i(!r.f.call(t,e),t[e])}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(r){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";function unimplemented(){throw new Error("unimplemented")}var r=n(178);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},o=function(t){function NgControl(){t.apply(this,arguments),this._parent=null,this.name=null,this.valueAccessor=null,this._rawValidators=[],this._rawAsyncValidators=[]}return i(NgControl,t),Object.defineProperty(NgControl.prototype,"validator",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),Object.defineProperty(NgControl.prototype,"asyncValidator",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),NgControl}(r.a)},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function createEmptyUrlTree(){return new o(new a([],{}),{},null)}function containsTree(t,e,n){return n?equalSegmentGroups(t.root,e.root):containsSegmentGroup(t.root,e.root)}function equalSegmentGroups(t,e){if(!equalPath(t.segments,e.segments))return!1;if(t.numberOfChildren!==e.numberOfChildren)return!1;for(var n in e.children){if(!t.children[n])return!1;if(!equalSegmentGroups(t.children[n],e.children[n]))return!1}return!0}function containsSegmentGroup(t,e){return containsSegmentGroupHelper(t,e,e.segments)}function containsSegmentGroupHelper(t,e,n){if(t.segments.length>n.length){var i=t.segments.slice(0,n.length);return!!equalPath(i,n)&&!e.hasChildren()}if(t.segments.length===n.length){if(!equalPath(t.segments,n))return!1;for(var o in e.children){if(!t.children[o])return!1;if(!containsSegmentGroup(t.children[o],e.children[o]))return!1}return!0}var i=n.slice(0,t.segments.length),a=n.slice(t.segments.length);return!!equalPath(t.segments,i)&&(!!t.children[r.a]&&containsSegmentGroupHelper(t.children[r.a],e,a))}function equalPath(t,e){if(t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(t[n].path!==e[n].path)return!1;return!0}function mapChildrenIntoArray(t,e){var o=[];return n.i(i.c)(t.children,function(t,n){n===r.a&&(o=o.concat(e(t,n)))}),n.i(i.c)(t.children,function(t,n){n!==r.a&&(o=o.concat(e(t,n)))}),o}function serializePaths(t){return t.segments.map(function(t){return serializePath(t)}).join("/")}function serializeSegment(t,e){if(t.hasChildren()&&e){var o=t.children[r.a]?serializeSegment(t.children[r.a],!1):"",a=[];return n.i(i.c)(t.children,function(t,e){e!==r.a&&a.push(e+":"+serializeSegment(t,!1))}),a.length>0?o+"("+a.join("//")+")":""+o}if(t.hasChildren()&&!e){var s=mapChildrenIntoArray(t,function(e,n){return n===r.a?[serializeSegment(t.children[r.a],!1)]:[n+":"+serializeSegment(e,!1)]});return serializePaths(t)+"/("+s.join("//")+")"}return serializePaths(t)}function encode(t){return encodeURIComponent(t)}function decode(t){return decodeURIComponent(t)}function serializePath(t){return""+encode(t.path)+serializeParams(t.parameters)}function serializeParams(t){return pairs(t).map(function(t){return";"+encode(t.first)+"="+encode(t.second)}).join("")}function serializeQueryParams(t){var e=pairs(t).map(function(t){return encode(t.first)+"="+encode(t.second)});return e.length>0?"?"+e.join("&"):""}function pairs(t){var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(new u(n,t[n]));return e}function matchSegments(t){p.lastIndex=0;var e=t.match(p);return e?e[0]:""}function matchQueryParams(t){d.lastIndex=0;var e=t.match(p);return e?e[0]:""}function matchUrlQueryParamValue(t){f.lastIndex=0;var e=t.match(f);return e?e[0]:""}var r=n(45),i=n(46);e.e=createEmptyUrlTree,e.f=containsTree,n.d(e,"b",function(){return o}),n.d(e,"a",function(){return a}),n.d(e,"c",function(){return s}),e.d=mapChildrenIntoArray,n.d(e,"g",function(){return c}),n.d(e,"h",function(){return l});var o=function(){function UrlTree(t,e,n){this.root=t,this.queryParams=e,this.fragment=n}return UrlTree.prototype.toString=function(){return(new l).serialize(this)},UrlTree}(),a=function(){function UrlSegmentGroup(t,e){var r=this;this.segments=t,this.children=e,this.parent=null,n.i(i.c)(e,function(t,e){return t.parent=r})}return UrlSegmentGroup.prototype.hasChildren=function(){return this.numberOfChildren>0},Object.defineProperty(UrlSegmentGroup.prototype,"numberOfChildren",{get:function(){return Object.keys(this.children).length},enumerable:!0,configurable:!0}),UrlSegmentGroup.prototype.toString=function(){return serializePaths(this)},UrlSegmentGroup}(),s=function(){function UrlSegment(t,e){this.path=t,this.parameters=e}return UrlSegment.prototype.toString=function(){return serializePath(this)},UrlSegment}(),c=function(){function UrlSerializer(){}return UrlSerializer}(),l=function(){function DefaultUrlSerializer(){}return DefaultUrlSerializer.prototype.parse=function(t){var e=new h(t);return new o(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())},DefaultUrlSerializer.prototype.serialize=function(t){var e="/"+serializeSegment(t.root,!0),n=serializeQueryParams(t.queryParams),r=null!==t.fragment&&void 0!==t.fragment?"#"+encodeURI(t.fragment):"";return""+e+n+r},DefaultUrlSerializer}(),u=function(){function Pair(t,e){this.first=t,this.second=e}return Pair}(),p=/^[^\/\(\)\?;=&#]+/,d=/^[^=\?&#]+/,f=/^[^\?&#]+/,h=function(){function UrlParser(t){this.url=t,this.remaining=t}return UrlParser.prototype.peekStartsWith=function(t){return this.remaining.startsWith(t)},UrlParser.prototype.capture=function(t){if(!this.remaining.startsWith(t))throw new Error('Expected "'+t+'".');this.remaining=this.remaining.substring(t.length)},UrlParser.prototype.parseRootSegment=function(){return this.remaining.startsWith("/")&&this.capture("/"),""===this.remaining||this.remaining.startsWith("?")||this.remaining.startsWith("#")?new a([],{}):new a([],this.parseChildren())},UrlParser.prototype.parseChildren=function(){if(0==this.remaining.length)return{};this.peekStartsWith("/")&&this.capture("/");var t=[];for(this.peekStartsWith("(")||t.push(this.parseSegments());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegments());var e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));var n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(n[r.a]=new a(t,e)),n},UrlParser.prototype.parseSegments=function(){var t=matchSegments(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Error("Empty path url segment cannot have parameters: '"+this.remaining+"'.");this.capture(t);var e={};return this.peekStartsWith(";")&&(e=this.parseMatrixParams()),new s(decode(t),e)},UrlParser.prototype.parseQueryParams=function(){var t={};if(this.peekStartsWith("?"))for(this.capture("?"),this.parseQueryParam(t);this.remaining.length>0&&this.peekStartsWith("&");)this.capture("&"),this.parseQueryParam(t);return t},UrlParser.prototype.parseFragment=function(){return this.peekStartsWith("#")?decodeURI(this.remaining.substring(1)):null},UrlParser.prototype.parseMatrixParams=function(){for(var t={};this.remaining.length>0&&this.peekStartsWith(";");)this.capture(";"),this.parseParam(t);return t},UrlParser.prototype.parseParam=function(t){var e=matchSegments(this.remaining);if(e){this.capture(e);var n="";if(this.peekStartsWith("=")){this.capture("=");var r=matchSegments(this.remaining);r&&(n=r,this.capture(n))}t[decode(e)]=decode(n)}},UrlParser.prototype.parseQueryParam=function(t){var e=matchQueryParams(this.remaining);if(e){this.capture(e);var n="";if(this.peekStartsWith("=")){this.capture("=");var r=matchUrlQueryParamValue(this.remaining);r&&(n=r,this.capture(n))}t[decode(e)]=decode(n)}},UrlParser.prototype.parseParens=function(t){var e={};for(this.capture("(");!this.peekStartsWith(")")&&this.remaining.length>0;){var n=matchSegments(this.remaining),i=this.remaining[n.length];if("/"!==i&&")"!==i&&";"!==i)throw new Error("Cannot parse url '"+this.url+"'");var o=void 0;n.indexOf(":")>-1?(o=n.substr(0,n.indexOf(":")),this.capture(o),this.capture(":")):t&&(o=r.a);var s=this.parseChildren();e[o]=1===Object.keys(s).length?s[r.a]:new a([],s),this.peekStartsWith("//")&&this.capture("//")}return this.capture(")"),e},UrlParser}()},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(8);t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){"use strict";function lastOnStack(t,e){return t.length>0&&t[t.length-1]===e}var r=n(6),i=n(3),o=n(41),a=n(55),s=n(40),c=n(453),l=n(67);n.d(e,"a",function(){return d}),n.d(e,"b",function(){return f});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var u=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},p=function(t){function TreeError(e,n,r){t.call(this,n,r),this.elementName=e}return u(TreeError,t),TreeError.create=function(t,e,n){return new TreeError(t,e,n)},TreeError}(o.a),d=function(){function ParseTreeResult(t,e){this.rootNodes=t,this.errors=e}return ParseTreeResult}(),f=function(){function Parser(t){this.getTagDefinition=t}return Parser.prototype.parse=function(t,e,n,r){void 0===n&&(n=!1),void 0===r&&(r=s.a);var i=c.a(t,e,this.getTagDefinition,n,r),o=new h(i.tokens,this.getTagDefinition).build();return new d(o.rootNodes,i.errors.concat(o.errors))},Parser}(),h=function(){function _TreeBuilder(t,e){this.tokens=t,this.getTagDefinition=e,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}return _TreeBuilder.prototype.build=function(){for(;this._peek.type!==c.b.EOF;)this._peek.type===c.b.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===c.b.TAG_CLOSE?this._consumeEndTag(this._advance()):this._peek.type===c.b.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===c.b.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===c.b.TEXT||this._peek.type===c.b.RAW_TEXT||this._peek.type===c.b.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===c.b.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._advance();return new d(this._rootNodes,this._errors)},_TreeBuilder.prototype._advance=function(){var t=this._peek;return this._index<this.tokens.length-1&&this._index++,this._peek=this.tokens[this._index],t},_TreeBuilder.prototype._advanceIf=function(t){return this._peek.type===t?this._advance():null},_TreeBuilder.prototype._consumeCdata=function(t){this._consumeText(this._advance()),this._advanceIf(c.b.CDATA_END)},_TreeBuilder.prototype._consumeComment=function(t){var e=this._advanceIf(c.b.RAW_TEXT);this._advanceIf(c.b.COMMENT_END);var r=n.i(i.a)(e)?e.parts[0].trim():null;this._addToParent(new a.a(r,t.sourceSpan))},_TreeBuilder.prototype._consumeExpansion=function(t){for(var e=this._advance(),r=this._advance(),s=[];this._peek.type===c.b.EXPANSION_CASE_VALUE;){var l=this._parseExpansionCase();if(n.i(i.c)(l))return;s.push(l)}if(this._peek.type!==c.b.EXPANSION_FORM_END)return void this._errors.push(p.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '}'."));var u=new o.d(t.sourceSpan.start,this._peek.sourceSpan.end);this._addToParent(new a.b(e.parts[0],r.parts[0],s,u,e.sourceSpan)),this._advance()},_TreeBuilder.prototype._parseExpansionCase=function(){var t=this._advance();if(this._peek.type!==c.b.EXPANSION_CASE_EXP_START)return this._errors.push(p.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '{'.")),null;var e=this._advance(),r=this._collectExpansionExpTokens(e);if(n.i(i.c)(r))return null;var s=this._advance();r.push(new c.c(c.b.EOF,[],s.sourceSpan));var l=new _TreeBuilder(r,this.getTagDefinition).build();if(l.errors.length>0)return this._errors=this._errors.concat(l.errors),null;var u=new o.d(t.sourceSpan.start,s.sourceSpan.end),d=new o.d(e.sourceSpan.start,s.sourceSpan.end);return new a.c(t.parts[0],l.rootNodes,u,t.sourceSpan,d)},_TreeBuilder.prototype._collectExpansionExpTokens=function(t){for(var e=[],n=[c.b.EXPANSION_CASE_EXP_START];;){if(this._peek.type!==c.b.EXPANSION_FORM_START&&this._peek.type!==c.b.EXPANSION_CASE_EXP_START||n.push(this._peek.type),this._peek.type===c.b.EXPANSION_CASE_EXP_END){if(!lastOnStack(n,c.b.EXPANSION_CASE_EXP_START))return this._errors.push(p.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(n.pop(),0==n.length)return e}if(this._peek.type===c.b.EXPANSION_FORM_END){if(!lastOnStack(n,c.b.EXPANSION_FORM_START))return this._errors.push(p.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;n.pop()}if(this._peek.type===c.b.EOF)return this._errors.push(p.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;e.push(this._advance())}},_TreeBuilder.prototype._consumeText=function(t){var e=t.parts[0];if(e.length>0&&"\n"==e[0]){var r=this._getParentElement();n.i(i.a)(r)&&0==r.children.length&&this.getTagDefinition(r.name).ignoreFirstLf&&(e=e.substring(1))}e.length>0&&this._addToParent(new a.d(e,t.sourceSpan))},_TreeBuilder.prototype._closeVoidElement=function(){if(this._elementStack.length>0){var t=r.a.last(this._elementStack);this.getTagDefinition(t.name).isVoid&&this._elementStack.pop()}},_TreeBuilder.prototype._consumeStartTag=function(t){for(var e=t.parts[0],r=t.parts[1],i=[];this._peek.type===c.b.ATTR_NAME;)i.push(this._consumeAttr(this._advance()));var s=this._getElementFullName(e,r,this._getParentElement()),u=!1;if(this._peek.type===c.b.TAG_OPEN_END_VOID){this._advance(),u=!0;var d=this.getTagDefinition(s);d.canSelfClose||null!==n.i(l.c)(s)||d.isVoid||this._errors.push(p.create(s,t.sourceSpan,'Only void and foreign elements can be self closed "'+t.parts[1]+'"'))}else this._peek.type===c.b.TAG_OPEN_END&&(this._advance(),u=!1);var f=this._peek.sourceSpan.start,h=new o.d(t.sourceSpan.start,f),m=new a.e(s,i,[],h,h,null);this._pushElement(m),u&&(this._popElement(s),m.endSourceSpan=h)},_TreeBuilder.prototype._pushElement=function(t){if(this._elementStack.length>0){var e=r.a.last(this._elementStack);this.getTagDefinition(e.name).isClosedByChild(t.name)&&this._elementStack.pop()}var o=this.getTagDefinition(t.name),s=this._getParentElementSkippingContainers(),c=s.parent,l=s.container;if(n.i(i.a)(c)&&o.requireExtraParent(c.name)){var u=new a.e(o.parentToAdd,[],[],t.sourceSpan,t.startSourceSpan,t.endSourceSpan);this._insertBeforeContainer(c,l,u)}this._addToParent(t),this._elementStack.push(t)},_TreeBuilder.prototype._consumeEndTag=function(t){var e=this._getElementFullName(t.parts[0],t.parts[1],this._getParentElement());this._getParentElement()&&(this._getParentElement().endSourceSpan=t.sourceSpan),this.getTagDefinition(e).isVoid?this._errors.push(p.create(e,t.sourceSpan,'Void elements do not have end tags "'+t.parts[1]+'"')):this._popElement(e)||this._errors.push(p.create(e,t.sourceSpan,'Unexpected closing tag "'+t.parts[1]+'"'))},_TreeBuilder.prototype._popElement=function(t){for(var e=this._elementStack.length-1;e>=0;e--){var n=this._elementStack[e];if(n.name==t)return r.a.splice(this._elementStack,e,this._elementStack.length-e),!0;if(!this.getTagDefinition(n.name).closedByParent)return!1}return!1},_TreeBuilder.prototype._consumeAttr=function(t){var e=n.i(l.d)(t.parts[0],t.parts[1]),r=t.sourceSpan.end,i="";if(this._peek.type===c.b.ATTR_VALUE){var s=this._advance();i=s.parts[0],r=s.sourceSpan.end}return new a.f(e,i,new o.d(t.sourceSpan.start,r))},_TreeBuilder.prototype._getParentElement=function(){return this._elementStack.length>0?r.a.last(this._elementStack):null},_TreeBuilder.prototype._getParentElementSkippingContainers=function(){for(var t=null,e=this._elementStack.length-1;e>=0;e--){if("ng-container"!==this._elementStack[e].name)return{parent:this._elementStack[e],container:t};t=this._elementStack[e]}return{parent:r.a.last(this._elementStack),container:t}},_TreeBuilder.prototype._addToParent=function(t){var e=this._getParentElement();n.i(i.a)(e)?e.children.push(t):this._rootNodes.push(t)},_TreeBuilder.prototype._insertBeforeContainer=function(t,e,n){if(e){if(t){var r=t.children.indexOf(e);t.children[r]=n}else this._rootNodes.push(n);n.children.push(e),this._elementStack.splice(this._elementStack.indexOf(e),0,n)}else this._addToParent(n),this._elementStack.push(n)},_TreeBuilder.prototype._getElementFullName=function(t,e,r){return n.i(i.c)(t)&&(t=this.getTagDefinition(e).implicitNamespacePrefix,n.i(i.c)(t)&&n.i(i.a)(r)&&(t=n.i(l.c)(r.name))),n.i(l.d)(t,e)},_TreeBuilder}()},function(t,e,n){"use strict";function splitNsName(t){if(":"!=t[0])return[null,t];var e=t.indexOf(":",1);if(e==-1)throw new Error('Unsupported format "'+t+'" expecting ":namespace:name"');return[t.slice(1,e),t.slice(e+1)]}function getNsPrefix(t){return null===t?null:splitNsName(t)[0]}function mergeNsAndName(t,e){return t?":"+t+":"+e:e}n.d(e,"b",function(){return r}),e.e=splitNsName,e.c=getNsPrefix,e.d=mergeNsAndName,n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;!function(t){t[t.RAW_TEXT=0]="RAW_TEXT",t[t.ESCAPABLE_RAW_TEXT=1]="ESCAPABLE_RAW_TEXT",t[t.PARSABLE_DATA=2]="PARSABLE_DATA"}(r||(r={}));var i={Aacute:"Á",aacute:"á",Acirc:"Â",acirc:"â",acute:"´",AElig:"Æ",aelig:"æ",Agrave:"À",agrave:"à",alefsym:"ℵ",Alpha:"Α",alpha:"α",amp:"&",and:"∧",ang:"∠",apos:"'",Aring:"Å",aring:"å",asymp:"≈",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",bdquo:"„",Beta:"Β",beta:"β",brvbar:"¦",bull:"•",cap:"∩",Ccedil:"Ç",ccedil:"ç",cedil:"¸",cent:"¢",Chi:"Χ",chi:"χ",circ:"ˆ",clubs:"♣",cong:"≅",copy:"©",crarr:"↵",cup:"∪",curren:"¤",dagger:"†",Dagger:"‡",darr:"↓",dArr:"⇓",deg:"°",Delta:"Δ",delta:"δ",diams:"♦",divide:"÷",Eacute:"É",eacute:"é",Ecirc:"Ê",ecirc:"ê",Egrave:"È",egrave:"è",empty:"∅",emsp:" ",ensp:" ",Epsilon:"Ε",epsilon:"ε",equiv:"≡",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",exist:"∃",fnof:"ƒ",forall:"∀",frac12:"½",frac14:"¼",frac34:"¾",frasl:"⁄",Gamma:"Γ",gamma:"γ",ge:"≥",gt:">",harr:"↔",hArr:"⇔",hearts:"♥",hellip:"…",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",image:"ℑ",infin:"∞","int":"∫",Iota:"Ι",iota:"ι",iquest:"¿",isin:"∈",Iuml:"Ï",iuml:"ï",Kappa:"Κ",kappa:"κ",Lambda:"Λ",lambda:"λ",lang:"⟨",laquo:"«",larr:"←",lArr:"⇐",lceil:"⌈",ldquo:"“",le:"≤",lfloor:"⌊",lowast:"∗",loz:"◊",lrm:"‎",lsaquo:"‹",lsquo:"‘",lt:"<",macr:"¯",mdash:"—",micro:"µ",middot:"·",minus:"−",Mu:"Μ",mu:"μ",nabla:"∇",nbsp:" ",ndash:"–",ne:"≠",ni:"∋",not:"¬",notin:"∉",nsub:"⊄",Ntilde:"Ñ",ntilde:"ñ",Nu:"Ν",nu:"ν",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",OElig:"Œ",oelig:"œ",Ograve:"Ò",ograve:"ò",oline:"‾",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",oplus:"⊕",or:"∨",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",otimes:"⊗",Ouml:"Ö",ouml:"ö",para:"¶",permil:"‰",perp:"⊥",Phi:"Φ",phi:"φ",Pi:"Π",pi:"π",piv:"ϖ",plusmn:"±",pound:"£",prime:"′",Prime:"″",prod:"∏",prop:"∝",Psi:"Ψ",psi:"ψ",quot:'"',radic:"√",rang:"⟩",raquo:"»",rarr:"→",rArr:"⇒",rceil:"⌉",rdquo:"”",real:"ℜ",reg:"®",rfloor:"⌋",Rho:"Ρ",rho:"ρ",rlm:"‏",rsaquo:"›",rsquo:"’",sbquo:"‚",Scaron:"Š",scaron:"š",sdot:"⋅",sect:"§",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sim:"∼",spades:"♠",sub:"⊂",sube:"⊆",sum:"∑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supe:"⊇",szlig:"ß",Tau:"Τ",tau:"τ",there4:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thinsp:" ",THORN:"Þ",thorn:"þ",tilde:"˜",times:"×",trade:"™",Uacute:"Ú",uacute:"ú",uarr:"↑",uArr:"⇑",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",Uuml:"Ü",uuml:"ü",weierp:"℘",Xi:"Ξ",xi:"ξ",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ",Yuml:"Ÿ",Zeta:"Ζ",zeta:"ζ",zwj:"‍",zwnj:"‌"}},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function _enumExpression(t,e){return o.b(n.i(i.e)(t,e))}var r=n(0),i=n(16),o=n(7),a=n(17);n.d(e,"f",function(){return s}),n.d(e,"h",function(){return c}),n.d(e,"g",function(){return l}),n.d(e,"e",function(){return u}),n.d(e,"c",function(){return p}),n.d(e,"b",function(){return d}),n.d(e,"a",function(){return f}),n.d(e,"d",function(){return h});var s=function(){function ViewTypeEnum(){}return ViewTypeEnum.fromValue=function(t){var e=n.i(i.d)(i.b.ViewType);switch(t){case a.i.HOST:return _enumExpression(e,"HOST");case a.i.COMPONENT:return _enumExpression(e,"COMPONENT");case a.i.EMBEDDED:return _enumExpression(e,"EMBEDDED");default:throw Error("Inavlid ViewType value: "+t)}},ViewTypeEnum}(),c=function(){function ViewEncapsulationEnum(){}return ViewEncapsulationEnum.fromValue=function(t){var e=n.i(i.d)(i.b.ViewEncapsulation);switch(t){case r.ViewEncapsulation.Emulated:return _enumExpression(e,"Emulated");case r.ViewEncapsulation.Native:return _enumExpression(e,"Native");case r.ViewEncapsulation.None:return _enumExpression(e,"None");default:throw Error("Inavlid ViewEncapsulation value: "+t)}},ViewEncapsulationEnum}(),l=(function(){function ChangeDetectionStrategyEnum(){}return ChangeDetectionStrategyEnum.fromValue=function(t){var e=n.i(i.d)(i.b.ChangeDetectionStrategy);switch(t){case r.ChangeDetectionStrategy.OnPush:return _enumExpression(e,"OnPush");case r.ChangeDetectionStrategy.Default:return _enumExpression(e,"Default");default:throw Error("Inavlid ChangeDetectionStrategy value: "+t)}},ChangeDetectionStrategyEnum}(),function(){function ChangeDetectorStatusEnum(){}return ChangeDetectorStatusEnum.fromValue=function(t){var e=n.i(i.d)(i.b.ChangeDetectorStatus);switch(t){case a.m.CheckOnce:return _enumExpression(e,"CheckOnce");case a.m.Checked:return _enumExpression(e,"Checked");case a.m.CheckAlways:return _enumExpression(e,"CheckAlways");case a.m.Detached:return _enumExpression(e,"Detached");case a.m.Errored:return _enumExpression(e,"Errored");case a.m.Destroyed:return _enumExpression(e,"Destroyed");default:throw Error("Inavlid ChangeDetectorStatus value: "+t)}},ChangeDetectorStatusEnum}()),u=function(){function ViewConstructorVars(){}return ViewConstructorVars.viewUtils=o.e("viewUtils"),ViewConstructorVars.parentInjector=o.e("parentInjector"),ViewConstructorVars.declarationEl=o.e("declarationEl"),ViewConstructorVars}(),p=function(){function ViewProperties(){}return ViewProperties.renderer=o.n.prop("renderer"),ViewProperties.projectableNodes=o.n.prop("projectableNodes"),ViewProperties.viewUtils=o.n.prop("viewUtils"),ViewProperties}(),d=function(){function EventHandlerVars(){}return EventHandlerVars.event=o.e("$event"),EventHandlerVars}(),f=function(){function InjectMethodVars(){}return InjectMethodVars.token=o.e("token"),InjectMethodVars.requestNodeIndex=o.e("requestNodeIndex"),InjectMethodVars.notFoundResult=o.e("notFoundResult"),InjectMethodVars}(),h=function(){function DetectChangesVars(){}return DetectChangesVars.throwOnChange=o.e("throwOnChange"),DetectChangesVars.changes=o.e("changes"),DetectChangesVars.changed=o.e("changed"),DetectChangesVars.valUnwrapper=o.e("valUnwrapper"),DetectChangesVars}()},function(t,e,n){"use strict";var r=n(77),i=(n.n(r),n(9));n.n(i);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(t){function EventEmitter(e){void 0===e&&(e=!1),t.call(this),this.__isAsync=e}return o(EventEmitter,t),EventEmitter.prototype.emit=function(e){t.prototype.next.call(this,e)},EventEmitter.prototype.subscribe=function(e,n,r){var i,o=function(t){return null},a=function(){return null};return e&&"object"==typeof e?(i=this.__isAsync?function(t){setTimeout(function(){return e.next(t)})}:function(t){e.next(t)},e.error&&(o=this.__isAsync?function(t){setTimeout(function(){return e.error(t)})}:function(t){e.error(t)}),e.complete&&(a=this.__isAsync?function(){setTimeout(function(){return e.complete()})}:function(){e.complete()})):(i=this.__isAsync?function(t){setTimeout(function(){return e(t)})}:function(t){e(t)},n&&(o=this.__isAsync?function(t){setTimeout(function(){return n(t)})}:function(t){n(t)}),r&&(a=this.__isAsync?function(){setTimeout(function(){return r()})}:function(){r()})),t.prototype.subscribe.call(this,i,o,a)},EventEmitter}(r.Subject)},function(t,e,n){"use strict";var r=n(0),i=n(44);n.d(e,"c",function(){return o}),n.d(e,"a",function(){return a}),n.d(e,"b",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=new r.OpaqueToken("EventManagerPlugins"),a=function(){function EventManager(t,e){var n=this;this._zone=e,t.forEach(function(t){return t.manager=n}),this._plugins=i.b.reversed(t)}return EventManager.prototype.addEventListener=function(t,e,n){var r=this._findPluginFor(e);return r.addEventListener(t,e,n)},EventManager.prototype.addGlobalEventListener=function(t,e,n){var r=this._findPluginFor(e);return r.addGlobalEventListener(t,e,n)},EventManager.prototype.getZone=function(){return this._zone},EventManager.prototype._findPluginFor=function(t){for(var e=this._plugins,n=0;n<e.length;n++){var r=e[n];if(r.supports(t))return r}throw new Error("No event manager plugin found for event "+t)},EventManager.decorators=[{type:r.Injectable}],EventManager.ctorParameters=[{type:Array,decorators:[{type:r.Inject,args:[o]}]},{type:r.NgZone}],EventManager}(),s=function(){function EventManagerPlugin(){}return EventManagerPlugin.prototype.supports=function(t){return!1},EventManagerPlugin.prototype.addEventListener=function(t,e,n){throw"not implemented"},EventManagerPlugin.prototype.addGlobalEventListener=function(t,e,n){throw"not implemented"},EventManagerPlugin}()},function(t,e,n){"use strict";function createEmptyState(t,e){var n=createEmptyStateSnapshot(t,e),a=new r.BehaviorSubject([new o.c("",{})]),c=new r.BehaviorSubject({}),p=new r.BehaviorSubject({}),d=new r.BehaviorSubject({}),f=new r.BehaviorSubject(""),h=new u(a,c,d,f,p,i.a,e,n.root);return h.snapshot=n.root,new l(new s.b(h,[]),n)}function createEmptyStateSnapshot(t,e){var n={},r={},o={},a="",c=new d([],n,o,a,r,i.a,e,null,t.root,(-1),p.empty);return new f("",new s.b(c,[]))}function setRouterStateSnapshot(t,e){e.value._routerState=t,e.children.forEach(function(e){return setRouterStateSnapshot(t,e)})}function serializeNode(t){var e=t.children.length>0?" { "+t.children.map(serializeNode).join(", ")+" } ":"";return""+t.value+e}function advanceActivatedRoute(t){t.snapshot?(n.i(a.d)(t.snapshot.queryParams,t._futureSnapshot.queryParams)||t.queryParams.next(t._futureSnapshot.queryParams),t.snapshot.fragment!==t._futureSnapshot.fragment&&t.fragment.next(t._futureSnapshot.fragment),n.i(a.d)(t.snapshot.params,t._futureSnapshot.params)||(t.params.next(t._futureSnapshot.params),t.data.next(t._futureSnapshot.data)),n.i(a.h)(t.snapshot.url,t._futureSnapshot.url)||t.url.next(t._futureSnapshot.url),t.snapshot=t._futureSnapshot):(t.snapshot=t._futureSnapshot,t.data.next(t._futureSnapshot.data))}var r=n(415),i=(n.n(r),n(45)),o=n(61),a=n(46),s=n(193);n.d(e,"a",function(){return l}),e.f=createEmptyState,n.d(e,"b",function(){return u}),n.d(e,"c",function(){return p}),n.d(e,"d",function(){return d}),n.d(e,"e",function(){return f}),e.g=advanceActivatedRoute;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},l=function(t){function RouterState(e,n){t.call(this,e),this.snapshot=n,setRouterStateSnapshot(this,e)}return c(RouterState,t),RouterState.prototype.toString=function(){return this.snapshot.toString()},RouterState}(s.a),u=function(){function ActivatedRoute(t,e,n,r,i,o,a,s){this.url=t,this.params=e,this.queryParams=n,this.fragment=r,this.data=i,this.outlet=o,this.component=a,this._futureSnapshot=s}return Object.defineProperty(ActivatedRoute.prototype,"routeConfig",{get:function(){return this._futureSnapshot.routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRoute.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRoute.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRoute.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRoute.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRoute.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),ActivatedRoute.prototype.toString=function(){return this.snapshot?this.snapshot.toString():"Future("+this._futureSnapshot+")"},ActivatedRoute}(),p=function(){function InheritedResolve(t,e){this.parent=t,this.current=e,this.resolvedData={}}return Object.defineProperty(InheritedResolve.prototype,"flattenedResolvedData",{get:function(){return this.parent?n.i(a.g)(this.parent.flattenedResolvedData,this.resolvedData):this.resolvedData},enumerable:!0,configurable:!0}),Object.defineProperty(InheritedResolve,"empty",{get:function(){return new InheritedResolve(null,{})},enumerable:!0,configurable:!0}),InheritedResolve}(),d=function(){function ActivatedRouteSnapshot(t,e,n,r,i,o,a,s,c,l,u){this.url=t,this.params=e,this.queryParams=n,this.fragment=r,this.data=i,this.outlet=o,this.component=a,this._routeConfig=s,this._urlSegment=c,this._lastPathIndex=l,this._resolve=u}return Object.defineProperty(ActivatedRouteSnapshot.prototype,"routeConfig",{get:function(){return this._routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRouteSnapshot.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRouteSnapshot.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRouteSnapshot.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRouteSnapshot.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRouteSnapshot.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),ActivatedRouteSnapshot.prototype.toString=function(){var t=this.url.map(function(t){return t.toString()}).join("/"),e=this._routeConfig?this._routeConfig.path:"";return"Route(url:'"+t+"', path:'"+e+"')"},ActivatedRouteSnapshot}(),f=function(t){function RouterStateSnapshot(e,n){t.call(this,n),this.url=e,setRouterStateSnapshot(this,n)}return c(RouterStateSnapshot,t),RouterStateSnapshot.prototype.toString=function(){return serializeNode(this._root)},RouterStateSnapshot}(s.a)},function(t,e,n){var r=n(62);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(4),i=n(375),o=n(196),a=n(209)("IE_PROTO"),s=function(){},c="prototype",l=function(){var t,e=n(364)("iframe"),r=o.length,i="<",a=">";for(e.style.display="none",n(365).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(i+"script"+a+"document.F=Object"+i+"/script"+a),t.close(),l=t.F;r--;)delete l[c][o[r]];return l()};t.exports=Object.create||function(t,e){var n;return null!==t?(s[c]=r(t),n=new s,s[c]=null,n[a]=t):n=l(),void 0===e?n:i(n,e)}},function(t,e,n){var r=n(377),i=n(196);t.exports=Object.keys||function(t){return r(t,i)}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){"use strict";var r=n(238);!function(t){t[t.BS3=1]="BS3",t[t.BS4=2]="BS4"}(e.Ng2BootstrapTheme||(e.Ng2BootstrapTheme={}));var i=e.Ng2BootstrapTheme,o=function(){function Ng2BootstrapConfig(){}return Object.defineProperty(Ng2BootstrapConfig,"theme",{get:function(){return"bs4"===r.window.__theme?i.BS4:this._theme||i.BS3},set:function(t){this._theme=t},enumerable:!0,configurable:!0}),Ng2BootstrapConfig}();e.Ng2BootstrapConfig=o},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(9),o=n(29),a=n(142),s=n(423),c=n(733),l=n(245),u=function(t){function SubjectSubscriber(e){t.call(this,e),this.destination=e}return r(SubjectSubscriber,t),SubjectSubscriber}(o.Subscriber);e.SubjectSubscriber=u;var p=function(t){function Subject(){t.call(this),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}return r(Subject,t),Subject.prototype[l.$$rxSubscriber]=function(){return new u(this)},Subject.prototype.lift=function(t){var e=new d(this,this);return e.operator=t,e},Subject.prototype.next=function(t){if(this.closed)throw new s.ObjectUnsubscribedError;if(!this.isStopped)for(var e=this.observers,n=e.length,r=e.slice(),i=0;i<n;i++)r[i].next(t)},Subject.prototype.error=function(t){if(this.closed)throw new s.ObjectUnsubscribedError;this.hasError=!0,this.thrownError=t,this.isStopped=!0;for(var e=this.observers,n=e.length,r=e.slice(),i=0;i<n;i++)r[i].error(t);this.observers.length=0},Subject.prototype.complete=function(){if(this.closed)throw new s.ObjectUnsubscribedError;this.isStopped=!0;for(var t=this.observers,e=t.length,n=t.slice(),r=0;r<e;r++)n[r].complete();this.observers.length=0},Subject.prototype.unsubscribe=function(){this.isStopped=!0,this.closed=!0,this.observers=null},Subject.prototype._subscribe=function(t){if(this.closed)throw new s.ObjectUnsubscribedError;return this.hasError?(t.error(this.thrownError),a.Subscription.EMPTY):this.isStopped?(t.complete(),a.Subscription.EMPTY):(this.observers.push(t),new c.SubjectSubscription(this,t))},Subject.prototype.asObservable=function(){var t=new i.Observable;return t.source=this,t},Subject.create=function(t,e){return new d(t,e)},Subject}(i.Observable);e.Subject=p;var d=function(t){function AnonymousSubject(e,n){t.call(this),this.destination=e,this.source=n}return r(AnonymousSubject,t),AnonymousSubject.prototype.next=function(t){var e=this.destination;e&&e.next&&e.next(t)},AnonymousSubject.prototype.error=function(t){var e=this.destination;e&&e.error&&this.destination.error(t)},AnonymousSubject.prototype.complete=function(){var t=this.destination;t&&t.complete&&this.destination.complete()},AnonymousSubject.prototype._subscribe=function(t){var e=this.source;return e?this.source.subscribe(t):a.Subscription.EMPTY},AnonymousSubject}(p);e.AnonymousSubject=d},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function unimplemented(){throw new Error("unimplemented")}var r=n(0),i=n(16);n.d(e,"a",function(){return o});var o=function(){function CompilerConfig(t){var e=void 0===t?{}:t,n=e.renderTypes,i=void 0===n?new a:n,o=e.defaultEncapsulation,s=void 0===o?r.ViewEncapsulation.Emulated:o,c=e.genDebugInfo,l=e.logBindingUpdate,u=e.useJit,p=void 0===u||u;this.renderTypes=i,this.defaultEncapsulation=s,this._genDebugInfo=c,this._logBindingUpdate=l,this.useJit=p}return Object.defineProperty(CompilerConfig.prototype,"genDebugInfo",{get:function(){return void 0===this._genDebugInfo?n.i(r.isDevMode)():this._genDebugInfo},enumerable:!0,configurable:!0}),Object.defineProperty(CompilerConfig.prototype,"logBindingUpdate",{get:function(){return void 0===this._logBindingUpdate?n.i(r.isDevMode)():this._logBindingUpdate},enumerable:!0,configurable:!0}),CompilerConfig}(),a=(function(){function RenderTypes(){}return Object.defineProperty(RenderTypes.prototype,"renderer",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),Object.defineProperty(RenderTypes.prototype,"renderText",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),Object.defineProperty(RenderTypes.prototype,"renderElement",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),Object.defineProperty(RenderTypes.prototype,"renderComment",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),Object.defineProperty(RenderTypes.prototype,"renderNode",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),Object.defineProperty(RenderTypes.prototype,"renderEvent",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),RenderTypes}(),function(){function DefaultRenderTypes(){this.renderText=null,this.renderElement=null,this.renderComment=null,this.renderNode=null,this.renderEvent=null}return Object.defineProperty(DefaultRenderTypes.prototype,"renderer",{get:function(){return n.i(i.d)(i.b.Renderer)},enumerable:!0,configurable:!0}),DefaultRenderTypes}())},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function ElementSchemaRegistry(){}return ElementSchemaRegistry}()},function(t,e,n){"use strict";function getUrlScheme(t){var e=_split(t);return e&&e[o.Scheme]||""}function _buildFromEncodedParts(t,e,r,o,a,s,c){var l=[];return n.i(i.a)(t)&&l.push(t+":"),n.i(i.a)(r)&&(l.push("//"),n.i(i.a)(e)&&l.push(e+"@"),l.push(r),n.i(i.a)(o)&&l.push(":"+o)),n.i(i.a)(a)&&l.push(a),n.i(i.a)(s)&&l.push("?"+s),n.i(i.a)(c)&&l.push("#"+c),l.join("")}function _split(t){return t.match(l)}function _removeDotSegments(t){if("/"==t)return"/";for(var e="/"==t[0]?"/":"",n="/"===t[t.length-1]?"/":"",r=t.split("/"),i=[],o=0,a=0;a<r.length;a++){var s=r[a];switch(s){case"":case".":break;case"..":i.length>0?i.pop():o++;break;default:i.push(s)}}if(""==e){for(;o-- >0;)i.unshift("..");0===i.length&&i.push(".")}return e+i.join("/")+n}function _joinAndCanonicalizePath(t){var e=t[o.Path];return e=n.i(i.c)(e)?"":_removeDotSegments(e),t[o.Path]=e,_buildFromEncodedParts(t[o.Scheme],t[o.UserInfo],t[o.Domain],t[o.Port],e,t[o.QueryData],t[o.Fragment])}function _resolveUrl(t,e){var r=_split(encodeURI(e)),a=_split(t);if(n.i(i.a)(r[o.Scheme]))return _joinAndCanonicalizePath(r);r[o.Scheme]=a[o.Scheme];for(var s=o.Scheme;s<=o.Port;s++)n.i(i.c)(r[s])&&(r[s]=a[s]);if("/"==r[o.Path][0])return _joinAndCanonicalizePath(r);var c=a[o.Path];n.i(i.c)(c)&&(c="/");var l=c.lastIndexOf("/");return c=c.substring(0,l+1)+r[o.Path],r[o.Path]=c,_joinAndCanonicalizePath(r)}var r=n(0),i=n(3);n.d(e,"c",function(){return s}),n.d(e,"a",function(){return c}),e.b=getUrlScheme;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o,a="asset:",s={provide:r.PACKAGE_ROOT_URL,useValue:"/"},c=function(){function UrlResolver(t){void 0===t&&(t=null),this._packagePrefix=t}return UrlResolver.prototype.resolve=function(t,e){var r=e;n.i(i.a)(t)&&t.length>0&&(r=_resolveUrl(t,r));var s=_split(r),c=this._packagePrefix;if(n.i(i.a)(c)&&n.i(i.a)(s)&&"package"==s[o.Scheme]){var l=s[o.Path];if(this._packagePrefix!==a)return c=i.g.stripRight(c,"/"),l=i.g.stripLeft(l,"/"),c+"/"+l;var u=l.split(/\//);r="asset:"+u[0]+"/lib/"+u.slice(1).join("/")}return r},UrlResolver.decorators=[{type:r.Injectable}],UrlResolver.ctorParameters=[{type:void 0,decorators:[{type:r.Inject,args:[r.PACKAGE_ROOT_URL]}]}],UrlResolver}(),l=new RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$");!function(t){t[t.Scheme=1]="Scheme",t[t.UserInfo=2]="UserInfo",t[t.Domain=3]="Domain",t[t.Port=4]="Port",t[t.Path=5]="Path",t[t.QueryData=6]="QueryData",t[t.Fragment=7]="Fragment"}(o||(o={}))},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function getPropertyInView(t,e,i){if(e===i)return t;for(var a=o.n,s=e;s!==i&&n.i(r.a)(s.declarationElement.view);)s=s.declarationElement.view,a=a.prop("parent");if(s!==i)throw new Error("Internal error: Could not calculate a property in a parent view: "+t);if(t instanceof o.o){var c=t;(i.fields.some(function(t){return t.name==c.name})||i.getters.some(function(t){return t.name==c.name}))&&(a=a.cast(i.classType))}return o.p(o.n.name,a,t)}function injectFromViewParentInjector(t,e){var r=[n.i(a.e)(t)];return e&&r.push(o.h),o.n.prop("parentInjector").callMethod("get",r)}function getViewFactoryName(t,e){return"viewFactory_"+t.type.name+e}function createFlatArray(t){for(var e=[],n=o.g([]),r=0;r<t.length;r++){var i=t[r];i.type instanceof o.q?(e.length>0&&(n=n.callMethod(o.r.ConcatArray,[o.g(e)]),e=[]),n=n.callMethod(o.r.ConcatArray,[i])):e.push(i)}return e.length>0&&(n=n.callMethod(o.r.ConcatArray,[o.g(e)])),n}function createPureProxy(t,e,a,s){s.fields.push(new o.s(a.name,null));var c=e<i.b.pureProxies.length?i.b.pureProxies[e]:null;if(n.i(r.c)(c))throw new Error("Unsupported number of argument for pure functions: "+e);s.createMethod.addStmt(o.n.prop(a.name).set(o.b(n.i(i.d)(c)).callFn([t])).toStmt())}var r=n(3),i=n(16),o=n(7),a=n(23);e.a=getPropertyInView,e.b=injectFromViewParentInjector,e.d=getViewFactoryName,e.e=createFlatArray,e.c=createPureProxy},function(t,e,n){"use strict";var r=n(117),i=n(83);n.d(e,"Inject",function(){return o}),n.d(e,"Optional",function(){return a}),n.d(e,"Injectable",function(){return s}),n.d(e,"Self",function(){return c}),n.d(e,"Host",function(){return l}),n.d(e,"SkipSelf",function(){return u});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=n.i(r.a)(i.a),a=n.i(r.a)(i.b),s=n.i(r.b)(i.c),c=n.i(r.a)(i.d),l=n.i(r.a)(i.e),u=n.i(r.a)(i.f)},function(t,e,n){"use strict";var r=n(2);n.d(e,"a",function(){return i}),n.d(e,"b",function(){return o}),n.d(e,"g",function(){return a}),n.d(e,"c",function(){return s}),n.d(e,"d",function(){return c}),n.d(e,"f",function(){return l}),n.d(e,"e",function(){return u});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function InjectMetadata(t){this.token=t}return InjectMetadata.prototype.toString=function(){return"@Inject("+n.i(r.a)(this.token)+")"},InjectMetadata}(),o=function(){function OptionalMetadata(){}return OptionalMetadata.prototype.toString=function(){return"@Optional()"},OptionalMetadata}(),a=function(){function DependencyMetadata(){}return Object.defineProperty(DependencyMetadata.prototype,"token",{get:function(){return null},enumerable:!0,configurable:!0}),DependencyMetadata}(),s=function(){function InjectableMetadata(){}return InjectableMetadata}(),c=function(){function SelfMetadata(){}return SelfMetadata.prototype.toString=function(){return"@Self()"},SelfMetadata}(),l=function(){function SkipSelfMetadata(){}return SkipSelfMetadata.prototype.toString=function(){return"@SkipSelf()"},SkipSelfMetadata}(),u=function(){function HostMetadata(){}return HostMetadata.prototype.toString=function(){return"@Host()"},HostMetadata}()},function(t,e,n){"use strict";function _throwError(){throw new Error("Runtime compiler is not loaded")}var r=n(35),i=n(30),o=n(2);n.d(e,"c",function(){return s}),n.d(e,"d",function(){return c}),n.d(e,"b",function(){return l}),n.d(e,"e",function(){return u}),n.d(e,"a",function(){return p});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s=function(t){function ComponentStillLoadingError(e){t.call(this,"Can't compile synchronously as "+n.i(o.a)(e)+" is still being loaded!"),this.compType=e}return a(ComponentStillLoadingError,t),ComponentStillLoadingError}(i.b),c=function(){function ModuleWithComponentFactories(t,e){this.ngModuleFactory=t,this.componentFactories=e}return ModuleWithComponentFactories}(),l=function(){function Compiler(){}return Compiler.prototype.compileModuleSync=function(t){throw _throwError()},Compiler.prototype.compileModuleAsync=function(t){throw _throwError()},Compiler.prototype.compileModuleAndAllComponentsSync=function(t){throw _throwError()},Compiler.prototype.compileModuleAndAllComponentsAsync=function(t){throw _throwError()},Compiler.prototype.clearCache=function(){},Compiler.prototype.clearCacheFor=function(t){},Compiler}(),u=new r.OpaqueToken("compilerOptions"),p=function(){function CompilerFactory(){}return CompilerFactory}()},function(t,e,n){"use strict";var r=n(43),i=n(56);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(t){function AbstractFormGroupDirective(){t.apply(this,arguments)}return o(AbstractFormGroupDirective,t),AbstractFormGroupDirective.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},AbstractFormGroupDirective.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(AbstractFormGroupDirective.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"path",{get:function(){return n.i(i.a)(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"validator",{get:function(){return n.i(i.b)(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"asyncValidator",{get:function(){return n.i(i.c)(this._asyncValidators)},enumerable:!0,configurable:!0}),AbstractFormGroupDirective.prototype._checkParentType=function(){},AbstractFormGroupDirective}(r.a)},function(t,e,n){"use strict";var r=n(0),i=n(69),o=n(37),a=n(21),s=n(125),c=n(38),l=n(43),u=n(56);n.d(e,"a",function(){return h});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var p=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},d={provide:l.a,useExisting:n.i(r.forwardRef)(function(){return h})},f=Promise.resolve(null),h=function(t){function NgForm(e,r){t.call(this),this._submitted=!1,this.ngSubmit=new i.a,this.form=new s.a({},n.i(u.b)(e),n.i(u.c)(r))}return p(NgForm,t),Object.defineProperty(NgForm.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),NgForm.prototype.addControl=function(t){var e=this;f.then(function(){var r=e._findContainer(t.path);t._control=r.registerControl(t.name,t.control),n.i(u.d)(t.control,t),t.control.updateValueAndValidity({emitEvent:!1})})},NgForm.prototype.getControl=function(t){return this.form.get(t.path)},NgForm.prototype.removeControl=function(t){var e=this;f.then(function(){var r=e._findContainer(t.path);n.i(a.a)(r)&&r.removeControl(t.name)})},NgForm.prototype.addFormGroup=function(t){var e=this;f.then(function(){var r=e._findContainer(t.path),i=new s.a({});n.i(u.e)(i,t),r.registerControl(t.name,i),i.updateValueAndValidity({emitEvent:!1})})},NgForm.prototype.removeFormGroup=function(t){var e=this;f.then(function(){var r=e._findContainer(t.path);n.i(a.a)(r)&&r.removeControl(t.name)})},NgForm.prototype.getFormGroup=function(t){return this.form.get(t.path)},NgForm.prototype.updateModel=function(t,e){var n=this;f.then(function(){var r=n.form.get(t.path);r.setValue(e)})},NgForm.prototype.setValue=function(t){this.control.setValue(t)},NgForm.prototype.onSubmit=function(){return this._submitted=!0,this.ngSubmit.emit(null),!1},NgForm.prototype.onReset=function(){this.resetForm()},NgForm.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this._submitted=!1},NgForm.prototype._findContainer=function(t){return t.pop(),o.b.isEmpty(t)?this.form:this.form.get(t)},NgForm.decorators=[{type:r.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),ngForm,[ngForm]",providers:[d],host:{"(submit)":"onSubmit()","(reset)":"onReset()"},outputs:["ngSubmit"],exportAs:"ngForm"}]}],NgForm.ctorParameters=[{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[c.b]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[c.c]}]}],NgForm}(l.a)},function(t,e,n){"use strict";var r=n(0),i=n(69),o=n(37),a=n(21),s=n(38),c=n(43),l=n(122),u=n(56);n.d(e,"a",function(){return f});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var p=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},d={provide:c.a,useExisting:n.i(r.forwardRef)(function(){return f})},f=function(t){function FormGroupDirective(e,n){t.call(this),this._validators=e,this._asyncValidators=n,this._submitted=!1,this.directives=[],this.form=null,this.ngSubmit=new i.a}return p(FormGroupDirective,t),FormGroupDirective.prototype.ngOnChanges=function(t){if(this._checkFormPresent(),o.a.contains(t,"form")){var e=n.i(u.b)(this._validators);this.form.validator=s.a.compose([this.form.validator,e]);var r=n.i(u.c)(this._asyncValidators);this.form.asyncValidator=s.a.composeAsync([this.form.asyncValidator,r]),this._updateDomValue(t)}},Object.defineProperty(FormGroupDirective.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),FormGroupDirective.prototype.addControl=function(t){var e=this.form.get(t.path);n.i(u.d)(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t)},FormGroupDirective.prototype.getControl=function(t){return this.form.get(t.path)},FormGroupDirective.prototype.removeControl=function(t){o.b.remove(this.directives,t)},FormGroupDirective.prototype.addFormGroup=function(t){var e=this.form.get(t.path);n.i(u.e)(e,t),e.updateValueAndValidity({emitEvent:!1})},FormGroupDirective.prototype.removeFormGroup=function(t){},FormGroupDirective.prototype.getFormGroup=function(t){return this.form.get(t.path)},FormGroupDirective.prototype.addFormArray=function(t){var e=this.form.get(t.path);n.i(u.e)(e,t),e.updateValueAndValidity({emitEvent:!1})},FormGroupDirective.prototype.removeFormArray=function(t){},FormGroupDirective.prototype.getFormArray=function(t){return this.form.get(t.path)},FormGroupDirective.prototype.updateModel=function(t,e){var n=this.form.get(t.path);n.setValue(e)},FormGroupDirective.prototype.onSubmit=function(){return this._submitted=!0,this.ngSubmit.emit(null),!1},FormGroupDirective.prototype.onReset=function(){this.resetForm()},FormGroupDirective.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this._submitted=!1},FormGroupDirective.prototype._updateDomValue=function(t){var e=this,r=t.form.previousValue;this.directives.forEach(function(t){var i=e.form.get(t.path),o=r.get(t.path);o!==i&&(n.i(u.h)(o,t),i&&n.i(u.d)(i,t))}),this.form._updateTreeValidity({emitEvent:!1})},FormGroupDirective.prototype._checkFormPresent=function(){n.i(a.c)(this.form)&&l.a.missingFormException()},FormGroupDirective.decorators=[{type:r.Directive,args:[{selector:"[formGroup]",providers:[d],host:{"(submit)":"onSubmit()","(reset)":"onReset()"},exportAs:"ngForm"}]}],FormGroupDirective.ctorParameters=[{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[s.b]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[s.c]}]}],FormGroupDirective.propDecorators={form:[{type:r.Input,args:["formGroup"]}],ngSubmit:[{type:r.Output}]},FormGroupDirective}(c.a)},function(t,e,n){"use strict";function _hasInvalidParent(t){return!(t instanceof d||t instanceof l.a||t instanceof h)}var r=n(0),i=n(38),o=n(85),a=n(43),s=n(122),c=n(56),l=n(87);n.d(e,"a",function(){return d}),n.d(e,"b",function(){return h});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var u=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},p={provide:a.a,useExisting:n.i(r.forwardRef)(function(){return d})},d=function(t){function FormGroupName(e,n,r){t.call(this),this._parent=e,this._validators=n,this._asyncValidators=r}return u(FormGroupName,t),FormGroupName.prototype._checkParentType=function(){_hasInvalidParent(this._parent)&&s.a.groupParentException()},FormGroupName.decorators=[{type:r.Directive,args:[{selector:"[formGroupName]",providers:[p]}]}],FormGroupName.ctorParameters=[{type:a.a,decorators:[{type:r.Optional},{type:r.Host},{type:r.SkipSelf}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[i.b]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[i.c]}]}],FormGroupName.propDecorators={name:[{type:r.Input,args:["formGroupName"]}]},FormGroupName}(o.a),f={provide:a.a,useExisting:n.i(r.forwardRef)(function(){return h})},h=function(t){function FormArrayName(e,n,r){t.call(this),this._parent=e,this._validators=n,this._asyncValidators=r}return u(FormArrayName,t),FormArrayName.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},FormArrayName.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(FormArrayName.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"path",{get:function(){return n.i(c.a)(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"validator",{get:function(){return n.i(c.b)(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"asyncValidator",{get:function(){return n.i(c.c)(this._asyncValidators)},enumerable:!0,configurable:!0}),FormArrayName.prototype._checkParentType=function(){_hasInvalidParent(this._parent)&&s.a.arrayParentException()},FormArrayName.decorators=[{type:r.Directive,args:[{selector:"[formArrayName]",providers:[f]}]}],FormArrayName.ctorParameters=[{type:a.a,decorators:[{type:r.Optional},{type:r.Host},{type:r.SkipSelf}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[i.b]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[i.c]}]}],FormArrayName.propDecorators={name:[{type:r.Input,args:["formArrayName"]}]},FormArrayName}(a.a)},function(t,e,n){"use strict";var r=n(521);n.d(e,"a",function(){return r.a}),n.d(e,"b",function(){return r.b}),n.d(e,"c",function(){return r.c}),n.d(e,"d",function(){return r.d})},function(t,e,n){var r=n(11)("unscopables"),i=Array.prototype;void 0==i[r]&&n(49)(i,r,{}),t.exports=function(t){i[r][t]=!0}},function(t,e,n){var r=n(63);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e){t.exports={}},function(t,e,n){var r=n(377),i=n(196).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},function(t,e,n){var r=n(75),i=Math.max,o=Math.min;t.exports=function(t,e){return t=r(t),t<0?i(t+e,0):o(t,e)}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e,n){"use strict";var r=n(417);e.of=r.ArrayObservable.of},function(t,e,n){"use strict";function map(t,e){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return this.lift(new o(t,e))}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(29);e.map=map;var o=function(){function MapOperator(t,e){this.project=t,this.thisArg=e}return MapOperator.prototype.call=function(t,e){return e._subscribe(new a(t,this.project,this.thisArg))},MapOperator}(),a=function(t){function MapSubscriber(e,n,r){t.call(this,e),this.project=n,this.count=0,this.thisArg=r||this}return r(MapSubscriber,t),MapSubscriber.prototype._next=function(t){var e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)},MapSubscriber}(i.Subscriber)},function(t,e,n){"use strict";function _flattenArray(t,e){if(n.i(r.b)(t))for(var i=0;i<t.length;i++){var o=t[i];n.i(r.f)(o)?_flattenArray(o,e):e.push(o)}return e}function isListLikeIterable(t){return!!n.i(r.g)(t)&&(n.i(r.f)(t)||!(t instanceof i)&&n.i(r.h)()in t)}var r=n(12);n.d(e,"a",function(){return u}),n.d(e,"b",function(){return p}),e.c=isListLikeIterable;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=r.e.Map,o=r.e.Set,a=function(){try{if(1===new i([[1,2]]).size)return function(t){return new i(t)}}catch(t){}return function(t){for(var e=new i,n=0;n<t.length;n++){var r=t[n];e.set(r[0],r[1])}return e}}(),s=function(){try{if(new i(new i))return function(t){return new i(t)}}catch(t){}return function(t){var e=new i;return t.forEach(function(t,n){e.set(n,t)}),e}}(),c=function(){return(new i).keys().next?function(t){for(var e,n=t.keys();!(e=n.next()).done;)t.set(e.value,null)}:function(t){t.forEach(function(e,n){t.set(n,null)})}}(),l=function(){try{if((new i).values().next)return function(t,e){return e?Array.from(t.values()):Array.from(t.keys())}}catch(t){}return function(t,e){var n=p.createFixedSize(t.size),r=0;return t.forEach(function(t,i){n[r]=e?t:i,r++}),n}}(),u=(function(){function MapWrapper(){}return MapWrapper.clone=function(t){return s(t)},MapWrapper.createFromStringMap=function(t){var e=new i;for(var n in t)e.set(n,t[n]);return e},MapWrapper.toStringMap=function(t){var e={};return t.forEach(function(t,n){return e[n]=t}),e},MapWrapper.createFromPairs=function(t){return a(t)},MapWrapper.clearValues=function(t){c(t)},MapWrapper.iterable=function(t){return t},MapWrapper.keys=function(t){return l(t,!1)},MapWrapper.values=function(t){return l(t,!0)},MapWrapper}(),function(){function StringMapWrapper(){}return StringMapWrapper.create=function(){return{}},StringMapWrapper.contains=function(t,e){return t.hasOwnProperty(e)},StringMapWrapper.get=function(t,e){return t.hasOwnProperty(e)?t[e]:void 0},StringMapWrapper.set=function(t,e,n){t[e]=n},StringMapWrapper.keys=function(t){return Object.keys(t)},StringMapWrapper.values=function(t){return Object.keys(t).map(function(e){return t[e]})},StringMapWrapper.isEmpty=function(t){for(var e in t)return!1;return!0},StringMapWrapper.delete=function(t,e){delete t[e]},StringMapWrapper.forEach=function(t,e){for(var n=0,r=Object.keys(t);n<r.length;n++){var i=r[n];e(t[i],i)}},StringMapWrapper.merge=function(t,e){for(var n={},r=0,i=Object.keys(t);r<i.length;r++){var o=i[r];n[o]=t[o]}for(var a=0,s=Object.keys(e);a<s.length;a++){var o=s[a];n[o]=e[o]}return n},StringMapWrapper.equals=function(t,e){var n=Object.keys(t),r=Object.keys(e);if(n.length!=r.length)return!1;for(var i,o=0;o<n.length;o++)if(i=n[o],t[i]!==e[i])return!1;return!0},StringMapWrapper}()),p=function(){function ListWrapper(){}return ListWrapper.createFixedSize=function(t){return new Array(t)},ListWrapper.createGrowableSize=function(t){return new Array(t)},ListWrapper.clone=function(t){return t.slice(0)},ListWrapper.forEachWithIndex=function(t,e){for(var n=0;n<t.length;n++)e(t[n],n)},ListWrapper.first=function(t){return t?t[0]:null},ListWrapper.last=function(t){return t&&0!=t.length?t[t.length-1]:null},ListWrapper.indexOf=function(t,e,n){return void 0===n&&(n=0),t.indexOf(e,n)},ListWrapper.contains=function(t,e){return t.indexOf(e)!==-1},ListWrapper.reversed=function(t){var e=ListWrapper.clone(t);return e.reverse()},ListWrapper.concat=function(t,e){return t.concat(e)},ListWrapper.insert=function(t,e,n){t.splice(e,0,n)},ListWrapper.removeAt=function(t,e){var n=t[e];return t.splice(e,1),n},ListWrapper.removeAll=function(t,e){for(var n=0;n<e.length;++n){var r=t.indexOf(e[n]);t.splice(r,1)}},ListWrapper.remove=function(t,e){var n=t.indexOf(e);return n>-1&&(t.splice(n,1),!0)},ListWrapper.clear=function(t){t.length=0},ListWrapper.isEmpty=function(t){return 0==t.length},ListWrapper.fill=function(t,e,n,r){void 0===n&&(n=0),void 0===r&&(r=null),t.fill(e,n,null===r?t.length:r)},ListWrapper.equals=function(t,e){if(t.length!=e.length)return!1;for(var n=0;n<t.length;++n)if(t[n]!==e[n])return!1;return!0},ListWrapper.slice=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=null),t.slice(e,null===n?void 0:n)},ListWrapper.splice=function(t,e,n){return t.splice(e,n)},ListWrapper.sort=function(t,e){n.i(r.b)(e)?t.sort(e):t.sort()},ListWrapper.toString=function(t){return t.toString()},ListWrapper.toJSON=function(t){return JSON.stringify(t)},ListWrapper.maximum=function(t,e){if(0==t.length)return null;for(var i=null,o=-(1/0),a=0;a<t.length;a++){var s=t[a];if(!n.i(r.c)(s)){var c=e(s);c>o&&(i=s,o=c)}}return i},ListWrapper.flatten=function(t){var e=[];return _flattenArray(t,e),e},ListWrapper.addAll=function(t,e){for(var n=0;n<e.length;n++)t.push(e[n])},ListWrapper}(),d=function(){var t=new o([1,2,3]);return 3===t.size?function(t){return new o(t)}:function(t){var e=new o(t);if(e.size!==t.length)for(var n=0;n<t.length;n++)e.add(t[n]);return e}}();(function(){function SetWrapper(){}return SetWrapper.createFromList=function(t){return d(t)},SetWrapper.has=function(t,e){return t.has(e)},SetWrapper.delete=function(t,e){t.delete(e)},SetWrapper})()},function(t,e,n){"use strict";function getPluralCategory(t,e,n){var r="="+t;return e.indexOf(r)>-1?r:n.getPluralCategory(t)}function getPluralCase(t,e){"string"==typeof e&&(e=parseInt(e,10));var n=e,r=n.toString().replace(/^[^.]*\.?/,""),o=Math.floor(Math.abs(n)),a=r.length,s=parseInt(r,10),c=parseInt(n.toString().replace(/^[^.]*\.?|0+$/g,""),10)||0,l=t.split("_")[0].toLowerCase();switch(l){case"af":case"asa":case"az":case"bem":case"bez":case"bg":case"brx":case"ce":case"cgg":case"chr":case"ckb":case"ee":case"el":case"eo":case"es":case"eu":case"fo":case"fur":case"gsw":case"ha":case"haw":case"hu":case"jgo":case"jmc":case"ka":case"kk":case"kkj":case"kl":case"ks":case"ksb":case"ky":case"lb":case"lg":case"mas":case"mgo":case"ml":case"mn":case"nb":case"nd":case"ne":case"nn":case"nnh":case"nyn":case"om":case"or":case"os":case"ps":case"rm":case"rof":case"rwk":case"saq":case"seh":case"sn":case"so":case"sq":case"ta":case"te":case"teo":case"tk":case"tr":case"ug":case"uz":case"vo":case"vun":case"wae":case"xog":return 1===n?i.One:i.Other;case"agq":case"bas":case"cu":case"dav":case"dje":case"dua":case"dyo":case"ebu":case"ewo":case"guz":case"kam":case"khq":case"ki":case"kln":case"kok":case"ksf":case"lrc":case"lu":case"luo":case"luy":case"mer":case"mfe":case"mgh":case"mua":case"mzn":case"nmg":case"nus":case"qu":case"rn":case"rw":case"sbp":case"twq":case"vai":case"yav":case"yue":case"zgh":case"ak":case"ln":case"mg":case"pa":case"ti":return n===Math.floor(n)&&n>=0&&n<=1?i.One:i.Other;case"am":case"as":case"bn":case"fa":case"gu":case"hi":case"kn":case"mr":case"zu":return 0===o||1===n?i.One:i.Other;case"ar":return 0===n?i.Zero:1===n?i.One:2===n?i.Two:n%100===Math.floor(n%100)&&n%100>=3&&n%100<=10?i.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=99?i.Many:i.Other;case"ast":case"ca":case"de":case"en":case"et":case"fi":case"fy":case"gl":case"it":case"nl":case"sv":case"sw":case"ur":case"yi":return 1===o&&0===a?i.One:i.Other;case"be":return n%10===1&&n%100!==11?i.One:n%10===Math.floor(n%10)&&n%10>=2&&n%10<=4&&!(n%100>=12&&n%100<=14)?i.Few:n%10===0||n%10===Math.floor(n%10)&&n%10>=5&&n%10<=9||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=14?i.Many:i.Other;case"br":return n%10===1&&n%100!==11&&n%100!==71&&n%100!==91?i.One:n%10===2&&n%100!==12&&n%100!==72&&n%100!==92?i.Two:n%10===Math.floor(n%10)&&(n%10>=3&&n%10<=4||n%10===9)&&!(n%100>=10&&n%100<=19||n%100>=70&&n%100<=79||n%100>=90&&n%100<=99)?i.Few:0!==n&&n%1e6===0?i.Many:i.Other;case"bs":case"hr":case"sr":return 0===a&&o%10===1&&o%100!==11||s%10===1&&s%100!==11?i.One:0===a&&o%10===Math.floor(o%10)&&o%10>=2&&o%10<=4&&!(o%100>=12&&o%100<=14)||s%10===Math.floor(s%10)&&s%10>=2&&s%10<=4&&!(s%100>=12&&s%100<=14)?i.Few:i.Other;case"cs":case"sk":return 1===o&&0===a?i.One:o===Math.floor(o)&&o>=2&&o<=4&&0===a?i.Few:0!==a?i.Many:i.Other;case"cy":return 0===n?i.Zero:1===n?i.One:2===n?i.Two:3===n?i.Few:6===n?i.Many:i.Other;case"da":return 1===n||0!==c&&(0===o||1===o)?i.One:i.Other;case"dsb":case"hsb":return 0===a&&o%100===1||s%100===1?i.One:0===a&&o%100===2||s%100===2?i.Two:0===a&&o%100===Math.floor(o%100)&&o%100>=3&&o%100<=4||s%100===Math.floor(s%100)&&s%100>=3&&s%100<=4?i.Few:i.Other;case"ff":case"fr":case"hy":case"kab":return 0===o||1===o?i.One:i.Other;case"fil":return 0===a&&(1===o||2===o||3===o)||0===a&&o%10!==4&&o%10!==6&&o%10!==9||0!==a&&s%10!==4&&s%10!==6&&s%10!==9?i.One:i.Other;case"ga":return 1===n?i.One:2===n?i.Two:n===Math.floor(n)&&n>=3&&n<=6?i.Few:n===Math.floor(n)&&n>=7&&n<=10?i.Many:i.Other;case"gd":return 1===n||11===n?i.One:2===n||12===n?i.Two:n===Math.floor(n)&&(n>=3&&n<=10||n>=13&&n<=19)?i.Few:i.Other;case"gv":return 0===a&&o%10===1?i.One:0===a&&o%10===2?i.Two:0!==a||o%100!==0&&o%100!==20&&o%100!==40&&o%100!==60&&o%100!==80?0!==a?i.Many:i.Other:i.Few;case"he":return 1===o&&0===a?i.One:2===o&&0===a?i.Two:0!==a||n>=0&&n<=10||n%10!==0?i.Other:i.Many;case"is":return 0===c&&o%10===1&&o%100!==11||0!==c?i.One:i.Other;case"ksh":return 0===n?i.Zero:1===n?i.One:i.Other;case"kw":case"naq":case"se":case"smn":return 1===n?i.One:2===n?i.Two:i.Other;case"lag":return 0===n?i.Zero:0!==o&&1!==o||0===n?i.Other:i.One;case"lt":return n%10!==1||n%100>=11&&n%100<=19?n%10===Math.floor(n%10)&&n%10>=2&&n%10<=9&&!(n%100>=11&&n%100<=19)?i.Few:0!==s?i.Many:i.Other:i.One;case"lv":case"prg":return n%10===0||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19||2===a&&s%100===Math.floor(s%100)&&s%100>=11&&s%100<=19?i.Zero:n%10===1&&n%100!==11||2===a&&s%10===1&&s%100!==11||2!==a&&s%10===1?i.One:i.Other;case"mk":return 0===a&&o%10===1||s%10===1?i.One:i.Other;case"mt":return 1===n?i.One:0===n||n%100===Math.floor(n%100)&&n%100>=2&&n%100<=10?i.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19?i.Many:i.Other;case"pl":return 1===o&&0===a?i.One:0===a&&o%10===Math.floor(o%10)&&o%10>=2&&o%10<=4&&!(o%100>=12&&o%100<=14)?i.Few:0===a&&1!==o&&o%10===Math.floor(o%10)&&o%10>=0&&o%10<=1||0===a&&o%10===Math.floor(o%10)&&o%10>=5&&o%10<=9||0===a&&o%100===Math.floor(o%100)&&o%100>=12&&o%100<=14?i.Many:i.Other;case"pt":return n===Math.floor(n)&&n>=0&&n<=2&&2!==n?i.One:i.Other;case"ro":return 1===o&&0===a?i.One:0!==a||0===n||1!==n&&n%100===Math.floor(n%100)&&n%100>=1&&n%100<=19?i.Few:i.Other;case"ru":case"uk":return 0===a&&o%10===1&&o%100!==11?i.One:0===a&&o%10===Math.floor(o%10)&&o%10>=2&&o%10<=4&&!(o%100>=12&&o%100<=14)?i.Few:0===a&&o%10===0||0===a&&o%10===Math.floor(o%10)&&o%10>=5&&o%10<=9||0===a&&o%100===Math.floor(o%100)&&o%100>=11&&o%100<=14?i.Many:i.Other;case"shi":return 0===o||1===n?i.One:n===Math.floor(n)&&n>=2&&n<=10?i.Few:i.Other;case"si":return 0===n||1===n||0===o&&1===s?i.One:i.Other;case"sl":return 0===a&&o%100===1?i.One:0===a&&o%100===2?i.Two:0===a&&o%100===Math.floor(o%100)&&o%100>=3&&o%100<=4||0!==a?i.Few:i.Other;case"tzm":return n===Math.floor(n)&&n>=0&&n<=1||n===Math.floor(n)&&n>=11&&n<=99?i.One:i.Other;default:return i.Other}}var r=n(0);n.d(e,"b",function(){return a}),e.a=getPluralCategory,n.d(e,"c",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i,o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(){function NgLocalization(){}return NgLocalization}(),s=function(t){function NgLocaleLocalization(e){t.call(this),this._locale=e}return o(NgLocaleLocalization,t),NgLocaleLocalization.prototype.getPluralCategory=function(t){var e=getPluralCase(this._locale,t);switch(e){case i.Zero:return"zero";case i.One:return"one";case i.Two:return"two";case i.Few:return"few";case i.Many:return"many";default:return"other"}},NgLocaleLocalization.decorators=[{type:r.Injectable}],NgLocaleLocalization.ctorParameters=[{type:void 0,decorators:[{type:r.Inject,args:[r.LOCALE_ID]}]}],NgLocaleLocalization}(a);!function(t){t[t.Zero=0]="Zero",t[t.One=1]="One",t[t.Two=2]="Two",t[t.Few=3]="Few",t[t.Many=4]="Many",t[t.Other=5]="Other"}(i||(i={}))},function(t,e,n){"use strict";var r=n(0);n.d(e,"LocationStrategy",function(){return i}),n.d(e,"APP_BASE_HREF",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function LocationStrategy(){}return LocationStrategy}(),o=new r.OpaqueToken("appBaseHref")},function(t,e,n){"use strict";var r=n(450);n.d(e,"a",function(){return r.a}),n.d(e,"b",function(){return r.b})},function(t,e,n){"use strict";function newCharacterToken(t,e){return new l(t,a.Character,e,o.g.fromCharCode(e))}function newIdentifierToken(t,e){return new l(t,a.Identifier,0,e)}function newKeywordToken(t,e){return new l(t,a.Keyword,0,e)}function newOperatorToken(t,e){return new l(t,a.Operator,0,e)}function newStringToken(t,e){return new l(t,a.String,0,e)}function newNumberToken(t,e){return new l(t,a.Number,e,"")}function newErrorToken(t,e){return new l(t,a.Error,0,e)}function isIdentifierStart(t){return i.H<=t&&t<=i.I||i.J<=t&&t<=i.K||t==i.L||t==i.M}function isIdentifier(t){if(0==t.length)return!1;var e=new p(t);if(!isIdentifierStart(e.peek))return!1;for(e.advance();e.peek!==i.a;){if(!isIdentifierPart(e.peek))return!1;e.advance()}return!0}function isIdentifierPart(t){return i.N(t)||i.c(t)||t==i.L||t==i.M}function isExponentStart(t){return t==i.O||t==i.P}function isExponentSign(t){return t==i.r||t==i.q}function isQuote(t){return t===i.n||t===i.o||t===i.Q}function unescape(t){switch(t){case i.R:return i.S;case i.T:return i.U;case i.V:return i.W;case i.X:return i.Y;case i.Z:return i._0;default:return t}}var r=n(0),i=n(147),o=n(3);n.d(e,"e",function(){return a}),n.d(e,"c",function(){return c}),n.d(e,"d",function(){return u}),e.a=isIdentifier,e.b=isQuote;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a;!function(t){t[t.Character=0]="Character",t[t.Identifier=1]="Identifier",t[t.Keyword=2]="Keyword",t[t.String=3]="String",t[t.Operator=4]="Operator",t[t.Number=5]="Number",t[t.Error=6]="Error"}(a||(a={}));var s=["var","let","null","undefined","true","false","if","else","this"],c=function(){function Lexer(){}return Lexer.prototype.tokenize=function(t){for(var e=new p(t),n=[],r=e.scanToken();null!=r;)n.push(r),r=e.scanToken();return n},Lexer.decorators=[{type:r.Injectable}],Lexer.ctorParameters=[],Lexer}(),l=function(){function Token(t,e,n,r){this.index=t,this.type=e,this.numValue=n,this.strValue=r}return Token.prototype.isCharacter=function(t){return this.type==a.Character&&this.numValue==t},Token.prototype.isNumber=function(){return this.type==a.Number},Token.prototype.isString=function(){return this.type==a.String},Token.prototype.isOperator=function(t){return this.type==a.Operator&&this.strValue==t},Token.prototype.isIdentifier=function(){return this.type==a.Identifier},Token.prototype.isKeyword=function(){return this.type==a.Keyword},Token.prototype.isKeywordLet=function(){return this.type==a.Keyword&&"let"==this.strValue},Token.prototype.isKeywordNull=function(){return this.type==a.Keyword&&"null"==this.strValue},Token.prototype.isKeywordUndefined=function(){return this.type==a.Keyword&&"undefined"==this.strValue},Token.prototype.isKeywordTrue=function(){return this.type==a.Keyword&&"true"==this.strValue},Token.prototype.isKeywordFalse=function(){return this.type==a.Keyword&&"false"==this.strValue},Token.prototype.isKeywordThis=function(){return this.type==a.Keyword&&"this"==this.strValue},Token.prototype.isError=function(){return this.type==a.Error},Token.prototype.toNumber=function(){return this.type==a.Number?this.numValue:-1},Token.prototype.toString=function(){switch(this.type){case a.Character:case a.Identifier:case a.Keyword:case a.Operator:case a.String:case a.Error:return this.strValue;case a.Number:return this.numValue.toString();default:return null}},Token}(),u=new l((-1),a.Character,0,""),p=function(){function _Scanner(t){this.input=t,this.peek=0,this.index=-1,this.length=t.length,this.advance()}return _Scanner.prototype.advance=function(){this.peek=++this.index>=this.length?i.a:o.g.charCodeAt(this.input,this.index)},_Scanner.prototype.scanToken=function(){for(var t=this.input,e=this.length,n=this.peek,r=this.index;n<=i.b;){if(++r>=e){n=i.a;break}n=o.g.charCodeAt(t,r)}if(this.peek=n,this.index=r,r>=e)return null;if(isIdentifierStart(n))return this.scanIdentifier();if(i.c(n))return this.scanNumber(r);var a=r;switch(n){case i.d:return this.advance(),i.c(this.peek)?this.scanNumber(a):newCharacterToken(a,i.d);case i.e:case i.f:case i.g:case i.h:case i.i:case i.j:case i.k:case i.l:case i.m:return this.scanCharacter(a,n);case i.n:case i.o:return this.scanString();case i.p:case i.q:case i.r:case i.s:case i.t:case i.u:case i.v:return this.scanOperator(a,o.g.fromCharCode(n));case i.w:return this.scanComplexOperator(a,"?",i.d,".");case i.x:case i.y:return this.scanComplexOperator(a,o.g.fromCharCode(n),i.z,"=");case i.A:case i.z:return this.scanComplexOperator(a,o.g.fromCharCode(n),i.z,"=",i.z,"=");case i.B:return this.scanComplexOperator(a,"&",i.B,"&");case i.C:return this.scanComplexOperator(a,"|",i.C,"|");case i.D:for(;i.E(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error("Unexpected character ["+o.g.fromCharCode(n)+"]",0)},_Scanner.prototype.scanCharacter=function(t,e){return this.advance(),newCharacterToken(t,e)},_Scanner.prototype.scanOperator=function(t,e){return this.advance(),newOperatorToken(t,e)},_Scanner.prototype.scanComplexOperator=function(t,e,r,i,a,s){this.advance();var c=e;return this.peek==r&&(this.advance(),c+=i),n.i(o.a)(a)&&this.peek==a&&(this.advance(),c+=s),newOperatorToken(t,c)},_Scanner.prototype.scanIdentifier=function(){var t=this.index;for(this.advance();isIdentifierPart(this.peek);)this.advance();var e=this.input.substring(t,this.index);return s.indexOf(e)>-1?newKeywordToken(t,e):newIdentifierToken(t,e)},_Scanner.prototype.scanNumber=function(t){var e=this.index===t;for(this.advance();;){if(i.c(this.peek));else if(this.peek==i.d)e=!1;else{if(!isExponentStart(this.peek))break;if(this.advance(),isExponentSign(this.peek)&&this.advance(),!i.c(this.peek))return this.error("Invalid exponent",-1);e=!1}this.advance()}var n=this.input.substring(t,this.index),r=e?o.n.parseIntAutoRadix(n):o.n.parseFloat(n);return newNumberToken(t,r)},_Scanner.prototype.scanString=function(){var t=this.index,e=this.peek;this.advance();for(var n,r=this.index,a=this.input;this.peek!=e;)if(this.peek==i.F){null==n&&(n=new o.o),n.add(a.substring(r,this.index)),this.advance();var s;if(this.peek==i.G){var c=a.substring(this.index+1,this.index+5);try{s=o.n.parseInt(c,16)}catch(l){return this.error("Invalid unicode escape [\\u"+c+"]",0)}for(var u=0;u<5;u++)this.advance()}else s=unescape(this.peek),this.advance();n.add(o.g.fromCharCode(s)),r=this.index}else{if(this.peek==i.a)return this.error("Unterminated quote",0);this.advance()}var p=a.substring(r,this.index);this.advance();var d=p;return null!=n&&(n.add(p),d=n.toString()),newStringToken(t,d)},_Scanner.prototype.error=function(t,e){var n=this.index+e;return newErrorToken(n,"Lexer Error: "+t+" at column "+n+" in expression ["+this.input+"]")},_Scanner}()},function(t,e,n){"use strict";function _createInterpolateRegExp(t){var e=n.i(o.p)(t.start)+"([\\s\\S]*?)"+n.i(o.p)(t.end);return new RegExp(e,"g")}var r=n(0),i=n(147),o=n(3),a=n(40),s=n(150),c=n(102);n.d(e,"a",function(){return p});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var l=function(){function SplitInterpolation(t,e){this.strings=t,this.expressions=e}return SplitInterpolation}(),u=function(){function TemplateBindingParseResult(t,e,n){this.templateBindings=t,this.warnings=e,this.errors=n}return TemplateBindingParseResult}(),p=function(){function Parser(t){this._lexer=t,this.errors=[]}return Parser.prototype.parseAction=function(t,e,n){void 0===n&&(n=a.a),this._checkNoInterpolation(t,e,n);var r=this._lexer.tokenize(this._stripComments(t)),i=new d(t,e,r,(!0),this.errors).parseChain();return new s.a(i,t,e,this.errors)},Parser.prototype.parseBinding=function(t,e,n){void 0===n&&(n=a.a);var r=this._parseBindingAst(t,e,n);return new s.a(r,t,e,this.errors)},Parser.prototype.parseSimpleBinding=function(t,e,n){void 0===n&&(n=a.a);var r=this._parseBindingAst(t,e,n);return f.check(r)||this._reportError("Host binding expression can only contain field access and constants",t,e),new s.a(r,t,e,this.errors)},Parser.prototype._reportError=function(t,e,n,r){this.errors.push(new s.b(t,e,n,r))},Parser.prototype._parseBindingAst=function(t,e,r){var i=this._parseQuote(t,e);if(n.i(o.a)(i))return i;this._checkNoInterpolation(t,e,r);var a=this._lexer.tokenize(this._stripComments(t));return new d(t,e,a,(!1),this.errors).parseChain()},Parser.prototype._parseQuote=function(t,e){if(n.i(o.c)(t))return null;var r=t.indexOf(":");if(r==-1)return null;var i=t.substring(0,r).trim();if(!n.i(c.a)(i))return null;var a=t.substring(r+1);return new s.c(new s.d(0,t.length),i,a,e)},Parser.prototype.parseTemplateBindings=function(t,e){var n=this._lexer.tokenize(t);return new d(t,e,n,(!1),this.errors).parseTemplateBindings()},Parser.prototype.parseInterpolation=function(t,e,r){void 0===r&&(r=a.a);var i=this.splitInterpolation(t,e,r);if(null==i)return null;for(var c=[],l=0;l<i.expressions.length;++l){var u=this._lexer.tokenize(this._stripComments(i.expressions[l])),p=new d(t,e,u,(!1),this.errors).parseChain();c.push(p)}return new s.a(new s.e(new s.d(0,n.i(o.c)(t)?0:t.length),i.strings,c),t,e,this.errors)},Parser.prototype.splitInterpolation=function(t,e,n){void 0===n&&(n=a.a);var r=_createInterpolateRegExp(n),i=o.g.split(t,r);if(i.length<=1)return null;for(var s=[],c=[],u=0;u<i.length;u++){var p=i[u];u%2===0?s.push(p):p.trim().length>0?c.push(p):this._reportError("Blank expressions are not allowed in interpolated strings",t,"at column "+this._findInterpolationErrorColumn(i,u,n)+" in",e)}return new l(s,c)},Parser.prototype.wrapLiteralPrimitive=function(t,e){return new s.a(new s.f(new s.d(0,n.i(o.c)(t)?0:t.length),t),t,e,this.errors)},Parser.prototype._stripComments=function(t){var e=this._commentStart(t);return n.i(o.a)(e)?t.substring(0,e).trim():t},Parser.prototype._commentStart=function(t){for(var e=null,r=0;r<t.length-1;r++){var a=o.g.charCodeAt(t,r),s=o.g.charCodeAt(t,r+1);if(a===i.t&&s==i.t&&n.i(o.c)(e))return r;e===a?e=null:n.i(o.c)(e)&&n.i(c.b)(a)&&(e=a)}return null},Parser.prototype._checkNoInterpolation=function(t,e,n){var r=_createInterpolateRegExp(n),i=o.g.split(t,r);i.length>1&&this._reportError("Got interpolation ("+n.start+n.end+") where expression was expected",t,"at column "+this._findInterpolationErrorColumn(i,1,n)+" in",e)},Parser.prototype._findInterpolationErrorColumn=function(t,e,n){for(var r="",i=0;i<e;i++)r+=i%2===0?t[i]:""+n.start+t[i]+n.end;return r.length},Parser.decorators=[{type:r.Injectable}],Parser.ctorParameters=[{type:c.c}],Parser}(),d=function(){function _ParseAST(t,e,n,r,i){this.input=t,this.location=e,this.tokens=n,this.parseAction=r,this.errors=i,this.rparensExpected=0,this.rbracketsExpected=0,this.rbracesExpected=0,this.index=0}return _ParseAST.prototype.peek=function(t){var e=this.index+t;return e<this.tokens.length?this.tokens[e]:c.d},Object.defineProperty(_ParseAST.prototype,"next",{get:function(){return this.peek(0)},enumerable:!0,configurable:!0}),Object.defineProperty(_ParseAST.prototype,"inputIndex",{get:function(){return this.index<this.tokens.length?this.next.index:this.input.length},enumerable:!0,configurable:!0}),_ParseAST.prototype.span=function(t){return new s.d(t,this.inputIndex)},_ParseAST.prototype.advance=function(){this.index++},_ParseAST.prototype.optionalCharacter=function(t){return!!this.next.isCharacter(t)&&(this.advance(),!0)},_ParseAST.prototype.peekKeywordLet=function(){return this.next.isKeywordLet()},_ParseAST.prototype.expectCharacter=function(t){this.optionalCharacter(t)||this.error("Missing expected "+o.g.fromCharCode(t))},_ParseAST.prototype.optionalOperator=function(t){return!!this.next.isOperator(t)&&(this.advance(),!0)},_ParseAST.prototype.expectOperator=function(t){this.optionalOperator(t)||this.error("Missing expected operator "+t)},_ParseAST.prototype.expectIdentifierOrKeyword=function(){var t=this.next;return t.isIdentifier()||t.isKeyword()?(this.advance(),t.toString()):(this.error("Unexpected token "+t+", expected identifier or keyword"),"")},_ParseAST.prototype.expectIdentifierOrKeywordOrString=function(){var t=this.next;return t.isIdentifier()||t.isKeyword()||t.isString()?(this.advance(),t.toString()):(this.error("Unexpected token "+t+", expected identifier, keyword, or string"),"")},_ParseAST.prototype.parseChain=function(){for(var t=[],e=this.inputIndex;this.index<this.tokens.length;){var n=this.parsePipe();if(t.push(n),this.optionalCharacter(i.m))for(this.parseAction||this.error("Binding expression cannot contain chained expression");this.optionalCharacter(i.m););else this.index<this.tokens.length&&this.error("Unexpected token '"+this.next+"'")}return 0==t.length?new s.g(this.span(e)):1==t.length?t[0]:new s.h(this.span(e),t)},_ParseAST.prototype.parsePipe=function(){var t=this.parseExpression();if(this.optionalOperator("|")){this.parseAction&&this.error("Cannot have a pipe in an action expression");do{for(var e=this.expectIdentifierOrKeyword(),n=[];this.optionalCharacter(i.l);)n.push(this.parseExpression());t=new s.i(this.span(t.span.start),t,e,n)}while(this.optionalOperator("|"))}return t},_ParseAST.prototype.parseExpression=function(){return this.parseConditional()},_ParseAST.prototype.parseConditional=function(){var t=this.inputIndex,e=this.parseLogicalOr();if(this.optionalOperator("?")){var n=this.parsePipe(),r=void 0;if(this.optionalCharacter(i.l))r=this.parsePipe();else{var o=this.inputIndex,a=this.input.substring(t,o);this.error("Conditional expression "+a+" requires all 3 expressions"),r=new s.g(this.span(t))}return new s.j(this.span(t),e,n,r)}return e},_ParseAST.prototype.parseLogicalOr=function(){for(var t=this.parseLogicalAnd();this.optionalOperator("||");){var e=this.parseLogicalAnd();t=new s.k(this.span(t.span.start),"||",t,e)}return t},_ParseAST.prototype.parseLogicalAnd=function(){for(var t=this.parseEquality();this.optionalOperator("&&");){var e=this.parseEquality();t=new s.k(this.span(t.span.start),"&&",t,e)}return t},_ParseAST.prototype.parseEquality=function(){for(var t=this.parseRelational();this.next.type==c.e.Operator;){var e=this.next.strValue;switch(e){case"==":case"===":case"!=":case"!==":this.advance();var n=this.parseRelational();t=new s.k(this.span(t.span.start),e,t,n);continue}break}return t},_ParseAST.prototype.parseRelational=function(){for(var t=this.parseAdditive();this.next.type==c.e.Operator;){var e=this.next.strValue;switch(e){case"<":case">":case"<=":case">=":this.advance();var n=this.parseAdditive();t=new s.k(this.span(t.span.start),e,t,n);continue}break}return t},_ParseAST.prototype.parseAdditive=function(){for(var t=this.parseMultiplicative();this.next.type==c.e.Operator;){var e=this.next.strValue;switch(e){case"+":case"-":this.advance();var n=this.parseMultiplicative();t=new s.k(this.span(t.span.start),e,t,n);continue}break}return t},_ParseAST.prototype.parseMultiplicative=function(){for(var t=this.parsePrefix();this.next.type==c.e.Operator;){var e=this.next.strValue;switch(e){case"*":case"%":case"/":this.advance();var n=this.parsePrefix();t=new s.k(this.span(t.span.start),e,t,n);continue}break}return t},_ParseAST.prototype.parsePrefix=function(){if(this.next.type==c.e.Operator){var t=this.inputIndex,e=this.next.strValue,n=void 0;switch(e){case"+":return this.advance(),this.parsePrefix();case"-":return this.advance(),n=this.parsePrefix(),new s.k(this.span(t),e,new s.f(new s.d(t,t),0),n);case"!":return this.advance(),n=this.parsePrefix(),new s.l(this.span(t),n)}}return this.parseCallChain()},_ParseAST.prototype.parseCallChain=function(){for(var t=this.parsePrimary();;)if(this.optionalCharacter(i.d))t=this.parseAccessMemberOrMethodCall(t,!1);else if(this.optionalOperator("?."))t=this.parseAccessMemberOrMethodCall(t,!0);else if(this.optionalCharacter(i.i)){this.rbracketsExpected++;var e=this.parsePipe();if(this.rbracketsExpected--,this.expectCharacter(i.j),this.optionalOperator("=")){var n=this.parseConditional();t=new s.m(this.span(t.span.start),t,e,n)}else t=new s.n(this.span(t.span.start),t,e)}else{if(!this.optionalCharacter(i.e))return t;this.rparensExpected++;var r=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(i.f),t=new s.o(this.span(t.span.start),t,r)}},_ParseAST.prototype.parsePrimary=function(){var t=this.inputIndex;if(this.optionalCharacter(i.e)){this.rparensExpected++;var e=this.parsePipe();return this.rparensExpected--,this.expectCharacter(i.f),e}if(this.next.isKeywordNull())return this.advance(),new s.f(this.span(t),null);if(this.next.isKeywordUndefined())return this.advance(),new s.f(this.span(t),(void 0));if(this.next.isKeywordTrue())return this.advance(),new s.f(this.span(t),(!0));if(this.next.isKeywordFalse())return this.advance(),new s.f(this.span(t),(!1));if(this.next.isKeywordThis())return this.advance(),new s.p(this.span(t));if(this.optionalCharacter(i.i)){this.rbracketsExpected++;var n=this.parseExpressionList(i.j);return this.rbracketsExpected--,this.expectCharacter(i.j),new s.q(this.span(t),n)}if(this.next.isCharacter(i.g))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new s.p(this.span(t)),!1);if(this.next.isNumber()){var r=this.next.toNumber();return this.advance(),new s.f(this.span(t),r)}if(this.next.isString()){var o=this.next.toString();return this.advance(),new s.f(this.span(t),o)}return this.index>=this.tokens.length?(this.error("Unexpected end of expression: "+this.input),new s.g(this.span(t))):(this.error("Unexpected token "+this.next),new s.g(this.span(t)))},_ParseAST.prototype.parseExpressionList=function(t){var e=[];if(!this.next.isCharacter(t))do e.push(this.parsePipe());while(this.optionalCharacter(i.k));return e},_ParseAST.prototype.parseLiteralMap=function(){var t=[],e=[],n=this.inputIndex;if(this.expectCharacter(i.g),!this.optionalCharacter(i.h)){this.rbracesExpected++;do{var r=this.expectIdentifierOrKeywordOrString();t.push(r),this.expectCharacter(i.l),e.push(this.parsePipe())}while(this.optionalCharacter(i.k));this.rbracesExpected--,this.expectCharacter(i.h)}return new s.r(this.span(n),t,e)},_ParseAST.prototype.parseAccessMemberOrMethodCall=function(t,e){void 0===e&&(e=!1);var n=t.span.start,r=this.expectIdentifierOrKeyword();if(this.optionalCharacter(i.e)){this.rparensExpected++;var o=this.parseCallArguments();this.expectCharacter(i.f),this.rparensExpected--;var a=this.span(n);return e?new s.s(a,t,r,o):new s.t(a,t,r,o)}if(e)return this.optionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),new s.g(this.span(n))):new s.u(this.span(n),t,r);if(this.optionalOperator("=")){if(!this.parseAction)return this.error("Bindings cannot contain assignments"),new s.g(this.span(n));var c=this.parseConditional();return new s.v(this.span(n),t,r,c)}return new s.w(this.span(n),t,r)},_ParseAST.prototype.parseCallArguments=function(){if(this.next.isCharacter(i.f))return[];var t=[];do t.push(this.parsePipe());while(this.optionalCharacter(i.k));return t},_ParseAST.prototype.expectTemplateBindingKey=function(){var t="",e=!1;do t+=this.expectIdentifierOrKeywordOrString(),e=this.optionalOperator("-"),e&&(t+="-");while(e);return t.toString()},_ParseAST.prototype.parseTemplateBindings=function(){for(var t=[],e=null,n=[];this.index<this.tokens.length;){var r=this.peekKeywordLet();r&&this.advance();var o=this.expectTemplateBindingKey();r||(null==e?e=o:o=e+o[0].toUpperCase()+o.substring(1)),this.optionalCharacter(i.l);var a=null,l=null;if(r)a=this.optionalOperator("=")?this.expectTemplateBindingKey():"$implicit";else if(this.next!==c.d&&!this.peekKeywordLet()){var p=this.inputIndex,d=this.parsePipe(),f=this.input.substring(p,this.inputIndex);l=new s.a(d,f,this.location,this.errors)}t.push(new s.x(o,r,a,l)),this.optionalCharacter(i.m)||this.optionalCharacter(i.k)}return new u(t,n,this.errors)},_ParseAST.prototype.error=function(t,e){void 0===e&&(e=null),this.errors.push(new s.b(t,this.input,this.locationText(e),this.location)),this.skip()},_ParseAST.prototype.locationText=function(t){return void 0===t&&(t=null),n.i(o.c)(t)&&(t=this.index),t<this.tokens.length?"at column "+(this.tokens[t].index+1)+" in":"at the end of the expression"},_ParseAST.prototype.skip=function(){for(var t=this.next;this.index<this.tokens.length&&!t.isCharacter(i.m)&&(this.rparensExpected<=0||!t.isCharacter(i.f))&&(this.rbracesExpected<=0||!t.isCharacter(i.h))&&(this.rbracketsExpected<=0||!t.isCharacter(i.j));)this.next.isError()&&this.errors.push(new s.b(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),t=this.next},_ParseAST}(),f=function(){function SimpleExpressionChecker(){this.simple=!0}return SimpleExpressionChecker.check=function(t){var e=new SimpleExpressionChecker;return t.visit(e),e.simple},SimpleExpressionChecker.prototype.visitImplicitReceiver=function(t,e){},SimpleExpressionChecker.prototype.visitInterpolation=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitLiteralPrimitive=function(t,e){},SimpleExpressionChecker.prototype.visitPropertyRead=function(t,e){},SimpleExpressionChecker.prototype.visitPropertyWrite=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitSafePropertyRead=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitMethodCall=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitSafeMethodCall=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitFunctionCall=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitLiteralArray=function(t,e){this.visitAll(t.expressions)},SimpleExpressionChecker.prototype.visitLiteralMap=function(t,e){this.visitAll(t.values)},SimpleExpressionChecker.prototype.visitBinary=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitPrefixNot=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitConditional=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitPipe=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitKeyedRead=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitKeyedWrite=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitAll=function(t){var e=this;return t.map(function(t){return t.visit(e)})},SimpleExpressionChecker.prototype.visitChain=function(t,e){this.simple=!1},SimpleExpressionChecker.prototype.visitQuote=function(t,e){this.simple=!1},SimpleExpressionChecker}()},function(t,e,n){"use strict";var r=n(0),i=n(278),o=n(40),a=n(66);n.d(e,"b",function(){return c}),n.o(a,"a")&&n.d(e,"a",function(){return a.a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},c=function(t){function HtmlParser(){t.call(this,i.a)}return s(HtmlParser,t),HtmlParser.prototype.parse=function(e,n,r,i){return void 0===r&&(r=!1),void 0===i&&(i=o.a),t.prototype.parse.call(this,e,n,r,i)},HtmlParser.decorators=[{type:r.Injectable}],HtmlParser.ctorParameters=[],HtmlParser}(a.b)},function(t,e,n){"use strict";function splitClasses(t){return t.trim().split(/\s+/g)}function createElementCssSelector(t,e){var r=new _.a,i=n.i(m.e)(t)[1];r.setElement(i);for(var o=0;o<e.length;o++){var a=e[o][0],s=n.i(m.e)(a)[1],c=e[o][1];if(r.addAttribute(s,c),a.toLowerCase()==B){var l=splitClasses(c);l.forEach(function(t){return r.addClassName(t)})}}return r}var r=n(0),i=n(20),o=n(150),a=n(103),s=n(6),c=n(3),l=n(270),u=n(16),p=n(55),d=n(104),f=n(452),h=n(40),m=n(67),v=n(41),g=n(17),b=n(282),y=n(79),_=n(159),w=n(285),x=n(23),C=n(42),S=n(286);n.d(e,"a",function(){return $});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var k=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},E=/^(?:(?:(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.+))|\[\(([^\)]+)\)\]|\[([^\]]+)\]|\(([^\)]+)\))$/,P=1,A=2,T=3,O=4,M=5,D=6,R=7,I=8,N=9,V=10,L="animate-",j="template",F="template",W="*",B="class",U=".",z="attr",H="class",q="style",G=_.a.parse("*")[0],Y=new r.OpaqueToken("TemplateTransforms"),K=function(t){function TemplateParseError(e,n,r){t.call(this,n,e,r)}return k(TemplateParseError,t),TemplateParseError}(v.a),Z=function(){function TemplateParseResult(t,e){this.templateAst=t,this.errors=e}return TemplateParseResult}(),$=function(){function TemplateParser(t,e,n,r,i){this._exprParser=t,this._schemaRegistry=e,this._htmlParser=n,this._console=r,this.transforms=i}return TemplateParser.prototype.parse=function(t,e,n,r,i,o){var a=this.tryParse(t,e,n,r,i,o),s=a.errors.filter(function(t){return t.level===v.e.WARNING}),c=a.errors.filter(function(t){return t.level===v.e.FATAL});if(s.length>0&&this._console.warn("Template parse warnings:\n"+s.join("\n")),c.length>0){var l=c.join("\n");throw new Error("Template parse errors:\n"+l)}return a.templateAst},TemplateParser.prototype.tryParse=function(t,e,r,o,a,s){var l;t.template&&(l=h.b.fromArray(t.template.interpolation));var u,m=this._htmlParser.parse(e,s,!0,l),v=m.errors;if(0==v.length){var g=n.i(f.a)(m.rootNodes);v.push.apply(v,g.errors),m=new d.a(g.nodes,v)}if(m.rootNodes.length>0){var y=n.i(i.f)(r),_=n.i(i.f)(o),w=new b.a(t,m.rootNodes[0].sourceSpan),x=new J(w,y,_,a,this._exprParser,this._schemaRegistry);u=p.g(x,m.rootNodes,nt),v.push.apply(v,x.errors.concat(w.errors))}else u=[];return this._assertNoReferenceDuplicationOnTemplate(u,v),v.length>0?new Z(u,v):(n.i(c.a)(this.transforms)&&this.transforms.forEach(function(t){u=n.i(C.c)(t,u)}),new Z(u,v))},TemplateParser.prototype._assertNoReferenceDuplicationOnTemplate=function(t,e){var n=[];t.filter(function(t){return!!t.references}).forEach(function(t){return t.references.forEach(function(t){var r=t.name;if(n.indexOf(r)<0)n.push(r);else{var i=new K('Reference "#'+r+'" is defined several times',t.sourceSpan,v.e.FATAL);e.push(i)}})})},TemplateParser.decorators=[{type:r.Injectable}],TemplateParser.ctorParameters=[{type:a.a},{type:y.a},{type:l.a},{type:g.Q},{type:Array,decorators:[{type:r.Optional},{type:r.Inject,args:[Y]}]}],TemplateParser}(),J=function(){function TemplateParseVisitor(t,e,n,r,i,o){var a=this;this.providerViewContext=t,this._schemas=r,this._exprParser=i,this._schemaRegistry=o,this.selectorMatcher=new _.b,this.errors=[],this.directivesIndex=new Map,this.ngContentCount=0,this.pipesByName=new Map;var s=t.component.template;s&&s.interpolation&&(this._interpolationConfig={start:s.interpolation[0],end:s.interpolation[1]}),e.forEach(function(t,e){var n=_.a.parse(t.selector);a.selectorMatcher.addSelectables(n,t),a.directivesIndex.set(t,e)}),n.forEach(function(t){return a.pipesByName.set(t.name,t)})}return TemplateParseVisitor.prototype._reportError=function(t,e,n){void 0===n&&(n=v.e.FATAL),this.errors.push(new K(t,e,n))},TemplateParseVisitor.prototype._reportParserErrors=function(t,e){for(var n=0,r=t;n<r.length;n++){var i=r[n];this._reportError(i.message,e)}},TemplateParseVisitor.prototype._parseInterpolation=function(t,e){var r=e.start.toString();try{var i=this._exprParser.parseInterpolation(t,r,this._interpolationConfig);if(i&&this._reportParserErrors(i.errors,e),this._checkPipes(i,e),n.i(c.a)(i)&&i.ast.expressions.length>g.R)throw new Error("Only support at most "+g.R+" interpolation values!");return i}catch(o){return this._reportError(""+o,e),this._exprParser.wrapLiteralPrimitive("ERROR",r)}},TemplateParseVisitor.prototype._parseAction=function(t,e){var n=e.start.toString();try{var r=this._exprParser.parseAction(t,n,this._interpolationConfig);return r&&this._reportParserErrors(r.errors,e),!r||r.ast instanceof o.g?(this._reportError("Empty expressions are not allowed",e),this._exprParser.wrapLiteralPrimitive("ERROR",n)):(this._checkPipes(r,e),r)}catch(i){return this._reportError(""+i,e),this._exprParser.wrapLiteralPrimitive("ERROR",n)}},TemplateParseVisitor.prototype._parseBinding=function(t,e){var n=e.start.toString();try{var r=this._exprParser.parseBinding(t,n,this._interpolationConfig);return r&&this._reportParserErrors(r.errors,e),this._checkPipes(r,e),r}catch(i){return this._reportError(""+i,e),this._exprParser.wrapLiteralPrimitive("ERROR",n)}},TemplateParseVisitor.prototype._parseTemplateBindings=function(t,e){var r=this,i=e.start.toString();try{var o=this._exprParser.parseTemplateBindings(t,i);return this._reportParserErrors(o.errors,e),o.templateBindings.forEach(function(t){n.i(c.a)(t.expression)&&r._checkPipes(t.expression,e)}),o.warnings.forEach(function(t){r._reportError(t,e,v.e.WARNING)}),o.templateBindings}catch(a){return this._reportError(""+a,e),[]}},TemplateParseVisitor.prototype._checkPipes=function(t,e){var r=this;if(n.i(c.a)(t)){var i=new it;t.visit(i),i.pipes.forEach(function(t){r.pipesByName.has(t)||r._reportError("The pipe '"+t+"' could not be found",e)})}},TemplateParseVisitor.prototype.visitExpansion=function(t,e){return null},TemplateParseVisitor.prototype.visitExpansionCase=function(t,e){return null},TemplateParseVisitor.prototype.visitText=function(t,e){var r=e.findNgContentIndex(G),i=this._parseInterpolation(t.value,t.sourceSpan);return n.i(c.a)(i)?new C.d(i,r,t.sourceSpan):new C.e(t.value,r,t.sourceSpan)},TemplateParseVisitor.prototype.visitAttribute=function(t,e){return new C.f(t.name,t.value,t.sourceSpan)},TemplateParseVisitor.prototype.visitComment=function(t,e){return null},TemplateParseVisitor.prototype.visitElement=function(t,e){var r=this,i=t.name,o=n.i(S.a)(t);if(o.type===S.b.SCRIPT||o.type===S.b.STYLE)return null;if(o.type===S.b.STYLESHEET&&n.i(w.a)(o.hrefAttr))return null;var a=[],s=[],l=[],u=[],d=[],f=[],h=[],v=[],g=[],y=!1,x=[],k=n.i(m.e)(i.toLowerCase())[1],E=k==j;t.attrs.forEach(function(t){var e=r._parseAttr(E,t,a,s,d,f,l,u),n=r._parseInlineTemplateBinding(t,v,h,g);n&&y&&r._reportError("Can't have multiple template bindings on one element. Use only one attribute named 'template' or prefixed with *",t.sourceSpan),e||n||(x.push(r.visitAttribute(t,null)),a.push([t.name,t.value])),n&&(y=!0)});var P=createElementCssSelector(i,a),A=this._parseDirectives(this.selectorMatcher,P),T=A.directives,O=A.matchElement,M=[],D=this._createDirectiveAsts(E,t.name,T,s,l,t.sourceSpan,M),R=this._createElementPropertyAsts(t.name,s,D).concat(d),I=e.isTemplateElement||y,N=new b.b(this.providerViewContext,e.providerContext,I,D,x,M,t.sourceSpan),V=p.g(o.nonBindable?rt:this,t.children,et.create(E,D,E?e.providerContext:N));N.afterElement();var L,F=n.i(c.a)(o.projectAs)?_.a.parse(o.projectAs)[0]:P,W=e.findNgContentIndex(F);if(o.type===S.b.NG_CONTENT)n.i(c.a)(t.children)&&t.children.length>0&&this._reportError("<ng-content> element cannot have content. <ng-content> must be immediately followed by </ng-content>",t.sourceSpan),L=new C.g((this.ngContentCount++),y?null:W,t.sourceSpan);else if(E)this._assertAllEventsPublishedByDirectives(D,f),this._assertNoComponentsNorElementBindingsOnTemplate(D,R,t.sourceSpan),L=new C.h(x,f,M,u,N.transformedDirectiveAsts,N.transformProviders,N.transformedHasViewContainer,V,y?null:W,t.sourceSpan);else{this._assertElementExists(O,t),this._assertOnlyOneComponent(D,t.sourceSpan);var B=y?null:e.findNgContentIndex(F);L=new C.i(i,x,R,f,M,N.transformedDirectiveAsts,N.transformProviders,N.transformedHasViewContainer,V,y?null:B,t.sourceSpan)}if(y){var U=createElementCssSelector(j,v),z=this._parseDirectives(this.selectorMatcher,U).directives,H=this._createDirectiveAsts(!0,t.name,z,h,[],t.sourceSpan,[]),q=this._createElementPropertyAsts(t.name,h,H);this._assertNoComponentsNorElementBindingsOnTemplate(H,q,t.sourceSpan);var G=new b.b(this.providerViewContext,e.providerContext,e.isTemplateElement,H,[],[],t.sourceSpan);G.afterElement(),L=new C.h([],[],[],g,G.transformedDirectiveAsts,G.transformProviders,G.transformedHasViewContainer,[L],W,t.sourceSpan)}return L},TemplateParseVisitor.prototype._parseInlineTemplateBinding=function(t,e,r,i){var o=null;if(this._normalizeAttributeName(t.name)==F)o=t.value;else if(t.name.startsWith(W)){var a=t.name.substring(W.length);o=0==t.value.length?a:a+" "+t.value}if(n.i(c.a)(o)){for(var s=this._parseTemplateBindings(o,t.sourceSpan),l=0;l<s.length;l++){var u=s[l];u.keyIsVar?i.push(new C.j(u.key,u.name,t.sourceSpan)):n.i(c.a)(u.expression)?this._parsePropertyAst(u.key,u.expression,t.sourceSpan,e,r):(e.push([u.key,""]),this._parseLiteralAttr(u.key,null,t.sourceSpan,r))}return!0}return!1},TemplateParseVisitor.prototype._parseAttr=function(t,e,r,i,o,a,s,l){var u=this._normalizeAttributeName(e.name),p=e.value,d=e.sourceSpan,f=u.match(E),h=!1;if(null!==f)if(h=!0,n.i(c.a)(f[P]))this._parsePropertyOrAnimation(f[R],p,d,r,i,o);else if(f[A])if(t){var m=f[R];this._parseVariable(m,p,d,l)}else this._reportError('"let-" is only supported on template elements.',d);else if(f[T]){var m=f[R];this._parseReference(m,p,d,s)}else f[O]?this._parseEvent(f[R],p,d,r,a):f[M]?(this._parsePropertyOrAnimation(f[R],p,d,r,i,o),this._parseAssignmentEvent(f[R],p,d,r,a)):f[D]?("@"==u[0]&&n.i(c.a)(p)&&p.length>0&&this._reportError('Assigning animation triggers via @prop="exp" attributes with an expression is invalid. Use property bindings (e.g. [@prop]="exp") or use an attribute without a value (e.g. @prop) instead.',d,v.e.FATAL),this._parseAnimation(f[R],p,d,r,o)):f[I]?(this._parsePropertyOrAnimation(f[I],p,d,r,i,o),this._parseAssignmentEvent(f[I],p,d,r,a)):f[N]?this._parsePropertyOrAnimation(f[N],p,d,r,i,o):f[V]&&this._parseEvent(f[V],p,d,r,a);else h=this._parsePropertyInterpolation(u,p,d,r,i);return h||this._parseLiteralAttr(u,p,d,i),h},TemplateParseVisitor.prototype._normalizeAttributeName=function(t){return/^data-/i.test(t)?t.substring(5):t},TemplateParseVisitor.prototype._parseVariable=function(t,e,n,r){t.indexOf("-")>-1&&this._reportError('"-" is not allowed in variable names',n),r.push(new C.j(t,e,n))},TemplateParseVisitor.prototype._parseReference=function(t,e,n,r){t.indexOf("-")>-1&&this._reportError('"-" is not allowed in reference names',n),r.push(new tt(t,e,n))},TemplateParseVisitor.prototype._parsePropertyOrAnimation=function(t,e,n,r,i,o){var a=L.length,s="@"==t[0],c=1;t.substring(0,a)==L&&(s=!0,c=a),s?this._parseAnimation(t.substr(c),e,n,r,o):this._parsePropertyAst(t,this._parseBinding(e,n),n,r,i)},TemplateParseVisitor.prototype._parseAnimation=function(t,e,i,o,a){n.i(c.a)(e)&&0!=e.length||(e="null");var s=this._parseBinding(e,i);o.push([t,s.source]),a.push(new C.k(t,C.l.Animation,r.SecurityContext.NONE,s,null,i))},TemplateParseVisitor.prototype._parsePropertyInterpolation=function(t,e,r,i,o){var a=this._parseInterpolation(e,r);return!!n.i(c.a)(a)&&(this._parsePropertyAst(t,a,r,i,o),!0)},TemplateParseVisitor.prototype._parsePropertyAst=function(t,e,n,r,i){r.push([t,e.source]),i.push(new X(t,e,(!1),n))},TemplateParseVisitor.prototype._parseAssignmentEvent=function(t,e,n,r,i){this._parseEvent(t+"Change",e+"=$event",n,r,i)},TemplateParseVisitor.prototype._parseEvent=function(t,e,r,i,o){var a=n.i(x.b)(t,[null,t]),s=a[0],c=a[1],l=this._parseAction(e,r);i.push([t,l.source]),o.push(new C.m(c,s,l,r))},TemplateParseVisitor.prototype._parseLiteralAttr=function(t,e,n,r){r.push(new X(t,this._exprParser.wrapLiteralPrimitive(e,""),(!0),n))},TemplateParseVisitor.prototype._parseDirectives=function(t,e){var n=this,r=new Array(this.directivesIndex.size),i=!1;return t.match(e,function(t,e){r[n.directivesIndex.get(e)]=e,i=i||t.hasElementSelector()}),{directives:r.filter(function(t){return!!t}),matchElement:i}},TemplateParseVisitor.prototype._createDirectiveAsts=function(t,e,r,i,o,a,s){var c=this,l=new Set,p=null,d=r.map(function(t){var r=new v.d(a.start,a.end,"Directive "+t.type.name);t.isComponent&&(p=t);var d=[],f=[],h=[];return c._createDirectiveHostPropertyAsts(e,t.hostProperties,r,d),c._createDirectiveHostEventAsts(t.hostListeners,r,f),c._createDirectivePropertyAsts(t.inputs,i,h),o.forEach(function(e){(0===e.value.length&&t.isComponent||t.exportAs==e.value)&&(s.push(new C.n(e.name,n.i(u.c)(t.type),e.sourceSpan)),l.add(e.name))}),new C.o(t,h,d,f,r)});return o.forEach(function(e){if(e.value.length>0)l.has(e.name)||c._reportError('There is no directive with "exportAs" set to "'+e.value+'"',e.sourceSpan);else if(!p){var r=null;t&&(r=n.i(u.a)(u.b.TemplateRef)),s.push(new C.n(e.name,r,e.sourceSpan))}}),d},TemplateParseVisitor.prototype._createDirectiveHostPropertyAsts=function(t,e,r,i){var o=this;e&&s.b.forEach(e,function(e,a){if(n.i(c.h)(e)){var s=o._parseBinding(e,r);i.push(o._createElementPropertyAst(t,a,s,r))}else o._reportError('Value of the host property binding "'+a+'" needs to be a string representing an expression but got "'+e+'" ('+typeof e+")",r)})},TemplateParseVisitor.prototype._createDirectiveHostEventAsts=function(t,e,r){var i=this;t&&s.b.forEach(t,function(t,o){n.i(c.h)(t)?i._parseEvent(o,t,e,[],r):i._reportError('Value of the host listener "'+o+'" needs to be a string representing an expression but got "'+t+'" ('+typeof t+")",e)})},TemplateParseVisitor.prototype._createDirectivePropertyAsts=function(t,e,r){if(t){var i=new Map;e.forEach(function(t){var e=i.get(t.name);(n.i(c.c)(e)||e.isLiteral)&&i.set(t.name,t)}),s.b.forEach(t,function(t,e){var n=i.get(t);n&&r.push(new C.p(e,n.name,n.expression,n.sourceSpan))})}},TemplateParseVisitor.prototype._createElementPropertyAsts=function(t,e,r){var i=this,o=[],a=new Map;return r.forEach(function(t){t.inputs.forEach(function(t){a.set(t.templateName,t)})}),e.forEach(function(e){!e.isLiteral&&n.i(c.c)(a.get(e.name))&&o.push(i._createElementPropertyAst(t,e.name,e.expression,e.sourceSpan))}),o},TemplateParseVisitor.prototype._createElementPropertyAst=function(t,e,i,o){var a,s,c,l=null,u=e.split(U);if(1===u.length){var p=u[0];if("@"==p[0])s=p.substr(1),a=C.l.Animation,c=r.SecurityContext.NONE;else if(s=this._schemaRegistry.getMappedPropName(p),c=this._schemaRegistry.securityContext(t,s),a=C.l.Property,this._assertNoEventBinding(s,o),!this._schemaRegistry.hasProperty(t,s,this._schemas)){var d="Can't bind to '"+s+"' since it isn't a known property of '"+t+"'.";t.indexOf("-")>-1&&(d+="\n1. If '"+t+"' is an Angular component and it has '"+s+"' input, then verify that it is part of this module."+("\n2. If '"+t+"' is a Web Component then add \"CUSTOM_ELEMENTS_SCHEMA\" to the '@NgModule.schema' of this component to suppress this message.\n")),this._reportError(d,o)}}else if(u[0]==z){s=u[1],this._assertNoEventBinding(s,o);var f=this._schemaRegistry.getMappedPropName(s);c=this._schemaRegistry.securityContext(t,f);var h=s.indexOf(":");if(h>-1){var v=s.substring(0,h),g=s.substring(h+1);s=n.i(m.d)(v,g)}a=C.l.Attribute}else u[0]==H?(s=u[1],a=C.l.Class,c=r.SecurityContext.NONE):u[0]==q?(l=u.length>2?u[2]:null,s=u[1],a=C.l.Style,c=r.SecurityContext.STYLE):(this._reportError("Invalid property name '"+e+"'",o),a=null,c=null);return new C.k(s,a,c,i,l,o)},TemplateParseVisitor.prototype._assertNoEventBinding=function(t,e){t.toLowerCase().startsWith("on")&&this._reportError("Binding to event attribute '"+t+"' is disallowed "+("for security reasons, please use ("+t.slice(2)+")=..."),e,v.e.FATAL)},TemplateParseVisitor.prototype._findComponentDirectiveNames=function(t){var e=[];return t.forEach(function(t){var n=t.directive.type.name;t.directive.isComponent&&e.push(n)}),e},TemplateParseVisitor.prototype._assertOnlyOneComponent=function(t,e){var n=this._findComponentDirectiveNames(t);n.length>1&&this._reportError("More than one component: "+n.join(","),e)},TemplateParseVisitor.prototype._assertElementExists=function(t,e){var n=e.name.replace(/^:xhtml:/,"");if(!t&&!this._schemaRegistry.hasElement(n,this._schemas)){var r="'"+n+"' is not a known element:\n"+("1. If '"+n+"' is an Angular component, then verify that it is part of this module.\n")+("2. If '"+n+"' is a Web Component then add \"CUSTOM_ELEMENTS_SCHEMA\" to the '@NgModule.schema' of this component to suppress this message.");this._reportError(r,e.sourceSpan)}},TemplateParseVisitor.prototype._assertNoComponentsNorElementBindingsOnTemplate=function(t,e,n){var r=this,i=this._findComponentDirectiveNames(t);i.length>0&&this._reportError("Components on an embedded template: "+i.join(","),n),e.forEach(function(t){r._reportError("Property binding "+t.name+' not used by any directive on an embedded template. Make sure that the property name is spelled correctly and all directives are listed in the "directives" section.',n)})},TemplateParseVisitor.prototype._assertAllEventsPublishedByDirectives=function(t,e){var r=this,i=new Set;t.forEach(function(t){s.b.forEach(t.directive.outputs,function(t){i.add(t)})}),e.forEach(function(t){!n.i(c.a)(t.target)&&i.has(t.name)||r._reportError("Event binding "+t.fullName+' not emitted by any directive on an embedded template. Make sure that the event name is spelled correctly and all directives are listed in the "directives" section.',t.sourceSpan)})},TemplateParseVisitor}(),Q=function(){function NonBindableVisitor(){}return NonBindableVisitor.prototype.visitElement=function(t,e){var r=n.i(S.a)(t);if(r.type===S.b.SCRIPT||r.type===S.b.STYLE||r.type===S.b.STYLESHEET)return null;var i=t.attrs.map(function(t){return[t.name,t.value]}),o=createElementCssSelector(t.name,i),a=e.findNgContentIndex(o),s=p.g(this,t.children,nt);return new C.i(t.name,p.g(this,t.attrs),[],[],[],[],[],(!1),s,a,t.sourceSpan)},NonBindableVisitor.prototype.visitComment=function(t,e){return null},NonBindableVisitor.prototype.visitAttribute=function(t,e){return new C.f(t.name,t.value,t.sourceSpan)},NonBindableVisitor.prototype.visitText=function(t,e){var n=e.findNgContentIndex(G);return new C.e(t.value,n,t.sourceSpan)},NonBindableVisitor.prototype.visitExpansion=function(t,e){return t},NonBindableVisitor.prototype.visitExpansionCase=function(t,e){return t},NonBindableVisitor}(),X=function(){function BoundElementOrDirectiveProperty(t,e,n,r){this.name=t,this.expression=e,this.isLiteral=n,this.sourceSpan=r}return BoundElementOrDirectiveProperty}(),tt=function(){function ElementOrDirectiveRef(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return ElementOrDirectiveRef}(),et=function(){function ElementContext(t,e,n,r){this.isTemplateElement=t,this._ngContentIndexMatcher=e,this._wildcardNgContentIndex=n,this.providerContext=r}return ElementContext.create=function(t,e,n){var r=new _.b,i=null,o=e.find(function(t){return t.directive.isComponent});if(o)for(var a=o.directive.template.ngContentSelectors,s=0;s<a.length;s++){var c=a[s];"*"===c?i=s:r.addSelectables(_.a.parse(a[s]),s)}return new ElementContext(t,r,i,n)},ElementContext.prototype.findNgContentIndex=function(t){var e=[];return this._ngContentIndexMatcher.match(t,function(t,n){e.push(n)}),e.sort(),n.i(c.a)(this._wildcardNgContentIndex)&&e.push(this._wildcardNgContentIndex),e.length>0?e[0]:null},ElementContext}(),nt=new et((!0),new _.b,null,null),rt=new Q,it=function(t){function PipeCollector(){t.apply(this,arguments),this.pipes=new Set}return k(PipeCollector,t),PipeCollector.prototype.visitPipe=function(t,e){return this.pipes.add(t.name),t.exp.visit(this),this.visitAll(t.args,e),null},PipeCollector}(o.y)},function(t,e,n){"use strict";var r=n(0),i=n(266),o=n(78),a=n(288),s=n(290),c=n(467),l=n(292);n.d(e,"c",function(){return p}),n.o(l,"d")&&n.d(e,"b",function(){return l.d}),n.o(l,"c")&&n.d(e,"a",function(){return l.c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var u=function(){function ViewCompileResult(t,e,n){this.statements=t,this.viewFactoryVar=e,this.dependencies=n}return ViewCompileResult}(),p=function(){function ViewCompiler(t){this._genConfig=t,this._animationCompiler=new i.a}return ViewCompiler.prototype.compileComponent=function(t,e,r,i){var o=[],p=this._animationCompiler.compileComponent(t,e),d=[],f=p.triggers;f.forEach(function(t){d.push(t.statesMapStatement),d.push(t.fnStatement)});var h=new s.a(t,this._genConfig,i,r,f,0,a.a.createNull(),[]);return n.i(l.a)(h,e,o),n.i(c.a)(h,e,p.outputs),n.i(l.b)(h,d),new u(d,h.viewFactory.name,o)},ViewCompiler.decorators=[{type:r.Injectable}],ViewCompiler.ctorParameters=[{type:o.a}],ViewCompiler}()},function(t,e,n){"use strict";function _appIdRandomProviderFactory(){return""+_randomChar()+_randomChar()+_randomChar()}function _randomChar(){return r.e.fromCharCode(97+r.l.floor(25*r.l.random()))}var r=n(2),i=n(35);n.d(e,"a",function(){return o}),n.d(e,"d",function(){return a}),n.d(e,"b",function(){return s}),n.d(e,"c",function(){return c}),n.d(e,"e",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=new i.OpaqueToken("AppId"),a={provide:o,useFactory:_appIdRandomProviderFactory,deps:[]},s=new i.OpaqueToken("Platform Initializer"),c=new i.OpaqueToken("appBootstrapListener"),l=new i.OpaqueToken("Application Packages Root URL")},function(t,e,n){"use strict";var r=n(165),i=n(297),o=n(298),a=n(299),s=n(109),c=n(476),l=n(110);n.d(e,"b",function(){return d}),n.d(e,"c",function(){return f}),n.o(s,"d")&&n.d(e,"i",function(){return s.d}),n.o(s,"e")&&n.d(e,"j",function(){return s.e}),n.o(s,"b")&&n.d(e,"a",function(){return s.b}),n.o(c,"a")&&n.d(e,"h",function(){return c.a}),n.o(l,"a")&&n.d(e,"g",function(){return l.a}),n.o(l,"b")&&n.d(e,"f",function(){return l.b}),n.o(r,"b")&&n.d(e,"k",function(){return r.b}),n.o(r,"c")&&n.d(e,"l",function(){return r.c}),n.o(i,"b")&&n.d(e,"m",function(){return i.b}),n.o(o,"a")&&n.d(e,"d",function(){return o.a}),n.o(a,"a")&&n.d(e,"e",function(){return a.a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var u=[new i.a],p=[new r.a],d=new o.a(p),f=new a.a(u)},function(t,e,n){"use strict";function devModeEqual(t,e){return n.i(r.g)(t)&&n.i(r.g)(e)?n.i(r.i)(t,e,devModeEqual):!(n.i(r.g)(t)||n.i(i.r)(t)||n.i(r.g)(e)||n.i(i.r)(e))||n.i(i.o)(t,e)}var r=n(10),i=n(2);n.d(e,"a",function(){return o}),e.b=devModeEqual,n.d(e,"e",function(){return a}),n.d(e,"c",function(){return s}),n.d(e,"d",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o={toString:function(){return"CD_INIT_VALUE"}},a=function(){function WrappedValue(t){this.wrapped=t}return WrappedValue.wrap=function(t){return new WrappedValue(t)},WrappedValue}(),s=function(){function ValueUnwrapper(){this.hasWrappedValue=!1}return ValueUnwrapper.prototype.unwrap=function(t){return t instanceof a?(this.hasWrappedValue=!0,t.wrapped):t},ValueUnwrapper.prototype.reset=function(){this.hasWrappedValue=!1},ValueUnwrapper}(),c=function(){function SimpleChange(t,e){this.previousValue=t,this.currentValue=e}return SimpleChange.prototype.isFirstChange=function(){return this.previousValue===o},SimpleChange}()},function(t,e,n){"use strict";function isDefaultChangeDetectionStrategy(t){return n.i(r.f)(t)||t===i.Default}var r=n(2);n.d(e,"a",function(){return i}),n.d(e,"b",function(){return o}),n.d(e,"d",function(){return a}),e.c=isDefaultChangeDetectionStrategy;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i;!function(t){t[t.OnPush=0]="OnPush",t[t.Default=1]="Default"}(i||(i={}));var o;!function(t){t[t.CheckOnce=0]="CheckOnce",t[t.Checked=1]="Checked",t[t.CheckAlways=2]="CheckAlways",t[t.Detached=3]="Detached",t[t.Errored=4]="Errored",t[t.Destroyed=5]="Destroyed"}(o||(o={}));var a=[i.OnPush,i.Default];[o.CheckOnce,o.Checked,o.CheckAlways,o.Detached,o.Errored,o.Destroyed]},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function forwardRef(t){return t.__forward_ref__=forwardRef,t.toString=function(){return n.i(r.a)(this())},t}function resolveForwardRef(t){return n.i(r.b)(t)&&t.hasOwnProperty("__forward_ref__")&&t.__forward_ref__===forwardRef?t():t}var r=n(2);e.b=forwardRef,e.a=resolveForwardRef},function(t,e,n){"use strict";var r=n(30),i=n(2);n.d(e,"a",function(){return a}),n.d(e,"b",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=new Object,a=o,s=function(){function _NullInjector(){}return _NullInjector.prototype.get=function(t,e){if(void 0===e&&(e=o),e===o)throw new Error("No provider for "+n.i(i.a)(t)+"!");return e},_NullInjector}(),c=function(){function Injector(){}return Injector.prototype.get=function(t,e){return n.i(r.a)()},Injector.THROW_IF_NOT_FOUND=o,Injector.NULL=new s,Injector}()},function(t,e,n){"use strict";var r=n(30),i=n(2);n.d(e,"a",function(){return c}),n.d(e,"b",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(t){function NoComponentFactoryError(e){t.call(this,"No component factory found for "+n.i(i.a)(e)),this.component=e}return o(NoComponentFactoryError,t),NoComponentFactoryError}(r.b),s=function(){function _NullComponentFactoryResolver(){}return _NullComponentFactoryResolver.prototype.resolveComponentFactory=function(t){throw new a(t)},_NullComponentFactoryResolver}(),c=function(){function ComponentFactoryResolver(){}return ComponentFactoryResolver.NULL=new s,ComponentFactoryResolver}(),l=function(){function CodegenComponentFactoryResolver(t,e){this._parent=e,this._factories=new Map;for(var n=0;n<t.length;n++){var r=t[n];this._factories.set(r.componentType,r)}}return CodegenComponentFactoryResolver.prototype.resolveComponentFactory=function(t){var e=this._factories.get(t);return e||(e=this._parent.resolveComponentFactory(t)),e},CodegenComponentFactoryResolver}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;!function(t){t[t.HOST=0]="HOST",t[t.COMPONENT=1]="COMPONENT",t[t.EMBEDDED=2]="EMBEDDED"}(r||(r={}))},function(t,e,n){"use strict";function flattenNestedViewRenderNodes(t){return _flattenNestedViewRenderNodes(t,[])}function _flattenNestedViewRenderNodes(t,e){for(var r=0;r<t.length;r++){var i=t[r];if(i instanceof p.a){var o=i;if(e.push(o.nativeElement),n.i(c.g)(o.nestedViews))for(var a=0;a<o.nestedViews.length;a++)_flattenNestedViewRenderNodes(o.nestedViews[a].rootNodesOrAppElements,e)}else e.push(i)}return e}function ensureSlotCount(t,e){var r;if(n.i(c.f)(t))r=h;else if(t.length<e){var i=t.length;r=s.a.createFixedSize(e);for(var o=0;o<e;o++)r[o]=o<i?t[o]:h}else r=t;return r}function interpolate(t,e,n,r,i,o,a,s,c,l,u,p,d,f,h,m,v,g,b,y){switch(t){case 1:return e+_toStringWithNull(n)+r;case 2:return e+_toStringWithNull(n)+r+_toStringWithNull(i)+o;case 3:return e+_toStringWithNull(n)+r+_toStringWithNull(i)+o+_toStringWithNull(a)+s;case 4:return e+_toStringWithNull(n)+r+_toStringWithNull(i)+o+_toStringWithNull(a)+s+_toStringWithNull(c)+l;case 5:return e+_toStringWithNull(n)+r+_toStringWithNull(i)+o+_toStringWithNull(a)+s+_toStringWithNull(c)+l+_toStringWithNull(u)+p;case 6:return e+_toStringWithNull(n)+r+_toStringWithNull(i)+o+_toStringWithNull(a)+s+_toStringWithNull(c)+l+_toStringWithNull(u)+p+_toStringWithNull(d)+f;case 7:return e+_toStringWithNull(n)+r+_toStringWithNull(i)+o+_toStringWithNull(a)+s+_toStringWithNull(c)+l+_toStringWithNull(u)+p+_toStringWithNull(d)+f+_toStringWithNull(h)+m;case 8:return e+_toStringWithNull(n)+r+_toStringWithNull(i)+o+_toStringWithNull(a)+s+_toStringWithNull(c)+l+_toStringWithNull(u)+p+_toStringWithNull(d)+f+_toStringWithNull(h)+m+_toStringWithNull(v)+g;case 9:return e+_toStringWithNull(n)+r+_toStringWithNull(i)+o+_toStringWithNull(a)+s+_toStringWithNull(c)+l+_toStringWithNull(u)+p+_toStringWithNull(d)+f+_toStringWithNull(h)+m+_toStringWithNull(v)+g+_toStringWithNull(b)+y;default:throw new Error("Does not support more than 9 expressions")}}function _toStringWithNull(t){return null!=t?t.toString():""}function checkBinding(t,e,r){if(t){if(!n.i(i.a)(e,r))throw new d.a(e,r);return!1}return!n.i(c.o)(e,r)}function castByValue(t,e){return t}function pureProxy1(t){var e,r=o.a;return function(i){return n.i(c.o)(r,i)||(r=i,e=t(i)),e}}function pureProxy2(t){var e,r=o.a,i=o.a;return function(o,a){return n.i(c.o)(r,o)&&n.i(c.o)(i,a)||(r=o,i=a,e=t(o,a)),e}}function pureProxy3(t){var e,r=o.a,i=o.a,a=o.a;return function(o,s,l){return n.i(c.o)(r,o)&&n.i(c.o)(i,s)&&n.i(c.o)(a,l)||(r=o,i=s,a=l,e=t(o,s,l)),e}}function pureProxy4(t){var e,r,i,a,s;return r=i=a=s=o.a,function(o,l,u,p){return n.i(c.o)(r,o)&&n.i(c.o)(i,l)&&n.i(c.o)(a,u)&&n.i(c.o)(s,p)||(r=o,i=l,a=u,s=p,e=t(o,l,u,p)),e}}function pureProxy5(t){var e,r,i,a,s,l;return r=i=a=s=l=o.a,function(o,u,p,d,f){return n.i(c.o)(r,o)&&n.i(c.o)(i,u)&&n.i(c.o)(a,p)&&n.i(c.o)(s,d)&&n.i(c.o)(l,f)||(r=o,i=u,a=p,s=d,l=f,e=t(o,u,p,d,f)),e}}function pureProxy6(t){var e,r,i,a,s,l,u;return r=i=a=s=l=u=o.a,function(o,p,d,f,h,m){return n.i(c.o)(r,o)&&n.i(c.o)(i,p)&&n.i(c.o)(a,d)&&n.i(c.o)(s,f)&&n.i(c.o)(l,h)&&n.i(c.o)(u,m)||(r=o,i=p,a=d,s=f,l=h,u=m,e=t(o,p,d,f,h,m)),e}}function pureProxy7(t){var e,r,i,a,s,l,u,p;return r=i=a=s=l=u=p=o.a,function(o,d,f,h,m,v,g){return n.i(c.o)(r,o)&&n.i(c.o)(i,d)&&n.i(c.o)(a,f)&&n.i(c.o)(s,h)&&n.i(c.o)(l,m)&&n.i(c.o)(u,v)&&n.i(c.o)(p,g)||(r=o,i=d,a=f,s=h,l=m,u=v,p=g,e=t(o,d,f,h,m,v,g)),e}}function pureProxy8(t){var e,r,i,a,s,l,u,p,d;return r=i=a=s=l=u=p=d=o.a,function(o,f,h,m,v,g,b,y){return n.i(c.o)(r,o)&&n.i(c.o)(i,f)&&n.i(c.o)(a,h)&&n.i(c.o)(s,m)&&n.i(c.o)(l,v)&&n.i(c.o)(u,g)&&n.i(c.o)(p,b)&&n.i(c.o)(d,y)||(r=o,i=f,a=h,s=m,l=v,u=g,p=b,d=y,e=t(o,f,h,m,v,g,b,y)),e}}function pureProxy9(t){var e,r,i,a,s,l,u,p,d,f;return r=i=a=s=l=u=p=d=f=o.a,function(o,h,m,v,g,b,y,_,w){return n.i(c.o)(r,o)&&n.i(c.o)(i,h)&&n.i(c.o)(a,m)&&n.i(c.o)(s,v)&&n.i(c.o)(l,g)&&n.i(c.o)(u,b)&&n.i(c.o)(p,y)&&n.i(c.o)(d,_)&&n.i(c.o)(f,w)||(r=o,i=h,a=m,s=v,l=g,u=b,p=y,d=_,f=w,e=t(o,h,m,v,g,b,y,_,w)),e}}function pureProxy10(t){var e,r,i,a,s,l,u,p,d,f,h;return r=i=a=s=l=u=p=d=f=h=o.a,function(o,m,v,g,b,y,_,w,x,C){return n.i(c.o)(r,o)&&n.i(c.o)(i,m)&&n.i(c.o)(a,v)&&n.i(c.o)(s,g)&&n.i(c.o)(l,b)&&n.i(c.o)(u,y)&&n.i(c.o)(p,_)&&n.i(c.o)(d,w)&&n.i(c.o)(f,x)&&n.i(c.o)(h,C)||(r=o,i=m,a=v,s=g,l=b,u=y,p=_,d=w,f=x,h=C,e=t(o,m,v,g,b,y,_,w,x,C)),e}}var r=n(107),i=n(108),o=n(109),a=n(82),s=n(10),c=n(2),l=n(174),u=n(320),p=n(171),d=n(307);n.d(e,"a",function(){return f}),e.c=flattenNestedViewRenderNodes,e.b=ensureSlotCount,n.d(e,"d",function(){return m}),e.f=interpolate,e.e=checkBinding,e.s=castByValue,n.d(e,"g",function(){return v}),n.d(e,"h",function(){return g}),e.i=pureProxy1,e.j=pureProxy2,e.k=pureProxy3,e.l=pureProxy4,e.m=pureProxy5,e.n=pureProxy6,e.o=pureProxy7,e.p=pureProxy8,e.q=pureProxy9,e.r=pureProxy10;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var f=function(){function ViewUtils(t,e,n){this._renderer=t,this._appId=e,this._nextCompTypeId=0,this.sanitizer=n}return ViewUtils.prototype.createRenderComponentType=function(t,e,n,r,i){return new l.a(this._appId+"-"+this._nextCompTypeId++,t,e,n,r,i)},ViewUtils.prototype.renderComponent=function(t){return this._renderer.renderComponent(t)},ViewUtils.decorators=[{type:a.Injectable}],ViewUtils.ctorParameters=[{type:l.b},{type:void 0,decorators:[{type:a.Inject,args:[r.a]}]},{type:u.a}],ViewUtils}(),h=[],m=9,v=[],g={}},function(t,e,n){"use strict";function noopScope(t,e){return null}var r=n(489);n.d(e,"a",function(){return o}),n.d(e,"b",function(){return a}),n.d(e,"c",function(){return s}),n.d(e,"d",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=n.i(r.a)(),o=i?r.b:function(t,e){return noopScope},a=i?r.c:function(t,e){return e},s=i?r.d:function(t,e){return null},c=i?r.e:function(t){return null}},function(t,e,n){"use strict";function extractAnnotation(t){return n.i(r.b)(t)&&t.hasOwnProperty("annotation")&&(t=t.annotation),t}function applyParams(t,e){if(t===Object||t===String||t===Function||t===Number||t===Array)throw new Error("Can not use native "+n.i(r.a)(t)+" as constructor");if(n.i(r.b)(t))return t;if(t instanceof Array){var i=t,a=i.length-1,s=t[a];if(!n.i(r.b)(s))throw new Error("Last position of Class method array must be Function in key "+e+" was '"+n.i(r.a)(s)+"'");if(a!=s.length)throw new Error("Number of annotations ("+a+") does not match number of arguments ("+s.length+") in the function: "+n.i(r.a)(s));for(var c=[],l=0,u=i.length-1;l<u;l++){var p=[];c.push(p);var d=i[l];if(d instanceof Array)for(var f=0;f<d.length;f++)p.push(extractAnnotation(d[f]));else n.i(r.b)(d)?p.push(extractAnnotation(d)):p.push(d)}return o.defineMetadata("parameters",c,s),s}throw new Error("Only Function or Array is supported in Class definition for key '"+e+"' is '"+n.i(r.a)(t)+"'")}function Class(t){var e=applyParams(t.hasOwnProperty("constructor")?t.constructor:void 0,"constructor"),a=e.prototype;if(t.hasOwnProperty("extends")){if(!n.i(r.b)(t.extends))throw new Error("Class definition 'extends' property must be a constructor function was: "+n.i(r.a)(t.extends));e.prototype=a=Object.create(t.extends.prototype)}for(var s in t)"extends"!=s&&"prototype"!=s&&t.hasOwnProperty(s)&&(a[s]=applyParams(t[s],s));this&&this.annotations instanceof Array&&o.defineMetadata("annotations",this.annotations,e);var c=e.name;return c&&"constructor"!==c||(e.overriddenName="class"+i++),e}function makeDecorator(t,e){function DecoratorFactory(i){if(!o||!o.getMetadata)throw"reflect-metadata shim is required when using class decorators";var a=new t(i);if(this instanceof t)return a;var s=n.i(r.b)(this)&&this.annotations instanceof Array?this.annotations:[];s.push(a);var c=function(t){var e=o.getOwnMetadata("annotations",t)||[];return e.push(a),o.defineMetadata("annotations",e,t),t};return c.annotations=s,c.Class=Class,e&&e(c),c}return void 0===e&&(e=null),DecoratorFactory.prototype=Object.create(t.prototype),DecoratorFactory.annotationCls=t,DecoratorFactory}function makeParamDecorator(t){function ParamDecoratorFactory(){function ParamDecorator(t,e,n){for(var i=o.getMetadata("parameters",t)||[];i.length<=n;)i.push(null);i[n]=i[n]||[];var a=i[n];return a.push(r),o.defineMetadata("parameters",i,t),t}for(var e=[],n=0;n<arguments.length;n++)e[n-0]=arguments[n];var r=Object.create(t.prototype);return t.apply(r,e),this instanceof t?r:(ParamDecorator.annotation=r,ParamDecorator)}return ParamDecoratorFactory.prototype=Object.create(t.prototype),ParamDecoratorFactory.annotationCls=t,ParamDecoratorFactory}function makePropDecorator(t){function PropDecoratorFactory(){for(var e=[],n=0;n<arguments.length;n++)e[n-0]=arguments[n];var r=Object.create(t.prototype);return t.apply(r,e),this instanceof t?r:function(t,e){var n=o.getOwnMetadata("propMetadata",t.constructor)||{};n[e]=n[e]||[],n[e].unshift(r),o.defineMetadata("propMetadata",n,t.constructor)}}return PropDecoratorFactory.prototype=Object.create(t.prototype),PropDecoratorFactory.annotationCls=t,PropDecoratorFactory}var r=n(2);e.d=Class,e.b=makeDecorator,e.a=makeParamDecorator,e.c=makePropDecorator;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=0,o=r.c.Reflect},function(t,e,n){"use strict";var r=n(0),i=n(36);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o={provide:i.a,useExisting:n.i(r.forwardRef)(function(){return a}),multi:!0},a=function(){function CheckboxControlValueAccessor(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return CheckboxControlValueAccessor.prototype.writeValue=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"checked",t)},CheckboxControlValueAccessor.prototype.registerOnChange=function(t){this.onChange=t},CheckboxControlValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},CheckboxControlValueAccessor.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},CheckboxControlValueAccessor.decorators=[{type:r.Directive,args:[{selector:"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]",host:{"(change)":"onChange($event.target.checked)","(blur)":"onTouched()"},providers:[o]}]}],CheckboxControlValueAccessor.ctorParameters=[{type:r.Renderer},{type:r.ElementRef}],CheckboxControlValueAccessor}()},function(t,e,n){"use strict";var r=n(0),i=n(21),o=n(36);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a={provide:o.a,useExisting:n.i(r.forwardRef)(function(){return s}),multi:!0},s=function(){function DefaultValueAccessor(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return DefaultValueAccessor.prototype.writeValue=function(t){var e=n.i(i.c)(t)?"":t;this._renderer.setElementProperty(this._elementRef.nativeElement,"value",e)},DefaultValueAccessor.prototype.registerOnChange=function(t){this.onChange=t},DefaultValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},DefaultValueAccessor.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},DefaultValueAccessor.decorators=[{type:r.Directive,args:[{selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]",host:{"(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[a]}]}],DefaultValueAccessor.ctorParameters=[{type:r.Renderer},{type:r.ElementRef}],DefaultValueAccessor}()},function(t,e,n){"use strict";var r=n(0),i=n(38),o=n(85),a=n(43),s=n(86),c=n(322);n.d(e,"a",function(){return p});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var l=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},u={provide:a.a,useExisting:n.i(r.forwardRef)(function(){return p})},p=function(t){function NgModelGroup(e,n,r){t.call(this),this._parent=e,this._validators=n,this._asyncValidators=r}return l(NgModelGroup,t),NgModelGroup.prototype._checkParentType=function(){this._parent instanceof NgModelGroup||this._parent instanceof s.a||c.a.modelGroupParentException()},NgModelGroup.decorators=[{type:r.Directive,args:[{selector:"[ngModelGroup]",providers:[u],exportAs:"ngModelGroup"}]}],NgModelGroup.ctorParameters=[{type:a.a,decorators:[{type:r.Host},{type:r.SkipSelf}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[i.b]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[i.c]}]}],NgModelGroup.propDecorators={name:[{type:r.Input,args:["ngModelGroup"]}]},NgModelGroup}(o.a)},function(t,e,n){"use strict";var r=n(0),i=n(37),o=n(21),a=n(36),s=n(60);n.d(e,"b",function(){return l}),n.d(e,"a",function(){return u});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c={provide:a.a,useExisting:n.i(r.forwardRef)(function(){return u}),multi:!0},l=function(){function RadioControlRegistry(){this._accessors=[]}return RadioControlRegistry.prototype.add=function(t,e){this._accessors.push([t,e])},RadioControlRegistry.prototype.remove=function(t){for(var e=-1,n=0;n<this._accessors.length;++n)this._accessors[n][1]===t&&(e=n);i.b.removeAt(this._accessors,e)},RadioControlRegistry.prototype.select=function(t){var e=this;this._accessors.forEach(function(n){e._isSameGroup(n,t)&&n[1]!==t&&n[1].fireUncheck(t.value)})},RadioControlRegistry.prototype._isSameGroup=function(t,e){return!!t[0].control&&(t[0]._parent===e._control._parent&&t[1].name===e.name)},RadioControlRegistry.decorators=[{type:r.Injectable}],RadioControlRegistry.ctorParameters=[],RadioControlRegistry}(),u=function(){function RadioControlValueAccessor(t,e,n,r){this._renderer=t,this._elementRef=e,this._registry=n,this._injector=r,this.onChange=function(){},this.onTouched=function(){}}return RadioControlValueAccessor.prototype.ngOnInit=function(){this._control=this._injector.get(s.a),this._checkName(),this._registry.add(this._control,this)},RadioControlValueAccessor.prototype.ngOnDestroy=function(){this._registry.remove(this)},RadioControlValueAccessor.prototype.writeValue=function(t){this._state=t===this.value,n.i(o.a)(t)&&this._renderer.setElementProperty(this._elementRef.nativeElement,"checked",this._state)},RadioControlValueAccessor.prototype.registerOnChange=function(t){var e=this;this._fn=t,this.onChange=function(){t(e.value),e._registry.select(e)}},RadioControlValueAccessor.prototype.fireUncheck=function(t){this.writeValue(t)},RadioControlValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},RadioControlValueAccessor.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},RadioControlValueAccessor.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},RadioControlValueAccessor.prototype._throwNameError=function(){throw new Error('\n      If you define both a name and a formControlName attribute on your radio button, their values\n      must match. Ex: <input type="radio" formControlName="food" name="food">\n    ')},RadioControlValueAccessor.decorators=[{type:r.Directive,args:[{selector:"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]",host:{"(change)":"onChange()","(blur)":"onTouched()"},providers:[c]}]}],RadioControlValueAccessor.ctorParameters=[{type:r.Renderer},{type:r.ElementRef},{type:l},{type:r.Injector}],RadioControlValueAccessor.propDecorators={name:[{type:r.Input}],formControlName:[{type:r.Input}],value:[{type:r.Input}]},RadioControlValueAccessor}()},function(t,e,n){"use strict";var r=n(321);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function ReactiveErrors(){}return ReactiveErrors.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+r.a.formControlName)},ReactiveErrors.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n       that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n       Option 1:  Update the parent to be formGroupName (reactive form strategy)\n\n        '+r.a.formGroupName+"\n\n        Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n        "+r.a.ngModelGroup)},ReactiveErrors.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n       Example:\n\n       "+r.a.formControlName)},ReactiveErrors.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive.  You'll want to add a formGroup\n      directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+r.a.formGroupName)},ReactiveErrors.arrayParentException=function(){throw new Error("formArrayName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n        Example:\n\n        "+r.a.formArrayName)},ReactiveErrors.disabledAttrWarning=function(){console.warn("\n      It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n      when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n      you. We recommend using this approach to avoid 'changed after checked' errors.\n       \n      Example: \n      form = new FormGroup({\n        first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n        last: new FormControl('Drew', Validators.required)\n      });\n    ")},ReactiveErrors}()},function(t,e,n){"use strict";function _buildValueString(t,e){return n.i(o.c)(t)?""+e:(n.i(o.j)(e)||(e="Object"),o.k.slice(t+": "+e,0,50))}function _extractId(t){return t.split(":")[0]}var r=n(0),i=n(37),o=n(21),a=n(36);n.d(e,"a",function(){return c}),n.d(e,"b",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s={provide:a.a,useExisting:n.i(r.forwardRef)(function(){return c}),multi:!0},c=function(){function SelectControlValueAccessor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){}}return SelectControlValueAccessor.prototype.writeValue=function(t){this.value=t;var e=_buildValueString(this._getOptionId(t),t);this._renderer.setElementProperty(this._elementRef.nativeElement,"value",e)},SelectControlValueAccessor.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){e.value=n,t(e._getOptionValue(n))}},SelectControlValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},SelectControlValueAccessor.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},SelectControlValueAccessor.prototype._registerOption=function(){return(this._idCounter++).toString()},SelectControlValueAccessor.prototype._getOptionId=function(t){for(var e=0,r=i.c.keys(this._optionMap);e<r.length;e++){var a=r[e];if(n.i(o.l)(this._optionMap.get(a),t))return a}return null},SelectControlValueAccessor.prototype._getOptionValue=function(t){var e=this._optionMap.get(_extractId(t));return n.i(o.a)(e)?e:t},SelectControlValueAccessor.decorators=[{type:r.Directive,args:[{selector:"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]",host:{"(change)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[s]}]}],SelectControlValueAccessor.ctorParameters=[{type:r.Renderer},{type:r.ElementRef}],SelectControlValueAccessor}(),l=function(){function NgSelectOption(t,e,r){this._element=t,this._renderer=e,this._select=r,n.i(o.a)(this._select)&&(this.id=this._select._registerOption())}return Object.defineProperty(NgSelectOption.prototype,"ngValue",{set:function(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(_buildValueString(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(NgSelectOption.prototype,"value",{set:function(t){this._setElementValue(t),n.i(o.a)(this._select)&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),NgSelectOption.prototype._setElementValue=function(t){this._renderer.setElementProperty(this._element.nativeElement,"value",t)},NgSelectOption.prototype.ngOnDestroy=function(){n.i(o.a)(this._select)&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},NgSelectOption.decorators=[{type:r.Directive,args:[{selector:"option"}]}],NgSelectOption.ctorParameters=[{type:r.ElementRef},{type:r.Renderer},{type:c,decorators:[{type:r.Optional},{type:r.Host}]}],NgSelectOption.propDecorators={ngValue:[{type:r.Input,args:["ngValue"]}],value:[{type:r.Input,args:["value"]}]},NgSelectOption}()},function(t,e,n){"use strict";function _buildValueString(t,e){return n.i(o.c)(t)?""+e:(n.i(o.g)(e)&&(e="'"+e+"'"),n.i(o.j)(e)||(e="Object"),o.k.slice(t+": "+e,0,50))}function _extractId(t){return t.split(":")[0]}var r=n(0),i=n(37),o=n(21),a=n(36);n.d(e,"a",function(){return c}),n.d(e,"b",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s={provide:a.a,useExisting:n.i(r.forwardRef)(function(){return c}),multi:!0},c=(function(){function HTMLCollection(){}return HTMLCollection}(),function(){function SelectMultipleControlValueAccessor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){}}return SelectMultipleControlValueAccessor.prototype.writeValue=function(t){var e=this;if(this.value=t,null!=t){var n=t,r=n.map(function(t){return e._getOptionId(t)});this._optionMap.forEach(function(t,e){t._setSelected(r.indexOf(e.toString())>-1)})}},SelectMultipleControlValueAccessor.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){var r=[];if(n.hasOwnProperty("selectedOptions"))for(var i=n.selectedOptions,o=0;o<i.length;o++){var a=i.item(o),s=e._getOptionValue(a.value);r.push(s)}else for(var i=n.options,o=0;o<i.length;o++){var a=i.item(o);if(a.selected){var s=e._getOptionValue(a.value);r.push(s)}}t(r)}},SelectMultipleControlValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},SelectMultipleControlValueAccessor.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},SelectMultipleControlValueAccessor.prototype._registerOption=function(t){var e=(this._idCounter++).toString();return this._optionMap.set(e,t),e},SelectMultipleControlValueAccessor.prototype._getOptionId=function(t){for(var e=0,r=i.c.keys(this._optionMap);e<r.length;e++){var a=r[e];if(n.i(o.l)(this._optionMap.get(a)._value,t))return a}return null},SelectMultipleControlValueAccessor.prototype._getOptionValue=function(t){var e=this._optionMap.get(_extractId(t));return n.i(o.a)(e)?e._value:t},SelectMultipleControlValueAccessor.decorators=[{type:r.Directive,args:[{selector:"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]",host:{"(change)":"onChange($event.target)","(blur)":"onTouched()"},providers:[s]}]}],SelectMultipleControlValueAccessor.ctorParameters=[{type:r.Renderer},{type:r.ElementRef}],SelectMultipleControlValueAccessor}()),l=function(){function NgSelectMultipleOption(t,e,r){this._element=t,this._renderer=e,this._select=r,n.i(o.a)(this._select)&&(this.id=this._select._registerOption(this))}return Object.defineProperty(NgSelectMultipleOption.prototype,"ngValue",{set:function(t){null!=this._select&&(this._value=t,this._setElementValue(_buildValueString(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(NgSelectMultipleOption.prototype,"value",{set:function(t){n.i(o.a)(this._select)?(this._value=t,this._setElementValue(_buildValueString(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)},enumerable:!0,configurable:!0}),NgSelectMultipleOption.prototype._setElementValue=function(t){this._renderer.setElementProperty(this._element.nativeElement,"value",t)},NgSelectMultipleOption.prototype._setSelected=function(t){this._renderer.setElementProperty(this._element.nativeElement,"selected",t)},NgSelectMultipleOption.prototype.ngOnDestroy=function(){n.i(o.a)(this._select)&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},NgSelectMultipleOption.decorators=[{type:r.Directive,args:[{selector:"option"}]}],NgSelectMultipleOption.ctorParameters=[{type:r.ElementRef},{type:r.Renderer},{type:c,decorators:[{type:r.Optional},{type:r.Host}]}],NgSelectMultipleOption.propDecorators={ngValue:[{type:r.Input,args:["ngValue"]}],value:[{type:r.Input,args:["value"]}]},NgSelectMultipleOption}()},function(t,e,n){"use strict";function _find(t,e,r){return n.i(s.c)(e)?null:(e instanceof Array||(e=e.split(r)),e instanceof Array&&a.b.isEmpty(e)?null:e.reduce(function(t,e){if(t instanceof m)return n.i(s.a)(t.controls[e])?t.controls[e]:null;if(t instanceof v){var r=e;return n.i(s.a)(t.at(r))?t.at(r):null}return null},t))}function toObservable(t){return n.i(s.h)(t)?n.i(r.fromPromise)(t):t}function coerceToValidator(t){return Array.isArray(t)?n.i(i.b)(t):t}function coerceToAsyncValidator(t){return Array.isArray(t)?n.i(i.c)(t):t}var r=n(241),i=(n.n(r),n(56)),o=n(69),a=n(37),s=n(21);n.d(e,"d",function(){return f}),n.d(e,"b",function(){return h}),n.d(e,"a",function(){return m}),n.d(e,"c",function(){return v});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},l="VALID",u="INVALID",p="PENDING",d="DISABLED",f=function(){function AbstractControl(t,e){this.validator=t,this.asyncValidator=e,this._pristine=!0,this._touched=!1}return Object.defineProperty(AbstractControl.prototype,"value",{get:function(){return this._value},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"status",{get:function(){return this._status},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"valid",{get:function(){return this._status===l},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"invalid",{get:function(){return this._status===u},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"errors",{get:function(){return this._errors},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"pristine",{get:function(){return this._pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"touched",{get:function(){return this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"untouched",{get:function(){return!this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"valueChanges",{get:function(){return this._valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"statusChanges",{get:function(){return this._statusChanges},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"pending",{get:function(){return this._status==p},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"disabled",{get:function(){return this._status===d},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"enabled",{get:function(){return this._status!==d},enumerable:!0,configurable:!0}),AbstractControl.prototype.setAsyncValidators=function(t){this.asyncValidator=coerceToAsyncValidator(t)},AbstractControl.prototype.clearAsyncValidators=function(){this.asyncValidator=null},AbstractControl.prototype.setValidators=function(t){this.validator=coerceToValidator(t)},AbstractControl.prototype.clearValidators=function(){this.validator=null},AbstractControl.prototype.markAsTouched=function(t){var e=(void 0===t?{}:t).onlySelf;e=n.i(s.n)(e),this._touched=!0,n.i(s.a)(this._parent)&&!e&&this._parent.markAsTouched({onlySelf:e})},AbstractControl.prototype.markAsDirty=function(t){var e=(void 0===t?{}:t).onlySelf;e=n.i(s.n)(e),this._pristine=!1,n.i(s.a)(this._parent)&&!e&&this._parent.markAsDirty({onlySelf:e})},AbstractControl.prototype.markAsPristine=function(t){var e=(void 0===t?{}:t).onlySelf;this._pristine=!0,this._forEachChild(function(t){t.markAsPristine({onlySelf:!0})}),n.i(s.a)(this._parent)&&!e&&this._parent._updatePristine({onlySelf:e})},AbstractControl.prototype.markAsUntouched=function(t){var e=(void 0===t?{}:t).onlySelf;this._touched=!1,this._forEachChild(function(t){t.markAsUntouched({onlySelf:!0})}),n.i(s.a)(this._parent)&&!e&&this._parent._updateTouched({onlySelf:e})},AbstractControl.prototype.markAsPending=function(t){var e=(void 0===t?{}:t).onlySelf;e=n.i(s.n)(e),this._status=p,n.i(s.a)(this._parent)&&!e&&this._parent.markAsPending({onlySelf:e})},AbstractControl.prototype.disable=function(t){var e=void 0===t?{}:t,r=e.onlySelf,i=e.emitEvent;i=!n.i(s.a)(i)||i,this._status=d,this._forEachChild(function(t){t.disable({onlySelf:!0})}),this._updateValue(),i&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),this._updateAncestors(r),this._onDisabledChange(!0)},AbstractControl.prototype.enable=function(t){var e=void 0===t?{}:t,n=e.onlySelf,r=e.emitEvent;this._status=l,this._forEachChild(function(t){t.enable({onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:r}),this._updateAncestors(n),this._onDisabledChange(!1)},AbstractControl.prototype._updateAncestors=function(t){n.i(s.a)(this._parent)&&!t&&(this._parent.updateValueAndValidity(),this._parent._updatePristine(),this._parent._updateTouched())},AbstractControl.prototype.setParent=function(t){this._parent=t},AbstractControl.prototype.updateValueAndValidity=function(t){var e=void 0===t?{}:t,r=e.onlySelf,i=e.emitEvent;r=n.i(s.n)(r),i=!n.i(s.a)(i)||i,this._updateValue(),this._errors=this._runValidator();var o=this._status;this._status=this._calculateStatus(),this._status!=l&&this._status!=p||this._runAsyncValidator(i),this._disabledChanged(o)&&this._updateValue(),i&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),n.i(s.a)(this._parent)&&!r&&this._parent.updateValueAndValidity({onlySelf:r,emitEvent:i})},AbstractControl.prototype._updateTreeValidity=function(t){var e=(void 0===t?{emitEvent:!0}:t).emitEvent;this._forEachChild(function(t){return t._updateTreeValidity({emitEvent:e})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e})},AbstractControl.prototype._runValidator=function(){return n.i(s.a)(this.validator)?this.validator(this):null},AbstractControl.prototype._runAsyncValidator=function(t){var e=this;if(n.i(s.a)(this.asyncValidator)){this._status=p,this._cancelExistingSubscription();var r=toObservable(this.asyncValidator(this));this._asyncValidationSubscription=r.subscribe({next:function(n){return e.setErrors(n,{emitEvent:t})}})}},AbstractControl.prototype._cancelExistingSubscription=function(){n.i(s.a)(this._asyncValidationSubscription)&&this._asyncValidationSubscription.unsubscribe()},AbstractControl.prototype._disabledChanged=function(t){return this._status!==t&&(this._status===d||t===d)},AbstractControl.prototype.setErrors=function(t,e){var r=(void 0===e?{}:e).emitEvent;r=!n.i(s.a)(r)||r,this._errors=t,this._updateControlsErrors(r)},AbstractControl.prototype.get=function(t){return _find(this,t,".")},AbstractControl.prototype.getError=function(t,e){void 0===e&&(e=null);var r=n.i(s.a)(e)&&!a.b.isEmpty(e)?this.get(e):this;return n.i(s.a)(r)&&n.i(s.a)(r._errors)?a.a.get(r._errors,t):null},AbstractControl.prototype.hasError=function(t,e){return void 0===e&&(e=null),n.i(s.a)(this.getError(t,e))},Object.defineProperty(AbstractControl.prototype,"root",{get:function(){for(var t=this;n.i(s.a)(t._parent);)t=t._parent;return t},enumerable:!0,configurable:!0}),AbstractControl.prototype._updateControlsErrors=function(t){this._status=this._calculateStatus(),t&&this._statusChanges.emit(this._status),n.i(s.a)(this._parent)&&this._parent._updateControlsErrors(t)},AbstractControl.prototype._initObservables=function(){this._valueChanges=new o.a,this._statusChanges=new o.a},AbstractControl.prototype._calculateStatus=function(){return n.i(s.a)(this._errors)?u:this._anyControlsHaveStatus(p)?p:this._anyControlsHaveStatus(u)?u:this._allControlsDisabled()?d:l},AbstractControl.prototype._anyControlsHaveStatus=function(t){return this._anyControls(function(e){return e.status==t})},AbstractControl.prototype._anyControlsDirty=function(){return this._anyControls(function(t){return t.dirty})},AbstractControl.prototype._anyControlsTouched=function(){return this._anyControls(function(t){return t.touched})},AbstractControl.prototype._updatePristine=function(t){var e=(void 0===t?{}:t).onlySelf;this._pristine=!this._anyControlsDirty(),n.i(s.a)(this._parent)&&!e&&this._parent._updatePristine({onlySelf:e})},AbstractControl.prototype._updateTouched=function(t){var e=(void 0===t?{}:t).onlySelf;this._touched=this._anyControlsTouched(),n.i(s.a)(this._parent)&&!e&&this._parent._updateTouched({onlySelf:e})},AbstractControl.prototype._onDisabledChange=function(t){},AbstractControl.prototype._isBoxedValue=function(t){return n.i(s.o)(t)&&2===Object.keys(t).length&&"value"in t&&"disabled"in t},AbstractControl}(),h=function(t){function FormControl(e,n,r){void 0===e&&(e=null),void 0===n&&(n=null),void 0===r&&(r=null),t.call(this,coerceToValidator(n),coerceToAsyncValidator(r)),this._onChange=[],this._applyFormState(e),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),this._initObservables()}return c(FormControl,t),FormControl.prototype.setValue=function(t,e){var r=this,i=void 0===e?{}:e,o=i.onlySelf,a=i.emitEvent,c=i.emitModelToViewChange,l=i.emitViewToModelChange;c=!n.i(s.a)(c)||c,l=!n.i(s.a)(l)||l,this._value=t,this._onChange.length&&c&&this._onChange.forEach(function(t){return t(r._value,l)}),this.updateValueAndValidity({onlySelf:o,emitEvent:a})},FormControl.prototype.patchValue=function(t,e){void 0===e&&(e={}),this.setValue(t,e)},FormControl.prototype.reset=function(t,e){void 0===t&&(t=null);var n=(void 0===e?{}:e).onlySelf;this._applyFormState(t),this.markAsPristine({onlySelf:n}),this.markAsUntouched({onlySelf:n}),this.setValue(this._value,{onlySelf:n})},FormControl.prototype._updateValue=function(){},FormControl.prototype._anyControls=function(t){return!1},FormControl.prototype._allControlsDisabled=function(){return this.disabled},FormControl.prototype.registerOnChange=function(t){this._onChange.push(t)},FormControl.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=null},FormControl.prototype.registerOnDisabledChange=function(t){this._onDisabledChange=t},FormControl.prototype._forEachChild=function(t){},FormControl.prototype._applyFormState=function(t){this._isBoxedValue(t)?(this._value=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this._value=t},FormControl}(f),m=function(t){function FormGroup(e,n,r){void 0===n&&(n=null),void 0===r&&(r=null),t.call(this,n,r),this.controls=e,this._initObservables(),this._setParentForControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1})}return c(FormGroup,t),FormGroup.prototype.registerControl=function(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e)},FormGroup.prototype.addControl=function(t,e){this.registerControl(t,e),this.updateValueAndValidity()},FormGroup.prototype.removeControl=function(t){a.a.delete(this.controls,t),this.updateValueAndValidity()},FormGroup.prototype.contains=function(t){var e=a.a.contains(this.controls,t);return e&&this.get(t).enabled},FormGroup.prototype.setValue=function(t,e){var n=this,r=(void 0===e?{}:e).onlySelf;this._checkAllValuesPresent(t),a.a.forEach(t,function(t,e){n._throwIfControlMissing(e),n.controls[e].setValue(t,{onlySelf:!0})}),this.updateValueAndValidity({onlySelf:r})},FormGroup.prototype.patchValue=function(t,e){var n=this,r=(void 0===e?{}:e).onlySelf;a.a.forEach(t,function(t,e){n.controls[e]&&n.controls[e].patchValue(t,{onlySelf:!0})}),this.updateValueAndValidity({onlySelf:r})},FormGroup.prototype.reset=function(t,e){void 0===t&&(t={});var n=(void 0===e?{}:e).onlySelf;this._forEachChild(function(e,n){e.reset(t[n],{onlySelf:!0})}),this.updateValueAndValidity({onlySelf:n}),this._updatePristine({onlySelf:n}),this._updateTouched({onlySelf:n})},FormGroup.prototype.getRawValue=function(){return this._reduceChildren({},function(t,e,n){return t[n]=e.value,t})},FormGroup.prototype._throwIfControlMissing=function(t){if(!Object.keys(this.controls).length)throw new Error("\n        There are no form controls registered with this group yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.controls[t])throw new Error("Cannot find form control with name: "+t+".")},FormGroup.prototype._forEachChild=function(t){a.a.forEach(this.controls,t)},FormGroup.prototype._setParentForControls=function(){var t=this;this._forEachChild(function(e,n){e.setParent(t)})},FormGroup.prototype._updateValue=function(){this._value=this._reduceValue()},FormGroup.prototype._anyControls=function(t){var e=this,n=!1;return this._forEachChild(function(r,i){n=n||e.contains(i)&&t(r)}),n},FormGroup.prototype._reduceValue=function(){var t=this;return this._reduceChildren({},function(e,n,r){return(n.enabled||t.disabled)&&(e[r]=n.value),e})},FormGroup.prototype._reduceChildren=function(t,e){var n=t;return this._forEachChild(function(t,r){n=e(n,t,r)}),n},FormGroup.prototype._allControlsDisabled=function(){for(var t=0,e=Object.keys(this.controls);t<e.length;t++){var n=e[t];if(this.controls[n].enabled)return!1}return!a.a.isEmpty(this.controls)},FormGroup.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")})},FormGroup}(f),v=function(t){function FormArray(e,n,r){void 0===n&&(n=null),void 0===r&&(r=null),t.call(this,n,r),this.controls=e,this._initObservables(),this._setParentForControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1})}return c(FormArray,t),FormArray.prototype.at=function(t){return this.controls[t]},FormArray.prototype.push=function(t){this.controls.push(t),t.setParent(this),this.updateValueAndValidity()},FormArray.prototype.insert=function(t,e){a.b.insert(this.controls,t,e),e.setParent(this),this.updateValueAndValidity()},FormArray.prototype.removeAt=function(t){a.b.removeAt(this.controls,t),this.updateValueAndValidity()},Object.defineProperty(FormArray.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),FormArray.prototype.setValue=function(t,e){var n=this,r=(void 0===e?{}:e).onlySelf;this._checkAllValuesPresent(t),t.forEach(function(t,e){n._throwIfControlMissing(e),n.at(e).setValue(t,{onlySelf:!0})}),this.updateValueAndValidity({onlySelf:r})},FormArray.prototype.patchValue=function(t,e){var n=this,r=(void 0===e?{}:e).onlySelf;t.forEach(function(t,e){n.at(e)&&n.at(e).patchValue(t,{onlySelf:!0})}),this.updateValueAndValidity({onlySelf:r})},FormArray.prototype.reset=function(t,e){void 0===t&&(t=[]);var n=(void 0===e?{}:e).onlySelf;this._forEachChild(function(e,n){e.reset(t[n],{onlySelf:!0})}),this.updateValueAndValidity({onlySelf:n}),this._updatePristine({onlySelf:n}),this._updateTouched({onlySelf:n})},FormArray.prototype.getRawValue=function(){return this.controls.map(function(t){return t.value})},FormArray.prototype._throwIfControlMissing=function(t){if(!this.controls.length)throw new Error("\n        There are no form controls registered with this array yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.at(t))throw new Error("Cannot find form control at index "+t)},FormArray.prototype._forEachChild=function(t){this.controls.forEach(function(e,n){t(e,n)})},FormArray.prototype._updateValue=function(){var t=this;this._value=this.controls.filter(function(e){return e.enabled||t.disabled}).map(function(t){return t.value})},FormArray.prototype._anyControls=function(t){return this.controls.some(function(e){return e.enabled&&t(e)})},FormArray.prototype._setParentForControls=function(){var t=this;this._forEachChild(function(e){e.setParent(t)})},FormArray.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control at index: "+n+".")})},FormArray.prototype._allControlsDisabled=function(){for(var t=0,e=this.controls;t<e.length;t++){var n=e[t];if(n.enabled)return!1}return!!this.controls.length},FormArray}(f)},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=new r.OpaqueToken("DocumentToken")},function(t,e,n){"use strict";function defaultErrorHandler(t){throw t}function parentLoadedConfig(t){for(var e=t.parent;e;){var n=e._routeConfig;if(n&&n._loadedConfig)return n._loadedConfig;if(n&&n.component)return null;e=e.parent}return null}function closestLoadedConfig(t){if(!t)return null;for(var e=t.parent;e;){var n=e._routeConfig;if(n&&n._loadedConfig)return n._loadedConfig;e=e.parent}return null}function nodeChildrenAsMap(t){return t?t.children.reduce(function(t,e){return t[e.value.outlet]=e,t},{}):{}}function getOutlet(t,e){var n=t._outlets[e.outlet];if(!n){var r=e.component.name;throw e.outlet===_.a?new Error("Cannot find primary outlet to load '"+r+"'"):new Error("Cannot find the outlet "+e.outlet+" to load '"+r+"'")}return n}var r=n(0),i=n(77),o=(n.n(i),n(240)),a=(n.n(o),n(96)),s=(n.n(a),n(422)),c=(n.n(s),n(97)),l=(n.n(c),n(242)),u=(n.n(l),n(143)),p=(n.n(u),n(748)),d=(n.n(p),n(517)),f=n(518),h=n(519),m=n(520),v=n(523),g=n(128),b=n(129),y=n(71),_=n(45),w=n(61),x=n(46);n.d(e,"b",function(){return S}),n.d(e,"a",function(){return A});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var C=function(){function NavigationStart(t,e){this.id=t,this.url=e}return NavigationStart.prototype.toString=function(){return"NavigationStart(id: "+this.id+", url: '"+this.url+"')"},NavigationStart}(),S=function(){function NavigationEnd(t,e,n){this.id=t,this.url=e,this.urlAfterRedirects=n}return NavigationEnd.prototype.toString=function(){return"NavigationEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"')"},NavigationEnd}(),k=function(){function NavigationCancel(t,e,n){this.id=t,this.url=e,this.reason=n}return NavigationCancel.prototype.toString=function(){return"NavigationCancel(id: "+this.id+", url: '"+this.url+"')"},NavigationCancel}(),E=function(){function NavigationError(t,e,n){this.id=t,this.url=e,this.error=n}return NavigationError.prototype.toString=function(){return"NavigationError(id: "+this.id+", url: '"+this.url+"', error: "+this.error+")"},NavigationError}(),P=function(){function RoutesRecognized(t,e,n,r){this.id=t,this.url=e,this.urlAfterRedirects=n,this.state=r}return RoutesRecognized.prototype.toString=function(){return"RoutesRecognized(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},RoutesRecognized}(),A=function(){function Router(t,e,r,o,a,s,c,l){this.rootComponentType=t,this.urlSerializer=e,this.outletMap=r,this.location=o,this.injector=a,this.config=l,this.navigationId=0,this.errorHandler=defaultErrorHandler,this.navigated=!1,this.resetConfig(l),this.routerEvents=new i.Subject,this.currentUrlTree=n.i(w.e)(),this.configLoader=new g.b(s,c),this.currentRouterState=n.i(y.f)(this.currentUrlTree,this.rootComponentType)}return Router.prototype.initialNavigation=function(){this.setUpLocationChangeListener(),this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})},Router.prototype.setUpLocationChangeListener=function(){var t=this;this.locationSubscription=this.location.subscribe(Zone.current.wrap(function(e){var n=t.urlSerializer.parse(e.url);return t.currentUrlTree.toString()!==n.toString()?t.scheduleNavigation(n,{skipLocationChange:e.pop,replaceUrl:!0}):null}))},Object.defineProperty(Router.prototype,"routerState",{get:function(){return this.currentRouterState},enumerable:!0,configurable:!0}),Object.defineProperty(Router.prototype,"url",{get:function(){return this.serializeUrl(this.currentUrlTree)},enumerable:!0,configurable:!0}),Object.defineProperty(Router.prototype,"events",{get:function(){return this.routerEvents},enumerable:!0,configurable:!0}),Router.prototype.resetConfig=function(t){n.i(f.a)(t),this.config=t},Router.prototype.ngOnDestroy=function(){this.dispose()},Router.prototype.dispose=function(){this.locationSubscription.unsubscribe()},Router.prototype.createUrlTree=function(t,e){var r=void 0===e?{}:e,i=r.relativeTo,o=r.queryParams,a=r.fragment,s=r.preserveQueryParams,c=r.preserveFragment,l=i?i:this.routerState.root,u=s?this.currentUrlTree.queryParams:o,p=c?this.currentUrlTree.fragment:a;return n.i(m.a)(l,this.currentUrlTree,t,u,p)},Router.prototype.navigateByUrl=function(t,e){if(void 0===e&&(e={skipLocationChange:!1}),t instanceof w.b)return this.scheduleNavigation(t,e);var n=this.urlSerializer.parse(t);return this.scheduleNavigation(n,e)},Router.prototype.navigate=function(t,e){return void 0===e&&(e={skipLocationChange:!1}),this.scheduleNavigation(this.createUrlTree(t,e),e)},Router.prototype.serializeUrl=function(t){return this.urlSerializer.serialize(t)},Router.prototype.parseUrl=function(t){return this.urlSerializer.parse(t)},Router.prototype.isActive=function(t,e){if(t instanceof w.b)return n.i(w.f)(this.currentUrlTree,t,e);var r=this.urlSerializer.parse(t);return n.i(w.f)(this.currentUrlTree,r,e)},Router.prototype.scheduleNavigation=function(t,e){var n=this,r=++this.navigationId;return this.routerEvents.next(new C(r,this.serializeUrl(t))),Promise.resolve().then(function(i){return n.runNavigate(t,e.skipLocationChange,e.replaceUrl,r)})},Router.prototype.runNavigate=function(t,e,r,i){var o=this;return i!==this.navigationId?(this.location.go(this.urlSerializer.serialize(this.currentUrlTree)),this.routerEvents.next(new k(i,this.serializeUrl(t),"Navigation ID "+i+" is not equal to the current navigation id "+this.navigationId)),Promise.resolve(!1)):new Promise(function(s,l){var p,f,m,g,b=o.currentRouterState,y=o.currentUrlTree,w=n.i(d.a)(o.injector,o.configLoader,t,o.config),x=u.mergeMap.call(w,function(t){return g=t,n.i(v.a)(o.rootComponentType,o.config,g,o.serializeUrl(g))}),C=c.map.call(x,function(e){return o.routerEvents.next(new P(i,o.serializeUrl(t),o.serializeUrl(g),e)),e}),A=c.map.call(C,function(t){return n.i(h.a)(t,o.currentRouterState)}),T=c.map.call(A,function(t){p=t,m=new M(p.snapshot,o.currentRouterState.snapshot,o.injector),m.traverse(o.outletMap)}),O=u.mergeMap.call(T,function(){return m.checkGuards()}),R=u.mergeMap.call(O,function(t){return t?c.map.call(m.resolveData(),function(){return t}):n.i(a.of)(t)});R.forEach(function(t){if(!t||i!==o.navigationId)return void(f=!1);if(o.currentUrlTree=g,o.currentRouterState=p,!e){var n=o.urlSerializer.serialize(g);o.location.isCurrentPathEqualTo(n)||r?o.location.replaceState(n):o.location.go(n)}new D(p,b).activate(o.outletMap),f=!0}).then(function(){o.navigated=!0,f?(o.routerEvents.next(new S(i,o.serializeUrl(t),o.serializeUrl(g))),s(!0)):(o.routerEvents.next(new k(i,o.serializeUrl(t),"")),s(!1))},function(e){if(e instanceof _.b)o.navigated=!0,o.routerEvents.next(new k(i,o.serializeUrl(t),e.message)),s(!1);else{o.routerEvents.next(new E(i,o.serializeUrl(t),e));try{s(o.errorHandler(e))}catch(n){l(n)}}i===o.navigationId&&(o.currentRouterState=b,o.currentUrlTree=y,o.location.replaceState(o.serializeUrl(y)))})})},Router}(),T=function(){function CanActivate(t){this.path=t}return Object.defineProperty(CanActivate.prototype,"route",{get:function(){return this.path[this.path.length-1]},enumerable:!0,configurable:!0}),CanActivate}(),O=function(){function CanDeactivate(t,e){this.component=t,this.route=e}return CanDeactivate}(),M=function(){function PreActivation(t,e,n){this.future=t,this.curr=e,this.injector=n,this.checks=[]}return PreActivation.prototype.traverse=function(t){var e=this.future._root,n=this.curr?this.curr._root:null;this.traverseChildRoutes(e,n,t,[e.value])},PreActivation.prototype.checkGuards=function(){var t=this;if(0===this.checks.length)return n.i(a.of)(!0);var e=n.i(o.from)(this.checks),r=c.map.call(e,function(e){if(e instanceof T)return n.i(x.f)(n.i(o.from)([t.runCanActivateChild(e.path),t.runCanActivate(e.route)]));if(e instanceof O){var r=e;return t.runCanDeactivate(r.component,r.route)}throw new Error("Cannot be reached")}),i=l.mergeAll.call(r);return s.every.call(i,function(t){return t===!0})},PreActivation.prototype.resolveData=function(){var t=this;if(0===this.checks.length)return n.i(a.of)(null);var e=n.i(o.from)(this.checks),r=u.mergeMap.call(e,function(e){return e instanceof T?t.runResolve(e.route):n.i(a.of)(null)});return p.reduce.call(r,function(t,e){return t})},PreActivation.prototype.traverseChildRoutes=function(t,e,r,i){var o=this,a=nodeChildrenAsMap(e);t.children.forEach(function(t){o.traverseRoutes(t,a[t.value.outlet],r,i.concat([t.value])),delete a[t.value.outlet]}),n.i(x.c)(a,function(t,e){return o.deactivateOutletAndItChildren(t,r._outlets[e])})},PreActivation.prototype.traverseRoutes=function(t,e,r,i){var o=t.value,a=e?e.value:null,s=r?r._outlets[t.value.outlet]:null;a&&o._routeConfig===a._routeConfig?(n.i(x.d)(o.params,a.params)?o.data=a.data:this.checks.push(new O(s.component,a),new T(i)),o.component?this.traverseChildRoutes(t,e,s?s.outletMap:null,i):this.traverseChildRoutes(t,e,r,i)):(a&&(a.component?this.deactivateOutletAndItChildren(a,s):this.deactivateOutletMap(r)),this.checks.push(new T(i)),o.component?this.traverseChildRoutes(t,null,s?s.outletMap:null,i):this.traverseChildRoutes(t,null,r,i))},PreActivation.prototype.deactivateOutletAndItChildren=function(t,e){e&&e.isActivated&&(this.deactivateOutletMap(e.outletMap),this.checks.push(new O(e.component,t)))},PreActivation.prototype.deactivateOutletMap=function(t){var e=this;n.i(x.c)(t._outlets,function(t){t.isActivated&&e.deactivateOutletAndItChildren(t.activatedRoute.snapshot,t)})},PreActivation.prototype.runCanActivate=function(t){var e=this,r=t._routeConfig?t._routeConfig.canActivate:null;if(!r||0===r.length)return n.i(a.of)(!0);var i=c.map.call(n.i(o.from)(r),function(r){var i=e.getToken(r,t);return i.canActivate?n.i(x.b)(i.canActivate(t,e.future)):n.i(x.b)(i(t,e.future))});return n.i(x.f)(i)},PreActivation.prototype.runCanActivateChild=function(t){var e=this,r=t[t.length-1],i=t.slice(0,t.length-1).reverse().map(function(t){return e.extractCanActivateChild(t)}).filter(function(t){return null!==t});return n.i(x.f)(c.map.call(n.i(o.from)(i),function(t){var i=c.map.call(n.i(o.from)(t.guards),function(t){var i=e.getToken(t,t.node);return i.canActivateChild?n.i(x.b)(i.canActivateChild(r,e.future)):n.i(x.b)(i(r,e.future))});return n.i(x.f)(i)}))},PreActivation.prototype.extractCanActivateChild=function(t){var e=t._routeConfig?t._routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null},PreActivation.prototype.runCanDeactivate=function(t,e){var r=this,i=e&&e._routeConfig?e._routeConfig.canDeactivate:null;if(!i||0===i.length)return n.i(a.of)(!0);var u=c.map.call(n.i(o.from)(i),function(i){var o=r.getToken(i,e);return o.canDeactivate?n.i(x.b)(o.canDeactivate(t,e,r.curr)):n.i(x.b)(o(t,e,r.curr))}),p=l.mergeAll.call(u);return s.every.call(p,function(t){return t===!0})},PreActivation.prototype.runResolve=function(t){var e=t._resolve;return c.map.call(this.resolveNode(e.current,t),function(r){return e.resolvedData=r,t.data=n.i(x.g)(t.data,e.flattenedResolvedData),null})},PreActivation.prototype.resolveNode=function(t,e){var r=this;return n.i(x.e)(t,function(t,i){var o=r.getToken(i,e);return o.resolve?n.i(x.b)(o.resolve(e,r.future)):n.i(x.b)(o(e,r.future))})},PreActivation.prototype.getToken=function(t,e){var n=closestLoadedConfig(e),r=n?n.injector:this.injector;return r.get(t)},PreActivation}(),D=function(){function ActivateRoutes(t,e){this.futureState=t,this.currState=e}return ActivateRoutes.prototype.activate=function(t){var e=this.futureState._root,r=this.currState?this.currState._root:null;n.i(y.g)(this.futureState.root),this.activateChildRoutes(e,r,t)},ActivateRoutes.prototype.activateChildRoutes=function(t,e,r){var i=this,o=nodeChildrenAsMap(e);t.children.forEach(function(t){i.activateRoutes(t,o[t.value.outlet],r),delete o[t.value.outlet]}),n.i(x.c)(o,function(t,e){return i.deactivateOutletAndItChildren(r._outlets[e])})},ActivateRoutes.prototype.activateRoutes=function(t,e,r){var i=t.value,o=e?e.value:null;if(i===o)if(n.i(y.g)(i),i.component){var a=getOutlet(r,t.value);this.activateChildRoutes(t,e,a.outletMap)}else this.activateChildRoutes(t,e,r);else{if(o)if(o.component){var a=getOutlet(r,t.value);this.deactivateOutletAndItChildren(a)}else this.deactivateOutletMap(r);if(i.component){n.i(y.g)(i);var a=getOutlet(r,t.value),s=new b.a;this.placeComponentIntoOutlet(s,i,a),this.activateChildRoutes(t,null,s)}else n.i(y.g)(i),this.activateChildRoutes(t,null,r)}},ActivateRoutes.prototype.placeComponentIntoOutlet=function(t,e,n){var i=[{provide:y.b,useValue:e},{provide:b.a,useValue:t}],o=parentLoadedConfig(e.snapshot),a=null,s=null;o&&(a=o.factoryResolver,s=o.injector,i.push({provide:r.ComponentFactoryResolver,useValue:a})),n.activate(e,a,s,r.ReflectiveInjector.resolve(i),t)},ActivateRoutes.prototype.deactivateOutletAndItChildren=function(t){t&&t.isActivated&&(this.deactivateOutletMap(t.outletMap),t.deactivate())},ActivateRoutes.prototype.deactivateOutletMap=function(t){var e=this;n.i(x.c)(t._outlets,function(t){return e.deactivateOutletAndItChildren(t)})},ActivateRoutes}()},function(t,e,n){"use strict";var r=n(0),i=n(241),o=(n.n(i),n(96)),a=(n.n(o),n(97)),s=(n.n(a),n(143)),c=(n.n(s),n(46));n.d(e,"c",function(){return l}),n.d(e,"a",function(){return u}),n.d(e,"b",function(){return p});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var l=new r.OpaqueToken("ROUTES"),u=function(){function LoadedRouterConfig(t,e,n){this.routes=t,this.injector=e,this.factoryResolver=n}return LoadedRouterConfig}(),p=function(){function RouterConfigLoader(t,e){this.loader=t,this.compiler=e}return RouterConfigLoader.prototype.load=function(t,e){return a.map.call(this.loadModuleFactory(e),function(e){var r=e.create(t);return new u(n.i(c.a)(r.injector.get(l)),r.injector,r.componentFactoryResolver)})},RouterConfigLoader.prototype.loadModuleFactory=function(t){var e=this;if("string"==typeof t)return n.i(i.fromPromise)(this.loader.load(t));var a=this.compiler instanceof r.Compiler;return s.mergeMap.call(n.i(c.b)(t()),function(t){return a?n.i(o.of)(t):n.i(i.fromPromise)(e.compiler.compileModuleAsync(t))})},RouterConfigLoader}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function RouterOutletMap(){this._outlets={}}return RouterOutletMap.prototype.registerOutlet=function(t,e){this._outlets[t]=e},RouterOutletMap.prototype.removeOutlet=function(t){this._outlets[t]=void 0},RouterOutletMap}()},function(t,e,n){"use strict";var r=n(49),i=n(27),o=n(5),a=n(48),s=n(11);t.exports=function(t,e,n){var c=s(t),l=n(a,c,""[t]),u=l[0],p=l[1];o(function(){var e={};return e[c]=function(){return 7},7!=""[t](e)})&&(i(String.prototype,t,u),r(RegExp.prototype,c,2==e?function(t,e){return p.call(t,this,e)}:function(t){return p.call(t,this)}))}},function(t,e,n){var r=n(72),i=n(369),o=n(367),a=n(4),s=n(31),c=n(383),l={},u={},e=t.exports=function(t,e,n,p,d){var f,h,m,v,g=d?function(){return t}:c(t),b=r(n,p,e?2:1),y=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(o(g)){for(f=s(t.length);f>y;y++)if(v=e?b(a(h=t[y])[0],h[1]):b(t[y]),v===l||v===u)return v}else for(m=g.call(t);!(h=m.next()).done;)if(v=i(m,b,h.value,e),v===l||v===u)return v};e.BREAK=l,e.RETURN=u},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(18).f,i=n(26),o=n(11)("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},function(t,e,n){var r=n(14),i="__core-js_shared__",o=r[i]||(r[i]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,e,n){var r=n(1),i=n(48),o=n(5),a=n(211),s="["+a+"]",c="​…",l=RegExp("^"+s+s+"*"),u=RegExp(s+s+"*$"),p=function(t,e,n){var i={},s=o(function(){return!!a[t]()||c[t]()!=c}),l=i[t]=s?e(d):a[t];n&&(i[n]=l),r(r.P+r.F*s,"String",i)},d=p.trim=function(t,e){return t=String(i(t)),1&e&&(t=t.replace(l,"")),2&e&&(t=t.replace(u,"")),t};t.exports=p},function(t,e,n){"use strict";var r=n(361),i={};i[n(11)("toStringTag")]="z",i+""!="[object z]"&&n(27)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(t,e,n){"use strict";var r=n(380)(!0);n(202)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(399),s=function(){function CollapseModule(){}return CollapseModule=r([o.NgModule({declarations:[a.CollapseDirective],exports:[a.CollapseDirective]}),i("design:paramtypes",[])],CollapseModule)}();e.CollapseModule=s},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(689),s="DD",c="MMMM",l="YYYY",u="dd",p="MMMM YYYY",d="YYYY",f="day",h="day",m="year",v=!0,g=!1,b=0,y=20,_=!1,w=function(){function DatePickerInnerComponent(){this.selectionDone=new o.EventEmitter((void 0)),this.stepDay={},this.stepMonth={},this.stepYear={},this.modes=["day","month","year"],this.dateFormatter=new a.DateFormatter,this.update=new o.EventEmitter((!1))}return Object.defineProperty(DatePickerInnerComponent.prototype,"activeDate",{get:function(){return this._activeDate},set:function(t){this._activeDate=t},enumerable:!0,configurable:!0}),DatePickerInnerComponent.prototype.ngOnInit=function(){this.formatDay=this.formatDay||s,this.formatMonth=this.formatMonth||c,this.formatYear=this.formatYear||l,this.formatDayHeader=this.formatDayHeader||u,this.formatDayTitle=this.formatDayTitle||p,this.formatMonthTitle=this.formatMonthTitle||d,this.showWeeks=void 0===this.showWeeks?v:this.showWeeks,this.onlyCurrentMonth=void 0===this.onlyCurrentMonth?g:this.onlyCurrentMonth,this.startingDay=this.startingDay||b,this.yearRange=this.yearRange||y,this.shortcutPropagation=this.shortcutPropagation||_,this.datepickerMode=this.datepickerMode||f,this.minMode=this.minMode||h,this.maxMode=this.maxMode||m,this.uniqueId="datepicker--"+Math.floor(1e4*Math.random()),this.initDate?(this.activeDate=this.initDate,this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate)):void 0===this.activeDate&&(this.activeDate=new Date)},DatePickerInnerComponent.prototype.ngOnChanges=function(){this.refreshView()},DatePickerInnerComponent.prototype.setCompareHandler=function(t,e){"day"===e&&(this.compareHandlerDay=t),"month"===e&&(this.compareHandlerMonth=t),"year"===e&&(this.compareHandlerYear=t)},DatePickerInnerComponent.prototype.compare=function(t,e){if(void 0!==t&&void 0!==e)return"day"===this.datepickerMode&&this.compareHandlerDay?this.compareHandlerDay(t,e):"month"===this.datepickerMode&&this.compareHandlerMonth?this.compareHandlerMonth(t,e):"year"===this.datepickerMode&&this.compareHandlerYear?this.compareHandlerYear(t,e):void 0},DatePickerInnerComponent.prototype.setRefreshViewHandler=function(t,e){"day"===e&&(this.refreshViewHandlerDay=t),"month"===e&&(this.refreshViewHandlerMonth=t),"year"===e&&(this.refreshViewHandlerYear=t)},DatePickerInnerComponent.prototype.refreshView=function(){"day"===this.datepickerMode&&this.refreshViewHandlerDay&&this.refreshViewHandlerDay(),"month"===this.datepickerMode&&this.refreshViewHandlerMonth&&this.refreshViewHandlerMonth(),"year"===this.datepickerMode&&this.refreshViewHandlerYear&&this.refreshViewHandlerYear()},DatePickerInnerComponent.prototype.dateFilter=function(t,e){return this.dateFormatter.format(t,e)},DatePickerInnerComponent.prototype.isActive=function(t){return 0===this.compare(t.date,this.activeDate)&&(this.activeDateId=t.uid,!0)},DatePickerInnerComponent.prototype.createDateObject=function(t,e){var n={};return n.date=new Date(t.getFullYear(),t.getMonth(),t.getDate()),n.label=this.dateFilter(t,e),n.selected=0===this.compare(t,this.selectedDate),n.disabled=this.isDisabled(t),n.current=0===this.compare(t,new Date),n.customClass=this.getCustomClassForDate(n.date),n},DatePickerInnerComponent.prototype.split=function(t,e){for(var n=[];t.length>0;)n.push(t.splice(0,e));return n},DatePickerInnerComponent.prototype.fixTimeZone=function(t){var e=t.getHours();return new Date(t.getFullYear(),t.getMonth(),t.getDate(),23===e?e+2:0)},DatePickerInnerComponent.prototype.select=function(t){this.datepickerMode===this.minMode?(this.activeDate||(this.activeDate=new Date(0,0,0,0,0,0,0)),this.activeDate=new Date(t.getFullYear(),t.getMonth(),t.getDate()),this.selectionDone.emit(this.activeDate)):(this.activeDate=t,this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)-1]),this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate),this.refreshView()},DatePickerInnerComponent.prototype.move=function(t){var e;if("day"===this.datepickerMode&&(e=this.stepDay),"month"===this.datepickerMode&&(e=this.stepMonth),"year"===this.datepickerMode&&(e=this.stepYear),e){var n=this.activeDate.getFullYear()+t*(e.years||0),r=this.activeDate.getMonth()+t*(e.months||0);this.activeDate=new Date(n,r,1),this.refreshView()}},DatePickerInnerComponent.prototype.toggleMode=function(t){t=t||1,this.datepickerMode===this.maxMode&&1===t||this.datepickerMode===this.minMode&&t===-1||(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)+t],this.refreshView())},DatePickerInnerComponent.prototype.getCustomClassForDate=function(t){var e=this;if(!this.customClass)return"";var n=this.customClass.find(function(n){return n.date.valueOf()===t.valueOf()&&n.mode===e.datepickerMode},this);return void 0===n?"":n.clazz},DatePickerInnerComponent.prototype.isDisabled=function(t){return this.minDate&&this.compare(t,this.minDate)<0||this.maxDate&&this.compare(t,this.maxDate)>0},r([o.Input(),i("design:type",String)],DatePickerInnerComponent.prototype,"datepickerMode",void 0),r([o.Input(),i("design:type",Number)],DatePickerInnerComponent.prototype,"startingDay",void 0),r([o.Input(),i("design:type",Number)],DatePickerInnerComponent.prototype,"yearRange",void 0),r([o.Input(),i("design:type",Date)],DatePickerInnerComponent.prototype,"minDate",void 0),r([o.Input(),i("design:type",Date)],DatePickerInnerComponent.prototype,"maxDate",void 0),r([o.Input(),i("design:type",String)],DatePickerInnerComponent.prototype,"minMode",void 0),r([o.Input(),i("design:type",String)],DatePickerInnerComponent.prototype,"maxMode",void 0),r([o.Input(),i("design:type",Boolean)],DatePickerInnerComponent.prototype,"showWeeks",void 0),r([o.Input(),i("design:type",String)],DatePickerInnerComponent.prototype,"formatDay",void 0),r([o.Input(),i("design:type",String)],DatePickerInnerComponent.prototype,"formatMonth",void 0),r([o.Input(),i("design:type",String)],DatePickerInnerComponent.prototype,"formatYear",void 0),r([o.Input(),i("design:type",String)],DatePickerInnerComponent.prototype,"formatDayHeader",void 0),r([o.Input(),i("design:type",String)],DatePickerInnerComponent.prototype,"formatDayTitle",void 0),r([o.Input(),i("design:type",String)],DatePickerInnerComponent.prototype,"formatMonthTitle",void 0),r([o.Input(),i("design:type",Boolean)],DatePickerInnerComponent.prototype,"onlyCurrentMonth",void 0),r([o.Input(),i("design:type",Boolean)],DatePickerInnerComponent.prototype,"shortcutPropagation",void 0),r([o.Input(),i("design:type",Array)],DatePickerInnerComponent.prototype,"customClass",void 0),r([o.Input(),i("design:type",Object)],DatePickerInnerComponent.prototype,"dateDisabled",void 0),r([o.Input(),i("design:type",Date)],DatePickerInnerComponent.prototype,"initDate",void 0),r([o.Output(),i("design:type",o.EventEmitter)],DatePickerInnerComponent.prototype,"selectionDone",void 0),r([o.Output(),i("design:type",o.EventEmitter)],DatePickerInnerComponent.prototype,"update",void 0),r([o.Input(),i("design:type",Date)],DatePickerInnerComponent.prototype,"activeDate",null),DatePickerInnerComponent=r([o.Component({selector:"datepicker-inner",template:'\n    <div *ngIf="datepickerMode" class="well well-sm bg-faded p-a card" role="application" ><!--&lt;!&ndash;ng-keydown="keydown($event)"&ndash;&gt;-->\n      <ng-content></ng-content>\n    </div>\n  '}),i("design:paramtypes",[])],DatePickerInnerComponent)}();e.DatePickerInnerComponent=w},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(694),s=function(){function DropdownDirective(t,e){this.onToggle=new o.EventEmitter((!1)),this.isOpenChange=new o.EventEmitter((!1)),this.addClass=!0,this.el=t,this._changeDetector=e}return Object.defineProperty(DropdownDirective.prototype,"isOpen",{get:function(){return this._isOpen},set:function(t){this._isOpen=!!t,this.isOpen?(this.focusToggleElement(),a.dropdownService.open(this)):(a.dropdownService.close(this),this.selectedOption=void 0),this.onToggle.emit(this.isOpen),this.isOpenChange.emit(this.isOpen),this._changeDetector.markForCheck()},enumerable:!0,configurable:!0}),DropdownDirective.prototype.ngOnInit=function(){this.autoClose=this.autoClose||a.NONINPUT,this.isOpen},DropdownDirective.prototype.ngOnDestroy=function(){this.appendToBody&&this.menuEl&&this.menuEl.nativeElement.remove()},Object.defineProperty(DropdownDirective.prototype,"dropDownMenu",{set:function(t){this.menuEl=t.el,this.appendToBody&&window.document.body.appendChild(this.menuEl.nativeElement)},enumerable:!0,configurable:!0}),Object.defineProperty(DropdownDirective.prototype,"dropDownToggle",{set:function(t){this.toggleEl=t.el},enumerable:!0,configurable:!0}),DropdownDirective.prototype.toggle=function(t){return this.isOpen=arguments.length?!!t:!this.isOpen},DropdownDirective.prototype.focusDropdownEntry=function(t){var e=this.menuEl?this.menuEl.nativeElement:this.el.nativeElement.getElementsByTagName("ul")[0];if(e){var n=e.getElementsByTagName("a");if(n&&n.length){switch(t){case 40:if("number"!=typeof this.selectedOption){this.selectedOption=0;break}if(this.selectedOption===n.length-1)break;this.selectedOption++;break;case 38:if("number"!=typeof this.selectedOption)return;if(0===this.selectedOption)break;this.selectedOption--}n[this.selectedOption].focus()}}},DropdownDirective.prototype.focusToggleElement=function(){this.toggleEl&&this.toggleEl.nativeElement.focus()},r([o.HostBinding("class.open"),o.Input(),i("design:type",Boolean)],DropdownDirective.prototype,"isOpen",null),r([o.Input(),i("design:type",String)],DropdownDirective.prototype,"autoClose",void 0),r([o.Input(),i("design:type",Boolean)],DropdownDirective.prototype,"keyboardNav",void 0),r([o.Input(),i("design:type",Boolean)],DropdownDirective.prototype,"appendToBody",void 0),r([o.Output(),i("design:type",o.EventEmitter)],DropdownDirective.prototype,"onToggle",void 0),r([o.Output(),i("design:type",o.EventEmitter)],DropdownDirective.prototype,"isOpenChange",void 0),r([o.HostBinding("class.dropdown"),i("design:type",Boolean)],DropdownDirective.prototype,"addClass",void 0),DropdownDirective=r([o.Directive({selector:"[dropdown]",exportAs:"bs-dropdown"}),i("design:paramtypes",[o.ElementRef,o.ChangeDetectorRef])],DropdownDirective)}();e.DropdownDirective=s},function(t,e,n){"use strict";var r=n(247),i=n(756),o=n(425),a=n(759),s=n(424),c=n(755),l=function(){function Subscription(t){this.closed=!1,t&&(this._unsubscribe=t)}return Subscription.prototype.unsubscribe=function(){var t,e=!1;if(!this.closed){this.closed=!0;var n=this,l=n._unsubscribe,u=n._subscriptions;if(this._subscriptions=null,o.isFunction(l)){var p=a.tryCatch(l).call(this);p===s.errorObject&&(e=!0,(t=t||[]).push(s.errorObject.e))}if(r.isArray(u))for(var d=-1,f=u.length;++d<f;){var h=u[d];if(i.isObject(h)){var p=a.tryCatch(h.unsubscribe).call(h);if(p===s.errorObject){e=!0,t=t||[];var m=s.errorObject.e;m instanceof c.UnsubscriptionError?t=t.concat(m.errors):t.push(m)}}}if(e)throw new c.UnsubscriptionError(t)}},Subscription.prototype.add=function(t){if(!t||t===Subscription.EMPTY)return Subscription.EMPTY;if(t===this)return this;var e=t;switch(typeof t){case"function":e=new Subscription(t);case"object":if(e.closed||"function"!=typeof e.unsubscribe)break;this.closed?e.unsubscribe():(this._subscriptions||(this._subscriptions=[])).push(e);break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}return e},Subscription.prototype.remove=function(t){if(null!=t&&t!==this&&t!==Subscription.EMPTY){var e=this._subscriptions;if(e){var n=e.indexOf(t);n!==-1&&e.splice(n,1)}}},Subscription.EMPTY=function(t){return t.closed=!0,t}(new Subscription),Subscription}();e.Subscription=l},function(t,e,n){"use strict";function mergeMap(t,e,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"number"==typeof e&&(n=e,e=null),this.lift(new a(t,e,n))}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(248),o=n(239);e.mergeMap=mergeMap;var a=function(){function MergeMapOperator(t,e,n){void 0===n&&(n=Number.POSITIVE_INFINITY),this.project=t,this.resultSelector=e,this.concurrent=n}return MergeMapOperator.prototype.call=function(t,e){return e._subscribe(new s(t,this.project,this.resultSelector,this.concurrent))},MergeMapOperator}();e.MergeMapOperator=a;var s=function(t){function MergeMapSubscriber(e,n,r,i){void 0===i&&(i=Number.POSITIVE_INFINITY),t.call(this,e),this.project=n,this.resultSelector=r,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return r(MergeMapSubscriber,t),MergeMapSubscriber.prototype._next=function(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)},MergeMapSubscriber.prototype._tryNext=function(t){var e,n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e,t,n)},MergeMapSubscriber.prototype._innerSub=function(t,e,n){this.add(i.subscribeToResult(this,t,e,n))},MergeMapSubscriber.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete()},MergeMapSubscriber.prototype.notifyNext=function(t,e,n,r,i){this.resultSelector?this._notifyResultSelector(t,e,n,r):this.destination.next(e)},MergeMapSubscriber.prototype._notifyResultSelector=function(t,e,n,r){var i;try{i=this.resultSelector(t,e,n,r)}catch(o){return void this.destination.error(o)}this.destination.next(i)},MergeMapSubscriber.prototype.notifyComplete=function(t){var e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},MergeMapSubscriber}(o.OuterSubscriber);e.MergeMapSubscriber=s},function(t,e,n){"use strict";var r=n(0),i=n(98),o=n(12);n.d(e,"a",function(){return s}),n.d(e,"b",function(){return c}),n.d(e,"c",function(){return l}),n.d(e,"d",function(){return u});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=new Object,s=function(){function SwitchView(t,e){this._viewContainerRef=t,this._templateRef=e}return SwitchView.prototype.create=function(){this._viewContainerRef.createEmbeddedView(this._templateRef)},SwitchView.prototype.destroy=function(){this._viewContainerRef.clear()},SwitchView}(),c=function(){function NgSwitch(){this._useDefault=!1,this._valueViews=new Map,this._activeViews=[]}return Object.defineProperty(NgSwitch.prototype,"ngSwitch",{set:function(t){this._emptyAllActiveViews(),this._useDefault=!1;var e=this._valueViews.get(t);n.i(o.c)(e)&&(this._useDefault=!0,e=n.i(o.r)(this._valueViews.get(a))),this._activateViews(e),this._switchValue=t},enumerable:!0,configurable:!0}),NgSwitch.prototype._onCaseValueChanged=function(t,e,n){this._deregisterView(t,n),this._registerView(e,n),t===this._switchValue?(n.destroy(),i.b.remove(this._activeViews,n)):e===this._switchValue&&(this._useDefault&&(this._useDefault=!1,this._emptyAllActiveViews()),n.create(),this._activeViews.push(n)),0!==this._activeViews.length||this._useDefault||(this._useDefault=!0,this._activateViews(this._valueViews.get(a)))},NgSwitch.prototype._emptyAllActiveViews=function(){for(var t=this._activeViews,e=0;e<t.length;e++)t[e].destroy();this._activeViews=[]},NgSwitch.prototype._activateViews=function(t){if(n.i(o.b)(t)){for(var e=0;e<t.length;e++)t[e].create();this._activeViews=t}},NgSwitch.prototype._registerView=function(t,e){var r=this._valueViews.get(t);n.i(o.c)(r)&&(r=[],this._valueViews.set(t,r)),r.push(e)},NgSwitch.prototype._deregisterView=function(t,e){if(t!==a){var n=this._valueViews.get(t);1==n.length?this._valueViews.delete(t):i.b.remove(n,e)}},NgSwitch.decorators=[{type:r.Directive,args:[{selector:"[ngSwitch]"}]}],NgSwitch.ctorParameters=[],NgSwitch.propDecorators={ngSwitch:[{type:r.Input}]},NgSwitch}(),l=function(){function NgSwitchCase(t,e,n){this._value=a,this._switch=n,this._view=new s(t,e)}return Object.defineProperty(NgSwitchCase.prototype,"ngSwitchCase",{set:function(t){this._switch._onCaseValueChanged(this._value,t,this._view),this._value=t},enumerable:!0,configurable:!0}),NgSwitchCase.decorators=[{type:r.Directive,args:[{selector:"[ngSwitchCase]"}]}],NgSwitchCase.ctorParameters=[{type:r.ViewContainerRef},{type:r.TemplateRef},{type:c,decorators:[{type:r.Host}]}],NgSwitchCase.propDecorators={ngSwitchCase:[{type:r.Input}]},NgSwitchCase}(),u=function(){function NgSwitchDefault(t,e,n){n._registerView(a,new s(t,e))}return NgSwitchDefault.decorators=[{type:r.Directive,args:[{selector:"[ngSwitchDefault]"}]}],NgSwitchDefault.ctorParameters=[{type:r.ViewContainerRef},{type:r.TemplateRef},{type:c,decorators:[{type:r.Host}]}],NgSwitchDefault}()},function(t,e,n){"use strict";function _stripBaseHref(t,e){return t.length>0&&e.startsWith(t)?e.substring(t.length):e}function _stripIndexHtml(t){return/\/index.html$/g.test(t)?t.substring(0,t.length-11):t}var r=n(0),i=n(100);n.d(e,"Location",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function Location(t){var e=this;this._subject=new r.EventEmitter,this._platformStrategy=t;var n=this._platformStrategy.getBaseHref();this._baseHref=Location.stripTrailingSlash(_stripIndexHtml(n)),this._platformStrategy.onPopState(function(t){e._subject.emit({url:e.path(!0),pop:!0,type:t.type})})}return Location.prototype.path=function(t){return void 0===t&&(t=!1),this.normalize(this._platformStrategy.path(t))},Location.prototype.isCurrentPathEqualTo=function(t,e){return void 0===e&&(e=""),this.path()==this.normalize(t+Location.normalizeQueryParams(e))},Location.prototype.normalize=function(t){return Location.stripTrailingSlash(_stripBaseHref(this._baseHref,_stripIndexHtml(t)))},Location.prototype.prepareExternalUrl=function(t){return t.length>0&&!t.startsWith("/")&&(t="/"+t),this._platformStrategy.prepareExternalUrl(t)},Location.prototype.go=function(t,e){void 0===e&&(e=""),this._platformStrategy.pushState(null,"",t,e)},Location.prototype.replaceState=function(t,e){void 0===e&&(e=""),this._platformStrategy.replaceState(null,"",t,e)},Location.prototype.forward=function(){this._platformStrategy.forward()},Location.prototype.back=function(){this._platformStrategy.back()},Location.prototype.subscribe=function(t,e,n){return void 0===e&&(e=null),void 0===n&&(n=null),this._subject.subscribe({next:t,error:e,complete:n})},Location.normalizeQueryParams=function(t){return t.length>0&&"?"!=t.substring(0,1)?"?"+t:t},Location.joinWithSlash=function(t,e){if(0==t.length)return e;if(0==e.length)return t;var n=0;return t.endsWith("/")&&n++,e.startsWith("/")&&n++,2==n?t+e.substring(1):1==n?t+e:t+"/"+e},Location.stripTrailingSlash=function(t){return/\/$/g.test(t)&&(t=t.substring(0,t.length-1)),t},Location.decorators=[{type:r.Injectable}],Location.ctorParameters=[{type:i.LocationStrategy}],Location}()},function(t,e,n){"use strict";n.d(e,"PlatformLocation",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function PlatformLocation(){}return Object.defineProperty(PlatformLocation.prototype,"pathname",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(PlatformLocation.prototype,"search",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(PlatformLocation.prototype,"hash",{get:function(){return null},enumerable:!0,configurable:!0}),PlatformLocation}()},function(t,e,n){"use strict";function isWhitespace(t){return t>=i&&t<=l||t==nt}function isDigit(t){return M<=t&&t<=D}function isAsciiLetter(t){return t>=z&&t<=Q||t>=R&&t<=L}function isAsciiHexDigit(t){return t>=z&&t<=q||t>=R&&t<=N||isDigit(t)}n.d(e,"a",function(){return r}),n.d(e,"Y",function(){return i}),n.d(e,"S",function(){return o}),n.d(e,"_0",function(){return a}),n.d(e,"U",function(){return s}),n.d(e,"W",function(){return c}),n.d(e,"b",function(){return l}),n.d(e,"A",function(){return u}),n.d(e,"o",function(){return p}),n.d(e,"p",function(){return d}),n.d(e,"M",function(){return f}),n.d(e,"u",function(){return h}),n.d(e,"B",function(){return m}),n.d(e,"n",function(){return v}),n.d(e,"e",function(){return g}),n.d(e,"f",function(){return b}),n.d(e,"s",function(){return y}),n.d(e,"q",function(){return _}),n.d(e,"k",function(){return w}),n.d(e,"r",function(){return x}),n.d(e,"d",function(){return C}),n.d(e,"t",function(){return S}),n.d(e,"l",function(){return k}),n.d(e,"m",function(){return E}),n.d(e,"x",function(){return P}),n.d(e,"z",function(){return A}),n.d(e,"y",function(){return T}),n.d(e,"w",function(){return O}),n.d(e,"_3",function(){return M}),n.d(e,"_4",function(){return D}),n.d(e,"J",function(){return R}),n.d(e,"P",function(){return I}),n.d(e,"_2",function(){return V}),n.d(e,"K",function(){return L}),n.d(e,"i",function(){return j}),n.d(e,"F",function(){return F}),n.d(e,"j",function(){return W}),n.d(e,"v",function(){return B}),n.d(e,"L",function(){return U}),n.d(e,"H",function(){return z}),n.d(e,"O",function(){return H}),n.d(e,"T",function(){return q}),n.d(e,"R",function(){return G}),n.d(e,"V",function(){return Y}),n.d(e,"X",function(){return K}),n.d(e,"G",function(){return Z}),n.d(e,"Z",function(){return $}),n.d(e,"_1",function(){return J}),n.d(e,"I",function(){return Q}),n.d(e,"g",function(){return X}),n.d(e,"C",function(){return tt}),n.d(e,"h",function(){return et}),n.d(e,"D",function(){return nt}),n.d(e,"Q",function(){return rt}),e.E=isWhitespace,e.c=isDigit,e.N=isAsciiLetter,e._5=isAsciiHexDigit;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=0,i=9,o=10,a=11,s=12,c=13,l=32,u=33,p=34,d=35,f=36,h=37,m=38,v=39,g=40,b=41,y=42,_=43,w=44,x=45,C=46,S=47,k=58,E=59,P=60,A=61,T=62,O=63,M=48,D=57,R=65,I=69,N=70,V=88,L=90,j=91,F=92,W=93,B=94,U=95,z=97,H=101,q=102,G=110,Y=114,K=116,Z=117,$=118,J=120,Q=122,X=123,tt=124,et=125,nt=160,rt=96},function(t,e,n){"use strict";function _cloneDirectiveWithTemplate(t,e){return new i.q({type:t.type,isComponent:t.isComponent,selector:t.selector,exportAs:t.exportAs,changeDetection:t.changeDetection,inputs:t.inputs,outputs:t.outputs,hostListeners:t.hostListeners,hostProperties:t.hostProperties,hostAttributes:t.hostAttributes,providers:t.providers,viewProviders:t.viewProviders,queries:t.queries,viewQueries:t.viewQueries,entryComponents:t.entryComponents,template:e})}var r=n(0),i=n(20),o=n(78),a=n(6),s=n(3),c=n(55),l=n(104),u=n(40),p=n(158),d=n(285),f=n(286),h=n(80),m=n(23);n.d(e,"a",function(){return v});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var v=function(){function DirectiveNormalizer(t,e,n,r){this._resourceLoader=t,this._urlResolver=e,this._htmlParser=n,this._config=r,this._resourceLoaderCache=new Map}return DirectiveNormalizer.prototype.clearCache=function(){this._resourceLoaderCache.clear()},DirectiveNormalizer.prototype.clearCacheFor=function(t){var e=this;t.isComponent&&(this._resourceLoaderCache.delete(t.template.templateUrl),t.template.externalStylesheets.forEach(function(t){e._resourceLoaderCache.delete(t.moduleUrl)}))},DirectiveNormalizer.prototype._fetch=function(t){var e=this._resourceLoaderCache.get(t);return e||(e=this._resourceLoader.get(t),this._resourceLoaderCache.set(t,e)),e},DirectiveNormalizer.prototype.normalizeDirective=function(t){var e=this;if(!t.isComponent)return new m.g(t,Promise.resolve(t));var r,i=null;if(n.i(s.a)(t.template.template))i=this.normalizeTemplateSync(t.type,t.template),r=Promise.resolve(i);else{if(!t.template.templateUrl)throw new Error("No template specified for component "+t.type.name);r=this.normalizeTemplateAsync(t.type,t.template)}if(i&&0===i.styleUrls.length){var o=_cloneDirectiveWithTemplate(t,i);return new m.g(o,Promise.resolve(o))}return new m.g(null,r.then(function(t){return e.normalizeExternalStylesheets(t)}).then(function(e){return _cloneDirectiveWithTemplate(t,e)}))},DirectiveNormalizer.prototype.normalizeTemplateSync=function(t,e){return this.normalizeLoadedTemplate(t,e,e.template,t.moduleUrl)},DirectiveNormalizer.prototype.normalizeTemplateAsync=function(t,e){var n=this,r=this._urlResolver.resolve(t.moduleUrl,e.templateUrl);return this._fetch(r).then(function(i){return n.normalizeLoadedTemplate(t,e,i,r)})},DirectiveNormalizer.prototype.normalizeLoadedTemplate=function(t,e,o,a){var l=u.b.fromArray(e.interpolation),p=this._htmlParser.parse(o,t.name,!1,l);if(p.errors.length>0){var d=p.errors.join("\n");throw new Error("Template parse errors:\n"+d)}var f=this.normalizeStylesheet(new i.o({styles:e.styles,styleUrls:e.styleUrls,moduleUrl:t.moduleUrl})),h=new g;c.g(h,p.rootNodes);var m=this.normalizeStylesheet(new i.o({styles:h.styles,styleUrls:h.styleUrls,moduleUrl:a})),v=f.styles.concat(m.styles),b=f.styleUrls.concat(m.styleUrls),y=e.encapsulation;return n.i(s.c)(y)&&(y=this._config.defaultEncapsulation),y===r.ViewEncapsulation.Emulated&&0===v.length&&0===b.length&&(y=r.ViewEncapsulation.None),new i.p({encapsulation:y,template:o,templateUrl:a,styles:v,styleUrls:b,externalStylesheets:e.externalStylesheets,ngContentSelectors:h.ngContentSelectors,animations:e.animations,interpolation:e.interpolation})},DirectiveNormalizer.prototype.normalizeExternalStylesheets=function(t){return this._loadMissingExternalStylesheets(t.styleUrls).then(function(e){return new i.p({encapsulation:t.encapsulation,template:t.template,templateUrl:t.templateUrl,styles:t.styles,styleUrls:t.styleUrls,externalStylesheets:e,ngContentSelectors:t.ngContentSelectors,animations:t.animations,interpolation:t.interpolation})})},DirectiveNormalizer.prototype._loadMissingExternalStylesheets=function(t,e){var n=this;return void 0===e&&(e=new Map),Promise.all(t.filter(function(t){return!e.has(t)}).map(function(t){return n._fetch(t).then(function(r){var o=n.normalizeStylesheet(new i.o({styles:[r],moduleUrl:t}));return e.set(t,o),n._loadMissingExternalStylesheets(o.styleUrls,e)})})).then(function(t){return a.c.values(e)})},DirectiveNormalizer.prototype.normalizeStylesheet=function(t){var e=this,r=t.styleUrls.filter(d.a).map(function(n){return e._urlResolver.resolve(t.moduleUrl,n)}),o=t.styles.map(function(i){var o=n.i(d.b)(e._urlResolver,t.moduleUrl,i);return r.push.apply(r,o.styleUrls),o.style});return new i.o({styles:o,styleUrls:r,moduleUrl:t.moduleUrl})},DirectiveNormalizer.decorators=[{type:r.Injectable}],DirectiveNormalizer.ctorParameters=[{type:p.a},{type:h.a},{type:l.b},{type:o.a}],DirectiveNormalizer}(),g=function(){function TemplatePreparseVisitor(){this.ngContentSelectors=[],this.styles=[],this.styleUrls=[],this.ngNonBindableStackCount=0}return TemplatePreparseVisitor.prototype.visitElement=function(t,e){var r=n.i(f.a)(t);switch(r.type){case f.b.NG_CONTENT:0===this.ngNonBindableStackCount&&this.ngContentSelectors.push(r.selectAttr);break;case f.b.STYLE:var i="";t.children.forEach(function(t){t instanceof c.d&&(i+=t.value)}),this.styles.push(i);break;case f.b.STYLESHEET:this.styleUrls.push(r.hrefAttr)}return r.nonBindable&&this.ngNonBindableStackCount++,c.g(this,t.children),r.nonBindable&&this.ngNonBindableStackCount--,null},TemplatePreparseVisitor.prototype.visitComment=function(t,e){return null},TemplatePreparseVisitor.prototype.visitAttribute=function(t,e){return null},TemplatePreparseVisitor.prototype.visitText=function(t,e){return null},TemplatePreparseVisitor.prototype.visitExpansion=function(t,e){return null},TemplatePreparseVisitor.prototype.visitExpansionCase=function(t,e){return null},TemplatePreparseVisitor}()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function _isDirectiveMetadata(t){return t instanceof r.DirectiveMetadata}var r=n(0),i=n(6),o=n(3),a=n(17),s=n(23);n.d(e,"a",function(){return c});var c=function(){function DirectiveResolver(t){void 0===t&&(t=a.P),this._reflector=t}return DirectiveResolver.prototype.resolve=function(t,e){void 0===e&&(e=!0);var i=this._reflector.annotations(n.i(r.resolveForwardRef)(t));if(n.i(o.a)(i)){var a=i.find(_isDirectiveMetadata);if(n.i(o.a)(a)){var s=this._reflector.propMetadata(t);return this._mergeWithPropertyMetadata(a,s,t)}}if(e)throw new Error("No Directive annotation found on "+n.i(o.q)(t));return null},DirectiveResolver.prototype._mergeWithPropertyMetadata=function(t,e,a){var s=[],c=[],l={},u={};return i.b.forEach(e,function(t,e){t.forEach(function(t){if(t instanceof r.InputMetadata)n.i(o.a)(t.bindingPropertyName)?s.push(e+": "+t.bindingPropertyName):s.push(e);else if(t instanceof r.OutputMetadata)n.i(o.a)(t.bindingPropertyName)?c.push(e+": "+t.bindingPropertyName):c.push(e);else if(t instanceof r.HostBindingMetadata)n.i(o.a)(t.hostPropertyName)?l["["+t.hostPropertyName+"]"]=e:l["["+e+"]"]=e;else if(t instanceof r.HostListenerMetadata){var i=n.i(o.a)(t.args)?t.args.join(", "):"";l["("+t.eventName+")"]=e+"("+i+")"}else t instanceof r.QueryMetadata&&(u[e]=t)})}),this._merge(t,s,c,l,u,a)},DirectiveResolver.prototype._extractPublicName=function(t){return n.i(s.b)(t,[null,t])[1].trim()},DirectiveResolver.prototype._merge=function(t,e,a,s,c,l){var u,p=this;if(n.i(o.a)(t.inputs)){var d=t.inputs.map(function(t){return p._extractPublicName(t)});e.forEach(function(t){var e=p._extractPublicName(t);if(d.indexOf(e)>-1)throw new Error("Input '"+e+"' defined multiple times in '"+n.i(o.q)(l)+"'")}),u=t.inputs.concat(e)}else u=e;var f;if(n.i(o.a)(t.outputs)){var h=t.outputs.map(function(t){return p._extractPublicName(t)});a.forEach(function(t){var e=p._extractPublicName(t);if(h.indexOf(e)>-1)throw new Error("Output event '"+e+"' defined multiple times in '"+n.i(o.q)(l)+"'")}),f=t.outputs.concat(a)}else f=a;var m=n.i(o.a)(t.host)?i.b.merge(t.host,s):s,v=n.i(o.a)(t.queries)?i.b.merge(t.queries,c):c;return t instanceof r.ComponentMetadata?new r.ComponentMetadata({selector:t.selector,inputs:u,outputs:f,host:m,exportAs:t.exportAs,moduleId:t.moduleId,queries:v,changeDetection:t.changeDetection,providers:t.providers,viewProviders:t.viewProviders,entryComponents:t.entryComponents,template:t.template,templateUrl:t.templateUrl,styles:t.styles,styleUrls:t.styleUrls,encapsulation:t.encapsulation,animations:t.animations,interpolation:t.interpolation}):new r.DirectiveMetadata({selector:t.selector,inputs:u,outputs:f,host:m,exportAs:t.exportAs,queries:v,providers:t.providers})},DirectiveResolver.decorators=[{type:r.Injectable}],DirectiveResolver.ctorParameters=[{type:a.Y}],DirectiveResolver}()},function(t,e,n){"use strict";var r=n(6),i=n(3);n.d(e,"b",function(){return a}),n.d(e,"d",function(){return s}),n.d(e,"c",function(){return l}),n.d(e,"g",function(){return u}),n.d(e,"p",function(){return p}),n.d(e,"h",function(){return d}),n.d(e,"j",function(){return f}),n.d(e,"w",function(){return h}),n.d(e,"v",function(){return m}),n.d(e,"u",function(){return v}),n.d(e,"n",function(){return g}),n.d(e,"m",function(){return b}),n.d(e,"i",function(){return y}),n.d(e,"f",function(){return _}),n.d(e,"q",function(){return w}),n.d(e,"r",function(){return x}),n.d(e,"e",function(){return C}),n.d(e,"k",function(){return S}),n.d(e,"l",function(){return k}),n.d(e,"t",function(){return E}),n.d(e,"s",function(){return P}),n.d(e,"o",function(){return A}),n.d(e,"a",function(){return T}),n.d(e,"x",function(){return O}),n.d(e,"y",function(){return M});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(){function ParserError(t,e,n,r){this.input=e,this.errLocation=n,this.ctxLocation=r,this.message="Parser Error: "+t+" "+n+" ["+e+"] in "+r}return ParserError}(),s=function(){function ParseSpan(t,e){this.start=t,this.end=e}return ParseSpan}(),c=function(){function AST(t){this.span=t}return AST.prototype.visit=function(t,e){return void 0===e&&(e=null),null},AST.prototype.toString=function(){return"AST"},AST}(),l=function(t){function Quote(e,n,r,i){t.call(this,e),this.prefix=n,this.uninterpretedExpression=r,this.location=i}return o(Quote,t),Quote.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitQuote(this,e)},Quote.prototype.toString=function(){return"Quote"},Quote}(c),u=function(t){function EmptyExpr(){t.apply(this,arguments)}return o(EmptyExpr,t),EmptyExpr.prototype.visit=function(t,e){void 0===e&&(e=null)},EmptyExpr}(c),p=function(t){function ImplicitReceiver(){t.apply(this,arguments)}return o(ImplicitReceiver,t),ImplicitReceiver.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitImplicitReceiver(this,e)},ImplicitReceiver}(c),d=function(t){function Chain(e,n){t.call(this,e),this.expressions=n}return o(Chain,t),Chain.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitChain(this,e)},Chain}(c),f=function(t){function Conditional(e,n,r,i){t.call(this,e),this.condition=n,this.trueExp=r,this.falseExp=i}return o(Conditional,t),Conditional.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitConditional(this,e)},Conditional}(c),h=function(t){function PropertyRead(e,n,r){t.call(this,e),this.receiver=n,this.name=r}return o(PropertyRead,t),PropertyRead.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPropertyRead(this,e)},PropertyRead}(c),m=function(t){function PropertyWrite(e,n,r,i){t.call(this,e),this.receiver=n,this.name=r,this.value=i}return o(PropertyWrite,t),PropertyWrite.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPropertyWrite(this,e)},PropertyWrite}(c),v=function(t){function SafePropertyRead(e,n,r){t.call(this,e),this.receiver=n,this.name=r}return o(SafePropertyRead,t),SafePropertyRead.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitSafePropertyRead(this,e)},SafePropertyRead}(c),g=function(t){function KeyedRead(e,n,r){t.call(this,e),this.obj=n,this.key=r}return o(KeyedRead,t),KeyedRead.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitKeyedRead(this,e)},KeyedRead}(c),b=function(t){function KeyedWrite(e,n,r,i){t.call(this,e),this.obj=n,this.key=r,this.value=i}return o(KeyedWrite,t),KeyedWrite.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitKeyedWrite(this,e)},KeyedWrite}(c),y=function(t){function BindingPipe(e,n,r,i){t.call(this,e),this.exp=n,this.name=r,this.args=i}return o(BindingPipe,t),BindingPipe.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPipe(this,e)},BindingPipe}(c),_=function(t){function LiteralPrimitive(e,n){t.call(this,e),this.value=n}return o(LiteralPrimitive,t),LiteralPrimitive.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralPrimitive(this,e)},LiteralPrimitive}(c),w=function(t){function LiteralArray(e,n){t.call(this,e),this.expressions=n}return o(LiteralArray,t),LiteralArray.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralArray(this,e)},LiteralArray}(c),x=function(t){function LiteralMap(e,n,r){t.call(this,e),this.keys=n,this.values=r}return o(LiteralMap,t),LiteralMap.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralMap(this,e)},LiteralMap}(c),C=function(t){function Interpolation(e,n,r){t.call(this,e),this.strings=n,this.expressions=r}return o(Interpolation,t),Interpolation.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitInterpolation(this,e)},Interpolation}(c),S=function(t){function Binary(e,n,r,i){t.call(this,e),this.operation=n,this.left=r,this.right=i}return o(Binary,t),Binary.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitBinary(this,e)},Binary}(c),k=function(t){function PrefixNot(e,n){t.call(this,e),this.expression=n}return o(PrefixNot,t),PrefixNot.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPrefixNot(this,e)},PrefixNot}(c),E=function(t){function MethodCall(e,n,r,i){t.call(this,e),this.receiver=n,this.name=r,this.args=i}return o(MethodCall,t),MethodCall.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitMethodCall(this,e)},MethodCall}(c),P=function(t){function SafeMethodCall(e,n,r,i){t.call(this,e),this.receiver=n,this.name=r,this.args=i}return o(SafeMethodCall,t),SafeMethodCall.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitSafeMethodCall(this,e)},SafeMethodCall}(c),A=function(t){function FunctionCall(e,n,r){t.call(this,e),this.target=n,this.args=r}return o(FunctionCall,t),FunctionCall.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitFunctionCall(this,e)},FunctionCall}(c),T=function(t){function ASTWithSource(e,r,o,a){t.call(this,new s(0,n.i(i.c)(r)?0:r.length)),this.ast=e,this.source=r,this.location=o,this.errors=a}return o(ASTWithSource,t),ASTWithSource.prototype.visit=function(t,e){return void 0===e&&(e=null),this.ast.visit(t,e)},ASTWithSource.prototype.toString=function(){return this.source+" in "+this.location},ASTWithSource}(c),O=function(){function TemplateBinding(t,e,n,r){this.key=t,this.keyIsVar=e,this.name=n,this.expression=r}return TemplateBinding}(),M=function(){function RecursiveAstVisitor(){}return RecursiveAstVisitor.prototype.visitBinary=function(t,e){return t.left.visit(this),t.right.visit(this),null},RecursiveAstVisitor.prototype.visitChain=function(t,e){return this.visitAll(t.expressions,e)},RecursiveAstVisitor.prototype.visitConditional=function(t,e){return t.condition.visit(this),t.trueExp.visit(this),t.falseExp.visit(this),null},RecursiveAstVisitor.prototype.visitPipe=function(t,e){return t.exp.visit(this),this.visitAll(t.args,e),null},RecursiveAstVisitor.prototype.visitFunctionCall=function(t,e){return t.target.visit(this),this.visitAll(t.args,e),null},RecursiveAstVisitor.prototype.visitImplicitReceiver=function(t,e){return null},RecursiveAstVisitor.prototype.visitInterpolation=function(t,e){return this.visitAll(t.expressions,e)},RecursiveAstVisitor.prototype.visitKeyedRead=function(t,e){return t.obj.visit(this),t.key.visit(this),null},RecursiveAstVisitor.prototype.visitKeyedWrite=function(t,e){return t.obj.visit(this),t.key.visit(this),t.value.visit(this),null},RecursiveAstVisitor.prototype.visitLiteralArray=function(t,e){return this.visitAll(t.expressions,e)},RecursiveAstVisitor.prototype.visitLiteralMap=function(t,e){return this.visitAll(t.values,e)},RecursiveAstVisitor.prototype.visitLiteralPrimitive=function(t,e){return null},RecursiveAstVisitor.prototype.visitMethodCall=function(t,e){return t.receiver.visit(this),this.visitAll(t.args,e)},RecursiveAstVisitor.prototype.visitPrefixNot=function(t,e){return t.expression.visit(this),null},RecursiveAstVisitor.prototype.visitPropertyRead=function(t,e){return t.receiver.visit(this),null},RecursiveAstVisitor.prototype.visitPropertyWrite=function(t,e){return t.receiver.visit(this),t.value.visit(this),null},RecursiveAstVisitor.prototype.visitSafePropertyRead=function(t,e){return t.receiver.visit(this),null},RecursiveAstVisitor.prototype.visitSafeMethodCall=function(t,e){return t.receiver.visit(this),this.visitAll(t.args,e)},RecursiveAstVisitor.prototype.visitAll=function(t,e){var n=this;return t.forEach(function(t){return t.visit(n,e)}),null},RecursiveAstVisitor.prototype.visitQuote=function(t,e){return null},RecursiveAstVisitor}();(function(){function AstTransformer(){}return AstTransformer.prototype.visitImplicitReceiver=function(t,e){return t},AstTransformer.prototype.visitInterpolation=function(t,e){return new C(t.span,t.strings,this.visitAll(t.expressions))},AstTransformer.prototype.visitLiteralPrimitive=function(t,e){return new _(t.span,t.value)},AstTransformer.prototype.visitPropertyRead=function(t,e){return new h(t.span,t.receiver.visit(this),t.name)},AstTransformer.prototype.visitPropertyWrite=function(t,e){return new m(t.span,t.receiver.visit(this),t.name,t.value)},AstTransformer.prototype.visitSafePropertyRead=function(t,e){return new v(t.span,t.receiver.visit(this),t.name)},AstTransformer.prototype.visitMethodCall=function(t,e){return new E(t.span,t.receiver.visit(this),t.name,this.visitAll(t.args))},AstTransformer.prototype.visitSafeMethodCall=function(t,e){return new P(t.span,t.receiver.visit(this),t.name,this.visitAll(t.args))},AstTransformer.prototype.visitFunctionCall=function(t,e){return new A(t.span,t.target.visit(this),this.visitAll(t.args))},AstTransformer.prototype.visitLiteralArray=function(t,e){return new w(t.span,this.visitAll(t.expressions))},AstTransformer.prototype.visitLiteralMap=function(t,e){return new x(t.span,t.keys,this.visitAll(t.values))},AstTransformer.prototype.visitBinary=function(t,e){return new S(t.span,t.operation,t.left.visit(this),t.right.visit(this))},AstTransformer.prototype.visitPrefixNot=function(t,e){return new k(t.span,t.expression.visit(this))},AstTransformer.prototype.visitConditional=function(t,e){return new f(t.span,t.condition.visit(this),t.trueExp.visit(this),t.falseExp.visit(this))},AstTransformer.prototype.visitPipe=function(t,e){return new y(t.span,t.exp.visit(this),t.name,this.visitAll(t.args))},AstTransformer.prototype.visitKeyedRead=function(t,e){return new g(t.span,t.obj.visit(this),t.key.visit(this))},AstTransformer.prototype.visitKeyedWrite=function(t,e){return new b(t.span,t.obj.visit(this),t.key.visit(this),t.value.visit(this))},AstTransformer.prototype.visitAll=function(t){for(var e=r.a.createFixedSize(t.length),n=0;n<t.length;++n)e[n]=t[n].visit(this);return e},AstTransformer.prototype.visitChain=function(t,e){return new d(t.span,this.visitAll(t.expressions))},AstTransformer.prototype.visitQuote=function(t,e){return new l(t.span,t.prefix,t.uninterpretedExpression,t.location)},AstTransformer})()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function digestMessage(t){return sha1(serializeNodes(t.nodes).join("")+("["+t.meaning+"]"))}function serializeNodes(t){return t.map(function(t){return t.visit(i,null)})}function sha1(t){var e=utf8Encode(t),n=stringToWords32(e),r=8*e.length,i=new Array(80),o=[1732584193,4023233417,2562383102,271733878,3285377520],a=o[0],s=o[1],c=o[2],l=o[3],u=o[4];n[r>>5]|=128<<24-r%32,n[(r+64>>9<<4)+15]=r;for(var p=0;p<n.length;p+=16){for(var d=[a,s,c,l,u],f=d[0],h=d[1],m=d[2],v=d[3],g=d[4],b=0;b<80;b++){b<16?i[b]=n[p+b]:i[b]=rol32(i[b-3]^i[b-8]^i[b-14]^i[b-16],1);var y=fk(b,s,c,l),_=y[0],w=y[1],x=[rol32(a,5),_,u,w,i[b]].reduce(add32);E=[l,c,rol32(s,30),a,x],u=E[0],l=E[1],c=E[2],s=E[3],a=E[4]}P=[add32(a,f),add32(s,h),add32(c,m),add32(l,v),add32(u,g)],a=P[0],s=P[1],c=P[2],l=P[3],u=P[4]}for(var C=words32ToString([a,s,c,l,u]),S="",p=0;p<C.length;p++){var k=C.charCodeAt(p);S+=(k>>>4&15).toString(16)+(15&k).toString(16)}return S.toLowerCase();var E,P}function utf8Encode(t){for(var e="",n=0;n<t.length;n++){var r=decodeSurrogatePairs(t,n);r<=127?e+=String.fromCharCode(r):r<=2047?e+=String.fromCharCode(192|r>>>6,128|63&r):r<=65535?e+=String.fromCharCode(224|r>>>12,128|r>>>6&63,128|63&r):r<=2097151&&(e+=String.fromCharCode(240|r>>>18,128|r>>>12&63,128|r>>>6&63,128|63&r))}return e}function decodeSurrogatePairs(t,e){if(e<0||e>=t.length)throw new Error("index="+e+' is out of range in "'+t+'"');var n,r=t.charCodeAt(e);return r>=55296&&r<=57343&&t.length>e+1&&(n=t.charCodeAt(e+1),n>=56320&&n<=57343)?1024*(r-55296)+n-56320+65536:r}function stringToWords32(t){for(var e=Array(t.length>>>2),n=0;n<e.length;n++)e[n]=0;for(var n=0;n<t.length;n++)e[n>>>2]|=(255&t.charCodeAt(n))<<8*(3-n&3);return e}function words32ToString(t){for(var e="",n=0;n<4*t.length;n++)e+=String.fromCharCode(t[n>>>2]>>>8*(3-n&3)&255);return e}function fk(t,e,n,r){return t<20?[e&n|~e&r,1518500249]:t<40?[e^n^r,1859775393]:t<60?[e&n|e&r|n&r,2400959708]:[e^n^r,3395469782]}function add32(t,e){var n=(65535&t)+(65535&e),r=(t>>16)+(e>>16)+(n>>16);return r<<16|65535&n}function rol32(t,e){return t<<e|t>>>32-e}e.a=digestMessage;var r=function(){function _SerializerVisitor(){}return _SerializerVisitor.prototype.visitText=function(t,e){return t.value},_SerializerVisitor.prototype.visitContainer=function(t,e){var n=this;return"["+t.children.map(function(t){return t.visit(n)}).join(", ")+"]"},_SerializerVisitor.prototype.visitIcu=function(t,e){var n=this,r=Object.keys(t.cases).map(function(e){return e+" {"+t.cases[e].visit(n)+"}"});return"{"+t.expression+", "+t.type+", "+r.join(", ")+"}"},_SerializerVisitor.prototype.visitTagPlaceholder=function(t,e){var n=this;return t.isVoid?'<ph tag name="'+t.startName+'"/>':'<ph tag name="'+t.startName+'">'+t.children.map(function(t){return t.visit(n)}).join(", ")+'</ph name="'+t.closeName+'">'},_SerializerVisitor.prototype.visitPlaceholder=function(t,e){return'<ph name="'+t.name+'">'+t.value+"</ph>"},_SerializerVisitor.prototype.visitIcuPlaceholder=function(t,e){return'<ph icu name="'+t.name+'">'+t.value.visit(this)+"</ph>"},_SerializerVisitor}(),i=new r},function(t,e,n){"use strict";var r=n(41);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},o=function(t){function I18nError(e,n){t.call(this,e,n)}return i(I18nError,t),I18nError}(r.a)},function(t,e,n){"use strict";function getTransitiveModules(t,e,n,r){return void 0===n&&(n=[]),void 0===r&&(r=new Set),t.forEach(function(t){if(!r.has(t.type.reference)){r.add(t.type.reference);var i=e?t.importedModules.concat(t.exportedModules):t.exportedModules;getTransitiveModules(i,e,n,r),n.push(t)}}),n}function flattenArray(t,e){if(void 0===e&&(e=[]),t)for(var i=0;i<t.length;i++){var o=n.i(r.resolveForwardRef)(t[i]);n.i(c.d)(o)?flattenArray(o,e):e.push(o)}return e}function isValidType(t){return a.z(t)||t instanceof r.Type}function staticTypeModuleUrl(t){return a.z(t)?t.filePath:null}function componentModuleUrl(t,e,r){if(a.z(e))return staticTypeModuleUrl(e);if(n.i(c.a)(r.moduleId)){var i=r.moduleId,o=n.i(m.b)(i);return n.i(c.a)(o)&&o.length>0?i:"package:"+i+v.h}return t.importUri(e)}function convertToCompileValue(t,e){return n.i(v.d)(t,new y,e)}var r=n(0),i=n(6),o=n(267),a=n(20),s=n(149),c=n(3),l=n(16),u=n(451),p=n(155),d=n(157),f=n(17),h=n(79),m=n(80),v=n(23);n.d(e,"a",function(){return b});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var g=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},b=function(){function CompileMetadataResolver(t,e,n,r,i){void 0===i&&(i=f.P),this._ngModuleResolver=t,this._directiveResolver=e,this._pipeResolver=n,this._schemaRegistry=r,this._reflector=i,this._directiveCache=new Map,this._pipeCache=new Map,this._ngModuleCache=new Map,this._ngModuleOfTypes=new Map,this._anonymousTypes=new Map,this._anonymousTypeIndex=0}return CompileMetadataResolver.prototype.sanitizeTokenName=function(t){var e=n.i(c.q)(t);if(e.indexOf("(")>=0){var r=this._anonymousTypes.get(t);n.i(c.c)(r)&&(this._anonymousTypes.set(t,this._anonymousTypeIndex++),r=this._anonymousTypes.get(t)),e="anonymous_token_"+r+"_"}return n.i(v.a)(e)},CompileMetadataResolver.prototype.clearCacheFor=function(t){this._directiveCache.delete(t),this._pipeCache.delete(t),this._ngModuleOfTypes.delete(t),this._ngModuleCache.clear()},CompileMetadataResolver.prototype.clearCache=function(){this._directiveCache.clear(),this._pipeCache.clear(),this._ngModuleCache.clear(),this._ngModuleOfTypes.clear()},CompileMetadataResolver.prototype.getAnimationEntryMetadata=function(t){var e=this,n=t.definitions.map(function(t){return e.getAnimationStateMetadata(t)});return new a.r(t.name,n)},CompileMetadataResolver.prototype.getAnimationStateMetadata=function(t){if(t instanceof r.AnimationStateDeclarationMetadata){var e=this.getAnimationStyleMetadata(t.styles);return new a.g(t.stateNameExpr,e)}return t instanceof r.AnimationStateTransitionMetadata?new a.s(t.stateChangeExpr,this.getAnimationMetadata(t.steps)):null},CompileMetadataResolver.prototype.getAnimationStyleMetadata=function(t){return new a.h(t.offset,t.styles)},CompileMetadataResolver.prototype.getAnimationMetadata=function(t){var e=this;if(t instanceof r.AnimationStyleMetadata)return this.getAnimationStyleMetadata(t);if(t instanceof r.AnimationKeyframesSequenceMetadata)return new a.l(t.steps.map(function(t){return e.getAnimationStyleMetadata(t)}));if(t instanceof r.AnimationAnimateMetadata){var n=this.getAnimationMetadata(t.styles);return new a.k(t.timings,n)}if(t instanceof r.AnimationWithStepsMetadata){var i=t.steps.map(function(t){return e.getAnimationMetadata(t)});return t instanceof r.AnimationGroupMetadata?new a.m(i):new a.i(i)}return null},CompileMetadataResolver.prototype.getDirectiveMetadata=function(t,e){var i=this;void 0===e&&(e=!0),t=n.i(r.resolveForwardRef)(t);var s=this._directiveCache.get(t);if(n.i(c.c)(s)){var l=this._directiveResolver.resolve(t,e);if(!l)return null;var u=null,p=null,d=[],f=staticTypeModuleUrl(t),h=[],m=l.selector;if(l instanceof r.ComponentMetadata){var v=l;n.i(o.b)("styles",v.styles),n.i(o.a)("interpolation",v.interpolation);var g=n.i(c.a)(v.animations)?v.animations.map(function(t){return i.getAnimationEntryMetadata(t)}):null;n.i(o.b)("styles",v.styles),n.i(o.b)("styleUrls",v.styleUrls),u=new a.p({encapsulation:v.encapsulation,template:v.template,templateUrl:v.templateUrl,styles:v.styles,styleUrls:v.styleUrls,animations:g,interpolation:v.interpolation}),p=v.changeDetection,n.i(c.a)(l.viewProviders)&&(d=this.getProvidersMetadata(l.viewProviders,h,'viewProviders for "'+n.i(c.q)(t)+'"')),f=componentModuleUrl(this._reflector,t,v),v.entryComponents&&(h=flattenArray(v.entryComponents).map(function(t){return i.getTypeMetadata(t,staticTypeModuleUrl(t))}).concat(h)),m||(m=this._schemaRegistry.getDefaultComponentElementName())}else if(!m)throw new Error("Directive "+n.i(c.q)(t)+" has no selector, please add it!");var b=[];n.i(c.a)(l.providers)&&(b=this.getProvidersMetadata(l.providers,h,'providers for "'+n.i(c.q)(t)+'"'));var y=[],_=[];n.i(c.a)(l.queries)&&(y=this.getQueriesMetadata(l.queries,!1,t),_=this.getQueriesMetadata(l.queries,!0,t)),s=a.q.create({selector:m,exportAs:l.exportAs,isComponent:n.i(c.a)(u),type:this.getTypeMetadata(t,f),template:u,changeDetection:p,inputs:l.inputs,outputs:l.outputs,host:l.host,providers:b,viewProviders:d,queries:y,viewQueries:_,entryComponents:h}),this._directiveCache.set(t,s)}return s},CompileMetadataResolver.prototype.getNgModuleMetadata=function(t,e){var i=this;void 0===e&&(e=!0),t=n.i(r.resolveForwardRef)(t);var o=this._ngModuleCache.get(t);if(!o){var s=this._ngModuleResolver.resolve(t,e);if(!s)return null;var l=[],u=[],p=[],d=[],f=[],h=[],m=[],v=[],g=[],b=[];s.imports&&flattenArray(s.imports).forEach(function(e){var r;if(isValidType(e))r=e;else if(e&&e.ngModule){var o=e;r=o.ngModule,o.providers&&m.push.apply(m,i.getProvidersMetadata(o.providers,v,"provider for the NgModule '"+n.i(c.q)(r)+"'"))}if(!r)throw new Error("Unexpected value '"+n.i(c.q)(e)+"' imported by the module '"+n.i(c.q)(t)+"'");var a=i.getNgModuleMetadata(r,!1);if(null===a)throw new Error("Unexpected "+i._getTypeDescriptor(e)+" '"+n.i(c.q)(e)+"' imported by the module '"+n.i(c.q)(t)+"'");f.push(a)}),s.exports&&flattenArray(s.exports).forEach(function(e){if(!isValidType(e))throw new Error("Unexpected value '"+n.i(c.q)(e)+"' exported by the module '"+n.i(c.q)(t)+"'");var r,o,a;if(r=i.getDirectiveMetadata(e,!1))u.push(r);else if(o=i.getPipeMetadata(e,!1))d.push(o);else{if(!(a=i.getNgModuleMetadata(e,!1)))throw new Error("Unexpected "+i._getTypeDescriptor(e)+" '"+n.i(c.q)(e)+"' exported by the module '"+n.i(c.q)(t)+"'");h.push(a)}});var y=this._getTransitiveNgModuleMetadata(f,h);s.declarations&&flattenArray(s.declarations).forEach(function(e){if(!isValidType(e))throw new Error("Unexpected value '"+n.i(c.q)(e)+"' declared by the module '"+n.i(c.q)(t)+"'");var r,o;if(r=i.getDirectiveMetadata(e,!1))i._addDirectiveToModule(r,t,y,l,!0);else{if(!(o=i.getPipeMetadata(e,!1)))throw new Error("Unexpected "+i._getTypeDescriptor(e)+" '"+n.i(c.q)(e)+"' declared by the module '"+n.i(c.q)(t)+"'");i._addPipeToModule(o,t,y,p,!0)}}),s.providers&&m.push.apply(m,this.getProvidersMetadata(s.providers,v,"provider for the NgModule '"+n.i(c.q)(t)+"'")),s.entryComponents&&v.push.apply(v,flattenArray(s.entryComponents).map(function(t){return i.getTypeMetadata(t,staticTypeModuleUrl(t))})),s.bootstrap&&g.push.apply(g,flattenArray(s.bootstrap).map(function(t){return i.getTypeMetadata(t,staticTypeModuleUrl(t))})),v.push.apply(v,g),s.schemas&&b.push.apply(b,flattenArray(s.schemas)),(_=y.entryComponents).push.apply(_,v),(w=y.providers).push.apply(w,m),o=new a.t({type:this.getTypeMetadata(t,staticTypeModuleUrl(t)),providers:m,entryComponents:v,bootstrapComponents:g,schemas:b,declaredDirectives:l,exportedDirectives:u,declaredPipes:p,exportedPipes:d,importedModules:f,exportedModules:h,transitiveModule:y}),y.modules.push(o),this._verifyModule(o),this._ngModuleCache.set(t,o)}return o;var _,w},CompileMetadataResolver.prototype._verifyModule=function(t){t.exportedDirectives.forEach(function(e){if(!t.transitiveModule.directivesSet.has(e.type.reference))throw new Error("Can't export directive "+n.i(c.q)(e.type.reference)+" from "+n.i(c.q)(t.type.reference)+" as it was neither declared nor imported!")}),t.exportedPipes.forEach(function(e){if(!t.transitiveModule.pipesSet.has(e.type.reference))throw new Error("Can't export pipe "+n.i(c.q)(e.type.reference)+" from "+n.i(c.q)(t.type.reference)+" as it was neither declared nor imported!")})},CompileMetadataResolver.prototype._getTypeDescriptor=function(t){return null!==this._directiveResolver.resolve(t,!1)?"directive":null!==this._pipeResolver.resolve(t,!1)?"pipe":null!==this._ngModuleResolver.resolve(t,!1)?"module":t.provide?"provider":"value"},CompileMetadataResolver.prototype._addTypeToModule=function(t,e){var r=this._ngModuleOfTypes.get(t);if(r&&r!==e)throw new Error("Type "+n.i(c.q)(t)+" is part of the declarations of 2 modules: "+n.i(c.q)(r)+" and "+n.i(c.q)(e)+"!");this._ngModuleOfTypes.set(t,e)},CompileMetadataResolver.prototype._getTransitiveNgModuleMetadata=function(t,e){var n=getTransitiveModules(t.concat(e),!0),r=flattenArray(n.map(function(t){return t.providers})),i=flattenArray(n.map(function(t){return t.entryComponents})),o=getTransitiveModules(t,!1),s=flattenArray(o.map(function(t){return t.exportedDirectives})),c=flattenArray(o.map(function(t){return t.exportedPipes}));return new a.u(n,r,i,s,c)},CompileMetadataResolver.prototype._addDirectiveToModule=function(t,e,n,r,i){return void 0===i&&(i=!1),!(!i&&n.directivesSet.has(t.type.reference))&&(n.directivesSet.add(t.type.reference),n.directives.push(t),r.push(t),this._addTypeToModule(t.type.reference,e),!0)},CompileMetadataResolver.prototype._addPipeToModule=function(t,e,n,r,i){return void 0===i&&(i=!1),!(!i&&n.pipesSet.has(t.type.reference))&&(n.pipesSet.add(t.type.reference),n.pipes.push(t),r.push(t),this._addTypeToModule(t.type.reference,e),!0)},CompileMetadataResolver.prototype.getTypeMetadata=function(t,e,i){return void 0===i&&(i=null),t=n.i(r.resolveForwardRef)(t),new a.e({name:this.sanitizeTokenName(t),moduleUrl:e,reference:t,diDeps:this.getDependenciesMetadata(t,i),lifecycleHooks:f.Z.filter(function(e){return n.i(u.a)(e,t)})})},CompileMetadataResolver.prototype.getFactoryMetadata=function(t,e,i){return void 0===i&&(i=null),t=n.i(r.resolveForwardRef)(t),new a.v({name:this.sanitizeTokenName(t),moduleUrl:e,reference:t,diDeps:this.getDependenciesMetadata(t,i)})},CompileMetadataResolver.prototype.getPipeMetadata=function(t,e){void 0===e&&(e=!0),t=n.i(r.resolveForwardRef)(t);var i=this._pipeCache.get(t);if(n.i(c.c)(i)){var o=this._pipeResolver.resolve(t,e);if(!o)return null;i=new a.w({type:this.getTypeMetadata(t,staticTypeModuleUrl(t)),name:o.name,pure:o.pure}),this._pipeCache.set(t,i)}return i},CompileMetadataResolver.prototype.getDependenciesMetadata=function(t,e){var i=this,o=!1,s=n.i(c.a)(e)?e:this._reflector.parameters(t);n.i(c.c)(s)&&(s=[]);var l=s.map(function(e){var s=!1,l=!1,u=!1,p=!1,d=!1,f=null,h=null,m=null;return n.i(c.d)(e)?e.forEach(function(t){t instanceof r.HostMetadata?l=!0:t instanceof r.SelfMetadata?u=!0:t instanceof r.SkipSelfMetadata?p=!0:t instanceof r.OptionalMetadata?d=!0:t instanceof r.AttributeMetadata?(s=!0,m=t.attributeName):t instanceof r.QueryMetadata?t.isViewQuery?h=t:f=t:t instanceof r.InjectMetadata?m=t.token:isValidType(t)&&n.i(c.c)(m)&&(m=t)}):m=e,n.i(c.c)(m)?(o=!0,null):new a.c({isAttribute:s,isHost:l,isSelf:u,isSkipSelf:p,isOptional:d,query:n.i(c.a)(f)?i.getQueryMetadata(f,null,t):null,viewQuery:n.i(c.a)(h)?i.getQueryMetadata(h,null,t):null,token:i.getTokenMetadata(m)})});if(o){var u=l.map(function(t){return t?n.i(c.q)(t.token):"?"}).join(", ");throw new Error("Can't resolve all parameters for "+n.i(c.q)(t)+": ("+u+").")}return l},CompileMetadataResolver.prototype.getTokenMetadata=function(t){t=n.i(r.resolveForwardRef)(t);var e;return e=n.i(c.h)(t)?new a.b({value:t}):new a.b({identifier:new a.a({reference:t,name:this.sanitizeTokenName(t),moduleUrl:staticTypeModuleUrl(t)})})},CompileMetadataResolver.prototype.getProvidersMetadata=function(t,e,i){var o=this,s=[];return t.forEach(function(u,p){u=n.i(r.resolveForwardRef)(u),u&&"object"==typeof u&&u.hasOwnProperty("provide")&&(u=new a.x(u.provide,u));var d;if(n.i(c.d)(u))d=o.getProvidersMetadata(u,e,i);else if(u instanceof a.x){var f=o.getTokenMetadata(u.token);f.reference===n.i(l.a)(l.b.ANALYZE_FOR_ENTRY_COMPONENTS).reference?e.push.apply(e,o._getEntryComponentsFromProvider(u)):d=o.getProviderMetadata(u)}else{if(!isValidType(u)){var h=t.reduce(function(t,e,r){return r<p?t.push(""+n.i(c.q)(e)):r==p?t.push("?"+n.i(c.q)(e)+"?"):r==p+1&&t.push("..."),t},[]).join(", ");throw new Error("Invalid "+(i?i:"provider")+" - only instances of Provider and Type are allowed, got: ["+h+"]")}d=o.getTypeMetadata(u,staticTypeModuleUrl(u))}d&&s.push(d)}),s},CompileMetadataResolver.prototype._getEntryComponentsFromProvider=function(t){var e=this,n=[],r=[];if(t.useFactory||t.useExisting||t.useClass)throw new Error("The ANALYZE_FOR_ENTRY_COMPONENTS token only supports useValue!");if(!t.multi)throw new Error("The ANALYZE_FOR_ENTRY_COMPONENTS token only supports 'multi = true'!");return convertToCompileValue(t.useValue,r),r.forEach(function(t){var r=e.getDirectiveMetadata(t.reference,!1);r&&n.push(r.type)}),n},CompileMetadataResolver.prototype.getProviderMetadata=function(t){var e,r=null,i=null;return n.i(c.a)(t.useClass)?(r=this.getTypeMetadata(t.useClass,staticTypeModuleUrl(t.useClass),t.dependencies),e=r.diDeps):n.i(c.a)(t.useFactory)&&(i=this.getFactoryMetadata(t.useFactory,staticTypeModuleUrl(t.useFactory),t.dependencies),e=i.diDeps),new a.d({token:this.getTokenMetadata(t.token),useClass:r,useValue:convertToCompileValue(t.useValue,[]),useFactory:i,useExisting:n.i(c.a)(t.useExisting)?this.getTokenMetadata(t.useExisting):null,deps:e,multi:t.multi})},CompileMetadataResolver.prototype.getQueriesMetadata=function(t,e,n){var r=this,o=[];return i.b.forEach(t,function(t,i){t.isViewQuery===e&&o.push(r.getQueryMetadata(t,i,n))}),o},CompileMetadataResolver.prototype.getQueryMetadata=function(t,e,r){var i,o=this;if(t.isVarBindingQuery)i=t.varBindings.map(function(t){return o.getTokenMetadata(t)});else{if(!n.i(c.a)(t.selector))throw new Error("Can't construct a query for the property \""+e+'" of "'+n.i(c.q)(r)+"\" since the query selector wasn't defined.");i=[this.getTokenMetadata(t.selector)]}return new a.y({selectors:i,first:t.first,descendants:t.descendants,propertyName:e,read:n.i(c.a)(t.read)?this.getTokenMetadata(t.read):null})},CompileMetadataResolver.decorators=[{type:r.Injectable}],CompileMetadataResolver.ctorParameters=[{type:p.a},{type:s.a},{type:d.a},{type:h.a},{type:f.Y}],CompileMetadataResolver}(),y=function(t){function _CompileValueConverter(){t.apply(this,arguments)}return g(_CompileValueConverter,t),_CompileValueConverter.prototype.visitOther=function(t,e){var n;return n=a.z(t)?new a.a({name:t.name,moduleUrl:t.filePath,reference:t}):new a.a({reference:t}),e.push(n),n},_CompileValueConverter}(v.i)},function(t,e,n){"use strict";var r=n(0),i=n(20),o=n(3),a=n(16),s=n(7),c=n(281),l=n(41),u=n(17),p=n(282),d=n(23);n.d(e,"a",function(){return m});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var f=function(){function ComponentFactoryDependency(t,e){this.comp=t,this.placeholder=e}return ComponentFactoryDependency}(),h=function(){function NgModuleCompileResult(t,e,n){this.statements=t,this.ngModuleFactoryVar=e,this.dependencies=n}return NgModuleCompileResult}(),m=function(){function NgModuleCompiler(){}return NgModuleCompiler.prototype.compile=function(t,e){var r=n.i(o.a)(t.type.moduleUrl)?"in NgModule "+t.type.name+" in "+t.type.moduleUrl:"in NgModule "+t.type.name,c=new l.b("",r),u=new l.d(new l.c(c,null,null,null),new l.c(c,null,null,null)),d=[],m=[],g=t.transitiveModule.entryComponents.map(function(e){var n=new i.a({name:e.name});return t.bootstrapComponents.indexOf(e)>-1&&m.push(n),d.push(new f(e,n)),n}),b=new v(t,g,m,u),y=new p.c(t,e,u);y.parse().forEach(function(t){return b.addProvider(t)});var _=b.build(),w=t.type.name+"NgFactory",x=s.e(w).set(s.b(n.i(a.d)(a.b.NgModuleFactory)).instantiate([s.e(_.name),s.b(t.type)],s.c(n.i(a.d)(a.b.NgModuleFactory),[s.c(t.type)],[s.d.Const]))).toDeclStmt(null,[s.u.Final]);return new h([_,x],w,d)},NgModuleCompiler.decorators=[{type:r.Injectable}],NgModuleCompiler.ctorParameters=[],NgModuleCompiler}(),v=function(){function _InjectorBuilder(t,e,n,r){this._ngModuleMeta=t,this._entryComponentFactories=e,this._bootstrapComponentFactories=n,this._sourceSpan=r,this._tokens=[],this._instances=new Map,this._fields=[],this._createStmts=[],this._destroyStmts=[],this._getters=[]}return _InjectorBuilder.prototype.addProvider=function(t){var e=this,n=t.providers.map(function(t){return e._getProviderValue(t)}),r="_"+t.token.name+"_"+this._instances.size,i=this._createProviderProperty(r,t,n,t.multiProvider,t.eager);t.lifecycleHooks.indexOf(u.W.OnDestroy)!==-1&&this._destroyStmts.push(i.callMethod("ngOnDestroy",[]).toStmt()),this._tokens.push(t.token),this._instances.set(t.token.reference,i)},_InjectorBuilder.prototype.build=function(){var t=this,e=this._tokens.map(function(e){var r=t._instances.get(e.reference);return new s.i(b.token.identical(n.i(d.e)(e)),[new s.t(r)])}),r=[new s.C("createInternal",[],this._createStmts.concat(new s.t(this._instances.get(this._ngModuleMeta.type.reference))),s.c(this._ngModuleMeta.type)),new s.C("getInternal",[new s.k(b.token.name,s.l),new s.k(b.notFoundResult.name,s.l)],e.concat([new s.t(b.notFoundResult)]),s.l),new s.C("destroyInternal",[],this._destroyStmts)],i=new s.C(null,[new s.k(g.parent.name,s.c(n.i(a.d)(a.b.Injector)))],[s.J.callFn([s.e(g.parent.name),s.g(this._entryComponentFactories.map(function(t){return s.b(t)})),s.g(this._bootstrapComponentFactories.map(function(t){return s.b(t)}))]).toStmt()]),o=this._ngModuleMeta.type.name+"Injector";return new s.M(o,s.b(n.i(a.d)(a.b.NgModuleInjector),[s.c(this._ngModuleMeta.type)]),this._fields,this._getters,i,r)},_InjectorBuilder.prototype._getProviderValue=function(t){var e,r=this;if(n.i(o.a)(t.useExisting))e=this._getDependency(new i.c({token:t.useExisting}));else if(n.i(o.a)(t.useFactory)){var a=n.i(o.a)(t.deps)?t.deps:t.useFactory.diDeps,l=a.map(function(t){return r._getDependency(t)});e=s.b(t.useFactory).callFn(l)}else if(n.i(o.a)(t.useClass)){var a=n.i(o.a)(t.deps)?t.deps:t.useClass.diDeps,l=a.map(function(t){return r._getDependency(t)});e=s.b(t.useClass).instantiate(l,s.c(t.useClass))}else e=n.i(c.a)(t.useValue);return e},_InjectorBuilder.prototype._createProviderProperty=function(t,e,r,i,a){var c,l;if(i?(c=s.g(r),l=new s.q(s.l)):(c=r[0],l=r[0].type),n.i(o.c)(l)&&(l=s.l),a)this._fields.push(new s.s(t,l)),this._createStmts.push(s.n.prop(t).set(c).toStmt());else{var u="_"+t;this._fields.push(new s.s(u,l));var p=[new s.i(s.n.prop(u).isBlank(),[s.n.prop(u).set(c).toStmt()]),new s.t(s.n.prop(u))];this._getters.push(new s.v(t,p,l))}return s.n.prop(t)},_InjectorBuilder.prototype._getDependency=function(t){var e=null;if(t.isValue&&(e=s.a(t.value)),t.isSkipSelf||(!t.token||t.token.reference!==n.i(a.a)(a.b.Injector).reference&&t.token.reference!==n.i(a.a)(a.b.ComponentFactoryResolver).reference||(e=s.n),n.i(o.c)(e)&&(e=this._instances.get(t.token.reference))),n.i(o.c)(e)){var r=[n.i(d.e)(t.token)];t.isOptional&&r.push(s.h),e=g.parent.callMethod("get",r)}return e},_InjectorBuilder}(),g=function(){function InjectorProps(){}return InjectorProps.parent=s.n.prop("parent"),InjectorProps}(),b=function(){function InjectMethodVars(){}return InjectMethodVars.token=s.e("token"),InjectMethodVars.notFoundResult=s.e("notFoundResult"),InjectMethodVars}()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function _isNgModuleMetadata(t){return t instanceof r.NgModuleMetadata}var r=n(0),i=n(3),o=n(17);n.d(e,"a",function(){return a});var a=function(){function NgModuleResolver(t){void 0===t&&(t=o.P),this._reflector=t}return NgModuleResolver.prototype.resolve=function(t,e){void 0===e&&(e=!0);var r=this._reflector.annotations(t).find(_isNgModuleMetadata);if(n.i(i.a)(r))return r;if(e)throw new Error("No NgModule metadata found for '"+n.i(i.q)(t)+"'.");return null},NgModuleResolver.decorators=[{type:r.Injectable}],NgModuleResolver.ctorParameters=[{type:o.Y}],NgModuleResolver}()},function(t,e,n){"use strict";function escapeIdentifier(t,e,i){if(void 0===i&&(i=!0),n.i(r.c)(t))return null;var s=r.g.replaceAllMapped(t,o,function(t){return"$"==t[0]?e?"\\$":"$":"\n"==t[0]?"\\n":"\r"==t[0]?"\\r":"\\"+t[0]}),c=i||!a.test(s);return c?"'"+s+"'":s}function _createIndent(t){for(var e="",n=0;n<t;n++)e+="  ";return e}var r=n(3),i=n(7);n.d(e,"b",function(){return s}),n.d(e,"c",function(){return c}),n.d(e,"a",function(){return u}),n.d(e,"d",function(){return p});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=/'|\\|\n|\r|\$/g,a=/^[$A-Z_][0-9A-Z_$]*$/i,s=i.e("error"),c=i.e("stack"),l=(function(){function OutputEmitter(){}return OutputEmitter}(),function(){function _EmittedLine(t){this.indent=t,this.parts=[]}return _EmittedLine}()),u=function(){function EmitterVisitorContext(t,e){this._exportedVars=t,this._indent=e,this._classes=[],this._lines=[new l(e)]}return EmitterVisitorContext.createRoot=function(t){return new EmitterVisitorContext(t,0)},Object.defineProperty(EmitterVisitorContext.prototype,"_currentLine",{get:function(){return this._lines[this._lines.length-1]},enumerable:!0,configurable:!0}),EmitterVisitorContext.prototype.isExportedVar=function(t){return this._exportedVars.indexOf(t)!==-1},EmitterVisitorContext.prototype.println=function(t){void 0===t&&(t=""),this.print(t,!0)},EmitterVisitorContext.prototype.lineIsEmpty=function(){return 0===this._currentLine.parts.length},EmitterVisitorContext.prototype.print=function(t,e){void 0===e&&(e=!1),t.length>0&&this._currentLine.parts.push(t),e&&this._lines.push(new l(this._indent))},EmitterVisitorContext.prototype.removeEmptyLastLine=function(){this.lineIsEmpty()&&this._lines.pop()},EmitterVisitorContext.prototype.incIndent=function(){this._indent++,this._currentLine.indent=this._indent},EmitterVisitorContext.prototype.decIndent=function(){this._indent--,this._currentLine.indent=this._indent},EmitterVisitorContext.prototype.pushClass=function(t){this._classes.push(t)},EmitterVisitorContext.prototype.popClass=function(){return this._classes.pop()},Object.defineProperty(EmitterVisitorContext.prototype,"currentClass",{get:function(){return this._classes.length>0?this._classes[this._classes.length-1]:null},enumerable:!0,configurable:!0}),EmitterVisitorContext.prototype.toSource=function(){var t=this._lines;return 0===t[t.length-1].parts.length&&(t=t.slice(0,t.length-1)),t.map(function(t){return t.parts.length>0?_createIndent(t.indent)+t.parts.join(""):""}).join("\n")},EmitterVisitorContext}(),p=function(){function AbstractEmitterVisitor(t){this._escapeDollarInStrings=t}return AbstractEmitterVisitor.prototype.visitExpressionStmt=function(t,e){return t.expr.visitExpression(this,e),e.println(";"),null},AbstractEmitterVisitor.prototype.visitReturnStmt=function(t,e){return e.print("return "),t.value.visitExpression(this,e),e.println(";"),null},AbstractEmitterVisitor.prototype.visitIfStmt=function(t,e){e.print("if ("),t.condition.visitExpression(this,e),e.print(") {");var i=n.i(r.a)(t.falseCase)&&t.falseCase.length>0;return t.trueCase.length<=1&&!i?(e.print(" "),this.visitAllStatements(t.trueCase,e),e.removeEmptyLastLine(),e.print(" ")):(e.println(),e.incIndent(),this.visitAllStatements(t.trueCase,e),e.decIndent(),i&&(e.println("} else {"),e.incIndent(),this.visitAllStatements(t.falseCase,e),e.decIndent())),e.println("}"),null},AbstractEmitterVisitor.prototype.visitThrowStmt=function(t,e){return e.print("throw "),t.error.visitExpression(this,e),e.println(";"),null},AbstractEmitterVisitor.prototype.visitCommentStmt=function(t,e){var n=t.comment.split("\n");return n.forEach(function(t){e.println("// "+t)}),null},AbstractEmitterVisitor.prototype.visitWriteVarExpr=function(t,e){var n=e.lineIsEmpty();return n||e.print("("),e.print(t.name+" = "),t.value.visitExpression(this,e),n||e.print(")"),null},AbstractEmitterVisitor.prototype.visitWriteKeyExpr=function(t,e){var n=e.lineIsEmpty();return n||e.print("("),t.receiver.visitExpression(this,e),e.print("["),t.index.visitExpression(this,e),e.print("] = "),t.value.visitExpression(this,e),n||e.print(")"),null},AbstractEmitterVisitor.prototype.visitWritePropExpr=function(t,e){var n=e.lineIsEmpty();return n||e.print("("),t.receiver.visitExpression(this,e),e.print("."+t.name+" = "),t.value.visitExpression(this,e),n||e.print(")"),null},AbstractEmitterVisitor.prototype.visitInvokeMethodExpr=function(t,e){t.receiver.visitExpression(this,e);var i=t.name;return n.i(r.a)(t.builtin)&&(i=this.getBuiltinMethodName(t.builtin),n.i(r.c)(i))?null:(e.print("."+i+"("),this.visitAllExpressions(t.args,e,","),e.print(")"),null)},AbstractEmitterVisitor.prototype.visitInvokeFunctionExpr=function(t,e){return t.fn.visitExpression(this,e),e.print("("),this.visitAllExpressions(t.args,e,","),e.print(")"),null},AbstractEmitterVisitor.prototype.visitReadVarExpr=function(t,e){var o=t.name;if(n.i(r.a)(t.builtin))switch(t.builtin){case i.O.Super:o="super";break;case i.O.This:o="this";break;case i.O.CatchError:o=s.name;break;case i.O.CatchStack:o=c.name;break;default:throw new Error("Unknown builtin variable "+t.builtin)}return e.print(o),null},AbstractEmitterVisitor.prototype.visitInstantiateExpr=function(t,e){return e.print("new "),t.classExpr.visitExpression(this,e),e.print("("),this.visitAllExpressions(t.args,e,","),e.print(")"),null},AbstractEmitterVisitor.prototype.visitLiteralExpr=function(t,e,i){void 0===i&&(i="null");var o=t.value;return n.i(r.h)(o)?e.print(escapeIdentifier(o,this._escapeDollarInStrings)):n.i(r.c)(o)?e.print(i):e.print(""+o),null},AbstractEmitterVisitor.prototype.visitConditionalExpr=function(t,e){return e.print("("),t.condition.visitExpression(this,e),e.print("? "),t.trueCase.visitExpression(this,e),e.print(": "),t.falseCase.visitExpression(this,e),e.print(")"),null},AbstractEmitterVisitor.prototype.visitNotExpr=function(t,e){return e.print("!"),t.condition.visitExpression(this,e),null},AbstractEmitterVisitor.prototype.visitBinaryOperatorExpr=function(t,e){var n;switch(t.operator){case i.y.Equals:n="==";break;case i.y.Identical:n="===";break;case i.y.NotEquals:n="!=";break;case i.y.NotIdentical:n="!==";break;case i.y.And:n="&&";break;case i.y.Or:n="||";break;case i.y.Plus:n="+";break;case i.y.Minus:n="-";break;case i.y.Divide:n="/";break;case i.y.Multiply:n="*";break;case i.y.Modulo:n="%";break;case i.y.Lower:n="<";break;case i.y.LowerEquals:n="<=";break;case i.y.Bigger:n=">";break;case i.y.BiggerEquals:n=">=";break;default:throw new Error("Unknown operator "+t.operator)}return e.print("("),t.lhs.visitExpression(this,e),e.print(" "+n+" "),t.rhs.visitExpression(this,e),e.print(")"),null},AbstractEmitterVisitor.prototype.visitReadPropExpr=function(t,e){return t.receiver.visitExpression(this,e),e.print("."),e.print(t.name),null},AbstractEmitterVisitor.prototype.visitReadKeyExpr=function(t,e){return t.receiver.visitExpression(this,e),e.print("["),t.index.visitExpression(this,e),e.print("]"),null},AbstractEmitterVisitor.prototype.visitLiteralArrayExpr=function(t,e){var n=t.entries.length>1;return e.print("[",n),e.incIndent(),this.visitAllExpressions(t.entries,e,",",n),e.decIndent(),e.print("]",n),null},AbstractEmitterVisitor.prototype.visitLiteralMapExpr=function(t,e){var n=this,r=t.entries.length>1;return e.print("{",r),e.incIndent(),this.visitAllObjects(function(t){e.print(escapeIdentifier(t[0],n._escapeDollarInStrings,!1)+": "),t[1].visitExpression(n,e)},t.entries,e,",",r),e.decIndent(),e.print("}",r),null},AbstractEmitterVisitor.prototype.visitAllExpressions=function(t,e,n,r){var i=this;void 0===r&&(r=!1),this.visitAllObjects(function(t){return t.visitExpression(i,e)},t,e,n,r)},AbstractEmitterVisitor.prototype.visitAllObjects=function(t,e,n,r,i){void 0===i&&(i=!1);for(var o=0;o<e.length;o++)o>0&&n.print(r,i),t(e[o]);i&&n.println()},AbstractEmitterVisitor.prototype.visitAllStatements=function(t,e){var n=this;t.forEach(function(t){return t.visitStatement(n,e)})},AbstractEmitterVisitor}()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function _isPipeMetadata(t){return t instanceof r.PipeMetadata}var r=n(0),i=n(3),o=n(17);n.d(e,"a",function(){return a});var a=function(){function PipeResolver(t){void 0===t&&(t=o.P),this._reflector=t}return PipeResolver.prototype.resolve=function(t,e){void 0===e&&(e=!0);var o=this._reflector.annotations(n.i(r.resolveForwardRef)(t));if(n.i(i.a)(o)){var a=o.find(_isPipeMetadata);if(n.i(i.a)(a))return a}if(e)throw new Error("No Pipe decorator found on "+n.i(i.q)(t));return null},PipeResolver.decorators=[{type:r.Injectable}],PipeResolver.ctorParameters=[{type:o.Y}],PipeResolver}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function ResourceLoader(){}return ResourceLoader.prototype.get=function(t){return null},ResourceLoader}()},function(t,e,n){"use strict";var r=n(6),i=n(3);n.d(e,"a",function(){return s}),n.d(e,"b",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o="",a=new RegExp("(\\:not\\()|([-\\w]+)|(?:\\.([-\\w]+))|(?:\\[([-\\w*]+)(?:=([^\\]]*))?\\])|(\\))|(\\s*,\\s*)","g"),s=function(){function CssSelector(){this.element=null,this.classNames=[],this.attrs=[],this.notSelectors=[]}return CssSelector.parse=function(t){var e,o=[],s=function(t,e){e.notSelectors.length>0&&n.i(i.c)(e.element)&&r.a.isEmpty(e.classNames)&&r.a.isEmpty(e.attrs)&&(e.element="*"),t.push(e)},c=new CssSelector,l=c,u=!1;for(a.lastIndex=0;n.i(i.a)(e=a.exec(t));){if(n.i(i.a)(e[1])){if(u)throw new Error("Nesting :not is not allowed in a selector");u=!0,l=new CssSelector,c.notSelectors.push(l)}if(n.i(i.a)(e[2])&&l.setElement(e[2]),n.i(i.a)(e[3])&&l.addClassName(e[3]),n.i(i.a)(e[4])&&l.addAttribute(e[4],e[5]),n.i(i.a)(e[6])&&(u=!1,l=c),n.i(i.a)(e[7])){if(u)throw new Error("Multiple selectors in :not are not supported");s(o,c),c=l=new CssSelector}}return s(o,c),o},CssSelector.prototype.isElementSelector=function(){return this.hasElementSelector()&&0==this.classNames.length&&0==this.attrs.length&&0===this.notSelectors.length},CssSelector.prototype.hasElementSelector=function(){return!!this.element},CssSelector.prototype.setElement=function(t){void 0===t&&(t=null),this.element=t},CssSelector.prototype.getMatchingElementTemplate=function(){for(var t=n.i(i.a)(this.element)?this.element:"div",e=this.classNames.length>0?' class="'+this.classNames.join(" ")+'"':"",r="",o=0;o<this.attrs.length;o+=2){var a=this.attrs[o],s=""!==this.attrs[o+1]?'="'+this.attrs[o+1]+'"':"";r+=" "+a+s}return"<"+t+e+r+"></"+t+">"},CssSelector.prototype.addAttribute=function(t,e){void 0===e&&(e=o),this.attrs.push(t),e=n.i(i.a)(e)?e.toLowerCase():o,this.attrs.push(e)},CssSelector.prototype.addClassName=function(t){this.classNames.push(t.toLowerCase())},CssSelector.prototype.toString=function(){var t="";if(n.i(i.a)(this.element)&&(t+=this.element),n.i(i.a)(this.classNames))for(var e=0;e<this.classNames.length;e++)t+="."+this.classNames[e];if(n.i(i.a)(this.attrs))for(var e=0;e<this.attrs.length;){var r=this.attrs[e++],o=this.attrs[e++];t+="["+r,o.length>0&&(t+="="+o),t+="]"}return this.notSelectors.forEach(function(e){return t+=":not("+e+")"}),t},CssSelector}(),c=function(){function SelectorMatcher(){this._elementMap=new Map,this._elementPartialMap=new Map,this._classMap=new Map,this._classPartialMap=new Map,this._attrValueMap=new Map,this._attrValuePartialMap=new Map,this._listContexts=[]}return SelectorMatcher.createNotMatcher=function(t){var e=new SelectorMatcher;return e.addSelectables(t,null),e},SelectorMatcher.prototype.addSelectables=function(t,e){var n=null;t.length>1&&(n=new l(t),this._listContexts.push(n));for(var r=0;r<t.length;r++)this._addSelectable(t[r],e,n)},SelectorMatcher.prototype._addSelectable=function(t,e,r){var o=this,a=t.element,s=t.classNames,c=t.attrs,l=new u(t,e,r);if(n.i(i.a)(a)){var p=0===c.length&&0===s.length;p?this._addTerminal(o._elementMap,a,l):o=this._addPartial(o._elementPartialMap,a)}if(n.i(i.a)(s))for(var d=0;d<s.length;d++){var p=0===c.length&&d===s.length-1,f=s[d];p?this._addTerminal(o._classMap,f,l):o=this._addPartial(o._classPartialMap,f)}if(n.i(i.a)(c))for(var d=0;d<c.length;){var p=d===c.length-2,h=c[d++],m=c[d++];if(p){var v=o._attrValueMap,g=v.get(h);n.i(i.c)(g)&&(g=new Map,v.set(h,g)),this._addTerminal(g,m,l)}else{var b=o._attrValuePartialMap,y=b.get(h);n.i(i.c)(y)&&(y=new Map,b.set(h,y)),o=this._addPartial(y,m)}}},SelectorMatcher.prototype._addTerminal=function(t,e,r){var o=t.get(e);n.i(i.c)(o)&&(o=[],t.set(e,o)),o.push(r)},SelectorMatcher.prototype._addPartial=function(t,e){var r=t.get(e);return n.i(i.c)(r)&&(r=new SelectorMatcher,t.set(e,r)),r},SelectorMatcher.prototype.match=function(t,e){for(var r=!1,a=t.element,s=t.classNames,c=t.attrs,l=0;l<this._listContexts.length;l++)this._listContexts[l].alreadyMatched=!1;if(r=this._matchTerminal(this._elementMap,a,t,e)||r,r=this._matchPartial(this._elementPartialMap,a,t,e)||r,n.i(i.a)(s))for(var u=0;u<s.length;u++){var p=s[u];r=this._matchTerminal(this._classMap,p,t,e)||r,r=this._matchPartial(this._classPartialMap,p,t,e)||r}if(n.i(i.a)(c))for(var u=0;u<c.length;){var d=c[u++],f=c[u++],h=this._attrValueMap.get(d);i.g.equals(f,o)||(r=this._matchTerminal(h,o,t,e)||r),r=this._matchTerminal(h,f,t,e)||r;var m=this._attrValuePartialMap.get(d);i.g.equals(f,o)||(r=this._matchPartial(m,o,t,e)||r),r=this._matchPartial(m,f,t,e)||r}return r},SelectorMatcher.prototype._matchTerminal=function(t,e,r,o){if(n.i(i.c)(t)||n.i(i.c)(e))return!1;var a=t.get(e),s=t.get("*");if(n.i(i.a)(s)&&(a=a.concat(s)),n.i(i.c)(a))return!1;for(var c,l=!1,u=0;u<a.length;u++)c=a[u],l=c.finalize(r,o)||l;return l},SelectorMatcher.prototype._matchPartial=function(t,e,r,o){if(n.i(i.c)(t)||n.i(i.c)(e))return!1;var a=t.get(e);return!n.i(i.c)(a)&&a.match(r,o)},SelectorMatcher}(),l=function(){function SelectorListContext(t){this.selectors=t,this.alreadyMatched=!1}return SelectorListContext}(),u=function(){function SelectorContext(t,e,n){this.selector=t,this.cbContext=e,this.listContext=n,this.notSelectors=t.notSelectors}return SelectorContext.prototype.finalize=function(t,e){var r=!0;if(this.notSelectors.length>0&&(n.i(i.c)(this.listContext)||!this.listContext.alreadyMatched)){var o=c.createNotMatcher(this.notSelectors);r=!o.match(t,null)}return r&&n.i(i.a)(e)&&(n.i(i.c)(this.listContext)||!this.listContext.alreadyMatched)&&(n.i(i.a)(this.listContext)&&(this.listContext.alreadyMatched=!0),e(this.selector,this.cbContext)),r},SelectorContext}()},function(t,e,n){"use strict";function getStylesVarName(t){var e="styles";return t&&(e+="_"+t.type.name),e}var r=n(0),i=n(20),o=n(7),a=n(462),s=n(80);n.d(e,"a",function(){return h});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c="%COMP%",l="_nghost-"+c,u="_ngcontent-"+c,p=function(){function StylesCompileDependency(t,e,n){this.moduleUrl=t,this.isShimmed=e,this.valuePlaceholder=n}return StylesCompileDependency}(),d=function(){function StylesCompileResult(t,e){this.componentStylesheet=t,this.externalStylesheets=e}return StylesCompileResult}(),f=function(){function CompiledStylesheet(t,e,n,r,i){this.statements=t,this.stylesVar=e,this.dependencies=n,this.isShimmed=r,this.meta=i}return CompiledStylesheet}(),h=function(){function StyleCompiler(t){this._urlResolver=t,this._shadowCss=new a.a}return StyleCompiler.prototype.compileComponent=function(t){var e=this,n=[],r=this._compileStyles(t,new i.o({styles:t.template.styles,styleUrls:t.template.styleUrls,moduleUrl:t.type.moduleUrl}),!0);return t.template.externalStylesheets.forEach(function(r){var i=e._compileStyles(t,r,!1);n.push(i)}),new d(r,n)},StyleCompiler.prototype._compileStyles=function(t,e,n){for(var a=this,s=t.template.encapsulation===r.ViewEncapsulation.Emulated,c=e.styles.map(function(t){return o.a(a._shimIfNeeded(t,s))}),l=[],u=0;u<e.styleUrls.length;u++){var d=new i.a({name:getStylesVarName(null)});l.push(new p(e.styleUrls[u],s,d)),c.push(new o.S(d))}var h=getStylesVarName(n?t:null),m=o.e(h).set(o.g(c,new o.q(o.l,[o.d.Const]))).toDeclStmt(null,[o.u.Final]);return new f([m],h,l,s,e)},StyleCompiler.prototype._shimIfNeeded=function(t,e){return e?this._shadowCss.shimCssText(t,u,l):t},StyleCompiler.decorators=[{type:r.Injectable}],StyleCompiler.ctorParameters=[{type:s.a}],StyleCompiler}()},function(t,e,n){"use strict";var r=n(6),i=n(3),o=n(7);n.d(e,"a",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function _DebugState(t,e){this.nodeIndex=t,this.sourceAst=e}return _DebugState}(),s=new a(null,null),c=function(){function CompileMethod(t){this._view=t,this._newState=s,this._currState=s,this._bodyStatements=[],this._debugEnabled=this._view.genConfig.genDebugInfo}return CompileMethod.prototype._updateDebugContextIfNeeded=function(){if(this._newState.nodeIndex!==this._currState.nodeIndex||this._newState.sourceAst!==this._currState.sourceAst){var t=this._updateDebugContext(this._newState);n.i(i.a)(t)&&this._bodyStatements.push(t.toStmt())}},CompileMethod.prototype._updateDebugContext=function(t){if(this._currState=this._newState=t,this._debugEnabled){var e=n.i(i.a)(t.sourceAst)?t.sourceAst.sourceSpan.start:null;return o.n.callMethod("debug",[o.a(t.nodeIndex),n.i(i.a)(e)?o.a(e.line):o.h,n.i(i.a)(e)?o.a(e.col):o.h])}return null},CompileMethod.prototype.resetDebugInfoExpr=function(t,e){var r=this._updateDebugContext(new a(t,e));return n.i(i.a)(r)?r:o.h},CompileMethod.prototype.resetDebugInfo=function(t,e){this._newState=new a(t,e)},CompileMethod.prototype.addStmt=function(t){this._updateDebugContextIfNeeded(),this._bodyStatements.push(t)},CompileMethod.prototype.addStmts=function(t){this._updateDebugContextIfNeeded(),r.a.addAll(this._bodyStatements,t)},CompileMethod.prototype.finish=function(){return this._bodyStatements},CompileMethod.prototype.isEmpty=function(){return 0===this._bodyStatements.length},CompileMethod}()},function(t,e,n){"use strict";var r=n(2);n.d(e,"b",function(){return i}),n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function AnimationPlayer(){}return Object.defineProperty(AnimationPlayer.prototype,"parentPlayer",{get:function(){throw new Error("NOT IMPLEMENTED: Base Class")},set:function(t){throw new Error("NOT IMPLEMENTED: Base Class")},enumerable:!0,configurable:!0}),AnimationPlayer}(),o=function(){function NoOpAnimationPlayer(){var t=this;this._onDoneFns=[],this._onStartFns=[],this._started=!1,this.parentPlayer=null,n.i(r.s)(function(){return t._onFinish()})}return NoOpAnimationPlayer.prototype._onFinish=function(){this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[]},NoOpAnimationPlayer.prototype.onStart=function(t){this._onStartFns.push(t)},NoOpAnimationPlayer.prototype.onDone=function(t){this._onDoneFns.push(t)},NoOpAnimationPlayer.prototype.hasStarted=function(){return this._started},NoOpAnimationPlayer.prototype.init=function(){},NoOpAnimationPlayer.prototype.play=function(){this.hasStarted()||(this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[]),this._started=!0},NoOpAnimationPlayer.prototype.pause=function(){},NoOpAnimationPlayer.prototype.restart=function(){},NoOpAnimationPlayer.prototype.finish=function(){this._onFinish()},NoOpAnimationPlayer.prototype.destroy=function(){},NoOpAnimationPlayer.prototype.reset=function(){},NoOpAnimationPlayer.prototype.setPosition=function(t){},NoOpAnimationPlayer.prototype.getPosition=function(){return 0},NoOpAnimationPlayer}()},function(t,e,n){"use strict";var r=n(2),i=n(35);n.d(e,"b",function(){return o}),n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=new i.OpaqueToken("Application Initializer"),a=function(){function ApplicationInitStatus(t){var e=this;this._done=!1;var i=[];if(t)for(var o=0;o<t.length;o++){var a=t[o]();n.i(r.k)(a)&&i.push(a)}this._donePromise=Promise.all(i).then(function(){e._done=!0}),0===i.length&&(this._done=!0)}return Object.defineProperty(ApplicationInitStatus.prototype,"done",{get:function(){return this._done},enumerable:!0,configurable:!0}),Object.defineProperty(ApplicationInitStatus.prototype,"donePromise",{get:function(){return this._donePromise},enumerable:!0,configurable:!0}),ApplicationInitStatus.decorators=[{type:i.Injectable}],ApplicationInitStatus.ctorParameters=[{type:Array,decorators:[{type:i.Inject,args:[o]},{type:i.Optional}]}],ApplicationInitStatus}()},function(t,e,n){"use strict";function enableProdMode(){if(_)throw new Error("Cannot enable prod mode after platform setup.");y=!1}function isDevMode(){return _=!0,y}function createPlatform(t){if(n.i(a.g)(g)&&!g.destroyed)throw new Error("There can be only one platform. Destroy the previous one to create a new one.");g=t.get(w);var e=t.get(c.b,null);return n.i(a.g)(e)&&e.forEach(function(t){return t()}),g}function createPlatformFactory(t,e,n){void 0===n&&(n=[]);var r=new u.OpaqueToken("Platform: "+e);return function(e){return void 0===e&&(e=[]),getPlatform()||(t?t(n.concat(e).concat({provide:r,useValue:!0})):createPlatform(u.ReflectiveInjector.resolveAndCreate(n.concat(e).concat({provide:r,useValue:!0})))),assertPlatform(r)}}function assertPlatform(t){var e=getPlatform();if(n.i(a.f)(e))throw new Error("No platform exists!");if(n.i(a.g)(e)&&n.i(a.f)(e.injector.get(t,null)))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return e}function destroyPlatform(){n.i(a.g)(g)&&!g.destroyed&&g.destroy()}function getPlatform(){return n.i(a.g)(g)&&!g.destroyed?g:null}function _callAndReportToErrorHandler(t,e){try{var r=e();return n.i(a.k)(r)?r.catch(function(e){throw t.handleError(e),e}):r}catch(i){throw t.handleError(i),i}}var r=n(302),i=n(10),o=n(30),a=n(2),s=n(163),c=n(107),l=n(166),u=n(35),p=n(84),d=n(304),f=n(113),h=n(116),m=n(175),v=n(177);e.k=enableProdMode,e.f=isDevMode,e.j=createPlatform,e.c=createPlatformFactory,e.g=assertPlatform,e.h=destroyPlatform,e.i=getPlatform,n.d(e,"b",function(){return w}),n.d(e,"a",function(){return x}),n.d(e,"e",function(){return C}),n.d(e,"d",function(){return S});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var g,b=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},y=!0,_=!1,w=function(){function PlatformRef(){}return PlatformRef.prototype.bootstrapModuleFactory=function(t){throw n.i(o.a)()},PlatformRef.prototype.bootstrapModule=function(t,e){throw void 0===e&&(e=[]),n.i(o.a)()},Object.defineProperty(PlatformRef.prototype,"injector",{get:function(){throw n.i(o.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(PlatformRef.prototype,"destroyed",{get:function(){throw n.i(o.a)()},enumerable:!0,configurable:!0}),PlatformRef}(),x=function(t){function PlatformRef_(e){t.call(this),this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return b(PlatformRef_,t),PlatformRef_.prototype.onDestroy=function(t){this._destroyListeners.push(t)},Object.defineProperty(PlatformRef_.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),Object.defineProperty(PlatformRef_.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),PlatformRef_.prototype.destroy=function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");i.a.clone(this._modules).forEach(function(t){return t.destroy()}),this._destroyListeners.forEach(function(t){return t()}),this._destroyed=!0},PlatformRef_.prototype.bootstrapModuleFactory=function(t){return this._bootstrapModuleFactoryWithZone(t,null)},PlatformRef_.prototype._bootstrapModuleFactoryWithZone=function(t,e){var n=this;return e||(e=new v.a({enableLongStackTrace:isDevMode()})),e.run(function(){var o=u.ReflectiveInjector.resolveAndCreate([{provide:v.a,useValue:e}],n.injector),a=t.create(o),c=a.injector.get(r.a,null);if(!c)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return a.onDestroy(function(){return i.a.remove(n._modules,a)}),e.onError.subscribe({next:function(t){c.handleError(t)}}),_callAndReportToErrorHandler(c,function(){var t=a.injector.get(s.a);return t.donePromise.then(function(){return n._moduleDoBootstrap(a),a})})})},PlatformRef_.prototype.bootstrapModule=function(t,e){return void 0===e&&(e=[]),this._bootstrapModuleWithZone(t,e,null)},PlatformRef_.prototype._bootstrapModuleWithZone=function(t,e,n,r){var i=this;void 0===e&&(e=[]);var o=this.injector.get(p.a),a=o.createCompiler(e instanceof Array?e:[e]);return r?a.compileModuleAndAllComponentsAsync(t).then(function(t){var e=t.ngModuleFactory,o=t.componentFactories;return r(o),i._bootstrapModuleFactoryWithZone(e,n)}):a.compileModuleAsync(t).then(function(t){return i._bootstrapModuleFactoryWithZone(t,n)})},PlatformRef_.prototype._moduleDoBootstrap=function(t){var e=t.injector.get(C);if(t.bootstrapFactories.length>0)t.bootstrapFactories.forEach(function(t){return e.bootstrap(t)});else{if(!t.instance.ngDoBootstrap)throw new Error("The module "+n.i(a.a)(t.instance.constructor)+' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.');t.instance.ngDoBootstrap(e)}},PlatformRef_.decorators=[{type:u.Injectable}],PlatformRef_.ctorParameters=[{type:u.Injector}],PlatformRef_}(w),C=function(){function ApplicationRef(){}return Object.defineProperty(ApplicationRef.prototype,"componentTypes",{get:function(){return n.i(o.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(ApplicationRef.prototype,"components",{get:function(){return n.i(o.a)()},enumerable:!0,configurable:!0}),ApplicationRef}(),S=function(t){function ApplicationRef_(e,n,r,i,o,a,s,c){var l=this;t.call(this),this._zone=e,this._console=n,this._injector=r,this._exceptionHandler=i,this._componentFactoryResolver=o,this._initStatus=a,this._testabilityRegistry=s,this._testability=c,this._bootstrapListeners=[],this._rootComponents=[],this._rootComponentTypes=[],this._changeDetectorRefs=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._enforceNoNewChanges=isDevMode(),this._zone.onMicrotaskEmpty.subscribe({next:function(){l._zone.run(function(){l.tick()})}})}return b(ApplicationRef_,t),ApplicationRef_.prototype.registerChangeDetector=function(t){this._changeDetectorRefs.push(t)},ApplicationRef_.prototype.unregisterChangeDetector=function(t){i.a.remove(this._changeDetectorRefs,t)},ApplicationRef_.prototype.bootstrap=function(t){var e=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");var r;r=t instanceof d.a?t:this._componentFactoryResolver.resolveComponentFactory(t),this._rootComponentTypes.push(r.componentType);var i=r.create(this._injector,[],r.selector);i.onDestroy(function(){e._unloadComponent(i)});var o=i.injector.get(m.a,null);return n.i(a.g)(o)&&i.injector.get(m.b).registerApplication(i.location.nativeElement,o),this._loadComponent(i),isDevMode()&&this._console.log("Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode."),i},ApplicationRef_.prototype._loadComponent=function(t){this._changeDetectorRefs.push(t.changeDetectorRef),this.tick(),this._rootComponents.push(t);var e=this._injector.get(c.c,[]).concat(this._bootstrapListeners);e.forEach(function(e){return e(t)})},ApplicationRef_.prototype._unloadComponent=function(t){i.a.contains(this._rootComponents,t)&&(this.unregisterChangeDetector(t.changeDetectorRef),i.a.remove(this._rootComponents,t))},ApplicationRef_.prototype.tick=function(){if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");var t=ApplicationRef_._tickScope();try{this._runningTick=!0,this._changeDetectorRefs.forEach(function(t){return t.detectChanges()}),this._enforceNoNewChanges&&this._changeDetectorRefs.forEach(function(t){return t.checkNoChanges()})}finally{this._runningTick=!1,n.i(h.b)(t)}},ApplicationRef_.prototype.ngOnDestroy=function(){i.a.clone(this._rootComponents).forEach(function(t){return t.destroy()})},Object.defineProperty(ApplicationRef_.prototype,"componentTypes",{get:function(){return this._rootComponentTypes},enumerable:!0,configurable:!0}),Object.defineProperty(ApplicationRef_.prototype,"components",{get:function(){return this._rootComponents},enumerable:!0,configurable:!0}),ApplicationRef_._tickScope=n.i(h.a)("ApplicationRef#tick()"),ApplicationRef_.decorators=[{type:u.Injectable}],ApplicationRef_.ctorParameters=[{type:v.a},{type:l.a},{type:u.Injector},{type:r.a},{type:f.a},{type:s.a},{type:m.b,decorators:[{type:u.Optional}]},{type:m.a,decorators:[{type:u.Optional}]}],ApplicationRef_}(C)},function(t,e,n){"use strict";function getPreviousIndex(t,e,n){var r=t.previousIndex;if(null===r)return r;var i=0;return n&&r<n.length&&(i=n[r]),r+e+i}var r=n(10),i=n(2);n.d(e,"a",function(){return o}),n.d(e,"c",function(){return s}),n.d(e,"b",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function DefaultIterableDifferFactory(){}return DefaultIterableDifferFactory.prototype.supports=function(t){return n.i(r.g)(t)},DefaultIterableDifferFactory.prototype.create=function(t,e){return new s(e)},DefaultIterableDifferFactory}(),a=function(t,e){return e},s=function(){function DefaultIterableDiffer(t){this._trackByFn=t,this._length=null,this._collection=null,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n.i(i.g)(this._trackByFn)?this._trackByFn:a}return Object.defineProperty(DefaultIterableDiffer.prototype,"collection",{get:function(){return this._collection},enumerable:!0,configurable:!0}),Object.defineProperty(DefaultIterableDiffer.prototype,"length",{get:function(){return this._length},enumerable:!0,configurable:!0}),DefaultIterableDiffer.prototype.forEachItem=function(t){var e;for(e=this._itHead;null!==e;e=e._next)t(e)},DefaultIterableDiffer.prototype.forEachOperation=function(t){for(var e=this._itHead,n=this._removalsHead,r=0,i=null;e||n;){var o=!n||e&&e.currentIndex<getPreviousIndex(n,r,i)?e:n,a=getPreviousIndex(o,r,i),s=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{i||(i=[]);var c=a-r,l=s-r;if(c!=l){for(var u=0;u<c;u++){var p=u<i.length?i[u]:i[u]=0,d=p+u;l<=d&&d<c&&(i[u]=p+1)}var f=o.previousIndex;i[f]=l-c}}a!==s&&t(o,a,s)}},DefaultIterableDiffer.prototype.forEachPreviousItem=function(t){var e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)},DefaultIterableDiffer.prototype.forEachAddedItem=function(t){var e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)},DefaultIterableDiffer.prototype.forEachMovedItem=function(t){var e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)},DefaultIterableDiffer.prototype.forEachRemovedItem=function(t){var e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)},DefaultIterableDiffer.prototype.forEachIdentityChange=function(t){var e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)},DefaultIterableDiffer.prototype.diff=function(t){if(n.i(i.f)(t)&&(t=[]),!n.i(r.g)(t))throw new Error("Error trying to diff '"+t+"'");return this.check(t)?this:null},DefaultIterableDiffer.prototype.onDestroy=function(){},DefaultIterableDiffer.prototype.check=function(t){var e=this;this._reset();var o,a,s,c=this._itHead,l=!1;if(n.i(i.h)(t)){var u=t;for(this._length=t.length,o=0;o<this._length;o++)a=u[o],s=this._trackByFn(o,a),null!==c&&n.i(i.o)(c.trackById,s)?(l&&(c=this._verifyReinsertion(c,a,s,o)),n.i(i.o)(c.item,a)||this._addIdentityChange(c,a)):(c=this._mismatch(c,a,s,o),l=!0),c=c._next}else o=0,n.i(r.h)(t,function(t){s=e._trackByFn(o,t),null!==c&&n.i(i.o)(c.trackById,s)?(l&&(c=e._verifyReinsertion(c,t,s,o)),n.i(i.o)(c.item,t)||e._addIdentityChange(c,t)):(c=e._mismatch(c,t,s,o),l=!0),c=c._next,o++}),this._length=o;return this._truncate(c),this._collection=t,this.isDirty},Object.defineProperty(DefaultIterableDiffer.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead},enumerable:!0,configurable:!0}),DefaultIterableDiffer.prototype._reset=function(){if(this.isDirty){var t,e;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=e)t.previousIndex=t.currentIndex,e=t._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}},DefaultIterableDiffer.prototype._mismatch=function(t,e,r,o){var a;return null===t?a=this._itTail:(a=t._prev,this._remove(t)),t=null===this._linkedRecords?null:this._linkedRecords.get(r,o),null!==t?(n.i(i.o)(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,a,o)):(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r),null!==t?(n.i(i.o)(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,a,o)):t=this._addAfter(new c(e,r),a,o)),t},DefaultIterableDiffer.prototype._verifyReinsertion=function(t,e,n,r){var i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n);return null!==i?t=this._reinsertAfter(i,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t},DefaultIterableDiffer.prototype._truncate=function(t){for(;null!==t;){var e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)},DefaultIterableDiffer.prototype._reinsertAfter=function(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);var r=t._prevRemoved,i=t._nextRemoved;return null===r?this._removalsHead=i:r._nextRemoved=i,null===i?this._removalsTail=r:i._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t},DefaultIterableDiffer.prototype._moveAfter=function(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t},DefaultIterableDiffer.prototype._addAfter=function(t,e,n){return this._insertAfter(t,e,n),null===this._additionsTail?this._additionsTail=this._additionsHead=t:this._additionsTail=this._additionsTail._nextAdded=t,t},DefaultIterableDiffer.prototype._insertAfter=function(t,e,n){var r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new u),this._linkedRecords.put(t),t.currentIndex=n,t},DefaultIterableDiffer.prototype._remove=function(t){return this._addToRemovals(this._unlink(t))},DefaultIterableDiffer.prototype._unlink=function(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);var e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t},DefaultIterableDiffer.prototype._addToMoves=function(t,e){return t.previousIndex===e?t:(null===this._movesTail?this._movesTail=this._movesHead=t:this._movesTail=this._movesTail._nextMoved=t,t)},DefaultIterableDiffer.prototype._addToRemovals=function(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new u),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t},DefaultIterableDiffer.prototype._addIdentityChange=function(t,e){return t.item=e,null===this._identityChangesTail?this._identityChangesTail=this._identityChangesHead=t:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=t,t},DefaultIterableDiffer.prototype.toString=function(){var t=[];this.forEachItem(function(e){return t.push(e)});var e=[];this.forEachPreviousItem(function(t){return e.push(t)});var n=[];this.forEachAddedItem(function(t){return n.push(t)});var r=[];this.forEachMovedItem(function(t){return r.push(t)});var i=[];this.forEachRemovedItem(function(t){return i.push(t)});var o=[];return this.forEachIdentityChange(function(t){return o.push(t)}),"collection: "+t.join(", ")+"\nprevious: "+e.join(", ")+"\nadditions: "+n.join(", ")+"\nmoves: "+r.join(", ")+"\nremovals: "+i.join(", ")+"\nidentityChanges: "+o.join(", ")+"\n"},DefaultIterableDiffer}(),c=function(){function CollectionChangeRecord(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}return CollectionChangeRecord.prototype.toString=function(){return this.previousIndex===this.currentIndex?n.i(i.a)(this.item):n.i(i.a)(this.item)+"["+n.i(i.a)(this.previousIndex)+"->"+n.i(i.a)(this.currentIndex)+"]"},CollectionChangeRecord}(),l=function(){function _DuplicateItemRecordList(){this._head=null,this._tail=null}return _DuplicateItemRecordList.prototype.add=function(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)},_DuplicateItemRecordList.prototype.get=function(t,e){var r;for(r=this._head;null!==r;r=r._nextDup)if((null===e||e<r.currentIndex)&&n.i(i.o)(r.trackById,t))return r;return null},_DuplicateItemRecordList.prototype.remove=function(t){var e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head},_DuplicateItemRecordList}(),u=function(){function _DuplicateMap(){this.map=new Map}return _DuplicateMap.prototype.put=function(t){var e=n.i(i.p)(t.trackById),r=this.map.get(e);n.i(i.g)(r)||(r=new l,this.map.set(e,r)),r.add(t)},_DuplicateMap.prototype.get=function(t,e){void 0===e&&(e=null);var r=n.i(i.p)(t),o=this.map.get(r);return n.i(i.f)(o)?null:o.get(t,e)},_DuplicateMap.prototype.remove=function(t){var e=n.i(i.p)(t.trackById),r=this.map.get(e);return r.remove(t)&&this.map.delete(e),t},Object.defineProperty(_DuplicateMap.prototype,"isEmpty",{get:function(){return 0===this.map.size},enumerable:!0,configurable:!0}),_DuplicateMap.prototype.clear=function(){this.map.clear()},_DuplicateMap.prototype.toString=function(){return"_DuplicateMap("+n.i(i.a)(this.map)+")"},_DuplicateMap}()},function(t,e,n){"use strict";var r=n(82),i=n(2);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function Console(){}return Console.prototype.log=function(t){n.i(i.m)(t)},Console.prototype.warn=function(t){n.i(i.n)(t)},Console.decorators=[{type:r.Injectable}],Console.ctorParameters=[],Console}()},function(t,e,n){"use strict";var r=n(82);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function OpaqueToken(t){this._desc=t}return OpaqueToken.prototype.toString=function(){return"Token "+this._desc},OpaqueToken.decorators=[{type:r.Injectable}],OpaqueToken.ctorParameters=[null],OpaqueToken}()},function(t,e,n){"use strict";var r=n(2),i=n(111);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function ReflectiveKey(t,e){if(this.token=t,this.id=e,n.i(r.f)(t))throw new Error("Token must be defined!")}return Object.defineProperty(ReflectiveKey.prototype,"displayName",{get:function(){return n.i(r.a)(this.token)},enumerable:!0,configurable:!0}),ReflectiveKey.get=function(t){return s.get(n.i(i.a)(t))},Object.defineProperty(ReflectiveKey,"numberOfKeys",{get:function(){return s.numberOfKeys},enumerable:!0,configurable:!0}),ReflectiveKey}(),a=function(){function KeyRegistry(){this._allKeys=new Map}return KeyRegistry.prototype.get=function(t){if(t instanceof o)return t;if(this._allKeys.has(t))return this._allKeys.get(t);var e=new o(t,o.numberOfKeys);return this._allKeys.set(t,e),e},Object.defineProperty(KeyRegistry.prototype,"numberOfKeys",{get:function(){return this._allKeys.size},enumerable:!0,configurable:!0}),KeyRegistry}(),s=new a},function(t,e,n){"use strict";function resolveReflectiveFactory(t){var e,r;if(n.i(i.g)(t.useClass)){var a=n.i(s.a)(t.useClass);e=o.a.factory(a),r=_dependenciesFor(a)}else n.i(i.g)(t.useExisting)?(e=function(t){return t},r=[p.fromKey(u.a.get(t.useExisting))]):n.i(i.g)(t.useFactory)?(e=t.useFactory,r=constructDependencies(t.useFactory,t.deps)):(e=function(){return t.useValue},r=d);return new h(e,r)}function resolveReflectiveProvider(t){return new f(u.a.get(t.provide),[resolveReflectiveFactory(t)],t.multi)}function resolveReflectiveProviders(t){var e=_normalizeProviders(t,[]),n=e.map(resolveReflectiveProvider);return r.d.values(mergeResolvedReflectiveProviders(n,new Map))}function mergeResolvedReflectiveProviders(t,e){for(var o=0;o<t.length;o++){var a=t[o],s=e.get(a.key.id);if(n.i(i.g)(s)){if(a.multiProvider!==s.multiProvider)throw new l.a(s,a);if(a.multiProvider)for(var c=0;c<a.resolvedFactories.length;c++)s.resolvedFactories.push(a.resolvedFactories[c]);else e.set(a.key.id,a)}else{var u;u=a.multiProvider?new f(a.key,r.a.clone(a.resolvedFactories),a.multiProvider):a,e.set(a.key.id,u)}}return e}function _normalizeProviders(t,e){return t.forEach(function(t){if(t instanceof a.a)e.push({provide:t,useClass:t});else if(t&&"object"==typeof t&&void 0!==t.provide)e.push(t);else{if(!(t instanceof Array))throw new l.b(t);_normalizeProviders(t,e)}}),e}function constructDependencies(t,e){if(n.i(i.f)(e))return _dependenciesFor(t);var r=e.map(function(t){return[t]});return e.map(function(e){return _extractToken(t,e,r)})}function _dependenciesFor(t){var e=o.a.parameters(t);if(n.i(i.f)(e))return[];if(e.some(i.f))throw new l.c(t,e);return e.map(function(n){return _extractToken(t,n,e)})}function _extractToken(t,e,r){var o=[],u=null,p=!1;if(!n.i(i.h)(e))return e instanceof c.a?_createDependency(e.token,p,null,null,o):_createDependency(e,p,null,null,o);for(var d=null,f=null,h=0;h<e.length;++h){var m=e[h];m instanceof a.a?u=m:m instanceof c.a?u=m.token:m instanceof c.b?p=!0:m instanceof c.d?f=m:m instanceof c.e?f=m:m instanceof c.f?d=m:m instanceof c.g&&(n.i(i.g)(m.token)&&(u=m.token),o.push(m))}if(u=n.i(s.a)(u),n.i(i.g)(u))return _createDependency(u,p,d,f,o);throw new l.c(t,r)}function _createDependency(t,e,n,r,i){return new p(u.a.get(t),e,n,r,i)}var r=n(10),i=n(2),o=n(172),a=n(176),s=n(111),c=n(83),l=n(301),u=n(168);n.d(e,"c",function(){return h}),e.a=resolveReflectiveProviders,e.b=constructDependencies;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var p=function(){function ReflectiveDependency(t,e,n,r,i){this.key=t,this.optional=e,this.lowerBoundVisibility=n,this.upperBoundVisibility=r,this.properties=i}return ReflectiveDependency.fromKey=function(t){return new ReflectiveDependency(t,(!1),null,null,[])},ReflectiveDependency}(),d=[],f=function(){function ResolvedReflectiveProvider_(t,e,n){this.key=t,this.resolvedFactories=e,this.multiProvider=n}return Object.defineProperty(ResolvedReflectiveProvider_.prototype,"resolvedFactory",{get:function(){return this.resolvedFactories[0]},enumerable:!0,configurable:!0}),ResolvedReflectiveProvider_}(),h=function(){function ResolvedReflectiveFactory(t,e){this.factory=t,this.dependencies=e}return ResolvedReflectiveFactory}()},function(t,e,n){"use strict";var r=n(77),i=(n.n(r),n(9));n.n(i);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(t){function EventEmitter(e){void 0===e&&(e=!1),t.call(this),this.__isAsync=e}return o(EventEmitter,t),EventEmitter.prototype.emit=function(e){t.prototype.next.call(this,e)},EventEmitter.prototype.subscribe=function(e,n,r){var i,o=function(t){return null},a=function(){return null};return e&&"object"==typeof e?(i=this.__isAsync?function(t){setTimeout(function(){return e.next(t)})}:function(t){e.next(t)},e.error&&(o=this.__isAsync?function(t){setTimeout(function(){return e.error(t)})}:function(t){e.error(t)}),e.complete&&(a=this.__isAsync?function(){setTimeout(function(){return e.complete()})}:function(){e.complete()})):(i=this.__isAsync?function(t){setTimeout(function(){return e(t)})}:function(t){e(t)},n&&(o=this.__isAsync?function(t){setTimeout(function(){return n(t)})}:function(t){n(t)}),r&&(a=this.__isAsync?function(){setTimeout(function(){return r()})}:function(){r()})),t.prototype.subscribe.call(this,i,o,a)},EventEmitter}(r.Subject)},function(t,e,n){"use strict";var r=n(10),i=n(2),o=n(306),a=n(310),s=n(114);n.d(e,"a",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c=function(){function AppElement(t,e,n,r){this.index=t,this.parentIndex=e,this.parentView=n,this.nativeElement=r,this.nestedViews=null,this.componentView=null}return Object.defineProperty(AppElement.prototype,"elementRef",{get:function(){return new o.a(this.nativeElement)},enumerable:!0,configurable:!0}),Object.defineProperty(AppElement.prototype,"vcRef",{get:function(){return new a.a(this)},enumerable:!0,configurable:!0}),AppElement.prototype.initComponent=function(t,e,n){this.component=t,this.componentConstructorViewQueries=e,this.componentView=n},Object.defineProperty(AppElement.prototype,"parentInjector",{get:function(){return this.parentView.injector(this.parentIndex)},enumerable:!0,configurable:!0}),Object.defineProperty(AppElement.prototype,"injector",{get:function(){return this.parentView.injector(this.index)},enumerable:!0,configurable:!0}),AppElement.prototype.mapNestedViews=function(t,e){var r=[];return n.i(i.g)(this.nestedViews)&&this.nestedViews.forEach(function(n){n.clazz===t&&r.push(e(n))}),r},AppElement.prototype.moveView=function(t,e){var o=this.nestedViews.indexOf(t);if(t.type===s.a.COMPONENT)throw new Error("Component views can't be moved!");var a=this.nestedViews;null==a&&(a=[],this.nestedViews=a),r.a.removeAt(a,o),r.a.insert(a,e,t);var c;if(e>0){var l=a[e-1];c=l.lastRootNode}else c=this.nativeElement;n.i(i.g)(c)&&t.renderer.attachViewAfter(c,t.flatRootNodes),t.markContentChildAsMoved(this)},AppElement.prototype.attachView=function(t,e){if(t.type===s.a.COMPONENT)throw new Error("Component views can't be moved!");var o=this.nestedViews;null==o&&(o=[],this.nestedViews=o),r.a.insert(o,e,t);var a;if(e>0){var c=o[e-1];a=c.lastRootNode}else a=this.nativeElement;n.i(i.g)(a)&&t.renderer.attachViewAfter(a,t.flatRootNodes),t.addToContentChildren(this)},AppElement.prototype.detachView=function(t){var e=r.a.removeAt(this.nestedViews,t);if(e.type===s.a.COMPONENT)throw new Error("Component views can't be moved!");return e.detach(),e.removeFromContentChildren(this),e},AppElement}()},function(t,e,n){"use strict";var r=n(318),i=n(319);n.d(e,"a",function(){return o}),n.o(i,"a")&&n.d(e,"b",function(){return i.a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=new i.a(new r.a)},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function ReflectorReader(){}return ReflectorReader}()},function(t,e,n){"use strict";var r=n(30);n.d(e,"a",function(){return i}),n.d(e,"c",function(){return o}),n.d(e,"d",function(){return a}),n.d(e,"b",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function RenderComponentType(t,e,n,r,i,o){this.id=t,this.templateUrl=e,this.slotCount=n,this.encapsulation=r,this.styles=i,this.animations=o}return RenderComponentType}(),o=function(){function RenderDebugInfo(){}return Object.defineProperty(RenderDebugInfo.prototype,"injector",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(RenderDebugInfo.prototype,"component",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(RenderDebugInfo.prototype,"providerTokens",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(RenderDebugInfo.prototype,"references",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(RenderDebugInfo.prototype,"context",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(RenderDebugInfo.prototype,"source",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),RenderDebugInfo}(),a=function(){function Renderer(){}return Renderer}(),s=function(){function RootRenderer(){}return RootRenderer}()},function(t,e,n){"use strict";function setTestabilityGetter(t){u=t}var r=n(82),i=n(10),o=n(2),a=n(177);n.d(e,"a",function(){return s}),n.d(e,"b",function(){return c}),e.c=setTestabilityGetter;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function Testability(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this._watchAngularEvents()}return Testability.prototype._watchAngularEvents=function(){var t=this;this._ngZone.onUnstable.subscribe({next:function(){t._didWork=!0,t._isZoneStable=!1}}),this._ngZone.runOutsideAngular(function(){t._ngZone.onStable.subscribe({next:function(){a.a.assertNotInAngularZone(),n.i(o.s)(function(){t._isZoneStable=!0,t._runCallbacksIfReady()})}})})},Testability.prototype.increasePendingRequestCount=function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount},Testability.prototype.decreasePendingRequestCount=function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount},Testability.prototype.isStable=function(){return this._isZoneStable&&0==this._pendingCount&&!this._ngZone.hasPendingMacrotasks},Testability.prototype._runCallbacksIfReady=function(){var t=this;this.isStable()?n.i(o.s)(function(){for(;0!==t._callbacks.length;)t._callbacks.pop()(t._didWork);t._didWork=!1}):this._didWork=!0},Testability.prototype.whenStable=function(t){this._callbacks.push(t),this._runCallbacksIfReady()},Testability.prototype.getPendingRequestCount=function(){return this._pendingCount},Testability.prototype.findBindings=function(t,e,n){return[]},Testability.prototype.findProviders=function(t,e,n){return[]},Testability.decorators=[{type:r.Injectable}],Testability.ctorParameters=[{type:a.a}],Testability}(),c=function(){function TestabilityRegistry(){this._applications=new i.b,u.addToWindow(this)}return TestabilityRegistry.prototype.registerApplication=function(t,e){this._applications.set(t,e)},TestabilityRegistry.prototype.getTestability=function(t){return this._applications.get(t)},TestabilityRegistry.prototype.getAllTestabilities=function(){return i.d.values(this._applications)},TestabilityRegistry.prototype.getAllRootElements=function(){return i.d.keys(this._applications)},TestabilityRegistry.prototype.findTestabilityInTree=function(t,e){return void 0===e&&(e=!0),u.findTestabilityInTree(this,t,e)},TestabilityRegistry.decorators=[{type:r.Injectable}],TestabilityRegistry.ctorParameters=[],TestabilityRegistry}(),l=function(){function _NoopGetTestability(){}return _NoopGetTestability.prototype.addToWindow=function(t){},_NoopGetTestability.prototype.findTestabilityInTree=function(t,e,n){return null},_NoopGetTestability}(),u=new l},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=Function},function(t,e,n){"use strict";var r=n(170),i=n(493);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function NgZone(t){var e=this,n=t.enableLongStackTrace,o=void 0!==n&&n;this._hasPendingMicrotasks=!1,this._hasPendingMacrotasks=!1,this._isStable=!0,this._nesting=0,this._onUnstable=new r.a((!1)),this._onMicrotaskEmpty=new r.a((!1)),this._onStable=new r.a((!1)),this._onErrorEvents=new r.a((!1)),this._zoneImpl=new i.a({trace:o,onEnter:function(){e._nesting++,e._isStable&&(e._isStable=!1,e._onUnstable.emit(null))},onLeave:function(){e._nesting--,e._checkStable()},setMicrotask:function(t){e._hasPendingMicrotasks=t,e._checkStable()},setMacrotask:function(t){e._hasPendingMacrotasks=t},onError:function(t){return e._onErrorEvents.emit(t)}})}return NgZone.isInAngularZone=function(){return i.a.isInAngularZone()},NgZone.assertInAngularZone=function(){if(!i.a.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")},NgZone.assertNotInAngularZone=function(){if(i.a.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")},NgZone.prototype._checkStable=function(){var t=this;if(0==this._nesting&&!this._hasPendingMicrotasks&&!this._isStable)try{this._nesting++,this._onMicrotaskEmpty.emit(null)}finally{if(this._nesting--,!this._hasPendingMicrotasks)try{this.runOutsideAngular(function(){return t._onStable.emit(null)})}finally{this._isStable=!0}}},Object.defineProperty(NgZone.prototype,"onUnstable",{get:function(){return this._onUnstable},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"onMicrotaskEmpty",{get:function(){return this._onMicrotaskEmpty},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"onStable",{get:function(){return this._onStable},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"onError",{get:function(){return this._onErrorEvents},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"isStable",{get:function(){return this._isStable},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"hasPendingMicrotasks",{get:function(){return this._hasPendingMicrotasks},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"hasPendingMacrotasks",{get:function(){return this._hasPendingMacrotasks},enumerable:!0,configurable:!0}),NgZone.prototype.run=function(t){return this._zoneImpl.runInner(t)},NgZone.prototype.runGuarded=function(t){return this._zoneImpl.runInnerGuarded(t)},NgZone.prototype.runOutsideAngular=function(t){return this._zoneImpl.runOuter(t)},NgZone}()},function(t,e,n){"use strict";var r=n(21);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function AbstractControlDirective(){}return Object.defineProperty(AbstractControlDirective.prototype,"control",{get:function(){throw new Error("unimplemented")},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"value",{get:function(){return n.i(r.a)(this.control)?this.control.value:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"valid",{get:function(){return n.i(r.a)(this.control)?this.control.valid:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"invalid",{get:function(){return n.i(r.a)(this.control)?this.control.invalid:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"pending",{get:function(){return n.i(r.a)(this.control)?this.control.pending:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"errors",{get:function(){return n.i(r.a)(this.control)?this.control.errors:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"pristine",{get:function(){return n.i(r.a)(this.control)?this.control.pristine:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"dirty",{get:function(){return n.i(r.a)(this.control)?this.control.dirty:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"touched",{get:function(){return n.i(r.a)(this.control)?this.control.touched:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"untouched",{get:function(){return n.i(r.a)(this.control)?this.control.untouched:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"disabled",{get:function(){return n.i(r.a)(this.control)?this.control.disabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"enabled",{get:function(){return n.i(r.a)(this.control)?this.control.enabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"statusChanges",{get:function(){return n.i(r.a)(this.control)?this.control.statusChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"valueChanges",{get:function(){return n.i(r.a)(this.control)?this.control.valueChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),AbstractControlDirective.prototype.reset=function(t){void 0===t&&(t=void 0),n.i(r.a)(this.control)&&this.control.reset(t)},AbstractControlDirective}()},function(t,e,n){"use strict";var r=n(0),i=n(21),o=n(43),a=n(60);n.d(e,"a",function(){return u}),n.d(e,"b",function(){return p});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},c=function(){function AbstractControlStatus(t){this._cd=t}return Object.defineProperty(AbstractControlStatus.prototype,"ngClassUntouched",{get:function(){return!!n.i(i.a)(this._cd.control)&&this._cd.control.untouched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassTouched",{get:function(){return!!n.i(i.a)(this._cd.control)&&this._cd.control.touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassPristine",{get:function(){return!!n.i(i.a)(this._cd.control)&&this._cd.control.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassDirty",{get:function(){return!!n.i(i.a)(this._cd.control)&&this._cd.control.dirty},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassValid",{get:function(){return!!n.i(i.a)(this._cd.control)&&this._cd.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassInvalid",{get:function(){return!!n.i(i.a)(this._cd.control)&&this._cd.control.invalid},enumerable:!0,configurable:!0}),AbstractControlStatus}(),l={"[class.ng-untouched]":"ngClassUntouched","[class.ng-touched]":"ngClassTouched","[class.ng-pristine]":"ngClassPristine","[class.ng-dirty]":"ngClassDirty","[class.ng-valid]":"ngClassValid","[class.ng-invalid]":"ngClassInvalid"},u=function(t){function NgControlStatus(e){t.call(this,e)}return s(NgControlStatus,t),NgControlStatus.decorators=[{type:r.Directive,args:[{selector:"[formControlName],[ngModel],[formControl]",host:l}]}],NgControlStatus.ctorParameters=[{type:a.a,decorators:[{type:r.Self}]}],NgControlStatus}(c),p=function(t){function NgControlStatusGroup(e){t.call(this,e)}return s(NgControlStatusGroup,t),NgControlStatusGroup.decorators=[{type:r.Directive,args:[{selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]",host:l}]}],NgControlStatusGroup.ctorParameters=[{type:o.a,decorators:[{type:r.Self}]}],NgControlStatusGroup}(c)},function(t,e,n){"use strict";var r=n(0),i=n(69),o=n(125),a=n(38),s=n(85),c=n(43),l=n(36),u=n(60),p=n(86),d=n(120),f=n(56),h=n(322);n.d(e,"a",function(){return b});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var m=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},v={provide:u.a,useExisting:n.i(r.forwardRef)(function(){return b})},g=Promise.resolve(null),b=function(t){function NgModel(e,r,a,s){t.call(this),this._control=new o.b,this._registered=!1,this.update=new i.a,this._parent=e,this._rawValidators=r||[],this._rawAsyncValidators=a||[],this.valueAccessor=n.i(f.f)(this,s)}return m(NgModel,t),NgModel.prototype.ngOnChanges=function(t){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in t&&this._updateDisabled(t),n.i(f.g)(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},NgModel.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(NgModel.prototype,"control",{get:function(){return this._control},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"path",{get:function(){return this._parent?n.i(f.a)(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"validator",{get:function(){return n.i(f.b)(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"asyncValidator",{get:function(){return n.i(f.c)(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),NgModel.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},NgModel.prototype._setUpControl=function(){this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},NgModel.prototype._isStandalone=function(){return!this._parent||this.options&&this.options.standalone},NgModel.prototype._setUpStandalone=function(){n.i(f.d)(this._control,this),this._control.updateValueAndValidity({emitEvent:!1})},NgModel.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},NgModel.prototype._checkParentType=function(){!(this._parent instanceof d.a)&&this._parent instanceof s.a?h.a.formGroupNameException():this._parent instanceof d.a||this._parent instanceof p.a||h.a.modelParentException()},NgModel.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||h.a.missingNameException()},NgModel.prototype._updateValue=function(t){var e=this;g.then(function(){e.control.setValue(t,{emitViewToModelChange:!1})})},NgModel.prototype._updateDisabled=function(t){var e=this,n=t.isDisabled.currentValue,r=null!=n&&0!=n;g.then(function(){r&&!e.control.disabled?e.control.disable():!r&&e.control.disabled&&e.control.enable()})},NgModel.decorators=[{type:r.Directive,args:[{selector:"[ngModel]:not([formControlName]):not([formControl])",providers:[v],exportAs:"ngModel"}]}],NgModel.ctorParameters=[{type:c.a,decorators:[{type:r.Optional},{type:r.Host}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[a.b]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[a.c]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[l.a]}]}],NgModel.propDecorators={name:[{type:r.Input}],isDisabled:[{type:r.Input,args:["disabled"]}],model:[{type:r.Input,args:["ngModel"]}],options:[{type:r.Input,args:["ngModelOptions"]}],update:[{type:r.Output,args:["ngModelChange"]}]},NgModel}(u.a)},function(t,e,n){"use strict";var r=n(0),i=n(21),o=n(36);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a={provide:o.a,useExisting:n.i(r.forwardRef)(function(){return s}),multi:!0},s=function(){function NumberValueAccessor(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return NumberValueAccessor.prototype.writeValue=function(t){var e=n.i(i.c)(t)?"":t;this._renderer.setElementProperty(this._elementRef.nativeElement,"value",e)},NumberValueAccessor.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:i.i.parseFloat(e))}},NumberValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},NumberValueAccessor.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},NumberValueAccessor.decorators=[{type:r.Directive,args:[{selector:"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[a]}]}],NumberValueAccessor.ctorParameters=[{type:r.Renderer},{type:r.ElementRef}],NumberValueAccessor}()},function(t,e,n){"use strict";var r=n(0),i=n(69),o=n(37),a=n(38),s=n(36),c=n(60),l=n(122),u=n(56);n.d(e,"a",function(){return f});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var p=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},d={provide:c.a,useExisting:n.i(r.forwardRef)(function(){return f})},f=function(t){function FormControlDirective(e,r,o){t.call(this),this.update=new i.a,this._rawValidators=e||[],this._rawAsyncValidators=r||[],this.valueAccessor=n.i(u.f)(this,o)}return p(FormControlDirective,t),Object.defineProperty(FormControlDirective.prototype,"isDisabled",{set:function(t){l.a.disabledAttrWarning()},enumerable:!0,configurable:!0}),FormControlDirective.prototype.ngOnChanges=function(t){this._isControlChanged(t)&&(n.i(u.d)(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})),n.i(u.g)(t,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)},Object.defineProperty(FormControlDirective.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"validator",{get:function(){return n.i(u.b)(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"asyncValidator",{get:function(){return n.i(u.c)(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),FormControlDirective.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},FormControlDirective.prototype._isControlChanged=function(t){return o.a.contains(t,"form")},FormControlDirective.decorators=[{type:r.Directive,args:[{selector:"[formControl]",providers:[d],exportAs:"ngForm"}]}],FormControlDirective.ctorParameters=[{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[a.b]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[a.c]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[s.a]}]}],FormControlDirective.propDecorators={form:[{type:r.Input,args:["formControl"]}],model:[{type:r.Input,args:["ngModel"]}],update:[{type:r.Output,args:["ngModelChange"]}],isDisabled:[{type:r.Input,args:["disabled"]}]},FormControlDirective}(c.a)},function(t,e,n){"use strict";var r=n(0),i=n(69),o=n(38),a=n(85),s=n(43),c=n(36),l=n(60),u=n(122),p=n(56),d=n(87),f=n(88);n.d(e,"a",function(){return v});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var h=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},m={provide:l.a,useExisting:n.i(r.forwardRef)(function(){return v})},v=function(t){function FormControlName(e,r,o,a){t.call(this),this._added=!1,this.update=new i.a,this._parent=e,this._rawValidators=r||[],this._rawAsyncValidators=o||[],this.valueAccessor=n.i(p.f)(this,a)}return h(FormControlName,t),Object.defineProperty(FormControlName.prototype,"isDisabled",{set:function(t){u.a.disabledAttrWarning()},enumerable:!0,configurable:!0}),FormControlName.prototype.ngOnChanges=function(t){this._added||(this._checkParentType(),this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState(!0),this._added=!0),n.i(p.g)(t,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},FormControlName.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},FormControlName.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},Object.defineProperty(FormControlName.prototype,"path",{get:function(){return n.i(p.a)(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"validator",{get:function(){return n.i(p.b)(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"asyncValidator",{get:function(){return n.i(p.c)(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"control",{get:function(){return this.formDirective.getControl(this)},enumerable:!0,configurable:!0}),FormControlName.prototype._checkParentType=function(){!(this._parent instanceof f.a)&&this._parent instanceof a.a?u.a.ngModelGroupException():this._parent instanceof f.a||this._parent instanceof d.a||this._parent instanceof f.b||u.a.controlParentException()},FormControlName.decorators=[{type:r.Directive,args:[{selector:"[formControlName]",providers:[m]}]}],FormControlName.ctorParameters=[{type:s.a,decorators:[{type:r.Optional},{type:r.Host},{type:r.SkipSelf}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[o.b]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[o.c]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[c.a]}]}],FormControlName.propDecorators={name:[{type:r.Input,args:["formControlName"]}],model:[{type:r.Input,args:["ngModel"]}],update:[{type:r.Output,args:["ngModelChange"]}],isDisabled:[{type:r.Input,args:["disabled"]}]},FormControlName}(l.a)},function(t,e,n){"use strict";var r=n(0),i=n(21),o=n(38);n.d(e,"a",function(){return s}),n.d(e,"b",function(){return l}),n.d(e,"c",function(){return p}),n.d(e,"d",function(){return f});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a={provide:o.b,useExisting:n.i(r.forwardRef)(function(){return s}),multi:!0},s=function(){function RequiredValidator(){}return Object.defineProperty(RequiredValidator.prototype,"required",{get:function(){return this._required},set:function(t){this._required=n.i(i.a)(t)&&""+t!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),RequiredValidator.prototype.validate=function(t){return this.required?o.a.required(t):null},RequiredValidator.prototype.registerOnChange=function(t){this._onChange=t},RequiredValidator.decorators=[{type:r.Directive,args:[{selector:"[required][formControlName],[required][formControl],[required][ngModel]",providers:[a],host:{"[attr.required]":'required? "" : null'}}]}],RequiredValidator.ctorParameters=[],RequiredValidator.propDecorators={required:[{type:r.Input}]},RequiredValidator}(),c={provide:o.b,useExisting:n.i(r.forwardRef)(function(){return l}),multi:!0},l=function(){function MinLengthValidator(){}return MinLengthValidator.prototype._createValidator=function(){this._validator=o.a.minLength(parseInt(this.minlength,10))},MinLengthValidator.prototype.ngOnChanges=function(t){t.minlength&&(this._createValidator(),this._onChange&&this._onChange())},MinLengthValidator.prototype.validate=function(t){return n.i(i.a)(this.minlength)?this._validator(t):null},MinLengthValidator.prototype.registerOnChange=function(t){this._onChange=t},MinLengthValidator.decorators=[{type:r.Directive,args:[{selector:"[minlength][formControlName],[minlength][formControl],[minlength][ngModel]",providers:[c],host:{"[attr.minlength]":"minlength? minlength : null"}}]}],MinLengthValidator.ctorParameters=[],MinLengthValidator.propDecorators={minlength:[{type:r.Input}]},MinLengthValidator}(),u={provide:o.b,useExisting:n.i(r.forwardRef)(function(){return p}),multi:!0},p=function(){function MaxLengthValidator(){}return MaxLengthValidator.prototype._createValidator=function(){this._validator=o.a.maxLength(parseInt(this.maxlength,10))},MaxLengthValidator.prototype.ngOnChanges=function(t){t.maxlength&&(this._createValidator(),this._onChange&&this._onChange())},MaxLengthValidator.prototype.validate=function(t){return n.i(i.a)(this.maxlength)?this._validator(t):null},MaxLengthValidator.prototype.registerOnChange=function(t){this._onChange=t},MaxLengthValidator.decorators=[{type:r.Directive,args:[{selector:"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]",providers:[u],host:{"[attr.maxlength]":"maxlength? maxlength : null"}}]}],MaxLengthValidator.ctorParameters=[],MaxLengthValidator.propDecorators={maxlength:[{type:r.Input}]},MaxLengthValidator}(),d={provide:o.b,useExisting:n.i(r.forwardRef)(function(){return f}),multi:!0},f=function(){function PatternValidator(){}return PatternValidator.prototype._createValidator=function(){this._validator=o.a.pattern(this.pattern)},PatternValidator.prototype.ngOnChanges=function(t){t.pattern&&(this._createValidator(),this._onChange&&this._onChange())},PatternValidator.prototype.validate=function(t){return n.i(i.a)(this.pattern)?this._validator(t):null},PatternValidator.prototype.registerOnChange=function(t){this._onChange=t},PatternValidator.decorators=[{type:r.Directive,args:[{selector:"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]",providers:[d],host:{"[attr.pattern]":"pattern? pattern : null"}}]}],PatternValidator.ctorParameters=[],PatternValidator.propDecorators={pattern:[{type:r.Input}]},PatternValidator}()},function(t,e,n){"use strict";var r=n(513);for(var i in r)"default"!==i&&function(t){n.d(e,t,function(){return r[t]})}(i)},function(t,e,n){"use strict";var r=n(334);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function _NoOpAnimationDriver(){}return _NoOpAnimationDriver.prototype.animate=function(t,e,n,i,o,a){return new r.a},_NoOpAnimationDriver}(),o=function(){function AnimationDriver(){}return AnimationDriver.NOOP=new i,AnimationDriver}()},function(t,e,n){"use strict";function inspectNativeElement(t){return n.i(r.getDebugNode)(t)}function _createConditionalRootRenderer(t,e){return n.i(r.isDevMode)()?_createRootRenderer(t,e):t}function _createRootRenderer(t,e){return n.i(a.a)().setGlobalVar(l,inspectNativeElement),n.i(a.a)().setGlobalVar(u,i.a.merge(c,_ngProbeTokensToMap(e||[]))),new o.b(t)}function _ngProbeTokensToMap(t){return t.reduce(function(t,e){return t[e.name]=e.token,t},{})}var r=n(0),i=n(44),o=n(334),a=n(15),s=n(188);n.d(e,"b",function(){return p}),n.d(e,"a",function(){return d});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c={ApplicationRef:r.ApplicationRef,NgZone:r.NgZone},l="ng.probe",u="ng.coreTokens",p=function(){function NgProbeToken(t,e){this.name=t,this.token=e}return NgProbeToken}(),d=[{provide:r.RootRenderer,useFactory:_createConditionalRootRenderer,deps:[s.a,[p,new r.Optional]]}];[{provide:r.RootRenderer,useFactory:_createRootRenderer,deps:[s.a,[p,new r.Optional]]}]},function(t,e,n){"use strict";function moveNodesAfterSibling(t,e){var r=n.i(a.a)().parentElement(t);if(e.length>0&&n.i(i.b)(r)){var o=n.i(a.a)().nextSibling(t);if(n.i(i.b)(o))for(var s=0;s<e.length;s++)n.i(a.a)().insertBefore(o,e[s]);else for(var s=0;s<e.length;s++)n.i(a.a)().appendChild(r,e[s])}}function appendNodes(t,e){for(var r=0;r<e.length;r++)n.i(a.a)().appendChild(t,e[r])}function decoratePreventDefault(t){return function(e){var r=t(e);r===!1&&n.i(a.a)().preventDefault(e)}}function _shimContentAttribute(t){return i.g.replaceAll(w,b,t)}function _shimHostAttribute(t){return i.g.replaceAll(_,b,t)}function _flattenStyles(t,e,r){for(var o=0;o<e.length;o++){var a=e[o];n.i(i.d)(a)?_flattenStyles(t,a,r):(a=i.g.replaceAll(a,b,t),r.push(a))}return r}function splitNamespace(t){if(":"!=t[0])return[null,t];var e=t.match(x);return[e[1],e[2]]}var r=n(0),i=n(25),o=n(186),a=n(15),s=n(126),c=n(70),l=n(190),u=n(333);n.d(e,"a",function(){return m}),n.d(e,"b",function(){return v});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var p=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},d={xlink:"http://www.w3.org/1999/xlink",svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml"},f="template bindings={}",h=/^template bindings=(.*)$/,m=function(){function DomRootRenderer(t,e,n,r){this.document=t,this.eventManager=e,this.sharedStylesHost=n,this.animationDriver=r,this.registeredComponents=new Map}return DomRootRenderer.prototype.renderComponent=function(t){var e=this.registeredComponents.get(t.id);return n.i(i.c)(e)&&(e=new g(this,t,this.animationDriver),this.registeredComponents.set(t.id,e)),e},DomRootRenderer}(),v=function(t){function DomRootRenderer_(e,n,r,i){t.call(this,e,n,r,i)}return p(DomRootRenderer_,t),DomRootRenderer_.decorators=[{type:r.Injectable}],DomRootRenderer_.ctorParameters=[{type:void 0,decorators:[{type:r.Inject,args:[s.a]}]},{type:c.a},{type:l.a},{type:o.a}],DomRootRenderer_}(m),g=function(){function DomRenderer(t,e,n){this._rootRenderer=t,this.componentProto=e,this._animationDriver=n,this._styles=_flattenStyles(e.id,e.styles,[]),e.encapsulation!==r.ViewEncapsulation.Native&&this._rootRenderer.sharedStylesHost.addStyles(this._styles),this.componentProto.encapsulation===r.ViewEncapsulation.Emulated?(this._contentAttr=_shimContentAttribute(e.id),this._hostAttr=_shimHostAttribute(e.id)):(this._contentAttr=null,this._hostAttr=null)}return DomRenderer.prototype.selectRootElement=function(t,e){var r;if(n.i(i.l)(t)){if(r=n.i(a.a)().querySelector(this._rootRenderer.document,t),n.i(i.c)(r))throw new Error('The selector "'+t+'" did not match any elements')}else r=t;return n.i(a.a)().clearNodes(r),r},DomRenderer.prototype.createElement=function(t,e,r){var o=splitNamespace(e),s=n.i(i.b)(o[0])?n.i(a.a)().createElementNS(d[o[0]],o[1]):n.i(a.a)().createElement(o[1]);return n.i(i.b)(this._contentAttr)&&n.i(a.a)().setAttribute(s,this._contentAttr,""),n.i(i.b)(t)&&n.i(a.a)().appendChild(t,s),s},DomRenderer.prototype.createViewRoot=function(t){var e;if(this.componentProto.encapsulation===r.ViewEncapsulation.Native){e=n.i(a.a)().createShadowRoot(t),this._rootRenderer.sharedStylesHost.addHost(e);for(var o=0;o<this._styles.length;o++)n.i(a.a)().appendChild(e,n.i(a.a)().createStyleElement(this._styles[o]))}else n.i(i.b)(this._hostAttr)&&n.i(a.a)().setAttribute(t,this._hostAttr,""),e=t;return e},DomRenderer.prototype.createTemplateAnchor=function(t,e){var r=n.i(a.a)().createComment(f);return n.i(i.b)(t)&&n.i(a.a)().appendChild(t,r),r},DomRenderer.prototype.createText=function(t,e,r){var o=n.i(a.a)().createTextNode(e);return n.i(i.b)(t)&&n.i(a.a)().appendChild(t,o),o},DomRenderer.prototype.projectNodes=function(t,e){n.i(i.c)(t)||appendNodes(t,e)},DomRenderer.prototype.attachViewAfter=function(t,e){moveNodesAfterSibling(t,e)},DomRenderer.prototype.detachView=function(t){for(var e=0;e<t.length;e++)n.i(a.a)().remove(t[e])},DomRenderer.prototype.destroyView=function(t,e){this.componentProto.encapsulation===r.ViewEncapsulation.Native&&n.i(i.b)(t)&&this._rootRenderer.sharedStylesHost.removeHost(n.i(a.a)().getShadowRoot(t))},DomRenderer.prototype.listen=function(t,e,n){return this._rootRenderer.eventManager.addEventListener(t,e,decoratePreventDefault(n))},DomRenderer.prototype.listenGlobal=function(t,e,n){return this._rootRenderer.eventManager.addGlobalEventListener(t,e,decoratePreventDefault(n))},DomRenderer.prototype.setElementProperty=function(t,e,r){n.i(a.a)().setProperty(t,e,r)},DomRenderer.prototype.setElementAttribute=function(t,e,r){var o,s=splitNamespace(e);n.i(i.b)(s[0])&&(e=s[0]+":"+s[1],o=d[s[0]]),n.i(i.b)(r)?n.i(i.b)(o)?n.i(a.a)().setAttributeNS(t,o,e,r):n.i(a.a)().setAttribute(t,e,r):n.i(i.b)(o)?n.i(a.a)().removeAttributeNS(t,o,s[1]):n.i(a.a)().removeAttribute(t,e)},DomRenderer.prototype.setBindingDebugInfo=function(t,e,r){var o=n.i(u.b)(e);if(n.i(a.a)().isCommentNode(t)){var s=i.g.replaceAll(n.i(a.a)().getText(t),/\n/g,"").match(h),c=i.m.parse(s[1]);c[o]=r,n.i(a.a)().setText(t,i.g.replace(f,"{}",i.m.stringify(c)))}else this.setElementAttribute(t,e,r)},DomRenderer.prototype.setElementClass=function(t,e,r){r?n.i(a.a)().addClass(t,e):n.i(a.a)().removeClass(t,e)},DomRenderer.prototype.setElementStyle=function(t,e,r){n.i(i.b)(r)?n.i(a.a)().setStyle(t,e,n.i(i.n)(r)):n.i(a.a)().removeStyle(t,e)},DomRenderer.prototype.invokeElementMethod=function(t,e,r){n.i(a.a)().invoke(t,e,r)},DomRenderer.prototype.setText=function(t,e){n.i(a.a)().setText(t,e)},DomRenderer.prototype.animate=function(t,e,n,r,i,o){return this._animationDriver.animate(t,e,n,r,i,o)},DomRenderer}(),b=/%COMP%/g,y="%COMP%",_="_nghost-"+y,w="_ngcontent-"+y,x=/^:([^:]+):(.+)$/},function(t,e,n){"use strict";var r=n(0),i=n(25),o=n(509);n.d(e,"b",function(){return s}),n.d(e,"c",function(){return c}),n.d(e,"a",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s=new r.OpaqueToken("HammerGestureConfig"),c=function(){function HammerGestureConfig(){this.events=[],this.overrides={}}return HammerGestureConfig.prototype.buildHammer=function(t){var e=new Hammer(t);e.get("pinch").set({enable:!0}),e.get("rotate").set({enable:!0});for(var n in this.overrides)e.get(n).set(this.overrides[n]);return e},HammerGestureConfig.decorators=[{type:r.Injectable}],HammerGestureConfig.ctorParameters=[],HammerGestureConfig}(),l=function(t){function HammerGesturesPlugin(e){t.call(this),this._config=e}return a(HammerGesturesPlugin,t),HammerGesturesPlugin.prototype.supports=function(e){if(!t.prototype.supports.call(this,e)&&!this.isCustomEvent(e))return!1;if(!n.i(i.b)(window.Hammer))throw new Error("Hammer.js is not loaded, can not bind "+e+" event");return!0},HammerGesturesPlugin.prototype.addEventListener=function(t,e,n){var r=this,i=this.manager.getZone();return e=e.toLowerCase(),i.runOutsideAngular(function(){var o=r._config.buildHammer(t),a=function(t){i.runGuarded(function(){n(t)})};return o.on(e,a),function(){o.off(e,a)}})},HammerGesturesPlugin.prototype.isCustomEvent=function(t){return this._config.events.indexOf(t)>-1},HammerGesturesPlugin.decorators=[{type:r.Injectable}],HammerGesturesPlugin.ctorParameters=[{type:c,decorators:[{type:r.Inject,args:[s]}]}],HammerGesturesPlugin}(o.a)},function(t,e,n){"use strict";var r=n(0),i=n(15),o=n(126);n.d(e,"b",function(){return s}),n.d(e,"a",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s=function(){function SharedStylesHost(){this._styles=[],this._stylesSet=new Set}return SharedStylesHost.prototype.addStyles=function(t){var e=this,n=[];t.forEach(function(t){e._stylesSet.has(t)||(e._stylesSet.add(t),e._styles.push(t),n.push(t))}),this.onStylesAdded(n)},SharedStylesHost.prototype.onStylesAdded=function(t){},SharedStylesHost.prototype.getAllStyles=function(){return this._styles},SharedStylesHost.decorators=[{type:r.Injectable}],SharedStylesHost.ctorParameters=[],SharedStylesHost}(),c=function(t){function DomSharedStylesHost(e){t.call(this),this._hostNodes=new Set,this._hostNodes.add(e.head)}return a(DomSharedStylesHost,t),DomSharedStylesHost.prototype._addStylesToHost=function(t,e){for(var r=0;r<t.length;r++){var o=t[r];n.i(i.a)().appendChild(e,n.i(i.a)().createStyleElement(o))}},DomSharedStylesHost.prototype.addHost=function(t){this._addStylesToHost(this._styles,t),this._hostNodes.add(t)},DomSharedStylesHost.prototype.removeHost=function(t){this._hostNodes.delete(t)},DomSharedStylesHost.prototype.onStylesAdded=function(t){var e=this;this._hostNodes.forEach(function(n){e._addStylesToHost(t,n)})},DomSharedStylesHost.decorators=[{type:r.Injectable}],DomSharedStylesHost.ctorParameters=[{type:void 0,decorators:[{type:r.Inject,args:[o.a]}]}],DomSharedStylesHost}(s)},function(t,e,n){"use strict";function sanitizeUrl(t){return t=String(t),t.match(o)||t.match(a)?t:(n.i(r.isDevMode)()&&n.i(i.a)().log("WARNING: sanitizing unsafe URL value "+t+" (see http://g.co/ng/security#xss)"),"unsafe:"+t)}function sanitizeSrcset(t){return t=String(t),t.split(",").map(function(t){return sanitizeUrl(t.trim())}).join(", ")}var r=n(0),i=n(15);e.a=sanitizeUrl,e.b=sanitizeSrcset;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,a=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i},function(t,e,n){"use strict";function toBool(t){return""===t||!!t}var r=n(19),i=n(0),o=n(127),a=n(71);n.d(e,"a",function(){return s}),n.d(e,"b",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function RouterLink(t,e,n){this.router=t,this.route=e,this.locationStrategy=n,this.commands=[]}return Object.defineProperty(RouterLink.prototype,"routerLink",{set:function(t){Array.isArray(t)?this.commands=t:this.commands=[t]},enumerable:!0,configurable:!0}),RouterLink.prototype.onClick=function(t,e,n){return!(0===t&&!e&&!n)||(this.router.navigateByUrl(this.urlTree),!1)},Object.defineProperty(RouterLink.prototype,"urlTree",{get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:toBool(this.preserveQueryParams),preserveFragment:toBool(this.preserveFragment)})},enumerable:!0,configurable:!0}),RouterLink.decorators=[{type:i.Directive,args:[{selector:":not(a)[routerLink]"}]}],RouterLink.ctorParameters=[{type:o.a},{type:a.b},{type:r.LocationStrategy}],RouterLink.propDecorators={queryParams:[{type:i.Input}],fragment:[{type:i.Input}],preserveQueryParams:[{type:i.Input}],preserveFragment:[{type:i.Input}],routerLink:[{type:i.Input}],onClick:[{type:i.HostListener,args:["click",["$event.button","$event.ctrlKey","$event.metaKey"]]}]},RouterLink}(),c=function(){function RouterLinkWithHref(t,e,n){var r=this;this.router=t,this.route=e,this.locationStrategy=n,this.commands=[],this.subscription=t.events.subscribe(function(t){t instanceof o.b&&r.updateTargetUrlAndHref()})}return Object.defineProperty(RouterLinkWithHref.prototype,"routerLink",{set:function(t){Array.isArray(t)?this.commands=t:this.commands=[t]},enumerable:!0,configurable:!0}),RouterLinkWithHref.prototype.ngOnChanges=function(t){this.updateTargetUrlAndHref()},RouterLinkWithHref.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},RouterLinkWithHref.prototype.onClick=function(t,e,n){return!(0===t&&!e&&!n)||("string"==typeof this.target&&"_self"!=this.target||(this.router.navigateByUrl(this.urlTree),!1))},RouterLinkWithHref.prototype.updateTargetUrlAndHref=function(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))},Object.defineProperty(RouterLinkWithHref.prototype,"urlTree",{get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:toBool(this.preserveQueryParams),preserveFragment:toBool(this.preserveFragment)})},enumerable:!0,configurable:!0}),RouterLinkWithHref.decorators=[{type:i.Directive,args:[{selector:"a[routerLink]"}]}],RouterLinkWithHref.ctorParameters=[{type:o.a},{type:a.b},{type:r.LocationStrategy}],RouterLinkWithHref.propDecorators={target:[{type:i.Input}],queryParams:[{type:i.Input}],fragment:[{type:i.Input}],routerLinkOptions:[{type:i.Input}],preserveQueryParams:[{type:i.Input}],preserveFragment:[{type:i.Input}],href:[{type:i.HostBinding}],routerLink:[{type:i.Input}],onClick:[{type:i.HostListener,args:["click",["$event.button","$event.ctrlKey","$event.metaKey"]]}]},RouterLinkWithHref}()},function(t,e,n){"use strict";function findNode(t,e){if(t===e.value)return e;for(var n=0,r=e.children;n<r.length;n++){var i=r[n],o=findNode(t,i);if(o)return o}return null}function findPath(t,e,n){if(n.push(e),t===e.value)return n;for(var r=0,i=e.children;r<i.length;r++){var o=i[r],a=n.slice(0),s=findPath(t,o,a);if(s.length>0)return s}return[]}n.d(e,"a",function(){return r}),n.d(e,"b",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function Tree(t){this._root=t}return Object.defineProperty(Tree.prototype,"root",{get:function(){return this._root.value},enumerable:!0,configurable:!0}),Tree.prototype.parent=function(t){var e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null},Tree.prototype.children=function(t){var e=findNode(t,this._root);return e?e.children.map(function(t){return t.value}):[]},Tree.prototype.firstChild=function(t){var e=findNode(t,this._root);return e&&e.children.length>0?e.children[0].value:null},Tree.prototype.siblings=function(t){var e=findPath(t,this._root,[]);if(e.length<2)return[];var n=e[e.length-2].children.map(function(t){return t.value});return n.filter(function(e){return e!==t})},Tree.prototype.pathFromRoot=function(t){return findPath(t,this._root,[]).map(function(t){return t.value})},Tree}(),i=function(){function TreeNode(t,e){this.value=t,this.children=e}return TreeNode.prototype.toString=function(){return"TreeNode("+this.value+")"},TreeNode}()},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){"use strict";var r=n(14),i=n(1),o=n(27),a=n(206),s=n(57),c=n(131),l=n(194),u=n(8),p=n(5),d=n(371),f=n(134),h=n(199);t.exports=function(t,e,n,m,v,g){var b=r[t],y=b,_=v?"set":"add",w=y&&y.prototype,x={},C=function(t){var e=w[t];o(w,t,"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof y&&(g||w.forEach&&!p(function(){(new y).entries().next()}))){var S=new y,k=S[_](g?{}:-0,1)!=S,E=p(function(){S.has(1)}),P=d(function(t){new y(t)}),A=!g&&p(function(){for(var t=new y,e=5;e--;)t[_](e,e);return!t.has(-0)});P||(y=e(function(e,n){l(e,y,t);var r=h(new b,e,y);return void 0!=n&&c(n,v,r[_],r),r}),y.prototype=w,w.constructor=y),(E||A)&&(C("delete"),C("has"),v&&C("get")),(A||k)&&C(_),g&&w.clear&&delete w.clear}else y=m.getConstructor(e,t,v,_),a(y.prototype,n),s.NEED=!0;return f(y,t),x[t]=y,i(i.G+i.W+i.F*(y!=b),x),g||m.setStrong(y,t,v),y}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(11)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(i){}}return!0}},function(t,e,n){"use strict";var r=n(4);t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){var r=n(8),i=n(207).set;t.exports=function(t,e,n){var o,a=e.constructor;return a!==n&&"function"==typeof a&&(o=a.prototype)!==n.prototype&&r(o)&&i&&i(t,o),t}},function(t,e,n){var r=n(63);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(8),i=n(63),o=n(11)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==i(t))}},function(t,e,n){"use strict";var r=n(203),i=n(1),o=n(27),a=n(49),s=n(26),c=n(92),l=n(370),u=n(134),p=n(51),d=n(11)("iterator"),f=!([].keys&&"next"in[].keys()),h="@@iterator",m="keys",v="values",g=function(){return this};t.exports=function(t,e,n,b,y,_,w){l(n,e,b);var x,C,S,k=function(t){if(!f&&t in T)return T[t];switch(t){case m:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this,t)}},E=e+" Iterator",P=y==v,A=!1,T=t.prototype,O=T[d]||T[h]||y&&T[y],M=O||k(y),D=y?P?k("entries"):M:void 0,R="Array"==e?T.entries||O:O;if(R&&(S=p(R.call(new t)),S!==Object.prototype&&(u(S,E,!0),r||s(S,d)||a(S,d,g))),P&&O&&O.name!==v&&(A=!0,M=function(){return O.call(this)}),r&&!w||!f&&!A&&T[d]||a(T,d,M),c[e]=M,c[E]=g,y)if(x={values:P?M:k(v),keys:_?M:k(m),entries:D},w)for(C in x)C in T||o(T,C,x[C]);else i(i.P+i.F*(f||A),e,x);return x}},function(t,e){t.exports=!1},function(t,e){var n=Math.expm1;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||n(-2e-17)!=-2e-17?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:n},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e,n){var r=n(27);t.exports=function(t,e,n){for(var i in e)r(t,i,e[i],n);return t}},function(t,e,n){var r=n(8),i=n(4),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{r=n(72)(Function.call,n(58).f(Object.prototype,"__proto__").set,2),r(t,[]),e=!(t instanceof Array)}catch(i){e=!0}return function(t,n){return o(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:o}},function(t,e,n){"use strict";var r=n(14),i=n(18),o=n(22),a=n(11)("species");t.exports=function(t){var e=r[t];o&&e&&!e[a]&&i.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e,n){var r=n(135)("keys"),i=n(95);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,e,n){var r=n(201),i=n(48);t.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(t))}},function(t,e){t.exports="\t\n\x0B\f\r   ᠎              \u2028\u2029\ufeff"},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=function(){function AccordionComponent(){this.addClass=!0,this.groups=[]}return AccordionComponent.prototype.closeOtherPanels=function(t){this.closeOthers&&this.groups.forEach(function(e){e!==t&&(e.isOpen=!1)})},AccordionComponent.prototype.addGroup=function(t){this.groups.push(t)},AccordionComponent.prototype.removeGroup=function(t){var e=this.groups.indexOf(t);e!==-1&&this.groups.splice(e,1)},r([o.Input(),i("design:type",Boolean)],AccordionComponent.prototype,"closeOthers",void 0),r([o.HostBinding("class.panel-group"),i("design:type",Boolean)],AccordionComponent.prototype,"addClass",void 0),AccordionComponent=r([o.Component({selector:"accordion",template:"<ng-content></ng-content>"}),i("design:paramtypes",[])],AccordionComponent)}();e.AccordionComponent=a},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(19),a=n(0),s=n(139),c=n(394),l=n(212),u=function(){function AccordionModule(){}return AccordionModule=r([a.NgModule({imports:[o.CommonModule,s.CollapseModule],declarations:[l.AccordionComponent,c.AccordionPanelComponent],exports:[l.AccordionComponent,c.AccordionPanelComponent]}),i("design:paramtypes",[])],AccordionModule)}();e.AccordionModule=u},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(19),a=n(0),s=n(395),c=function(){function AlertModule(){}return AlertModule=r([a.NgModule({imports:[o.CommonModule],declarations:[s.AlertComponent],exports:[s.AlertComponent]}),i("design:paramtypes",[])],AlertModule)}();e.AlertModule=c},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(24),s=n(396),c=n(397),l=function(){function ButtonsModule(){}return ButtonsModule=r([o.NgModule({imports:[a.FormsModule],declarations:[s.ButtonCheckboxDirective,c.ButtonRadioDirective],exports:[s.ButtonCheckboxDirective,c.ButtonRadioDirective,a.FormsModule]}),i("design:paramtypes",[])],ButtonsModule)}();e.ButtonsModule=l},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(76);!function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.NEXT=1]="NEXT",t[t.PREV=2]="PREV"}(e.Direction||(e.Direction={}));var s=e.Direction,c=(u={},u[a.Ng2BootstrapTheme.BS4]='\n    <a class="left carousel-control" (click)="prev()" *ngIf="slides.length">\n      <span class="icon-prev" aria-hidden="true"></span>\n      <span class="sr-only">Previous</span>\n    </a>\n    <a class="right carousel-control" (click)="next()" *ngIf="slides.length">\n      <span class="icon-next" aria-hidden="true"></span>\n      <span class="sr-only">Next</span>\n    </a>\n  ',u[a.Ng2BootstrapTheme.BS3]='\n    <a class="left carousel-control" (click)="prev()" *ngIf="slides.length">\n      <span class="glyphicon glyphicon-chevron-left"></span>\n    </a>\n    <a class="right carousel-control" (click)="next()" *ngIf="slides.length">\n      <span class="glyphicon glyphicon-chevron-right"></span>\n    </a>\n  ',u),l=function(){function CarouselComponent(){this.slides=[],this.destroyed=!1}return Object.defineProperty(CarouselComponent.prototype,"interval",{get:function(){return this._interval},set:function(t){this._interval=t,this.restartTimer()},enumerable:!0,configurable:!0}),CarouselComponent.prototype.ngOnDestroy=function(){this.destroyed=!0},CarouselComponent.prototype.select=function(t,e){void 0===e&&(e=s.UNKNOWN);var n=t.index;e===s.UNKNOWN&&(e=n>this.getCurrentIndex()?s.NEXT:s.PREV),t&&t!==this.currentSlide&&this.goNext(t,e)},CarouselComponent.prototype.play=function(){this.isPlaying||(this.isPlaying=!0,this.restartTimer())},CarouselComponent.prototype.pause=function(){this.noPause||(this.isPlaying=!1,this.resetTimer())},CarouselComponent.prototype.next=function(){var t=(this.getCurrentIndex()+1)%this.slides.length;return 0===t&&this.noWrap?void this.pause():this.select(this.getSlideByIndex(t),s.NEXT)},CarouselComponent.prototype.prev=function(){var t=this.getCurrentIndex()-1<0?this.slides.length-1:this.getCurrentIndex()-1;return this.noWrap&&t===this.slides.length-1?void this.pause():this.select(this.getSlideByIndex(t),s.PREV)},CarouselComponent.prototype.addSlide=function(t){t.index=this.slides.length,this.slides.push(t),1===this.slides.length||t.active?(this.select(this.slides[this.slides.length-1]),1===this.slides.length&&this.play()):t.active=!1},CarouselComponent.prototype.removeSlide=function(t){if(this.slides.splice(t.index,1),0===this.slides.length)return void(this.currentSlide=void 0);for(var e=0;e<this.slides.length;e++)this.slides[e].index=e},CarouselComponent.prototype.goNext=function(t,e){this.destroyed||(t.direction=e,t.active=!0,this.currentSlide&&(this.currentSlide.direction=e,this.currentSlide.active=!1),this.currentSlide=t,this.restartTimer())},CarouselComponent.prototype.getSlideByIndex=function(t){for(var e=this.slides.length,n=0;n<e;++n)if(this.slides[n].index===t)return this.slides[n]},CarouselComponent.prototype.getCurrentIndex=function(){return this.currentSlide?this.currentSlide.index:0},CarouselComponent.prototype.restartTimer=function(){var t=this;this.resetTimer();var e=+this.interval;!isNaN(e)&&e>0&&(this.currentInterval=setInterval(function(){var e=+t.interval;t.isPlaying&&!isNaN(t.interval)&&e>0&&t.slides.length?t.next():t.pause()},e))},CarouselComponent.prototype.resetTimer=function(){this.currentInterval&&(clearInterval(this.currentInterval),this.currentInterval=void 0)},r([o.Input(),i("design:type",Boolean)],CarouselComponent.prototype,"noWrap",void 0),r([o.Input(),i("design:type",Boolean)],CarouselComponent.prototype,"noPause",void 0),r([o.Input(),i("design:type",Boolean)],CarouselComponent.prototype,"noTransition",void 0),r([o.Input(),i("design:type",Number)],CarouselComponent.prototype,"interval",null),CarouselComponent=r([o.Component({selector:"carousel",template:'\n    <div (mouseenter)="pause()" (mouseleave)="play()" class="carousel slide">\n      <ol class="carousel-indicators" *ngIf="slides.length > 1">\n         <li *ngFor="let slidez of slides" [class.active]="slidez.active === true" (click)="select(slidez)"></li>\n      </ol>\n      <div class="carousel-inner"><ng-content></ng-content></div>\n      '+c[a.Ng2BootstrapConfig.theme]+"\n    </div>\n  "}),i("design:paramtypes",[])],CarouselComponent)}();e.CarouselComponent=l;var u},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(19),a=n(0),s=n(216),c=n(398),l=function(){function CarouselModule(){}return CarouselModule=r([a.NgModule({imports:[o.CommonModule],declarations:[c.SlideComponent,s.CarouselComponent],exports:[c.SlideComponent,s.CarouselComponent]}),i("design:paramtypes",[])],CarouselModule)}();e.CarouselModule=l},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(19),a=n(0),s=n(24),c=n(140),l=n(401),u=n(690),p=n(691),d=n(692),f=n(52),h=function(){function DatepickerModule(){}return DatepickerModule=r([a.NgModule({imports:[o.CommonModule,s.FormsModule],declarations:[l.DatePickerComponent,c.DatePickerInnerComponent,u.DayPickerComponent,p.MonthPickerComponent,d.YearPickerComponent],exports:[l.DatePickerComponent,c.DatePickerInnerComponent,u.DayPickerComponent,s.FormsModule,p.MonthPickerComponent,d.YearPickerComponent],providers:[f.ComponentsHelper]}),i("design:paramtypes",[])],DatepickerModule)}();e.DatepickerModule=h},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(402),s=n(403),c=n(141),l=function(){function DropdownModule(){}return DropdownModule=r([o.NgModule({declarations:[c.DropdownDirective,a.DropdownMenuDirective,s.DropdownToggleDirective],exports:[c.DropdownDirective,a.DropdownMenuDirective,s.DropdownToggleDirective]}),i("design:paramtypes",[])],DropdownModule)}();e.DropdownModule=l},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(221),s=function(){function ModalBackdropOptions(t){this.animate=!0,Object.assign(this,t)}return ModalBackdropOptions}();e.ModalBackdropOptions=s;var c=function(){function ModalBackdropComponent(t,e,n){this._isShown=!1,this.element=e,this.renderer=n,this.isAnimated=t.animate!==!1}return Object.defineProperty(ModalBackdropComponent.prototype,"isAnimated",{get:function(){return this._isAnimated},set:function(t){this._isAnimated=t,this.renderer.setElementClass(this.element.nativeElement,""+a.ClassName.FADE,t)},enumerable:!0,configurable:!0}),Object.defineProperty(ModalBackdropComponent.prototype,"isShown",{get:function(){return this._isShown},set:function(t){this._isShown=t,this.renderer.setElementClass(this.element.nativeElement,""+a.ClassName.IN,t)},enumerable:!0,configurable:!0}),ModalBackdropComponent=r([o.Component({selector:"bs-modal-backdrop",template:"",host:{"class":""+a.ClassName.BACKDROP}}),i("design:paramtypes",[s,o.ElementRef,o.Renderer])],ModalBackdropComponent)}();e.ModalBackdropComponent=c},function(t,e){"use strict";e.modalConfigDefaults={backdrop:!0,keyboard:!0,focus:!0,show:!0,ignoreBackdropClick:!1},e.ClassName={SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",IN:"in"},e.Selector={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".navbar-fixed-top, .navbar-fixed-bottom, .is-fixed"}},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(220),s=n(404),c=n(52),l=function(){function ModalModule(){}return ModalModule=r([o.NgModule({declarations:[a.ModalBackdropComponent,s.ModalDirective],exports:[a.ModalBackdropComponent,s.ModalDirective],entryComponents:[a.ModalBackdropComponent],providers:[c.ComponentsHelper]}),i("design:paramtypes",[])],ModalModule)}();e.ModalModule=l},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},a=n(0),s=n(24),c={maxSize:void 0,itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0},l='\n  <ul class="pagination" [ngClass]="classMap">\n    <li class="pagination-first page-item"\n        *ngIf="boundaryLinks"\n        [class.disabled]="noPrevious()||disabled">\n      <a class="page-link" href (click)="selectPage(1, $event)" [innerHTML]="getText(\'first\')"></a>\n    </li>\n\n    <li class="pagination-prev page-item"\n        *ngIf="directionLinks"\n        [class.disabled]="noPrevious()||disabled">\n      <a class="page-link" href (click)="selectPage(page - 1, $event)" [innerHTML]="getText(\'previous\')"></a>\n      </li>\n\n    <li *ngFor="let pg of pages"\n        [class.active]="pg.active"\n        [class.disabled]="disabled&&!pg.active"\n        class="pagination-page page-item">\n      <a class="page-link" href (click)="selectPage(pg.number, $event)" [innerHTML]="pg.text"></a>\n    </li>\n\n    <li class="pagination-next page-item"\n        *ngIf="directionLinks"\n        [class.disabled]="noNext()">\n      <a class="page-link" href (click)="selectPage(page + 1, $event)" [innerHTML]="getText(\'next\')"></a></li>\n\n    <li class="pagination-last page-item"\n        *ngIf="boundaryLinks"\n        [class.disabled]="noNext()">\n      <a class="page-link" href (click)="selectPage(totalPages, $event)" [innerHTML]="getText(\'last\')"></a></li>\n  </ul>\n  ',u=function(){function PaginationComponent(t,e,n){this.numPages=new a.EventEmitter((!1)),this.pageChanged=new a.EventEmitter((!1)),this.onChange=Function.prototype,this.onTouched=Function.prototype,this.inited=!1,this.cd=t,this.renderer=e,this.elementRef=n,t.valueAccessor=this,this.config=this.config||c}return Object.defineProperty(PaginationComponent.prototype,"itemsPerPage",{get:function(){return this._itemsPerPage},set:function(t){this._itemsPerPage=t,this.totalPages=this.calculateTotalPages()},enumerable:!0,configurable:!0}),Object.defineProperty(PaginationComponent.prototype,"totalItems",{get:function(){return this._totalItems},set:function(t){this._totalItems=t,this.totalPages=this.calculateTotalPages()},enumerable:!0,configurable:!0}),Object.defineProperty(PaginationComponent.prototype,"totalPages",{get:function(){return this._totalPages},set:function(t){this._totalPages=t,this.numPages.emit(t),this.inited&&this.selectPage(this.page)},enumerable:!0,configurable:!0}),Object.defineProperty(PaginationComponent.prototype,"page",{get:function(){return this._page},set:function(t){var e=this._page;this._page=t>this.totalPages?this.totalPages:t||1,e!==this._page&&"undefined"!=typeof e&&this.pageChanged.emit({page:this._page,itemsPerPage:this.itemsPerPage})},enumerable:!0,configurable:!0}),PaginationComponent.prototype.ngOnInit=function(){this.classMap=this.elementRef.nativeElement.getAttribute("class")||"",this.maxSize="undefined"!=typeof this.maxSize?this.maxSize:c.maxSize,this.rotate="undefined"!=typeof this.rotate?this.rotate:c.rotate,this.boundaryLinks="undefined"!=typeof this.boundaryLinks?this.boundaryLinks:c.boundaryLinks,this.directionLinks="undefined"!=typeof this.directionLinks?this.directionLinks:c.directionLinks,this.itemsPerPage="undefined"!=typeof this.itemsPerPage?this.itemsPerPage:c.itemsPerPage,this.totalPages=this.calculateTotalPages(),this.pages=this.getPages(this.page,this.totalPages),this.page=this.cd.value,this.inited=!0},PaginationComponent.prototype.writeValue=function(t){this.page=t,this.pages=this.getPages(this.page,this.totalPages)},PaginationComponent.prototype.getText=function(t){return this[t+"Text"]||c[t+"Text"]},PaginationComponent.prototype.noPrevious=function(){return 1===this.page},PaginationComponent.prototype.noNext=function(){return this.page===this.totalPages},PaginationComponent.prototype.registerOnChange=function(t){this.onChange=t},PaginationComponent.prototype.registerOnTouched=function(t){this.onTouched=t},PaginationComponent.prototype.selectPage=function(t,e){if(e&&e.preventDefault(),!this.disabled){if(e&&e.target){var n=e.target;n.blur()}this.writeValue(t),this.cd.viewToModelUpdate(this.page)}},PaginationComponent.prototype.makePage=function(t,e,n){return{number:t,text:e,active:n}},PaginationComponent.prototype.getPages=function(t,e){var n=[],r=1,i=e,o="undefined"!=typeof this.maxSize&&this.maxSize<e;o&&(this.rotate?(r=Math.max(t-Math.floor(this.maxSize/2),1),i=r+this.maxSize-1,i>e&&(i=e,r=i-this.maxSize+1)):(r=(Math.ceil(t/this.maxSize)-1)*this.maxSize+1,i=Math.min(r+this.maxSize-1,e)));for(var a=r;a<=i;a++){var s=this.makePage(a,a.toString(),a===t);n.push(s)}if(o&&!this.rotate){if(r>1){var c=this.makePage(r-1,"...",!1);n.unshift(c)}if(i<e){var l=this.makePage(i+1,"...",!1);n.push(l)}}return n},PaginationComponent.prototype.calculateTotalPages=function(){var t=this.itemsPerPage<1?1:Math.ceil(this.totalItems/this.itemsPerPage);return Math.max(t||0,1)},r([a.Input(),i("design:type",Boolean)],PaginationComponent.prototype,"align",void 0),r([a.Input(),i("design:type",Number)],PaginationComponent.prototype,"maxSize",void 0),r([a.Input(),i("design:type",Boolean)],PaginationComponent.prototype,"boundaryLinks",void 0),r([a.Input(),i("design:type",Boolean)],PaginationComponent.prototype,"directionLinks",void 0),r([a.Input(),i("design:type",String)],PaginationComponent.prototype,"firstText",void 0),r([a.Input(),i("design:type",String)],PaginationComponent.prototype,"previousText",void 0),r([a.Input(),i("design:type",String)],PaginationComponent.prototype,"nextText",void 0),r([a.Input(),i("design:type",String)],PaginationComponent.prototype,"lastText",void 0),r([a.Input(),i("design:type",Boolean)],PaginationComponent.prototype,"rotate",void 0),r([a.Input(),i("design:type",Boolean)],PaginationComponent.prototype,"disabled",void 0),r([a.Output(),i("design:type",a.EventEmitter)],PaginationComponent.prototype,"numPages",void 0),r([a.Output(),i("design:type",a.EventEmitter)],PaginationComponent.prototype,"pageChanged",void 0),r([a.Input(),i("design:type",Number)],PaginationComponent.prototype,"itemsPerPage",null),r([a.Input(),i("design:type",Number)],PaginationComponent.prototype,"totalItems",null),PaginationComponent=r([a.Component({selector:"pagination[ngModel]",template:l}),o(0,a.Self()),i("design:paramtypes",[s.NgModel,a.Renderer,a.ElementRef])],PaginationComponent)}();e.PaginationComponent=u},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(19),a=n(0),s=n(24),c=n(405),l=n(223),u=function(){function PaginationModule(){}return PaginationModule=r([a.NgModule({imports:[o.CommonModule,s.FormsModule],declarations:[c.PagerComponent,l.PaginationComponent],exports:[s.FormsModule,c.PagerComponent,l.PaginationComponent]}),i("design:paramtypes",[])],PaginationModule)}();e.PaginationModule=u},function(t,e){"use strict";var n=function(){function PositionService(){}return PositionService.prototype.position=function(t){var e=this.offset(t),n={top:0,left:0},r=this.parentOffsetEl(t);r!==this.document&&(n=this.offset(r),n.top+=r.clientTop-r.scrollTop,n.left+=r.clientLeft-r.scrollLeft);var i=t.getBoundingClientRect();return{width:i.width||t.offsetWidth,height:i.height||t.offsetHeight,top:e.top-n.top,left:e.left-n.left}},PositionService.prototype.offset=function(t){var e=t.getBoundingClientRect();return{width:e.width||t.offsetWidth,height:e.height||t.offsetHeight,top:e.top+(this.window.pageYOffset||this.document.documentElement.scrollTop),left:e.left+(this.window.pageXOffset||this.document.documentElement.scrollLeft)}},PositionService.prototype.positionElements=function(t,e,n,r){var i,o=n.split("-"),a=o[0],s=o[1]||"center",c=r?this.offset(t):this.position(t),l=e.offsetWidth,u=e.offsetHeight,p={center:function(){return c.left+c.width/2-l/2},left:function(){return c.left},right:function(){return c.left+c.width}},d={center:function(){return c.top+c.height/2-u/2},top:function(){return c.top},bottom:function(){return c.top+c.height}};switch(a){case"right":i={top:d[s](),left:p[a]()};break;case"left":i={top:d[s](),left:c.left-l};break;case"bottom":i={top:d[a](),left:p[s]()};break;default:i={top:c.top-u,left:p[s]()}}return i},Object.defineProperty(PositionService.prototype,"window",{get:function(){return window},enumerable:!0,configurable:!0}),Object.defineProperty(PositionService.prototype,"document",{get:function(){return window.document},enumerable:!0,configurable:!0}),PositionService.prototype.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:this.window.getComputedStyle?this.window.getComputedStyle(t)[e]:t.style[e]},PositionService.prototype.isStaticPositioned=function(t){return"static"===(this.getStyle(t,"position")||"static")},PositionService.prototype.parentOffsetEl=function(t){for(var e=t.offsetParent||this.document;e&&e!==this.document&&this.isStaticPositioned(e);)e=e.offsetParent;return e||this.document},PositionService}();e.PositionService=n,e.positionService=new n},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a={animate:!0,max:100},s=function(){function ProgressDirective(){this.addClass=!0,this.bars=[]}return Object.defineProperty(ProgressDirective.prototype,"max",{get:function(){return this._max},set:function(t){this._max=t,this.bars.forEach(function(t){t.recalculatePercentage()})},enumerable:!0,configurable:!0}),ProgressDirective.prototype.ngOnInit=function(){this.animate=this.animate!==!1,this.max="number"==typeof this.max?this.max:a.max},ProgressDirective.prototype.addBar=function(t){this.animate||(t.transition="none"),this.bars.push(t)},ProgressDirective.prototype.removeBar=function(t){this.bars.splice(this.bars.indexOf(t),1)},r([o.Input(),i("design:type",Boolean)],ProgressDirective.prototype,"animate",void 0),r([o.HostBinding("attr.max"),o.Input(),i("design:type",Number)],ProgressDirective.prototype,"max",null),r([o.HostBinding("class.progress"),i("design:type",Boolean)],ProgressDirective.prototype,"addClass",void 0),ProgressDirective=r([o.Directive({selector:"bs-progress, [progress]"}),i("design:paramtypes",[])],ProgressDirective)}();e.ProgressDirective=s},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(19),a=n(0),s=n(406),c=n(226),l=n(407),u=function(){function ProgressbarModule(){}return ProgressbarModule=r([a.NgModule({imports:[o.CommonModule],declarations:[c.ProgressDirective,s.BarComponent,l.ProgressbarComponent],exports:[c.ProgressDirective,s.BarComponent,l.ProgressbarComponent]}),i("design:paramtypes",[])],ProgressbarModule)}();e.ProgressbarModule=u},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;
+if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(19),a=n(0),s=n(24),c=n(408),l=function(){function RatingModule(){}return RatingModule=r([a.NgModule({imports:[o.CommonModule,s.FormsModule],declarations:[c.RatingComponent],exports:[s.FormsModule,c.RatingComponent]}),i("design:paramtypes",[])],RatingModule)}();e.RatingModule=l},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(231),s=function(){function TabDirective(t){this.select=new o.EventEmitter((!1)),this.deselect=new o.EventEmitter((!1)),this.removed=new o.EventEmitter((!1)),this.addClass=!0,this.tabset=t,this.tabset.addTab(this)}return Object.defineProperty(TabDirective.prototype,"active",{get:function(){return this._active},set:function(t){var e=this;return this.disabled&&t||!t?(t||(this._active=t),void this.deselect.emit(this)):(this._active=t,this.select.emit(this),void this.tabset.tabs.forEach(function(t){t!==e&&(t.active=!1)}))},enumerable:!0,configurable:!0}),TabDirective.prototype.ngOnInit=function(){this.removable=!!this.removable},TabDirective.prototype.ngOnDestroy=function(){this.tabset.removeTab(this)},r([o.Input(),i("design:type",String)],TabDirective.prototype,"heading",void 0),r([o.Input(),i("design:type",Boolean)],TabDirective.prototype,"disabled",void 0),r([o.Input(),i("design:type",Boolean)],TabDirective.prototype,"removable",void 0),r([o.HostBinding("class.active"),o.Input(),i("design:type",Boolean)],TabDirective.prototype,"active",null),r([o.Output(),i("design:type",o.EventEmitter)],TabDirective.prototype,"select",void 0),r([o.Output(),i("design:type",o.EventEmitter)],TabDirective.prototype,"deselect",void 0),r([o.Output(),i("design:type",o.EventEmitter)],TabDirective.prototype,"removed",void 0),r([o.HostBinding("class.tab-pane"),i("design:type",Boolean)],TabDirective.prototype,"addClass",void 0),TabDirective=r([o.Directive({selector:"tab, [tab]"}),i("design:paramtypes",[a.TabsetComponent])],TabDirective)}();e.TabDirective=s},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(19),a=n(0),s=n(400),c=n(409),l=n(229),u=n(231),p=function(){function TabsModule(){}return TabsModule=r([a.NgModule({imports:[o.CommonModule],declarations:[s.NgTranscludeDirective,l.TabDirective,u.TabsetComponent,c.TabHeadingDirective],exports:[l.TabDirective,u.TabsetComponent,c.TabHeadingDirective]}),i("design:paramtypes",[])],TabsModule)}();e.TabsModule=p},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=function(){function TabsetComponent(){this.clazz=!0,this.tabs=[],this.classMap={}}return Object.defineProperty(TabsetComponent.prototype,"vertical",{get:function(){return this._vertical},set:function(t){this._vertical=t,this.setClassMap()},enumerable:!0,configurable:!0}),Object.defineProperty(TabsetComponent.prototype,"justified",{get:function(){return this._justified},set:function(t){this._justified=t,this.setClassMap()},enumerable:!0,configurable:!0}),Object.defineProperty(TabsetComponent.prototype,"type",{get:function(){return this._type},set:function(t){this._type=t,this.setClassMap()},enumerable:!0,configurable:!0}),TabsetComponent.prototype.ngOnInit=function(){this.type="undefined"!==this.type?this.type:"tabs"},TabsetComponent.prototype.ngOnDestroy=function(){this.isDestroyed=!0},TabsetComponent.prototype.addTab=function(t){this.tabs.push(t),t.active=1===this.tabs.length&&t.active!==!1},TabsetComponent.prototype.removeTab=function(t){var e=this.tabs.indexOf(t);if(e!==-1&&!this.isDestroyed){if(t.active&&this.hasAvailableTabs(e)){var n=this.getClosestTabIndex(e);this.tabs[n].active=!0}t.removed.emit(t),this.tabs.splice(e,1)}},TabsetComponent.prototype.getClosestTabIndex=function(t){var e=this.tabs.length;if(!e)return-1;for(var n=1;n<=e;n+=1){var r=t-n,i=t+n;if(this.tabs[r]&&!this.tabs[r].disabled)return r;if(this.tabs[i]&&!this.tabs[i].disabled)return i}return-1},TabsetComponent.prototype.hasAvailableTabs=function(t){var e=this.tabs.length;if(!e)return!1;for(var n=0;n<e;n+=1)if(!this.tabs[n].disabled&&n!==t)return!0;return!1},TabsetComponent.prototype.setClassMap=function(){this.classMap=(t={"nav-stacked":this.vertical,"nav-justified":this.justified},t["nav-"+(this.type||"tabs")]=!0,t);var t},r([o.Input(),i("design:type",Boolean)],TabsetComponent.prototype,"vertical",null),r([o.Input(),i("design:type",Boolean)],TabsetComponent.prototype,"justified",null),r([o.Input(),i("design:type",String)],TabsetComponent.prototype,"type",null),r([o.HostBinding("class.tab-container"),i("design:type",Boolean)],TabsetComponent.prototype,"clazz",void 0),TabsetComponent=r([o.Component({selector:"tabset",template:'\n    <ul class="nav" [ngClass]="classMap" (click)="$event.preventDefault()">\n        <li *ngFor="let tabz of tabs" class="nav-item"\n          [class.active]="tabz.active" [class.disabled]="tabz.disabled">\n          <a href class="nav-link"\n            [class.active]="tabz.active" [class.disabled]="tabz.disabled"\n            (click)="tabz.active = true">\n            <span [ngTransclude]="tabz.headingRef">{{tabz.heading}}</span>\n            <span *ngIf="tabz.removable">\n              <span (click)="$event.preventDefault(); removeTab(tabz);" class="glyphicon glyphicon-remove-circle"></span>\n            </span>\n          </a>\n        </li>\n    </ul>\n    <div class="tab-content">\n      <ng-content></ng-content>\n    </div>\n  '}),i("design:paramtypes",[])],TabsetComponent)}();e.TabsetComponent=a},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(19),a=n(0),s=n(24),c=n(410),l=function(){function TimepickerModule(){}return TimepickerModule=r([a.NgModule({imports:[o.CommonModule,s.FormsModule],declarations:[c.TimepickerComponent],exports:[s.FormsModule,c.TimepickerComponent]}),i("design:paramtypes",[])],TimepickerModule)}();e.TimepickerModule=l},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},a=n(0),s=n(225),c=n(411),l=function(){function TooltipContainerComponent(t,e,n){this.top="-1000px",this.left="-1000px",this.display="block",this.element=t,this.cdr=e,Object.assign(this,n),this.classMap={"in":!1,fade:!1},this.classMap[n.placement]=!0,this.classMap["tooltip-"+n.placement]=!0}return TooltipContainerComponent.prototype.ngAfterViewInit=function(){var t=s.positionService.positionElements(this.hostEl.nativeElement,this.element.nativeElement.children[0],this.placement,this.appendToBody);this.top=t.top+"px",this.left=t.left+"px",this.classMap.in=!0,this.animation&&(this.classMap.fade=!0),this.popupClass&&(this.classMap[this.popupClass]=!0),this.cdr.detectChanges()},Object.defineProperty(TooltipContainerComponent.prototype,"isTemplate",{get:function(){return this.htmlContent instanceof a.TemplateRef},enumerable:!0,configurable:!0}),TooltipContainerComponent=r([a.Component({selector:"tooltip-container",template:'<div class="tooltip" role="tooltip"\n     [ngStyle]="{top: top, left: left, display: display}"\n     [ngClass]="classMap">\n      <div class="tooltip-arrow"></div>\n      <div class="tooltip-inner"\n           *ngIf="htmlContent && !isTemplate" \n           innerHtml="{{htmlContent}}">\n      </div>\n      <div class="tooltip-inner"\n           *ngIf="htmlContent && isTemplate">\n        <template [ngTemplateOutlet]="htmlContent"\n                  [ngOutletContext]="{model: context}">\n        </template>\n      </div>\n      <div class="tooltip-inner"\n           *ngIf="content">\n        {{content}}\n      </div>\n    </div>'}),o(2,a.Inject(c.TooltipOptions)),i("design:paramtypes",[a.ElementRef,a.ChangeDetectorRef,c.TooltipOptions])],TooltipContainerComponent)}();e.TooltipContainerComponent=l},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(19),a=n(0),s=n(233),c=n(412),l=n(52),u=function(){function TooltipModule(){}return TooltipModule=r([a.NgModule({imports:[o.CommonModule],declarations:[c.TooltipDirective,s.TooltipContainerComponent],exports:[c.TooltipDirective,s.TooltipContainerComponent],providers:[l.ComponentsHelper],entryComponents:[s.TooltipContainerComponent]}),i("design:paramtypes",[])],TooltipModule)}();e.TooltipModule=u},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(76),s=n(225),c=n(236),l=n(413),u=(d={},d[a.Ng2BootstrapTheme.BS4]='\n  <div class="dropdown-menu"\n       style="display: block"\n       [ngStyle]="{top: top, left: left, display: display}"\n       (mouseleave)="focusLost()">\n       <div *ngIf="!itemTemplate">\n          <a href="#"\n            *ngFor="let match of matches"\n            class="dropdown-item"\n            (click)="selectMatch(match, $event)"\n            (mouseenter)="selectActive(match)"\n            [class.active]="isActive(match)"\n            [innerHtml]="hightlight(match, query)"></a>\n      </div>\n      <div *ngIf="itemTemplate">\n        <a href="#"\n         *ngFor="let match of matches; let i = index"\n         class="dropdown-item"\n         (click)="selectMatch(match, $event)"\n         (mouseenter)="selectActive(match)"\n         [class.active]="isActive(match)">\n          <template [ngTemplateOutlet]="itemTemplate"\n                    [ngOutletContext]="{item: match, index: i}">\n          </template>\n         </a>\n      </div>\n  </div>\n  ',d[a.Ng2BootstrapTheme.BS3]='\n  <ul class="dropdown-menu"\n      style="display: block"\n      [ngStyle]="{top: top, left: left, display: display}"\n      (mouseleave)="focusLost()">\n    <li *ngFor="let match of matches; let i = index"\n        [class.active]="isActive(match)"\n        (mouseenter)="selectActive(match)">\n        <a href="#" \n           *ngIf="!itemTemplate" \n           (click)="selectMatch(match, $event)" \n           tabindex="-1" \n           [innerHtml]="hightlight(match, query)"></a>\n        <a href="#" \n           *ngIf="itemTemplate" \n           (click)="selectMatch(match, $event)" \n           tabindex="-1">\n            <template [ngTemplateOutlet]="itemTemplate"\n                      [ngOutletContext]="{item: match, index: i}">\n            </template>\n        </a>\n    </li>\n  </ul>\n  ',d),p=function(){function TypeaheadContainerComponent(t,e){this.isFocused=!1,this._matches=[],this.element=t,Object.assign(this,e)}return Object.defineProperty(TypeaheadContainerComponent.prototype,"matches",{get:function(){return this._matches},set:function(t){this._matches=t,this._matches.length>0&&(this._active=this._matches[0])},enumerable:!0,configurable:!0}),Object.defineProperty(TypeaheadContainerComponent.prototype,"itemTemplate",{get:function(){return this.parent?this.parent.typeaheadItemTemplate:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(TypeaheadContainerComponent.prototype,"field",{set:function(t){this._field=t},enumerable:!0,configurable:!0}),TypeaheadContainerComponent.prototype.position=function(t){this.display="block",this.top="0px",this.left="0px";var e=s.positionService.positionElements(t.nativeElement,this.element.nativeElement.children[0],this.placement,!1);this.top=e.top+"px",this.left=e.left+"px"},TypeaheadContainerComponent.prototype.selectActiveMatch=function(){this.selectMatch(this._active)},TypeaheadContainerComponent.prototype.prevActiveMatch=function(){var t=this.matches.indexOf(this._active);this._active=this.matches[t-1<0?this.matches.length-1:t-1]},TypeaheadContainerComponent.prototype.nextActiveMatch=function(){var t=this.matches.indexOf(this._active);this._active=this.matches[t+1>this.matches.length-1?0:t+1]},TypeaheadContainerComponent.prototype.selectActive=function(t){this.isFocused=!0,this._active=t},TypeaheadContainerComponent.prototype.hightlight=function(t,e){var n,r,i=l.TypeaheadUtils.getValueFromObject(t,this._field),o=(this.parent.typeaheadLatinize?l.TypeaheadUtils.latinize(i):i).toLowerCase();if("object"==typeof e)for(var a=e.length,s=0;s<a;s+=1)n=o.indexOf(e[s]),r=e[s].length,n>=0&&r>0&&(i=i.substring(0,n)+"<strong>"+i.substring(n,n+r)+"</strong>"+i.substring(n+r),o=o.substring(0,n)+"        "+" ".repeat(r)+"         "+o.substring(n+r));else e&&(n=o.indexOf(e),r=e.length,n>=0&&r>0&&(i=i.substring(0,n)+"<strong>"+i.substring(n,n+r)+"</strong>"+i.substring(n+r)));return i},TypeaheadContainerComponent.prototype.focusLost=function(){this.isFocused=!1},TypeaheadContainerComponent.prototype.isActive=function(t){return this._active===t},TypeaheadContainerComponent.prototype.selectMatch=function(t,e){var n=this;return void 0===e&&(e=void 0),e&&(e.stopPropagation(),e.preventDefault()),this.parent.changeModel(t),setTimeout(function(){return n.parent.typeaheadOnSelect.emit({item:t})},0),!1},TypeaheadContainerComponent=r([o.Component({selector:"typeahead-container",template:u[a.Ng2BootstrapConfig.theme],encapsulation:o.ViewEncapsulation.None}),i("design:paramtypes",[o.ElementRef,c.TypeaheadOptions])],TypeaheadContainerComponent)}();e.TypeaheadContainerComponent=p;var d},function(t,e){"use strict";var n=function(){function TypeaheadOptions(t){Object.assign(this,t)}return TypeaheadOptions}();e.TypeaheadOptions=n},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(19),a=n(0),s=n(24),c=n(235),l=n(414),u=n(52),p=function(){function TypeaheadModule(){}return TypeaheadModule=r([a.NgModule({imports:[o.CommonModule,s.FormsModule],declarations:[c.TypeaheadContainerComponent,l.TypeaheadDirective],exports:[s.FormsModule,c.TypeaheadContainerComponent,l.TypeaheadDirective],providers:[u.ComponentsHelper],entryComponents:[c.TypeaheadContainerComponent]}),i("design:paramtypes",[])],TypeaheadModule)}();e.TypeaheadModule=p},function(t,e){"use strict";var n="undefined"!=typeof window&&window||{};e.window=n,e.document=n.document,e.location=n.location,e.gc=n.gc?function(){return n.gc()}:function(){return null},e.performance=n.performance?n.performance:null,e.Event=n.Event,e.MouseEvent=n.MouseEvent,e.KeyboardEvent=n.KeyboardEvent,e.EventTarget=n.EventTarget,e.History=n.History,e.Location=n.Location,e.EventListener=n.EventListener},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(29),o=function(t){function OuterSubscriber(){t.apply(this,arguments)}return r(OuterSubscriber,t),OuterSubscriber.prototype.notifyNext=function(t,e,n,r,i){this.destination.next(e)},OuterSubscriber.prototype.notifyError=function(t,e){this.destination.error(t)},OuterSubscriber.prototype.notifyComplete=function(t){this.destination.complete()},OuterSubscriber}(i.Subscriber);e.OuterSubscriber=o},function(t,e,n){"use strict";var r=n(740);e.from=r.FromObservable.create},function(t,e,n){"use strict";var r=n(419);e.fromPromise=r.PromiseObservable.create},function(t,e,n){"use strict";function mergeAll(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),this.lift(new a(t))}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(239),o=n(248);e.mergeAll=mergeAll;var a=function(){function MergeAllOperator(t){this.concurrent=t}return MergeAllOperator.prototype.call=function(t,e){return e._subscribe(new s(t,this.concurrent))},MergeAllOperator}();e.MergeAllOperator=a;var s=function(t){function MergeAllSubscriber(e,n){t.call(this,e),this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0}return r(MergeAllSubscriber,t),MergeAllSubscriber.prototype._next=function(t){this.active<this.concurrent?(this.active++,this.add(o.subscribeToResult(this,t))):this.buffer.push(t)},MergeAllSubscriber.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete()},MergeAllSubscriber.prototype.notifyComplete=function(t){var e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},MergeAllSubscriber}(i.OuterSubscriber);e.MergeAllSubscriber=s},function(t,e,n){"use strict";var r=n(53),i=r.root.Symbol;if("function"==typeof i)i.iterator?e.$$iterator=i.iterator:"function"==typeof i.for&&(e.$$iterator=i.for("iterator"));else if(r.root.Set&&"function"==typeof(new r.root.Set)["@@iterator"])e.$$iterator="@@iterator";else if(r.root.Map)for(var o=Object.getOwnPropertyNames(r.root.Map.prototype),a=0;a<o.length;++a){var s=o[a];if("entries"!==s&&"size"!==s&&r.root.Map.prototype[s]===r.root.Map.prototype.entries){e.$$iterator=s;break}}else e.$$iterator="@@iterator"},function(t,e,n){"use strict";function getSymbolObservable(t){var e,n=t.Symbol;return"function"==typeof n?n.observable?e=n.observable:(e=n("observable"),n.observable=e):e="@@observable",e}var r=n(53);e.getSymbolObservable=getSymbolObservable,e.$$observable=getSymbolObservable(r.root)},function(t,e,n){"use strict";var r=n(53),i=r.root.Symbol;e.$$rxSubscriber="function"==typeof i&&"function"==typeof i.for?i.for("rxSubscriber"):"@@rxSubscriber"},function(t,e){"use strict";var n=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},r=function(t){function EmptyError(){var e=t.call(this,"no elements in sequence");this.name=e.name="EmptyError",this.stack=e.stack,this.message=e.message}return n(EmptyError,t),EmptyError}(Error);e.EmptyError=r},function(t,e){"use strict";e.isArray=Array.isArray||function(t){return t&&"number"==typeof t.length}},function(t,e,n){"use strict";function subscribeToResult(t,e,n,u){var p=new c.InnerSubscriber(t,n,u);if(p.closed)return null;if(e instanceof a.Observable)return e._isScalar?(p.next(e.value),p.complete(),null):e.subscribe(p);if(i.isArray(e)){for(var d=0,f=e.length;d<f&&!p.closed;d++)p.next(e[d]);p.closed||p.complete()}else{if(o.isPromise(e))return e.then(function(t){p.closed||(p.next(t),p.complete())},function(t){return p.error(t)}).then(null,function(t){r.root.setTimeout(function(){throw t})}),p;if("function"==typeof e[s.$$iterator])for(var h=e[s.$$iterator]();;){var m=h.next();if(m.done){p.complete();break}if(p.next(m.value),p.closed)break}else if("function"==typeof e[l.$$observable]){var v=e[l.$$observable]();if("function"==typeof v.subscribe)return v.subscribe(new c.InnerSubscriber(t,n,u));p.error(new Error("invalid observable"))}else p.error(new TypeError("unknown type returned"))}return null}var r=n(53),i=n(247),o=n(426),a=n(9),s=n(243),c=n(729),l=n(244);e.subscribeToResult=subscribeToResult},function(t,e,n){"use strict";var r=n(0),i=n(98),o=n(12);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function NgClass(t,e,n,r){this._iterableDiffers=t,this._keyValueDiffers=e,this._ngEl=n,this._renderer=r,this._initialClasses=[]}return Object.defineProperty(NgClass.prototype,"initialClasses",{set:function(t){this._applyInitialClasses(!0),this._initialClasses=n.i(o.b)(t)&&n.i(o.k)(t)?t.split(" "):[],this._applyInitialClasses(!1),this._applyClasses(this._rawClass,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(NgClass.prototype,"ngClass",{set:function(t){this._cleanupClasses(this._rawClass),n.i(o.k)(t)&&(t=t.split(" ")),this._rawClass=t,this._iterableDiffer=null,this._keyValueDiffer=null,n.i(o.b)(t)&&(n.i(i.c)(t)?this._iterableDiffer=this._iterableDiffers.find(t).create(null):this._keyValueDiffer=this._keyValueDiffers.find(t).create(null))},enumerable:!0,configurable:!0}),NgClass.prototype.ngDoCheck=function(){if(n.i(o.b)(this._iterableDiffer)){var t=this._iterableDiffer.diff(this._rawClass);n.i(o.b)(t)&&this._applyIterableChanges(t)}if(n.i(o.b)(this._keyValueDiffer)){var t=this._keyValueDiffer.diff(this._rawClass);n.i(o.b)(t)&&this._applyKeyValueChanges(t)}},NgClass.prototype._cleanupClasses=function(t){this._applyClasses(t,!0),this._applyInitialClasses(!1)},NgClass.prototype._applyKeyValueChanges=function(t){var e=this;t.forEachAddedItem(function(t){e._toggleClass(t.key,t.currentValue)}),t.forEachChangedItem(function(t){e._toggleClass(t.key,t.currentValue)}),t.forEachRemovedItem(function(t){t.previousValue&&e._toggleClass(t.key,!1)})},NgClass.prototype._applyIterableChanges=function(t){var e=this;t.forEachAddedItem(function(t){e._toggleClass(t.item,!0)}),t.forEachRemovedItem(function(t){e._toggleClass(t.item,!1)})},NgClass.prototype._applyInitialClasses=function(t){var e=this;this._initialClasses.forEach(function(n){return e._toggleClass(n,!t)})},NgClass.prototype._applyClasses=function(t,e){var r=this;n.i(o.b)(t)&&(n.i(o.f)(t)?t.forEach(function(t){return r._toggleClass(t,!e)}):t instanceof Set?t.forEach(function(t){return r._toggleClass(t,!e)}):i.a.forEach(t,function(t,i){n.i(o.b)(t)&&r._toggleClass(i,!e)}))},NgClass.prototype._toggleClass=function(t,e){if(t=t.trim(),t.length>0)if(t.indexOf(" ")>-1)for(var n=t.split(/\s+/g),r=0,i=n.length;r<i;r++)this._renderer.setElementClass(this._ngEl.nativeElement,n[r],e);else this._renderer.setElementClass(this._ngEl.nativeElement,t,e)},NgClass.decorators=[{type:r.Directive,args:[{selector:"[ngClass]"}]}],NgClass.ctorParameters=[{type:r.IterableDiffers},{type:r.KeyValueDiffers},{type:r.ElementRef},{type:r.Renderer}],NgClass.propDecorators={initialClasses:[{type:r.Input,args:["class"]}],ngClass:[{type:r.Input}]},NgClass}()},function(t,e,n){"use strict";var r=n(0),i=n(12);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function NgForRow(t,e,n){this.$implicit=t,this.index=e,this.count=n}return Object.defineProperty(NgForRow.prototype,"first",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(NgForRow.prototype,"last",{get:function(){return this.index===this.count-1},enumerable:!0,configurable:!0}),Object.defineProperty(NgForRow.prototype,"even",{get:function(){return this.index%2===0},enumerable:!0,configurable:!0}),Object.defineProperty(NgForRow.prototype,"odd",{get:function(){return!this.even},enumerable:!0,configurable:!0}),NgForRow}(),a=function(){function NgFor(t,e,n,r){this._viewContainer=t,this._templateRef=e,this._iterableDiffers=n,this._cdr=r}return Object.defineProperty(NgFor.prototype,"ngForTemplate",{set:function(t){n.i(i.b)(t)&&(this._templateRef=t)},enumerable:!0,configurable:!0}),NgFor.prototype.ngOnChanges=function(t){if("ngForOf"in t){var e=t.ngForOf.currentValue;if(n.i(i.c)(this._differ)&&n.i(i.b)(e))try{this._differ=this._iterableDiffers.find(e).create(this._cdr,this.ngForTrackBy)}catch(r){throw new Error("Cannot find a differ supporting object '"+e+"' of type '"+n.i(i.q)(e)+"'. NgFor only supports binding to Iterables such as Arrays.")}}},NgFor.prototype.ngDoCheck=function(){if(n.i(i.b)(this._differ)){var t=this._differ.diff(this.ngForOf);n.i(i.b)(t)&&this._applyChanges(t)}},NgFor.prototype._applyChanges=function(t){var e=this,n=[];t.forEachOperation(function(t,r,i){if(null==t.previousIndex){var a=e._viewContainer.createEmbeddedView(e._templateRef,new o(null,null,null),i),c=new s(t,a);n.push(c)}else if(null==i)e._viewContainer.remove(r);else{var a=e._viewContainer.get(r);e._viewContainer.move(a,i);var c=new s(t,a);n.push(c)}});for(var r=0;r<n.length;r++)this._perViewChange(n[r].view,n[r].record);for(var r=0,i=this._viewContainer.length;r<i;r++){var a=this._viewContainer.get(r);a.context.index=r,a.context.count=i}t.forEachIdentityChange(function(t){var n=e._viewContainer.get(t.currentIndex);n.context.$implicit=t.item})},NgFor.prototype._perViewChange=function(t,e){t.context.$implicit=e.item},NgFor.decorators=[{type:r.Directive,args:[{selector:"[ngFor][ngForOf]"}]}],NgFor.ctorParameters=[{type:r.ViewContainerRef},{type:r.TemplateRef},{type:r.IterableDiffers},{type:r.ChangeDetectorRef}],NgFor.propDecorators={ngForOf:[{type:r.Input}],ngForTrackBy:[{type:r.Input}],ngForTemplate:[{type:r.Input}]},NgFor}(),s=function(){function RecordViewTuple(t,e){this.record=t,this.view=e}return RecordViewTuple}()},function(t,e,n){"use strict";var r=n(0),i=n(12);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function NgIf(t,e){this._viewContainer=t,this._templateRef=e,this._prevCondition=null}return Object.defineProperty(NgIf.prototype,"ngIf",{set:function(t){!t||!n.i(i.c)(this._prevCondition)&&this._prevCondition?t||!n.i(i.c)(this._prevCondition)&&!this._prevCondition||(this._prevCondition=!1,this._viewContainer.clear()):(this._prevCondition=!0,this._viewContainer.createEmbeddedView(this._templateRef))},enumerable:!0,configurable:!0}),NgIf.decorators=[{type:r.Directive,args:[{selector:"[ngIf]"}]}],NgIf.ctorParameters=[{type:r.ViewContainerRef},{type:r.TemplateRef}],NgIf.propDecorators={ngIf:[{type:r.Input}]},NgIf}()},function(t,e,n){"use strict";var r=n(0),i=n(12),o=n(99),a=n(144);n.d(e,"a",function(){return s}),n.d(e,"b",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function NgPlural(t){this._localization=t,this._caseViews={}}return Object.defineProperty(NgPlural.prototype,"ngPlural",{set:function(t){this._switchValue=t,this._updateView()},enumerable:!0,configurable:!0}),NgPlural.prototype.addCase=function(t,e){this._caseViews[t]=e},NgPlural.prototype._updateView=function(){this._clearViews();var t=n.i(o.a)(this._switchValue,Object.keys(this._caseViews),this._localization);this._activateView(this._caseViews[t])},NgPlural.prototype._clearViews=function(){n.i(i.b)(this._activeView)&&this._activeView.destroy()},NgPlural.prototype._activateView=function(t){n.i(i.b)(t)&&(this._activeView=t,this._activeView.create())},NgPlural.decorators=[{type:r.Directive,args:[{selector:"[ngPlural]"}]}],NgPlural.ctorParameters=[{type:o.b}],NgPlural.propDecorators={ngPlural:[{type:r.Input}]},NgPlural}(),c=function(){function NgPluralCase(t,e,n,r){this.value=t,r.addCase(t,new a.a(n,e))}return NgPluralCase.decorators=[{type:r.Directive,args:[{selector:"[ngPluralCase]"}]}],NgPluralCase.ctorParameters=[{type:void 0,decorators:[{type:r.Attribute,args:["ngPluralCase"]}]},{type:r.TemplateRef},{type:r.ViewContainerRef},{type:s,decorators:[{type:r.Host}]}],NgPluralCase}()},function(t,e,n){"use strict";var r=n(0),i=n(12);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function NgStyle(t,e,n){this._differs=t,this._ngEl=e,this._renderer=n}return Object.defineProperty(NgStyle.prototype,"ngStyle",{set:function(t){this._ngStyle=t,n.i(i.c)(this._differ)&&n.i(i.b)(t)&&(this._differ=this._differs.find(this._ngStyle).create(null))},enumerable:!0,configurable:!0}),NgStyle.prototype.ngDoCheck=function(){if(n.i(i.b)(this._differ)){var t=this._differ.diff(this._ngStyle);n.i(i.b)(t)&&this._applyChanges(t)}},NgStyle.prototype._applyChanges=function(t){var e=this;t.forEachRemovedItem(function(t){e._setStyle(t.key,null)}),t.forEachAddedItem(function(t){e._setStyle(t.key,t.currentValue)}),t.forEachChangedItem(function(t){e._setStyle(t.key,t.currentValue)})},NgStyle.prototype._setStyle=function(t,e){var r=t.split("."),o=r[0],a=n.i(i.b)(e)&&2===r.length?""+e+r[1]:e;this._renderer.setElementStyle(this._ngEl.nativeElement,o,a)},NgStyle.decorators=[{type:r.Directive,args:[{selector:"[ngStyle]"}]}],NgStyle.ctorParameters=[{type:r.KeyValueDiffers},{type:r.ElementRef},{type:r.Renderer}],NgStyle.propDecorators={ngStyle:[{type:r.Input}]},NgStyle}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function NgTemplateOutlet(t){this._viewContainerRef=t}return Object.defineProperty(NgTemplateOutlet.prototype,"ngOutletContext",{set:function(t){this._context=t},enumerable:!0,configurable:!0}),Object.defineProperty(NgTemplateOutlet.prototype,"ngTemplateOutlet",{set:function(t){this._templateRef=t},enumerable:!0,configurable:!0}),NgTemplateOutlet.prototype.ngOnChanges=function(){this._viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._viewRef)),this._templateRef&&(this._viewRef=this._viewContainerRef.createEmbeddedView(this._templateRef,this._context))},NgTemplateOutlet.decorators=[{type:r.Directive,args:[{selector:"[ngTemplateOutlet]"}]}],NgTemplateOutlet.ctorParameters=[{type:r.ViewContainerRef}],NgTemplateOutlet.propDecorators={ngOutletContext:[{type:r.Input}],ngTemplateOutlet:[{type:r.Input}]},NgTemplateOutlet}()},function(t,e,n){"use strict";function digitModifier(t){return function(e,n){var r=t(e,n);return 1==r.length?"0"+r:r}}function hourClockExtracter(t){return function(e,n){var r=t(e,n);return r.split(" ")[1]}}function hourExtracter(t){return function(e,n){var r=t(e,n);return r.split(" ")[0]}}function intlDateFormat(t,e,n){return new Intl.DateTimeFormat(e,n).format(t).replace(/[\u200e\u200f]/g,"")}function timeZoneGetter(t){var e={hour:"2-digit",hour12:!1,timeZoneName:t};return function(t,n){var r=intlDateFormat(t,n,e);return r?r.substring(3):""}}function hour12Modify(t,e){return t.hour12=e,t}function digitCondition(t,e){var n={};return n[t]=2==e?"2-digit":"numeric",n}function nameCondition(t,e){var n={};return n[t]=e<4?"short":"long",n}function combine(t){var e={};return t.forEach(function(t){Object.assign(e,t)}),e}function datePartGetterFactory(t){return function(e,n){return intlDateFormat(e,n,t)}}function dateFormatter(t,e,n){var r,i,l="",u=[];if(a[t])return a[t](e,n);if(c.has(t))u=c.get(t);else{for(o.exec(t);t;)r=o.exec(t),r?(u=concat(u,r,1),t=u.pop()):(u.push(t),t=null);c.set(t,u)}return u.forEach(function(t){i=s[t],l+=i?i(e,n):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}function concat(t,e,n){return t.concat(l.call(e,n))}n.d(e,"b",function(){return r}),n.d(e,"c",function(){return i}),n.d(e,"a",function(){return u});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;!function(t){t[t.Decimal=0]="Decimal",t[t.Percent=1]="Percent",t[t.Currency=2]="Currency"}(r||(r={}));var i=function(){function NumberFormatter(){}return NumberFormatter.format=function(t,e,n,i){var o=void 0===i?{}:i,a=o.minimumIntegerDigits,s=o.minimumFractionDigits,c=o.maximumFractionDigits,l=o.currency,u=o.currencyAsSymbol,p=void 0!==u&&u,d={minimumIntegerDigits:a,minimumFractionDigits:s,maximumFractionDigits:c,style:r[n].toLowerCase()};return n==r.Currency&&(d.currency=l,d.currencyDisplay=p?"symbol":"code"),new Intl.NumberFormat(e,d).format(t)},NumberFormatter}(),o=/((?:[^yMLdHhmsazZEwGjJ']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|J+|j+|m+|s+|a|z|Z|G+|w+))(.*)/,a={yMMMdjms:datePartGetterFactory(combine([digitCondition("year",1),nameCondition("month",3),digitCondition("day",1),digitCondition("hour",1),digitCondition("minute",1),digitCondition("second",1)])),yMdjm:datePartGetterFactory(combine([digitCondition("year",1),digitCondition("month",1),digitCondition("day",1),digitCondition("hour",1),digitCondition("minute",1)])),yMMMMEEEEd:datePartGetterFactory(combine([digitCondition("year",1),nameCondition("month",4),nameCondition("weekday",4),digitCondition("day",1)])),yMMMMd:datePartGetterFactory(combine([digitCondition("year",1),nameCondition("month",4),digitCondition("day",1)])),yMMMd:datePartGetterFactory(combine([digitCondition("year",1),nameCondition("month",3),digitCondition("day",1)])),yMd:datePartGetterFactory(combine([digitCondition("year",1),digitCondition("month",1),digitCondition("day",1)])),jms:datePartGetterFactory(combine([digitCondition("hour",1),digitCondition("second",1),digitCondition("minute",1)])),jm:datePartGetterFactory(combine([digitCondition("hour",1),digitCondition("minute",1)]))},s={yyyy:datePartGetterFactory(digitCondition("year",4)),yy:datePartGetterFactory(digitCondition("year",2)),y:datePartGetterFactory(digitCondition("year",1)),MMMM:datePartGetterFactory(nameCondition("month",4)),MMM:datePartGetterFactory(nameCondition("month",3)),MM:datePartGetterFactory(digitCondition("month",2)),M:datePartGetterFactory(digitCondition("month",1)),LLLL:datePartGetterFactory(nameCondition("month",4)),dd:datePartGetterFactory(digitCondition("day",2)),d:datePartGetterFactory(digitCondition("day",1)),HH:digitModifier(hourExtracter(datePartGetterFactory(hour12Modify(digitCondition("hour",2),!1)))),H:hourExtracter(datePartGetterFactory(hour12Modify(digitCondition("hour",1),!1))),hh:digitModifier(hourExtracter(datePartGetterFactory(hour12Modify(digitCondition("hour",2),!0)))),h:hourExtracter(datePartGetterFactory(hour12Modify(digitCondition("hour",1),!0))),jj:datePartGetterFactory(digitCondition("hour",2)),j:datePartGetterFactory(digitCondition("hour",1)),mm:digitModifier(datePartGetterFactory(digitCondition("minute",2))),m:datePartGetterFactory(digitCondition("minute",1)),ss:digitModifier(datePartGetterFactory(digitCondition("second",2))),s:datePartGetterFactory(digitCondition("second",1)),sss:datePartGetterFactory(digitCondition("second",3)),EEEE:datePartGetterFactory(nameCondition("weekday",4)),EEE:datePartGetterFactory(nameCondition("weekday",3)),EE:datePartGetterFactory(nameCondition("weekday",2)),E:datePartGetterFactory(nameCondition("weekday",1)),a:hourClockExtracter(datePartGetterFactory(hour12Modify(digitCondition("hour",1),!0))),Z:timeZoneGetter("short"),z:timeZoneGetter("long"),ww:datePartGetterFactory({}),w:datePartGetterFactory({}),G:datePartGetterFactory(nameCondition("era",1)),GG:datePartGetterFactory(nameCondition("era",2)),GGG:datePartGetterFactory(nameCondition("era",3)),GGGG:datePartGetterFactory(nameCondition("era",4))},c=new Map,l=[].slice,u=function(){function DateFormatter(){}return DateFormatter.format=function(t,e,n){return dateFormatter(n,t,e)},DateFormatter}()},function(t,e,n){"use strict";var r=n(0),i=n(12),o=n(54);n.d(e,"a",function(){return u});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function ObservableStrategy(){}return ObservableStrategy.prototype.createSubscription=function(t,e){return t.subscribe({next:e,error:function(t){throw t}})},ObservableStrategy.prototype.dispose=function(t){t.unsubscribe()},ObservableStrategy.prototype.onDestroy=function(t){t.unsubscribe()},ObservableStrategy}(),s=function(){function PromiseStrategy(){}return PromiseStrategy.prototype.createSubscription=function(t,e){return t.then(e,function(t){throw t})},PromiseStrategy.prototype.dispose=function(t){},PromiseStrategy.prototype.onDestroy=function(t){},PromiseStrategy}(),c=new s,l=new a,u=function(){function AsyncPipe(t){this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null,this._strategy=null,this._ref=t}return AsyncPipe.prototype.ngOnDestroy=function(){n.i(i.b)(this._subscription)&&this._dispose()},AsyncPipe.prototype.transform=function(t){return n.i(i.c)(this._obj)?(n.i(i.b)(t)&&this._subscribe(t),this._latestReturnedValue=this._latestValue,this._latestValue):t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue===this._latestReturnedValue?this._latestReturnedValue:(this._latestReturnedValue=this._latestValue,r.WrappedValue.wrap(this._latestValue))},AsyncPipe.prototype._subscribe=function(t){var e=this;this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,function(n){return e._updateLatestValue(t,n)})},AsyncPipe.prototype._selectStrategy=function(t){if(n.i(i.d)(t))return c;if(t.subscribe)return l;throw new o.a(AsyncPipe,t)},AsyncPipe.prototype._dispose=function(){this._strategy.dispose(this._subscription),this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null},AsyncPipe.prototype._updateLatestValue=function(t,e){t===this._obj&&(this._latestValue=e,this._ref.markForCheck())},AsyncPipe.decorators=[{type:r.Pipe,args:[{name:"async",pure:!1}]}],AsyncPipe.ctorParameters=[{type:r.ChangeDetectorRef}],AsyncPipe}()},function(t,e,n){"use strict";var r=n(0),i=n(98),o=n(255),a=n(12),s=n(54);n.d(e,"a",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c=function(){function DatePipe(t){this._locale=t}return DatePipe.prototype.transform=function(t,e){if(void 0===e&&(e="mediumDate"),n.i(a.c)(t))return null;if(!this.supports(t))throw new s.a(DatePipe,t);return a.i.isNumeric(t)?t=a.j.fromMillis(parseFloat(t)):n.i(a.k)(t)&&(t=a.j.fromISOString(t)),i.a.contains(DatePipe._ALIASES,e)&&(e=i.a.get(DatePipe._ALIASES,e)),o.a.format(t,this._locale,e)},DatePipe.prototype.supports=function(t){return!(!n.i(a.l)(t)&&!a.i.isNumeric(t))||!(!n.i(a.k)(t)||!n.i(a.l)(a.j.fromISOString(t)))},DatePipe._ALIASES={medium:"yMMMdjms","short":"yMdjm",fullDate:"yMMMMEEEEd",longDate:"yMMMMd",mediumDate:"yMMMd",shortDate:"yMd",mediumTime:"jms",shortTime:"jm"},DatePipe.decorators=[{type:r.Pipe,args:[{name:"date",pure:!0}]}],DatePipe.ctorParameters=[{type:void 0,decorators:[{type:r.Inject,args:[r.LOCALE_ID]}]}],DatePipe}()},function(t,e,n){"use strict";var r=n(0),i=n(12),o=n(99),a=n(54);n.d(e,"a",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=/#/g,c=function(){function I18nPluralPipe(t){this._localization=t}return I18nPluralPipe.prototype.transform=function(t,e){if(n.i(i.c)(t))return"";if(!n.i(i.m)(e))throw new a.a(I18nPluralPipe,e);var r=n.i(o.a)(t,Object.keys(e),this._localization);return i.n.replaceAll(e[r],s,t.toString())},I18nPluralPipe.decorators=[{type:r.Pipe,args:[{name:"i18nPlural",pure:!0}]}],I18nPluralPipe.ctorParameters=[{type:o.b}],I18nPluralPipe}()},function(t,e,n){"use strict";var r=n(0),i=n(12),o=n(54);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function I18nSelectPipe(){}return I18nSelectPipe.prototype.transform=function(t,e){if(n.i(i.c)(t))return"";if(!n.i(i.m)(e))throw new o.a(I18nSelectPipe,e);return e.hasOwnProperty(t)?e[t]:""},I18nSelectPipe.decorators=[{type:r.Pipe,args:[{name:"i18nSelect",pure:!0}]}],I18nSelectPipe.ctorParameters=[],I18nSelectPipe}()},function(t,e,n){"use strict";var r=n(0),i=n(12);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function JsonPipe(){}return JsonPipe.prototype.transform=function(t){return i.o.stringify(t)},JsonPipe.decorators=[{type:r.Pipe,args:[{name:"json",pure:!1}]}],JsonPipe.ctorParameters=[],JsonPipe}()},function(t,e,n){"use strict";var r=n(0),i=n(12),o=n(54);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function LowerCasePipe(){}return LowerCasePipe.prototype.transform=function(t){if(n.i(i.c)(t))return t;if(!n.i(i.k)(t))throw new o.a(LowerCasePipe,t);return t.toLowerCase()},LowerCasePipe.decorators=[{type:r.Pipe,args:[{name:"lowercase"}]}],LowerCasePipe.ctorParameters=[],LowerCasePipe}()},function(t,e,n){"use strict";function formatNumber(t,e,r,c,l,u,p){if(void 0===u&&(u=null),void 0===p&&(p=!1),n.i(o.c)(r))return null;if(r=n.i(o.k)(r)&&o.i.isNumeric(r)?+r:r,!n.i(o.p)(r))throw new a.a(t,r);var d,f,h;if(c!==i.b.Currency&&(d=1,f=0,h=3),n.i(o.b)(l)){var m=l.match(s);if(null===m)throw new Error(l+" is not a valid digit info for number pipes");n.i(o.b)(m[1])&&(d=o.i.parseIntAutoRadix(m[1])),n.i(o.b)(m[3])&&(f=o.i.parseIntAutoRadix(m[3])),n.i(o.b)(m[5])&&(h=o.i.parseIntAutoRadix(m[5]))}return i.c.format(r,e,c,{minimumIntegerDigits:d,minimumFractionDigits:f,maximumFractionDigits:h,currency:u,currencyAsSymbol:p})}var r=n(0),i=n(255),o=n(12),a=n(54);n.d(e,"a",function(){return c}),n.d(e,"b",function(){return l}),n.d(e,"c",function(){return u});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=/^(\d+)?\.((\d+)(\-(\d+))?)?$/,c=function(){function DecimalPipe(t){this._locale=t}return DecimalPipe.prototype.transform=function(t,e){return void 0===e&&(e=null),formatNumber(DecimalPipe,this._locale,t,i.b.Decimal,e)},DecimalPipe.decorators=[{type:r.Pipe,args:[{name:"number"}]}],DecimalPipe.ctorParameters=[{type:void 0,decorators:[{type:r.Inject,args:[r.LOCALE_ID]}]}],DecimalPipe}(),l=function(){function PercentPipe(t){this._locale=t}return PercentPipe.prototype.transform=function(t,e){return void 0===e&&(e=null),formatNumber(PercentPipe,this._locale,t,i.b.Percent,e)},PercentPipe.decorators=[{type:r.Pipe,args:[{name:"percent"}]}],PercentPipe.ctorParameters=[{type:void 0,decorators:[{type:r.Inject,args:[r.LOCALE_ID]}]}],PercentPipe}(),u=function(){function CurrencyPipe(t){this._locale=t}return CurrencyPipe.prototype.transform=function(t,e,n,r){return void 0===e&&(e="USD"),void 0===n&&(n=!1),void 0===r&&(r=null),formatNumber(CurrencyPipe,this._locale,t,i.b.Currency,r,e,n)},CurrencyPipe.decorators=[{type:r.Pipe,args:[{name:"currency"}]}],CurrencyPipe.ctorParameters=[{type:void 0,decorators:[{type:r.Inject,args:[r.LOCALE_ID]}]}],CurrencyPipe}()},function(t,e,n){"use strict";var r=n(0),i=n(98),o=n(12),a=n(54);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function SlicePipe(){}return SlicePipe.prototype.transform=function(t,e,r){if(void 0===r&&(r=null),n.i(o.c)(t))return t;if(!this.supports(t))throw new a.a(SlicePipe,t);return n.i(o.k)(t)?o.n.slice(t,e,r):i.b.slice(t,e,r)},SlicePipe.prototype.supports=function(t){return n.i(o.k)(t)||n.i(o.f)(t)},SlicePipe.decorators=[{type:r.Pipe,args:[{name:"slice",pure:!1}]}],SlicePipe.ctorParameters=[],SlicePipe}()},function(t,e,n){"use strict";var r=n(0),i=n(12),o=n(54);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function UpperCasePipe(){}return UpperCasePipe.prototype.transform=function(t){if(n.i(i.c)(t))return t;if(!n.i(i.k)(t))throw new o.a(UpperCasePipe,t);return t.toUpperCase()},UpperCasePipe.decorators=[{type:r.Pipe,args:[{name:"uppercase"}]}],UpperCasePipe.ctorParameters=[],UpperCasePipe}()},function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n.d(e,"c",function(){return s}),n.d(e,"f",function(){return c}),n.d(e,"e",function(){return l}),n.d(e,"h",function(){return u}),n.d(e,"b",function(){return p}),n.d(e,"g",function(){return d}),n.d(e,"j",function(){return f}),n.d(e,"i",function(){return h}),n.d(e,"d",function(){return m});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=function(){function AnimationAst(){this.startTime=0,this.playTime=0}return AnimationAst}(),o=function(t){function AnimationStateAst(){t.apply(this,arguments)}return r(AnimationStateAst,t),AnimationStateAst}(i),a=function(t){function AnimationEntryAst(e,n,r){t.call(this),this.name=e,this.stateDeclarations=n,this.stateTransitions=r}return r(AnimationEntryAst,t),AnimationEntryAst.prototype.visit=function(t,e){return t.visitAnimationEntry(this,e)},AnimationEntryAst}(i),s=function(t){function AnimationStateDeclarationAst(e,n){t.call(this),this.stateName=e,this.styles=n}return r(AnimationStateDeclarationAst,t),AnimationStateDeclarationAst.prototype.visit=function(t,e){return t.visitAnimationStateDeclaration(this,e)},AnimationStateDeclarationAst}(o),c=function(){function AnimationStateTransitionExpression(t,e){this.fromState=t,this.toState=e}return AnimationStateTransitionExpression}(),l=function(t){function AnimationStateTransitionAst(e,n){t.call(this),this.stateChanges=e,this.animation=n}return r(AnimationStateTransitionAst,t),AnimationStateTransitionAst.prototype.visit=function(t,e){return t.visitAnimationStateTransition(this,e)},AnimationStateTransitionAst}(o),u=function(t){function AnimationStepAst(e,n,r,i,o){t.call(this),this.startingStyles=e,this.keyframes=n,this.duration=r,this.delay=i,this.easing=o}return r(AnimationStepAst,t),AnimationStepAst.prototype.visit=function(t,e){return t.visitAnimationStep(this,e)},AnimationStepAst}(i),p=function(t){function AnimationStylesAst(e){t.call(this),this.styles=e}return r(AnimationStylesAst,t),AnimationStylesAst.prototype.visit=function(t,e){return t.visitAnimationStyles(this,e)},AnimationStylesAst}(i),d=function(t){function AnimationKeyframeAst(e,n){t.call(this),this.offset=e,this.styles=n}return r(AnimationKeyframeAst,t),AnimationKeyframeAst.prototype.visit=function(t,e){return t.visitAnimationKeyframe(this,e)},AnimationKeyframeAst}(i),f=function(t){function AnimationWithStepsAst(e){t.call(this),this.steps=e}return r(AnimationWithStepsAst,t),AnimationWithStepsAst}(i),h=function(t){function AnimationGroupAst(e){t.call(this,e)}return r(AnimationGroupAst,t),AnimationGroupAst.prototype.visit=function(t,e){return t.visitAnimationGroup(this,e)},AnimationGroupAst}(f),m=function(t){function AnimationSequenceAst(e){t.call(this,e)}return r(AnimationSequenceAst,t),AnimationSequenceAst.prototype.visit=function(t,e){return t.visitAnimationSequence(this,e)},AnimationSequenceAst}(f)},function(t,e,n){"use strict";function _compareToAnimationStateExpr(t,e){var n=a.a(s.V);switch(e){case s.V:return t.equals(n);case s.S:return a.a(!0);default:return t.equals(a.a(e))}}function _isEndStateAnimateStep(t){if(t instanceof l.h&&t.duration>0&&2==t.keyframes.length){var e=_getStylesArray(t.keyframes[0])[0],n=_getStylesArray(t.keyframes[1])[0];return r.b.isEmpty(e)&&r.b.isEmpty(n)}return!1}function _getStylesArray(t){return t.styles.styles}function _validateAnimationProperties(t,e){var n=new M(t);return c.c(n,e),new O(n.outputs,n.errors)}var r=n(6),i=n(3),o=n(16),a=n(7),s=n(17),c=n(42),l=n(265),u=n(443);n.d(e,"a",function(){return h});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var p=new Map,d=function(){function CompiledAnimationTriggerResult(t,e,n,r,i){this.name=t,this.statesMapStatement=e,this.statesVariableName=n,this.fnStatement=r,this.fnVariable=i}return CompiledAnimationTriggerResult}(),f=function(){function CompiledComponentAnimationResult(t,e){this.outputs=t,this.triggers=e}return CompiledComponentAnimationResult}(),h=function(){function AnimationCompiler(){}return AnimationCompiler.prototype.compileComponent=function(t,e){var r=[],i=[],o={},a=t.type.name;t.template.animations.forEach(function(t){var e=n.i(u.a)(t),s=t.name;if(e.errors.length>0){var c='Unable to parse the animation sequence for "'+s+'" due to the following errors:';e.errors.forEach(function(t){c+="\n-- "+t.msg}),i.push(c)}if(o[s])i.push('The animation trigger "'+s+'" has already been registered on "'+a+'"');else{var l=a+"_"+t.name,p=new P(s,l),d=p.build(e.ast);r.push(d),o[t.name]=d}});var s=_validateAnimationProperties(r,e);if(s.errors.forEach(function(t){i.push(t.msg)}),i.length>0){var c="Animation parsing for "+t.type.name+" has failed due to the following errors:";throw i.forEach(function(t){return c+="\n- "+t}),new Error(c)}return p.set(t,r),new f(s.outputs,r)},AnimationCompiler}(),m=a.e("element"),v=a.e("defaultStateStyles"),g=a.e("view"),b=g.prop("renderer"),y=a.e("currentState"),_=a.e("nextState"),w=a.e("player"),x=a.e("totalTime"),C=a.e("startStateStyles"),S=a.e("endStateStyles"),k=a.e("collectedStyles"),E=a.f([]),P=function(){function _AnimationBuilder(t,e){this.animationName=t,this._fnVarName=e+"_factory",this._statesMapVarName=e+"_states",this._statesMapVar=a.e(this._statesMapVarName)}return _AnimationBuilder.prototype.visitAnimationStyles=function(t,e){var i=[];return e.isExpectingFirstStyleStep&&(i.push(C),e.isExpectingFirstStyleStep=!1),t.styles.forEach(function(t){i.push(a.f(r.b.keys(t).map(function(e){return[e,a.a(t[e])]})))}),a.b(n.i(o.d)(o.b.AnimationStyles)).instantiate([a.b(n.i(o.d)(o.b.collectAndResolveStyles)).callFn([k,a.g(i)])])},_AnimationBuilder.prototype.visitAnimationKeyframe=function(t,e){return a.b(n.i(o.d)(o.b.AnimationKeyframe)).instantiate([a.a(t.offset),t.styles.visit(this,e)])},_AnimationBuilder.prototype.visitAnimationStep=function(t,e){var n=this;if(e.endStateAnimateStep===t)return this._visitEndStateAnimation(t,e);var r=t.startingStyles.visit(this,e),i=t.keyframes.map(function(t){return t.visit(n,e)});return this._callAnimateMethod(t,r,a.g(i),e)},_AnimationBuilder.prototype._visitEndStateAnimation=function(t,e){var r=this,i=t.startingStyles.visit(this,e),s=t.keyframes.map(function(t){return t.visit(r,e)}),c=a.b(n.i(o.d)(o.b.balanceAnimationKeyframes)).callFn([k,S,a.g(s)]);return this._callAnimateMethod(t,i,c,e)},_AnimationBuilder.prototype._callAnimateMethod=function(t,e,n,r){return r.totalTransitionTime+=t.duration+t.delay,b.callMethod("animate",[m,e,n,a.a(t.duration),a.a(t.delay),a.a(t.easing)])},_AnimationBuilder.prototype.visitAnimationSequence=function(t,e){var r=this,i=t.steps.map(function(t){return t.visit(r,e)});return a.b(n.i(o.d)(o.b.AnimationSequencePlayer)).instantiate([a.g(i)])},_AnimationBuilder.prototype.visitAnimationGroup=function(t,e){var r=this,i=t.steps.map(function(t){return t.visit(r,e)});return a.b(n.i(o.d)(o.b.AnimationGroupPlayer)).instantiate([a.g(i)])},_AnimationBuilder.prototype.visitAnimationStateDeclaration=function(t,e){var n={};_getStylesArray(t).forEach(function(t){r.b.forEach(t,function(t,e){n[e]=t})}),e.stateMap.registerState(t.stateName,n)},_AnimationBuilder.prototype.visitAnimationStateTransition=function(t,e){var n=t.animation.steps,r=n[n.length-1];_isEndStateAnimateStep(r)&&(e.endStateAnimateStep=r),e.totalTransitionTime=0,e.isExpectingFirstStyleStep=!0;var i=[];t.stateChanges.forEach(function(t){i.push(_compareToAnimationStateExpr(y,t.fromState).and(_compareToAnimationStateExpr(_,t.toState))),t.fromState!=s.S&&e.stateMap.registerState(t.fromState),t.toState!=s.S&&e.stateMap.registerState(t.toState)});var o=t.animation.visit(this,e),c=i.reduce(function(t,e){return t.or(e)}),l=w.equals(a.h).and(c),u=w.set(o).toStmt(),p=x.set(a.a(e.totalTransitionTime)).toStmt();return new a.i(l,[u,p])},_AnimationBuilder.prototype.visitAnimationEntry=function(t,e){var r=this;t.stateDeclarations.forEach(function(t){return t.visit(r,e)}),e.stateMap.registerState(s.U,{});var i=[];i.push(g.callMethod("cancelActiveAnimation",[m,a.a(this.animationName),_.equals(a.a(s.V))]).toStmt()),i.push(k.set(E).toDeclStmt()),i.push(w.set(a.h).toDeclStmt()),i.push(x.set(a.a(0)).toDeclStmt()),i.push(v.set(this._statesMapVar.key(a.a(s.U))).toDeclStmt()),i.push(C.set(this._statesMapVar.key(y)).toDeclStmt()),i.push(new a.i(C.equals(a.h),[C.set(v).toStmt()])),i.push(S.set(this._statesMapVar.key(_)).toDeclStmt()),i.push(new a.i(S.equals(a.h),[S.set(v).toStmt()]));var c=a.b(n.i(o.d)(o.b.renderStyles));return i.push(c.callFn([m,b,a.b(n.i(o.d)(o.b.clearStyles)).callFn([C])]).toStmt()),t.stateTransitions.forEach(function(t){return i.push(t.visit(r,e))}),i.push(new a.i(w.equals(a.h),[w.set(a.b(n.i(o.d)(o.b.NoOpAnimationPlayer)).instantiate([])).toStmt()])),i.push(w.callMethod("onDone",[a.j([],[c.callFn([m,b,a.b(n.i(o.d)(o.b.prepareFinalAnimationStyles)).callFn([C,S])]).toStmt()])]).toStmt()),i.push(g.callMethod("queueAnimation",[m,a.a(this.animationName),w,x,y,_]).toStmt()),a.j([new a.k(g.name,a.c(n.i(o.d)(o.b.AppView),[a.l])),new a.k(m.name,a.l),new a.k(y.name,a.l),new a.k(_.name,a.l)],i)},_AnimationBuilder.prototype.build=function(t){var e=new A,o=t.visit(this,e).toDeclStmt(this._fnVarName),s=a.e(this._fnVarName),c=[];r.b.forEach(e.stateMap.states,function(t,e){var o=E;if(n.i(i.a)(t)){var s=[];r.b.forEach(t,function(t,e){s.push([e,a.a(t)])}),o=a.f(s)}c.push([e,o])});var l=this._statesMapVar.set(a.f(c)).toDeclStmt();return new d(this.animationName,l,this._statesMapVarName,o,s)},_AnimationBuilder}(),A=function(){function _AnimationBuilderContext(){this.stateMap=new T,this.endStateAnimateStep=null,this.isExpectingFirstStyleStep=!1,this.totalTransitionTime=0}return _AnimationBuilderContext}(),T=function(){function _AnimationBuilderStateMap(){this._states={}}return Object.defineProperty(_AnimationBuilderStateMap.prototype,"states",{get:function(){return this._states},enumerable:!0,configurable:!0}),_AnimationBuilderStateMap.prototype.registerState=function(t,e){void 0===e&&(e=null);var r=this._states[t];n.i(i.c)(r)&&(this._states[t]=e)},_AnimationBuilderStateMap}(),O=function(){function AnimationPropertyValidationOutput(t,e){this.outputs=t,this.errors=e}return AnimationPropertyValidationOutput}(),M=function(){function _AnimationTemplatePropertyVisitor(t){this.errors=[],this.outputs=[],this._animationRegistry=this._buildCompileAnimationLookup(t)}return _AnimationTemplatePropertyVisitor.prototype._buildCompileAnimationLookup=function(t){var e={};return t.forEach(function(t){e[t.name]=!0}),e},_AnimationTemplatePropertyVisitor.prototype._validateAnimationInputOutputPairs=function(t,e,r,o){var a=this,s={};t.forEach(function(t){if(t.type==c.l.Animation){var e=t.name;n.i(i.a)(r[e])?s[e]=!0:a.errors.push(new u.b("Couldn't find an animation entry for "+e))}}),e.forEach(function(t){if("@"==t.name[0]){var e=n.i(u.c)(t.name.substr(1),a.errors),i=e.name,c=e.phase;r[i]?s[i]?a.outputs.push(e):a.errors.push(new u.b("Unable to listen on (@"+i+"."+c+") because the animation trigger [@"+i+"] isn't being used on the same element")):a.errors.push(new u.b("Couldn't find the corresponding "+(o?"host-level ":"")+"animation trigger definition for (@"+i+")"))}})},_AnimationTemplatePropertyVisitor.prototype.visitElement=function(t,e){this._validateAnimationInputOutputPairs(t.inputs,t.outputs,this._animationRegistry,!1);var n=t.directives.find(function(t){return t.directive.isComponent});if(n){var r=p.get(n.directive);r&&this._validateAnimationInputOutputPairs(n.hostProperties,n.hostEvents,this._buildCompileAnimationLookup(r),!0)}c.c(this,t.children)},_AnimationTemplatePropertyVisitor.prototype.visitEmbeddedTemplate=function(t,e){c.c(this,t.children)},_AnimationTemplatePropertyVisitor.prototype.visitEvent=function(t,e){},_AnimationTemplatePropertyVisitor.prototype.visitBoundText=function(t,e){},_AnimationTemplatePropertyVisitor.prototype.visitText=function(t,e){},_AnimationTemplatePropertyVisitor.prototype.visitNgContent=function(t,e){},_AnimationTemplatePropertyVisitor.prototype.visitAttr=function(t,e){},_AnimationTemplatePropertyVisitor.prototype.visitDirective=function(t,e){},_AnimationTemplatePropertyVisitor.prototype.visitReference=function(t,e){},_AnimationTemplatePropertyVisitor.prototype.visitVariable=function(t,e){},_AnimationTemplatePropertyVisitor.prototype.visitDirectiveProperty=function(t,e){},_AnimationTemplatePropertyVisitor.prototype.visitElementProperty=function(t,e){},_AnimationTemplatePropertyVisitor}()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function assertArrayOfStrings(t,e){if(n.i(r.isDevMode)()&&!n.i(i.c)(e)){if(!n.i(i.d)(e))throw new Error("Expected '"+t+"' to be an array of strings.");for(var o=0;o<e.length;o+=1)if(!n.i(i.h)(e[o]))throw new Error("Expected '"+t+"' to be an array of strings.")}}function assertInterpolationSymbols(t,e){if(n.i(i.a)(e)&&(!n.i(i.d)(e)||2!=e.length))throw new Error("Expected '"+t+"' to be an array, [start, end].");if(n.i(r.isDevMode)()&&!n.i(i.c)(e)){var a=e[0],s=e[1];o.forEach(function(t){if(t.test(a)||t.test(s))throw new Error("['"+a+"', '"+s+"'] contains unusable interpolation symbol.")})}}var r=n(0),i=n(3);e.b=assertArrayOfStrings,e.a=assertInterpolationSymbols;var o=[/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//]},function(t,e,n){"use strict";function extractMessages(t,e,n,r){var i=new h(n,r);return i.extract(t,e)}function mergeTranslations(t,e,n,r,i){var o=new h(r,i);return o.merge(t,e,n)}function _isOpeningComment(t){return t instanceof r.a&&t.value&&t.value.startsWith("i18n")}function _isClosingComment(t){return t instanceof r.a&&t.value&&"/i18n"===t.value}function _getI18nAttr(t){return t.attrs.find(function(t){return t.name===u})||null}function _splitMeaningAndDesc(t){if(!t)return["",""];var e=t.indexOf("|");return e==-1?["",t]:[t.slice(0,e),t.slice(e+1)]}var r=n(55),i=n(66),o=n(151),a=n(269),s=n(447),c=n(152);e.a=extractMessages,e.b=mergeTranslations;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var l,u="i18n",p="i18n-",d=/^i18n:?/,f=function(){function ExtractionResult(t,e){this.messages=t,this.errors=e}return ExtractionResult}();!function(t){t[t.Extract=0]="Extract",t[t.Merge=1]="Merge"}(l||(l={}));var h=function(){function _Visitor(t,e){this._implicitTags=t,this._implicitAttrs=e}return _Visitor.prototype.extract=function(t,e){var n=this;return this._init(l.Extract,e),t.forEach(function(t){return t.visit(n,null)}),this._inI18nBlock&&this._reportError(t[t.length-1],"Unclosed block"),new f(this._messages,this._errors)},_Visitor.prototype.merge=function(t,e,n){this._init(l.Merge,n),this._translations=e;var o=new r.e("wrapper",[],t,null,null,null),a=o.visit(this,null);return this._inI18nBlock&&this._reportError(t[t.length-1],"Unclosed block"),new i.a(a.children,this._errors)},_Visitor.prototype.visitExpansionCase=function(t,e){var n=r.g(this,t.expression,e);if(this._mode===l.Merge)return new r.c(t.value,n,t.sourceSpan,t.valueSourceSpan,t.expSourceSpan)},_Visitor.prototype.visitExpansion=function(t,e){this._mayBeAddBlockChildren(t);var n=this._inIcu;this._inIcu||(this._isInTranslatableSection&&this._addMessage([t]),this._inIcu=!0);var i=r.g(this,t.cases,e);return this._mode===l.Merge&&(t=new r.b(t.switchValue,t.type,i,t.sourceSpan,t.switchValueSourceSpan)),this._inIcu=n,t},_Visitor.prototype.visitComment=function(t,e){var n=_isOpeningComment(t);if(n&&this._isInTranslatableSection)return void this._reportError(t,"Could not start a block inside a translatable section");var i=_isClosingComment(t);if(i&&!this._inI18nBlock)return void this._reportError(t,"Trying to close an unopened block");if(!this._inI18nNode&&!this._inIcu)if(this._inI18nBlock){if(i){if(this._depth==this._blockStartDepth){this._closeTranslatableSection(t,this._blockChildren),this._inI18nBlock=!1;var o=this._addMessage(this._blockChildren,this._blockMeaningAndDesc),a=this._translateMessage(t,o);return r.g(this,a)}return void this._reportError(t,"I18N blocks should not cross element boundaries")}}else n&&(this._inI18nBlock=!0,this._blockStartDepth=this._depth,this._blockChildren=[],this._blockMeaningAndDesc=t.value.replace(d,"").trim(),this._openTranslatableSection(t))},_Visitor.prototype.visitText=function(t,e){return this._isInTranslatableSection&&this._mayBeAddBlockChildren(t),t},_Visitor.prototype.visitElement=function(t,e){var n=this;this._mayBeAddBlockChildren(t),this._depth++;var i,o=this._inI18nNode,a=this._inImplicitNode,s=_getI18nAttr(t),c=this._implicitTags.some(function(e){return t.name===e})&&!this._inIcu&&!this._isInTranslatableSection,u=!a&&c;if(this._inImplicitNode=this._inImplicitNode||c,this._isInTranslatableSection||this._inIcu)(s||u)&&this._reportError(t,"Could not mark an element as translatable inside a translatable section"),this._mode==l.Extract&&r.g(this,t.children),this._mode==l.Merge&&(i=[],t.children.forEach(function(t){var r=t.visit(n,e);r&&!n._isInTranslatableSection&&(i=i.concat(r))}));else{if(s){this._inI18nNode=!0;var p=this._addMessage(t.children,s.value);i=this._translateMessage(t,p)}else if(u){this._inI18nNode=!0;var p=this._addMessage(t.children);i=this._translateMessage(t,p)}if(this._mode==l.Extract){var d=s||u;d&&this._openTranslatableSection(t),r.g(this,t.children),d&&this._closeTranslatableSection(t,t.children)}this._mode!==l.Merge||s||u||(i=[],t.children.forEach(function(t){var r=t.visit(n,e);r&&!n._isInTranslatableSection&&(i=i.concat(r))}))}if(this._visitAttributesOf(t),this._depth--,this._inI18nNode=o,this._inImplicitNode=a,this._mode===l.Merge){var f=this._translateAttributes(t);return new r.e(t.name,f,i,t.sourceSpan,t.startSourceSpan,t.endSourceSpan)}},_Visitor.prototype.visitAttribute=function(t,e){throw new Error("unreachable code")},_Visitor.prototype._init=function(t,e){this._mode=t,this._inI18nBlock=!1,this._inI18nNode=!1,this._depth=0,this._inIcu=!1,this._msgCountAtSectionStart=void 0,this._errors=[],this._messages=[],this._inImplicitNode=!1,this._createI18nMessage=n.i(s.a)(e)},_Visitor.prototype._visitAttributesOf=function(t){var e=this,n={},r=this._implicitAttrs[t.name]||[];t.attrs.filter(function(t){return t.name.startsWith(p)}).forEach(function(t){return n[t.name.slice(p.length)]=t.value}),t.attrs.forEach(function(t){t.name in n?e._addMessage([t],n[t.name]):r.some(function(e){return t.name===e})&&e._addMessage([t])})},_Visitor.prototype._addMessage=function(t,e){if(!(0==t.length||1==t.length&&t[0]instanceof r.f&&!t[0].value)){var n=_splitMeaningAndDesc(e),i=n[0],o=n[1],a=this._createI18nMessage(t,i,o);return this._messages.push(a),a}},_Visitor.prototype._translateMessage=function(t,e){if(e&&this._mode===l.Merge){var r=n.i(o.a)(e),i=this._translations.get(r);if(i)return i;this._reportError(t,'Translation unavailable for message id="'+r+'"')}return[]},_Visitor.prototype._translateAttributes=function(t){var e=this,i=t.attrs,a={};i.forEach(function(t){t.name.startsWith(p)&&(a[t.name.slice(p.length)]=_splitMeaningAndDesc(t.value)[0])});var s=[];return i.forEach(function(i){if(i.name!==u&&!i.name.startsWith(p))if(i.value&&""!=i.value&&a.hasOwnProperty(i.name)){var c=a[i.name],l=e._createI18nMessage([i],c,""),d=n.i(o.a)(l),f=e._translations.get(d);if(f)if(f[0]instanceof r.d){var h=f[0].value;s.push(new r.f(i.name,h,i.sourceSpan))}else e._reportError(t,'Unexpected translation for attribute "'+i.name+'" (id="'+d+'")');else e._reportError(t,'Translation unavailable for attribute "'+i.name+'" (id="'+d+'")')}else s.push(i)}),s},_Visitor.prototype._mayBeAddBlockChildren=function(t){this._inI18nBlock&&!this._inIcu&&this._depth==this._blockStartDepth&&this._blockChildren.push(t)},_Visitor.prototype._openTranslatableSection=function(t){this._isInTranslatableSection?this._reportError(t,"Unexpected section start"):this._msgCountAtSectionStart=this._messages.length},Object.defineProperty(_Visitor.prototype,"_isInTranslatableSection",{get:function(){return void 0!==this._msgCountAtSectionStart},enumerable:!0,configurable:!0}),_Visitor.prototype._closeTranslatableSection=function(t,e){if(!this._isInTranslatableSection)return void this._reportError(t,"Unexpected section end");var n=this._msgCountAtSectionStart,i=e.reduce(function(t,e){return t+(e instanceof r.a?0:1)},0);if(1==i)for(var o=this._messages.length-1;o>=n;o--){var s=this._messages[o].nodes;if(!(1==s.length&&s[0]instanceof a.f)){this._messages.splice(o,1);break}}this._msgCountAtSectionStart=void 0},_Visitor.prototype._reportError=function(t,e){this._errors.push(new c.a(t.sourceSpan,e))},_Visitor}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r}),n.d(e,"f",function(){return i}),n.d(e,"d",function(){return o}),n.d(e,"c",function(){return a}),n.d(e,"b",function(){return s}),n.d(e,"g",function(){return c}),n.d(e,"e",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function Message(t,e,n,r,i){this.nodes=t,this.placeholders=e,this.placeholderToMsgIds=n,this.meaning=r,this.description=i}return Message}(),i=function(){function Text(t,e){this.value=t,this.sourceSpan=e}return Text.prototype.visit=function(t,e){return t.visitText(this,e)},Text}(),o=function(){function Container(t,e){this.children=t,this.sourceSpan=e}return Container.prototype.visit=function(t,e){return t.visitContainer(this,e)},Container}(),a=function(){function Icu(t,e,n,r){this.expression=t,this.type=e,this.cases=n,this.sourceSpan=r}return Icu.prototype.visit=function(t,e){return t.visitIcu(this,e)},Icu}(),s=function(){function TagPlaceholder(t,e,n,r,i,o,a){this.tag=t,this.attrs=e,this.startName=n,this.closeName=r,this.children=i,this.isVoid=o,this.sourceSpan=a}return TagPlaceholder.prototype.visit=function(t,e){return t.visitTagPlaceholder(this,e)},TagPlaceholder}(),c=function(){function Placeholder(t,e,n){void 0===e&&(e=""),this.value=t,this.name=e,this.sourceSpan=n}return Placeholder.prototype.visit=function(t,e){return t.visitPlaceholder(this,e)},Placeholder}(),l=function(){function IcuPlaceholder(t,e,n){void 0===e&&(e=""),this.value=t,this.name=e,this.sourceSpan=n}return IcuPlaceholder.prototype.visit=function(t,e){return t.visitIcuPlaceholder(this,e)},IcuPlaceholder}()},function(t,e,n){"use strict";var r=n(40),i=n(66),o=n(268),a=n(272),s=n(274),c=n(275),l=n(277),u=n(449);n.d(e,"a",function(){return p});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var p=function(){function I18NHtmlParser(t,e,n){this._htmlParser=t,this._translations=e,this._translationsFormat=n}return I18NHtmlParser.prototype.parse=function(t,e,s,c){void 0===s&&(s=!1),void 0===c&&(c=r.a);var l=this._htmlParser.parse(t,e,s,c);if(!this._translations||""===this._translations)return l;var p=new a.a(this._htmlParser,[],{}),d=p.updateFromTemplate(t,e,c);if(d&&d.length)return new i.a(l.rootNodes,l.errors.concat(d));var f=this._createSerializer(c),h=u.a.load(this._translations,e,p,f);return n.i(o.b)(l.rootNodes,h,c,[],{})},I18NHtmlParser.prototype._createSerializer=function(t){var e=(this._translationsFormat||"xlf").toLowerCase();switch(e){case"xmb":return new c.a;case"xtb":return new l.a(this._htmlParser,t);case"xliff":case"xlf":default:return new s.a(this._htmlParser,t)}},I18NHtmlParser}()},function(t,e,n){"use strict";var r=n(270);n(272),n(274),n(275),n(277);n.o(r,"a")&&n.d(e,"a",function(){return r.a})},function(t,e,n){"use strict";var r=n(151),i=n(268);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function MessageBundle(t,e,n){this._htmlParser=t,this._implicitTags=e,this._implicitAttrs=n,this._messageMap={}}return MessageBundle.prototype.updateFromTemplate=function(t,e,o){var a=this,s=this._htmlParser.parse(t,e,!0,o);if(s.errors.length)return s.errors;var c=n.i(i.a)(s.rootNodes,o,this._implicitTags,this._implicitAttrs);return c.errors.length?c.errors:void c.messages.forEach(function(t){a._messageMap[n.i(r.a)(t)]=t})},MessageBundle.prototype.getMessageMap=function(){return this._messageMap},MessageBundle.prototype.write=function(t){return t.write(this._messageMap)},MessageBundle}()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function extractPlaceholders(t){var e=t.getMessageMap(),n={};return Object.keys(e).forEach(function(t){n[t]=e[t].placeholders}),n}function extractPlaceholderToIds(t){var e=t.getMessageMap(),n={};return Object.keys(e).forEach(function(t){n[t]=e[t].placeholderToMsgIds}),n}e.a=extractPlaceholders,e.b=extractPlaceholderToIds},function(t,e,n){"use strict";var r=n(6),i=n(55),o=n(279),a=n(152),s=n(273),c=n(276);n.d(e,"a",function(){return g});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var l="1.2",u="urn:oasis:names:tc:xliff:document:1.2",p="en",d="x",f="source",h="target",m="trans-unit",v=function(t){return void 0===t&&(t=0),new c.a("\n"+new Array(t).join(" "))},g=function(){function Xliff(t,e){this._htmlParser=t,this._interpolationConfig=e}return Xliff.prototype.write=function(t){var e=new b,n=[];Object.keys(t).forEach(function(r){var i=t[r],o=new c.b(m,{id:r,datatype:"html"});o.children.push(v(8),new c.b(f,{},e.serialize(i.nodes)),v(8),new c.b(h)),i.description&&o.children.push(v(8),new c.b("note",{priority:"1",from:"description"},[new c.a(i.description)])),i.meaning&&o.children.push(v(8),new c.b("note",{priority:"1",from:"meaning"},[new c.a(i.meaning)])),o.children.push(v(6)),n.push(v(6),o)});var r=new c.b("body",{},n.concat([v(4)])),i=new c.b("file",{"source-language":p,datatype:"plaintext",original:"ng2.template"},[v(4),r,v(2)]),o=new c.b("xliff",{version:l,xmlns:u},[v(2),i,v()]);return c.c([new c.d({version:"1.0",encoding:"UTF-8"}),v(),o])},Xliff.prototype.load=function(t,e,n){var r=this,i=(new o.a).parse(t,e);if(i.errors.length)throw new Error("xtb parse errors:\n"+i.errors.join("\n"));var a=(new y).parse(i.rootNodes,n),s=a.messages,c=a.errors;if(c.length)throw new Error("xtb parse errors:\n"+c.join("\n"));var l={},u=[];if(Object.keys(s).forEach(function(t){var n=r._htmlParser.parse(s[t],e,!0,r._interpolationConfig);u.push.apply(u,n.errors),l[t]=n.rootNodes}),u.length)throw new Error("xtb parse errors:\n"+u.join("\n"));return l},Xliff}(),b=function(){function _WriteVisitor(){}return _WriteVisitor.prototype.visitText=function(t,e){return[new c.a(t.value)]},_WriteVisitor.prototype.visitContainer=function(t,e){var n=this,r=[];return t.children.forEach(function(t){return r.push.apply(r,t.visit(n))}),r},_WriteVisitor.prototype.visitIcu=function(t,e){if(this._isInIcu)throw new Error("xliff does not support nested ICU messages");this._isInIcu=!0;var n=[];return this._isInIcu=!1,n},_WriteVisitor.prototype.visitTagPlaceholder=function(t,e){var n=new c.b(d,{id:t.startName,ctype:t.tag});if(t.isVoid)return[n];var r=new c.b(d,{id:t.closeName,ctype:t.tag});return[n].concat(this.serialize(t.children),[r])},_WriteVisitor.prototype.visitPlaceholder=function(t,e){return[new c.b(d,{id:t.name})]},_WriteVisitor.prototype.visitIcuPlaceholder=function(t,e){return[new c.b(d,{id:t.name})]},_WriteVisitor.prototype.serialize=function(t){var e=this;return this._isInIcu=!1,r.a.flatten(t.map(function(t){return t.visit(e)}))},_WriteVisitor}(),y=function(){function _LoadVisitor(){}return _LoadVisitor.prototype.parse=function(t,e){var r=this;this._messageNodes=[],this._translatedMessages={},this._msgId="",this._target=[],this._errors=[],i.g(this,t,null);var o=e.getMessageMap(),a=n.i(s.a)(e),c=n.i(s.b)(e);return this._messageNodes.filter(function(t){return o.hasOwnProperty(t[0])}).sort(function(t,e){return 0==Object.keys(o[t[0]].placeholderToMsgIds).length?-1:0==Object.keys(o[e[0]].placeholderToMsgIds).length?1:0}).forEach(function(t){var e=t[0];r._placeholders=a[e]||{},r._placeholderToIds=c[e]||{},r._translatedMessages[e]=i.g(r,t[1]).join("")}),{messages:this._translatedMessages,errors:this._errors}},_LoadVisitor.prototype.visitElement=function(t,e){switch(t.name){case m:this._target=null;var n=t.attrs.find(function(t){return"id"===t.name});n?this._msgId=n.value:this._addError(t,"<"+m+'> misses the "id" attribute'),i.g(this,t.children,null),null!==this._msgId&&this._messageNodes.push([this._msgId,this._target]);break;case f:break;case h:this._target=t.children;break;case d:var r=t.attrs.find(function(t){return"id"===t.name});if(r){var o=r.value;if(this._placeholders.hasOwnProperty(o))return this._placeholders[o];if(this._placeholderToIds.hasOwnProperty(o)&&this._translatedMessages.hasOwnProperty(this._placeholderToIds[o]))return this._translatedMessages[this._placeholderToIds[o]];this._addError(t,'The placeholder "'+o+'" does not exists in the source message')}else this._addError(t,"<"+d+'> misses the "id" attribute');break;default:i.g(this,t.children,null)}},_LoadVisitor.prototype.visitAttribute=function(t,e){throw new Error("unreachable code")},_LoadVisitor.prototype.visitText=function(t,e){return t.value},_LoadVisitor.prototype.visitComment=function(t,e){return""},_LoadVisitor.prototype.visitExpansion=function(t,e){throw new Error("unreachable code")},_LoadVisitor.prototype.visitExpansionCase=function(t,e){throw new Error("unreachable code")},_LoadVisitor.prototype._addError=function(t,e){this._errors.push(new a.a(t.sourceSpan,e))},_LoadVisitor}()},function(t,e,n){"use strict";var r=n(6),i=n(276);n.d(e,"a",function(){return u});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o="messagebundle",a="msg",s="ph",c="ex",l='<!ELEMENT messagebundle (msg)*>\n<!ATTLIST messagebundle class CDATA #IMPLIED>\n\n<!ELEMENT msg (#PCDATA|ph|source)*>\n<!ATTLIST msg id CDATA #IMPLIED>\n<!ATTLIST msg seq CDATA #IMPLIED>\n<!ATTLIST msg name CDATA #IMPLIED>\n<!ATTLIST msg desc CDATA #IMPLIED>\n<!ATTLIST msg meaning CDATA #IMPLIED>\n<!ATTLIST msg obsolete (obsolete) #IMPLIED>\n<!ATTLIST msg xml:space (default|preserve) "default">\n<!ATTLIST msg is_hidden CDATA #IMPLIED>\n\n<!ELEMENT source (#PCDATA)>\n\n<!ELEMENT ph (#PCDATA|ex)*>\n<!ATTLIST ph name CDATA #REQUIRED>\n\n<!ELEMENT ex (#PCDATA)>',u=function(){function Xmb(){}return Xmb.prototype.write=function(t){var e=new p,n=new i.b(o);return n.children.push(new i.a("\n")),Object.keys(t).forEach(function(r){var o=t[r],s={id:r};o.description&&(s.desc=o.description),o.meaning&&(s.meaning=o.meaning),n.children.push(new i.a("  "),new i.b(a,s,e.serialize(o.nodes)),new i.a("\n"))}),i.c([new i.d({version:"1.0",encoding:"UTF-8"}),new i.a("\n"),new i.e(o,l),new i.a("\n"),n])},Xmb.prototype.load=function(t,e,n){throw new Error("Unsupported")},Xmb}(),p=function(){function _Visitor(){}return _Visitor.prototype.visitText=function(t,e){return[new i.a(t.value)]},_Visitor.prototype.visitContainer=function(t,e){var n=this,r=[];return t.children.forEach(function(t){return r.push.apply(r,t.visit(n))}),r},_Visitor.prototype.visitIcu=function(t,e){var n=this,r=[new i.a("{"+t.expression+", "+t.type+", ")];return Object.keys(t.cases).forEach(function(e){r.push.apply(r,[new i.a(e+" {")].concat(t.cases[e].visit(n),[new i.a("} ")]))}),r.push(new i.a("}")),r},_Visitor.prototype.visitTagPlaceholder=function(t,e){var n=new i.b(c,{},[new i.a("<"+t.tag+">")]),r=new i.b(s,{name:t.startName},[n]);if(t.isVoid)return[r];var o=new i.b(c,{},[new i.a("</"+t.tag+">")]),a=new i.b(s,{name:t.closeName},[o]);return[r].concat(this.serialize(t.children),[a])},_Visitor.prototype.visitPlaceholder=function(t,e){return[new i.b(s,{name:t.name})]},_Visitor.prototype.visitIcuPlaceholder=function(t,e){return[new i.b(s,{name:t.name})]},_Visitor.prototype.serialize=function(t){var e=this;return r.a.flatten(t.map(function(t){return t.visit(e)}))},_Visitor}()},function(t,e,n){"use strict";function serialize(t){return t.map(function(t){return t.visit(i)}).join("")}function _escapeXml(t){return l.reduce(function(t,e){return t.replace(e[0],e[1])},t)}e.c=serialize,n.d(e,"d",function(){return o}),n.d(e,"e",function(){return a}),n.d(e,"b",function(){return s}),n.d(e,"a",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function _Visitor(){}return _Visitor.prototype.visitTag=function(t){var e=this,n=this._serializeAttributes(t.attrs);if(0==t.children.length)return"<"+t.name+n+"/>";var r=t.children.map(function(t){return t.visit(e)});return"<"+t.name+n+">"+r.join("")+"</"+t.name+">"},_Visitor.prototype.visitText=function(t){return t.value},_Visitor.prototype.visitDeclaration=function(t){return"<?xml"+this._serializeAttributes(t.attrs)+" ?>"},_Visitor.prototype._serializeAttributes=function(t){var e=Object.keys(t).map(function(e){return e+'="'+t[e]+'"'}).join(" ");return e.length>0?" "+e:""},_Visitor.prototype.visitDoctype=function(t){return"<!DOCTYPE "+t.rootTag+" [\n"+t.dtd+"\n]>"},_Visitor}(),i=new r,o=function(){function Declaration(t){var e=this;this.attrs={},Object.keys(t).forEach(function(n){e.attrs[n]=_escapeXml(t[n])})}return Declaration.prototype.visit=function(t){return t.visitDeclaration(this)},Declaration}(),a=function(){function Doctype(t,e){this.rootTag=t,this.dtd=e}return Doctype.prototype.visit=function(t){return t.visitDoctype(this)},Doctype}(),s=function(){function Tag(t,e,n){var r=this;void 0===e&&(e={}),void 0===n&&(n=[]),this.name=t,this.children=n,this.attrs={},Object.keys(e).forEach(function(t){r.attrs[t]=_escapeXml(e[t])})}return Tag.prototype.visit=function(t){return t.visitTag(this)},Tag}(),c=function(){function Text(t){this.value=_escapeXml(t)}return Text.prototype.visit=function(t){return t.visitText(this)},Text}(),l=[[/&/g,"&amp;"],[/"/g,"&quot;"],[/'/g,"&apos;"],[/</g,"&lt;"],[/>/g,"&gt;"]]},function(t,e,n){"use strict";var r=n(55),i=n(279),o=n(152),a=n(273);n.d(e,"a",function(){return u});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s="translationbundle",c="translation",l="ph",u=function(){function Xtb(t,e){this._htmlParser=t,this._interpolationConfig=e}return Xtb.prototype.write=function(t){throw new Error("Unsupported")},Xtb.prototype.load=function(t,e,n){var r=this,o=(new i.a).parse(t,e);if(o.errors.length)throw new Error("xtb parse errors:\n"+o.errors.join("\n"));var a=(new p).parse(o.rootNodes,n),s=a.messages,c=a.errors;if(c.length)throw new Error("xtb parse errors:\n"+c.join("\n"));var l={},u=[];if(Object.keys(s).forEach(function(t){var n=r._htmlParser.parse(s[t],e,!0,r._interpolationConfig);u.push.apply(u,n.errors),l[t]=n.rootNodes}),u.length)throw new Error("xtb parse errors:\n"+u.join("\n"));return l},Xtb}(),p=function(){function _Visitor(){}return _Visitor.prototype.parse=function(t,e){var i=this;this._messageNodes=[],this._translatedMessages={},this._bundleDepth=0,this._translationDepth=0,this._errors=[],r.g(this,t,null);var o=e.getMessageMap(),s=n.i(a.a)(e),c=n.i(a.b)(e);return this._messageNodes.filter(function(t){return o.hasOwnProperty(t[0])}).sort(function(t,e){return 0==Object.keys(o[t[0]].placeholderToMsgIds).length?-1:0==Object.keys(o[e[0]].placeholderToMsgIds).length?1:0}).forEach(function(t){var e=t[0];i._placeholders=s[e]||{},i._placeholderToIds=c[e]||{},i._translatedMessages[e]=r.g(i,t[1]).join("")}),{messages:this._translatedMessages,errors:this._errors}},_Visitor.prototype.visitElement=function(t,e){switch(t.name){case s:this._bundleDepth++,this._bundleDepth>1&&this._addError(t,"<"+s+"> elements can not be nested"),r.g(this,t.children,null),this._bundleDepth--;break;case c:this._translationDepth++,this._translationDepth>1&&this._addError(t,"<"+c+"> elements can not be nested");var n=t.attrs.find(function(t){return"id"===t.name});n?this._messageNodes.push([n.value,t.children]):this._addError(t,"<"+c+'> misses the "id" attribute'),this._translationDepth--;break;case l:var i=t.attrs.find(function(t){return"name"===t.name});if(i){var o=i.value;if(this._placeholders.hasOwnProperty(o))return this._placeholders[o];if(this._placeholderToIds.hasOwnProperty(o)&&this._translatedMessages.hasOwnProperty(this._placeholderToIds[o]))return this._translatedMessages[this._placeholderToIds[o]];this._addError(t,'The placeholder "'+o+'" does not exists in the source message')}else this._addError(t,"<"+l+'> misses the "name" attribute');break;default:this._addError(t,"Unexpected tag")}},_Visitor.prototype.visitAttribute=function(t,e){throw new Error("unreachable code")},_Visitor.prototype.visitText=function(t,e){return t.value},_Visitor.prototype.visitComment=function(t,e){return""},_Visitor.prototype.visitExpansion=function(t,e){var n=this;t.cases.map(function(t){return t.visit(n,null)});return"{"+t.switchValue+", "+t.type+", strCases.join(' ')}"},_Visitor.prototype.visitExpansionCase=function(t,e){return t.value+" {"+r.g(this,t.expression,null)+"}"},_Visitor.prototype._addError=function(t,e){this._errors.push(new o.a(t.sourceSpan,e))},_Visitor}()},function(t,e,n){"use strict";function getHtmlTagDefinition(t){return o[t.toLowerCase()]||a}var r=n(67);e.a=getHtmlTagDefinition;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function HtmlTagDefinition(t){var e=this,n=void 0===t?{}:t,i=n.closedByChildren,o=n.requiredParents,a=n.implicitNamespacePrefix,s=n.contentType,c=void 0===s?r.b.PARSABLE_DATA:s,l=n.closedByParent,u=void 0!==l&&l,p=n.isVoid,d=void 0!==p&&p,f=n.ignoreFirstLf,h=void 0!==f&&f;this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,i&&i.length>0&&i.forEach(function(t){return e.closedByChildren[t]=!0}),this.isVoid=d,this.closedByParent=u||d,o&&o.length>0&&(this.requiredParents={},this.parentToAdd=o[0],o.forEach(function(t){return e.requiredParents[t]=!0})),this.implicitNamespacePrefix=a,this.contentType=c,this.ignoreFirstLf=h}return HtmlTagDefinition.prototype.requireExtraParent=function(t){if(!this.requiredParents)return!1;if(!t)return!0;var e=t.toLowerCase();return 1!=this.requiredParents[e]&&"template"!=e},HtmlTagDefinition.prototype.isClosedByChild=function(t){return this.isVoid||t.toLowerCase()in this.closedByChildren},HtmlTagDefinition}(),o={base:new i({isVoid:!0}),meta:new i({isVoid:!0}),area:new i({isVoid:!0}),embed:new i({isVoid:!0}),link:new i({isVoid:!0}),img:new i({isVoid:!0}),input:new i({isVoid:!0}),param:new i({isVoid:!0}),hr:new i({isVoid:!0}),br:new i({isVoid:!0}),source:new i({isVoid:!0}),track:new i({isVoid:!0}),wbr:new i({isVoid:!0}),p:new i({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new i({closedByChildren:["tbody","tfoot"]}),tbody:new i({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new i({closedByChildren:["tbody"],closedByParent:!0}),tr:new i({closedByChildren:["tr"],requiredParents:["tbody","tfoot","thead"],closedByParent:!0}),td:new i({closedByChildren:["td","th"],closedByParent:!0}),th:new i({closedByChildren:["td","th"],closedByParent:!0}),col:new i({requiredParents:["colgroup"],isVoid:!0}),svg:new i({implicitNamespacePrefix:"svg"}),math:new i({implicitNamespacePrefix:"math"}),li:new i({closedByChildren:["li"],closedByParent:!0}),dt:new i({closedByChildren:["dt","dd"]}),dd:new i({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new i({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new i({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new i({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new i({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new i({closedByChildren:["optgroup"],closedByParent:!0}),option:new i({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new i({ignoreFirstLf:!0}),listing:new i({ignoreFirstLf:!0}),style:new i({contentType:r.b.RAW_TEXT}),script:new i({contentType:r.b.RAW_TEXT}),title:new i({contentType:r.b.ESCAPABLE_RAW_TEXT}),textarea:new i({contentType:r.b.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})},a=new i},function(t,e,n){"use strict";var r=n(66),i=n(454);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(t){function XmlParser(){t.call(this,i.a)}return o(XmlParser,t),XmlParser.prototype.parse=function(e,n,r){return void 0===r&&(r=!1),t.prototype.parse.call(this,e,n,r,null)},XmlParser}(r.b)},function(t,e,n){"use strict";function debugOutputAstAsTypeScript(t){var e,a=new l(s),c=i.a.createRoot([]);return e=n.i(r.d)(t)?t:[t],e.forEach(function(t){if(t instanceof o.P)t.visitStatement(a,c);else if(t instanceof o.m)t.visitExpression(a,c);else{if(!(t instanceof o.Q))throw new Error("Don't know how to print debug info for "+t);t.visitType(a,c)}}),c.toSource()}var r=n(3),i=n(156),o=n(7);e.a=debugOutputAstAsTypeScript,n.d(e,"b",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s="asset://debug/lib",c=function(){function TypeScriptEmitter(t){this._importGenerator=t}return TypeScriptEmitter.prototype.emitStatements=function(t,e,n){var r=this,o=new l(t),a=i.a.createRoot(n);o.visitAllStatements(e,a);var s=[];return o.importsWithPrefixes.forEach(function(e,n){s.push("imp"+("ort * as "+e+" from '"+r._importGenerator.getImportPath(t,n)+"';"))}),s.push(a.toSource()),s.join("\n")},TypeScriptEmitter}(),l=function(t){function _TsEmitterVisitor(e){t.call(this,!1),this._moduleUrl=e,this.importsWithPrefixes=new Map}return a(_TsEmitterVisitor,t),_TsEmitterVisitor.prototype.visitType=function(t,e,i){void 0===i&&(i="any"),n.i(r.a)(t)?t.visitType(this,e):e.print(i)},_TsEmitterVisitor.prototype.visitLiteralExpr=function(e,n){t.prototype.visitLiteralExpr.call(this,e,n,"(null as any)")},_TsEmitterVisitor.prototype.visitExternalExpr=function(t,e){return this._visitIdentifier(t.value,t.typeParams,e),null},_TsEmitterVisitor.prototype.visitDeclareVarStmt=function(t,e){return e.isExportedVar(t.name)&&e.print("export "),t.hasModifier(o.u.Final)?e.print("const"):e.print("var"),e.print(" "+t.name+":"),this.visitType(t.type,e),e.print(" = "),t.value.visitExpression(this,e),e.println(";"),null},_TsEmitterVisitor.prototype.visitCastExpr=function(t,e){return e.print("(<"),t.type.visitType(this,e),e.print(">"),t.value.visitExpression(this,e),e.print(")"),null},_TsEmitterVisitor.prototype.visitDeclareClassStmt=function(t,e){var i=this;return e.pushClass(t),e.isExportedVar(t.name)&&e.print("export "),e.print("class "+t.name),n.i(r.a)(t.parent)&&(e.print(" extends "),t.parent.visitExpression(this,e)),e.println(" {"),e.incIndent(),t.fields.forEach(function(t){return i._visitClassField(t,e)}),n.i(r.a)(t.constructorMethod)&&this._visitClassConstructor(t,e),t.getters.forEach(function(t){return i._visitClassGetter(t,e)}),t.methods.forEach(function(t){return i._visitClassMethod(t,e)}),e.decIndent(),e.println("}"),e.popClass(),null},_TsEmitterVisitor.prototype._visitClassField=function(t,e){t.hasModifier(o.u.Private)&&e.print("/*private*/ "),e.print(t.name),e.print(":"),this.visitType(t.type,e),e.println(";")},_TsEmitterVisitor.prototype._visitClassGetter=function(t,e){t.hasModifier(o.u.Private)&&e.print("private "),e.print("get "+t.name+"()"),e.print(":"),this.visitType(t.type,e),e.println(" {"),e.incIndent(),this.visitAllStatements(t.body,e),e.decIndent(),e.println("}")},_TsEmitterVisitor.prototype._visitClassConstructor=function(t,e){e.print("constructor("),this._visitParams(t.constructorMethod.params,e),e.println(") {"),e.incIndent(),this.visitAllStatements(t.constructorMethod.body,e),e.decIndent(),e.println("}")},_TsEmitterVisitor.prototype._visitClassMethod=function(t,e){t.hasModifier(o.u.Private)&&e.print("private "),e.print(t.name+"("),this._visitParams(t.params,e),e.print("):"),this.visitType(t.type,e,"void"),e.println(" {"),e.incIndent(),this.visitAllStatements(t.body,e),e.decIndent(),e.println("}")},_TsEmitterVisitor.prototype.visitFunctionExpr=function(t,e){return e.print("("),this._visitParams(t.params,e),e.print("):"),this.visitType(t.type,e,"void"),e.println(" => {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.print("}"),null},_TsEmitterVisitor.prototype.visitDeclareFunctionStmt=function(t,e){return e.isExportedVar(t.name)&&e.print("export "),e.print("function "+t.name+"("),this._visitParams(t.params,e),e.print("):"),this.visitType(t.type,e,"void"),e.println(" {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.println("}"),null},_TsEmitterVisitor.prototype.visitTryCatchStmt=function(t,e){e.println("try {"),e.incIndent(),this.visitAllStatements(t.bodyStmts,e),e.decIndent(),e.println("} catch ("+i.b.name+") {"),e.incIndent();var n=[i.c.set(i.b.prop("stack")).toDeclStmt(null,[o.u.Final])].concat(t.catchStmts);return this.visitAllStatements(n,e),e.decIndent(),e.println("}"),null},_TsEmitterVisitor.prototype.visitBuiltintType=function(t,e){var n;switch(t.name){case o.R.Bool:n="boolean";break;case o.R.Dynamic:n="any";break;case o.R.Function:n="Function";break;case o.R.Number:n="number";break;case o.R.Int:n="number";break;case o.R.String:n="string";break;default:throw new Error("Unsupported builtin type "+t.name)}return e.print(n),null},_TsEmitterVisitor.prototype.visitExternalType=function(t,e){return this._visitIdentifier(t.value,t.typeParams,e),null},_TsEmitterVisitor.prototype.visitArrayType=function(t,e){return this.visitType(t.of,e),e.print("[]"),null},_TsEmitterVisitor.prototype.visitMapType=function(t,e){return e.print("{[key: string]:"),this.visitType(t.valueType,e),e.print("}"),null},_TsEmitterVisitor.prototype.getBuiltinMethodName=function(t){var e;switch(t){case o.r.ConcatArray:e="concat";break;case o.r.SubscribeObservable:e="subscribe";break;case o.r.Bind:e="bind";break;default:throw new Error("Unknown builtin method: "+t)}return e},_TsEmitterVisitor.prototype._visitParams=function(t,e){var n=this;this.visitAllObjects(function(t){e.print(t.name),e.print(":"),n.visitType(t.type,e)},t,e,",")},_TsEmitterVisitor.prototype._visitIdentifier=function(t,e,i){var o=this;if(n.i(r.c)(t.name))throw new Error("Internal error: unknown identifier "+t);if(n.i(r.a)(t.moduleUrl)&&t.moduleUrl!=this._moduleUrl){var a=this.importsWithPrefixes.get(t.moduleUrl);n.i(r.c)(a)&&(a="import"+this.importsWithPrefixes.size,this.importsWithPrefixes.set(t.moduleUrl,a)),i.print(a+".")}t.reference&&t.reference.members?(i.print(t.reference.name),i.print("."),i.print(t.reference.members.join("."))):i.print(t.name),n.i(r.a)(e)&&e.length>0&&(i.print("<"),this.visitAllObjects(function(t){return t.visitType(o,i)},e,i,","),i.print(">"))},_TsEmitterVisitor}(i.d)},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function convertValueToOutputAst(t,e){return void 0===e&&(e=null),n.i(o.d)(t,new s,e)}var r=n(20),i=n(6),o=n(23),a=n(7);e.a=convertValueToOutputAst;var s=function(){function _ValueOutputAstTransformer(){}return _ValueOutputAstTransformer.prototype.visitArray=function(t,e){var r=this;return a.g(t.map(function(t){return n.i(o.d)(t,r,null)}),e)},_ValueOutputAstTransformer.prototype.visitStringMap=function(t,e){var r=this,s=[];return i.b.forEach(t,function(t,e){s.push([e,n.i(o.d)(t,r,null)])}),a.f(s,e)},_ValueOutputAstTransformer.prototype.visitPrimitive=function(t,e){return a.a(t,e)},_ValueOutputAstTransformer.prototype.visitOther=function(t,e){if(t instanceof r.a)return a.b(t);if(t instanceof a.m)return t;throw new Error("Illegal state: Don't now how to compile value "+t)},_ValueOutputAstTransformer}()},function(t,e,n){"use strict";function _transformProvider(t,e){var n=e.useExisting,i=e.useValue,o=e.deps;return new r.d({token:t.token,useClass:t.useClass,useExisting:n,useFactory:t.useFactory,useValue:i,deps:o,multi:t.multi})}function _transformProviderAst(t,e){var n=e.eager,r=e.providers;return new c.b(t.token,t.multiProvider,t.eager||n,r,t.providerType,t.lifecycleHooks,t.sourceSpan)}function _normalizeProviders(t,e,i,a){return void 0===a&&(a=null),n.i(o.c)(a)&&(a=[]),n.i(o.a)(t)&&t.forEach(function(t){if(n.i(o.d)(t))_normalizeProviders(t,e,i,a);else{var s=void 0;t instanceof r.d?s=t:t instanceof r.e?s=new r.d({token:new r.b({identifier:t}),useClass:t}):i.push(new u("Unknown provider type "+t,e)),n.i(o.a)(s)&&a.push(s)}}),a}function _resolveProvidersFromDirectives(t,e,n){var i=new Map;t.forEach(function(t){var o=new r.d({token:new r.b({identifier:t.type}),useClass:t.type});_resolveProviders([o],t.isComponent?c.a.Component:c.a.Directive,!0,e,n,i)});var o=t.filter(function(t){return t.isComponent}).concat(t.filter(function(t){return!t.isComponent}));return o.forEach(function(t){_resolveProviders(_normalizeProviders(t.providers,e,n),c.a.PublicService,!1,e,n,i),_resolveProviders(_normalizeProviders(t.viewProviders,e,n),c.a.PrivateService,!1,e,n,i)}),i}function _resolveProviders(t,e,a,s,l,p){t.forEach(function(t){var d=p.get(t.token.reference);if(n.i(o.a)(d)&&d.multiProvider!==t.multi&&l.push(new u("Mixing multi and non multi provider is not possible for token "+d.token.name,s)),n.i(o.c)(d)){var f=t.token.identifier&&t.token.identifier instanceof r.e?t.token.identifier.lifecycleHooks:[];d=new c.b(t.token,t.multi,a||f.length>0,[t],e,f,s),p.set(t.token.reference,d)}else t.multi||i.a.clear(d.providers),d.providers.push(t)})}function _getViewQueries(t){var e=new Map;return n.i(o.a)(t.viewQueries)&&t.viewQueries.forEach(function(t){return _addQueryToTokenMap(e,t)}),t.type.diDeps.forEach(function(t){n.i(o.a)(t.viewQuery)&&_addQueryToTokenMap(e,t.viewQuery)}),e}function _getContentQueries(t){var e=new Map;return t.forEach(function(t){n.i(o.a)(t.queries)&&t.queries.forEach(function(t){return _addQueryToTokenMap(e,t)}),t.type.diDeps.forEach(function(t){n.i(o.a)(t.query)&&_addQueryToTokenMap(e,t.query)})}),e}function _addQueryToTokenMap(t,e){e.selectors.forEach(function(r){var i=t.get(r.reference);n.i(o.c)(i)&&(i=[],t.set(r.reference,i)),i.push(e)})}var r=n(20),i=n(6),o=n(3),a=n(16),s=n(41),c=n(42);n.d(e,"a",function(){return p}),n.d(e,"b",function(){return d}),n.d(e,"c",function(){return f});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var l=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},u=function(t){function ProviderError(e,n){t.call(this,n,e)}return l(ProviderError,t),ProviderError}(s.a),p=function(){function ProviderViewContext(t,e){var r=this;this.component=t,this.sourceSpan=e,this.errors=[],this.viewQueries=_getViewQueries(t),this.viewProviders=new Map,_normalizeProviders(t.viewProviders,e,this.errors).forEach(function(t){n.i(o.c)(r.viewProviders.get(t.token.reference))&&r.viewProviders.set(t.token.reference,!0)})}return ProviderViewContext}(),d=function(){function ProviderElementContext(t,e,s,c,l,u,p){var d=this;this._viewContext=t,this._parent=e,this._isViewRoot=s,this._directiveAsts=c,this._sourceSpan=p,this._transformedProviders=new Map,this._seenProviders=new Map,this._hasViewContainer=!1,this._attrs={},l.forEach(function(t){return d._attrs[t.name]=t.value});var f=c.map(function(t){return t.directive});this._allProviders=_resolveProvidersFromDirectives(f,p,t.errors),this._contentQueries=_getContentQueries(f);var h=new Map;i.c.values(this._allProviders).forEach(function(t){d._addQueryReadsTo(t.token,h)}),u.forEach(function(t){d._addQueryReadsTo(new r.b({value:t.name}),h)}),n.i(o.a)(h.get(n.i(a.a)(a.b.ViewContainerRef).reference))&&(this._hasViewContainer=!0),i.c.values(this._allProviders).forEach(function(t){var e=t.eager||n.i(o.a)(h.get(t.token.reference));e&&d._getOrCreateLocalProvider(t.providerType,t.token,!0)})}return ProviderElementContext.prototype.afterElement=function(){var t=this;i.c.values(this._allProviders).forEach(function(e){t._getOrCreateLocalProvider(e.providerType,e.token,!1)})},Object.defineProperty(ProviderElementContext.prototype,"transformProviders",{get:function(){return i.c.values(this._transformedProviders)},enumerable:!0,configurable:!0}),Object.defineProperty(ProviderElementContext.prototype,"transformedDirectiveAsts",{get:function(){var t=this.transformProviders.map(function(t){return t.token.identifier}),e=i.a.clone(this._directiveAsts);return i.a.sort(e,function(e,n){return t.indexOf(e.directive.type)-t.indexOf(n.directive.type)}),e},enumerable:!0,configurable:!0}),Object.defineProperty(ProviderElementContext.prototype,"transformedHasViewContainer",{get:function(){return this._hasViewContainer},enumerable:!0,configurable:!0}),ProviderElementContext.prototype._addQueryReadsTo=function(t,e){this._getQueriesFor(t).forEach(function(r){var i=n.i(o.a)(r.read)?r.read:t;n.i(o.c)(e.get(i.reference))&&e.set(i.reference,!0)})},ProviderElementContext.prototype._getQueriesFor=function(t){for(var e,r=[],a=this,s=0;null!==a;)e=a._contentQueries.get(t.reference),n.i(o.a)(e)&&i.a.addAll(r,e.filter(function(t){return t.descendants||s<=1})),a._directiveAsts.length>0&&s++,a=a._parent;return e=this._viewContext.viewQueries.get(t.reference),n.i(o.a)(e)&&i.a.addAll(r,e),r},ProviderElementContext.prototype._getOrCreateLocalProvider=function(t,e,i){var a=this,s=this._allProviders.get(e.reference);if(n.i(o.c)(s)||(t===c.a.Directive||t===c.a.PublicService)&&s.providerType===c.a.PrivateService||(t===c.a.PrivateService||t===c.a.PublicService)&&s.providerType===c.a.Builtin)return null;var l=this._transformedProviders.get(e.reference);if(n.i(o.a)(l))return l;if(n.i(o.a)(this._seenProviders.get(e.reference)))return this._viewContext.errors.push(new u("Cannot instantiate cyclic dependency! "+e.name,this._sourceSpan)),null;this._seenProviders.set(e.reference,!0);var p=s.providers.map(function(t){var e,c=t.useValue,l=t.useExisting;if(n.i(o.a)(t.useExisting)){var u=a._getDependency(s.providerType,new r.c({token:t.useExisting}),i);n.i(o.a)(u.token)?l=u.token:(l=null,c=u.value)}else if(n.i(o.a)(t.useFactory)){var p=n.i(o.a)(t.deps)?t.deps:t.useFactory.diDeps;e=p.map(function(t){return a._getDependency(s.providerType,t,i)})}else if(n.i(o.a)(t.useClass)){var p=n.i(o.a)(t.deps)?t.deps:t.useClass.diDeps;e=p.map(function(t){return a._getDependency(s.providerType,t,i)})}return _transformProvider(t,{useExisting:l,useValue:c,deps:e})});return l=_transformProviderAst(s,{eager:i,providers:p}),this._transformedProviders.set(e.reference,l),l},ProviderElementContext.prototype._getLocalDependency=function(t,e,i){if(void 0===i&&(i=null),e.isAttribute){var s=this._attrs[e.token.value];return new r.c({isValue:!0,value:n.i(o.l)(s)})}if(n.i(o.a)(e.query)||n.i(o.a)(e.viewQuery))return e;if(n.i(o.a)(e.token)){if(t===c.a.Directive||t===c.a.Component){if(e.token.reference===n.i(a.a)(a.b.Renderer).reference||e.token.reference===n.i(a.a)(a.b.ElementRef).reference||e.token.reference===n.i(a.a)(a.b.ChangeDetectorRef).reference||e.token.reference===n.i(a.a)(a.b.TemplateRef).reference)return e;e.token.reference===n.i(a.a)(a.b.ViewContainerRef).reference&&(this._hasViewContainer=!0)}if(e.token.reference===n.i(a.a)(a.b.Injector).reference)return e;if(n.i(o.a)(this._getOrCreateLocalProvider(t,e.token,i)))return e}return null},ProviderElementContext.prototype._getDependency=function(t,e,i){void 0===i&&(i=null);var a=this,s=i,l=null;if(e.isSkipSelf||(l=this._getLocalDependency(t,e,i)),e.isSelf)n.i(o.c)(l)&&e.isOptional&&(l=new r.c({isValue:!0,value:null}));else{for(;n.i(o.c)(l)&&n.i(o.a)(a._parent);){var p=a;a=a._parent,p._isViewRoot&&(s=!1),l=a._getLocalDependency(c.a.PublicService,e,s)}n.i(o.c)(l)&&(l=!e.isHost||this._viewContext.component.type.isHost||this._viewContext.component.type.reference===e.token.reference||n.i(o.a)(this._viewContext.viewProviders.get(e.token.reference))?e:e.isOptional?l=new r.c({isValue:!0,value:null}):null)}return n.i(o.c)(l)&&this._viewContext.errors.push(new u("No provider for "+e.token.name,this._sourceSpan)),l},ProviderElementContext}(),f=function(){function NgModuleProviderAnalyzer(t,e,n){var i=this;this._transformedProviders=new Map,this._seenProviders=new Map,this._errors=[],this._allProviders=new Map;var o=t.transitiveModule.modules.map(function(t){return t.type});o.forEach(function(t){var e=new r.d({token:new r.b({identifier:t}),useClass:t});_resolveProviders([e],c.a.PublicService,!0,n,i._errors,i._allProviders)}),_resolveProviders(_normalizeProviders(t.transitiveModule.providers.concat(e),n,this._errors),c.a.PublicService,!1,n,this._errors,this._allProviders)}return NgModuleProviderAnalyzer.prototype.parse=function(){var t=this;if(i.c.values(this._allProviders).forEach(function(e){t._getOrCreateLocalProvider(e.token,e.eager)}),this._errors.length>0){var e=this._errors.join("\n");throw new Error("Provider parse errors:\n"+e)}return i.c.values(this._transformedProviders)},NgModuleProviderAnalyzer.prototype._getOrCreateLocalProvider=function(t,e){var i=this,a=this._allProviders.get(t.reference);if(n.i(o.c)(a))return null;var s=this._transformedProviders.get(t.reference);if(n.i(o.a)(s))return s;if(n.i(o.a)(this._seenProviders.get(t.reference)))return this._errors.push(new u("Cannot instantiate cyclic dependency! "+t.name,a.sourceSpan)),null;this._seenProviders.set(t.reference,!0);var c=a.providers.map(function(t){var s,c=t.useValue,l=t.useExisting;if(n.i(o.a)(t.useExisting)){var u=i._getDependency(new r.c({token:t.useExisting}),e,a.sourceSpan);n.i(o.a)(u.token)?l=u.token:(l=null,c=u.value)}else if(n.i(o.a)(t.useFactory)){var p=n.i(o.a)(t.deps)?t.deps:t.useFactory.diDeps;s=p.map(function(t){return i._getDependency(t,e,a.sourceSpan)})}else if(n.i(o.a)(t.useClass)){var p=n.i(o.a)(t.deps)?t.deps:t.useClass.diDeps;s=p.map(function(t){return i._getDependency(t,e,a.sourceSpan)})}return _transformProvider(t,{useExisting:l,useValue:c,deps:s})});return s=_transformProviderAst(a,{eager:e,providers:c}),this._transformedProviders.set(t.reference,s),s},NgModuleProviderAnalyzer.prototype._getDependency=function(t,e,i){void 0===e&&(e=null);var s=!1;!t.isSkipSelf&&n.i(o.a)(t.token)&&(t.token.reference===n.i(a.a)(a.b.Injector).reference||t.token.reference===n.i(a.a)(a.b.ComponentFactoryResolver).reference?s=!0:n.i(o.a)(this._getOrCreateLocalProvider(t.token,e))&&(s=!0));var c=t;return t.isSelf&&!s&&(t.isOptional?c=new r.c({isValue:!0,value:null}):this._errors.push(new u("No provider for "+t.token.name,i))),c},NgModuleProviderAnalyzer}()},function(t,e,n){"use strict";function assertComponent(t){if(!t.isComponent)throw new Error("Could not compile '"+t.type.name+"' because it is not a component.")}var r=n(0),i=n(20),o=n(78),a=n(148),s=n(3),c=n(153),l=n(154),u=n(7),p=n(457),d=n(458),f=n(17),h=n(160),m=n(105),v=n(23),g=n(106);n.d(e,"a",function(){return b});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var b=function(){function RuntimeCompiler(t,e,n,r,i,o,a,s){this._injector=t,this._metadataResolver=e,this._templateNormalizer=n,this._templateParser=r,this._styleCompiler=i,this._viewCompiler=o,this._ngModuleCompiler=a,this._compilerConfig=s,this._compiledTemplateCache=new Map,this._compiledHostTemplateCache=new Map,this._compiledNgModuleCache=new Map}return Object.defineProperty(RuntimeCompiler.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),RuntimeCompiler.prototype.compileModuleSync=function(t){return this._compileModuleAndComponents(t,!0).syncResult},RuntimeCompiler.prototype.compileModuleAsync=function(t){return this._compileModuleAndComponents(t,!1).asyncResult},RuntimeCompiler.prototype.compileModuleAndAllComponentsSync=function(t){return this._compileModuleAndAllComponents(t,!0).syncResult},RuntimeCompiler.prototype.compileModuleAndAllComponentsAsync=function(t){return this._compileModuleAndAllComponents(t,!1).asyncResult},RuntimeCompiler.prototype._compileModuleAndComponents=function(t,e){var n=this._compileComponents(t,e),r=this._compileModule(t);return new v.g(r,n.then(function(){return r}))},RuntimeCompiler.prototype._compileModuleAndAllComponents=function(t,e){var n=this,i=this._compileComponents(t,e),o=this._compileModule(t),a=this._metadataResolver.getNgModuleMetadata(t),s=[],c=new Set;a.transitiveModule.modules.forEach(function(t){t.declaredDirectives.forEach(function(t){if(t.isComponent){var e=n._createCompiledHostTemplate(t.type.reference);c.add(e),s.push(e.proxyComponentFactory)}})});var l=new r.ModuleWithComponentFactories(o,s),u=function(){return c.forEach(function(t){n._compileTemplate(t)}),l},p=e?Promise.resolve(u()):i.then(u);return new v.g(l,p)},RuntimeCompiler.prototype._compileModule=function(t){var e=this,o=this._compiledNgModuleCache.get(t);if(!o){var a=this._metadataResolver.getNgModuleMetadata(t),s=[this._metadataResolver.getProviderMetadata(new i.x(r.Compiler,{useFactory:function(){return new _(e,a.type.reference)}}))],c=this._ngModuleCompiler.compile(a,s);c.dependencies.forEach(function(t){t.placeholder.reference=e._assertComponentKnown(t.comp.reference,!0).proxyComponentFactory,t.placeholder.name="compFactory_"+t.comp.name}),o=this._compilerConfig.useJit?n.i(d.a)(a.type.name+".ngfactory.js",c.statements,c.ngModuleFactoryVar):n.i(p.a)(c.statements,c.ngModuleFactoryVar),this._compiledNgModuleCache.set(a.type.reference,o)}return o},RuntimeCompiler.prototype._compileComponents=function(t,e){var n=this,r=new Set,i=[],o=this._metadataResolver.getNgModuleMetadata(t);o.transitiveModule.modules.forEach(function(t){t.declaredDirectives.forEach(function(e){e.isComponent&&(r.add(n._createCompiledTemplate(e,t)),e.entryComponents.forEach(function(t){r.add(n._createCompiledHostTemplate(t.reference))}))}),t.entryComponents.forEach(function(t){r.add(n._createCompiledHostTemplate(t.reference))})}),r.forEach(function(t){if(t.loading){if(e)throw new f._0(t.compType.reference);i.push(t.loading)}});var a=function(){r.forEach(function(t){n._compileTemplate(t)})};return e?(a(),Promise.resolve(null)):Promise.all(i).then(a)},RuntimeCompiler.prototype.clearCacheFor=function(t){this._compiledNgModuleCache.delete(t),this._metadataResolver.clearCacheFor(t),this._compiledHostTemplateCache.delete(t);var e=this._compiledTemplateCache.get(t);e&&(this._templateNormalizer.clearCacheFor(e.normalizedCompMeta),this._compiledTemplateCache.delete(t))},RuntimeCompiler.prototype.clearCache=function(){this._metadataResolver.clearCache(),this._compiledTemplateCache.clear(),this._compiledHostTemplateCache.clear(),this._templateNormalizer.clearCache(),this._compiledNgModuleCache.clear()},RuntimeCompiler.prototype._createCompiledHostTemplate=function(t){var e=this._compiledHostTemplateCache.get(t);if(n.i(s.c)(e)){var r=this._metadataResolver.getDirectiveMetadata(t);assertComponent(r);var o=n.i(i.n)(r);e=new y((!0),r.selector,r.type,[r],[],[],this._templateNormalizer.normalizeDirective(o)),this._compiledHostTemplateCache.set(t,e)}return e},RuntimeCompiler.prototype._createCompiledTemplate=function(t,e){var r=this._compiledTemplateCache.get(t.type.reference);return n.i(s.c)(r)&&(assertComponent(t),r=new y((!1),t.selector,t.type,e.transitiveModule.directives,e.transitiveModule.pipes,e.schemas,this._templateNormalizer.normalizeDirective(t)),this._compiledTemplateCache.set(t.type.reference,r)),r},RuntimeCompiler.prototype._assertComponentKnown=function(t,e){var r=e?this._compiledHostTemplateCache.get(t):this._compiledTemplateCache.get(t);if(!r)throw e?new Error("Illegal state: Compiled view for component "+n.i(s.q)(t)+" does not exist!"):new Error("Component "+n.i(s.q)(t)+" is not part of any NgModule or the module has not been imported into your module.");return r},RuntimeCompiler.prototype._assertComponentLoaded=function(t,e){var r=this._assertComponentKnown(t,e);if(r.loading)throw new Error("Illegal state: CompiledTemplate for "+n.i(s.q)(t)+" (isHost: "+e+") is still loading!");return r},RuntimeCompiler.prototype._compileTemplate=function(t){var e=this;if(!t.isCompiled){var r=t.normalizedCompMeta,i=new Map,o=this._styleCompiler.compileComponent(r);o.externalStylesheets.forEach(function(t){i.set(t.meta.moduleUrl,t)}),this._resolveStylesCompileResult(o.componentStylesheet,i);var a=t.viewComponentTypes.map(function(t){return e._assertComponentLoaded(t,!1).normalizedCompMeta}),s=this._templateParser.parse(r,r.template.template,t.viewDirectives.concat(a),t.viewPipes,t.schemas,r.type.name),c=this._viewCompiler.compileComponent(r,s,u.e(o.componentStylesheet.stylesVar),t.viewPipes);c.dependencies.forEach(function(t){var n;if(t instanceof g.a){var r=t;n=e._assertComponentLoaded(r.comp.reference,!1),r.placeholder.reference=n.proxyViewFactory,r.placeholder.name="viewFactory_"+r.comp.name}else if(t instanceof g.b){var i=t;n=e._assertComponentLoaded(i.comp.reference,!0),i.placeholder.reference=n.proxyComponentFactory,i.placeholder.name="compFactory_"+i.comp.name}});var l,f=o.componentStylesheet.statements.concat(c.statements);l=this._compilerConfig.useJit?n.i(d.a)(""+t.compType.name+(t.isHost?"_Host":"")+".ngfactory.js",f,c.viewFactoryVar):n.i(p.a)(f,c.viewFactoryVar),t.compiled(l)}},RuntimeCompiler.prototype._resolveStylesCompileResult=function(t,e){var n=this;t.dependencies.forEach(function(t,r){var i=e.get(t.moduleUrl),o=n._resolveAndEvalStylesCompileResult(i,e);t.valuePlaceholder.reference=o,t.valuePlaceholder.name="importedStyles"+r})},RuntimeCompiler.prototype._resolveAndEvalStylesCompileResult=function(t,e){return this._resolveStylesCompileResult(t,e),this._compilerConfig.useJit?n.i(d.a)(t.meta.moduleUrl+".css.js",t.statements,t.stylesVar):n.i(p.a)(t.statements,t.stylesVar)},RuntimeCompiler.decorators=[{type:r.Injectable}],RuntimeCompiler.ctorParameters=[{type:r.Injector},{type:c.a},{type:a.a},{type:m.a},{type:h.a},{type:g.c},{type:l.a},{type:o.a}],RuntimeCompiler}(),y=function(){function CompiledTemplate(t,e,i,o,a,c,l){var u=this;this.isHost=t,this.compType=i,this.viewPipes=a,this.schemas=c,this._viewFactory=null,this.loading=null,this._normalizedCompMeta=null,this.isCompiled=!1,this.isCompiledWithDeps=!1,this.viewComponentTypes=[],this.viewDirectives=[],o.forEach(function(t){t.isComponent?u.viewComponentTypes.push(t.type.reference):u.viewDirectives.push(t)}),this.proxyViewFactory=function(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];if(!u._viewFactory)throw new Error("Illegal state: CompiledTemplate for "+n.i(s.q)(u.compType)+" is not compiled yet!");return u._viewFactory.apply(null,t)},this.proxyComponentFactory=t?new r.ComponentFactory(e,this.proxyViewFactory,i.reference):null,l.syncResult?this._normalizedCompMeta=l.syncResult:this.loading=l.asyncResult.then(function(t){u._normalizedCompMeta=t,u.loading=null})}return Object.defineProperty(CompiledTemplate.prototype,"normalizedCompMeta",{get:function(){if(this.loading)throw new Error("Template is still loading for "+this.compType.name+"!");return this._normalizedCompMeta},enumerable:!0,configurable:!0}),CompiledTemplate.prototype.compiled=function(t){this._viewFactory=t,this.isCompiled=!0},CompiledTemplate.prototype.depsCompiled=function(){this.isCompiledWithDeps=!0},CompiledTemplate}(),_=function(){function ModuleBoundCompiler(t,e){this._delegate=t,this._ngModule=e}return Object.defineProperty(ModuleBoundCompiler.prototype,"_injector",{get:function(){return this._delegate.injector},enumerable:!0,configurable:!0}),ModuleBoundCompiler.prototype.compileModuleSync=function(t){return this._delegate.compileModuleSync(t)},ModuleBoundCompiler.prototype.compileModuleAsync=function(t){return this._delegate.compileModuleAsync(t)},ModuleBoundCompiler.prototype.compileModuleAndAllComponentsSync=function(t){return this._delegate.compileModuleAndAllComponentsSync(t)},ModuleBoundCompiler.prototype.compileModuleAndAllComponentsAsync=function(t){return this._delegate.compileModuleAndAllComponentsAsync(t)},ModuleBoundCompiler.prototype.clearCache=function(){this._delegate.clearCache()},ModuleBoundCompiler.prototype.clearCacheFor=function(t){this._delegate.clearCacheFor(t)},ModuleBoundCompiler}()},function(t,e,n){"use strict";var r=n(0),i=n(461),o=n(79);n.d(e,"a",function(){return f});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s="boolean",c="number",l="string",u="object",p=["*|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop","abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^*|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate","media^abbr|!autoplay,!controls,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,#playbackRate,preload,src,%srcObject,#volume",":svg:^abbr|*abort,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex",":svg:graphics^:svg:|",":svg:animation^:svg:|*begin,*end,*repeat",":svg:geometry^:svg:|",":svg:componentTransferFunction^:svg:|",":svg:gradient^:svg:|",":svg:textContent^:svg:graphics|",":svg:textPositioning^:svg:textContent|","abbr^*|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate","a^abbr|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username","area^abbr|alt,coords,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,search,shape,target,username","audio^media|","br^abbr|clear","base^abbr|href,target","body^abbr|aLink,background,bgColor,link,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink","button^abbr|!autofocus,!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value","canvas^abbr|#height,#width","content^abbr|select","dl^abbr|!compact","datalist^abbr|","details^abbr|!open","dialog^abbr|!open,returnValue","dir^abbr|!compact","div^abbr|align","embed^abbr|align,height,name,src,type,width","fieldset^abbr|!disabled,name","font^abbr|color,face,size","form^abbr|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target","frame^abbr|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src","frameset^abbr|cols,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows","hr^abbr|align,color,!noShade,size,width","head^abbr|","h1,h2,h3,h4,h5,h6^abbr|align","html^abbr|version","iframe^abbr|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width","img^abbr|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width","input^abbr|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width","keygen^abbr|!autofocus,challenge,!disabled,keytype,name","li^abbr|type,#value","label^abbr|htmlFor","legend^abbr|align","link^abbr|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,rel,%relList,rev,%sizes,target,type","map^abbr|name","marquee^abbr|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width","menu^abbr|!compact","meta^abbr|content,httpEquiv,name,scheme","meter^abbr|#high,#low,#max,#min,#optimum,#value","ins,del^abbr|cite,dateTime","ol^abbr|!compact,!reversed,#start,type","object^abbr|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width","optgroup^abbr|!disabled,label","option^abbr|!defaultSelected,!disabled,label,!selected,text,value","output^abbr|defaultValue,%htmlFor,name,value","p^abbr|align","param^abbr|name,type,value,valueType","picture^abbr|","pre^abbr|#width","progress^abbr|#max,#value","q,blockquote,cite^abbr|","script^abbr|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type","select^abbr|!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value","shadow^abbr|","source^abbr|media,sizes,src,srcset,type","span^abbr|","style^abbr|!disabled,media,type","caption^abbr|align","th,td^abbr|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width","col,colgroup^abbr|align,ch,chOff,#span,vAlign,width","table^abbr|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width","tr^abbr|align,bgColor,ch,chOff,vAlign","tfoot,thead,tbody^abbr|align,ch,chOff,vAlign","template^abbr|","textarea^abbr|autocapitalize,!autofocus,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap","title^abbr|text","track^abbr|!default,kind,label,src,srclang","ul^abbr|!compact,type","unknown^abbr|","video^media|#height,poster,#width",":svg:a^:svg:graphics|",":svg:animate^:svg:animation|",":svg:animateMotion^:svg:animation|",":svg:animateTransform^:svg:animation|",":svg:circle^:svg:geometry|",":svg:clipPath^:svg:graphics|",":svg:cursor^:svg:|",":svg:defs^:svg:graphics|",":svg:desc^:svg:|",":svg:discard^:svg:|",":svg:ellipse^:svg:geometry|",":svg:feBlend^:svg:|",":svg:feColorMatrix^:svg:|",":svg:feComponentTransfer^:svg:|",":svg:feComposite^:svg:|",":svg:feConvolveMatrix^:svg:|",":svg:feDiffuseLighting^:svg:|",":svg:feDisplacementMap^:svg:|",":svg:feDistantLight^:svg:|",":svg:feDropShadow^:svg:|",":svg:feFlood^:svg:|",":svg:feFuncA^:svg:componentTransferFunction|",":svg:feFuncB^:svg:componentTransferFunction|",":svg:feFuncG^:svg:componentTransferFunction|",":svg:feFuncR^:svg:componentTransferFunction|",":svg:feGaussianBlur^:svg:|",":svg:feImage^:svg:|",":svg:feMerge^:svg:|",":svg:feMergeNode^:svg:|",":svg:feMorphology^:svg:|",":svg:feOffset^:svg:|",":svg:fePointLight^:svg:|",":svg:feSpecularLighting^:svg:|",":svg:feSpotLight^:svg:|",":svg:feTile^:svg:|",":svg:feTurbulence^:svg:|",":svg:filter^:svg:|",":svg:foreignObject^:svg:graphics|",":svg:g^:svg:graphics|",":svg:image^:svg:graphics|",":svg:line^:svg:geometry|",":svg:linearGradient^:svg:gradient|",":svg:mpath^:svg:|",":svg:marker^:svg:|",":svg:mask^:svg:|",":svg:metadata^:svg:|",":svg:path^:svg:geometry|",":svg:pattern^:svg:|",":svg:polygon^:svg:geometry|",":svg:polyline^:svg:geometry|",":svg:radialGradient^:svg:gradient|",":svg:rect^:svg:geometry|",":svg:svg^:svg:graphics|#currentScale,#zoomAndPan",":svg:script^:svg:|type",":svg:set^:svg:animation|",":svg:stop^:svg:|",":svg:style^:svg:|!disabled,media,title,type",":svg:switch^:svg:graphics|",":svg:symbol^:svg:|",":svg:tspan^:svg:textPositioning|",":svg:text^:svg:textPositioning|",":svg:textPath^:svg:textContent|",":svg:title^:svg:|",":svg:use^:svg:graphics|",":svg:view^:svg:|#zoomAndPan"],d={"class":"className",formaction:"formAction",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},f=function(t){function DomElementSchemaRegistry(){var e=this;t.call(this),this._schema={},p.forEach(function(t){var n=t.split("|"),r=n[0],i=n[1],o=i.split(","),a=r.split("^"),p=a[0],d=a[1],f={};p.split(",").forEach(function(t){return e._schema[t.toLowerCase()]=f});var h=e._schema[d];h&&Object.keys(h).forEach(function(t){f[t]=h[t]}),o.forEach(function(t){if(t.length>0)switch(t[0]){case"*":break;case"!":f[t.substring(1)]=s;break;case"#":f[t.substring(1)]=c;break;case"%":f[t.substring(1)]=u;break;default:f[t]=l}})})}return a(DomElementSchemaRegistry,t),DomElementSchemaRegistry.prototype.hasProperty=function(t,e,n){if(n.some(function(t){return t.name===r.NO_ERRORS_SCHEMA.name}))return!0;if(t.indexOf("-")>-1){if("ng-container"===t||"ng-content"===t)return!1;if(n.some(function(t){return t.name===r.CUSTOM_ELEMENTS_SCHEMA.name}))return!0}var i=this._schema[t.toLowerCase()]||this._schema.unknown;return!!i[e]},DomElementSchemaRegistry.prototype.hasElement=function(t,e){if(e.some(function(t){return t.name===r.NO_ERRORS_SCHEMA.name}))return!0;if(t.indexOf("-")>-1){if("ng-container"===t||"ng-content"===t)return!0;if(e.some(function(t){return t.name===r.CUSTOM_ELEMENTS_SCHEMA.name}))return!0}return!!this._schema[t.toLowerCase()]},DomElementSchemaRegistry.prototype.securityContext=function(t,e){t=t.toLowerCase(),e=e.toLowerCase();var n=i.a[t+"|"+e];return n?n:(n=i.a["*|"+e],n?n:r.SecurityContext.NONE)},DomElementSchemaRegistry.prototype.getMappedPropName=function(t){return d[t]||t},DomElementSchemaRegistry.prototype.getDefaultComponentElementName=function(){return"ng-component"},DomElementSchemaRegistry.decorators=[{type:r.Injectable}],DomElementSchemaRegistry.ctorParameters=[],DomElementSchemaRegistry}(o.a)},function(t,e,n){"use strict";function isStyleUrlResolvable(t){if(n.i(r.c)(t)||0===t.length||"/"==t[0])return!1;var e=t.match(a);return null===e||"package"==e[1]||"asset"==e[1]}function extractStyleUrls(t,e,a){var s=[],c=r.g.replaceAllMapped(a,o,function(i){var o=n.i(r.a)(i[1])?i[1]:i[2];return isStyleUrlResolvable(o)?(s.push(t.resolve(e,o)),""):i[0]});return new i(c,s)}var r=n(3);e.a=isStyleUrlResolvable,e.b=extractStyleUrls;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function StyleWithImports(t,e){this.style=t,this.styleUrls=e}return StyleWithImports}(),o=/@import\s+(?:url\()?\s*(?:(?:['"]([^'"]*))|([^;\)\s]*))[^;]*;?/g,a=/^([^:\/?#]+):/},function(t,e,n){"use strict";function preparseElement(t){var e=null,v=null,g=null,b=!1,y=null;t.attrs.forEach(function(t){var n=t.name.toLowerCase();n==o?e=t.value:n==l?v=t.value:n==c?g=t.value:t.name==f?b=!0:t.name==h&&t.value.length>0&&(y=t.value)}),e=normalizeNgContentSelect(e);var _=t.name.toLowerCase(),w=i.OTHER;return n.i(r.e)(_)[1]==a?w=i.NG_CONTENT:_==p?w=i.STYLE:_==d?w=i.SCRIPT:_==s&&g==u&&(w=i.STYLESHEET),new m(w,e,v,b,y)}function normalizeNgContentSelect(t){return null===t||0===t.length?"*":t}var r=n(67);e.a=preparseElement,n.d(e,"b",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i,o="select",a="ng-content",s="link",c="rel",l="href",u="stylesheet",p="style",d="script",f="ngNonBindable",h="ngProjectAs";!function(t){t[t.NG_CONTENT=0]="NG_CONTENT",t[t.STYLE=1]="STYLE",t[t.STYLESHEET=2]="STYLESHEET",t[t.SCRIPT=3]="SCRIPT",t[t.OTHER=4]="OTHER"}(i||(i={}));var m=function(){function PreparsedElement(t,e,n,r,i){this.type=t,this.selectAttr=e,this.hrefAttr=n,this.nonBindable=r,this.projectAs=i}return PreparsedElement}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function CompileBinding(t,e){this.node=t,this.sourceAst=e}return CompileBinding}()},function(t,e,n){"use strict";function createInjectInternalCondition(t,e,r,i){var o;return o=e>0?s.a(t).lowerEquals(f.a.requestNodeIndex).and(f.a.requestNodeIndex.lowerEquals(s.a(t+e))):s.a(t).identical(f.a.requestNodeIndex),new s.i(f.a.token.identical(n.i(u.e)(r.token)).and(o),[new s.t(i)])}function createProviderProperty(t,e,r,i,a,c){var l,u,d=c.view;if(i?(l=s.g(r),u=new s.q(s.l)):(l=r[0],u=r[0].type),n.i(o.c)(u)&&(u=s.l),a)d.fields.push(new s.s(t,u)),d.createMethod.addStmt(s.n.prop(t).set(l).toStmt());else{var f="_"+t;d.fields.push(new s.s(f,u));var h=new p.a(d);h.resetDebugInfo(c.nodeIndex,c.sourceAst),h.addStmt(new s.i(s.n.prop(f).isBlank(),[s.n.prop(f).set(l).toStmt()])),h.addStmt(new s.t(s.n.prop(f))),d.getters.push(new s.v(t,h.finish(),u))}return s.n.prop(t)}var r=n(20),i=n(6),o=n(3),a=n(16),s=n(7),c=n(281),l=n(42),u=n(23),p=n(161),d=n(289),f=n(68),h=n(81);n.d(e,"b",function(){return v}),n.d(e,"a",function(){return g});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var m=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},v=function(){function CompileNode(t,e,n,r,i){this.parent=t,this.view=e,this.nodeIndex=n,this.renderNode=r,this.sourceAst=i}return CompileNode.prototype.isNull=function(){return n.i(o.c)(this.renderNode)},CompileNode.prototype.isRootElement=function(){return this.view!=this.parent.view},CompileNode}(),g=function(t){function CompileElement(e,r,i,c,l,u,p,d,f,h,m){var v=this;t.call(this,e,r,i,c,l),this.component=u,this._directives=p,this._resolvedProvidersArray=d,this.hasViewContainer=f,this.hasEmbeddedView=h,this._compViewExpr=null,this.instances=new Map,this._queryCount=0,this._queries=new Map,this._componentConstructorViewQueryLists=[],this.contentNodesByNgContentIndex=null,this.referenceTokens={},m.forEach(function(t){return v.referenceTokens[t.name]=t.value}),this.elementRef=s.b(n.i(a.d)(a.b.ElementRef)).instantiate([this.renderNode]),this.instances.set(n.i(a.a)(a.b.ElementRef).reference,this.elementRef),this.injector=s.n.callMethod("injector",[s.a(this.nodeIndex)]),this.instances.set(n.i(a.a)(a.b.Injector).reference,this.injector),this.instances.set(n.i(a.a)(a.b.Renderer).reference,s.n.prop("renderer")),(this.hasViewContainer||this.hasEmbeddedView||n.i(o.a)(this.component))&&this._createAppElement()}return m(CompileElement,t),CompileElement.createNull=function(){return new CompileElement(null,null,null,null,null,null,[],[],(!1),(!1),[])},CompileElement.prototype._createAppElement=function(){var t="_appEl_"+this.nodeIndex,e=this.isRootElement()?null:this.parent.nodeIndex;this.view.fields.push(new s.s(t,s.c(n.i(a.d)(a.b.AppElement)),[s.u.Private]));var r=s.n.prop(t).set(s.b(n.i(a.d)(a.b.AppElement)).instantiate([s.a(this.nodeIndex),s.a(e),s.n,this.renderNode])).toStmt();this.view.createMethod.addStmt(r),this.appElement=s.n.prop(t),this.instances.set(n.i(a.a)(a.b.AppElement).reference,this.appElement)},CompileElement.prototype.createComponentFactoryResolver=function(t){if(t&&0!==t.length){var e=s.b(n.i(a.d)(a.b.CodegenComponentFactoryResolver)).instantiate([s.g(t.map(function(t){return s.b(t)})),n.i(h.b)(n.i(a.a)(a.b.ComponentFactoryResolver),!1)]),i=new r.d({token:n.i(a.a)(a.b.ComponentFactoryResolver),useValue:e});this._resolvedProvidersArray.unshift(new l.b(i.token,(!1),(!0),[i],l.a.PrivateService,[],this.sourceAst.sourceSpan))}},CompileElement.prototype.setComponentView=function(t){this._compViewExpr=t,this.contentNodesByNgContentIndex=i.a.createFixedSize(this.component.template.ngContentSelectors.length);for(var e=0;e<this.contentNodesByNgContentIndex.length;e++)this.contentNodesByNgContentIndex[e]=[]},CompileElement.prototype.setEmbeddedView=function(t){if(this.embeddedView=t,n.i(o.a)(t)){var e=s.b(n.i(a.d)(a.b.TemplateRef_)).instantiate([this.appElement,this.embeddedView.viewFactory]),i=new r.d({token:n.i(a.a)(a.b.TemplateRef),useValue:e});this._resolvedProvidersArray.unshift(new l.b(i.token,(!1),(!0),[i],l.a.Builtin,[],this.sourceAst.sourceSpan))}},CompileElement.prototype.beforeChildren=function(){var t=this;this.hasViewContainer&&this.instances.set(n.i(a.a)(a.b.ViewContainerRef).reference,this.appElement.prop("vcRef")),this._resolvedProviders=new Map,this._resolvedProvidersArray.forEach(function(e){return t._resolvedProviders.set(e.token.reference,e)}),i.c.values(this._resolvedProviders).forEach(function(e){var i=e.providers.map(function(i){if(n.i(o.a)(i.useExisting))return t._getDependency(e.providerType,new r.c({token:i.useExisting}));if(n.i(o.a)(i.useFactory)){var a=n.i(o.a)(i.deps)?i.deps:i.useFactory.diDeps,l=a.map(function(n){return t._getDependency(e.providerType,n)});return s.b(i.useFactory).callFn(l)}if(n.i(o.a)(i.useClass)){var a=n.i(o.a)(i.deps)?i.deps:i.useClass.diDeps,l=a.map(function(n){return t._getDependency(e.providerType,n)});return s.b(i.useClass).instantiate(l,s.c(i.useClass))}return n.i(c.a)(i.useValue)}),a="_"+e.token.name+"_"+t.nodeIndex+"_"+t.instances.size,l=createProviderProperty(a,e,i,e.multiProvider,e.eager,t);t.instances.set(e.token.reference,l)});for(var e=0;e<this._directives.length;e++){var l=this._directives[e],u=this.instances.get(n.i(a.c)(l.type).reference);l.queries.forEach(function(e){t._addQuery(e,u)})}var p=[];if(i.c.values(this._resolvedProviders).forEach(function(e){var n=t._getQueriesFor(e.token);i.a.addAll(p,n.map(function(t){return new b(t,e.token)}))}),i.b.forEach(this.referenceTokens,function(e,a){var s,c=t.referenceTokens[a];s=n.i(o.a)(c)?t.instances.get(c.reference):t.renderNode,t.view.locals.set(a,s);var l=new r.b({value:a});i.a.addAll(p,t._getQueriesFor(l).map(function(t){return new b(t,l)}))}),p.forEach(function(e){var r;if(n.i(o.a)(e.read.identifier))r=t.instances.get(e.read.reference);else{var i=t.referenceTokens[e.read.value];r=n.i(o.a)(i)?t.instances.get(i.reference):t.elementRef}n.i(o.a)(r)&&e.query.addValue(r,t.view)}),n.i(o.a)(this.component)){var d=n.i(o.a)(this.component)?s.g(this._componentConstructorViewQueryLists):s.h,f=n.i(o.a)(this.getComponent())?this.getComponent():s.h;this.view.createMethod.addStmt(this.appElement.callMethod("initComponent",[f,d,this._compViewExpr]).toStmt())}},CompileElement.prototype.afterChildren=function(t){var e=this;i.c.values(this._resolvedProviders).forEach(function(n){var r=e.instances.get(n.token.reference),i=n.providerType===l.a.PrivateService?0:t;e.view.injectorGetMethod.addStmt(createInjectInternalCondition(e.nodeIndex,i,n,r))}),i.c.values(this._queries).forEach(function(t){return t.forEach(function(t){return t.afterChildren(e.view.createMethod,e.view.updateContentQueriesMethod)})})},CompileElement.prototype.addContentNode=function(t,e){this.contentNodesByNgContentIndex[t].push(e)},CompileElement.prototype.getComponent=function(){return n.i(o.a)(this.component)?this.instances.get(n.i(a.c)(this.component.type).reference):null},CompileElement.prototype.getProviderTokens=function(){return i.c.values(this._resolvedProviders).map(function(t){return n.i(u.e)(t.token)})},CompileElement.prototype._getQueriesFor=function(t){for(var e,r=[],a=this,s=0;!a.isNull();)e=a._queries.get(t.reference),n.i(o.a)(e)&&i.a.addAll(r,e.filter(function(t){return t.meta.descendants||s<=1})),a._directives.length>0&&s++,a=a.parent;return e=this.view.componentView.viewQueries.get(t.reference),n.i(o.a)(e)&&i.a.addAll(r,e),r},CompileElement.prototype._addQuery=function(t,e){var r="_query_"+t.selectors[0].name+"_"+this.nodeIndex+"_"+this._queryCount++,i=n.i(d.a)(t,e,r,this.view),o=new d.b(t,i,e,this.view);return n.i(d.c)(this._queries,o),o},CompileElement.prototype._getLocalDependency=function(t,e){var r=null;if(n.i(o.c)(r)&&n.i(o.a)(e.query)&&(r=this._addQuery(e.query,null).queryList),n.i(o.c)(r)&&n.i(o.a)(e.viewQuery)&&(r=n.i(d.a)(e.viewQuery,null,"_viewQuery_"+e.viewQuery.selectors[0].name+"_"+this.nodeIndex+"_"+this._componentConstructorViewQueryLists.length,this.view),this._componentConstructorViewQueryLists.push(r)),n.i(o.a)(e.token)){if(n.i(o.c)(r)&&e.token.reference===n.i(a.a)(a.b.ChangeDetectorRef).reference)return t===l.a.Component?this._compViewExpr.prop("ref"):n.i(h.a)(s.n.prop("ref"),this.view,this.view.componentView);if(n.i(o.c)(r)){var i=this._resolvedProviders.get(e.token.reference);if(i&&(t===l.a.Directive||t===l.a.PublicService)&&i.providerType===l.a.PrivateService)return null;r=this.instances.get(e.token.reference)}}return r},CompileElement.prototype._getDependency=function(t,e){var i=this,a=null;for(e.isValue&&(a=s.a(e.value)),n.i(o.c)(a)&&!e.isSkipSelf&&(a=this._getLocalDependency(t,e));n.i(o.c)(a)&&!i.parent.isNull();)i=i.parent,a=i._getLocalDependency(l.a.PublicService,new r.c({token:e.token}));return n.i(o.c)(a)&&(a=n.i(h.b)(e.token,e.isOptional)),n.i(o.c)(a)&&(a=s.h),n.i(h.a)(a,this.view,i.view)},CompileElement}(v),b=function(){function _QueryWithRead(t,e){this.query=t,this.read=n.i(o.a)(t.meta.read)?t.meta.read:e}return _QueryWithRead}()},function(t,e,n){"use strict";function createQueryValues(t){return r.a.flatten(t.values.map(function(t){return t instanceof c?mapNestedViews(t.view.declarationElement.appElement,t.view,createQueryValues(t)):t}))}function mapNestedViews(t,e,n){var r=n.map(function(t){return a.p(a.n.name,a.e("nestedView"),t)});return t.callMethod("mapNestedViews",[a.e(e.className),a.j([new a.k("nestedView",e.classType)],[new a.t(a.g(r))],a.l)])}function createQueryList(t,e,r,i){i.fields.push(new a.s(r,a.c(n.i(o.d)(o.b.QueryList),[a.l])));var s=a.n.prop(r);return i.createMethod.addStmt(a.n.prop(r).set(a.b(n.i(o.d)(o.b.QueryList),[a.l]).instantiate([])).toStmt()),s}function addQueryToTokenMap(t,e){e.meta.selectors.forEach(function(r){var o=t.get(r.reference);n.i(i.c)(o)&&(o=[],t.set(r.reference,o)),o.push(e)})}var r=n(6),i=n(3),o=n(16),a=n(7),s=n(81);n.d(e,"b",function(){return l}),e.a=createQueryList,e.c=addQueryToTokenMap;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c=function(){function ViewQueryValues(t,e){this.view=t,this.values=e}return ViewQueryValues}(),l=function(){function CompileQuery(t,e,n,r){this.meta=t,this.queryList=e,this.ownerDirectiveExpression=n,this.view=r,this._values=new c(r,[])}return CompileQuery.prototype.addValue=function(t,e){for(var r=e,o=[];n.i(i.a)(r)&&r!==this.view;){var a=r.declarationElement;o.unshift(a),r=a.view}var l=n.i(s.a)(this.queryList,e,this.view),u=this._values;o.forEach(function(t){var e=u.values.length>0?u.values[u.values.length-1]:null;if(e instanceof c&&e.view===t.embeddedView)u=e;else{var n=new c(t.embeddedView,[]);u.values.push(n),u=n}}),u.values.push(t),o.length>0&&e.dirtyParentQueriesMethod.addStmt(l.callMethod("setDirty",[]).toStmt())},CompileQuery.prototype._isStatic=function(){return!this._values.values.some(function(t){return t instanceof c})},CompileQuery.prototype.afterChildren=function(t,e){var r=createQueryValues(this._values),o=[this.queryList.callMethod("reset",[a.g(r)]).toStmt()];if(n.i(i.a)(this.ownerDirectiveExpression)){var s=this.meta.first?this.queryList.prop("first"):this.queryList;o.push(this.ownerDirectiveExpression.prop(this.meta.propertyName).set(s).toStmt())}this.meta.first||o.push(this.queryList.callMethod("notifyOnChanges",[]).toStmt()),this.meta.first&&this._isStatic()?t.addStmts(o):e.addStmt(new a.i(this.queryList.prop("dirty"),o))},CompileQuery}()},function(t,e,n){"use strict";function getViewType(t,e){return e>0?c.i.EMBEDDED:t.type.isHost?c.i.HOST:c.i.COMPONENT}var r=n(20),i=n(6),o=n(3),a=n(16),s=n(7),c=n(17),l=n(161),u=n(463),p=n(289),d=n(68),f=n(81);n.d(e,"a",function(){return h});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var h=function(){function CompileView(t,e,a,u,d,h,m,v){var g=this;this.component=t,this.genConfig=e,this.pipeMetas=a,this.styles=u,this.animations=d,this.viewIndex=h,this.declarationElement=m,this.templateVariableBindings=v,this.nodes=[],this.rootNodesOrAppElements=[],this.bindings=[],this.classStatements=[],this.eventHandlerMethods=[],this.fields=[],this.getters=[],this.disposables=[],this.subscriptions=[],this.purePipes=new Map,this.pipes=[],this.locals=new Map,this.literalArrayCount=0,this.literalMapCount=0,this.pipeCount=0,this.createMethod=new l.a(this),this.injectorGetMethod=new l.a(this),this.updateContentQueriesMethod=new l.a(this),this.dirtyParentQueriesMethod=new l.a(this),this.updateViewQueriesMethod=new l.a(this),this.detectChangesInInputsMethod=new l.a(this),this.detectChangesRenderPropertiesMethod=new l.a(this),this.afterContentLifecycleCallbacksMethod=new l.a(this),this.afterViewLifecycleCallbacksMethod=new l.a(this),this.destroyMethod=new l.a(this),this.detachMethod=new l.a(this),this.viewType=getViewType(t,h),this.className="_View_"+t.type.name+h,this.classType=s.c(new r.a({name:this.className})),this.viewFactory=s.e(n.i(f.d)(t,h)),this.viewType===c.i.COMPONENT||this.viewType===c.i.HOST?this.componentView=this:this.componentView=this.declarationElement.view.componentView,this.componentContext=n.i(f.a)(s.n.prop("context"),this,this.componentView);var b=new Map;if(this.viewType===c.i.COMPONENT){var y=s.n.prop("context");i.a.forEachWithIndex(this.component.viewQueries,function(t,e){var r="_viewQuery_"+t.selectors[0].name+"_"+e,i=n.i(p.a)(t,y,r,g),o=new p.b(t,i,y,g);n.i(p.c)(b,o)});var _=0;this.component.type.diDeps.forEach(function(t){if(n.i(o.a)(t.viewQuery)){var e=s.n.prop("declarationAppElement").prop("componentConstructorViewQueries").key(s.a(_++)),r=new p.b(t.viewQuery,e,null,g);n.i(p.c)(b,r)}})}this.viewQueries=b,v.forEach(function(t){g.locals.set(t[1],s.n.prop("context").prop(t[0]))}),this.declarationElement.isNull()||this.declarationElement.setEmbeddedView(this)}return CompileView.prototype.callPipe=function(t,e,n){return u.a.call(this,t,[e].concat(n))},CompileView.prototype.getLocal=function(t){if(t==d.b.event.name)return d.b.event;for(var e=this,r=e.locals.get(t);n.i(o.c)(r)&&n.i(o.a)(e.declarationElement.view);)e=e.declarationElement.view,r=e.locals.get(t);return n.i(o.a)(r)?n.i(f.a)(r,this,e):null},CompileView.prototype.createLiteralArray=function(t){if(0===t.length)return s.b(n.i(a.d)(a.b.EMPTY_ARRAY));for(var e=s.n.prop("_arr_"+this.literalArrayCount++),r=[],i=[],o=0;o<t.length;o++){var c="p"+o;r.push(new s.k(c)),i.push(s.e(c))}return n.i(f.c)(s.j(r,[new s.t(s.g(i))],new s.q(s.l)),t.length,e,this),e.callFn(t)},CompileView.prototype.createLiteralMap=function(t){if(0===t.length)return s.b(n.i(a.d)(a.b.EMPTY_MAP));for(var e=s.n.prop("_map_"+this.literalMapCount++),r=[],i=[],o=[],c=0;c<t.length;c++){var l="p"+c;r.push(new s.k(l)),i.push([t[c][0],s.e(l)]),o.push(t[c][1])}return n.i(f.c)(s.j(r,[new s.t(s.f(i))],new s.w(s.l)),t.length,e,this),e.callFn(o)},CompileView.prototype.afterNodes=function(){var t=this;i.c.values(this.viewQueries).forEach(function(e){return e.forEach(function(e){return e.afterChildren(t.createMethod,t.updateViewQueriesMethod)})})},CompileView}()},function(t,e,n){"use strict";function convertCdExpressionToIr(t,e,n,r,i){var o=new l(t,e,r,i),a=n.visit(o,s.Expression);return new c(a,o.needsValueUnwrapper,o.temporaryCount)}function convertCdStatementToIr(t,e,n,r){var i=new l(t,e,null,r),o=[];return flattenStatements(n.visit(i,s.Statement),o),prependTemporaryDecls(i.temporaryCount,r,o),o}function temporaryName(t,e){return"tmp_"+t+"_"+e}function temporaryDeclaration(t,e){return new a.x(temporaryName(t,e),a.h)}function prependTemporaryDecls(t,e,n){for(var r=t-1;r>=0;r--)n.unshift(temporaryDeclaration(e,r))}function ensureStatementMode(t,e){if(t!==s.Statement)throw new Error("Expected a statement, but saw "+e)}function ensureExpressionMode(t,e){if(t!==s.Expression)throw new Error("Expected an expression, but saw "+e)}function convertToStatementIfNeeded(t,e){return t===s.Statement?e.toStmt():e}function flattenStatements(t,e){n.i(i.d)(t)?t.forEach(function(t){return flattenStatements(t,e)}):e.push(t)}var r=n(150),i=n(3),o=n(16),a=n(7);e.b=convertCdExpressionToIr,e.a=convertCdStatementToIr,e.c=temporaryDeclaration;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s,c=function(){function ExpressionWithWrappedValueInfo(t,e,n){this.expression=t,this.needsValueUnwrapper=e,this.temporaryCount=n}return ExpressionWithWrappedValueInfo}();!function(t){t[t.Statement=0]="Statement",t[t.Expression=1]="Expression"}(s||(s={}));var l=function(){function _AstToIrVisitor(t,e,n,r){this._nameResolver=t,this._implicitReceiver=e,this._valueUnwrapper=n,this.bindingIndex=r,this._nodeMap=new Map,this._resultMap=new Map,this._currentTemporary=0,this.needsValueUnwrapper=!1,this.temporaryCount=0}return _AstToIrVisitor.prototype.visitBinary=function(t,e){var n;switch(t.operation){case"+":n=a.y.Plus;break;case"-":n=a.y.Minus;break;case"*":n=a.y.Multiply;break;case"/":n=a.y.Divide;break;case"%":n=a.y.Modulo;break;case"&&":n=a.y.And;break;case"||":n=a.y.Or;break;case"==":n=a.y.Equals;break;case"!=":n=a.y.NotEquals;break;case"===":n=a.y.Identical;break;case"!==":n=a.y.NotIdentical;break;case"<":n=a.y.Lower;break;case">":n=a.y.Bigger;break;case"<=":n=a.y.LowerEquals;break;case">=":n=a.y.BiggerEquals;break;default:throw new Error("Unsupported operation "+t.operation)}return convertToStatementIfNeeded(e,new a.z(n,this.visit(t.left,s.Expression),this.visit(t.right,s.Expression)))},_AstToIrVisitor.prototype.visitChain=function(t,e){return ensureStatementMode(e,t),this.visitAll(t.expressions,e)},_AstToIrVisitor.prototype.visitConditional=function(t,e){var n=this.visit(t.condition,s.Expression);return convertToStatementIfNeeded(e,n.conditional(this.visit(t.trueExp,s.Expression),this.visit(t.falseExp,s.Expression)))},_AstToIrVisitor.prototype.visitPipe=function(t,e){var n=this.visit(t.exp,s.Expression),r=this.visitAll(t.args,s.Expression),i=this._nameResolver.callPipe(t.name,n,r);return this.needsValueUnwrapper=!0,convertToStatementIfNeeded(e,this._valueUnwrapper.callMethod("unwrap",[i]))},_AstToIrVisitor.prototype.visitFunctionCall=function(t,e){return convertToStatementIfNeeded(e,this.visit(t.target,s.Expression).callFn(this.visitAll(t.args,s.Expression)))},_AstToIrVisitor.prototype.visitImplicitReceiver=function(t,e){return ensureExpressionMode(e,t),this._implicitReceiver},_AstToIrVisitor.prototype.visitInterpolation=function(t,e){ensureExpressionMode(e,t);for(var r=[a.a(t.expressions.length)],i=0;i<t.strings.length-1;i++)r.push(a.a(t.strings[i])),r.push(this.visit(t.expressions[i],s.Expression));return r.push(a.a(t.strings[t.strings.length-1])),a.b(n.i(o.d)(o.b.interpolate)).callFn(r)},_AstToIrVisitor.prototype.visitKeyedRead=function(t,e){return convertToStatementIfNeeded(e,this.visit(t.obj,s.Expression).key(this.visit(t.key,s.Expression)))},_AstToIrVisitor.prototype.visitKeyedWrite=function(t,e){var n=this.visit(t.obj,s.Expression),r=this.visit(t.key,s.Expression),i=this.visit(t.value,s.Expression);return convertToStatementIfNeeded(e,n.key(r).set(i))},_AstToIrVisitor.prototype.visitLiteralArray=function(t,e){return convertToStatementIfNeeded(e,this._nameResolver.createLiteralArray(this.visitAll(t.expressions,e)))},_AstToIrVisitor.prototype.visitLiteralMap=function(t,e){for(var n=[],r=0;r<t.keys.length;r++)n.push([t.keys[r],this.visit(t.values[r],s.Expression)]);return convertToStatementIfNeeded(e,this._nameResolver.createLiteralMap(n))},_AstToIrVisitor.prototype.visitLiteralPrimitive=function(t,e){return convertToStatementIfNeeded(e,a.a(t.value))},_AstToIrVisitor.prototype.visitMethodCall=function(t,e){var r=this.leftMostSafeNode(t);if(r)return this.convertSafeAccess(t,r,e);var o=this.visitAll(t.args,s.Expression),a=null,c=this.visit(t.receiver,s.Expression);if(c===this._implicitReceiver){var l=this._nameResolver.getLocal(t.name);n.i(i.a)(l)&&(a=l.callFn(o))}return n.i(i.c)(a)&&(a=c.callMethod(t.name,o)),convertToStatementIfNeeded(e,a)},_AstToIrVisitor.prototype.visitPrefixNot=function(t,e){return convertToStatementIfNeeded(e,a.A(this.visit(t.expression,s.Expression)))},_AstToIrVisitor.prototype.visitPropertyRead=function(t,e){var r=this.leftMostSafeNode(t);if(r)return this.convertSafeAccess(t,r,e);var o=null,a=this.visit(t.receiver,s.Expression);return a===this._implicitReceiver&&(o=this._nameResolver.getLocal(t.name)),n.i(i.c)(o)&&(o=a.prop(t.name)),convertToStatementIfNeeded(e,o)},_AstToIrVisitor.prototype.visitPropertyWrite=function(t,e){var r=this.visit(t.receiver,s.Expression);if(r===this._implicitReceiver){var o=this._nameResolver.getLocal(t.name);if(n.i(i.a)(o))throw new Error("Cannot assign to a reference or variable!")}return convertToStatementIfNeeded(e,r.prop(t.name).set(this.visit(t.value,s.Expression)))},_AstToIrVisitor.prototype.visitSafePropertyRead=function(t,e){return this.convertSafeAccess(t,this.leftMostSafeNode(t),e)},_AstToIrVisitor.prototype.visitSafeMethodCall=function(t,e){return this.convertSafeAccess(t,this.leftMostSafeNode(t),e)},_AstToIrVisitor.prototype.visitAll=function(t,e){var n=this;return t.map(function(t){return n.visit(t,e)})},_AstToIrVisitor.prototype.visitQuote=function(t,e){throw new Error("Quotes are not supported for evaluation!")},_AstToIrVisitor.prototype.visit=function(t,e){var n=this._resultMap.get(t);return n?n:(this._nodeMap.get(t)||t).visit(this,e)},_AstToIrVisitor.prototype.convertSafeAccess=function(t,e,n){var i,o=this.visit(e.receiver,n);this.needsTemporary(e.receiver)&&(i=this.allocateTemporary(),o=i.set(o),this._resultMap.set(e.receiver,i));var s=o.isBlank();e instanceof r.s?this._nodeMap.set(e,new r.t(e.span,e.receiver,e.name,e.args)):this._nodeMap.set(e,new r.w(e.span,e.receiver,e.name));var c=this.visit(t,n);return this._nodeMap.delete(e),i&&this.releaseTemporary(i),s.conditional(a.a(null),c)},_AstToIrVisitor.prototype.leftMostSafeNode=function(t){var e=this,n=function(t,n){return(e._nodeMap.get(n)||n).visit(t)};return t.visit({visitBinary:function(t){return null},visitChain:function(t){return null},visitConditional:function(t){return null},visitFunctionCall:function(t){return null},visitImplicitReceiver:function(t){return null},visitInterpolation:function(t){return null},visitKeyedRead:function(t){return n(this,t.obj)},visitKeyedWrite:function(t){return null},visitLiteralArray:function(t){return null},visitLiteralMap:function(t){return null},visitLiteralPrimitive:function(t){return null},visitMethodCall:function(t){return n(this,t.receiver)},visitPipe:function(t){return null},visitPrefixNot:function(t){return null},visitPropertyRead:function(t){return n(this,t.receiver)},visitPropertyWrite:function(t){return null},visitQuote:function(t){return null},visitSafeMethodCall:function(t){return n(this,t.receiver)||t},visitSafePropertyRead:function(t){return n(this,t.receiver)||t}})},_AstToIrVisitor.prototype.needsTemporary=function(t){var e=this,n=function(t,n){return n&&(e._nodeMap.get(n)||n).visit(t)},r=function(t,e){return e.some(function(e){return n(t,e)})};return t.visit({visitBinary:function(t){return n(this,t.left)||n(this,t.right)},visitChain:function(t){return!1},visitConditional:function(t){return n(this,t.condition)||n(this,t.trueExp)||n(this,t.falseExp)},visitFunctionCall:function(t){return!0},visitImplicitReceiver:function(t){return!1},visitInterpolation:function(t){return r(this,t.expressions)},visitKeyedRead:function(t){return!1},visitKeyedWrite:function(t){return!1},visitLiteralArray:function(t){return!0},visitLiteralMap:function(t){return!0},visitLiteralPrimitive:function(t){return!1},visitMethodCall:function(t){return!0},visitPipe:function(t){return!0},visitPrefixNot:function(t){return n(this,t.expression)},visitPropertyRead:function(t){return!1},visitPropertyWrite:function(t){return!1},visitQuote:function(t){return!1},visitSafeMethodCall:function(t){return!0},visitSafePropertyRead:function(t){return!1}})},_AstToIrVisitor.prototype.allocateTemporary=function(){var t=this._currentTemporary++;return this.temporaryCount=Math.max(this._currentTemporary,this.temporaryCount),new a.B(temporaryName(this.bindingIndex,t))},_AstToIrVisitor.prototype.releaseTemporary=function(t){if(this._currentTemporary--,t.name!=temporaryName(this.bindingIndex,this._currentTemporary))throw new Error("Temporary "+t.name+" released out of order")},_AstToIrVisitor}()},function(t,e,n){"use strict";function buildView(t,e,r){var i=new k(t,r);return n.i(p.c)(i,e,t.declarationElement.isNull()?t.declarationElement:t.declarationElement.parent),i.nestedViewCount}function finishView(t,e){t.afterNodes(),createViewTopLevelStmts(t,e),t.nodes.forEach(function(t){t instanceof f.a&&t.hasEmbeddedView&&finishView(t.embeddedView,e)})}function _getOuterContainerOrSelf(t){for(var e=t.view;_isNgContainer(t.parent,e);)t=t.parent;return t}function _getOuterContainerParentOrSelf(t){for(var e=t.view;_isNgContainer(t,e);)t=t.parent;return t}function _isNgContainer(t,e){return!t.isNull()&&t.sourceAst.name===_&&t.view===e}function _mergeHtmlAndDirectiveAttrs(t,e){var r={};return a.b.forEach(t,function(t,e){r[e]=t}),e.forEach(function(t){a.b.forEach(t.hostAttributes,function(t,e){var i=r[e];r[e]=n.i(s.a)(i)?mergeAttributeValue(e,i,t):t})}),mapToKeyValueArray(r)}function _readHtmlAttrs(t){var e={};return t.forEach(function(t){e[t.name]=t.value}),e}function mergeAttributeValue(t,e,n){return t==b||t==y?e+" "+n:n}function mapToKeyValueArray(t){var e=[];return a.b.forEach(t,function(t,n){e.push([n,t])}),a.a.sort(e,function(t,e){return s.g.compare(t[0],e[0])}),e}function createViewTopLevelStmts(t,e){var r=l.h;t.genConfig.genDebugInfo&&(r=l.e("nodeDebugInfos_"+t.component.type.name+t.viewIndex),e.push(r.set(l.g(t.nodes.map(createStaticNodeDebugInfo),new l.q(new l.I(n.i(c.d)(c.b.StaticNodeDebugInfo)),[l.d.Const]))).toDeclStmt(null,[l.u.Final])));var i=l.e("renderType_"+t.component.type.name);0===t.viewIndex&&e.push(i.set(l.h).toDeclStmt(l.c(n.i(c.d)(c.b.RenderComponentType))));var o=createViewClass(t,i,r);e.push(o),e.push(createViewFactory(t,o,i))}function createStaticNodeDebugInfo(t){var e=t instanceof f.a?t:null,r=[],i=l.h,o=[];return n.i(s.a)(e)&&(r=e.getProviderTokens(),n.i(s.a)(e.component)&&(i=n.i(d.e)(n.i(c.c)(e.component.type))),a.b.forEach(e.referenceTokens,function(t,e){o.push([e,n.i(s.a)(t)?n.i(d.e)(t):l.h])})),l.b(n.i(c.d)(c.b.StaticNodeDebugInfo)).instantiate([l.g(r,new l.q(l.l,[l.d.Const])),i,l.f(o,new l.w(l.l,[l.d.Const]))],l.c(n.i(c.d)(c.b.StaticNodeDebugInfo),null,[l.d.Const]))}function createViewClass(t,e,r){var i=[new l.k(m.e.viewUtils.name,l.c(n.i(c.d)(c.b.ViewUtils))),new l.k(m.e.parentInjector.name,l.c(n.i(c.d)(c.b.Injector))),new l.k(m.e.declarationEl.name,l.c(n.i(c.d)(c.b.AppElement)))],o=[l.e(t.className),e,m.f.fromValue(t.viewType),m.e.viewUtils,m.e.parentInjector,m.e.declarationEl,m.g.fromValue(getChangeDetectionMode(t))];t.genConfig.genDebugInfo&&o.push(r);var a=new l.C(null,i,[l.J.callFn(o).toStmt()]),s=[new l.C("createInternal",[new l.k(x.name,l.K)],generateCreateMethod(t),l.c(n.i(c.d)(c.b.AppElement))),new l.C("injectorGetInternal",[new l.k(m.a.token.name,l.l),new l.k(m.a.requestNodeIndex.name,l.L),new l.k(m.a.notFoundResult.name,l.l)],addReturnValuefNotEmpty(t.injectorGetMethod.finish(),m.a.notFoundResult),l.l),new l.C("detectChangesInternal",[new l.k(m.d.throwOnChange.name,l.D)],generateDetectChangesMethod(t)),new l.C("dirtyParentQueriesInternal",[],t.dirtyParentQueriesMethod.finish()),new l.C("destroyInternal",[],t.destroyMethod.finish()),new l.C("detachInternal",[],t.detachMethod.finish())].concat(t.eventHandlerMethods),u=t.genConfig.genDebugInfo?c.b.DebugAppView:c.b.AppView,p=new l.M(t.className,l.b(n.i(c.d)(u),[getContextType(t)]),t.fields,t.getters,a,s.filter(function(t){return t.body.length>0}));return p}function createViewFactory(t,e,r){var i,o=[new l.k(m.e.viewUtils.name,l.c(n.i(c.d)(c.b.ViewUtils))),new l.k(m.e.parentInjector.name,l.c(n.i(c.d)(c.b.Injector))),new l.k(m.e.declarationEl.name,l.c(n.i(c.d)(c.b.AppElement)))],a=[];if(i=t.component.template.templateUrl==t.component.type.moduleUrl?t.component.type.moduleUrl+" class "+t.component.type.name+" - inline template":t.component.template.templateUrl,0===t.viewIndex){var s=l.f(t.animations.map(function(t){return[t.name,t.fnVariable]}));a=[new l.i(r.identical(l.h),[r.set(m.e.viewUtils.callMethod("createRenderComponentType",[l.a(i),l.a(t.component.template.ngContentSelectors.length),m.h.fromValue(t.component.template.encapsulation),t.styles,s])).toStmt()])]}return l.j(o,a.concat([new l.t(l.e(e.name).instantiate(e.constructorMethod.params.map(function(t){return l.e(t.name)})))]),l.c(n.i(c.d)(c.b.AppView),[getContextType(t)])).toDeclStmt(t.viewFactory.name,[l.u.Final])}function generateCreateMethod(t){var e=l.h,r=[];t.viewType===u.i.COMPONENT&&(e=m.c.renderer.callMethod("createViewRoot",[l.n.prop("declarationAppElement").prop("nativeElement")]),r=[w.set(e).toDeclStmt(l.c(t.genConfig.renderTypes.renderNode),[l.u.Final])]);var i;return i=t.viewType===u.i.HOST?t.nodes[0].appElement:l.h,r.concat(t.createMethod.finish(),[l.n.callMethod("init",[n.i(v.e)(t.rootNodesOrAppElements),l.g(t.nodes.map(function(t){return t.renderNode})),l.g(t.disposables),l.g(t.subscriptions)]).toStmt(),new l.t(i)])}function generateDetectChangesMethod(t){var e=[];if(t.detectChangesInInputsMethod.isEmpty()&&t.updateContentQueriesMethod.isEmpty()&&t.afterContentLifecycleCallbacksMethod.isEmpty()&&t.detectChangesRenderPropertiesMethod.isEmpty()&&t.updateViewQueriesMethod.isEmpty()&&t.afterViewLifecycleCallbacksMethod.isEmpty())return e;a.a.addAll(e,t.detectChangesInInputsMethod.finish()),e.push(l.n.callMethod("detectContentChildrenChanges",[m.d.throwOnChange]).toStmt());var r=t.updateContentQueriesMethod.finish().concat(t.afterContentLifecycleCallbacksMethod.finish());r.length>0&&e.push(new l.i(l.A(m.d.throwOnChange),r)),a.a.addAll(e,t.detectChangesRenderPropertiesMethod.finish()),e.push(l.n.callMethod("detectViewChildrenChanges",[m.d.throwOnChange]).toStmt());var i=t.updateViewQueriesMethod.finish().concat(t.afterViewLifecycleCallbacksMethod.finish());i.length>0&&e.push(new l.i(l.A(m.d.throwOnChange),i));var o=[],s=l.N(e);return a.d.has(s,m.d.changed.name)&&o.push(m.d.changed.set(l.a(!0)).toDeclStmt(l.D)),a.d.has(s,m.d.changes.name)&&o.push(m.d.changes.set(l.h).toDeclStmt(new l.w(l.c(n.i(c.d)(c.b.SimpleChange))))),a.d.has(s,m.d.valUnwrapper.name)&&o.push(m.d.valUnwrapper.set(l.b(n.i(c.d)(c.b.ValueUnwrapper)).instantiate([])).toDeclStmt(null,[l.u.Final])),o.concat(e)}function addReturnValuefNotEmpty(t,e){return t.length>0?t.concat([new l.t(e)]):t}function getContextType(t){return t.viewType===u.i.COMPONENT?l.c(t.component.type):l.l}function getChangeDetectionMode(t){var e;return e=t.viewType===u.i.COMPONENT?n.i(u.X)(t.component.changeDetection)?u.m.CheckAlways:u.m.CheckOnce:u.m.CheckAlways}var r=n(0),i=n(266),o=n(20),a=n(6),s=n(3),c=n(16),l=n(7),u=n(17),p=n(42),d=n(23),f=n(288),h=n(290),m=n(68),v=n(81);n.d(e,"c",function(){return C}),n.d(e,"d",function(){return S}),e.a=buildView,e.b=finishView;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var g="$implicit",b="class",y="style",_="ng-container",w=l.e("parentRenderNode"),x=l.e("rootSelector"),C=function(){function ViewFactoryDependency(t,e){this.comp=t,this.placeholder=e}return ViewFactoryDependency}(),S=function(){function ComponentFactoryDependency(t,e){this.comp=t,this.placeholder=e}return ComponentFactoryDependency}(),k=function(){function ViewBuilderVisitor(t,e){this.view=t,this.targetDependencies=e,this.nestedViewCount=0,this._animationCompiler=new i.a}return ViewBuilderVisitor.prototype._isRootNode=function(t){return t.view!==this.view},ViewBuilderVisitor.prototype._addRootNodeAndProject=function(t){var e=_getOuterContainerOrSelf(t),r=e.parent,i=e.sourceAst.ngContentIndex,o=t instanceof f.a&&t.hasViewContainer?t.appElement:null;this._isRootNode(r)?this.view.viewType!==u.i.COMPONENT&&this.view.rootNodesOrAppElements.push(n.i(s.a)(o)?o:t.renderNode):n.i(s.a)(r.component)&&n.i(s.a)(i)&&r.addContentNode(i,n.i(s.a)(o)?o:t.renderNode)},ViewBuilderVisitor.prototype._getParentRenderNode=function(t){return t=_getOuterContainerParentOrSelf(t),this._isRootNode(t)?this.view.viewType===u.i.COMPONENT?w:l.h:n.i(s.a)(t.component)&&t.component.template.encapsulation!==r.ViewEncapsulation.Native?l.h:t.renderNode},ViewBuilderVisitor.prototype.visitBoundText=function(t,e){return this._visitText(t,"",e)},ViewBuilderVisitor.prototype.visitText=function(t,e){return this._visitText(t,t.value,e)},ViewBuilderVisitor.prototype._visitText=function(t,e,n){var r="_text_"+this.view.nodes.length;this.view.fields.push(new l.s(r,l.c(this.view.genConfig.renderTypes.renderText)));var i=l.n.prop(r),o=new f.b(n,this.view,this.view.nodes.length,i,t),a=l.n.prop(r).set(m.c.renderer.callMethod("createText",[this._getParentRenderNode(n),l.a(e),this.view.createMethod.resetDebugInfoExpr(this.view.nodes.length,t)])).toStmt();return this.view.nodes.push(o),this.view.createMethod.addStmt(a),this._addRootNodeAndProject(o),i},ViewBuilderVisitor.prototype.visitNgContent=function(t,e){this.view.createMethod.resetDebugInfo(null,t);var r=this._getParentRenderNode(e),i=m.c.projectableNodes.key(l.a(t.index),new l.q(l.c(this.view.genConfig.renderTypes.renderNode)));return r!==l.h?this.view.createMethod.addStmt(m.c.renderer.callMethod("projectNodes",[r,l.b(n.i(c.d)(c.b.flattenNestedViewRenderNodes)).callFn([i])]).toStmt()):this._isRootNode(e)?this.view.viewType!==u.i.COMPONENT&&this.view.rootNodesOrAppElements.push(i):n.i(s.a)(e.component)&&n.i(s.a)(t.ngContentIndex)&&e.addContentNode(t.ngContentIndex,i),null},ViewBuilderVisitor.prototype.visitElement=function(t,e){var r,i=this,a=this.view.nodes.length,c=this.view.createMethod.resetDebugInfoExpr(a,t);r=0===a&&this.view.viewType===u.i.HOST?l.n.callMethod("selectOrCreateHostElement",[l.a(t.name),x,c]):t.name===_?m.c.renderer.callMethod("createTemplateAnchor",[this._getParentRenderNode(e),c]):m.c.renderer.callMethod("createElement",[this._getParentRenderNode(e),l.a(t.name),c]);var d="_el_"+a;this.view.fields.push(new l.s(d,l.c(this.view.genConfig.renderTypes.renderElement))),this.view.createMethod.addStmt(l.n.prop(d).set(r).toStmt());for(var h=l.n.prop(d),g=t.directives.map(function(t){return t.directive}),b=g.find(function(t){return t.isComponent}),y=_readHtmlAttrs(t.attrs),w=_mergeHtmlAndDirectiveAttrs(y,g),k=0;k<w.length;k++){var E=w[k][0];if(t.name!==_){var P=w[k][1];this.view.createMethod.addStmt(m.c.renderer.callMethod("setElementAttribute",[h,l.a(E),l.a(P)]).toStmt())}}var A=new f.a(e,this.view,a,h,t,b,g,t.providers,t.hasViewContainer,(!1),t.references);this.view.nodes.push(A);var T=null;if(n.i(s.a)(b)){var O=new o.a({name:n.i(v.d)(b,0)});this.targetDependencies.push(new C(b.type,O));var M=b.entryComponents.map(function(t){var e=new o.a({name:t.name});return i.targetDependencies.push(new S(t,e)),e});A.createComponentFactoryResolver(M),T=l.e("compView_"+a),A.setComponentView(T),this.view.createMethod.addStmt(T.set(l.b(O).callFn([m.c.viewUtils,A.injector,A.appElement])).toDeclStmt())}if(A.beforeChildren(),this._addRootNodeAndProject(A),n.i(p.c)(this,t.children,A),A.afterChildren(this.view.nodes.length-a-1),n.i(s.a)(T)){var D;D=this.view.component.type.isHost?m.c.projectableNodes:l.g(A.contentNodesByNgContentIndex.map(function(t){return n.i(v.e)(t)})),this.view.createMethod.addStmt(T.callMethod("create",[A.getComponent(),D,l.h]).toStmt())}return null},ViewBuilderVisitor.prototype.visitEmbeddedTemplate=function(t,e){var n=this.view.nodes.length,r="_anchor_"+n;this.view.fields.push(new l.s(r,l.c(this.view.genConfig.renderTypes.renderComment))),this.view.createMethod.addStmt(l.n.prop(r).set(m.c.renderer.callMethod("createTemplateAnchor",[this._getParentRenderNode(e),this.view.createMethod.resetDebugInfoExpr(n,t)])).toStmt());var i=l.n.prop(r),o=t.variables.map(function(t){return[t.value.length>0?t.value:g,t.name]}),a=t.directives.map(function(t){return t.directive}),s=new f.a(e,this.view,n,i,t,null,a,t.providers,t.hasViewContainer,(!0),t.references);this.view.nodes.push(s);var c=this._animationCompiler.compileComponent(this.view.component,[t]);this.nestedViewCount++;var u=new h.a(this.view.component,this.view.genConfig,this.view.pipeMetas,l.h,c.triggers,this.view.viewIndex+this.nestedViewCount,s,o);return this.nestedViewCount+=buildView(u,t.children,this.targetDependencies),s.beforeChildren(),this._addRootNodeAndProject(s),s.afterChildren(0),null},ViewBuilderVisitor.prototype.visitAttr=function(t,e){return null},ViewBuilderVisitor.prototype.visitDirective=function(t,e){return null},ViewBuilderVisitor.prototype.visitEvent=function(t,e){return null},ViewBuilderVisitor.prototype.visitReference=function(t,e){return null},ViewBuilderVisitor.prototype.visitVariable=function(t,e){return null},ViewBuilderVisitor.prototype.visitDirectiveProperty=function(t,e){return null},ViewBuilderVisitor.prototype.visitElementProperty=function(t,e){return null},ViewBuilderVisitor}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r}),n.d(e,"b",function(){return i}),n.d(e,"c",function(){return o}),n.d(e,"d",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r="true",i="*",o="*",a="void"},function(t,e,n){"use strict";var r=n(2),i=n(481);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function AnimationGroupPlayer(t){var e=this;this._players=t,this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this.parentPlayer=null;var i=0,o=this._players.length;0==o?n.i(r.s)(function(){return e._onFinish()}):this._players.forEach(function(t){t.parentPlayer=e,t.onDone(function(){++i>=o&&e._onFinish()})})}return AnimationGroupPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,n.i(r.g)(this.parentPlayer)||this.destroy(),this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},AnimationGroupPlayer.prototype.init=function(){this._players.forEach(function(t){return t.init()})},AnimationGroupPlayer.prototype.onStart=function(t){this._onStartFns.push(t)},AnimationGroupPlayer.prototype.onDone=function(t){this._onDoneFns.push(t)},AnimationGroupPlayer.prototype.hasStarted=function(){return this._started},AnimationGroupPlayer.prototype.play=function(){n.i(r.g)(this.parentPlayer)||this.init(),this.hasStarted()||(this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[],this._started=!0),this._players.forEach(function(t){return t.play()})},AnimationGroupPlayer.prototype.pause=function(){this._players.forEach(function(t){return t.pause()})},AnimationGroupPlayer.prototype.restart=function(){this._players.forEach(function(t){return t.restart()})},AnimationGroupPlayer.prototype.finish=function(){this._onFinish(),this._players.forEach(function(t){return t.finish()})},AnimationGroupPlayer.prototype.destroy=function(){this._onFinish(),this._players.forEach(function(t){return t.destroy()})},AnimationGroupPlayer.prototype.reset=function(){this._players.forEach(function(t){return t.reset()})},AnimationGroupPlayer.prototype.setPosition=function(t){this._players.forEach(function(e){e.setPosition(t)})},AnimationGroupPlayer.prototype.getPosition=function(){var t=0;return this._players.forEach(function(e){var n=e.getPosition();t=i.a.min(n,t)}),t},AnimationGroupPlayer}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function AnimationTransitionEvent(t){var e=t.fromState,n=t.toState,r=t.totalTime;this.fromState=e,this.toState=n,this.totalTime=r}return AnimationTransitionEvent}()},function(t,e,n){"use strict";function animate(t,e){void 0===e&&(e=null);var i=e;if(!n.i(r.g)(i)){var o={};i=new d([o],1)}return new f(t,i)}function group(t){return new v(t)}function sequence(t){return new m(t)}function style(t){var e,i=null;return n.i(r.d)(t)?e=[t]:(e=n.i(r.h)(t)?t:[t],e.forEach(function(t){var e=t.offset;n.i(r.g)(e)&&(i=null==i?r.t.parseFloat(e):i)})),new d(e,i)}function state(t,e){return new c(t,e)}function keyframes(t){return new p(t)}function transition(t,e){var i=n.i(r.h)(e)?new m(e):e;return new l(t,i)}function trigger(t,e){return new a(t,e)}var r=n(2);n.d(e,"AUTO_STYLE",function(){return o}),n.d(e,"AnimationEntryMetadata",function(){return a}),n.d(e,"AnimationStateMetadata",function(){return s}),n.d(e,"AnimationStateDeclarationMetadata",function(){return c}),n.d(e,"AnimationStateTransitionMetadata",function(){return l}),n.d(e,"AnimationMetadata",function(){return u}),n.d(e,"AnimationKeyframesSequenceMetadata",function(){return p}),n.d(e,"AnimationStyleMetadata",function(){return d}),n.d(e,"AnimationAnimateMetadata",function(){return f}),n.d(e,"AnimationWithStepsMetadata",function(){return h}),n.d(e,"AnimationSequenceMetadata",function(){return m}),n.d(e,"AnimationGroupMetadata",function(){return v}),e.animate=animate,e.group=group,e.sequence=sequence,e.style=style,e.state=state,e.keyframes=keyframes,e.transition=transition,e.trigger=trigger;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},o="*",a=function(){function AnimationEntryMetadata(t,e){this.name=t,this.definitions=e}return AnimationEntryMetadata}(),s=function(){function AnimationStateMetadata(){}return AnimationStateMetadata}(),c=function(t){function AnimationStateDeclarationMetadata(e,n){t.call(this),this.stateNameExpr=e,this.styles=n}return i(AnimationStateDeclarationMetadata,t),AnimationStateDeclarationMetadata}(s),l=function(t){function AnimationStateTransitionMetadata(e,n){t.call(this),this.stateChangeExpr=e,this.steps=n}return i(AnimationStateTransitionMetadata,t),AnimationStateTransitionMetadata}(s),u=function(){function AnimationMetadata(){}return AnimationMetadata}(),p=function(t){function AnimationKeyframesSequenceMetadata(e){t.call(this),this.steps=e}return i(AnimationKeyframesSequenceMetadata,t),AnimationKeyframesSequenceMetadata}(u),d=function(t){function AnimationStyleMetadata(e,n){void 0===n&&(n=null),t.call(this),this.styles=e,this.offset=n}return i(AnimationStyleMetadata,t),AnimationStyleMetadata}(u),f=function(t){function AnimationAnimateMetadata(e,n){t.call(this),this.timings=e,this.styles=n}return i(AnimationAnimateMetadata,t),AnimationAnimateMetadata}(u),h=function(t){function AnimationWithStepsMetadata(){t.call(this)}return i(AnimationWithStepsMetadata,t),Object.defineProperty(AnimationWithStepsMetadata.prototype,"steps",{get:function(){throw new Error("NOT IMPLEMENTED: Base Class")},enumerable:!0,configurable:!0}),AnimationWithStepsMetadata}(u),m=function(t){function AnimationSequenceMetadata(e){t.call(this),this._steps=e}return i(AnimationSequenceMetadata,t),Object.defineProperty(AnimationSequenceMetadata.prototype,"steps",{get:function(){return this._steps},enumerable:!0,configurable:!0}),AnimationSequenceMetadata}(h),v=function(t){function AnimationGroupMetadata(e){t.call(this),this._steps=e}return i(AnimationGroupMetadata,t),Object.defineProperty(AnimationGroupMetadata.prototype,"steps",{get:function(){return this._steps},enumerable:!0,configurable:!0}),AnimationGroupMetadata}(h)},function(t,e,n){"use strict";var r=n(10),i=n(2);n.d(e,"a",function(){return o}),n.d(e,"b",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function DefaultKeyValueDifferFactory(){}return DefaultKeyValueDifferFactory.prototype.supports=function(t){return t instanceof Map||n.i(i.i)(t)},DefaultKeyValueDifferFactory.prototype.create=function(t){return new a},DefaultKeyValueDifferFactory}(),a=function(){function DefaultKeyValueDiffer(){this._records=new Map,this._mapHead=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return Object.defineProperty(DefaultKeyValueDiffer.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead},enumerable:!0,configurable:!0}),DefaultKeyValueDiffer.prototype.forEachItem=function(t){var e;for(e=this._mapHead;null!==e;e=e._next)t(e)},DefaultKeyValueDiffer.prototype.forEachPreviousItem=function(t){var e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)},DefaultKeyValueDiffer.prototype.forEachChangedItem=function(t){var e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)},DefaultKeyValueDiffer.prototype.forEachAddedItem=function(t){var e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)},DefaultKeyValueDiffer.prototype.forEachRemovedItem=function(t){var e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)},DefaultKeyValueDiffer.prototype.diff=function(t){if(t){if(!(t instanceof Map||n.i(i.i)(t)))throw new Error("Error trying to diff '"+t+"'")}else t=new Map;return this.check(t)?this:null},DefaultKeyValueDiffer.prototype.onDestroy=function(){},DefaultKeyValueDiffer.prototype.check=function(t){var e=this;this._reset();var n=this._records,r=this._mapHead,i=null,o=null,a=!1;return this._forEach(t,function(t,c){var l;r&&c===r.key?(l=r,e._maybeAddToChanges(l,t)):(a=!0,null!==r&&(e._removeFromSeq(i,r),e._addToRemovals(r)),n.has(c)?(l=n.get(c),e._maybeAddToChanges(l,t)):(l=new s(c),n.set(c,l),l.currentValue=t,e._addToAdditions(l))),a&&(e._isInRemovals(l)&&e._removeFromRemovals(l),null==o?e._mapHead=l:o._next=l),i=r,o=l,r=r&&r._next}),this._truncate(i,r),this.isDirty},DefaultKeyValueDiffer.prototype._reset=function(){if(this.isDirty){var t=void 0;for(t=this._previousMapHead=this._mapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=this._removalsTail=null}},DefaultKeyValueDiffer.prototype._truncate=function(t,e){for(;null!==e;){null===t?this._mapHead=null:t._next=null;var n=e._next;this._addToRemovals(e),t=e,e=n}for(var r=this._removalsHead;null!==r;r=r._nextRemoved)r.previousValue=r.currentValue,r.currentValue=null,this._records.delete(r.key)},DefaultKeyValueDiffer.prototype._maybeAddToChanges=function(t,e){n.i(i.o)(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))},DefaultKeyValueDiffer.prototype._isInRemovals=function(t){return t===this._removalsHead||null!==t._nextRemoved||null!==t._prevRemoved},DefaultKeyValueDiffer.prototype._addToRemovals=function(t){null===this._removalsHead?this._removalsHead=this._removalsTail=t:(this._removalsTail._nextRemoved=t,t._prevRemoved=this._removalsTail,this._removalsTail=t)},DefaultKeyValueDiffer.prototype._removeFromSeq=function(t,e){var n=e._next;null===t?this._mapHead=n:t._next=n,e._next=null},DefaultKeyValueDiffer.prototype._removeFromRemovals=function(t){var e=t._prevRemoved,n=t._nextRemoved;null===e?this._removalsHead=n:e._nextRemoved=n,null===n?this._removalsTail=e:n._prevRemoved=e,t._prevRemoved=t._nextRemoved=null},DefaultKeyValueDiffer.prototype._addToAdditions=function(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)},DefaultKeyValueDiffer.prototype._addToChanges=function(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)},DefaultKeyValueDiffer.prototype.toString=function(){var t,e=[],r=[],o=[],a=[],s=[];for(t=this._mapHead;null!==t;t=t._next)e.push(n.i(i.a)(t));for(t=this._previousMapHead;null!==t;t=t._nextPrevious)r.push(n.i(i.a)(t));for(t=this._changesHead;null!==t;t=t._nextChanged)o.push(n.i(i.a)(t));for(t=this._additionsHead;null!==t;t=t._nextAdded)a.push(n.i(i.a)(t));for(t=this._removalsHead;null!==t;t=t._nextRemoved)s.push(n.i(i.a)(t));return"map: "+e.join(", ")+"\nprevious: "+r.join(", ")+"\nadditions: "+a.join(", ")+"\nchanges: "+o.join(", ")+"\nremovals: "+s.join(", ")+"\n"},DefaultKeyValueDiffer.prototype._forEach=function(t,e){t instanceof Map?t.forEach(e):r.f.forEach(t,e)},DefaultKeyValueDiffer}(),s=function(){function KeyValueChangeRecord(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._nextAdded=null,this._nextRemoved=null,this._prevRemoved=null,this._nextChanged=null}return KeyValueChangeRecord.prototype.toString=function(){return n.i(i.o)(this.previousValue,this.currentValue)?n.i(i.a)(this.key):n.i(i.a)(this.key)+"["+n.i(i.a)(this.previousValue)+"->"+n.i(i.a)(this.currentValue)+"]"},KeyValueChangeRecord}()},function(t,e,n){"use strict";var r=n(35),i=n(10),o=n(2);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function IterableDiffers(t){this.factories=t}return IterableDiffers.create=function(t,e){if(n.i(o.g)(e)){var r=i.a.clone(e.factories);return t=t.concat(r),new IterableDiffers(t)}return new IterableDiffers(t)},IterableDiffers.extend=function(t){return{provide:IterableDiffers,useFactory:function(e){if(n.i(o.f)(e))throw new Error("Cannot extend IterableDiffers without a parent injector");return IterableDiffers.create(t,e)},deps:[[IterableDiffers,new r.SkipSelfMetadata,new r.OptionalMetadata]]}},IterableDiffers.prototype.find=function(t){var e=this.factories.find(function(e){return e.supports(t)});if(n.i(o.g)(e))return e;throw new Error("Cannot find a differ supporting object '"+t+"' of type '"+n.i(o.q)(t)+"'")},IterableDiffers}()},function(t,e,n){"use strict";var r=n(35),i=n(10),o=n(2);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function KeyValueDiffers(t){this.factories=t}return KeyValueDiffers.create=function(t,e){if(n.i(o.g)(e)){var r=i.a.clone(e.factories);return t=t.concat(r),new KeyValueDiffers(t)}return new KeyValueDiffers(t)},KeyValueDiffers.extend=function(t){return{provide:KeyValueDiffers,useFactory:function(e){if(n.i(o.f)(e))throw new Error("Cannot extend KeyValueDiffers without a parent injector");return KeyValueDiffers.create(t,e)},deps:[[KeyValueDiffers,new r.SkipSelfMetadata,new r.OptionalMetadata]]}},KeyValueDiffers.prototype.find=function(t){var e=this.factories.find(function(e){return e.supports(t)});if(n.i(o.g)(e))return e;throw new Error("Cannot find a differ supporting object '"+t+"'")},KeyValueDiffers}()},function(t,e,n){"use strict";function asNativeElements(t){return t.map(function(t){return t.nativeElement})}function _queryElementChildren(t,e,n){t.childNodes.forEach(function(t){t instanceof c&&(e(t)&&n.push(t),_queryElementChildren(t,e,n))})}function _queryNodeChildren(t,e,n){t instanceof c&&t.childNodes.forEach(function(t){e(t)&&n.push(t),t instanceof c&&_queryNodeChildren(t,e,n)})}function getDebugNode(t){return l.get(t)}function indexDebugNode(t){l.set(t.nativeNode,t)}function removeDebugNodeFromIndex(t){l.delete(t.nativeNode)}var r=n(10),i=n(2);n.d(e,"f",function(){return a}),n.d(e,"d",function(){return s}),n.d(e,"a",function(){return c}),e.g=asNativeElements,e.c=getDebugNode,e.b=indexDebugNode,e.e=removeDebugNodeFromIndex;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(){function EventListener(t,e){this.name=t,this.callback=e}return EventListener}(),s=function(){function DebugNode(t,e,r){this._debugInfo=r,this.nativeNode=t,n.i(i.g)(e)&&e instanceof c?e.addChild(this):this.parent=null,this.listeners=[]}return Object.defineProperty(DebugNode.prototype,"injector",{get:function(){return n.i(i.g)(this._debugInfo)?this._debugInfo.injector:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugNode.prototype,"componentInstance",{get:function(){return n.i(i.g)(this._debugInfo)?this._debugInfo.component:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugNode.prototype,"context",{get:function(){return n.i(i.g)(this._debugInfo)?this._debugInfo.context:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugNode.prototype,"references",{get:function(){return n.i(i.g)(this._debugInfo)?this._debugInfo.references:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugNode.prototype,"providerTokens",{get:function(){return n.i(i.g)(this._debugInfo)?this._debugInfo.providerTokens:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugNode.prototype,"source",{get:function(){return n.i(i.g)(this._debugInfo)?this._debugInfo.source:null},enumerable:!0,configurable:!0}),DebugNode}(),c=function(t){function DebugElement(e,n,r){t.call(this,e,n,r),this.properties={},this.attributes={},this.classes={},this.styles={},this.childNodes=[],this.nativeElement=e}return o(DebugElement,t),DebugElement.prototype.addChild=function(t){n.i(i.g)(t)&&(this.childNodes.push(t),t.parent=this)},DebugElement.prototype.removeChild=function(t){var e=this.childNodes.indexOf(t);e!==-1&&(t.parent=null,this.childNodes.splice(e,1))},DebugElement.prototype.insertChildrenAfter=function(t,e){var o=this.childNodes.indexOf(t);if(o!==-1){var a=this.childNodes.slice(0,o+1),s=this.childNodes.slice(o+1);this.childNodes=r.a.concat(r.a.concat(a,e),s);for(var c=0;c<e.length;++c){var l=e[c];n.i(i.g)(l.parent)&&l.parent.removeChild(l),l.parent=this}}},DebugElement.prototype.query=function(t){var e=this.queryAll(t);return e.length>0?e[0]:null},DebugElement.prototype.queryAll=function(t){var e=[];return _queryElementChildren(this,t,e),e},DebugElement.prototype.queryAllNodes=function(t){var e=[];return _queryNodeChildren(this,t,e),e},Object.defineProperty(DebugElement.prototype,"children",{get:function(){var t=[];return this.childNodes.forEach(function(e){e instanceof DebugElement&&t.push(e)}),t},enumerable:!0,configurable:!0}),DebugElement.prototype.triggerEventHandler=function(t,e){this.listeners.forEach(function(n){n.name==t&&n.callback(e)})},DebugElement}(s),l=new Map},function(t,e,n){"use strict";function findFirstClosedCycle(t){for(var e=[],n=0;n<t.length;++n){if(r.a.contains(e,t[n]))return e.push(t[n]),e;e.push(t[n])}return e}function constructResolvingPath(t){if(t.length>1){var e=findFirstClosedCycle(r.a.reversed(t)),i=e.map(function(t){return n.i(o.a)(t.token)});return" ("+i.join(" -> ")+")"}return""}var r=n(10),i=n(30),o=n(2);n.d(e,"f",function(){return s}),n.d(e,"h",function(){return c}),n.d(e,"e",function(){return l}),n.d(e,"g",function(){return u}),n.d(e,"b",function(){return p}),n.d(e,"c",function(){return d}),n.d(e,"d",function(){return f}),n.d(e,"a",function(){return h});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s=function(t){function AbstractProviderError(e,n,r){t.call(this,"DI Error"),this.keys=[n],this.injectors=[e],this.constructResolvingMessage=r,this.message=this.constructResolvingMessage(this.keys)}return a(AbstractProviderError,t),AbstractProviderError.prototype.addKey=function(t,e){this.injectors.push(t),this.keys.push(e),this.message=this.constructResolvingMessage(this.keys)},AbstractProviderError}(i.b),c=function(t){function NoProviderError(e,i){t.call(this,e,i,function(t){var e=n.i(o.a)(r.a.first(t).token);return"No provider for "+e+"!"+constructResolvingPath(t)})}return a(NoProviderError,t),NoProviderError}(s),l=function(t){function CyclicDependencyError(e,n){t.call(this,e,n,function(t){return"Cannot instantiate cyclic dependency!"+constructResolvingPath(t)})}return a(CyclicDependencyError,t),CyclicDependencyError}(s),u=function(t){function InstantiationError(e,n,r,i){t.call(this,"DI Error",n),this.keys=[i],this.injectors=[e]}return a(InstantiationError,t),InstantiationError.prototype.addKey=function(t,e){this.injectors.push(t),this.keys.push(e)},Object.defineProperty(InstantiationError.prototype,"message",{get:function(){var t=n.i(o.a)(r.a.first(this.keys).token);return this.originalError.message+": Error during instantiation of "+t+"!"+constructResolvingPath(this.keys)+"."},enumerable:!0,configurable:!0}),Object.defineProperty(InstantiationError.prototype,"causeKey",{get:function(){return this.keys[0]},enumerable:!0,configurable:!0}),InstantiationError}(i.c),p=function(t){function InvalidProviderError(e){t.call(this,"Invalid provider - only instances of Provider and Type are allowed, got: "+e)}return a(InvalidProviderError,t),InvalidProviderError}(i.b),d=function(t){function NoAnnotationError(e,n){t.call(this,NoAnnotationError._genMessage(e,n))}return a(NoAnnotationError,t),NoAnnotationError._genMessage=function(t,e){for(var r=[],i=0,a=e.length;i<a;i++){var s=e[i];n.i(o.f)(s)||0==s.length?r.push("?"):r.push(s.map(o.a).join(" "))}return"Cannot resolve all parameters for '"+n.i(o.a)(t)+"'("+r.join(", ")+"). Make sure that all the parameters are decorated with Inject or have valid type annotations and that '"+n.i(o.a)(t)+"' is decorated with Injectable."},NoAnnotationError}(i.b),f=function(t){function OutOfBoundsError(e){t.call(this,"Index "+e+" is out-of-bounds.")}return a(OutOfBoundsError,t),OutOfBoundsError}(i.b),h=function(t){function MixingMultiProvidersWithRegularProvidersError(e,n){t.call(this,"Cannot mix multi providers and regular providers, got: "+e.toString()+" "+n.toString())}return a(MixingMultiProvidersWithRegularProvidersError,t),MixingMultiProvidersWithRegularProvidersError}(i.b)},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function ErrorHandler(t){void 0===t&&(t=!0),this._console=console,this.rethrowError=t}return ErrorHandler.prototype.handleError=function(t){var e=this._findOriginalError(t),n=this._findOriginalStack(t),r=this._findContext(t);if(this._console.error("EXCEPTION: "+this._extractMessage(t)),e&&this._console.error("ORIGINAL EXCEPTION: "+this._extractMessage(e)),n&&(this._console.error("ORIGINAL STACKTRACE:"),this._console.error(n)),r&&(this._console.error("ERROR CONTEXT:"),this._console.error(r)),this.rethrowError)throw t},ErrorHandler.prototype._extractMessage=function(t){return t instanceof Error?t.message:t.toString()},ErrorHandler.prototype._findContext=function(t){return t?t.context?t.context:this._findContext(t.originalError):null},ErrorHandler.prototype._findOriginalError=function(t){for(var e=t.originalError;e&&e.originalError;)e=e.originalError;return e},ErrorHandler.prototype._findOriginalStack=function(t){if(!(t instanceof Error))return null;for(var e=t,n=e.stack;e instanceof Error&&e.originalError;)e=e.originalError,e instanceof Error&&e.stack&&(n=e.stack);return n},ErrorHandler}()},function(t,e,n){"use strict";var r=n(167);n.d(e,"a",function(){return i}),n.d(e,"c",function(){return o}),n.d(e,"b",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=new r.a("LocaleId"),o=new r.a("Translations"),a=new r.a("TranslationsFormat")},function(t,e,n){"use strict";var r=n(30),i=n(2),o=n(115);n.d(e,"b",function(){return s}),n.d(e,"a",function(){return u});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s=function(){function ComponentRef(){}return Object.defineProperty(ComponentRef.prototype,"location",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef.prototype,"injector",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef.prototype,"instance",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef.prototype,"hostView",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef.prototype,"changeDetectorRef",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef.prototype,"componentType",{get:function(){return n.i(r.a)()},enumerable:!0,configurable:!0}),ComponentRef}(),c=function(t){function ComponentRef_(e,n){t.call(this),this._hostElement=e,this._componentType=n}return a(ComponentRef_,t),Object.defineProperty(ComponentRef_.prototype,"location",{get:function(){return this._hostElement.elementRef},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef_.prototype,"injector",{get:function(){return this._hostElement.injector},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef_.prototype,"instance",{get:function(){return this._hostElement.component},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef_.prototype,"hostView",{get:function(){return this._hostElement.parentView.ref},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef_.prototype,"changeDetectorRef",{get:function(){return this._hostElement.parentView.ref},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef_.prototype,"componentType",{get:function(){return this._componentType},enumerable:!0,configurable:!0}),ComponentRef_.prototype.destroy=function(){this._hostElement.parentView.destroy()},ComponentRef_.prototype.onDestroy=function(t){this.hostView.onDestroy(t)},ComponentRef_}(s),l=new Object,u=function(){function ComponentFactory(t,e,n){this.selector=t,this._viewFactory=e,this._componentType=n}return Object.defineProperty(ComponentFactory.prototype,"componentType",{get:function(){return this._componentType},enumerable:!0,configurable:!0}),ComponentFactory.prototype.create=function(t,e,r){void 0===e&&(e=null),void 0===r&&(r=null);var a=t.get(o.a);n.i(i.f)(e)&&(e=[]);var s=this._viewFactory(a,t,null),u=s.create(l,e,r);return new c(u,this._componentType)},ComponentFactory}()},function(t,e,n){"use strict";var r=n(10),i=n(2),o=n(114);n.d(e,"b",function(){return a}),n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function StaticNodeDebugInfo(t,e,n){this.providerTokens=t,this.componentToken=e,this.refTokens=n}return StaticNodeDebugInfo}(),s=function(){function DebugContext(t,e,n,r){this._view=t,this._nodeIndex=e,this._tplRow=n,this._tplCol=r}return Object.defineProperty(DebugContext.prototype,"_staticNodeInfo",{get:function(){return n.i(i.g)(this._nodeIndex)?this._view.staticNodeDebugInfos[this._nodeIndex]:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"component",{get:function(){var t=this._staticNodeInfo;return n.i(i.g)(t)&&n.i(i.g)(t.componentToken)?this.injector.get(t.componentToken):null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"componentRenderElement",{get:function(){for(var t=this._view;n.i(i.g)(t.declarationAppElement)&&t.type!==o.a.COMPONENT;)t=t.declarationAppElement.parentView;return n.i(i.g)(t.declarationAppElement)?t.declarationAppElement.nativeElement:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"injector",{get:function(){return this._view.injector(this._nodeIndex)},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"renderNode",{get:function(){return n.i(i.g)(this._nodeIndex)&&this._view.allNodes?this._view.allNodes[this._nodeIndex]:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"providerTokens",{get:function(){var t=this._staticNodeInfo;return n.i(i.g)(t)?t.providerTokens:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"source",{get:function(){return this._view.componentType.templateUrl+":"+this._tplRow+":"+this._tplCol},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"references",{get:function(){var t=this,e={},o=this._staticNodeInfo;if(n.i(i.g)(o)){var a=o.refTokens;r.f.forEach(a,function(r,o){var a;a=n.i(i.f)(r)?t._view.allNodes?t._view.allNodes[t._nodeIndex]:null:t._view.injectorGet(r,t._nodeIndex,null),e[o]=a})}return e},enumerable:!0,configurable:!0}),DebugContext}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function ElementRef(t){this.nativeElement=t}return ElementRef}()},function(t,e,n){"use strict";var r=n(109),i=n(30);n.d(e,"a",function(){return a}),n.d(e,"c",function(){return s}),n.d(e,"b",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(t){function ExpressionChangedAfterItHasBeenCheckedError(e,n){var i="Expression has changed after it was checked. Previous value: '"+e+"'. Current value: '"+n+"'.";e===r.a&&(i+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?"),t.call(this,i)}return o(ExpressionChangedAfterItHasBeenCheckedError,t),ExpressionChangedAfterItHasBeenCheckedError}(i.b),s=function(t){function ViewWrappedError(e,n){t.call(this,"Error in "+n.source,e),this.context=n}return o(ViewWrappedError,t),ViewWrappedError}(i.c),c=function(t){function ViewDestroyedError(e){t.call(this,"Attempt to use a destroyed view: "+e)}return o(ViewDestroyedError,t),ViewDestroyedError}(i.b)},function(t,e,n){"use strict";var r=n(112),i=n(30),o=n(2),a=n(113);n.d(e,"c",function(){return c}),n.d(e,"b",function(){return l}),n.d(e,"a",function(){return p});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},c=function(){function NgModuleRef(){}return Object.defineProperty(NgModuleRef.prototype,"injector",{get:function(){return n.i(i.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(NgModuleRef.prototype,"componentFactoryResolver",{get:function(){return n.i(i.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(NgModuleRef.prototype,"instance",{get:function(){return n.i(i.a)()},enumerable:!0,configurable:!0}),NgModuleRef}(),l=function(){function NgModuleFactory(t,e){this._injectorClass=t,this._moduleType=e}return Object.defineProperty(NgModuleFactory.prototype,"moduleType",{get:function(){return this._moduleType},enumerable:!0,configurable:!0}),NgModuleFactory.prototype.create=function(t){t||(t=r.b.NULL);var e=new this._injectorClass(t);return e.create(),e},NgModuleFactory}(),u=new Object,p=function(t){function NgModuleInjector(e,n,r){t.call(this,n,e.get(a.a,a.a.NULL)),this.parent=e,this.bootstrapFactories=r,this._destroyListeners=[],this._destroyed=!1}return s(NgModuleInjector,t),NgModuleInjector.prototype.create=function(){this.instance=this.createInternal()},NgModuleInjector.prototype.get=function(t,e){if(void 0===e&&(e=r.a),t===r.b||t===a.a)return this;var n=this.getInternal(t,u);return n===u?this.parent.get(t,e):n},Object.defineProperty(NgModuleInjector.prototype,"injector",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(NgModuleInjector.prototype,"componentFactoryResolver",{get:function(){return this},enumerable:!0,configurable:!0}),NgModuleInjector.prototype.destroy=function(){if(this._destroyed)throw new Error("The ng module "+n.i(o.a)(this.instance.constructor)+" has already been destroyed.");this._destroyed=!0,this.destroyInternal(),this._destroyListeners.forEach(function(t){return t()})},NgModuleInjector.prototype.onDestroy=function(t){this._destroyListeners.push(t)},NgModuleInjector}(a.b)},function(t,e,n){"use strict";n.d(e,"b",function(){return i}),n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=function(){function TemplateRef(){}return Object.defineProperty(TemplateRef.prototype,"elementRef",{get:function(){return null},enumerable:!0,configurable:!0}),TemplateRef}(),o=function(t){function TemplateRef_(e,n){t.call(this),this._appElement=e,this._viewFactory=n}return r(TemplateRef_,t),TemplateRef_.prototype.createEmbeddedView=function(t){var e=this._viewFactory(this._appElement.parentView.viewUtils,this._appElement.parentInjector,this._appElement);return e.create(t||{},null,null),e.ref},Object.defineProperty(TemplateRef_.prototype,"elementRef",{get:function(){return this._appElement.elementRef},enumerable:!0,configurable:!0}),TemplateRef_}(i)},function(t,e,n){"use strict";var r=n(10),i=n(30),o=n(2),a=n(116);n.d(e,"b",function(){return s}),n.d(e,"a",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function ViewContainerRef(){}return Object.defineProperty(ViewContainerRef.prototype,"element",{get:function(){return n.i(i.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainerRef.prototype,"injector",{get:function(){return n.i(i.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainerRef.prototype,"parentInjector",{get:function(){return n.i(i.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainerRef.prototype,"length",{get:function(){return n.i(i.a)()},enumerable:!0,configurable:!0}),ViewContainerRef}(),c=function(){function ViewContainerRef_(t){this._element=t,this._createComponentInContainerScope=n.i(a.a)("ViewContainerRef#createComponent()"),this._insertScope=n.i(a.a)("ViewContainerRef#insert()"),this._removeScope=n.i(a.a)("ViewContainerRef#remove()"),this._detachScope=n.i(a.a)("ViewContainerRef#detach()")}return ViewContainerRef_.prototype.get=function(t){return this._element.nestedViews[t].ref},Object.defineProperty(ViewContainerRef_.prototype,"length",{get:function(){var t=this._element.nestedViews;return n.i(o.g)(t)?t.length:0},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainerRef_.prototype,"element",{get:function(){return this._element.elementRef},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainerRef_.prototype,"injector",{get:function(){return this._element.injector},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainerRef_.prototype,"parentInjector",{get:function(){return this._element.parentInjector},enumerable:!0,configurable:!0}),ViewContainerRef_.prototype.createEmbeddedView=function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=-1);var r=t.createEmbeddedView(e);return this.insert(r,n),r},ViewContainerRef_.prototype.createComponent=function(t,e,r,i){void 0===e&&(e=-1),void 0===r&&(r=null),void 0===i&&(i=null);var s=this._createComponentInContainerScope(),c=n.i(o.g)(r)?r:this._element.parentInjector,l=t.create(c,i);return this.insert(l.hostView,e),n.i(a.b)(s,l)},ViewContainerRef_.prototype.insert=function(t,e){void 0===e&&(e=-1);var r=this._insertScope();e==-1&&(e=this.length);var i=t;return this._element.attachView(i.internalView,e),n.i(a.b)(r,i)},ViewContainerRef_.prototype.move=function(t,e){var r=this._insertScope();if(e!=-1){var i=t;return this._element.moveView(i.internalView,e),n.i(a.b)(r,i)}},ViewContainerRef_.prototype.indexOf=function(t){return r.a.indexOf(this._element.nestedViews,t.internalView)},ViewContainerRef_.prototype.remove=function(t){void 0===t&&(t=-1);var e=this._removeScope();t==-1&&(t=this.length-1);var r=this._element.detachView(t);r.destroy(),n.i(a.b)(e)},ViewContainerRef_.prototype.detach=function(t){void 0===t&&(t=-1);var e=this._detachScope();t==-1&&(t=this.length-1);var r=this._element.detachView(t);return n.i(a.b)(e,r.ref)},ViewContainerRef_.prototype.clear=function(){for(var t=this.length-1;t>=0;t--)this.remove(t)},ViewContainerRef_}()},function(t,e,n){"use strict";var r=n(110),i=n(30);n.d(e,"c",function(){return a}),n.d(e,"b",function(){return s}),n.d(e,"a",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(){function ViewRef(){}return Object.defineProperty(ViewRef.prototype,"destroyed",{get:function(){return n.i(i.a)()},enumerable:!0,configurable:!0}),ViewRef}(),s=function(t){function EmbeddedViewRef(){t.apply(this,arguments)}return o(EmbeddedViewRef,t),Object.defineProperty(EmbeddedViewRef.prototype,"context",{get:function(){return n.i(i.a)()},enumerable:!0,configurable:!0}),Object.defineProperty(EmbeddedViewRef.prototype,"rootNodes",{get:function(){return n.i(i.a)()},enumerable:!0,configurable:!0}),EmbeddedViewRef}(a),c=function(){function ViewRef_(t){this._view=t,this._view=t,this._originalMode=this._view.cdMode}return Object.defineProperty(ViewRef_.prototype,"internalView",{get:function(){return this._view},enumerable:!0,configurable:!0}),Object.defineProperty(ViewRef_.prototype,"rootNodes",{get:function(){return this._view.flatRootNodes},enumerable:!0,configurable:!0}),Object.defineProperty(ViewRef_.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(ViewRef_.prototype,"destroyed",{get:function(){return this._view.destroyed},enumerable:!0,configurable:!0}),ViewRef_.prototype.markForCheck=function(){this._view.markPathToRootAsCheckOnce()},ViewRef_.prototype.detach=function(){this._view.cdMode=r.b.Detached},ViewRef_.prototype.detectChanges=function(){this._view.detectChanges(!1)},ViewRef_.prototype.checkNoChanges=function(){this._view.detectChanges(!0)},ViewRef_.prototype.reattach=function(){this._view.cdMode=this._originalMode,this.markForCheck()},ViewRef_.prototype.onDestroy=function(t){this._view.disposables.push(t)},ViewRef_.prototype.destroy=function(){this._view.destroy()},ViewRef_}()},function(t,e,n){"use strict";var r=n(313),i=n(314),o=n(316),a=n(117),s=n(315),c=n(317);n.d(e,"Component",function(){return l}),n.d(e,"Directive",function(){return u}),n.d(e,"Attribute",function(){return p}),n.d(e,"ContentChildren",function(){return d}),n.d(e,"ContentChild",function(){return f}),n.d(e,"ViewChildren",function(){return h}),n.d(e,"ViewChild",function(){return m}),n.d(e,"Pipe",function(){return v}),n.d(e,"Input",function(){return g}),n.d(e,"Output",function(){return b}),n.d(e,"HostBinding",function(){return y}),n.d(e,"HostListener",function(){return _}),n.d(e,"NgModule",function(){return w}),n.o(r,"a")&&n.d(e,"AttributeMetadata",function(){return r.a}),n.o(r,"c")&&n.d(e,"ContentChildMetadata",function(){return r.c}),n.o(r,"b")&&n.d(e,"ContentChildrenMetadata",function(){return r.b}),n.o(r,"g")&&n.d(e,"QueryMetadata",function(){return r.g}),n.o(r,"e")&&n.d(e,"ViewChildMetadata",function(){return r.e}),n.o(r,"d")&&n.d(e,"ViewChildrenMetadata",function(){return r.d}),n.o(r,"h")&&n.d(e,"ViewQueryMetadata",function(){return r.h}),n.o(r,"f")&&n.d(e,"ANALYZE_FOR_ENTRY_COMPONENTS",function(){return r.f}),n.o(i,"b")&&n.d(e,"DirectiveMetadata",function(){return i.b}),n.o(i,"f")&&n.d(e,"HostBindingMetadata",function(){return i.f}),n.o(i,"g")&&n.d(e,"HostListenerMetadata",function(){return i.g}),n.o(i,"d")&&n.d(e,"InputMetadata",function(){return i.d}),n.o(i,"e")&&n.d(e,"OutputMetadata",function(){return i.e}),n.o(i,"c")&&n.d(e,"PipeMetadata",function(){return i.c}),n.o(i,"a")&&n.d(e,"ComponentMetadata",function(){return i.a}),n.o(s,"h")&&n.d(e,"AfterContentChecked",function(){return s.h}),n.o(s,"g")&&n.d(e,"AfterContentInit",function(){return s.g}),n.o(s,"i")&&n.d(e,"AfterViewInit",function(){return s.i}),n.o(s,"e")&&n.d(e,"DoCheck",function(){return s.e}),n.o(s,"f")&&n.d(e,"OnChanges",function(){return s.f}),n.o(s,"d")&&n.d(e,"OnDestroy",function(){return s.d}),n.o(s,"c")&&n.d(e,"OnInit",function(){return s.c}),n.o(s,"j")&&n.d(e,"AfterViewChecked",function(){return s.j}),n.o(o,"b")&&n.d(e,"NO_ERRORS_SCHEMA",function(){return o.b}),n.o(o,"a")&&n.d(e,"NgModuleMetadata",function(){return o.a}),n.o(o,"c")&&n.d(e,"CUSTOM_ELEMENTS_SCHEMA",function(){return o.c}),n.o(c,"c")&&n.d(e,"ViewEncapsulation",function(){return c.c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var l=n.i(a.b)(i.a),u=n.i(a.b)(i.b),p=n.i(a.a)(r.a),d=n.i(a.c)(r.b),f=n.i(a.c)(r.c),h=n.i(a.c)(r.d),m=n.i(a.c)(r.e),v=n.i(a.b)(i.c),g=n.i(a.c)(i.d),b=n.i(a.c)(i.e),y=n.i(a.c)(i.f),_=n.i(a.c)(i.g),w=n.i(a.b)(o.a)},function(t,e,n){"use strict";var r=n(111),i=n(83),o=n(167),a=n(2);n.d(e,"f",function(){return c}),n.d(e,"a",function(){return l}),n.d(e,"g",function(){return u}),n.d(e,"b",function(){return p}),n.d(e,"c",function(){return d}),n.d(e,"h",function(){return f}),n.d(e,"d",function(){return h}),n.d(e,"e",function(){return m});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},c=new o.a("AnalyzeForEntryComponents"),l=function(t){function AttributeMetadata(e){t.call(this),this.attributeName=e}return s(AttributeMetadata,t),Object.defineProperty(AttributeMetadata.prototype,"token",{get:function(){return this},enumerable:!0,configurable:!0}),AttributeMetadata.prototype.toString=function(){return"@Attribute("+n.i(a.a)(this.attributeName)+")"},AttributeMetadata}(i.g),u=function(t){function QueryMetadata(e,n){var r=void 0===n?{}:n,i=r.descendants,o=void 0!==i&&i,a=r.first,s=void 0!==a&&a,c=r.read,l=void 0===c?null:c;t.call(this),this._selector=e,this.descendants=o,this.first=s,this.read=l}return s(QueryMetadata,t),Object.defineProperty(QueryMetadata.prototype,"isViewQuery",{get:function(){return!1},enumerable:!0,configurable:!0}),Object.defineProperty(QueryMetadata.prototype,"selector",{get:function(){return n.i(r.a)(this._selector)},enumerable:!0,configurable:!0}),Object.defineProperty(QueryMetadata.prototype,"isVarBindingQuery",{get:function(){return n.i(a.d)(this.selector)},enumerable:!0,configurable:!0}),Object.defineProperty(QueryMetadata.prototype,"varBindings",{get:function(){return a.e.split(this.selector,/\s*,\s*/g)},enumerable:!0,configurable:!0}),QueryMetadata.prototype.toString=function(){return"@Query("+n.i(a.a)(this.selector)+")"},QueryMetadata}(i.g),p=function(t){function ContentChildrenMetadata(e,n){var r=void 0===n?{}:n,i=r.descendants,o=void 0!==i&&i,a=r.read,s=void 0===a?null:a;t.call(this,e,{descendants:o,read:s})}return s(ContentChildrenMetadata,t),ContentChildrenMetadata}(u),d=function(t){function ContentChildMetadata(e,n){var r=(void 0===n?{}:n).read,i=void 0===r?null:r;t.call(this,e,{descendants:!0,first:!0,read:i})}return s(ContentChildMetadata,t),ContentChildMetadata}(u),f=function(t){function ViewQueryMetadata(e,n){var r=void 0===n?{}:n,i=r.descendants,o=void 0!==i&&i,a=r.first,s=void 0!==a&&a,c=r.read,l=void 0===c?null:c;t.call(this,e,{descendants:o,first:s,read:l})}return s(ViewQueryMetadata,t),Object.defineProperty(ViewQueryMetadata.prototype,"isViewQuery",{get:function(){return!0},enumerable:!0,configurable:!0}),ViewQueryMetadata}(u),h=function(t){function ViewChildrenMetadata(e,n){var r=(void 0===n?{}:n).read,i=void 0===r?null:r;t.call(this,e,{descendants:!0,read:i})}return s(ViewChildrenMetadata,t),ViewChildrenMetadata.prototype.toString=function(){return"@ViewChildren("+n.i(a.a)(this.selector)+")"},ViewChildrenMetadata}(f),m=function(t){function ViewChildMetadata(e,n){var r=(void 0===n?{}:n).read,i=void 0===r?null:r;t.call(this,e,{descendants:!0,first:!0,read:i})}return s(ViewChildMetadata,t),ViewChildMetadata}(f)},function(t,e,n){"use strict";var r=n(110),i=n(35),o=n(2);n.d(e,"b",function(){return s}),n.d(e,"a",function(){return c}),n.d(e,"c",function(){return l}),n.d(e,"d",function(){return u}),n.d(e,"e",function(){return p}),n.d(e,"f",function(){return d}),n.d(e,"g",function(){return f});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s=function(t){function DirectiveMetadata(e){var n=void 0===e?{}:e,r=n.selector,i=n.inputs,o=n.outputs,a=n.host,s=n.providers,c=n.exportAs,l=n.queries;t.call(this),this.selector=r,this._inputs=i,this._outputs=o,this.host=a,this.exportAs=c,this.queries=l,this._providers=s}return a(DirectiveMetadata,t),Object.defineProperty(DirectiveMetadata.prototype,"inputs",{get:function(){return this._inputs},enumerable:!0,configurable:!0}),Object.defineProperty(DirectiveMetadata.prototype,"outputs",{get:function(){return this._outputs},enumerable:!0,configurable:!0}),Object.defineProperty(DirectiveMetadata.prototype,"providers",{get:function(){return this._providers},enumerable:!0,configurable:!0}),DirectiveMetadata}(i.InjectableMetadata),c=function(t){function ComponentMetadata(e){var n=void 0===e?{}:e,i=n.selector,o=n.inputs,a=n.outputs,s=n.host,c=n.exportAs,l=n.moduleId,u=n.providers,p=n.viewProviders,d=n.changeDetection,f=void 0===d?r.a.Default:d,h=n.queries,m=n.templateUrl,v=n.template,g=n.styleUrls,b=n.styles,y=n.animations,_=n.encapsulation,w=n.interpolation,x=n.entryComponents;t.call(this,{selector:i,inputs:o,outputs:a,host:s,exportAs:c,providers:u,queries:h}),this.changeDetection=f,this._viewProviders=p,this.templateUrl=m,this.template=v,this.styleUrls=g,this.styles=b,this.encapsulation=_,this.moduleId=l,this.animations=y,this.interpolation=w,this.entryComponents=x}return a(ComponentMetadata,t),Object.defineProperty(ComponentMetadata.prototype,"viewProviders",{get:function(){return this._viewProviders},enumerable:!0,configurable:!0}),ComponentMetadata}(s),l=function(t){function PipeMetadata(e){var n=e.name,r=e.pure;t.call(this),this.name=n,this._pure=r}return a(PipeMetadata,t),Object.defineProperty(PipeMetadata.prototype,"pure",{get:function(){return!n.i(o.g)(this._pure)||this._pure},enumerable:!0,configurable:!0}),PipeMetadata}(i.InjectableMetadata),u=function(){function InputMetadata(t){this.bindingPropertyName=t}return InputMetadata}(),p=function(){function OutputMetadata(t){this.bindingPropertyName=t}return OutputMetadata}(),d=function(){function HostBindingMetadata(t){this.hostPropertyName=t}return HostBindingMetadata}(),f=function(){function HostListenerMetadata(t,e){this.eventName=t,this.args=e}return HostListenerMetadata}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r}),n.d(e,"b",function(){return i}),n.d(e,"f",function(){return o}),n.d(e,"c",function(){return a}),n.d(e,"e",function(){return s}),n.d(e,"d",function(){return c}),n.d(e,"g",function(){return l}),n.d(e,"h",function(){return u}),n.d(e,"i",function(){return p}),n.d(e,"j",function(){return d});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;!function(t){t[t.OnInit=0]="OnInit",t[t.OnDestroy=1]="OnDestroy",t[t.DoCheck=2]="DoCheck",t[t.OnChanges=3]="OnChanges",t[t.AfterContentInit=4]="AfterContentInit",t[t.AfterContentChecked=5]="AfterContentChecked",t[t.AfterViewInit=6]="AfterViewInit",t[t.AfterViewChecked=7]="AfterViewChecked"}(r||(r={}));var i=[r.OnInit,r.OnDestroy,r.DoCheck,r.OnChanges,r.AfterContentInit,r.AfterContentChecked,r.AfterViewInit,r.AfterViewChecked],o=function(){function OnChanges(){}return OnChanges}(),a=function(){function OnInit(){}return OnInit}(),s=function(){function DoCheck(){}return DoCheck}(),c=function(){function OnDestroy(){}return OnDestroy}(),l=function(){function AfterContentInit(){}return AfterContentInit}(),u=function(){function AfterContentChecked(){}return AfterContentChecked}(),p=function(){function AfterViewInit(){}return AfterViewInit}(),d=function(){function AfterViewChecked(){}return AfterViewChecked}()},function(t,e,n){"use strict";var r=n(35);n.d(e,"c",function(){return o}),n.d(e,"b",function(){return a}),n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},o={name:"custom-elements"},a={name:"no-errors-schema"},s=function(t){function NgModuleMetadata(e){void 0===e&&(e={}),t.call(this),this._providers=e.providers,this.declarations=e.declarations,this.imports=e.imports,this.exports=e.exports,this.entryComponents=e.entryComponents,this.bootstrap=e.bootstrap,this.schemas=e.schemas}return i(NgModuleMetadata,t),Object.defineProperty(NgModuleMetadata.prototype,"providers",{get:function(){return this._providers},enumerable:!0,configurable:!0}),NgModuleMetadata}(r.InjectableMetadata)},function(t,e,n){"use strict";n.d(e,"c",function(){return r}),n.d(e,"a",function(){return i}),n.d(e,"b",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;!function(t){t[t.Emulated=0]="Emulated",t[t.Native=1]="Native",t[t.None=2]="None"}(r||(r={}));var i=[r.Emulated,r.Native,r.None],o=function(){function ViewMetadata(t){var e=void 0===t?{}:t,n=e.templateUrl,r=e.template,i=e.encapsulation,o=e.styles,a=e.styleUrls,s=e.animations,c=e.interpolation;this.templateUrl=n,this.template=r,this.styleUrls=a,this.styles=o,this.encapsulation=i,this.animations=s,this.interpolation=c}return ViewMetadata}()},function(t,e,n){"use strict";function convertTsickleDecoratorIntoMetadata(t){return t?t.map(function(t){var e=t.type,n=e.annotationCls,r=t.args?t.args:[],i=Object.create(n.prototype);return n.apply(i,r),i}):[]}var r=n(2),i=n(176);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function ReflectionCapabilities(t){this._reflect=t||r.c.Reflect}return ReflectionCapabilities.prototype.isReflectionEnabled=function(){return!0},ReflectionCapabilities.prototype.factory=function(t){var e=t.prototype;return function(){for(var n=[],r=0;r<arguments.length;r++)n[r-0]=arguments[r];var i=Object.create(e);return t.apply(i,n),i}},ReflectionCapabilities.prototype._zipTypesAndAnnotations=function(t,e){var i;i="undefined"==typeof t?new Array(e.length):new Array(t.length);for(var o=0;o<i.length;o++)"undefined"==typeof t?i[o]=[]:t[o]!=Object?i[o]=[t[o]]:i[o]=[],n.i(r.g)(e)&&n.i(r.g)(e[o])&&(i[o]=i[o].concat(e[o]));return i},ReflectionCapabilities.prototype.parameters=function(t){if(n.i(r.g)(t.parameters))return t.parameters;if(n.i(r.g)(t.ctorParameters)){var e=t.ctorParameters,i=e.map(function(t){return t&&t.type}),o=e.map(function(t){return t&&convertTsickleDecoratorIntoMetadata(t.decorators)});return this._zipTypesAndAnnotations(i,o)}if(n.i(r.g)(this._reflect)&&n.i(r.g)(this._reflect.getMetadata)){var a=this._reflect.getMetadata("parameters",t),s=this._reflect.getMetadata("design:paramtypes",t);if(n.i(r.g)(s)||n.i(r.g)(a))return this._zipTypesAndAnnotations(s,a)}var c=new Array(t.length);return c.fill(void 0),c},ReflectionCapabilities.prototype.annotations=function(t){if(n.i(r.g)(t.annotations)){var e=t.annotations;return n.i(r.b)(e)&&e.annotations&&(e=e.annotations),e}if(n.i(r.g)(t.decorators))return convertTsickleDecoratorIntoMetadata(t.decorators);if(n.i(r.g)(this._reflect)&&n.i(r.g)(this._reflect.getMetadata)){var e=this._reflect.getMetadata("annotations",t);if(n.i(r.g)(e))return e}return[]},ReflectionCapabilities.prototype.propMetadata=function(t){if(n.i(r.g)(t.propMetadata)){var e=t.propMetadata;return n.i(r.b)(e)&&e.propMetadata&&(e=e.propMetadata),e}if(n.i(r.g)(t.propDecorators)){var i=t.propDecorators,o={};return Object.keys(i).forEach(function(t){o[t]=convertTsickleDecoratorIntoMetadata(i[t])}),o}if(n.i(r.g)(this._reflect)&&n.i(r.g)(this._reflect.getMetadata)){var e=this._reflect.getMetadata("propMetadata",t);if(n.i(r.g)(e))return e}return{}},ReflectionCapabilities.prototype.interfaces=function(t){return[]},ReflectionCapabilities.prototype.hasLifecycleHook=function(t,e,n){if(!(t instanceof i.a))return!1;var r=t.prototype;return!!r[n]},ReflectionCapabilities.prototype.getter=function(t){return new Function("o","return o."+t+";")},ReflectionCapabilities.prototype.setter=function(t){return new Function("o","v","return o."+t+" = v;")},ReflectionCapabilities.prototype.method=function(t){var e="if (!o."+t+") throw new Error('\""+t+"\" is undefined');\n        return o."+t+".apply(o, args);";return new Function("o","args",e)},ReflectionCapabilities.prototype.importUri=function(t){return"object"==typeof t&&t.filePath?t.filePath:"./"+n.i(r.a)(t)},ReflectionCapabilities.prototype.resolveIdentifier=function(t,e,n){return n},ReflectionCapabilities.prototype.resolveEnum=function(t,e){return t[e]},ReflectionCapabilities}()},function(t,e,n){"use strict";function _mergeMaps(t,e){r.f.forEach(e,function(e,n){return t.set(n,e)})}var r=n(10),i=n(2),o=n(173);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s=(function(){function ReflectionInfo(t,e,n,r,i){this.annotations=t,this.parameters=e,this.factory=n,this.interfaces=r,this.propMetadata=i}return ReflectionInfo}(),function(t){function Reflector(e){t.call(this),this._injectableInfo=new r.b,this._getters=new r.b,this._setters=new r.b,this._methods=new r.b,this._usedKeys=null,this.reflectionCapabilities=e}return a(Reflector,t),Reflector.prototype.updateCapabilities=function(t){this.reflectionCapabilities=t},Reflector.prototype.isReflectionEnabled=function(){return this.reflectionCapabilities.isReflectionEnabled()},Reflector.prototype.trackUsage=function(){this._usedKeys=new r.c},Reflector.prototype.listUnusedKeys=function(){var t=this;if(null==this._usedKeys)throw new Error("Usage tracking is disabled");var e=r.d.keys(this._injectableInfo);return e.filter(function(e){return!r.e.has(t._usedKeys,e)})},Reflector.prototype.registerFunction=function(t,e){this._injectableInfo.set(t,e)},Reflector.prototype.registerType=function(t,e){this._injectableInfo.set(t,e)},Reflector.prototype.registerGetters=function(t){_mergeMaps(this._getters,t)},Reflector.prototype.registerSetters=function(t){_mergeMaps(this._setters,t)},Reflector.prototype.registerMethods=function(t){_mergeMaps(this._methods,t)},Reflector.prototype.factory=function(t){if(this._containsReflectionInfo(t)){var e=this._getReflectionInfo(t).factory;return n.i(i.g)(e)?e:null}return this.reflectionCapabilities.factory(t)},Reflector.prototype.parameters=function(t){if(this._injectableInfo.has(t)){var e=this._getReflectionInfo(t).parameters;return n.i(i.g)(e)?e:[]}return this.reflectionCapabilities.parameters(t)},Reflector.prototype.annotations=function(t){if(this._injectableInfo.has(t)){var e=this._getReflectionInfo(t).annotations;return n.i(i.g)(e)?e:[]}return this.reflectionCapabilities.annotations(t)},Reflector.prototype.propMetadata=function(t){if(this._injectableInfo.has(t)){var e=this._getReflectionInfo(t).propMetadata;return n.i(i.g)(e)?e:{}}return this.reflectionCapabilities.propMetadata(t)},Reflector.prototype.interfaces=function(t){if(this._injectableInfo.has(t)){var e=this._getReflectionInfo(t).interfaces;return n.i(i.g)(e)?e:[]}return this.reflectionCapabilities.interfaces(t)},Reflector.prototype.hasLifecycleHook=function(t,e,n){var r=this.interfaces(t);return r.indexOf(e)!==-1||this.reflectionCapabilities.hasLifecycleHook(t,e,n)},Reflector.prototype.getter=function(t){return this._getters.has(t)?this._getters.get(t):this.reflectionCapabilities.getter(t)},Reflector.prototype.setter=function(t){return this._setters.has(t)?this._setters.get(t):this.reflectionCapabilities.setter(t)},Reflector.prototype.method=function(t){return this._methods.has(t)?this._methods.get(t):this.reflectionCapabilities.method(t)},Reflector.prototype._getReflectionInfo=function(t){return n.i(i.g)(this._usedKeys)&&this._usedKeys.add(t),this._injectableInfo.get(t)},Reflector.prototype._containsReflectionInfo=function(t){return this._injectableInfo.has(t)},Reflector.prototype.importUri=function(t){return this.reflectionCapabilities.importUri(t)},Reflector.prototype.resolveIdentifier=function(t,e,n){return this.reflectionCapabilities.resolveIdentifier(t,e,n)},Reflector.prototype.resolveEnum=function(t,e){return this.reflectionCapabilities.resolveEnum(t,e)},Reflector}(o.a))},function(t,e,n){"use strict";n.d(e,"b",function(){return r}),n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;!function(t){t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL"}(r||(r={}));var i=function(){function Sanitizer(){}return Sanitizer}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r={formControlName:'\n    <div [formGroup]="myGroup">\n      <input formControlName="firstName">\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       firstName: new FormControl()\n    });',formGroupName:'\n    <div [formGroup]="myGroup">\n       <div formGroupName="person">\n          <input formControlName="firstName">\n       </div>\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       person: new FormGroup({ firstName: new FormControl() })\n    });',formArrayName:'\n    <div [formGroup]="myGroup">\n      <div formArrayName="cities">\n        <div *ngFor="let city of cityArray.controls; let i=index">\n          <input [formControlName]="i">\n        </div>\n      </div>\n    </div>\n\n    In your class:\n\n    this.cityArray = new FormArray([new FormControl(\'SF\')]);\n    this.myGroup = new FormGroup({\n      cities: this.cityArray\n    });',ngModelGroup:'\n    <form>\n       <div ngModelGroup="person">\n          <input [(ngModel)]="person.name" name="firstName">\n       </div>\n    </form>',ngModelWithFormGroup:'\n    <div [formGroup]="myGroup">\n       <input formControlName="firstName">\n       <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">\n    </div>\n  '}},function(t,e,n){"use strict";var r=n(321);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function TemplateDrivenErrors(){}return TemplateDrivenErrors.modelParentException=function(){throw new Error('\n      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using\n      formGroup\'s partner directive "formControlName" instead.  Example:\n\n      '+r.a.formControlName+"\n\n      Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n      Example:\n\n      "+r.a.ngModelWithFormGroup)},TemplateDrivenErrors.formGroupNameException=function(){throw new Error("\n      ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n      Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n      "+r.a.formGroupName+"\n\n      Option 2:  Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n      "+r.a.ngModelGroup)},TemplateDrivenErrors.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n      control must be defined as \'standalone\' in ngModelOptions.\n\n      Example 1: <input [(ngModel)]="person.firstName" name="first">\n      Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">')},TemplateDrivenErrors.modelGroupParentException=function(){throw new Error("\n      ngModelGroup cannot be used with a parent formGroup directive.\n\n      Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n      "+r.a.formGroupName+"\n\n      Option 2:  Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n      "+r.a.ngModelGroup)},TemplateDrivenErrors}()},function(t,e,n){"use strict";var r=n(0),i=n(37),o=n(21),a=n(125);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function FormBuilder(){}return FormBuilder.prototype.group=function(t,e){void 0===e&&(e=null);var r=this._reduceControls(t),s=n.i(o.a)(e)?i.a.get(e,"validator"):null,c=n.i(o.a)(e)?i.a.get(e,"asyncValidator"):null;return new a.a(r,s,c)},FormBuilder.prototype.control=function(t,e,n){return void 0===e&&(e=null),void 0===n&&(n=null),new a.b(t,e,n)},FormBuilder.prototype.array=function(t,e,n){var r=this;void 0===e&&(e=null),void 0===n&&(n=null);var i=t.map(function(t){return r._createControl(t)});return new a.c(i,e,n)},FormBuilder.prototype._reduceControls=function(t){var e=this,n={};return i.a.forEach(t,function(t,r){n[r]=e._createControl(t)}),n},FormBuilder.prototype._createControl=function(t){if(t instanceof a.b||t instanceof a.a||t instanceof a.c)return t;if(n.i(o.d)(t)){var e=t[0],r=t.length>1?t[1]:null,i=t.length>2?t[2]:null;return this.control(e,r,i)}return this.control(t)},FormBuilder.decorators=[{type:r.Injectable}],FormBuilder.ctorParameters=[],FormBuilder}()},function(t,e,n){"use strict";(function(t){function isPresent(t){return void 0!==t&&null!==t}n.d(e,"b",function(){return i}),e.a=isPresent;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r;r="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:t:window;var i=r,o=(i.Math,i.Date);i.assert=function(t){};Object.getPrototypeOf({}),function(){function StringWrapper(){}return StringWrapper.fromCharCode=function(t){return String.fromCharCode(t)},StringWrapper.charCodeAt=function(t,e){return t.charCodeAt(e)},StringWrapper.split=function(t,e){return t.split(e)},StringWrapper.equals=function(t,e){return t===e},StringWrapper.stripLeft=function(t,e){if(t&&t.length){for(var n=0,r=0;r<t.length&&t[r]==e;r++)n++;t=t.substring(n)}return t},StringWrapper.stripRight=function(t,e){if(t&&t.length){for(var n=t.length,r=t.length-1;r>=0&&t[r]==e;r--)n--;t=t.substring(0,n)}return t},StringWrapper.replace=function(t,e,n){return t.replace(e,n)},StringWrapper.replaceAll=function(t,e,n){return t.replace(e,n)},StringWrapper.slice=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=null),t.slice(e,null===n?void 0:n)},StringWrapper.replaceAllMapped=function(t,e,n){return t.replace(e,function(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];return t.splice(-2,2),n(t)})},StringWrapper.contains=function(t,e){return t.indexOf(e)!=-1},StringWrapper.compare=function(t,e){return t<e?-1:t>e?1:0},StringWrapper}(),function(){function StringJoiner(t){void 0===t&&(t=[]),this.parts=t}return StringJoiner.prototype.add=function(t){this.parts.push(t)},StringJoiner.prototype.toString=function(){return this.parts.join("")},StringJoiner}(),function(){function NumberWrapper(){}return NumberWrapper.toFixed=function(t,e){return t.toFixed(e)},NumberWrapper.equal=function(t,e){return t===e},NumberWrapper.parseIntAutoRadix=function(t){var e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e},NumberWrapper.parseInt=function(t,e){if(10==e){if(/^(\-|\+)?[0-9]+$/.test(t))return parseInt(t,e)}else if(16==e){if(/^(\-|\+)?[0-9ABCDEFabcdef]+$/.test(t))return parseInt(t,e)}else{var n=parseInt(t,e);if(!isNaN(n))return n}throw new Error("Invalid integer literal when parsing "+t+" in base "+e)},NumberWrapper.parseFloat=function(t){return parseFloat(t)},Object.defineProperty(NumberWrapper,"NaN",{get:function(){return NaN},enumerable:!0,configurable:!0}),NumberWrapper.isNumeric=function(t){return!isNaN(t-parseFloat(t))},NumberWrapper.isNaN=function(t){return isNaN(t)},NumberWrapper.isInteger=function(t){return Number.isInteger(t)},NumberWrapper}(),i.RegExp,function(){function FunctionWrapper(){}return FunctionWrapper.apply=function(t,e){return t.apply(null,e)},FunctionWrapper.bind=function(t,e){return t.bind(e)},FunctionWrapper}(),function(){function Json(){}return Json.parse=function(t){return i.JSON.parse(t)},Json.stringify=function(t){return i.JSON.stringify(t,null,2)},Json}(),function(){function DateWrapper(){}return DateWrapper.create=function(t,e,n,r,i,a,s){return void 0===e&&(e=1),void 0===n&&(n=1),void 0===r&&(r=0),void 0===i&&(i=0),void 0===a&&(a=0),void 0===s&&(s=0),new o(t,e-1,n,r,i,a,s)},DateWrapper.fromISOString=function(t){return new o(t)},DateWrapper.fromMillis=function(t){return new o(t)},DateWrapper.toMillis=function(t){return t.getTime()},DateWrapper.now=function(){return new o},DateWrapper.toJson=function(t){return t.toJSON()},DateWrapper}()}).call(e,n(59))},function(t,e,n){"use strict";var r=n(101),i=n(0),o=n(501),a=n(326);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=[o.a,{provide:i.COMPILER_OPTIONS,useValue:{providers:[{provide:r.a,useClass:a.a}]},multi:!0}]},function(t,e,n){"use strict";var r=n(101),i=n(0),o=n(324);n.d(e,"a",function(){return s});var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s=function(t){function ResourceLoaderImpl(){t.apply(this,arguments)}return a(ResourceLoaderImpl,t),ResourceLoaderImpl.prototype.get=function(t){var e,r,i=new Promise(function(t,n){e=t,r=n}),a=new XMLHttpRequest;return a.open("GET",t,!0),a.responseType="text",a.onload=function(){var i=n.i(o.a)(a.response)?a.response:a.responseText,s=1223===a.status?204:a.status;0===s&&(s=i?200:0),200<=s&&s<=300?e(i):r("Failed to load "+t)},a.onerror=function(){r("Failed to load "+t)},a.send(),i},ResourceLoaderImpl.decorators=[{type:i.Injectable}],ResourceLoaderImpl.ctorParameters=[],ResourceLoaderImpl}(r.a)},function(t,e,n){"use strict";function initDomAdapter(){s.a.makeCurrent(),l.a.init()}function errorHandler(){return new i.ErrorHandler}function _document(){return n.i(p.a)().defaultDoc()}function _resolveDefaultAnimationDriver(){return n.i(p.a)().supportsWebAnimation()?new a.a:o.a.NOOP}var r=n(19),i=n(0),o=n(186),a=n(510),s=n(328),c=n(329),l=n(330),u=n(187),p=n(15),d=n(188),f=n(126),h=n(331),m=n(70),v=n(189),g=n(332),b=n(190),y=n(335);n.d(e,"b",function(){return _}),n.d(e,"c",function(){return w}),n.d(e,"e",function(){return x}),e.a=initDomAdapter,n.d(e,"d",function(){return C});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var _=[{provide:i.PLATFORM_INITIALIZER,useValue:initDomAdapter,multi:!0},{provide:r.PlatformLocation,useClass:c.a}],w=[{provide:i.Sanitizer,useExisting:y.a},{provide:y.a,useClass:y.b}],x=n.i(i.createPlatformFactory)(i.platformCore,"browser",_),C=function(){function BrowserModule(t){if(t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}return BrowserModule.decorators=[{type:i.NgModule,args:[{providers:[w,{provide:i.ErrorHandler,useFactory:errorHandler,deps:[]},{provide:f.a,useFactory:_document,deps:[]},{provide:m.c,useClass:h.a,multi:!0},{provide:m.c,useClass:g.a,multi:!0},{provide:m.c,useClass:v.a,multi:!0},{provide:v.b,useClass:v.c},{provide:d.a,useClass:d.b},{provide:i.RootRenderer,useExisting:d.a},{provide:b.b,useExisting:b.a},{provide:o.a,useFactory:_resolveDefaultAnimationDriver},b.a,i.Testability,m.a,u.a],exports:[r.CommonModule,i.ApplicationModule]}]}],BrowserModule.ctorParameters=[{type:BrowserModule,decorators:[{type:i.Optional},{type:i.SkipSelf}]}],BrowserModule}()},function(t,e,n){"use strict";function getBaseElementHref(){return n.i(o.c)(f)&&(f=document.querySelector("base"),n.i(o.c)(f))?null:f.getAttribute("href")}function relativePath(t){return n.i(o.c)(h)&&(h=document.createElement("a")),h.setAttribute("href",t),"/"===h.pathname.charAt(0)?h.pathname:"/"+h.pathname}function parseCookieValue(t,e){e=encodeURIComponent(e);for(var n=0,r=t.split(";");n<r.length;n++){var i=r[n],o=i.indexOf("="),a=o==-1?[i,""]:[i.slice(0,o),i.slice(o+1)],s=a[0],c=a[1];if(s.trim()===e)return decodeURIComponent(c)}return null}var r=n(15),i=n(44),o=n(25),a=n(503);n.d(e,"a",function(){return d});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},c={"class":"className",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},l=3,u={"\b":"Backspace","\t":"Tab","":"Delete","":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},p={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","":"NumLock"},d=function(t){function BrowserDomAdapter(){t.apply(this,arguments)}return s(BrowserDomAdapter,t),BrowserDomAdapter.prototype.parse=function(t){throw new Error("parse not implemented")},BrowserDomAdapter.makeCurrent=function(){n.i(r.c)(new BrowserDomAdapter)},BrowserDomAdapter.prototype.hasProperty=function(t,e){return e in t},BrowserDomAdapter.prototype.setProperty=function(t,e,n){t[e]=n},BrowserDomAdapter.prototype.getProperty=function(t,e){return t[e]},BrowserDomAdapter.prototype.invoke=function(t,e,n){t[e].apply(t,n)},BrowserDomAdapter.prototype.logError=function(t){window.console.error?window.console.error(t):window.console.log(t)},BrowserDomAdapter.prototype.log=function(t){window.console.log(t)},BrowserDomAdapter.prototype.logGroup=function(t){window.console.group?(window.console.group(t),this.logError(t)):window.console.log(t)},BrowserDomAdapter.prototype.logGroupEnd=function(){window.console.groupEnd&&window.console.groupEnd()},Object.defineProperty(BrowserDomAdapter.prototype,"attrToPropMap",{get:function(){return c},enumerable:!0,configurable:!0}),BrowserDomAdapter.prototype.query=function(t){return document.querySelector(t)},BrowserDomAdapter.prototype.querySelector=function(t,e){return t.querySelector(e)},BrowserDomAdapter.prototype.querySelectorAll=function(t,e){return t.querySelectorAll(e)},BrowserDomAdapter.prototype.on=function(t,e,n){t.addEventListener(e,n,!1)},BrowserDomAdapter.prototype.onAndCancel=function(t,e,n){return t.addEventListener(e,n,!1),function(){t.removeEventListener(e,n,!1)}},BrowserDomAdapter.prototype.dispatchEvent=function(t,e){t.dispatchEvent(e)},BrowserDomAdapter.prototype.createMouseEvent=function(t){var e=document.createEvent("MouseEvent");return e.initEvent(t,!0,!0),e},BrowserDomAdapter.prototype.createEvent=function(t){var e=document.createEvent("Event");return e.initEvent(t,!0,!0),e},BrowserDomAdapter.prototype.preventDefault=function(t){t.preventDefault(),t.returnValue=!1},BrowserDomAdapter.prototype.isPrevented=function(t){return t.defaultPrevented||n.i(o.b)(t.returnValue)&&!t.returnValue},BrowserDomAdapter.prototype.getInnerHTML=function(t){return t.innerHTML},BrowserDomAdapter.prototype.getTemplateContent=function(t){return"content"in t&&t instanceof HTMLTemplateElement?t.content:null},BrowserDomAdapter.prototype.getOuterHTML=function(t){return t.outerHTML},BrowserDomAdapter.prototype.nodeName=function(t){return t.nodeName},BrowserDomAdapter.prototype.nodeValue=function(t){return t.nodeValue},BrowserDomAdapter.prototype.type=function(t){return t.type},BrowserDomAdapter.prototype.content=function(t){return this.hasProperty(t,"content")?t.content:t},BrowserDomAdapter.prototype.firstChild=function(t){return t.firstChild},BrowserDomAdapter.prototype.nextSibling=function(t){return t.nextSibling},BrowserDomAdapter.prototype.parentElement=function(t){return t.parentNode},BrowserDomAdapter.prototype.childNodes=function(t){return t.childNodes},BrowserDomAdapter.prototype.childNodesAsList=function(t){for(var e=t.childNodes,n=i.b.createFixedSize(e.length),r=0;r<e.length;r++)n[r]=e[r];return n},BrowserDomAdapter.prototype.clearNodes=function(t){for(;t.firstChild;)t.removeChild(t.firstChild)},BrowserDomAdapter.prototype.appendChild=function(t,e){t.appendChild(e)},BrowserDomAdapter.prototype.removeChild=function(t,e){t.removeChild(e)},BrowserDomAdapter.prototype.replaceChild=function(t,e,n){t.replaceChild(e,n)},BrowserDomAdapter.prototype.remove=function(t){return t.parentNode&&t.parentNode.removeChild(t),t},BrowserDomAdapter.prototype.insertBefore=function(t,e){t.parentNode.insertBefore(e,t)},BrowserDomAdapter.prototype.insertAllBefore=function(t,e){e.forEach(function(e){return t.parentNode.insertBefore(e,t)})},BrowserDomAdapter.prototype.insertAfter=function(t,e){t.parentNode.insertBefore(e,t.nextSibling)},BrowserDomAdapter.prototype.setInnerHTML=function(t,e){t.innerHTML=e},BrowserDomAdapter.prototype.getText=function(t){return t.textContent},BrowserDomAdapter.prototype.setText=function(t,e){t.textContent=e},BrowserDomAdapter.prototype.getValue=function(t){return t.value},BrowserDomAdapter.prototype.setValue=function(t,e){t.value=e},BrowserDomAdapter.prototype.getChecked=function(t){return t.checked},BrowserDomAdapter.prototype.setChecked=function(t,e){t.checked=e},BrowserDomAdapter.prototype.createComment=function(t){return document.createComment(t)},BrowserDomAdapter.prototype.createTemplate=function(t){var e=document.createElement("template");return e.innerHTML=t,e},BrowserDomAdapter.prototype.createElement=function(t,e){return void 0===e&&(e=document),e.createElement(t)},BrowserDomAdapter.prototype.createElementNS=function(t,e,n){return void 0===n&&(n=document),n.createElementNS(t,e)},BrowserDomAdapter.prototype.createTextNode=function(t,e){return void 0===e&&(e=document),e.createTextNode(t)},BrowserDomAdapter.prototype.createScriptTag=function(t,e,n){void 0===n&&(n=document);var r=n.createElement("SCRIPT");return r.setAttribute(t,e),r},BrowserDomAdapter.prototype.createStyleElement=function(t,e){void 0===e&&(e=document);var n=e.createElement("style");return this.appendChild(n,this.createTextNode(t)),n},BrowserDomAdapter.prototype.createShadowRoot=function(t){return t.createShadowRoot()},BrowserDomAdapter.prototype.getShadowRoot=function(t){return t.shadowRoot},BrowserDomAdapter.prototype.getHost=function(t){return t.host},BrowserDomAdapter.prototype.clone=function(t){return t.cloneNode(!0)},BrowserDomAdapter.prototype.getElementsByClassName=function(t,e){return t.getElementsByClassName(e)},BrowserDomAdapter.prototype.getElementsByTagName=function(t,e){return t.getElementsByTagName(e)},BrowserDomAdapter.prototype.classList=function(t){return Array.prototype.slice.call(t.classList,0)},BrowserDomAdapter.prototype.addClass=function(t,e){t.classList.add(e)},BrowserDomAdapter.prototype.removeClass=function(t,e){t.classList.remove(e)},BrowserDomAdapter.prototype.hasClass=function(t,e){return t.classList.contains(e)},BrowserDomAdapter.prototype.setStyle=function(t,e,n){t.style[e]=n},BrowserDomAdapter.prototype.removeStyle=function(t,e){t.style[e]=null},BrowserDomAdapter.prototype.getStyle=function(t,e){return t.style[e]},BrowserDomAdapter.prototype.hasStyle=function(t,e,n){void 0===n&&(n=null);var r=this.getStyle(t,e)||"";return n?r==n:r.length>0},BrowserDomAdapter.prototype.tagName=function(t){return t.tagName},BrowserDomAdapter.prototype.attributeMap=function(t){for(var e=new Map,n=t.attributes,r=0;r<n.length;r++){var i=n[r];e.set(i.name,i.value)}return e},BrowserDomAdapter.prototype.hasAttribute=function(t,e){return t.hasAttribute(e)},BrowserDomAdapter.prototype.hasAttributeNS=function(t,e,n){return t.hasAttributeNS(e,n)},BrowserDomAdapter.prototype.getAttribute=function(t,e){return t.getAttribute(e)},BrowserDomAdapter.prototype.getAttributeNS=function(t,e,n){return t.getAttributeNS(e,n)},BrowserDomAdapter.prototype.setAttribute=function(t,e,n){t.setAttribute(e,n)},BrowserDomAdapter.prototype.setAttributeNS=function(t,e,n,r){t.setAttributeNS(e,n,r)},BrowserDomAdapter.prototype.removeAttribute=function(t,e){t.removeAttribute(e)},BrowserDomAdapter.prototype.removeAttributeNS=function(t,e,n){t.removeAttributeNS(e,n)},BrowserDomAdapter.prototype.templateAwareRoot=function(t){return this.isTemplateElement(t)?this.content(t):t},BrowserDomAdapter.prototype.createHtmlDocument=function(){return document.implementation.createHTMLDocument("fakeTitle")},BrowserDomAdapter.prototype.defaultDoc=function(){return document},BrowserDomAdapter.prototype.getBoundingClientRect=function(t){try{return t.getBoundingClientRect()}catch(e){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}},BrowserDomAdapter.prototype.getTitle=function(){return document.title},BrowserDomAdapter.prototype.setTitle=function(t){document.title=t||""},BrowserDomAdapter.prototype.elementMatches=function(t,e){var n=!1;return t instanceof HTMLElement&&(t.matches?n=t.matches(e):t.msMatchesSelector?n=t.msMatchesSelector(e):t.webkitMatchesSelector&&(n=t.webkitMatchesSelector(e))),n},BrowserDomAdapter.prototype.isTemplateElement=function(t){return t instanceof HTMLElement&&"TEMPLATE"==t.nodeName},BrowserDomAdapter.prototype.isTextNode=function(t){return t.nodeType===Node.TEXT_NODE},BrowserDomAdapter.prototype.isCommentNode=function(t){return t.nodeType===Node.COMMENT_NODE},BrowserDomAdapter.prototype.isElementNode=function(t){return t.nodeType===Node.ELEMENT_NODE},BrowserDomAdapter.prototype.hasShadowRoot=function(t){return n.i(o.b)(t.shadowRoot)&&t instanceof HTMLElement},BrowserDomAdapter.prototype.isShadowRoot=function(t){return t instanceof DocumentFragment},BrowserDomAdapter.prototype.importIntoDoc=function(t){var e=t;return this.isTemplateElement(t)&&(e=this.content(t)),document.importNode(e,!0)},BrowserDomAdapter.prototype.adoptNode=function(t){return document.adoptNode(t)},BrowserDomAdapter.prototype.getHref=function(t){return t.href},BrowserDomAdapter.prototype.getEventKey=function(t){var e=t.key;if(n.i(o.c)(e)){if(e=t.keyIdentifier,n.i(o.c)(e))return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),t.location===l&&p.hasOwnProperty(e)&&(e=p[e]))}return u.hasOwnProperty(e)&&(e=u[e]),e},BrowserDomAdapter.prototype.getGlobalEventTarget=function(t){return"window"==t?window:"document"==t?document:"body"==t?document.body:void 0},BrowserDomAdapter.prototype.getHistory=function(){return window.history},BrowserDomAdapter.prototype.getLocation=function(){return window.location},BrowserDomAdapter.prototype.getBaseHref=function(){var t=getBaseElementHref();return n.i(o.c)(t)?null:relativePath(t)},BrowserDomAdapter.prototype.resetBaseElement=function(){f=null},BrowserDomAdapter.prototype.getUserAgent=function(){return window.navigator.userAgent},BrowserDomAdapter.prototype.setData=function(t,e,n){this.setAttribute(t,"data-"+e,n)},BrowserDomAdapter.prototype.getData=function(t,e){return this.getAttribute(t,"data-"+e)},BrowserDomAdapter.prototype.getComputedStyle=function(t){return getComputedStyle(t)},BrowserDomAdapter.prototype.setGlobalVar=function(t,e){n.i(o.j)(o.a,t,e)},BrowserDomAdapter.prototype.supportsWebAnimation=function(){return n.i(o.i)(Element.prototype.animate)},BrowserDomAdapter.prototype.performanceNow=function(){return n.i(o.b)(window.performance)&&n.i(o.b)(window.performance.now)?window.performance.now():o.k.toMillis(o.k.now())},BrowserDomAdapter.prototype.supportsCookies=function(){return!0},BrowserDomAdapter.prototype.getCookie=function(t){return parseCookieValue(document.cookie,t)},BrowserDomAdapter.prototype.setCookie=function(t,e){document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)},BrowserDomAdapter}(a.a),f=null,h=null},function(t,e,n){"use strict";var r=n(19),i=n(0),o=n(15),a=n(504);n.d(e,"a",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},c=function(t){function BrowserPlatformLocation(){t.call(this),this._init()}return s(BrowserPlatformLocation,t),BrowserPlatformLocation.prototype._init=function(){this._location=n.i(o.a)().getLocation(),this._history=n.i(o.a)().getHistory()},Object.defineProperty(BrowserPlatformLocation.prototype,"location",{get:function(){return this._location},enumerable:!0,configurable:!0}),BrowserPlatformLocation.prototype.getBaseHrefFromDOM=function(){return n.i(o.a)().getBaseHref()},BrowserPlatformLocation.prototype.onPopState=function(t){n.i(o.a)().getGlobalEventTarget("window").addEventListener("popstate",t,!1)},BrowserPlatformLocation.prototype.onHashChange=function(t){n.i(o.a)().getGlobalEventTarget("window").addEventListener("hashchange",t,!1)},Object.defineProperty(BrowserPlatformLocation.prototype,"pathname",{get:function(){return this._location.pathname},set:function(t){this._location.pathname=t},enumerable:!0,configurable:!0}),Object.defineProperty(BrowserPlatformLocation.prototype,"search",{get:function(){return this._location.search},enumerable:!0,configurable:!0}),Object.defineProperty(BrowserPlatformLocation.prototype,"hash",{get:function(){return this._location.hash},enumerable:!0,configurable:!0}),BrowserPlatformLocation.prototype.pushState=function(t,e,r){n.i(a.a)()?this._history.pushState(t,e,r):this._location.hash=r},BrowserPlatformLocation.prototype.replaceState=function(t,e,r){n.i(a.a)()?this._history.replaceState(t,e,r):this._location.hash=r},BrowserPlatformLocation.prototype.forward=function(){this._history.forward()},BrowserPlatformLocation.prototype.back=function(){this._history.back()},BrowserPlatformLocation.decorators=[{type:i.Injectable}],BrowserPlatformLocation.ctorParameters=[],BrowserPlatformLocation}(r.PlatformLocation)},function(t,e,n){"use strict";var r=n(0),i=n(15),o=n(44),a=n(25);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function BrowserGetTestability(){}return BrowserGetTestability.init=function(){n.i(r.setTestabilityGetter)(new BrowserGetTestability)},BrowserGetTestability.prototype.addToWindow=function(t){a.a.getAngularTestability=function(e,n){void 0===n&&(n=!0);var r=t.findTestabilityInTree(e,n);if(null==r)throw new Error("Could not find testability for element.");return r},a.a.getAllAngularTestabilities=function(){return t.getAllTestabilities()},a.a.getAllAngularRootElements=function(){return t.getAllRootElements()};var e=function(t){var e=a.a.getAllAngularTestabilities(),n=e.length,r=!1,i=function(e){r=r||e,n--,0==n&&t(r)};e.forEach(function(t){t.whenStable(i)})};a.a.frameworkStabilizers||(a.a.frameworkStabilizers=o.b.createGrowableSize(0)),a.a.frameworkStabilizers.push(e)},BrowserGetTestability.prototype.findTestabilityInTree=function(t,e,r){if(null==e)return null;var o=t.getTestability(e);return n.i(a.b)(o)?o:r?n.i(i.a)().isShadowRoot(e)?this.findTestabilityInTree(t,n.i(i.a)().getHost(e),!0):this.findTestabilityInTree(t,n.i(i.a)().parentElement(e),!0):null},BrowserGetTestability}()},function(t,e,n){"use strict";var r=n(0),i=n(15),o=n(70);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s=function(t){function DomEventsPlugin(){t.apply(this,arguments)}return a(DomEventsPlugin,t),DomEventsPlugin.prototype.supports=function(t){return!0},DomEventsPlugin.prototype.addEventListener=function(t,e,r){var o=this.manager.getZone(),a=function(t){return o.runGuarded(function(){return r(t)})};return this.manager.getZone().runOutsideAngular(function(){return n.i(i.a)().onAndCancel(t,e,a)})},DomEventsPlugin.prototype.addGlobalEventListener=function(t,e,r){var o=n.i(i.a)().getGlobalEventTarget(t),a=this.manager.getZone(),s=function(t){return a.runGuarded(function(){return r(t)})};return this.manager.getZone().runOutsideAngular(function(){return n.i(i.a)().onAndCancel(o,e,s)})},DomEventsPlugin.decorators=[{type:r.Injectable}],DomEventsPlugin.ctorParameters=[],DomEventsPlugin}(o.b)},function(t,e,n){"use strict";var r=n(0),i=n(44),o=n(25),a=n(15),s=n(70);n.d(e,"a",function(){return p});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},l=["alt","control","meta","shift"],u={alt:function(t){return t.altKey},control:function(t){return t.ctrlKey},meta:function(t){return t.metaKey},shift:function(t){return t.shiftKey}},p=function(t){function KeyEventsPlugin(){t.call(this)}return c(KeyEventsPlugin,t),KeyEventsPlugin.prototype.supports=function(t){return n.i(o.b)(KeyEventsPlugin.parseEventName(t))},KeyEventsPlugin.prototype.addEventListener=function(t,e,r){var o=KeyEventsPlugin.parseEventName(e),s=KeyEventsPlugin.eventCallback(t,i.a.get(o,"fullKey"),r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(function(){return n.i(a.a)().onAndCancel(t,i.a.get(o,"domEventName"),s)})},KeyEventsPlugin.parseEventName=function(t){var e=t.toLowerCase().split("."),n=e.shift();if(0===e.length||!o.g.equals(n,"keydown")&&!o.g.equals(n,"keyup"))return null;var r=KeyEventsPlugin._normalizeKey(e.pop()),a="";if(l.forEach(function(t){i.b.contains(e,t)&&(i.b.remove(e,t),a+=t+".")}),a+=r,0!=e.length||0===r.length)return null;var s=i.a.create();return i.a.set(s,"domEventName",n),i.a.set(s,"fullKey",a),s},KeyEventsPlugin.getEventFullKey=function(t){var e="",r=n.i(a.a)().getEventKey(t);return r=r.toLowerCase(),o.g.equals(r," ")?r="space":o.g.equals(r,".")&&(r="dot"),l.forEach(function(n){if(n!=r){var o=i.a.get(u,n);o(t)&&(e+=n+".")}}),e+=r},KeyEventsPlugin.eventCallback=function(t,e,n,r){return function(t){o.g.equals(KeyEventsPlugin.getEventFullKey(t),e)&&r.runGuarded(function(){return n(t)})}},KeyEventsPlugin._normalizeKey=function(t){switch(t){case"esc":return"escape";default:return t}},KeyEventsPlugin.decorators=[{type:r.Injectable}],KeyEventsPlugin.ctorParameters=[],KeyEventsPlugin}(s.b)},function(t,e,n){"use strict";function camelCaseToDashCase(t){return r.g.replaceAllMapped(t,i,function(t){return"-"+t[1].toLowerCase()})}function dashCaseToCamelCase(t){return r.g.replaceAllMapped(t,o,function(t){return t[1].toUpperCase()})}var r=n(25);e.b=camelCaseToDashCase,e.a=dashCaseToCamelCase;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=/([A-Z])/g,o=/-([a-z])/g},function(t,e,n){"use strict";var r=n(0);n.d(e,"b",function(){return i}),n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=(r.__core_private__.RenderDebugInfo,r.__core_private__.ReflectionCapabilities,r.__core_private__.VIEW_ENCAPSULATION_VALUES,r.__core_private__.DebugDomRootRenderer),o=(r.__core_private__.reflector,r.__core_private__.NoOpAnimationPlayer);r.__core_private__.AnimationPlayer,r.__core_private__.AnimationSequencePlayer,r.__core_private__.AnimationGroupPlayer,r.__core_private__.AnimationKeyframe,r.__core_private__.AnimationStyles,r.__core_private__.prepareFinalAnimationStyles,r.__core_private__.balanceAnimationKeyframes,r.__core_private__.clearStyles,r.__core_private__.collectAndResolveStyles},function(t,e,n){"use strict";var r=n(0),i=n(515),o=n(516),a=n(191);n.d(e,"a",function(){return c}),n.d(e,"b",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},c=function(){function DomSanitizer(){}return DomSanitizer}(),l=function(t){function DomSanitizerImpl(){t.apply(this,arguments)}return s(DomSanitizerImpl,t),DomSanitizerImpl.prototype.sanitize=function(t,e){if(null==e)return null;switch(t){case r.SecurityContext.NONE:return e;case r.SecurityContext.HTML:return e instanceof p?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"HTML"),n.i(i.a)(String(e)));case r.SecurityContext.STYLE:return e instanceof d?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"Style"),n.i(o.a)(e));case r.SecurityContext.SCRIPT:if(e instanceof f)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"Script"),new Error("unsafe value used in a script context");case r.SecurityContext.URL:return e instanceof m||e instanceof h?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"URL"),n.i(a.a)(String(e)));case r.SecurityContext.RESOURCE_URL:if(e instanceof m)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"ResourceURL"),new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext "+t+" (see http://g.co/ng/security#xss)")}},DomSanitizerImpl.prototype.checkNotSafeValue=function(t,e){if(t instanceof u)throw new Error("Required a safe "+e+", got a "+t.getTypeName()+" (see http://g.co/ng/security#xss)")},DomSanitizerImpl.prototype.bypassSecurityTrustHtml=function(t){return new p(t)},DomSanitizerImpl.prototype.bypassSecurityTrustStyle=function(t){return new d(t)},DomSanitizerImpl.prototype.bypassSecurityTrustScript=function(t){return new f(t)},DomSanitizerImpl.prototype.bypassSecurityTrustUrl=function(t){return new h(t)},DomSanitizerImpl.prototype.bypassSecurityTrustResourceUrl=function(t){return new m(t)},DomSanitizerImpl.decorators=[{type:r.Injectable}],DomSanitizerImpl.ctorParameters=[],DomSanitizerImpl}(c),u=function(){function SafeValueImpl(t){this.changingThisBreaksApplicationSecurity=t}return SafeValueImpl.prototype.toString=function(){return"SafeValue must use [property]=binding: "+this.changingThisBreaksApplicationSecurity+" (see http://g.co/ng/security#xss)"},SafeValueImpl}(),p=function(t){function SafeHtmlImpl(){t.apply(this,arguments)}return s(SafeHtmlImpl,t),SafeHtmlImpl.prototype.getTypeName=function(){return"HTML"},SafeHtmlImpl}(u),d=function(t){function SafeStyleImpl(){t.apply(this,arguments)}return s(SafeStyleImpl,t),SafeStyleImpl.prototype.getTypeName=function(){return"Style"},SafeStyleImpl}(u),f=function(t){function SafeScriptImpl(){t.apply(this,arguments)}return s(SafeScriptImpl,t),SafeScriptImpl.prototype.getTypeName=function(){return"Script"},SafeScriptImpl}(u),h=function(t){function SafeUrlImpl(){t.apply(this,arguments)}return s(SafeUrlImpl,t),SafeUrlImpl.prototype.getTypeName=function(){return"URL"},SafeUrlImpl}(u),m=function(t){function SafeResourceUrlImpl(){t.apply(this,arguments)}return s(SafeResourceUrlImpl,t),SafeResourceUrlImpl.prototype.getTypeName=function(){return"ResourceURL"},SafeResourceUrlImpl}(u)},function(t,e,n){"use strict";var r=n(0),i=n(127),o=n(192);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function RouterLinkActive(t,e,n){var r=this;this.router=t,this.element=e,this.renderer=n,this.classes=[],this.routerLinkActiveOptions={exact:!1},this.subscription=t.events.subscribe(function(t){t instanceof i.b&&r.update()})}return RouterLinkActive.prototype.ngAfterContentInit=function(){var t=this;this.links.changes.subscribe(function(e){return t.update()}),this.linksWithHrefs.changes.subscribe(function(e){return t.update()}),this.update()},Object.defineProperty(RouterLinkActive.prototype,"routerLinkActive",{set:function(t){Array.isArray(t)?this.classes=t:this.classes=t.split(" ")},enumerable:!0,configurable:!0}),RouterLinkActive.prototype.ngOnChanges=function(t){this.update()},RouterLinkActive.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},RouterLinkActive.prototype.update=function(){var t=this;if(this.links&&this.linksWithHrefs&&this.router.navigated){var e=this.reduceList(this.links),n=this.reduceList(this.linksWithHrefs);this.classes.forEach(function(r){return t.renderer.setElementClass(t.element.nativeElement,r,e||n)})}},RouterLinkActive.prototype.reduceList=function(t){var e=this;return t.reduce(function(t,n){return t||e.router.isActive(n.urlTree,e.routerLinkActiveOptions.exact)},!1)},RouterLinkActive.decorators=[{type:r.Directive,args:[{selector:"[routerLinkActive]"}]}],RouterLinkActive.ctorParameters=[{type:i.a},{type:r.ElementRef},{type:r.Renderer}],RouterLinkActive.propDecorators={links:[{type:r.ContentChildren,args:[o.a,{descendants:!0}]}],linksWithHrefs:[{type:r.ContentChildren,args:[o.b,{descendants:!0}]}],routerLinkActiveOptions:[{type:r.Input}],routerLinkActive:[{type:r.Input}]},RouterLinkActive}()},function(t,e,n){"use strict";var r=n(0),i=n(129),o=n(45);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function RouterOutlet(t,e,n,i){this.parentOutletMap=t,this.location=e,this.resolver=n,this.name=i,this.activateEvents=new r.EventEmitter,this.deactivateEvents=new r.EventEmitter,t.registerOutlet(i?i:o.a,this)}return RouterOutlet.prototype.ngOnDestroy=function(){this.parentOutletMap.removeOutlet(this.name?this.name:o.a)},Object.defineProperty(RouterOutlet.prototype,"isActivated",{get:function(){return!!this.activated},enumerable:!0,configurable:!0}),Object.defineProperty(RouterOutlet.prototype,"component",{get:function(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance},enumerable:!0,configurable:!0}),Object.defineProperty(RouterOutlet.prototype,"activatedRoute",{get:function(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute},enumerable:!0,configurable:!0}),RouterOutlet.prototype.deactivate=function(){if(this.activated){var t=this.component;this.activated.destroy(),this.activated=null,this.deactivateEvents.emit(t)}},RouterOutlet.prototype.activate=function(t,e,n,i,o){this.outletMap=o,this._activatedRoute=t;var a,s=t._futureSnapshot,c=s._routeConfig.component;a=e?e.resolveComponentFactory(c):this.resolver.resolveComponentFactory(c);var l=n?n:this.location.parentInjector,u=r.ReflectiveInjector.fromResolvedProviders(i,l);this.activated=this.location.createComponent(a,this.location.length,u,[]),this.activated.changeDetectorRef.detectChanges(),this.activateEvents.emit(this.activated.instance)},RouterOutlet.decorators=[{type:r.Directive,args:[{selector:"router-outlet"}]}],RouterOutlet.ctorParameters=[{type:i.a},{type:r.ViewContainerRef},{type:r.ComponentFactoryResolver},{type:void 0,decorators:[{type:r.Attribute,args:["name"]}]}],RouterOutlet.propDecorators={activateEvents:[{type:r.Output,args:["activate"]}],deactivateEvents:[{type:r.Output,args:["deactivate"]}]},RouterOutlet}()},function(t,e,n){"use strict";function provideLocationStrategy(t,e,n){return void 0===n&&(n={}),n.useHash?new r.HashLocationStrategy(t,e):new r.PathLocationStrategy(t,e)}function provideForRootGuard(t){if(t)throw new Error("RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.");return"guarded"}function provideRoutes(t){return[{provide:i.ANALYZE_FOR_ENTRY_COMPONENTS,multi:!0,useValue:t},{provide:l.c,multi:!0,useValue:t}]}function setupRouter(t,e,r,i,o,a,s,l,u){if(void 0===u&&(u={}),0==t.componentTypes.length)throw new Error("Bootstrap at least one component before injecting Router.");var p=t.componentTypes[0],d=new c.a(p,e,r,i,o,a,s,n.i(f.a)(l));return u.errorHandler&&(d.errorHandler=u.errorHandler),u.enableTracing&&d.events.subscribe(function(t){console.group("Router Event: "+t.constructor.name),console.log(t.toString()),console.log(t),console.groupEnd()}),d}function rootRoute(t){return t.routerState.root}function initialRouterNavigation(t,e){return function(){e.initialNavigation===!1?t.setUpLocationChangeListener():t.initialNavigation()}}function provideRouterInitializer(){return{provide:i.APP_BOOTSTRAP_LISTENER,multi:!0,useFactory:initialRouterNavigation,deps:[c.a,m]}}var r=n(19),i=n(0),o=n(192),a=n(336),s=n(337),c=n(127),l=n(128),u=n(129),p=n(71),d=n(61),f=n(46);n.d(e,"a",function(){return g}),n.d(e,"b",function(){return b});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var h=[s.a,o.a,o.b,a.a],m=new i.OpaqueToken("ROUTER_CONFIGURATION"),v=new i.OpaqueToken("ROUTER_FORROOT_GUARD"),g=({provide:r.LocationStrategy,useClass:r.PathLocationStrategy},{provide:r.LocationStrategy,useClass:r.HashLocationStrategy},[r.Location,{provide:d.g,useClass:d.h},{provide:c.a,useFactory:setupRouter,deps:[i.ApplicationRef,d.g,u.a,r.Location,i.Injector,i.NgModuleFactoryLoader,i.Compiler,l.c,m]},u.a,{provide:p.b,useFactory:rootRoute,deps:[c.a]},{provide:i.NgModuleFactoryLoader,useClass:i.SystemJsNgModuleLoader},{provide:m,useValue:{enableTracing:!1}}]),b=function(){function RouterModule(t){}return RouterModule.forRoot=function(t,e){return{ngModule:RouterModule,providers:[g,provideRoutes(t),{provide:v,useFactory:provideForRootGuard,deps:[[c.a,new i.Optional,new i.SkipSelf]]},{provide:m,useValue:e?e:{}},{provide:r.LocationStrategy,useFactory:provideLocationStrategy,deps:[r.PlatformLocation,[new i.Inject(r.APP_BASE_HREF),new i.Optional],m]},provideRouterInitializer()]}},RouterModule.forChild=function(t){return{ngModule:RouterModule,providers:[provideRoutes(t)]}},RouterModule.decorators=[{type:i.NgModule,args:[{declarations:h,exports:h}]}],RouterModule.ctorParameters=[{type:void 0,decorators:[{type:i.Optional},{type:i.Inject,args:[v]}]}],RouterModule}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function AppComponent(){}return AppComponent=i([n.i(r.Component)({selector:"body",template:"<router-outlet></router-outlet>"}),o("design:paramtypes",[])],AppComponent)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function ChartsComponent(){this.lineChartData=[{data:[65,59,80,81,56,55,40],label:"Series A"},{data:[28,48,40,19,86,27,90],label:"Series B"},{data:[18,48,77,9,100,27,40],label:"Series C"}],this.lineChartLabels=["January","February","March","April","May","June","July"],this.lineChartOptions={animation:!1,responsive:!0},this.lineChartColours=[{backgroundColor:"rgba(148,159,177,0.2)",borderColor:"rgba(148,159,177,1)",pointBackgroundColor:"rgba(148,159,177,1)",pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgba(148,159,177,0.8)"},{backgroundColor:"rgba(77,83,96,0.2)",borderColor:"rgba(77,83,96,1)",pointBackgroundColor:"rgba(77,83,96,1)",pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgba(77,83,96,1)"},{backgroundColor:"rgba(148,159,177,0.2)",borderColor:"rgba(148,159,177,1)",pointBackgroundColor:"rgba(148,159,177,1)",pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgba(148,159,177,0.8)"}],this.lineChartLegend=!0,this.lineChartType="line",this.barChartOptions={scaleShowVerticalLines:!1,responsive:!0},this.barChartLabels=["2006","2007","2008","2009","2010","2011","2012"],this.barChartType="bar",this.barChartLegend=!0,this.barChartData=[{data:[65,59,80,81,56,55,40],label:"Series A"},{data:[28,48,40,19,86,27,90],label:"Series B"}],this.doughnutChartLabels=["Download Sales","In-Store Sales","Mail-Order Sales"],this.doughnutChartData=[350,450,100],this.doughnutChartType="doughnut",this.radarChartLabels=["Eating","Drinking","Sleeping","Designing","Coding","Cycling","Running"],this.radarChartData=[{data:[65,59,90,81,56,55,40],label:"Series A"},{data:[28,48,40,19,96,27,100],label:"Series B"}],this.radarChartType="radar",this.pieChartLabels=["Download Sales","In-Store Sales","Mail Sales"],this.pieChartData=[300,500,100],this.pieChartType="pie",this.polarAreaChartLabels=["Download Sales","In-Store Sales","Mail Sales","Telesales","Corporate Sales"],this.polarAreaChartData=[300,500,100,40,120],this.polarAreaLegend=!0,this.polarAreaChartType="polarArea"}return ChartsComponent.prototype.chartClicked=function(t){console.log(t)},ChartsComponent.prototype.chartHovered=function(t){console.log(t)},ChartsComponent=i([n.i(r.Component)({template:n(713)}),o("design:paramtypes",[])],ChartsComponent)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function ButtonsComponent(){}return ButtonsComponent=i([n.i(r.Component)({template:n(714)}),o("design:paramtypes",[])],ButtonsComponent)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function CardsComponent(){}return CardsComponent=i([n.i(r.Component)({template:n(715)}),o("design:paramtypes",[])],CardsComponent)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function FormsComponent(){}return FormsComponent=i([n.i(r.Component)({template:n(716)}),o("design:paramtypes",[])],FormsComponent)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function SocialButtonsComponent(){}return SocialButtonsComponent=i([n.i(r.Component)({template:n(717)}),o("design:paramtypes",[])],SocialButtonsComponent)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function SwitchesComponent(){}return SwitchesComponent=i([n.i(r.Component)({template:n(718)}),o("design:paramtypes",[])],SwitchesComponent)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function TablesComponent(){}return TablesComponent=i([n.i(r.Component)({template:n(719)}),o("design:paramtypes",[])],TablesComponent)}()},function(t,e,n){"use strict";var r=n(0),i=n(89);n.d(e,"a",function(){return s});var o=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},a=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function DashboardComponent(t){this.router=t,this.brandPrimary="#20a8d8",this.brandSuccess="#4dbd74",this.brandInfo="#63c2de",this.brandWarning="#f8cb00",this.brandDanger="#f86c6b",this.status={isopen:!1},this.lineChart1Data=[{data:[65,59,84,84,51,55,40],label:"Series A"}],this.lineChart1Labels=["January","February","March","April","May","June","July"],this.lineChart1Options={maintainAspectRatio:!1,scales:{xAxes:[{gridLines:{color:"transparent",zeroLineColor:"transparent"},ticks:{fontSize:2,fontColor:"transparent"}}],yAxes:[{display:!1,ticks:{display:!1,min:35,max:89}}]},elements:{line:{borderWidth:1},point:{radius:4,hitRadius:10,hoverRadius:4}},legend:{display:!1}},this.lineChart1Colours=[{backgroundColor:this.brandPrimary,borderColor:"rgba(255,255,255,.55)"}],this.lineChart1Legend=!1,this.lineChart1Type="line",this.lineChart2Data=[{data:[1,18,9,17,34,22,11],label:"Series A"}],this.lineChart2Labels=["January","February","March","April","May","June","July"],this.lineChart2Options={maintainAspectRatio:!1,scales:{xAxes:[{gridLines:{color:"transparent",zeroLineColor:"transparent"},ticks:{fontSize:2,fontColor:"transparent"}}],yAxes:[{display:!1,ticks:{display:!1,min:-4,max:39}}]},elements:{line:{tension:1e-5,borderWidth:1},point:{radius:4,hitRadius:10,hoverRadius:4}},legend:{display:!1}},this.lineChart2Colours=[{backgroundColor:this.brandInfo,borderColor:"rgba(255,255,255,.55)"}],this.lineChart2Legend=!1,this.lineChart2Type="line",this.lineChart3Data=[{data:[78,81,80,45,34,12,40],label:"Series A"}],this.lineChart3Labels=["January","February","March","April","May","June","July"],this.lineChart3Options={maintainAspectRatio:!1,scales:{xAxes:[{display:!1}],yAxes:[{display:!1}]},elements:{line:{borderWidth:2},point:{radius:0,hitRadius:10,hoverRadius:4}},legend:{display:!1}},this.lineChart3Colours=[{backgroundColor:"rgba(255,255,255,.2)",borderColor:"rgba(255,255,255,.55)"}],this.lineChart3Legend=!1,this.lineChart3Type="line",this.barChart1Data=[{data:[78,81,80,45,34,12,40,78,81,80,45,34,12,40,12,40],label:"Series A"}],this.barChart1Labels=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"],this.barChart1Options={maintainAspectRatio:!1,scales:{xAxes:[{display:!1,barPercentage:.6}],yAxes:[{display:!1}]},legend:{display:!1}},this.barChart1Colours=[{backgroundColor:"rgba(255,255,255,.3)",borderWidth:0}],this.barChart1Legend=!1,this.barChart1Type="bar",this.mainChartElements=27,this.mainChartData1=[],this.mainChartData2=[],this.mainChartData3=[],this.mainChartData=[{data:this.mainChartData1,label:"Current"},{data:this.mainChartData2,label:"Previous"},{data:this.mainChartData3,label:"BEP"}],this.mainChartLabels=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","Monday","Thursday","Wednesday","Thursday","Friday","Saturday","Sunday"],this.mainChartOptions={responsive:!0,maintainAspectRatio:!1,scales:{xAxes:[{gridLines:{drawOnChartArea:!1},ticks:{callback:function(t){return t.charAt(0)}}}],yAxes:[{ticks:{beginAtZero:!0,maxTicksLimit:5,stepSize:Math.ceil(50),max:250}}]},elements:{line:{borderWidth:2},point:{radius:0,hitRadius:10,hoverRadius:4,hoverBorderWidth:3}},legend:{display:!1}},this.mainChartColours=[{backgroundColor:this.convertHex(this.brandInfo,10),borderColor:this.brandInfo,pointHoverBackgroundColor:"#fff"},{backgroundColor:"transparent",borderColor:this.brandSuccess,pointHoverBackgroundColor:"#fff"},{backgroundColor:"transparent",borderColor:this.brandDanger,pointHoverBackgroundColor:"#fff",borderWidth:1,borderDash:[8,5]}],this.mainChartLegend=!1,this.mainChartType="line",this.socialChartData1=[{data:[65,59,84,84,51,55,40],label:"Facebook"}],this.socialChartData2=[{data:[1,13,9,17,34,41,38],label:"Twitter"}],this.socialChartData3=[{data:[78,81,80,45,34,12,40],label:"LinkedIn"}],this.socialChartData4=[{data:[35,23,56,22,97,23,64],label:"Google+"}],this.socialChartLabels=["January","February","March","April","May","June","July"],this.socialChartOptions={responsive:!0,maintainAspectRatio:!1,scales:{xAxes:[{display:!1}],yAxes:[{display:!1}]},elements:{line:{borderWidth:2},point:{radius:0,hitRadius:10,hoverRadius:4,hoverBorderWidth:3}},legend:{display:!1}},this.socialChartColours=[{backgroundColor:"rgba(255,255,255,.1)",borderColor:"rgba(255,255,255,.55)",pointHoverBackgroundColor:"#fff"}],this.socialChartLegend=!1,this.socialChartType="line",this.sparklineChartData1=[{data:[35,23,56,22,97,23,64],label:"Clients"}],this.sparklineChartData2=[{data:[65,59,84,84,51,55,40],label:"Clients"}],this.sparklineChartLabels=["January","February","March","April","May","June","July"],this.sparklineChartOptions={responsive:!0,maintainAspectRatio:!1,scales:{xAxes:[{display:!1}],yAxes:[{display:!1}]},elements:{line:{borderWidth:2},point:{radius:0,hitRadius:10,hoverRadius:4,hoverBorderWidth:3}},legend:{display:!1}},this.sparklineChartDefault=[{backgroundColor:"transparent",borderColor:"#d1d4d7"}],this.sparklineChartPrimary=[{backgroundColor:"transparent",borderColor:this.brandPrimary}],this.sparklineChartInfo=[{backgroundColor:"transparent",borderColor:this.brandInfo}],this.sparklineChartDanger=[{backgroundColor:"transparent",borderColor:this.brandDanger}],this.sparklineChartWarning=[{backgroundColor:"transparent",borderColor:this.brandWarning}],this.sparklineChartSuccess=[{backgroundColor:"transparent",borderColor:this.brandSuccess}],this.sparklineChartLegend=!1,this.sparklineChartType="line"}return DashboardComponent.prototype.toggleDropdown=function(t){t.preventDefault(),t.stopPropagation(),this.status.isopen=!this.status.isopen},DashboardComponent.prototype.convertHex=function(t,e){t=t.replace("#","");var n=parseInt(t.substring(0,2),16),r=parseInt(t.substring(2,4),16),i=parseInt(t.substring(4,6),16),o="rgba("+n+","+r+","+i+","+e/100+")";return o},DashboardComponent.prototype.chartClicked=function(t){console.log(t)},DashboardComponent.prototype.chartHovered=function(t){console.log(t)},DashboardComponent.prototype.random=function(t,e){return Math.floor(Math.random()*(e-t+1)+t)},DashboardComponent.prototype.ngOnInit=function(){for(var t=0;t<=this.mainChartElements;t++)this.mainChartData1.push(this.random(50,200)),this.mainChartData2.push(this.random(80,100)),this.mainChartData3.push(65)},DashboardComponent=o([n.i(r.Component)({template:n(720)}),a("design:paramtypes",["function"==typeof(t="undefined"!=typeof i.b&&i.b)&&t||Object])],DashboardComponent);var t}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function FontAwesomeComponent(){}return FontAwesomeComponent=i([n.i(r.Component)({template:n(721)}),o("design:paramtypes",[])],FontAwesomeComponent)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function SimpleLineIconsComponent(){}return SimpleLineIconsComponent=i([n.i(r.Component)({template:n(722)}),o("design:paramtypes",[])],SimpleLineIconsComponent)}()},function(t,e,n){"use strict";var r=n(0),i=n(89);n.d(e,"a",function(){return s});var o=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},a=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function FullLayoutComponent(t){this.router=t,this.disabled=!1,this.status={isopen:!1}}return FullLayoutComponent.prototype.toggled=function(t){console.log("Dropdown is now: ",t)},FullLayoutComponent.prototype.toggleDropdown=function(t){t.preventDefault(),t.stopPropagation(),this.status.isopen=!this.status.isopen},FullLayoutComponent.prototype.ngOnInit=function(){},FullLayoutComponent=o([n.i(r.Component)({selector:"app-dashboard",template:n(723)}),a("design:paramtypes",["function"==typeof(t="undefined"!=typeof i.b&&i.b)&&t||Object])],FullLayoutComponent);var t}()},function(t,e,n){"use strict";var r=n(0),i=n(89);n.d(e,"a",function(){return s});var o=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},a=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function SimpleLayoutComponent(t){this.router=t}return SimpleLayoutComponent.prototype.ngOnInit=function(){},SimpleLayoutComponent=o([n.i(r.Component)({selector:"app-dashboard",template:"<router-outlet></router-outlet>"}),a("design:paramtypes",["function"==typeof(t="undefined"!=typeof i.b&&i.b)&&t||Object])],SimpleLayoutComponent);var t}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function p404Component(){}return p404Component=i([n.i(r.Component)({template:n(724)}),o("design:paramtypes",[])],p404Component)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function p500Component(){}return p500Component=i([n.i(r.Component)({template:n(725)}),o("design:paramtypes",[])],p500Component)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function LoginComponent(){}return LoginComponent=i([n.i(r.Component)({template:n(726)}),o("design:paramtypes",[])],LoginComponent)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function RegisterComponent(){}return RegisterComponent=i([n.i(r.Component)({template:n(727)}),o("design:paramtypes",[])],RegisterComponent)}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function WidgetsComponent(){this.brandPrimary="#20a8d8",this.brandSuccess="#4dbd74",this.brandInfo="#63c2de",this.brandWarning="#f8cb00",this.brandDanger="#f86c6b",this.lineChart1Data=[{data:[65,59,84,84,51,55,40],label:"Series A"}],this.lineChart1Labels=["January","February","March","April","May","June","July"],this.lineChart1Options={maintainAspectRatio:!1,scales:{xAxes:[{gridLines:{color:"transparent",zeroLineColor:"transparent"},ticks:{fontSize:2,fontColor:"transparent"}}],yAxes:[{display:!1,ticks:{display:!1,min:35,max:89}}]},elements:{line:{borderWidth:1},point:{radius:4,hitRadius:10,hoverRadius:4}},legend:{display:!1}},this.lineChart1Colours=[{backgroundColor:this.brandPrimary,borderColor:"rgba(255,255,255,.55)"}],this.lineChart1Legend=!1,this.lineChart1Type="line",this.lineChart2Data=[{data:[1,18,9,17,34,22,11],label:"Series A"}],this.lineChart2Labels=["January","February","March","April","May","June","July"],this.lineChart2Options={maintainAspectRatio:!1,scales:{xAxes:[{gridLines:{color:"transparent",zeroLineColor:"transparent"},ticks:{fontSize:2,fontColor:"transparent"}}],yAxes:[{display:!1,ticks:{display:!1,min:-4,max:39}}]},elements:{line:{tension:1e-5,borderWidth:1},point:{radius:4,hitRadius:10,hoverRadius:4}},legend:{display:!1}},this.lineChart2Colours=[{backgroundColor:this.brandInfo,borderColor:"rgba(255,255,255,.55)"}],this.lineChart2Legend=!1,this.lineChart2Type="line",this.lineChart3Data=[{data:[78,81,80,45,34,12,40],label:"Series A"}],this.lineChart3Labels=["January","February","March","April","May","June","July"],this.lineChart3Options={maintainAspectRatio:!1,scales:{xAxes:[{display:!1}],yAxes:[{display:!1}]},elements:{line:{borderWidth:2},point:{radius:0,hitRadius:10,hoverRadius:4}},legend:{display:!1}},this.lineChart3Colours=[{backgroundColor:"rgba(255,255,255,.2)",borderColor:"rgba(255,255,255,.55)"}],this.lineChart3Legend=!1,this.lineChart3Type="line",this.barChart1Data=[{data:[78,81,80,45,34,12,40,78,81,80,45,34,12,40,12,40],label:"Series A"}],this.barChart1Labels=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"],this.barChart1Options={maintainAspectRatio:!1,scales:{xAxes:[{display:!1,barPercentage:.6}],yAxes:[{display:!1}]},legend:{display:!1}},this.barChart1Colours=[{backgroundColor:"rgba(255,255,255,.3)",borderWidth:0}],this.barChart1Legend=!1,this.barChart1Type="bar",this.lineChart4Data=[{data:[4,18,9,17,34,22,11,3,15,12,18,9],label:"Series A"}],this.lineChart4Labels=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],this.lineChart4Options={maintainAspectRatio:!1,scales:{xAxes:[{display:!1,points:!1}],yAxes:[{display:!1}]},elements:{point:{radius:0}},legend:{display:!1}},this.lineChart4Colours=[{backgroundColor:"transparent",borderColor:"rgba(255,255,255,.55)",borderWidth:2}],this.lineChart4Legend=!1,this.lineChart4Type="line",this.barChart2Data=[{data:[4,18,9,17,34,22,11,3,15,12,18,9],label:"Series A"}],this.barChart2Labels=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],this.barChart2Options={maintainAspectRatio:!1,scales:{xAxes:[{display:!1,barPercentage:.6}],yAxes:[{display:!1,ticks:{beginAtZero:!0}}]},legend:{display:!1}},this.barChart2Colours=[{backgroundColor:"rgba(0,0,0,.2)",borderWidth:0}],this.barChart2Legend=!1,this.barChart2Type="bar",this.barChart3Data=[{data:[4,18,9,17,34,22,11,3,15,12,18,9],label:"Series A"}],this.barChart3Labels=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],this.barChart3Options={maintainAspectRatio:!1,scales:{xAxes:[{display:!1}],yAxes:[{display:!1}]},legend:{display:!1}},this.barChart3Primary=[{backgroundColor:this.brandPrimary,borderColor:"transparent",borderWidth:1}],this.barChart3Danger=[{backgroundColor:this.brandDanger,borderColor:"transparent",borderWidth:1}],this.barChart3Success=[{backgroundColor:this.brandSuccess,borderColor:"transparent",borderWidth:1}],this.barChart3Legend=!1,this.barChart3Type="bar",this.lineChart5Data=[{data:[65,59,84,84,51,55,40],label:"Series A"}],this.lineChart5Labels=["January","February","March","April","May","June","July"],this.lineChart5Options={maintainAspectRatio:!1,scales:{xAxes:[{display:!1,points:!1}],yAxes:[{display:!1}]},elements:{point:{radius:0}},legend:{display:!1}},this.lineChart5Info=[{backgroundColor:"transparent",borderColor:this.brandInfo,borderWidth:2}],this.lineChart5Success=[{backgroundColor:"transparent",borderColor:this.brandInfo,borderWidth:2}],this.lineChart5Warning=[{backgroundColor:"transparent",borderColor:this.brandWarning,borderWidth:2}],this.lineChart5Legend=!1,this.lineChart5Type="line"}return WidgetsComponent.prototype.convertHex=function(t,e){t=t.replace("#","");var n=parseInt(t.substring(0,2),16),r=parseInt(t.substring(2,4),16),i=parseInt(t.substring(4,6),16),o="rgba("+n+","+r+","+i+","+e/100+")";return o},WidgetsComponent.prototype.chartClicked=function(t){console.log(t)},WidgetsComponent.prototype.chartHovered=function(t){console.log(t)},WidgetsComponent=i([n.i(r.Component)({template:n(728)}),o("design:paramtypes",[])],WidgetsComponent)}()},function(t,e,n){var r=n(63);t.exports=function(t,e){if("number"!=typeof t&&"Number"!=r(t))throw TypeError(e);return+t}},function(t,e,n){var r=n(33),i=n(31),o=n(94);t.exports=function(t){return function(e,n,a){var s,c=r(e),l=i(c.length),u=o(a,l);if(t&&n!=n){for(;l>u;)if(s=c[u++],s!=s)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}}},function(t,e,n){var r=n(62),i=n(34),o=n(91),a=n(31);t.exports=function(t,e,n,s,c){r(e);var l=i(t),u=o(l),p=a(l.length),d=c?p-1:0,f=c?-1:1;if(n<2)for(;;){if(d in u){s=u[d],d+=f;break}if(d+=f,c?d<0:p<=d)throw TypeError("Reduce of empty array with no initial value")}for(;c?d>=0:p>d;d+=f)d in u&&(s=e(s,u[d],d,l));return s}},function(t,e,n){"use strict";var r=n(62),i=n(8),o=n(556),a=[].slice,s={},c=function(t,e,n){if(!(e in s)){for(var r=[],i=0;i<e;i++)r[i]="a["+i+"]";s[e]=Function("F,a","return new F("+r.join(",")+")")}return s[e](t,n)};t.exports=Function.bind||function(t){var e=r(this),n=a.call(arguments,1),s=function(){var r=n.concat(a.call(arguments));return this instanceof s?c(e,r.length,r):o(e,r,t)};return i(e.prototype)&&(s.prototype=e.prototype),s}},function(t,e,n){var r=n(63),i=n(11)("toStringTag"),o="Arguments"==r(function(){return arguments}()),a=function(t,e){try{return t[e]}catch(n){}};t.exports=function(t){var e,n,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=a(e=Object(t),i))?n:o?r(e):"Object"==(s=r(e))&&"function"==typeof e.callee?"Arguments":s}},function(t,e,n){"use strict";var r=n(18).f,i=n(73),o=n(206),a=n(72),s=n(194),c=n(48),l=n(131),u=n(202),p=n(372),d=n(208),f=n(22),h=n(57).fastKey,m=f?"_s":"size",v=function(t,e){var n,r=h(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,u){var p=t(function(t,r){s(t,p,e,"_i"),t._i=i(null),t._f=void 0,t._l=void 0,t[m]=0,void 0!=r&&l(r,n,t[u],t)});return o(p.prototype,{clear:function(){for(var t=this,e=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t._f=t._l=void 0,t[m]=0},"delete":function(t){var e=this,n=v(e,t);if(n){var r=n.n,i=n.p;delete e._i[n.i],n.r=!0,i&&(i.n=r),r&&(r.p=i),e._f==n&&(e._f=r),e._l==n&&(e._l=i),e[m]--}return!!n},forEach:function(t){s(this,p,"forEach");for(var e,n=a(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!v(this,t)}}),f&&r(p.prototype,"size",{get:function(){return c(this[m])}}),p},def:function(t,e,n){var r,i,o=v(t,e);return o?o.v=n:(t._l=o={i:i=h(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=o),r&&(r.n=o),t[m]++,"F"!==i&&(t._i[i]=o)),t},getEntry:v,setStrong:function(t,e,n){u(t,e,function(t,e){this._t=t,this._k=e,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?p(0,n.k):"values"==e?p(0,n.v):p(0,[n.k,n.v]):(t._t=void 0,p(1))},n?"entries":"values",!n,!0),d(e)}}},function(t,e,n){"use strict";var r=n(18),i=n(64);t.exports=function(t,e,n){e in t?r.f(t,e,i(0,n)):t[e]=n}},function(t,e,n){var r=n(8),i=n(14).document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,e,n){t.exports=n(14).document&&document.documentElement},function(t,e,n){t.exports=!n(22)&&!n(5)(function(){return 7!=Object.defineProperty(n(364)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(92),i=n(11)("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||o[i]===t)}},function(t,e,n){var r=n(8),i=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&i(t)===t}},function(t,e,n){var r=n(4);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(o){var a=t.return;throw void 0!==a&&r(a.call(t)),
+o}}},function(t,e,n){"use strict";var r=n(73),i=n(64),o=n(134),a={};n(49)(a,n(11)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:i(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var r=n(11)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(a){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},t(o)}catch(s){}return n}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},function(t,e,n){"use strict";var r=n(74),i=n(132),o=n(133),a=n(34),s=n(91),c=Object.assign;t.exports=!c||n(5)(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=a(t),c=arguments.length,l=1,u=i.f,p=o.f;c>l;)for(var d,f=s(arguments[l++]),h=u?r(f).concat(u(f)):r(f),m=h.length,v=0;m>v;)p.call(f,d=h[v++])&&(n[d]=f[d]);return n}:c},function(t,e,n){var r=n(18),i=n(4),o=n(74);t.exports=n(22)?Object.defineProperties:function(t,e){i(t);for(var n,a=o(e),s=a.length,c=0;s>c;)r.f(t,n=a[c++],e[n]);return t}},function(t,e,n){var r=n(33),i=n(93).f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return i(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&"[object Window]"==o.call(t)?s(t):i(r(t))}},function(t,e,n){var r=n(26),i=n(33),o=n(358)(!1),a=n(209)("IE_PROTO");t.exports=function(t,e){var n,s=i(t),c=0,l=[];for(n in s)n!=a&&r(s,n)&&l.push(n);for(;e.length>c;)r(s,n=e[c++])&&(~o(l,n)||l.push(n));return l}},function(t,e,n){var r=n(14).parseFloat,i=n(136).trim;t.exports=1/r(n(211)+"-0")!==-(1/0)?function(t){var e=i(String(t),3),n=r(e);return 0===n&&"-"==e.charAt(0)?-0:n}:r},function(t,e,n){var r=n(14).parseInt,i=n(136).trim,o=n(211),a=/^[\-+]?0[xX]/;t.exports=8!==r(o+"08")||22!==r(o+"0x16")?function(t,e){var n=i(String(t),3);return r(n,e>>>0||(a.test(n)?16:10))}:r},function(t,e,n){var r=n(75),i=n(48);t.exports=function(t){return function(e,n){var o,a,s=String(i(e)),c=r(n),l=s.length;return c<0||c>=l?t?"":void 0:(o=s.charCodeAt(c),o<55296||o>56319||c+1===l||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):o:t?s.slice(c,c+2):(o-55296<<10)+(a-56320)+65536)}}},function(t,e,n){"use strict";var r=n(75),i=n(48);t.exports=function(t){var e=String(i(this)),n="",o=r(t);if(o<0||o==1/0)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(e+=e))1&o&&(n+=e);return n}},function(t,e,n){e.f=n(11)},function(t,e,n){var r=n(361),i=n(11)("iterator"),o=n(92);t.exports=n(13).getIteratorMethod=function(t){if(void 0!=t)return t[i]||t["@@iterator"]||o[r(t)]}},function(t,e,n){"use strict";var r=n(90),i=n(372),o=n(92),a=n(33);t.exports=n(202)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,i(1)):"keys"==e?i(0,n):"values"==e?i(0,t[n]):i(0,[n,t[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(t,e,n){"use strict";var r=n(362);t.exports=n(195)("Map",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var e=r.getEntry(this,t);return e&&e.v},set:function(t,e){return r.def(this,0===t?0:t,e)}},r,!0)},function(t,e,n){n(22)&&"g"!=/./g.flags&&n(18).f(RegExp.prototype,"flags",{configurable:!0,get:n(198)})},function(t,e,n){n(130)("match",1,function(t,e,n){return[function(n){"use strict";var r=t(this),i=void 0==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},n]})},function(t,e,n){n(130)("replace",2,function(t,e,n){return[function(r,i){"use strict";var o=t(this),a=void 0==r?void 0:r[e];return void 0!==a?a.call(r,o,i):n.call(String(o),r,i)},n]})},function(t,e,n){n(130)("search",1,function(t,e,n){return[function(n){"use strict";var r=t(this),i=void 0==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},n]})},function(t,e,n){n(130)("split",2,function(t,e,r){"use strict";var i=n(201),o=r,a=[].push,s="split",c="length",l="lastIndex";if("c"=="abbc"[s](/(b)*/)[1]||4!="test"[s](/(?:)/,-1)[c]||2!="ab"[s](/(?:ab)*/)[c]||4!="."[s](/(.?)(.?)/)[c]||"."[s](/()()/)[c]>1||""[s](/.?/)[c]){var u=void 0===/()??/.exec("")[1];r=function(t,e){var n=String(this);if(void 0===t&&0===e)return[];if(!i(t))return o.call(n,t,e);var r,s,p,d,f,h=[],m=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),v=0,g=void 0===e?4294967295:e>>>0,b=new RegExp(t.source,m+"g");for(u||(r=new RegExp("^"+b.source+"$(?!\\s)",m));(s=b.exec(n))&&(p=s.index+s[0][c],!(p>v&&(h.push(n.slice(v,s.index)),!u&&s[c]>1&&s[0].replace(r,function(){for(f=1;f<arguments[c]-2;f++)void 0===arguments[f]&&(s[f]=void 0)}),s[c]>1&&s.index<n[c]&&a.apply(h,s.slice(1)),d=s[0][c],v=p,h[c]>=g)));)b[l]===s.index&&b[l]++;return v===n[c]?!d&&b.test("")||h.push(""):h.push(n.slice(v)),h[c]>g?h.slice(0,g):h}}else"0"[s](void 0,0)[c]&&(r=function(t,e){return void 0===t&&0===e?[]:o.call(this,t,e)});return[function(n,i){var o=t(this),a=void 0==n?void 0:n[e];return void 0!==a?a.call(n,o,i):r.call(String(o),n,i)},r]})},function(t,e,n){"use strict";var r=n(362);t.exports=n(195)("Set",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return r.def(this,t=0===t?0:t,t)}},r)},function(t,e,n){"use strict";var r=n(14),i=n(26),o=n(22),a=n(1),s=n(27),c=n(57).KEY,l=n(5),u=n(135),p=n(134),d=n(95),f=n(11),h=n(382),m=n(560),v=n(557),g=n(555),b=n(200),y=n(4),_=n(33),w=n(65),x=n(64),C=n(73),S=n(376),k=n(58),E=n(18),P=n(74),A=k.f,T=E.f,O=S.f,M=r.Symbol,D=r.JSON,R=D&&D.stringify,I="prototype",N=f("_hidden"),V=f("toPrimitive"),L={}.propertyIsEnumerable,j=u("symbol-registry"),F=u("symbols"),W=u("op-symbols"),B=Object[I],U="function"==typeof M,z=r.QObject,H=!z||!z[I]||!z[I].findChild,q=o&&l(function(){return 7!=C(T({},"a",{get:function(){return T(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=A(B,e);r&&delete B[e],T(t,e,n),r&&t!==B&&T(B,e,r)}:T,G=function(t){var e=F[t]=C(M[I]);return e._k=t,e},Y=U&&"symbol"==typeof M.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof M},K=function(t,e,n){return t===B&&K(W,e,n),y(t),e=w(e,!0),y(n),i(F,e)?(n.enumerable?(i(t,N)&&t[N][e]&&(t[N][e]=!1),n=C(n,{enumerable:x(0,!1)})):(i(t,N)||T(t,N,x(1,{})),t[N][e]=!0),q(t,e,n)):T(t,e,n)},Z=function(t,e){y(t);for(var n,r=g(e=_(e)),i=0,o=r.length;o>i;)K(t,n=r[i++],e[n]);return t},$=function(t,e){return void 0===e?C(t):Z(C(t),e)},J=function(t){var e=L.call(this,t=w(t,!0));return!(this===B&&i(F,t)&&!i(W,t))&&(!(e||!i(this,t)||!i(F,t)||i(this,N)&&this[N][t])||e)},Q=function(t,e){if(t=_(t),e=w(e,!0),t!==B||!i(F,e)||i(W,e)){var n=A(t,e);return!n||!i(F,e)||i(t,N)&&t[N][e]||(n.enumerable=!0),n}},X=function(t){for(var e,n=O(_(t)),r=[],o=0;n.length>o;)i(F,e=n[o++])||e==N||e==c||r.push(e);return r},tt=function(t){for(var e,n=t===B,r=O(n?W:_(t)),o=[],a=0;r.length>a;)!i(F,e=r[a++])||n&&!i(B,e)||o.push(F[e]);return o};U||(M=function(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var t=d(arguments.length>0?arguments[0]:void 0),e=function(n){this===B&&e.call(W,n),i(this,N)&&i(this[N],t)&&(this[N][t]=!1),q(this,t,x(1,n))};return o&&H&&q(B,t,{configurable:!0,set:e}),G(t)},s(M[I],"toString",function(){return this._k}),k.f=Q,E.f=K,n(93).f=S.f=X,n(133).f=J,n(132).f=tt,o&&!n(203)&&s(B,"propertyIsEnumerable",J,!0),h.f=function(t){return G(f(t))}),a(a.G+a.W+a.F*!U,{Symbol:M});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;)f(et[nt++]);for(var et=P(f.store),nt=0;et.length>nt;)m(et[nt++]);a(a.S+a.F*!U,"Symbol",{"for":function(t){return i(j,t+="")?j[t]:j[t]=M(t)},keyFor:function(t){if(Y(t))return v(j,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){H=!0},useSimple:function(){H=!1}}),a(a.S+a.F*!U,"Object",{create:$,defineProperty:K,defineProperties:Z,getOwnPropertyDescriptor:Q,getOwnPropertyNames:X,getOwnPropertySymbols:tt}),D&&a(a.S+a.F*(!U||l(function(){var t=M();return"[null]"!=R([t])||"{}"!=R({a:t})||"{}"!=R(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!Y(t)){for(var e,n,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);return e=r[1],"function"==typeof e&&(n=e),!n&&b(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!Y(e))return e}),r[1]=e,R.apply(D,r)}}}),M[I][V]||n(49)(M[I],V,M[I].valueOf),p(M,"Symbol"),p(Math,"Math",!0),p(r.JSON,"JSON",!0)},function(t,e,n){for(var r=n(384),i=n(27),o=n(14),a=n(49),s=n(92),c=n(11),l=c("iterator"),u=c("toStringTag"),p=s.Array,d=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],f=0;f<5;f++){var h,m=d[f],v=o[m],g=v&&v.prototype;if(g){g[l]||a(g,l,p),g[u]||a(g,u,m),s[m]=p;for(h in r)g[h]||i(g,h,r[h],!0)}}},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},a=n(0),s=n(212),c=function(){function AccordionPanelComponent(t){this.accordion=t}return Object.defineProperty(AccordionPanelComponent.prototype,"isOpen",{get:function(){return this._isOpen},set:function(t){this._isOpen=t,t&&this.accordion.closeOtherPanels(this)},enumerable:!0,configurable:!0}),AccordionPanelComponent.prototype.ngOnInit=function(){this.panelClass=this.panelClass||"panel-default",this.accordion.addGroup(this)},AccordionPanelComponent.prototype.ngOnDestroy=function(){this.accordion.removeGroup(this)},AccordionPanelComponent.prototype.toggleOpen=function(t){t.preventDefault(),this.isDisabled||(this.isOpen=!this.isOpen)},r([a.Input(),i("design:type",String)],AccordionPanelComponent.prototype,"heading",void 0),r([a.Input(),i("design:type",String)],AccordionPanelComponent.prototype,"panelClass",void 0),r([a.Input(),i("design:type",Boolean)],AccordionPanelComponent.prototype,"isDisabled",void 0),r([a.HostBinding("class.panel-open"),a.Input(),i("design:type",Boolean)],AccordionPanelComponent.prototype,"isOpen",null),AccordionPanelComponent=r([a.Component({selector:"accordion-group, accordion-panel",template:'\n    <div class="panel" [ngClass]="panelClass">\n      <div class="panel-heading" (click)="toggleOpen($event)">\n        <h4 class="panel-title">\n          <a href tabindex="0" class="accordion-toggle">\n            <span *ngIf="heading" [ngClass]="{\'text-muted\': isDisabled}">{{heading}}</span>\n            <ng-content select="[accordion-heading]"></ng-content>\n          </a>\n        </h4>\n      </div>\n      <div class="panel-collapse collapse" [collapse]="!isOpen">\n        <div class="panel-body">\n          <ng-content></ng-content>\n        </div>\n      </div>\n    </div>\n  '}),o(0,a.Inject(s.AccordionComponent)),i("design:paramtypes",[s.AccordionComponent])],AccordionPanelComponent)}();e.AccordionPanelComponent=c},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a='\n  <div class="alert" role="alert" [ngClass]="classes" *ngIf="!closed">\n    <button *ngIf="dismissible" type="button" class="close" (click)="onClose()" (touch)="onClose()">\n      <span aria-hidden="true">&times;</span>\n      <span class="sr-only">Close</span>\n    </button>\n    <ng-content></ng-content>\n  </div>\n  ',s=function(){function AlertComponent(){this.type="warning",this.close=new o.EventEmitter((!1)),this.classes=[]}return AlertComponent.prototype.ngOnInit=function(){var t=this;this.classes[0]="alert-"+this.type,this.dismissible?this.classes[1]="alert-dismissible":this.classes.length=1,this.dismissOnTimeout&&setTimeout(function(){return t.onClose()},this.dismissOnTimeout)},AlertComponent.prototype.onClose=function(){this.closed=!0,this.close.emit(this)},r([o.Input(),i("design:type",String)],AlertComponent.prototype,"type",void 0),r([o.Input(),i("design:type",Boolean)],AlertComponent.prototype,"dismissible",void 0),r([o.Input(),i("design:type",Number)],AlertComponent.prototype,"dismissOnTimeout",void 0),r([o.Output(),i("design:type",o.EventEmitter)],AlertComponent.prototype,"close",void 0),AlertComponent=r([o.Component({selector:"alert",template:a}),i("design:paramtypes",[])],AlertComponent)}();e.AlertComponent=s},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},a=n(0),s=n(24),c=function(){function ButtonCheckboxDirective(t){this.state=!1,this.onChange=Function.prototype,this.onTouched=Function.prototype,this.cd=t,t.valueAccessor=this}return ButtonCheckboxDirective.prototype.onClick=function(){this.toggle(!this.state),this.cd.viewToModelUpdate(this.value)},ButtonCheckboxDirective.prototype.ngOnInit=function(){this.toggle(this.trueValue===this.value)},Object.defineProperty(ButtonCheckboxDirective.prototype,"trueValue",{get:function(){return"undefined"==typeof this.btnCheckboxTrue||this.btnCheckboxTrue},enumerable:!0,configurable:!0}),Object.defineProperty(ButtonCheckboxDirective.prototype,"falseValue",{get:function(){return"undefined"!=typeof this.btnCheckboxFalse&&this.btnCheckboxFalse},enumerable:!0,configurable:!0}),ButtonCheckboxDirective.prototype.toggle=function(t){this.state=t,this.value=this.state?this.trueValue:this.falseValue},ButtonCheckboxDirective.prototype.writeValue=function(t){this.state=this.trueValue===t,this.value=t},ButtonCheckboxDirective.prototype.registerOnChange=function(t){this.onChange=t},ButtonCheckboxDirective.prototype.registerOnTouched=function(t){this.onTouched=t},r([a.Input(),i("design:type",Object)],ButtonCheckboxDirective.prototype,"btnCheckboxTrue",void 0),r([a.Input(),i("design:type",Object)],ButtonCheckboxDirective.prototype,"btnCheckboxFalse",void 0),r([a.HostBinding("class.active"),i("design:type",Boolean)],ButtonCheckboxDirective.prototype,"state",void 0),r([a.HostListener("click"),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],ButtonCheckboxDirective.prototype,"onClick",null),ButtonCheckboxDirective=r([a.Directive({selector:"[btnCheckbox][ngModel]"}),o(0,a.Self()),i("design:paramtypes",[s.NgModel])],ButtonCheckboxDirective)}();e.ButtonCheckboxDirective=c},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},a=n(0),s=n(24),c=function(){function ButtonRadioDirective(t,e){this.onChange=Function.prototype,this.onTouched=Function.prototype,this.cd=t,this.el=e,t.valueAccessor=this}return Object.defineProperty(ButtonRadioDirective.prototype,"isActive",{get:function(){return this.btnRadio===this.value},enumerable:!0,configurable:!0}),ButtonRadioDirective.prototype.onClick=function(){return this.uncheckable&&this.btnRadio===this.value?this.cd.viewToModelUpdate(void 0):void this.cd.viewToModelUpdate(this.btnRadio)},ButtonRadioDirective.prototype.ngOnInit=function(){this.uncheckable="undefined"!=typeof this.uncheckable},Object.defineProperty(ButtonRadioDirective.prototype,"value",{get:function(){return this.cd.viewModel},set:function(t){this.cd.viewModel=t},enumerable:!0,configurable:!0}),ButtonRadioDirective.prototype.writeValue=function(t){this.value=t},ButtonRadioDirective.prototype.registerOnChange=function(t){this.onChange=t},ButtonRadioDirective.prototype.registerOnTouched=function(t){this.onTouched=t},r([a.Input(),i("design:type",String)],ButtonRadioDirective.prototype,"btnRadio",void 0),r([a.Input(),i("design:type",Boolean)],ButtonRadioDirective.prototype,"uncheckable",void 0),r([a.HostBinding("class.active"),i("design:type",Boolean)],ButtonRadioDirective.prototype,"isActive",null),r([a.HostListener("click"),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],ButtonRadioDirective.prototype,"onClick",null),ButtonRadioDirective=r([a.Directive({selector:"[btnRadio][ngModel]"}),o(0,a.Self()),i("design:paramtypes",[s.NgModel,a.ElementRef])],ButtonRadioDirective)}();e.ButtonRadioDirective=c},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(216),s=function(){function SlideComponent(t){this.addClass=!0,this.carousel=t}return SlideComponent.prototype.ngOnInit=function(){this.carousel.addSlide(this)},SlideComponent.prototype.ngOnDestroy=function(){this.carousel.removeSlide(this)},r([o.Input(),i("design:type",Number)],SlideComponent.prototype,"index",void 0),r([o.Input(),i("design:type",Number)],SlideComponent.prototype,"direction",void 0),r([o.HostBinding("class.active"),o.Input(),i("design:type",Boolean)],SlideComponent.prototype,"active",void 0),r([o.HostBinding("class.item"),o.HostBinding("class.carousel-item"),i("design:type",Boolean)],SlideComponent.prototype,"addClass",void 0),SlideComponent=r([o.Component({selector:"slide",template:'\n    <div [class.active]="active" class="item text-center">\n      <ng-content></ng-content>\n    </div>\n  '}),i("design:paramtypes",[a.CarouselComponent])],SlideComponent)}();e.SlideComponent=s},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=function(){function CollapseDirective(t,e){this.collapsed=new o.EventEmitter((!1)),this.expanded=new o.EventEmitter((!1)),this.isExpanded=!0,this.isCollapsed=!1,this.isCollapse=!0,this.isCollapsing=!1,this._el=t,this._renderer=e}return Object.defineProperty(CollapseDirective.prototype,"collapse",{get:function(){return this.isExpanded},set:function(t){this.isExpanded=t,this.toggle()},enumerable:!0,configurable:!0}),CollapseDirective.prototype.ngOnInit=function(){},CollapseDirective.prototype.toggle=function(){this.isExpanded?this.hide():this.show()},CollapseDirective.prototype.hide=function(){this.isCollapse=!1,this.isCollapsing=!0,this.isExpanded=!1,this.isCollapsed=!0,this.isCollapse=!0,this.isCollapsing=!1,this.display="none",this.collapsed.emit(this)},CollapseDirective.prototype.show=function(){this.isCollapse=!1,this.isCollapsing=!0,this.isExpanded=!0,this.isCollapsed=!1,this.display="block",this.isCollapse=!0,this.isCollapsing=!1,this._renderer.setElementStyle(this._el.nativeElement,"overflow","visible"),this._renderer.setElementStyle(this._el.nativeElement,"height","auto"),this.expanded.emit(this)},r([o.Output(),i("design:type",o.EventEmitter)],CollapseDirective.prototype,"collapsed",void 0),r([o.Output(),i("design:type",o.EventEmitter)],CollapseDirective.prototype,"expanded",void 0),r([o.HostBinding("style.display"),i("design:type",String)],CollapseDirective.prototype,"display",void 0),r([o.HostBinding("class.in"),o.HostBinding("attr.aria-expanded"),i("design:type",Boolean)],CollapseDirective.prototype,"isExpanded",void 0),r([o.HostBinding("attr.aria-hidden"),i("design:type",Boolean)],CollapseDirective.prototype,"isCollapsed",void 0),r([o.HostBinding("class.collapse"),i("design:type",Boolean)],CollapseDirective.prototype,"isCollapse",void 0),r([o.HostBinding("class.collapsing"),i("design:type",Boolean)],CollapseDirective.prototype,"isCollapsing",void 0),r([o.Input(),i("design:type",Boolean),i("design:paramtypes",[Boolean])],CollapseDirective.prototype,"collapse",null),CollapseDirective=r([o.Directive({selector:"[collapse]"}),i("design:paramtypes",[o.ElementRef,o.Renderer])],CollapseDirective)}();e.CollapseDirective=a},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=function(){function NgTranscludeDirective(t){this._viewRef=t,this.viewRef=t}return Object.defineProperty(NgTranscludeDirective.prototype,"ngTransclude",{get:function(){return this._ngTransclude},set:function(t){this._ngTransclude=t,t&&this.viewRef.createEmbeddedView(t)},enumerable:!0,configurable:!0}),r([o.Input(),i("design:type",o.TemplateRef),i("design:paramtypes",[o.TemplateRef])],NgTranscludeDirective.prototype,"ngTransclude",null),NgTranscludeDirective=r([o.Directive({selector:"[ngTransclude]"}),i("design:paramtypes",[o.ViewContainerRef])],NgTranscludeDirective)}();e.NgTranscludeDirective=a},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},a=n(0),s=n(24),c=function(){function DatePickerComponent(t){this.selectionDone=new a.EventEmitter((void 0)),this.onChange=Function.prototype,this.onTouched=Function.prototype,this._now=new Date,this.cd=t,t.valueAccessor=this}return Object.defineProperty(DatePickerComponent.prototype,"activeDate",{get:function(){return this._activeDate||this._now},set:function(t){this._activeDate=t},enumerable:!0,configurable:!0}),DatePickerComponent.prototype.onUpdate=function(t){this.writeValue(t),this.cd.viewToModelUpdate(t)},DatePickerComponent.prototype.onSelectionDone=function(t){this.selectionDone.emit(t)},DatePickerComponent.prototype.writeValue=function(t){if(t!==this._activeDate)return t&&t instanceof Date?void(this.activeDate=t):void(this.activeDate=t?new Date(t):void 0)},DatePickerComponent.prototype.registerOnChange=function(t){this.onChange=t},DatePickerComponent.prototype.registerOnTouched=function(t){this.onTouched=t},r([a.Input(),i("design:type",String)],DatePickerComponent.prototype,"datepickerMode",void 0),r([a.Input(),i("design:type",Date)],DatePickerComponent.prototype,"initDate",void 0),r([a.Input(),i("design:type",Date)],DatePickerComponent.prototype,"minDate",void 0),r([a.Input(),i("design:type",Date)],DatePickerComponent.prototype,"maxDate",void 0),r([a.Input(),i("design:type",String)],DatePickerComponent.prototype,"minMode",void 0),r([a.Input(),i("design:type",String)],DatePickerComponent.prototype,"maxMode",void 0),r([a.Input(),i("design:type",Boolean)],DatePickerComponent.prototype,"showWeeks",void 0),r([a.Input(),i("design:type",String)],DatePickerComponent.prototype,"formatDay",void 0),r([a.Input(),i("design:type",String)],DatePickerComponent.prototype,"formatMonth",void 0),r([a.Input(),i("design:type",String)],DatePickerComponent.prototype,"formatYear",void 0),r([a.Input(),i("design:type",String)],DatePickerComponent.prototype,"formatDayHeader",void 0),r([a.Input(),i("design:type",String)],DatePickerComponent.prototype,"formatDayTitle",void 0),r([a.Input(),i("design:type",String)],DatePickerComponent.prototype,"formatMonthTitle",void 0),r([a.Input(),i("design:type",Number)],DatePickerComponent.prototype,"startingDay",void 0),r([a.Input(),i("design:type",Number)],DatePickerComponent.prototype,"yearRange",void 0),r([a.Input(),i("design:type",Boolean)],DatePickerComponent.prototype,"onlyCurrentMonth",void 0),r([a.Input(),i("design:type",Boolean)],DatePickerComponent.prototype,"shortcutPropagation",void 0),r([a.Input(),i("design:type",Array)],DatePickerComponent.prototype,"customClass",void 0),r([a.Input(),i("design:type",Object)],DatePickerComponent.prototype,"dateDisabled",void 0),r([a.Output(),i("design:type",a.EventEmitter)],DatePickerComponent.prototype,"selectionDone",void 0),r([a.Input(),i("design:type",Date)],DatePickerComponent.prototype,"activeDate",null),DatePickerComponent=r([a.Component({selector:"datepicker[ngModel]",template:'\n    <datepicker-inner [activeDate]="activeDate"\n                      (update)="onUpdate($event)"\n                      [datepickerMode]="datepickerMode"\n                      [initDate]="initDate"\n                      [minDate]="minDate"\n                      [maxDate]="maxDate"\n                      [minMode]="minMode"\n                      [maxMode]="maxMode"\n                      [showWeeks]="showWeeks"\n                      [formatDay]="formatDay"\n                      [formatMonth]="formatMonth"\n                      [formatYear]="formatYear"\n                      [formatDayHeader]="formatDayHeader"\n                      [formatDayTitle]="formatDayTitle"\n                      [formatMonthTitle]="formatMonthTitle"\n                      [startingDay]="startingDay"\n                      [yearRange]="yearRange"\n                      [customClass]="customClass"\n                      [dateDisabled]="dateDisabled"\n                      [onlyCurrentMonth]="onlyCurrentMonth"\n                      [shortcutPropagation]="shortcutPropagation"\n                      (selectionDone)="onSelectionDone($event)">\n      <daypicker tabindex="0"></daypicker>\n      <monthpicker tabindex="0"></monthpicker>\n      <yearpicker tabindex="0"></yearpicker>\n    </datepicker-inner>\n    '}),o(0,a.Self()),i("design:paramtypes",[s.NgModel])],DatePickerComponent)}();e.DatePickerComponent=c},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},a=n(0),s=n(141),c=function(){function DropdownMenuDirective(t,e){this.addClass=!0,this.dropdown=t,this.el=e}return DropdownMenuDirective.prototype.ngOnInit=function(){this.dropdown.dropDownMenu=this},r([a.HostBinding("class.dropdown-menu"),i("design:type",Boolean)],DropdownMenuDirective.prototype,"addClass",void 0),DropdownMenuDirective=r([a.Directive({selector:"[dropdownMenu]",exportAs:"bs-dropdown-menu"}),o(0,a.Host()),i("design:paramtypes",[s.DropdownDirective,a.ElementRef])],DropdownMenuDirective)}();e.DropdownMenuDirective=c},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},a=n(0),s=n(141),c=function(){function DropdownToggleDirective(t,e){this.isDisabled=!1,this.addToggleClass=!0,this.addClass=!0,this.dropdown=t,this.el=e}return DropdownToggleDirective.prototype.ngOnInit=function(){this.dropdown.dropDownToggle=this},Object.defineProperty(DropdownToggleDirective.prototype,"isOpen",{get:function(){return this.dropdown.isOpen},enumerable:!0,configurable:!0}),DropdownToggleDirective.prototype.toggleDropdown=function(t){return t.stopPropagation(),this.isDisabled||this.dropdown.toggle(),!1},r([a.HostBinding("class.disabled"),a.Input(),i("design:type",Boolean)],DropdownToggleDirective.prototype,"isDisabled",void 0),r([a.HostBinding("class.dropdown-toggle"),a.Input(),i("design:type",Boolean)],DropdownToggleDirective.prototype,"addToggleClass",void 0),r([a.HostBinding("attr.aria-haspopup"),i("design:type",Boolean)],DropdownToggleDirective.prototype,"addClass",void 0),r([a.HostBinding("attr.aria-expanded"),i("design:type",Boolean)],DropdownToggleDirective.prototype,"isOpen",null),r([a.HostListener("click",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",Boolean)],DropdownToggleDirective.prototype,"toggleDropdown",null),DropdownToggleDirective=r([a.Directive({selector:"[dropdownToggle]",exportAs:"bs-dropdown-toggle"}),o(0,a.Host()),i("design:paramtypes",[s.DropdownDirective,a.ElementRef])],DropdownToggleDirective)}();e.DropdownToggleDirective=c},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(52),s=n(705),c=n(220),l=n(221),u=n(238),p=300,d=150,f=function(){function ModalDirective(t,e,n,r){this.element=t,this.renderer=e,this.injector=n,this.componentsHelper=r,this.onShow=new o.EventEmitter,this.onShown=new o.EventEmitter,this.onHide=new o.EventEmitter,this.onHidden=new o.EventEmitter,this.isAnimated=!0,this._isShown=!1,this.isBodyOverflowing=!1,
+this.originalBodyPadding=0,this.scrollbarWidth=0}return Object.defineProperty(ModalDirective.prototype,"config",{get:function(){return this._config},set:function(t){this._config=this.getConfig(t)},enumerable:!0,configurable:!0}),Object.defineProperty(ModalDirective.prototype,"isShown",{get:function(){return this._isShown},enumerable:!0,configurable:!0}),Object.defineProperty(ModalDirective.prototype,"document",{get:function(){return this.componentsHelper.getDocument()},enumerable:!0,configurable:!0}),ModalDirective.prototype.onClick=function(t){this.config.ignoreBackdropClick||"static"===this.config.backdrop||t.target!==this.element.nativeElement||this.hide(t)},ModalDirective.prototype.onEsc=function(){this.config.keyboard&&this.hide()},ModalDirective.prototype.ngOnDestroy=function(){this.config=void 0,this._isShown=void 0,this.isBodyOverflowing=void 0,this.originalBodyPadding=void 0,this.scrollbarWidth=void 0},ModalDirective.prototype.ngAfterViewInit=function(){this._config=this._config||this.getConfig()},ModalDirective.prototype.toggle=function(){return this._isShown?this.hide():this.show()},ModalDirective.prototype.show=function(){var t=this;this.onShow.emit(this),this._isShown||(this._isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.document&&this.document.body&&this.renderer.setElementClass(this.document.body,l.ClassName.OPEN,!0),this.showBackdrop(function(){t.showElement()}))},ModalDirective.prototype.hide=function(t){var e=this;t&&t.preventDefault(),this.onHide.emit(this),this._isShown&&(this._isShown=!1,this.renderer.setElementClass(this.element.nativeElement,l.ClassName.IN,!1),this.isAnimated?setTimeout(function(){return e.hideModal()},p):this.hideModal())},ModalDirective.prototype.getConfig=function(t){return Object.assign({},l.modalConfigDefaults,t)},ModalDirective.prototype.showElement=function(){var t=this;this.element.nativeElement.parentNode&&this.element.nativeElement.parentNode.nodeType===Node.ELEMENT_NODE||this.document&&this.document.body&&this.document.body.appendChild(this.element.nativeElement),this.renderer.setElementAttribute(this.element.nativeElement,"aria-hidden","false"),this.renderer.setElementStyle(this.element.nativeElement,"display","block"),this.renderer.setElementProperty(this.element.nativeElement,"scrollTop",0),this.isAnimated&&s.Utils.reflow(this.element.nativeElement),this.renderer.setElementClass(this.element.nativeElement,l.ClassName.IN,!0),this.onShown.emit(this);var e=function(){t._config.focus&&t.element.nativeElement.focus(),t.onShown.emit(t)};this.isAnimated?setTimeout(e,p):e()},ModalDirective.prototype.hideModal=function(){var t=this;this.renderer.setElementAttribute(this.element.nativeElement,"aria-hidden","true"),this.renderer.setElementStyle(this.element.nativeElement,"display","none"),this.showBackdrop(function(){t.document&&t.document.body&&t.renderer.setElementClass(t.document.body,l.ClassName.OPEN,!1),t.resetAdjustments(),t.resetScrollbar(),t.onHidden.emit(t)})},ModalDirective.prototype.showBackdrop=function(t){var e=this;if(this._isShown&&this.config.backdrop){if(this.backdrop=this.componentsHelper.appendNextToRoot(c.ModalBackdropComponent,c.ModalBackdropOptions,new c.ModalBackdropOptions({animate:!1}),this.injector),this.isAnimated&&(this.backdrop.instance.isAnimated=this.isAnimated,s.Utils.reflow(this.backdrop.instance.element.nativeElement)),this.backdrop.instance.isShown=!0,!t)return;if(!this.isAnimated)return void t();setTimeout(t,d)}else if(!this._isShown&&this.backdrop){this.backdrop.instance.isShown=!1;var n=function(){e.removeBackdrop(),t&&t()};this.backdrop.instance.isAnimated?setTimeout(n,d):n()}else t&&t()},ModalDirective.prototype.removeBackdrop=function(){this.backdrop&&(this.backdrop.destroy(),this.backdrop=void 0)},ModalDirective.prototype.resetAdjustments=function(){this.renderer.setElementStyle(this.element.nativeElement,"paddingLeft",""),this.renderer.setElementStyle(this.element.nativeElement,"paddingRight","")},ModalDirective.prototype.checkScrollbar=function(){this.isBodyOverflowing=this.document.body.clientWidth<u.window.innerWidth,this.scrollbarWidth=this.getScrollbarWidth()},ModalDirective.prototype.setScrollbar=function(){if(this.document){var t=this.document.querySelector(l.Selector.FIXED_CONTENT);if(t){var e=parseInt(s.Utils.getStyles(t).paddingRight||0,10);this.originalBodyPadding=parseInt(this.document.body.style.paddingRight||0,10),this.isBodyOverflowing&&(this.document.body.style.paddingRight=e+this.scrollbarWidth+"px")}}},ModalDirective.prototype.resetScrollbar=function(){this.document.body.style.paddingRight=this.originalBodyPadding},ModalDirective.prototype.getScrollbarWidth=function(){var t=this.renderer.createElement(this.document.body,"div",void 0);t.className=l.ClassName.SCROLLBAR_MEASURER;var e=t.offsetWidth-t.clientWidth;return this.document.body.removeChild(t),e},r([o.Input(),i("design:type",Object),i("design:paramtypes",[Object])],ModalDirective.prototype,"config",null),r([o.Output(),i("design:type",o.EventEmitter)],ModalDirective.prototype,"onShow",void 0),r([o.Output(),i("design:type",o.EventEmitter)],ModalDirective.prototype,"onShown",void 0),r([o.Output(),i("design:type",o.EventEmitter)],ModalDirective.prototype,"onHide",void 0),r([o.Output(),i("design:type",o.EventEmitter)],ModalDirective.prototype,"onHidden",void 0),r([o.HostListener("click",["$event"]),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",void 0)],ModalDirective.prototype,"onClick",null),r([o.HostListener("keydown.esc"),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],ModalDirective.prototype,"onEsc",null),ModalDirective=r([o.Directive({selector:"[bsModal]",exportAs:"bs-modal"}),i("design:paramtypes",[o.ElementRef,o.Renderer,o.Injector,a.ComponentsHelper])],ModalDirective)}();e.ModalDirective=f},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},s=n(0),c=n(24),l=n(223),u={itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0},p='\n    <ul class="pager">\n      <li [class.disabled]="noPrevious()" [class.previous]="align" [ngClass]="{\'pull-right\': align}">\n        <a href (click)="selectPage(page - 1, $event)">{{getText(\'previous\')}}</a>\n      </li>\n      <li [class.disabled]="noNext()" [class.next]="align" [ngClass]="{\'pull-right\': align}">\n        <a href (click)="selectPage(page + 1, $event)">{{getText(\'next\')}}</a>\n      </li>\n  </ul>\n',d=function(t){function PagerComponent(e,n,r){t.call(this,e,n,r),this.config=u}return r(PagerComponent,t),PagerComponent=i([s.Component({selector:"pager[ngModel]",template:p}),a(0,s.Self()),o("design:paramtypes",[c.NgModel,s.Renderer,s.ElementRef])],PagerComponent)}(l.PaginationComponent);e.PagerComponent=d},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},a=n(0),s=n(226),c=function(){function BarComponent(t){this.percent=0,this.progress=t}return Object.defineProperty(BarComponent.prototype,"value",{get:function(){return this._value},set:function(t){(t||0===t)&&(this._value=t,this.recalculatePercentage())},enumerable:!0,configurable:!0}),BarComponent.prototype.ngOnInit=function(){this.progress.addBar(this)},BarComponent.prototype.ngOnDestroy=function(){this.progress.removeBar(this)},BarComponent.prototype.recalculatePercentage=function(){this.percent=+(100*this.value/this.progress.max).toFixed(2);var t=this.progress.bars.reduce(function(t,e){return t+e.percent},0);t>100&&(this.percent-=t-100)},r([a.Input(),i("design:type",String)],BarComponent.prototype,"type",void 0),r([a.Input(),i("design:type",Number)],BarComponent.prototype,"value",null),BarComponent=r([a.Component({selector:"bar",template:'\n  <div class="progress-bar"\n    style="min-width: 0;"\n    role="progressbar"\n    [ngClass]="type && \'progress-bar-\' + type"\n    [ngStyle]="{width: (percent < 100 ? percent : 100) + \'%\', transition: transition}"\n    aria-valuemin="0"\n    [attr.aria-valuenow]="value"\n    [attr.aria-valuetext]="percent.toFixed(0) + \'%\'"\n    [attr.aria-valuemax]="max"><ng-content></ng-content></div>\n'}),o(0,a.Host()),i("design:paramtypes",[s.ProgressDirective])],BarComponent)}();e.BarComponent=c},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=function(){function ProgressbarComponent(){}return r([o.Input(),i("design:type",Boolean)],ProgressbarComponent.prototype,"animate",void 0),r([o.Input(),i("design:type",Number)],ProgressbarComponent.prototype,"max",void 0),r([o.Input(),i("design:type",String)],ProgressbarComponent.prototype,"type",void 0),r([o.Input(),i("design:type",Number)],ProgressbarComponent.prototype,"value",void 0),ProgressbarComponent=r([o.Component({selector:"progressbar",template:'\n    <div progress [animate]="animate" [max]="max">\n      <bar [type]="type" [value]="value">\n          <ng-content></ng-content>\n      </bar>\n    </div>\n  '}),i("design:paramtypes",[])],ProgressbarComponent)}();e.ProgressbarComponent=a},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},a=n(0),s=n(24),c=function(){function RatingComponent(t){this.onHover=new a.EventEmitter((!1)),this.onLeave=new a.EventEmitter((!1)),this.onChange=Function.prototype,this.onTouched=Function.prototype,this.cd=t,t.valueAccessor=this}return RatingComponent.prototype.onKeydown=function(t){if([37,38,39,40].indexOf(t.which)!==-1){t.preventDefault(),t.stopPropagation();var e=38===t.which||39===t.which?1:-1;this.rate(this.value+e)}},RatingComponent.prototype.ngOnInit=function(){this.max="undefined"!=typeof this.max?this.max:5,this.readonly=this.readonly===!0,this.stateOn="undefined"!=typeof this.stateOn?this.stateOn:"glyphicon-star",this.stateOff="undefined"!=typeof this.stateOff?this.stateOff:"glyphicon-star-empty",this.titles="undefined"!=typeof this.titles&&this.titles.length>0?this.titles:["one","two","three","four","five"],this.range=this.buildTemplateObjects(this.ratingStates,this.max)},RatingComponent.prototype.writeValue=function(t){return t%1!==t?(this.value=Math.round(t),void(this.preValue=t)):(this.preValue=t,void(this.value=t))},RatingComponent.prototype.enter=function(t){this.readonly||(this.value=t,this.onHover.emit(t))},RatingComponent.prototype.reset=function(){this.value=this.preValue,this.onLeave.emit(this.value)},RatingComponent.prototype.registerOnChange=function(t){this.onChange=t},RatingComponent.prototype.registerOnTouched=function(t){this.onTouched=t},RatingComponent.prototype.buildTemplateObjects=function(t,e){t=t||[];for(var n=t.length||e,r=[],i=0;i<n;i++)r.push(Object.assign({index:i,stateOn:this.stateOn,stateOff:this.stateOff,title:this.titles[i]||i+1},t[i]||{}));return r},RatingComponent.prototype.rate=function(t){!this.readonly&&t>=0&&t<=this.range.length&&(this.writeValue(t),this.cd.viewToModelUpdate(t))},r([a.Input(),i("design:type",Number)],RatingComponent.prototype,"max",void 0),r([a.Input(),i("design:type",String)],RatingComponent.prototype,"stateOn",void 0),r([a.Input(),i("design:type",String)],RatingComponent.prototype,"stateOff",void 0),r([a.Input(),i("design:type",Boolean)],RatingComponent.prototype,"readonly",void 0),r([a.Input(),i("design:type",Array)],RatingComponent.prototype,"titles",void 0),r([a.Input(),i("design:type",Array)],RatingComponent.prototype,"ratingStates",void 0),r([a.Output(),i("design:type",a.EventEmitter)],RatingComponent.prototype,"onHover",void 0),r([a.Output(),i("design:type",a.EventEmitter)],RatingComponent.prototype,"onLeave",void 0),r([a.HostListener("keydown",["$event"]),i("design:type",Function),i("design:paramtypes",[KeyboardEvent]),i("design:returntype",void 0)],RatingComponent.prototype,"onKeydown",null),RatingComponent=r([a.Component({selector:"rating[ngModel]",template:'\n    <span (mouseleave)="reset()" (keydown)="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" [attr.aria-valuemax]="range.length" [attr.aria-valuenow]="value">\n      <template ngFor let-r [ngForOf]="range" let-index="index">\n        <span class="sr-only">({{ index < value ? \'*\' : \' \' }})</span>\n        <i (mouseenter)="enter(index + 1)" (click)="rate(index + 1)" class="glyphicon" [ngClass]="index < value ? r.stateOn : r.stateOff" [title]="r.title" ></i>\n      </template>\n    </span>\n  '}),o(0,a.Self()),i("design:paramtypes",[s.NgModel])],RatingComponent)}();e.RatingComponent=c},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(229),s=function(){function TabHeadingDirective(t,e){e.headingRef=t}return TabHeadingDirective=r([o.Directive({selector:"[tabHeading]"}),i("design:paramtypes",[o.TemplateRef,a.TabDirective])],TabHeadingDirective)}();e.TabHeadingDirective=s},function(t,e,n){"use strict";function isDefined(t){return"undefined"!=typeof t}function def(t,e,n){return e(t)?t:n}function addMinutes(t,e){var n=new Date(t.getTime()+6e4*e),r=new Date(t);return r.setHours(n.getHours(),n.getMinutes()),r}var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,r){e(n,r,t)}},a=n(0),s=n(24);e.timepickerConfig={hourStep:1,minuteStep:1,showMeridian:!0,meridians:void 0,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0,min:void 0,max:void 0};var c=function(){function TimepickerComponent(t){this.meridians=["AM","PM"],this.onChange=Function.prototype,this.onTouched=Function.prototype,this._selected=new Date,this.cd=t,t.valueAccessor=this}return Object.defineProperty(TimepickerComponent.prototype,"showMeridian",{get:function(){return this._showMeridian},set:function(t){this._showMeridian=t,this.updateTemplate()},enumerable:!0,configurable:!0}),Object.defineProperty(TimepickerComponent.prototype,"selected",{get:function(){return this._selected},set:function(t){t&&(this._selected=t,this.updateTemplate(),this.cd.viewToModelUpdate(this.selected))},enumerable:!0,configurable:!0}),TimepickerComponent.prototype.ngOnInit=function(){this.meridians=def(this.meridians,isDefined,e.timepickerConfig.meridians)||["AM","PM"],this.mousewheel=def(this.mousewheel,isDefined,e.timepickerConfig.mousewheel),this.mousewheel,this.arrowkeys=def(this.arrowkeys,isDefined,e.timepickerConfig.arrowkeys),this.arrowkeys,this.readonlyInput=def(this.readonlyInput,isDefined,e.timepickerConfig.readonlyInput),this.hourStep=def(this.hourStep,isDefined,e.timepickerConfig.hourStep),this.minuteStep=def(this.minuteStep,isDefined,e.timepickerConfig.minuteStep),this.min=def(this.min,isDefined,e.timepickerConfig.min),this.max=def(this.max,isDefined,e.timepickerConfig.max),this.showMeridian=def(this.showMeridian,isDefined,e.timepickerConfig.showMeridian),this.showSpinners=def(this.showSpinners,isDefined,e.timepickerConfig.showSpinners)},TimepickerComponent.prototype.writeValue=function(t){if(t!==this.selected)return t&&t instanceof Date?void(this.selected=t):void(this.selected=t?new Date(t):void 0)},TimepickerComponent.prototype.registerOnChange=function(t){this.onChange=t},TimepickerComponent.prototype.registerOnTouched=function(t){this.onTouched=t},TimepickerComponent.prototype.updateHours=function(){if(!this.readonlyInput){var t=this.getHoursFromTemplate(),e=this.getMinutesFromTemplate();this.invalidHours=!isDefined(t),this.invalidMinutes=!isDefined(e),this.invalidHours||this.invalidMinutes||(this.selected.setHours(t),this.invalidHours=this.selected<this.min||this.selected>this.max,this.invalidHours||this.refresh())}},TimepickerComponent.prototype.hoursOnBlur=function(){this.readonlyInput||!this.invalidHours&&parseInt(this.hours,10)<10&&(this.hours=this.pad(this.hours))},TimepickerComponent.prototype.updateMinutes=function(){if(!this.readonlyInput){var t=this.getMinutesFromTemplate(),e=this.getHoursFromTemplate();this.invalidMinutes=!isDefined(t),this.invalidHours=!isDefined(e),this.invalidMinutes||this.invalidHours||(this.selected.setMinutes(t),this.invalidMinutes=this.selected<this.min||this.selected>this.max,this.invalidMinutes||this.refresh())}},TimepickerComponent.prototype.minutesOnBlur=function(){this.readonlyInput||!this.invalidMinutes&&parseInt(this.minutes,10)<10&&(this.minutes=this.pad(this.minutes))},TimepickerComponent.prototype.incrementHours=function(){this.noIncrementHours()||this.addMinutesToSelected(60*this.hourStep)},TimepickerComponent.prototype.decrementHours=function(){this.noDecrementHours()||this.addMinutesToSelected(60*-this.hourStep)},TimepickerComponent.prototype.incrementMinutes=function(){this.noIncrementMinutes()||this.addMinutesToSelected(this.minuteStep)},TimepickerComponent.prototype.decrementMinutes=function(){this.noDecrementMinutes()||this.addMinutesToSelected(-this.minuteStep)},TimepickerComponent.prototype.toggleMeridian=function(){if(!this.noToggleMeridian()){var t=this.selected.getHours()<12?1:-1;this.addMinutesToSelected(720*t)}},TimepickerComponent.prototype.refresh=function(){this.updateTemplate(),this.cd.viewToModelUpdate(this.selected)},TimepickerComponent.prototype.updateTemplate=function(){var t=this.selected.getHours(),e=this.selected.getMinutes();this.showMeridian&&(t=0===t||12===t?12:t%12),this.hours=this.pad(t),this.minutes=this.pad(e),this.meridian=this.selected.getHours()<12?this.meridians[0]:this.meridians[1]},TimepickerComponent.prototype.getHoursFromTemplate=function(){var t=parseInt(this.hours,10),e=this.showMeridian?t>0&&t<13:t>=0&&t<24;if(e)return this.showMeridian&&(12===t&&(t=0),this.meridian===this.meridians[1]&&(t+=12)),t},TimepickerComponent.prototype.getMinutesFromTemplate=function(){var t=parseInt(this.minutes,10);return t>=0&&t<60?t:void 0},TimepickerComponent.prototype.pad=function(t){return isDefined(t)&&t.toString().length<2?"0"+t:t.toString()},TimepickerComponent.prototype.noIncrementHours=function(){var t=addMinutes(this.selected,60*this.hourStep);return t>this.max||t<this.selected&&t<this.min},TimepickerComponent.prototype.noDecrementHours=function(){var t=addMinutes(this.selected,60*-this.hourStep);return t<this.min||t>this.selected&&t>this.max},TimepickerComponent.prototype.noIncrementMinutes=function(){var t=addMinutes(this.selected,this.minuteStep);return t>this.max||t<this.selected&&t<this.min},TimepickerComponent.prototype.noDecrementMinutes=function(){var t=addMinutes(this.selected,-this.minuteStep);return t<this.min||t>this.selected&&t>this.max},TimepickerComponent.prototype.addMinutesToSelected=function(t){this.selected=addMinutes(this.selected,t),this.refresh()},TimepickerComponent.prototype.noToggleMeridian=function(){return!!this.readonlyInput||(this.selected.getHours()<13?addMinutes(this.selected,720)>this.max:addMinutes(this.selected,-720)<this.min)},r([a.Input(),i("design:type",Number)],TimepickerComponent.prototype,"hourStep",void 0),r([a.Input(),i("design:type",Number)],TimepickerComponent.prototype,"minuteStep",void 0),r([a.Input(),i("design:type",Boolean)],TimepickerComponent.prototype,"readonlyInput",void 0),r([a.Input(),i("design:type",Boolean)],TimepickerComponent.prototype,"mousewheel",void 0),r([a.Input(),i("design:type",Boolean)],TimepickerComponent.prototype,"arrowkeys",void 0),r([a.Input(),i("design:type",Boolean)],TimepickerComponent.prototype,"showSpinners",void 0),r([a.Input(),i("design:type",Date)],TimepickerComponent.prototype,"min",void 0),r([a.Input(),i("design:type",Date)],TimepickerComponent.prototype,"max",void 0),r([a.Input(),i("design:type",Array)],TimepickerComponent.prototype,"meridians",void 0),r([a.Input(),i("design:type",Boolean)],TimepickerComponent.prototype,"showMeridian",null),TimepickerComponent=r([a.Component({selector:"timepicker[ngModel]",template:'\n    <table>\n      <tbody>\n        <tr class="text-center" [ngClass]="{hidden: !showSpinners || readonlyInput}">\n          <td><a (click)="incrementHours()" [ngClass]="{disabled: noIncrementHours()}" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n          <td>&nbsp;</td>\n          <td><a (click)="incrementMinutes()" [ngClass]="{disabled: noIncrementMinutes()}" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n          <td [ngClass]="{hidden: !showMeridian}" *ngIf="showMeridian"></td>\n        </tr>\n        <tr>\n          <td class="form-group" [ngClass]="{\'has-error\': invalidHours}">\n            <input style="width:50px;" type="text" [(ngModel)]="hours" (change)="updateHours()" class="form-control text-center" [readonly]="readonlyInput" (blur)="hoursOnBlur($event)" maxlength="2">\n          </td>\n          <td>:</td>\n          <td class="form-group" [ngClass]="{\'has-error\': invalidMinutes}">\n            <input style="width:50px;" type="text" [(ngModel)]="minutes" (change)="updateMinutes()" class="form-control text-center" [readonly]="readonlyInput" (blur)="minutesOnBlur($event)" maxlength="2">\n          </td>\n          <td [ngClass]="{hidden: !showMeridian}" *ngIf="showMeridian"><button type="button" [ngClass]="{disabled: noToggleMeridian() || readonlyInput}" class="btn btn-default text-center" (click)="toggleMeridian()">{{meridian}}</button></td>\n        </tr>\n        <tr class="text-center" [ngClass]="{hidden: !showSpinners || readonlyInput}">\n          <td><a (click)="decrementHours()" [ngClass]="{disabled: noDecrementHours()}" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n          <td>&nbsp;</td>\n          <td><a (click)="decrementMinutes()" [ngClass]="{disabled: noDecrementMinutes()}" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n          <td [ngClass]="{hidden: !showMeridian}" *ngIf="showMeridian"></td>\n        </tr>\n      </tbody>\n    </table>\n  '}),o(0,a.Self()),i("design:paramtypes",[s.NgModel])],TimepickerComponent)}();e.TimepickerComponent=c},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=function(){function TooltipOptions(t){Object.assign(this,t)}return TooltipOptions=r([o.Injectable(),i("design:paramtypes",[Object])],TooltipOptions)}();e.TooltipOptions=a},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(233),s=n(411),c=n(52),l=function(){function TooltipDirective(t,e){this.placement="top",this.enable=!0,this.animation=!0,this.visible=!1,this.viewContainerRef=t,this.componentsHelper=e}return TooltipDirective.prototype.show=function(){if(!this.visible&&this.enable){this.visible=!0;var t=new s.TooltipOptions({content:this.content,htmlContent:this.htmlContent,placement:this.placement,animation:this.animation,hostEl:this.viewContainerRef.element,popupClass:this.popupClass,context:this.tooltipContext}),e=o.ReflectiveInjector.resolve([{provide:s.TooltipOptions,useValue:t}]);this.tooltip=this.componentsHelper.appendNextToLocation(a.TooltipContainerComponent,this.viewContainerRef,e)}},TooltipDirective.prototype.hide=function(){this.visible&&(this.visible=!1,this.tooltip.destroy())},r([o.Input("tooltip"),i("design:type",String)],TooltipDirective.prototype,"content",void 0),r([o.Input("tooltipHtml"),i("design:type",Object)],TooltipDirective.prototype,"htmlContent",void 0),r([o.Input("tooltipPlacement"),i("design:type",String)],TooltipDirective.prototype,"placement",void 0),r([o.Input("tooltipIsOpen"),i("design:type",Boolean)],TooltipDirective.prototype,"isOpen",void 0),r([o.Input("tooltipEnable"),i("design:type",Boolean)],TooltipDirective.prototype,"enable",void 0),r([o.Input("tooltipAnimation"),i("design:type",Boolean)],TooltipDirective.prototype,"animation",void 0),r([o.Input("tooltipAppendToBody"),i("design:type",Boolean)],TooltipDirective.prototype,"appendToBody",void 0),r([o.Input("tooltipClass"),i("design:type",String)],TooltipDirective.prototype,"popupClass",void 0),r([o.Input("tooltipContext"),i("design:type",Object)],TooltipDirective.prototype,"tooltipContext",void 0),r([o.HostListener("focusin",["$event","$target"]),o.HostListener("mouseenter",["$event","$target"]),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],TooltipDirective.prototype,"show",null),r([o.HostListener("focusout",["$event","$target"]),o.HostListener("mouseleave",["$event","$target"]),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],TooltipDirective.prototype,"hide",null),TooltipDirective=r([o.Directive({selector:"[tooltip], [tooltipHtml]"}),i("design:paramtypes",[o.ViewContainerRef,c.ComponentsHelper])],TooltipDirective)}();e.TooltipDirective=l},function(t,e,n){"use strict";var r=n(704),i=function(){function TypeaheadUtils(){}return TypeaheadUtils.latinize=function(t){return t?t.replace(/[^A-Za-z0-9\[\] ]/g,function(t){return TypeaheadUtils.latinMap[t]||t}):""},TypeaheadUtils.escapeRegexp=function(t){return t.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")},TypeaheadUtils.tokenize=function(t,e,n){void 0===e&&(e=" "),void 0===n&&(n="");for(var r,i="(?:["+n+"])([^"+n+"]+)(?:["+n+"])|([^"+e+"]+)",o=t.split(new RegExp(i,"g")),a=[],s=o.length,c=new RegExp("["+n+"]+","g"),l=0;l<s;l+=1)r=o[l],r&&r.length&&r!==e&&a.push(r.replace(c,""));return a},TypeaheadUtils.getValueFromObject=function(t,e){if(!e||"object"!=typeof t)return t.toString();if(e.endsWith("()")){var n=e.slice(0,e.length-2);return t[n]().toString()}for(var r=e.replace(/\[(\w+)\]/g,".$1").replace(/^\./,""),i=r.split("."),o=0,a=i;o<a.length;o++){var s=a[o];s in t&&(t=t[s])}return t.toString()},TypeaheadUtils.latinMap=r.latinMap,TypeaheadUtils}();e.TypeaheadUtils=i},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(24),s=n(235),c=n(236),l=n(413),u=n(9);n(734),n(735),n(416),n(736),n(737),n(738);var p=n(52),d=function(){function TypeaheadDirective(t,e,n,r,i){this.typeaheadLoading=new o.EventEmitter((!1)),this.typeaheadNoResults=new o.EventEmitter((!1)),this.typeaheadOnSelect=new o.EventEmitter((!1)),this.typeaheadMinLength=void 0,this.typeaheadAsync=void 0,this.typeaheadLatinize=!0,this.typeaheadSingleWords=!0,this.typeaheadWordDelimiters=" ",this.typeaheadPhraseDelimiters="'\"",this.isTypeaheadOptionsListActive=!1,this.keyUpEventEmitter=new o.EventEmitter,this.placement="bottom-left",this.element=n,this.ngControl=t,this.viewContainerRef=e,this.renderer=r,this.componentsHelper=i}return TypeaheadDirective.prototype.onChange=function(t){if(this.container){if(27===t.keyCode)return void this.hide();if(38===t.keyCode)return void this.container.prevActiveMatch();if(40===t.keyCode)return void this.container.nextActiveMatch();if(13===t.keyCode)return void this.container.selectActiveMatch()}t.target.value.trim().length>=this.typeaheadMinLength?(this.typeaheadLoading.emit(!0),this.keyUpEventEmitter.emit(t.target.value)):(this.typeaheadLoading.emit(!1),this.typeaheadNoResults.emit(!1),this.hide())},TypeaheadDirective.prototype.onFocus=function(){0===this.typeaheadMinLength&&(this.typeaheadLoading.emit(!0),this.keyUpEventEmitter.emit(""))},TypeaheadDirective.prototype.onBlur=function(){this.container&&!this.container.isFocused&&this.hide()},TypeaheadDirective.prototype.onKeydown=function(t){if(this.container)return 13===t.keyCode?void t.preventDefault():9===t.keyCode?void this.hide():void 0},TypeaheadDirective.prototype.ngOnInit=function(){this.typeaheadOptionsLimit=this.typeaheadOptionsLimit||20,this.typeaheadMinLength=void 0===this.typeaheadMinLength?1:this.typeaheadMinLength,this.typeaheadWaitMs=this.typeaheadWaitMs||0,void 0!==this.typeaheadAsync||this.typeahead instanceof u.Observable||(this.typeaheadAsync=!1),this.typeahead instanceof u.Observable&&(this.typeaheadAsync=!0),this.typeaheadAsync?this.asyncActions():this.syncActions()},TypeaheadDirective.prototype.changeModel=function(t){var e=l.TypeaheadUtils.getValueFromObject(t,this.typeaheadOptionField);this.ngControl.viewToModelUpdate(e),this.ngControl.control.setValue(e),
+this.hide()},Object.defineProperty(TypeaheadDirective.prototype,"matches",{get:function(){return this._matches},enumerable:!0,configurable:!0}),TypeaheadDirective.prototype.show=function(t){var e=new c.TypeaheadOptions({typeaheadRef:this,placement:this.placement,animation:!1}),n=o.ReflectiveInjector.resolve([{provide:c.TypeaheadOptions,useValue:e}]);this.popup=this.componentsHelper.appendNextToLocation(s.TypeaheadContainerComponent,this.viewContainerRef,n),this.popup.instance.position(this.viewContainerRef.element),this.container=this.popup.instance,this.container.parent=this;var r=(this.typeaheadLatinize?l.TypeaheadUtils.latinize(this.ngControl.control.value):this.ngControl.control.value).toString().toLowerCase();this.container.query=this.typeaheadSingleWords?l.TypeaheadUtils.tokenize(r,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):r,this.container.matches=t,this.container.field=this.typeaheadOptionField,this.element.nativeElement.focus()},TypeaheadDirective.prototype.hide=function(){this.container&&(this.popup.destroy(),this.container=void 0)},TypeaheadDirective.prototype.asyncActions=function(){var t=this;this.keyUpEventEmitter.debounceTime(this.typeaheadWaitMs).mergeMap(function(){return t.typeahead}).subscribe(function(e){t._matches=e.slice(0,t.typeaheadOptionsLimit),t.finalizeAsyncCall()},function(t){console.error(t)})},TypeaheadDirective.prototype.syncActions=function(){var t=this;this.keyUpEventEmitter.debounceTime(this.typeaheadWaitMs).mergeMap(function(e){var n=t.normalizeQuery(e);return u.Observable.from(t.typeahead).filter(function(e){return e&&t.testMatch(t.prepareOption(e).toLowerCase(),n)}).toArray()}).subscribe(function(e){t._matches=e.slice(0,t.typeaheadOptionsLimit),t.finalizeAsyncCall()},function(t){console.error(t)})},TypeaheadDirective.prototype.prepareOption=function(t){var e=l.TypeaheadUtils.getValueFromObject(t,this.typeaheadOptionField);return this.typeaheadLatinize?l.TypeaheadUtils.latinize(e):e},TypeaheadDirective.prototype.normalizeQuery=function(t){var e=(this.typeaheadLatinize?l.TypeaheadUtils.latinize(t):t).toString().toLowerCase();return e=this.typeaheadSingleWords?l.TypeaheadUtils.tokenize(e,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):e},TypeaheadDirective.prototype.testMatch=function(t,e){var n;if("object"==typeof e){n=e.length;for(var r=0;r<n;r+=1)if(e[r].length>0&&t.indexOf(e[r])<0)return!1;return!0}return t.indexOf(e)>=0},TypeaheadDirective.prototype.finalizeAsyncCall=function(){if(this.typeaheadLoading.emit(!1),this.typeaheadNoResults.emit(this.matches.length<=0),this._matches.length<=0)return void this.hide();if(this.container&&this._matches.length>0){var t=(this.typeaheadLatinize?l.TypeaheadUtils.latinize(this.ngControl.control.value):this.ngControl.control.value).toString().toLowerCase();this.container.query=this.typeaheadSingleWords?l.TypeaheadUtils.tokenize(t,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):t,this.container.matches=this._matches}!this.container&&this._matches.length>0&&this.show(this._matches)},r([o.Output(),i("design:type",o.EventEmitter)],TypeaheadDirective.prototype,"typeaheadLoading",void 0),r([o.Output(),i("design:type",o.EventEmitter)],TypeaheadDirective.prototype,"typeaheadNoResults",void 0),r([o.Output(),i("design:type",o.EventEmitter)],TypeaheadDirective.prototype,"typeaheadOnSelect",void 0),r([o.Input(),i("design:type",Object)],TypeaheadDirective.prototype,"typeahead",void 0),r([o.Input(),i("design:type",Number)],TypeaheadDirective.prototype,"typeaheadMinLength",void 0),r([o.Input(),i("design:type",Number)],TypeaheadDirective.prototype,"typeaheadWaitMs",void 0),r([o.Input(),i("design:type",Number)],TypeaheadDirective.prototype,"typeaheadOptionsLimit",void 0),r([o.Input(),i("design:type",String)],TypeaheadDirective.prototype,"typeaheadOptionField",void 0),r([o.Input(),i("design:type",Boolean)],TypeaheadDirective.prototype,"typeaheadAsync",void 0),r([o.Input(),i("design:type",Boolean)],TypeaheadDirective.prototype,"typeaheadLatinize",void 0),r([o.Input(),i("design:type",Boolean)],TypeaheadDirective.prototype,"typeaheadSingleWords",void 0),r([o.Input(),i("design:type",String)],TypeaheadDirective.prototype,"typeaheadWordDelimiters",void 0),r([o.Input(),i("design:type",String)],TypeaheadDirective.prototype,"typeaheadPhraseDelimiters",void 0),r([o.Input(),i("design:type",o.TemplateRef)],TypeaheadDirective.prototype,"typeaheadItemTemplate",void 0),r([o.HostListener("keyup",["$event"]),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",void 0)],TypeaheadDirective.prototype,"onChange",null),r([o.HostListener("focus",["$event.target"]),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],TypeaheadDirective.prototype,"onFocus",null),r([o.HostListener("blur"),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],TypeaheadDirective.prototype,"onBlur",null),r([o.HostListener("keydown",["$event"]),i("design:type",Function),i("design:paramtypes",[KeyboardEvent]),i("design:returntype",void 0)],TypeaheadDirective.prototype,"onKeydown",null),TypeaheadDirective=r([o.Directive({selector:"[typeahead][ngModel],[typeahead][formControlName]"}),i("design:paramtypes",[a.NgControl,o.ViewContainerRef,o.ElementRef,o.Renderer,p.ComponentsHelper])],TypeaheadDirective)}();e.TypeaheadDirective=d},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(77),o=n(423),a=function(t){function BehaviorSubject(e){t.call(this),this._value=e}return r(BehaviorSubject,t),Object.defineProperty(BehaviorSubject.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),BehaviorSubject.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return n&&!n.closed&&e.next(this._value),n},BehaviorSubject.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new o.ObjectUnsubscribedError;return this._value},BehaviorSubject.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},BehaviorSubject}(i.Subject);e.BehaviorSubject=a},function(t,e,n){"use strict";var r=n(9),i=n(744);r.Observable.prototype.filter=i.filter},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(9),o=n(420),a=n(418),s=n(757),c=function(t){function ArrayObservable(e,n){t.call(this),this.array=e,this.scheduler=n,n||1!==e.length||(this._isScalar=!0,this.value=e[0])}return r(ArrayObservable,t),ArrayObservable.create=function(t,e){return new ArrayObservable(t,e)},ArrayObservable.of=function(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];var n=t[t.length-1];s.isScheduler(n)?t.pop():n=null;var r=t.length;return r>1?new ArrayObservable(t,n):1===r?new o.ScalarObservable(t[0],n):new a.EmptyObservable(n)},ArrayObservable.dispatch=function(t){var e=t.array,n=t.index,r=t.count,i=t.subscriber;return n>=r?void i.complete():(i.next(e[n]),void(i.closed||(t.index=n+1,this.schedule(t))))},ArrayObservable.prototype._subscribe=function(t){var e=0,n=this.array,r=n.length,i=this.scheduler;if(i)return i.schedule(ArrayObservable.dispatch,0,{array:n,index:e,count:r,subscriber:t});for(var o=0;o<r&&!t.closed;o++)t.next(n[o]);t.complete()},ArrayObservable}(i.Observable);e.ArrayObservable=c},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(9),o=function(t){function EmptyObservable(e){t.call(this),this.scheduler=e}return r(EmptyObservable,t),EmptyObservable.create=function(t){return new EmptyObservable(t)},EmptyObservable.dispatch=function(t){var e=t.subscriber;e.complete()},EmptyObservable.prototype._subscribe=function(t){var e=this.scheduler;return e?e.schedule(EmptyObservable.dispatch,0,{subscriber:t}):void t.complete()},EmptyObservable}(i.Observable);e.EmptyObservable=o},function(t,e,n){"use strict";function dispatchNext(t){var e=t.value,n=t.subscriber;n.closed||(n.next(e),n.complete())}function dispatchError(t){var e=t.err,n=t.subscriber;n.closed||n.error(e)}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(53),o=n(9),a=function(t){function PromiseObservable(e,n){t.call(this),this.promise=e,this.scheduler=n}return r(PromiseObservable,t),PromiseObservable.create=function(t,e){return new PromiseObservable(t,e)},PromiseObservable.prototype._subscribe=function(t){var e=this,n=this.promise,r=this.scheduler;if(null==r)this._isScalar?t.closed||(t.next(this.value),t.complete()):n.then(function(n){e.value=n,e._isScalar=!0,t.closed||(t.next(n),t.complete())},function(e){t.closed||t.error(e)}).then(null,function(t){i.root.setTimeout(function(){throw t})});else if(this._isScalar){if(!t.closed)return r.schedule(dispatchNext,0,{value:this.value,subscriber:t})}else n.then(function(n){e.value=n,e._isScalar=!0,t.closed||t.add(r.schedule(dispatchNext,0,{value:n,subscriber:t}))},function(e){t.closed||t.add(r.schedule(dispatchError,0,{err:e,subscriber:t}))}).then(null,function(t){i.root.setTimeout(function(){throw t})})},PromiseObservable}(o.Observable);e.PromiseObservable=a},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(9),o=function(t){function ScalarObservable(e,n){t.call(this),this.value=e,this.scheduler=n,this._isScalar=!0,n&&(this._isScalar=!1)}return r(ScalarObservable,t),ScalarObservable.create=function(t,e){return new ScalarObservable(t,e)},ScalarObservable.dispatch=function(t){var e=t.done,n=t.value,r=t.subscriber;return e?void r.complete():(r.next(n),void(r.closed||(t.done=!0,this.schedule(t))))},ScalarObservable.prototype._subscribe=function(t){var e=this.value,n=this.scheduler;return n?n.schedule(ScalarObservable.dispatch,0,{done:!1,value:e,subscriber:t}):(t.next(e),void(t.closed||t.complete()))},ScalarObservable}(i.Observable);e.ScalarObservable=o},function(t,e,n){"use strict";function concatAll(){return this.lift(new r.MergeAllOperator(1))}var r=n(242);e.concatAll=concatAll},function(t,e,n){"use strict";function every(t,e){return this.lift(new o(t,e,this))}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(29);e.every=every;var o=function(){function EveryOperator(t,e,n){this.predicate=t,this.thisArg=e,this.source=n}return EveryOperator.prototype.call=function(t,e){return e._subscribe(new a(t,this.predicate,this.thisArg,this.source))},EveryOperator}(),a=function(t){function EverySubscriber(e,n,r,i){t.call(this,e),this.predicate=n,this.thisArg=r,this.source=i,this.index=0,this.thisArg=r||this}return r(EverySubscriber,t),EverySubscriber.prototype.notifyComplete=function(t){this.destination.next(t),this.destination.complete()},EverySubscriber.prototype._next=function(t){var e=!1;try{e=this.predicate.call(this.thisArg,t,this.index++,this.source)}catch(n){return void this.destination.error(n)}e||this.notifyComplete(!1)},EverySubscriber.prototype._complete=function(){this.notifyComplete(!0)},EverySubscriber}(i.Subscriber)},function(t,e){"use strict";var n=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},r=function(t){function ObjectUnsubscribedError(){var e=t.call(this,"object unsubscribed");this.name=e.name="ObjectUnsubscribedError",this.stack=e.stack,this.message=e.message}return n(ObjectUnsubscribedError,t),ObjectUnsubscribedError}(Error);e.ObjectUnsubscribedError=r},function(t,e){"use strict";e.errorObject={e:{}}},function(t,e){"use strict";function isFunction(t){return"function"==typeof t}e.isFunction=isFunction},function(t,e){"use strict";function isPromise(t){return t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}e.isPromise=isPromise},,function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,configurable:!1,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,configurable:!1,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){"use strict";var r=n(532),i=(n.n(r),n(498)),o=n(0),a=n(531),s=n(526);a.a.production&&n.i(o.enableProdMode)(),n.i(i.a)().bootstrapModule(s.a)},,,function(t,e,n){"use strict";var r=n(441),i=n(435),o=n(438),a=n(99),s=n(434);for(var c in r)["NgLocalization","CommonModule","default"].indexOf(c)<0&&function(t){n.d(e,t,function(){return r[t]})}(c);for(var c in i)["NgLocalization","CommonModule","default"].indexOf(c)<0&&function(t){n.d(e,t,function(){return i[t]})}(c);for(var c in o)["NgLocalization","CommonModule","default"].indexOf(c)<0&&function(t){n.d(e,t,function(){return o[t]})}(c);n.o(a,"b")&&n.d(e,"NgLocalization",function(){return a.b}),n.o(s,"a")&&n.d(e,"CommonModule",function(){return s.a})},function(t,e,n){"use strict";var r=n(436);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=r.a},function(t,e,n){"use strict";var r=n(0),i=n(433),o=n(99),a=n(442);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function CommonModule(){}return CommonModule.decorators=[{type:r.NgModule,args:[{declarations:[i.a,a.a],exports:[i.a,a.a],providers:[{provide:o.b,useClass:o.c}]}]}],CommonModule.ctorParameters=[],CommonModule}()},function(t,e,n){"use strict";var r=n(249),i=n(250),o=n(251),a=n(252),s=n(253),c=n(144),l=n(254);n.o(r,"a")&&n.d(e,"NgClass",function(){return r.a}),n.o(i,"a")&&n.d(e,"NgFor",function(){return i.a}),n.o(o,"a")&&n.d(e,"NgIf",function(){return o.a}),n.o(a,"a")&&n.d(e,"NgPlural",function(){return a.a}),n.o(a,"b")&&n.d(e,"NgPluralCase",function(){return a.b}),n.o(s,"a")&&n.d(e,"NgStyle",function(){return s.a}),n.o(c,"b")&&n.d(e,"NgSwitch",function(){return c.b}),n.o(c,"c")&&n.d(e,"NgSwitchCase",function(){return c.c}),n.o(c,"d")&&n.d(e,"NgSwitchDefault",function(){return c.d}),n.o(l,"a")&&n.d(e,"NgTemplateOutlet",function(){return l.a})},function(t,e,n){"use strict";var r=n(249),i=n(250),o=n(251),a=n(252),s=n(253),c=n(144),l=n(254);n.d(e,"a",function(){return u});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var u=[r.a,i.a,o.a,l.a,s.a,c.b,c.c,c.d,a.a,a.b]},function(t,e,n){"use strict";n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=function(t){function BaseError(e){var n=t.call(this,e);this._nativeError=n}return r(BaseError,t),Object.defineProperty(BaseError.prototype,"message",{get:function(){return this._nativeError.message},set:function(t){this._nativeError.message=t},enumerable:!0,configurable:!0}),Object.defineProperty(BaseError.prototype,"name",{get:function(){return this._nativeError.name},enumerable:!0,configurable:!0}),Object.defineProperty(BaseError.prototype,"stack",{get:function(){return this._nativeError.stack},set:function(t){this._nativeError.stack=t},enumerable:!0,configurable:!0}),BaseError.prototype.toString=function(){return this._nativeError.toString()},BaseError}(Error);(function(t){function WrappedError(e,n){t.call(this,e+" caused by: "+(n instanceof Error?n.message:n)),this.originalError=n}return r(WrappedError,t),Object.defineProperty(WrappedError.prototype,"stack",{get:function(){return(this.originalError instanceof Error?this.originalError:this._nativeError).stack},enumerable:!0,configurable:!0}),WrappedError})(i)},function(t,e,n){"use strict";var r=n(146),i=n(100),o=n(439),a=n(440),s=n(145);for(var c in r)"default"!==c&&function(t){n.d(e,t,function(){return r[t]})}(c);for(var c in i)"default"!==c&&function(t){n.d(e,t,function(){return i[t]})}(c);for(var c in o)"default"!==c&&function(t){n.d(e,t,function(){return o[t]})}(c);for(var c in a)"default"!==c&&function(t){n.d(e,t,function(){return a[t]})}(c);for(var c in s)"default"!==c&&function(t){n.d(e,t,function(){return s[t]})}(c)},function(t,e,n){"use strict";var r=n(0),i=n(12),o=n(145),a=n(100),s=n(146);n.d(e,"HashLocationStrategy",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},l=function(t){function HashLocationStrategy(e,r){t.call(this),this._platformLocation=e,this._baseHref="",n.i(i.b)(r)&&(this._baseHref=r)}return c(HashLocationStrategy,t),HashLocationStrategy.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},HashLocationStrategy.prototype.getBaseHref=function(){return this._baseHref},HashLocationStrategy.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.hash;return n.i(i.b)(e)||(e="#"),e.length>0?e.substring(1):e},HashLocationStrategy.prototype.prepareExternalUrl=function(t){var e=o.Location.joinWithSlash(this._baseHref,t);return e.length>0?"#"+e:e},HashLocationStrategy.prototype.pushState=function(t,e,n,r){var i=this.prepareExternalUrl(n+o.Location.normalizeQueryParams(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.pushState(t,e,i)},HashLocationStrategy.prototype.replaceState=function(t,e,n,r){var i=this.prepareExternalUrl(n+o.Location.normalizeQueryParams(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,i)},HashLocationStrategy.prototype.forward=function(){this._platformLocation.forward()},HashLocationStrategy.prototype.back=function(){this._platformLocation.back()},HashLocationStrategy.decorators=[{type:r.Injectable}],HashLocationStrategy.ctorParameters=[{type:s.PlatformLocation},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[a.APP_BASE_HREF]}]}],HashLocationStrategy}(a.LocationStrategy)},function(t,e,n){"use strict";var r=n(0),i=n(12),o=n(145),a=n(100),s=n(146);n.d(e,"PathLocationStrategy",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},l=function(t){function PathLocationStrategy(e,r){if(t.call(this),this._platformLocation=e,n.i(i.c)(r)&&(r=this._platformLocation.getBaseHrefFromDOM()),n.i(i.c)(r))throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=r}return c(PathLocationStrategy,t),PathLocationStrategy.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},PathLocationStrategy.prototype.getBaseHref=function(){return this._baseHref},PathLocationStrategy.prototype.prepareExternalUrl=function(t){return o.Location.joinWithSlash(this._baseHref,t)},PathLocationStrategy.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.pathname+o.Location.normalizeQueryParams(this._platformLocation.search),n=this._platformLocation.hash;return n&&t?""+e+n:e},PathLocationStrategy.prototype.pushState=function(t,e,n,r){var i=this.prepareExternalUrl(n+o.Location.normalizeQueryParams(r));this._platformLocation.pushState(t,e,i)},PathLocationStrategy.prototype.replaceState=function(t,e,n,r){var i=this.prepareExternalUrl(n+o.Location.normalizeQueryParams(r));this._platformLocation.replaceState(t,e,i)},PathLocationStrategy.prototype.forward=function(){this._platformLocation.forward()},PathLocationStrategy.prototype.back=function(){this._platformLocation.back()},PathLocationStrategy.decorators=[{type:r.Injectable}],PathLocationStrategy.ctorParameters=[{type:s.PlatformLocation},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[a.APP_BASE_HREF]}]}],PathLocationStrategy}(a.LocationStrategy)},function(t,e,n){"use strict";var r=n(256),i=n(257),o=n(258),a=n(259),s=n(260),c=n(261),l=n(262),u=n(263),p=n(264);n.o(r,"a")&&n.d(e,"AsyncPipe",function(){return r.a}),n.o(i,"a")&&n.d(e,"DatePipe",function(){return i.a}),n.o(o,"a")&&n.d(e,"I18nPluralPipe",function(){return o.a}),n.o(a,"a")&&n.d(e,"I18nSelectPipe",function(){return a.a}),n.o(s,"a")&&n.d(e,"JsonPipe",function(){return s.a}),n.o(c,"a")&&n.d(e,"LowerCasePipe",function(){return c.a}),n.o(l,"c")&&n.d(e,"CurrencyPipe",function(){return l.c}),n.o(l,"a")&&n.d(e,"DecimalPipe",function(){return l.a}),n.o(l,"b")&&n.d(e,"PercentPipe",function(){return l.b}),n.o(u,"a")&&n.d(e,"SlicePipe",function(){return u.a}),n.o(p,"a")&&n.d(e,"UpperCasePipe",function(){return p.a})},function(t,e,n){"use strict";var r=n(256),i=n(257),o=n(258),a=n(259),s=n(260),c=n(261),l=n(262),u=n(263),p=n(264);n.d(e,"a",function(){return d});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var d=[r.a,p.a,c.a,s.a,u.a,l.a,l.b,l.c,i.a,o.a,a.a]},function(t,e,n){"use strict";function parseAnimationEntry(t){var e=[],n={},i=[],o=[];t.definitions.forEach(function(t){t instanceof r.g?_parseAnimationDeclarationStates(t,e).forEach(function(t){o.push(t),n[t.stateName]=t.styles}):i.push(t)});var a=i.map(function(t){return _parseAnimationStateTransition(t,n,e)}),s=new l.a(t.name,o,a);return new v(s,e)}function parseAnimationOutputName(t,e){var n,r=t.split("."),i="";if(r.length>1){n=r[0];var o=r[1];switch(o){case"start":case"done":i=o;break;default:e.push(new m('The provided animation output phase value "'+o+'" for "@'+n+'" is not supported (use start or done)'))}}else n=t,e.push(new m("The animation trigger output event (@"+n+") is missing its phase value name (start or done are currently supported)"));return new c.O(n,i,t)}function _parseAnimationDeclarationStates(t,e){var r=[];t.styles.styles.forEach(function(t){n.i(o.m)(t)?r.push(t):e.push(new m("State based animations cannot contain references to other states"))});var i=new l.b(r),a=t.stateNameExpr.split(/\s*,\s*/);return a.map(function(t){return new l.c(t,i)})}function _parseAnimationStateTransition(t,e,n){var r=new u.a,i=[],o=t.stateChangeExpr.split(/\s*,\s*/);o.forEach(function(t){_parseAnimationTransitionExpr(t,n).forEach(function(t){i.push(t)})});var a=_normalizeAnimationEntry(t.steps),s=_normalizeStyleSteps(a,e,n),c=_parseTransitionAnimation(s,0,r,e,n);0==n.length&&_fillAnimationAstStartingKeyframes(c,r,n);var p=c instanceof l.d?c:new l.d([c]);return new l.e(i,p)}function _parseAnimationTransitionExpr(t,e){var r=[],i=t.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(!n.i(o.a)(i)||i.length<4)return e.push(new m("the provided "+t+" is not of a supported format")),r;var a=i[1],s=i[2],u=i[3];r.push(new l.f(a,u));var p=a==c.S&&u==c.S;return"<"!=s[0]||p||r.push(new l.f(u,a)),r}function _normalizeAnimationEntry(t){return n.i(o.d)(t)?new r.i(t):t}function _normalizeStyleMetadata(t,e,r){var a=[];return t.styles.forEach(function(t){n.i(o.h)(t)?i.a.addAll(a,_resolveStylesFromState(t,e,r)):a.push(t)}),a}function _normalizeStyleSteps(t,e,n){var i=_normalizeStyleStepEntry(t,e,n);return new r.i(i)}function _mergeAnimationStyles(t,e){if(n.i(o.m)(e)&&t.length>0){var r=t.length-1,a=t[r];if(n.i(o.m)(a))return void(t[r]=i.b.merge(a,e))}t.push(e)}function _normalizeStyleStepEntry(t,e,i){var a;if(!(t instanceof r.j))return[t];a=t.steps;var s,c=[];return a.forEach(function(t){if(t instanceof r.h)n.i(o.a)(s)||(s=[]),_normalizeStyleMetadata(t,e,i).forEach(function(t){_mergeAnimationStyles(s,t)});else{if(n.i(o.a)(s)&&(c.push(new r.h(0,s)),s=null),t instanceof r.k){var a=t.styles;a instanceof r.h?a.styles=_normalizeStyleMetadata(a,e,i):a instanceof r.l&&a.steps.forEach(function(t){t.styles=_normalizeStyleMetadata(t,e,i)})}else if(t instanceof r.j){var l=_normalizeStyleStepEntry(t,e,i);t=t instanceof r.m?new r.m(l):new r.i(l)}c.push(t)}}),n.i(o.a)(s)&&c.push(new r.h(0,s)),c}function _resolveStylesFromState(t,e,r){var i=[];if(":"!=t[0])r.push(new m('Animation states via styles must be prefixed with a ":"'));else{var a=t.substring(1),s=e[a];n.i(o.a)(s)?s.styles.forEach(function(t){n.i(o.m)(t)&&i.push(t)}):r.push(new m('Unable to apply styles due to missing a state: "'+a+'"'))}return i}function _parseAnimationKeyframes(t,e,r,a,s){var u=t.steps.length,p=0;t.steps.forEach(function(t){return p+=n.i(o.a)(t.offset)?1:0}),p>0&&p<u&&(s.push(new m("Not all style() entries contain an offset for the provided keyframe()")),p=u);var h=u-1,v=0==p?1/h:0,g=[],b=0,y=!1,_=0;t.steps.forEach(function(t){var e=t.offset,r={};t.styles.forEach(function(t){i.b.forEach(t,function(t,e){"offset"!=e&&(r[e]=t)})}),n.i(o.a)(e)?y=y||e<_:e=b==h?f:v*b,g.push([e,r]),_=e,b++}),y&&i.a.sort(g,function(t,e){return t[0]<=e[0]?-1:1});var w,x=g[0];x[0]!=d&&i.a.insert(g,0,x=[d,{}]);var C=x[1];h=g.length-1;var S=g[h];S[0]!=f&&(g.push(S=[f,{}]),h++);var k=S[1];for(w=1;w<=h;w++){var E=g[w],P=E[1];i.b.forEach(P,function(t,e){n.i(o.a)(C[e])||(C[e]=c.T)})}for(w=h-1;w>=0;w--){var E=g[w],P=E[1];i.b.forEach(P,function(t,e){n.i(o.a)(k[e])||(k[e]=t)})}return g.map(function(t){return new l.g(t[0],new l.b([t[1]]))})}function _parseTransitionAnimation(t,e,s,c,u){var p,d=0,h=e;if(t instanceof r.j){var m,v=0,g=[],b=t instanceof r.m;if(t.steps.forEach(function(t){var p=b?h:e;if(t instanceof r.h)return t.styles.forEach(function(t){var e=t;i.b.forEach(e,function(t,e){s.insertAtTime(e,p,t)})}),void(m=t.styles);var f=_parseTransitionAnimation(t,p,s,c,u);if(n.i(o.a)(m)){if(t instanceof r.j){var y=new l.b(m);g.push(new l.h(y,[],0,0,""))}else{var _=f;i.a.addAll(_.startingStyles.styles,m)}m=null}var w=f.playTime;e+=w,d+=w,v=a.a.max(w,v),g.push(f)}),n.i(o.a)(m)){var y=new l.b(m);g.push(new l.h(y,[],0,0,""))}b?(p=new l.i(g),d=v,e=h+d):p=new l.d(g)}else if(t instanceof r.k){var _,w=_parseTimeExpression(t.timings,u),x=t.styles;if(x instanceof r.l)_=_parseAnimationKeyframes(x,e,s,c,u);else{var C=x,S=f,k=new l.b(C.styles),E=new l.g(S,k);_=[E]}p=new l.h(new l.b([]),_,w.duration,w.delay,w.easing),d=w.duration+w.delay,e+=d,_.forEach(function(t){return t.styles.styles.forEach(function(t){return i.b.forEach(t,function(t,n){return s.insertAtTime(n,e,t)})})})}else p=new l.h(null,[],0,0,"");return p.playTime=d,p.startTime=h,p}function _fillAnimationAstStartingKeyframes(t,e,n){if(t instanceof l.h&&t.keyframes.length>0){var r=t.keyframes;if(1==r.length){var i=r[0],o=_createStartKeyframeFromEndKeyframe(i,t.startTime,t.playTime,e,n);t.keyframes=[o,i]}}else t instanceof l.j&&t.steps.forEach(function(t){return _fillAnimationAstStartingKeyframes(t,e,n)})}function _parseTimeExpression(t,e){var r,i=/^([\.\d]+)(m?s)(?:\s+([\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?/i,s=0,c=null;if(n.i(o.h)(t)){var l=t.match(i);if(null===l)return e.push(new m('The provided timing value "'+t+'" is invalid.')),new g(0,0,null);var u=o.n.parseFloat(l[1]),p=l[2];"s"==p&&(u*=h),r=a.a.floor(u);var d=l[3],f=l[4];if(n.i(o.a)(d)){var v=o.n.parseFloat(d);n.i(o.a)(f)&&"s"==f&&(v*=h),s=a.a.floor(v)}var b=l[5];n.i(o.c)(b)||(c=b)}else r=t;return new g(r,s,c)}function _createStartKeyframeFromEndKeyframe(t,e,r,a,s){var u={},p=e+r;return t.styles.styles.forEach(function(t){i.b.forEach(t,function(t,r){if("offset"!=r){var i,l,d,f=a.indexOfAtOrBeforeTime(r,e);n.i(o.a)(f)?(i=a.getByIndex(r,f),d=i.value,l=a.getByIndex(r,f+1)):d=c.T,n.i(o.a)(l)&&!l.matches(p,t)&&s.push(new m('The animated CSS property "'+r+'" unexpectedly changes between steps "'+i.time+'ms" and "'+p+'ms" at "'+l.time+'ms"')),u[r]=d}})}),new l.g(d,new l.b([u]))}var r=n(20),i=n(6),o=n(3),a=n(446),s=n(41),c=n(17),l=n(265),u=n(444);n.d(e,"b",function(){return m}),e.a=parseAnimationEntry,e.c=parseAnimationOutputName;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var p=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},d=0,f=1,h=1e3,m=function(t){function AnimationParseError(e){t.call(this,null,e)}return p(AnimationParseError,t),AnimationParseError.prototype.toString=function(){return""+this.msg},AnimationParseError}(s.a),v=function(){function ParsedAnimationResult(t,e){this.ast=t,this.errors=e}return ParsedAnimationResult}(),g=function(){function _AnimationTimings(t,e,n){this.duration=t,this.delay=e,this.easing=n}return _AnimationTimings}()},function(t,e,n){"use strict";var r=n(6),i=n(3);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function StylesCollectionEntry(t,e){this.time=t,this.value=e}return StylesCollectionEntry.prototype.matches=function(t,e){return t==this.time&&e==this.value},StylesCollectionEntry}(),a=function(){function StylesCollection(){this.styles={}}return StylesCollection.prototype.insertAtTime=function(t,e,a){var s=new o(e,a),c=this.styles[t];n.i(i.a)(c)||(c=this.styles[t]=[]);for(var l=0,u=c.length-1;u>=0;u--)if(c[u].time<=e){l=u+1;break}r.a.insert(c,l,s)},StylesCollection.prototype.getByIndex=function(t,e){var r=this.styles[t];return n.i(i.a)(r)?e>=r.length?null:r[e]:null},StylesCollection.prototype.indexOfAtOrBeforeTime=function(t,e){var r=this.styles[t];if(n.i(i.a)(r))for(var o=r.length-1;o>=0;o--)if(r[o].time<=e)return o;return null},StylesCollection}()},function(t,e,n){"use strict";function _initReflector(){w.P.reflectionCapabilities=new w._2}function _mergeOptions(t){return{useDebug:_lastDefined(t.map(function(t){return t.useDebug})),useJit:_lastDefined(t.map(function(t){return t.useJit})),defaultEncapsulation:_lastDefined(t.map(function(t){return t.defaultEncapsulation})),providers:_mergeArrays(t.map(function(t){return t.providers}))}}function _lastDefined(t){for(var e=t.length-1;e>=0;e--)if(void 0!==t[e])return t[e]}function _mergeArrays(t){var e=[];return t.forEach(function(t){return t&&e.push.apply(e,t)}),e}var r=n(0),i=(n(42),n(20),n(455),n(105)),o=n(104),a=n(148),s=n(153),c=n(160),l=n(106),u=n(154),p=n(78),d=n(283),f=n(79),h=n(284),m=n(80),v=n(103),g=n(102),b=n(149),y=n(157),_=n(155),w=n(17),x=n(158),C=n(271);n.d(e,"b",function(){return P}),n.d(e,"a",function(){return x.a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var S={get:function(t){throw new Error("No ResourceLoader implementation has been provided. Can't read the url \""+t+'"')}},k=[{provide:w._1,useValue:w.P},{provide:w.Y,useExisting:w._1},{provide:x.a,useValue:S},w.Q,g.c,v.a,o.b,{provide:C.a,useFactory:function(t,e,n){return new C.a(t,e,n)},deps:[o.b,[new r.OptionalMetadata,new r.Inject(r.TRANSLATIONS)],[new r.OptionalMetadata,new r.Inject(r.TRANSLATIONS_FORMAT)]]},i.a,a.a,s.a,m.c,c.a,l.c,u.a,{provide:p.a,useValue:new p.a},d.a,{provide:r.Compiler,useExisting:d.a},h.a,{provide:f.a,useExisting:h.a},m.a,b.a,y.a,_.a],E=function(){function RuntimeCompilerFactory(t){this._defaultOptions=[{useDebug:n.i(r.isDevMode)(),useJit:!0,defaultEncapsulation:r.ViewEncapsulation.Emulated}].concat(t)}return RuntimeCompilerFactory.prototype.createCompiler=function(t){void 0===t&&(t=[]);var e=_mergeOptions(this._defaultOptions.concat(t)),n=r.ReflectiveInjector.resolveAndCreate([k,{provide:p.a,useFactory:function(){return new p.a({genDebugInfo:e.useDebug,useJit:e.useJit,defaultEncapsulation:e.defaultEncapsulation,logBindingUpdate:e.useDebug})},deps:[]},e.providers]);return n.get(r.Compiler)},RuntimeCompilerFactory.decorators=[{type:r.Injectable}],RuntimeCompilerFactory.ctorParameters=[{type:Array,decorators:[{type:r.Inject,args:[r.COMPILER_OPTIONS]}]}],RuntimeCompilerFactory}(),P=n.i(r.createPlatformFactory)(r.platformCore,"coreDynamic",[{provide:r.COMPILER_OPTIONS,useValue:{},multi:!0},{provide:r.CompilerFactory,useClass:E},{provide:r.PLATFORM_INITIALIZER,useValue:_initReflector,multi:!0}])},function(t,e,n){"use strict";var r=n(3);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=r.b.Math},function(t,e,n){"use strict";function createI18nMessageFactory(t){var e=new p(u,t);return function(t,n,r){return e.toI18nMessage(t,n,r)}}function _extractPlaceholderName(t){return t.split(d)[1]}var r=n(102),i=n(103),o=n(55),a=n(278),s=n(151),c=n(269),l=n(448);e.a=createI18nMessageFactory;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var u=new i.a(new r.c),p=function(){function _I18nVisitor(t,e){this._expressionParser=t,this._interpolationConfig=e}return _I18nVisitor.prototype.toI18nMessage=function(t,e,n){this._isIcu=1==t.length&&t[0]instanceof o.b,this._icuDepth=0,this._placeholderRegistry=new l.a,this._placeholderToContent={},this._placeholderToIds={};var r=o.g(this,t,{});return new c.a(r,this._placeholderToContent,this._placeholderToIds,e,n)},_I18nVisitor.prototype.visitElement=function(t,e){var r=o.g(this,t.children),i={};t.attrs.forEach(function(t){i[t.name]=t.value});var s=n.i(a.a)(t.name).isVoid,l=this._placeholderRegistry.getStartTagPlaceholderName(t.name,i,s);this._placeholderToContent[l]=t.sourceSpan.toString();var u="";return s||(u=this._placeholderRegistry.getCloseTagPlaceholderName(t.name),this._placeholderToContent[u]="</"+t.name+">"),new c.b(t.name,i,l,u,r,s,t.sourceSpan)},_I18nVisitor.prototype.visitAttribute=function(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)},_I18nVisitor.prototype.visitText=function(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)},_I18nVisitor.prototype.visitComment=function(t,e){return null},_I18nVisitor.prototype.visitExpansion=function(t,e){var r=this;this._icuDepth++;var i={},o=new c.c(t.switchValue,t.type,i,t.sourceSpan);if(t.cases.forEach(function(t){i[t.value]=new c.d(t.expression.map(function(t){return t.visit(r,{})}),t.expSourceSpan)}),this._icuDepth--,this._isIcu||this._icuDepth>0)return o;var a=this._placeholderRegistry.getPlaceholderName("ICU",t.sourceSpan.toString()),l=new _I18nVisitor(this._expressionParser,this._interpolationConfig);return this._placeholderToIds[a]=n.i(s.a)(l.toI18nMessage([t],"","")),new c.e(o,a,t.sourceSpan)},_I18nVisitor.prototype.visitExpansionCase=function(t,e){throw new Error("Unreachable code")},_I18nVisitor.prototype._visitTextWithInterpolation=function(t,e){var n=this._expressionParser.splitInterpolation(t,e.start.toString(),this._interpolationConfig);if(!n)return new c.f(t,e);for(var r=[],i=new c.d(r,e),o=this._interpolationConfig,a=o.start,s=o.end,l=0;l<n.strings.length-1;l++){var u=n.expressions[l],p=_extractPlaceholderName(u)||"INTERPOLATION",d=this._placeholderRegistry.getPlaceholderName(p,u);n.strings[l].length&&r.push(new c.f(n.strings[l],e)),r.push(new c.g(u,d,e)),this._placeholderToContent[d]=a+u+s}var f=n.strings.length-1;return n.strings[f].length&&r.push(new c.f(n.strings[f],e)),i},_I18nVisitor}(),d=/\/\/[\s\S]*i18n[\s\S]*\([\s\S]*ph[\s\S]*=[\s\S]*"([\s\S]*?)"[\s\S]*\)/g},function(t,e,n){"use strict";n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r={A:"LINK",B:"BOLD_TEXT",BR:"LINE_BREAK",EM:"EMPHASISED_TEXT",H1:"HEADING_LEVEL1",H2:"HEADING_LEVEL2",H3:"HEADING_LEVEL3",H4:"HEADING_LEVEL4",H5:"HEADING_LEVEL5",H6:"HEADING_LEVEL6",HR:"HORIZONTAL_RULE",I:"ITALIC_TEXT",LI:"LIST_ITEM",LINK:"MEDIA_LINK",OL:"ORDERED_LIST",P:"PARAGRAPH",Q:"QUOTATION",S:"STRIKETHROUGH_TEXT",SMALL:"SMALL_TEXT",SUB:"SUBSTRIPT",SUP:"SUPERSCRIPT",TBODY:"TABLE_BODY",TD:"TABLE_CELL",TFOOT:"TABLE_FOOTER",TH:"TABLE_HEADER_CELL",THEAD:"TABLE_HEADER",TR:"TABLE_ROW",TT:"MONOSPACED_TEXT",U:"UNDERLINED_TEXT",UL:"UNORDERED_LIST"},i=function(){function PlaceholderRegistry(){this._placeHolderNameCounts={},this._signatureToName={}}return PlaceholderRegistry.prototype.getStartTagPlaceholderName=function(t,e,n){var i=this._hashTag(t,e,n);if(this._signatureToName[i])return this._signatureToName[i];var o=t.toUpperCase(),a=r[o]||"TAG_"+o,s=this._generateUniqueName(n?a:"START_"+a);return this._signatureToName[i]=s,s},PlaceholderRegistry.prototype.getCloseTagPlaceholderName=function(t){var e=this._hashClosingTag(t);if(this._signatureToName[e])return this._signatureToName[e];var n=t.toUpperCase(),i=r[n]||"TAG_"+n,o=this._generateUniqueName("CLOSE_"+i);return this._signatureToName[e]=o,o},PlaceholderRegistry.prototype.getPlaceholderName=function(t,e){var n=t.toUpperCase(),r="PH: "+n+"="+e;if(this._signatureToName[r])return this._signatureToName[r];var i=this._generateUniqueName(n);return this._signatureToName[r]=i,i},PlaceholderRegistry.prototype._hashTag=function(t,e,n){var r="<"+t,i=Object.keys(e).sort().map(function(t){return" "+t+"="+e[t]}).join(""),o=n?"/>":"></"+t+">";return r+i+o},PlaceholderRegistry.prototype._hashClosingTag=function(t){return this._hashTag("/"+t,{},!1)},PlaceholderRegistry.prototype._generateUniqueName=function(t){var e=t,n=this._placeHolderNameCounts[e];return n?(e+="_"+n,n++):n=1,this._placeHolderNameCounts[t]=n,e},PlaceholderRegistry}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function TranslationBundle(t){void 0===t&&(t={}),this._messageMap=t}return TranslationBundle.load=function(t,e,n,r){return new TranslationBundle(r.load(t,e,n))},TranslationBundle.prototype.get=function(t){return this._messageMap[t]},TranslationBundle.prototype.has=function(t){return t in this._messageMap},TranslationBundle}()},function(t,e,n){"use strict";var r=n(445);n(40),n(79),n(271),n(42),n(460);n.o(r,"a")&&n.d(e,"a",function(){return r.a}),n.o(r,"b")&&n.d(e,"b",function(){return r.b})},function(t,e,n){"use strict";function hasLifecycleHook(t,e){var n=a.get(t),r=s.get(t);return o.P.hasLifecycleHook(e,n,r)}var r=n(0),i=n(6),o=n(17);e.a=hasLifecycleHook;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=i.c.createFromPairs([[o.W.OnInit,r.OnInit],[o.W.OnDestroy,r.OnDestroy],[o.W.DoCheck,r.DoCheck],[o.W.OnChanges,r.OnChanges],[o.W.AfterContentInit,r.AfterContentInit],[o.W.AfterContentChecked,r.AfterContentChecked],[o.W.AfterViewInit,r.AfterViewInit],[o.W.AfterViewChecked,r.AfterViewChecked]]),s=i.c.createFromPairs([[o.W.OnInit,"ngOnInit"],[o.W.OnDestroy,"ngOnDestroy"],[o.W.DoCheck,"ngDoCheck"],[o.W.OnChanges,"ngOnChanges"],[o.W.AfterContentInit,"ngAfterContentInit"],[o.W.AfterContentChecked,"ngAfterContentChecked"],[o.W.AfterViewInit,"ngAfterViewInit"],[o.W.AfterViewChecked,"ngAfterViewChecked"]])},function(t,e,n){"use strict";function expandNodes(t){var e=new l;return new s(i.g(e,t),e.isExpanded,e.errors)}function _expandPluralForm(t,e){var n=t.cases.map(function(t){a.indexOf(t.value)!=-1||t.value.match(/^=\d+$/)||e.push(new c(t.valueSourceSpan,'Plural cases should be "=<number>" or one of '+a.join(", ")));var n=expandNodes(t.expression);return e.push.apply(e,n.errors),new i.e("template",[new i.f("ngPluralCase",""+t.value,t.valueSourceSpan)],n.nodes,t.sourceSpan,t.sourceSpan,t.sourceSpan)}),r=new i.f("[ngPlural]",t.switchValue,t.switchValueSourceSpan);return new i.e("ng-container",[r],n,t.sourceSpan,t.sourceSpan,t.sourceSpan)}function _expandDefaultForm(t,e){var n=t.cases.map(function(t){var n=expandNodes(t.expression);return e.push.apply(e,n.errors),new i.e("template",[new i.f("ngSwitchCase",""+t.value,t.valueSourceSpan)],n.nodes,t.sourceSpan,t.sourceSpan,t.sourceSpan)}),r=new i.f("[ngSwitch]",t.switchValue,t.switchValueSourceSpan);return new i.e("ng-container",[r],n,t.sourceSpan,t.sourceSpan,t.sourceSpan)}var r=n(41),i=n(55);e.a=expandNodes;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=["zero","one","two","few","many","other"],s=function(){function ExpansionResult(t,e,n){this.nodes=t,this.expanded=e,this.errors=n}return ExpansionResult}(),c=function(t){function ExpansionError(e,n){t.call(this,e,n)}return o(ExpansionError,t),ExpansionError}(r.a),l=function(){function _Expander(){this.isExpanded=!1,this.errors=[]}return _Expander.prototype.visitElement=function(t,e){return new i.e(t.name,t.attrs,i.g(this,t.children),t.sourceSpan,t.startSourceSpan,t.endSourceSpan)},_Expander.prototype.visitAttribute=function(t,e){return t},_Expander.prototype.visitText=function(t,e){return t},_Expander.prototype.visitComment=function(t,e){return t},_Expander.prototype.visitExpansion=function(t,e){return this.isExpanded=!0,"plural"==t.type?_expandPluralForm(t,this.errors):_expandDefaultForm(t,this.errors)},_Expander.prototype.visitExpansionCase=function(t,e){throw new Error("Should not be reached")},_Expander}()},function(t,e,n){"use strict";function tokenize(t,e,n,r,a){return void 0===r&&(r=!1),void 0===a&&(a=o.a),new h(new i.b(t,e),n,r,a).tokenize()}function _unexpectedCharacterErrorMsg(t){var e=t===r.a?"EOF":String.fromCharCode(t);return'Unexpected character "'+e+'"'}function _unknownEntityErrorMsg(t){return'Unknown entity "'+t+'" - use the "&#<decimal>;" or  "&#x<hex>;" syntax'}function isNotWhitespace(t){return!r.E(t)||t===r.a}function isNameEnd(t){return r.E(t)||t===r.y||t===r.t||t===r.n||t===r.o||t===r.z}function isPrefixEnd(t){return(t<r.H||r.I<t)&&(t<r.J||r.K<t)&&(t<r._3||t>r._4)}function isDigitEntityEnd(t){return t==r.m||t==r.a||!r._5(t)}function isNamedEntityEnd(t){return t==r.m||t==r.a||!r.N(t)}function isExpansionFormStart(t,e,n){var i=!!n&&t.indexOf(n.start,e)==e;return t.charCodeAt(e)==r.g&&!i}function isExpansionCaseStart(t){return t===r.z||r.N(t)}function compareCharCodeCaseInsensitive(t,e){return toUpperCaseCharCode(t)==toUpperCaseCharCode(e)}function toUpperCaseCharCode(t){return t>=r.H&&t<=r.I?t-r.H+r.J:t}function mergeTextTokens(t){for(var e,n=[],r=0;r<t.length;r++){var i=t[r];e&&e.type==s.TEXT&&i.type==s.TEXT?(e.parts[0]+=i.parts[0],e.sourceSpan.end=i.sourceSpan.end):(e=i,n.push(e))}return n}var r=n(147),i=n(41),o=n(40),a=n(67);n.d(e,"b",function(){return s}),n.d(e,"c",function(){return l}),e.a=tokenize;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s,c=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)};!function(t){t[t.TAG_OPEN_START=0]="TAG_OPEN_START",t[t.TAG_OPEN_END=1]="TAG_OPEN_END",t[t.TAG_OPEN_END_VOID=2]="TAG_OPEN_END_VOID",t[t.TAG_CLOSE=3]="TAG_CLOSE",t[t.TEXT=4]="TEXT",t[t.ESCAPABLE_RAW_TEXT=5]="ESCAPABLE_RAW_TEXT",t[t.RAW_TEXT=6]="RAW_TEXT",t[t.COMMENT_START=7]="COMMENT_START",t[t.COMMENT_END=8]="COMMENT_END",t[t.CDATA_START=9]="CDATA_START",t[t.CDATA_END=10]="CDATA_END",t[t.ATTR_NAME=11]="ATTR_NAME",t[t.ATTR_VALUE=12]="ATTR_VALUE",t[t.DOC_TYPE=13]="DOC_TYPE",t[t.EXPANSION_FORM_START=14]="EXPANSION_FORM_START",t[t.EXPANSION_CASE_VALUE=15]="EXPANSION_CASE_VALUE",t[t.EXPANSION_CASE_EXP_START=16]="EXPANSION_CASE_EXP_START",t[t.EXPANSION_CASE_EXP_END=17]="EXPANSION_CASE_EXP_END",t[t.EXPANSION_FORM_END=18]="EXPANSION_FORM_END",t[t.EOF=19]="EOF"}(s||(s={}));var l=function(){function Token(t,e,n){this.type=t,this.parts=e,this.sourceSpan=n}return Token}(),u=function(t){function TokenError(e,n,r){t.call(this,r,e),this.tokenType=n}return c(TokenError,t),TokenError}(i.a),p=function(){function TokenizeResult(t,e){this.tokens=t,this.errors=e}return TokenizeResult}(),d=/\r\n?/g,f=function(){function _ControlFlowError(t){this.error=t}return _ControlFlowError}(),h=function(){function _Tokenizer(t,e,n,r){void 0===r&&(r=o.a),this._file=t,this._getTagDefinition=e,this._tokenizeIcu=n,this._interpolationConfig=r,this._peek=-1,this._nextPeek=-1,this._index=-1,this._line=0,this._column=-1,this._expansionCaseStack=[],this._inInterpolation=!1,this.tokens=[],this.errors=[],this._input=t.content,this._length=t.content.length,this._advance()}return _Tokenizer.prototype._processCarriageReturns=function(t){return t.replace(d,"\n")},_Tokenizer.prototype.tokenize=function(){for(;this._peek!==r.a;){var t=this._getLocation();try{this._attemptCharCode(r.x)?this._attemptCharCode(r.A)?this._attemptCharCode(r.i)?this._consumeCdata(t):this._attemptCharCode(r.r)?this._consumeComment(t):this._consumeDocType(t):this._attemptCharCode(r.t)?this._consumeTagClose(t):this._consumeTagOpen(t):this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(e){if(!(e instanceof f))throw e;this.errors.push(e.error)}}return this._beginToken(s.EOF),this._endToken([]),new p(mergeTextTokens(this.tokens),this.errors)},_Tokenizer.prototype._tokenizeExpansionForm=function(){if(isExpansionFormStart(this._input,this._index,this._interpolationConfig))return this._consumeExpansionFormStart(),!0;if(isExpansionCaseStart(this._peek)&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(this._peek===r.h){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1},_Tokenizer.prototype._getLocation=function(){return new i.c(this._file,this._index,this._line,this._column)},_Tokenizer.prototype._getSpan=function(t,e){return void 0===t&&(t=this._getLocation()),void 0===e&&(e=this._getLocation()),new i.d(t,e)},_Tokenizer.prototype._beginToken=function(t,e){void 0===e&&(e=this._getLocation()),this._currentTokenStart=e,this._currentTokenType=t},_Tokenizer.prototype._endToken=function(t,e){void 0===e&&(e=this._getLocation());var n=new l(this._currentTokenType,t,new i.d(this._currentTokenStart,e));return this.tokens.push(n),this._currentTokenStart=null,this._currentTokenType=null,n},_Tokenizer.prototype._createError=function(t,e){this._isInExpansionForm()&&(t+=' (Do you have an unescaped "{" in your template? Use "{{ \'{\' }}") to escape it.)');var n=new u(t,this._currentTokenType,e);return this._currentTokenStart=null,this._currentTokenType=null,new f(n)},_Tokenizer.prototype._advance=function(){if(this._index>=this._length)throw this._createError(_unexpectedCharacterErrorMsg(r.a),this._getSpan());this._peek===r.S?(this._line++,this._column=0):this._peek!==r.S&&this._peek!==r.W&&this._column++,this._index++,this._peek=this._index>=this._length?r.a:this._input.charCodeAt(this._index),this._nextPeek=this._index+1>=this._length?r.a:this._input.charCodeAt(this._index+1)},_Tokenizer.prototype._attemptCharCode=function(t){return this._peek===t&&(this._advance(),!0)},_Tokenizer.prototype._attemptCharCodeCaseInsensitive=function(t){return!!compareCharCodeCaseInsensitive(this._peek,t)&&(this._advance(),!0)},_Tokenizer.prototype._requireCharCode=function(t){var e=this._getLocation();if(!this._attemptCharCode(t))throw this._createError(_unexpectedCharacterErrorMsg(this._peek),this._getSpan(e,e))},_Tokenizer.prototype._attemptStr=function(t){var e=t.length;if(this._index+e>this._length)return!1;for(var n=this._savePosition(),r=0;r<e;r++)if(!this._attemptCharCode(t.charCodeAt(r)))return this._restorePosition(n),!1;return!0},_Tokenizer.prototype._attemptStrCaseInsensitive=function(t){for(var e=0;e<t.length;e++)if(!this._attemptCharCodeCaseInsensitive(t.charCodeAt(e)))return!1;return!0},_Tokenizer.prototype._requireStr=function(t){var e=this._getLocation();if(!this._attemptStr(t))throw this._createError(_unexpectedCharacterErrorMsg(this._peek),this._getSpan(e))},_Tokenizer.prototype._attemptCharCodeUntilFn=function(t){for(;!t(this._peek);)this._advance()},_Tokenizer.prototype._requireCharCodeUntilFn=function(t,e){var n=this._getLocation();if(this._attemptCharCodeUntilFn(t),this._index-n.offset<e)throw this._createError(_unexpectedCharacterErrorMsg(this._peek),this._getSpan(n,n))},_Tokenizer.prototype._attemptUntilChar=function(t){for(;this._peek!==t;)this._advance()},_Tokenizer.prototype._readChar=function(t){if(t&&this._peek===r.B)return this._decodeEntity();var e=this._index;return this._advance(),this._input[e]},_Tokenizer.prototype._decodeEntity=function(){var t=this._getLocation();if(this._advance(),!this._attemptCharCode(r.p)){var e=this._savePosition();if(this._attemptCharCodeUntilFn(isNamedEntityEnd),this._peek!=r.m)return this._restorePosition(e),"&";this._advance();var n=this._input.substring(t.offset+1,this._index-1),i=a.a[n];if(!i)throw this._createError(_unknownEntityErrorMsg(n),this._getSpan(t));return i}var o=this._attemptCharCode(r._1)||this._attemptCharCode(r._2),s=this._getLocation().offset;if(this._attemptCharCodeUntilFn(isDigitEntityEnd),this._peek!=r.m)throw this._createError(_unexpectedCharacterErrorMsg(this._peek),this._getSpan());this._advance();var c=this._input.substring(s,this._index-1);try{var l=parseInt(c,o?16:10);return String.fromCharCode(l)}catch(u){var p=this._input.substring(t.offset+1,this._index-1);throw this._createError(_unknownEntityErrorMsg(p),this._getSpan(t))}},_Tokenizer.prototype._consumeRawText=function(t,e,n){var r,i=this._getLocation();this._beginToken(t?s.ESCAPABLE_RAW_TEXT:s.RAW_TEXT,i);for(var o=[];;){if(r=this._getLocation(),this._attemptCharCode(e)&&n())break;for(this._index>r.offset&&o.push(this._input.substring(r.offset,this._index));this._peek!==e;)o.push(this._readChar(t))}return this._endToken([this._processCarriageReturns(o.join(""))],r)},_Tokenizer.prototype._consumeComment=function(t){var e=this;this._beginToken(s.COMMENT_START,t),this._requireCharCode(r.r),this._endToken([]);var n=this._consumeRawText(!1,r.r,function(){return e._attemptStr("->")});this._beginToken(s.COMMENT_END,n.sourceSpan.end),this._endToken([])},_Tokenizer.prototype._consumeCdata=function(t){var e=this;this._beginToken(s.CDATA_START,t),this._requireStr("CDATA["),this._endToken([]);var n=this._consumeRawText(!1,r.j,function(){return e._attemptStr("]>")});this._beginToken(s.CDATA_END,n.sourceSpan.end),this._endToken([])},_Tokenizer.prototype._consumeDocType=function(t){this._beginToken(s.DOC_TYPE,t),this._attemptUntilChar(r.y),this._advance(),this._endToken([this._input.substring(t.offset+2,this._index-1)])},_Tokenizer.prototype._consumePrefixAndName=function(){for(var t=this._index,e=null;this._peek!==r.l&&!isPrefixEnd(this._peek);)this._advance();var n;this._peek===r.l?(this._advance(),e=this._input.substring(t,this._index-1),n=this._index):n=t,this._requireCharCodeUntilFn(isNameEnd,this._index===n?1:0);var i=this._input.substring(n,this._index);return[e,i]},_Tokenizer.prototype._consumeTagOpen=function(t){var e,n,i=this._savePosition();try{if(!r.N(this._peek))throw this._createError(_unexpectedCharacterErrorMsg(this._peek),this._getSpan());var o=this._index;for(this._consumeTagOpenStart(t),e=this._input.substring(o,this._index),n=e.toLowerCase(),this._attemptCharCodeUntilFn(isNotWhitespace);this._peek!==r.t&&this._peek!==r.y;)this._consumeAttributeName(),this._attemptCharCodeUntilFn(isNotWhitespace),this._attemptCharCode(r.z)&&(this._attemptCharCodeUntilFn(isNotWhitespace),this._consumeAttributeValue()),this._attemptCharCodeUntilFn(isNotWhitespace);this._consumeTagOpenEnd()}catch(c){if(c instanceof f)return this._restorePosition(i),this._beginToken(s.TEXT,t),void this._endToken(["<"]);throw c}var l=this._getTagDefinition(e).contentType;l===a.b.RAW_TEXT?this._consumeRawTextWithTagClose(n,!1):l===a.b.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(n,!0)},_Tokenizer.prototype._consumeRawTextWithTagClose=function(t,e){var n=this,i=this._consumeRawText(e,r.x,function(){return!!n._attemptCharCode(r.t)&&(n._attemptCharCodeUntilFn(isNotWhitespace),!!n._attemptStrCaseInsensitive(t)&&(n._attemptCharCodeUntilFn(isNotWhitespace),n._attemptCharCode(r.y)))});this._beginToken(s.TAG_CLOSE,i.sourceSpan.end),this._endToken([null,t])},_Tokenizer.prototype._consumeTagOpenStart=function(t){this._beginToken(s.TAG_OPEN_START,t);var e=this._consumePrefixAndName();this._endToken(e)},_Tokenizer.prototype._consumeAttributeName=function(){this._beginToken(s.ATTR_NAME);var t=this._consumePrefixAndName();this._endToken(t)},_Tokenizer.prototype._consumeAttributeValue=function(){this._beginToken(s.ATTR_VALUE);var t;if(this._peek===r.n||this._peek===r.o){var e=this._peek;this._advance();for(var n=[];this._peek!==e;)n.push(this._readChar(!0));t=n.join(""),this._advance()}else{var i=this._index;this._requireCharCodeUntilFn(isNameEnd,1),t=this._input.substring(i,this._index)}this._endToken([this._processCarriageReturns(t)])},_Tokenizer.prototype._consumeTagOpenEnd=function(){var t=this._attemptCharCode(r.t)?s.TAG_OPEN_END_VOID:s.TAG_OPEN_END;this._beginToken(t),this._requireCharCode(r.y),this._endToken([])},_Tokenizer.prototype._consumeTagClose=function(t){this._beginToken(s.TAG_CLOSE,t),this._attemptCharCodeUntilFn(isNotWhitespace);var e=this._consumePrefixAndName();this._attemptCharCodeUntilFn(isNotWhitespace),this._requireCharCode(r.y),this._endToken(e)},_Tokenizer.prototype._consumeExpansionFormStart=function(){this._beginToken(s.EXPANSION_FORM_START,this._getLocation()),this._requireCharCode(r.g),this._endToken([]),this._expansionCaseStack.push(s.EXPANSION_FORM_START),this._beginToken(s.RAW_TEXT,this._getLocation());var t=this._readUntil(r.k);this._endToken([t],this._getLocation()),this._requireCharCode(r.k),this._attemptCharCodeUntilFn(isNotWhitespace),this._beginToken(s.RAW_TEXT,this._getLocation());var e=this._readUntil(r.k);this._endToken([e],this._getLocation()),this._requireCharCode(r.k),this._attemptCharCodeUntilFn(isNotWhitespace)},_Tokenizer.prototype._consumeExpansionCaseStart=function(){this._beginToken(s.EXPANSION_CASE_VALUE,this._getLocation());var t=this._readUntil(r.g).trim();this._endToken([t],this._getLocation()),this._attemptCharCodeUntilFn(isNotWhitespace),this._beginToken(s.EXPANSION_CASE_EXP_START,this._getLocation()),this._requireCharCode(r.g),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(isNotWhitespace),this._expansionCaseStack.push(s.EXPANSION_CASE_EXP_START)},_Tokenizer.prototype._consumeExpansionCaseEnd=function(){this._beginToken(s.EXPANSION_CASE_EXP_END,this._getLocation()),this._requireCharCode(r.h),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(isNotWhitespace),this._expansionCaseStack.pop()},_Tokenizer.prototype._consumeExpansionFormEnd=function(){this._beginToken(s.EXPANSION_FORM_END,this._getLocation()),this._requireCharCode(r.h),this._endToken([]),this._expansionCaseStack.pop()},_Tokenizer.prototype._consumeText=function(){var t=this._getLocation();this._beginToken(s.TEXT,t);var e=[];do this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(e.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._attemptStr(this._interpolationConfig.end)&&this._inInterpolation?(e.push(this._interpolationConfig.end),this._inInterpolation=!1):e.push(this._readChar(!0));while(!this._isTextEnd());this._endToken([this._processCarriageReturns(e.join(""))])},_Tokenizer.prototype._isTextEnd=function(){if(this._peek===r.x||this._peek===r.a)return!0;if(this._tokenizeIcu&&!this._inInterpolation){if(isExpansionFormStart(this._input,this._index,this._interpolationConfig))return!0;if(this._peek===r.h&&this._isInExpansionCase())return!0}return!1},_Tokenizer.prototype._savePosition=function(){return[this._peek,this._index,this._column,this._line,this.tokens.length]},_Tokenizer.prototype._readUntil=function(t){var e=this._index;return this._attemptUntilChar(t),this._input.substring(e,this._index)},_Tokenizer.prototype._restorePosition=function(t){this._peek=t[0],this._index=t[1],this._column=t[2],this._line=t[3];var e=t[4];e<this.tokens.length&&(this.tokens=this.tokens.slice(0,e))},_Tokenizer.prototype._isInExpansionCase=function(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===s.EXPANSION_CASE_EXP_START},_Tokenizer.prototype._isInExpansionForm=function(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===s.EXPANSION_FORM_START},_Tokenizer}()},function(t,e,n){"use strict";function getXmlTagDefinition(t){return o}var r=n(67);e.a=getXmlTagDefinition;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function XmlTagDefinition(){this.closedByParent=!1,this.contentType=r.b.PARSABLE_DATA,this.isVoid=!1,this.ignoreFirstLf=!1,this.canSelfClose=!0}return XmlTagDefinition.prototype.requireExtraParent=function(t){return!1},XmlTagDefinition.prototype.isClosedByChild=function(t){return!1},XmlTagDefinition}(),o=new i},function(t,e,n){"use strict";function _resolveViewStatements(t){return t.dependencies.forEach(function(t){if(t instanceof s.a){var e=t;e.placeholder.moduleUrl=_ngfactoryModuleUrl(e.comp.moduleUrl)}else if(t instanceof s.b){var n=t;n.placeholder.name=_componentFactoryName(n.comp),n.placeholder.moduleUrl=_ngfactoryModuleUrl(n.comp.moduleUrl)}}),t.statements}function _resolveStyleStatements(t,e){return t.dependencies.forEach(function(t){t.valuePlaceholder.moduleUrl=_stylesModuleUrl(t.moduleUrl,t.isShimmed,e)}),t.statements}function _ngfactoryModuleUrl(t){var e=_splitTypescriptSuffix(t);return e[0]+".ngfactory"+e[1]}function _componentFactoryName(t){return t.name+"NgFactory"}function _stylesModuleUrl(t,e,n){return e?t+".shim"+n:""+t+n}function _assertComponent(t){if(!t.isComponent)throw new Error("Could not compile '"+t.type.name+"' because it is not a component.")}function _splitTypescriptSuffix(t){if(/\.d\.ts$/.test(t))return[t.substring(0,t.length-5),".ts"];var e=t.lastIndexOf(".");return e!==-1?[t.substring(0,e),t.substring(e)]:[t,""]}var r=n(20),i=n(6),o=n(16),a=n(7),s=n(106),c=function(){function SourceModule(t,e){this.moduleUrl=t,this.source=e}return SourceModule}(),l=function(){function NgModulesSummary(t){this.ngModuleByComponent=t}return NgModulesSummary}();(function(){function OfflineCompiler(t,e,n,r,i,o,a,s,c){this._metadataResolver=t,this._directiveNormalizer=e,this._templateParser=n,this._styleCompiler=r,this._viewCompiler=i,this._ngModuleCompiler=o,this._outputEmitter=a,this._localeId=s,this._translationFormat=c}return OfflineCompiler.prototype.analyzeModules=function(t){var e=this,n=new Map;return t.forEach(function(t){var r=e._metadataResolver.getNgModuleMetadata(t);r.declaredDirectives.forEach(function(t){t.isComponent&&n.set(t.type.reference,r)})}),new l(n)},OfflineCompiler.prototype.clearCache=function(){this._directiveNormalizer.clearCache(),this._metadataResolver.clearCache()},OfflineCompiler.prototype.compile=function(t,e,n,r){var i=this,o=_splitTypescriptSuffix(t)[1],a=[],s=[],c=[];return s.push.apply(s,r.map(function(t){return i._compileModule(t,a)})),Promise.all(n.map(function(t){var n=i._metadataResolver.getDirectiveMetadata(t),r=e.ngModuleByComponent.get(t);if(!r)throw new Error("Cannot determine the module for component "+n.type.name+"!");return Promise.all([n].concat(r.transitiveModule.directives).map(function(t){return i._directiveNormalizer.normalizeDirective(t).asyncResult})).then(function(t){var e=t[0],n=t.slice(1);_assertComponent(e);var l=i._styleCompiler.compileComponent(e);l.externalStylesheets.forEach(function(t){c.push(i._codgenStyles(t,o))}),s.push(i._compileComponentFactory(e,o,a)),s.push(i._compileComponent(e,n,r.transitiveModule.pipes,r.schemas,l.componentStylesheet,o,a))})})).then(function(){return a.length>0&&c.unshift(i._codegenSourceModule(_ngfactoryModuleUrl(t),a,s)),c})},OfflineCompiler.prototype._compileModule=function(t,e){var i=this._metadataResolver.getNgModuleMetadata(t),a=this._ngModuleCompiler.compile(i,[new r.d({token:n.i(o.a)(o.b.LOCALE_ID),useValue:this._localeId}),new r.d({token:n.i(o.a)(o.b.TRANSLATIONS_FORMAT),useValue:this._translationFormat})]);return a.dependencies.forEach(function(t){t.placeholder.name=_componentFactoryName(t.comp),t.placeholder.moduleUrl=_ngfactoryModuleUrl(t.comp.moduleUrl)}),e.push.apply(e,a.statements),a.ngModuleFactoryVar},OfflineCompiler.prototype._compileComponentFactory=function(t,e,i){var s=n.i(r.n)(t),c=this._compileComponent(s,[t],[],[],null,e,i),l=_componentFactoryName(t.type);return i.push(a.e(l).set(a.b(n.i(o.d)(o.b.ComponentFactory),[a.c(t.type)]).instantiate([a.a(t.selector),a.e(c),a.b(t.type)],a.c(n.i(o.d)(o.b.ComponentFactory),[a.c(t.type)],[a.d.Const]))).toDeclStmt(null,[a.u.Final])),l},OfflineCompiler.prototype._compileComponent=function(t,e,n,r,o,s,c){var l=this._templateParser.parse(t,t.template.template,e,n,r,t.type.name),u=o?a.e(o.stylesVar):a.g([]),p=this._viewCompiler.compileComponent(t,l,u,n);return o&&i.a.addAll(c,_resolveStyleStatements(o,s)),i.a.addAll(c,_resolveViewStatements(p)),p.viewFactoryVar},OfflineCompiler.prototype._codgenStyles=function(t,e){return _resolveStyleStatements(t,e),this._codegenSourceModule(_stylesModuleUrl(t.meta.moduleUrl,t.isShimmed,e),t.statements,[t.stylesVar])},OfflineCompiler.prototype._codegenSourceModule=function(t,e,n){return new c(t,this._outputEmitter.emitStatements(t,e,n))},OfflineCompiler})()},function(t,e,n){"use strict";var r=n(3),i=n(156),o=n(7);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s=function(t){function AbstractJsEmitterVisitor(){t.call(this,!1)}return a(AbstractJsEmitterVisitor,t),AbstractJsEmitterVisitor.prototype.visitDeclareClassStmt=function(t,e){var i=this;return e.pushClass(t),this._visitClassConstructor(t,e),n.i(r.a)(t.parent)&&(e.print(t.name+".prototype = Object.create("),t.parent.visitExpression(this,e),e.println(".prototype);")),t.getters.forEach(function(n){return i._visitClassGetter(t,n,e)}),t.methods.forEach(function(n){return i._visitClassMethod(t,n,e)}),e.popClass(),null},AbstractJsEmitterVisitor.prototype._visitClassConstructor=function(t,e){e.print("function "+t.name+"("),n.i(r.a)(t.constructorMethod)&&this._visitParams(t.constructorMethod.params,e),e.println(") {"),e.incIndent(),n.i(r.a)(t.constructorMethod)&&t.constructorMethod.body.length>0&&(e.println("var self = this;"),this.visitAllStatements(t.constructorMethod.body,e)),e.decIndent(),e.println("}")},AbstractJsEmitterVisitor.prototype._visitClassGetter=function(t,e,n){n.println("Object.defineProperty("+t.name+".prototype, '"+e.name+"', { get: function() {"),n.incIndent(),e.body.length>0&&(n.println("var self = this;"),this.visitAllStatements(e.body,n)),n.decIndent(),n.println("}});")},AbstractJsEmitterVisitor.prototype._visitClassMethod=function(t,e,n){n.print(t.name+".prototype."+e.name+" = function("),this._visitParams(e.params,n),n.println(") {"),n.incIndent(),e.body.length>0&&(n.println("var self = this;"),this.visitAllStatements(e.body,n)),n.decIndent(),n.println("};")},AbstractJsEmitterVisitor.prototype.visitReadVarExpr=function(e,n){if(e.builtin===o.O.This)n.print("self");else{if(e.builtin===o.O.Super)throw new Error("'super' needs to be handled at a parent ast node, not at the variable level!");t.prototype.visitReadVarExpr.call(this,e,n)}return null},AbstractJsEmitterVisitor.prototype.visitDeclareVarStmt=function(t,e){return e.print("var "+t.name+" = "),t.value.visitExpression(this,e),e.println(";"),null},AbstractJsEmitterVisitor.prototype.visitCastExpr=function(t,e){return t.value.visitExpression(this,e),null},AbstractJsEmitterVisitor.prototype.visitInvokeFunctionExpr=function(e,n){var r=e.fn;return r instanceof o.B&&r.builtin===o.O.Super?(n.currentClass.parent.visitExpression(this,n),n.print(".call(this"),e.args.length>0&&(n.print(", "),this.visitAllExpressions(e.args,n,",")),n.print(")")):t.prototype.visitInvokeFunctionExpr.call(this,e,n),null},AbstractJsEmitterVisitor.prototype.visitFunctionExpr=function(t,e){return e.print("function("),this._visitParams(t.params,e),e.println(") {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.print("}"),null},AbstractJsEmitterVisitor.prototype.visitDeclareFunctionStmt=function(t,e){return e.print("function "+t.name+"("),this._visitParams(t.params,e),e.println(") {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.println("}"),null},AbstractJsEmitterVisitor.prototype.visitTryCatchStmt=function(t,e){e.println("try {"),e.incIndent(),this.visitAllStatements(t.bodyStmts,e),e.decIndent(),e.println("} catch ("+i.b.name+") {"),e.incIndent();var n=[i.c.set(i.b.prop("stack")).toDeclStmt(null,[o.u.Final])].concat(t.catchStmts);return this.visitAllStatements(n,e),e.decIndent(),e.println("}"),null},AbstractJsEmitterVisitor.prototype._visitParams=function(t,e){this.visitAllObjects(function(t){return e.print(t.name)},t,e,",")},AbstractJsEmitterVisitor.prototype.getBuiltinMethodName=function(t){var e;switch(t){case o.r.ConcatArray:e="concat";break;case o.r.SubscribeObservable:e="subscribe";break;case o.r.Bind:e="bind";break;default:throw new Error("Unknown builtin method: "+t)}return e},AbstractJsEmitterVisitor}(i.d)},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function interpretStatements(t,e){var r=t.concat([new o.t(o.e(e))]),a=new s(null,null,null,new Map),c=new l,u=c.visitAllStatements(r,a);return n.i(i.a)(u)?u.value:null}function _executeFunctionStatements(t,e,r,o,a){for(var s=o.createChildWihtLocalVars(),c=0;c<t.length;c++)s.vars.set(t[c],e[c]);var l=a.visitAllStatements(r,s);return n.i(i.a)(l)?l.value:null}function createDynamicClass(t,e,n){var r={};t.getters.forEach(function(i){r[i.name]={configurable:!1,get:function(){var r=new s(e,this,t.name,e.vars);return _executeFunctionStatements([],[],i.body,r,n)}}}),t.methods.forEach(function(i){var o=i.params.map(function(t){return t.name});r[i.name]={writable:!1,configurable:!1,value:function(){for(var r=[],a=0;a<arguments.length;a++)r[a-0]=arguments[a];var c=new s(e,this,t.name,e.vars);return _executeFunctionStatements(o,r,i.body,c,n)}}});var i=t.constructorMethod.params.map(function(t){return t.name}),o=function(){for(var r=this,o=[],a=0;a<arguments.length;a++)o[a-0]=arguments[a];var c=new s(e,this,t.name,e.vars);t.fields.forEach(function(t){r[t.name]=void 0}),_executeFunctionStatements(i,o,t.constructorMethod.body,c,n)},a=t.parent.visitExpression(n,e);return o.prototype=Object.create(a.prototype,r),o}function _declareFn(t,e,n,r){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o-0]=arguments[o];return _executeFunctionStatements(t,i,e,n,r)}}var r=n(6),i=n(3),o=n(7),a=n(280);e.a=interpretStatements;var s=function(){function _ExecutionContext(t,e,n,r){this.parent=t,this.instance=e,this.className=n,this.vars=r}return _ExecutionContext.prototype.createChildWihtLocalVars=function(){return new _ExecutionContext(this,this.instance,this.className,new Map)},_ExecutionContext}(),c=function(){function ReturnValue(t){this.value=t}return ReturnValue}(),l=function(){function StatementInterpreter(){}return StatementInterpreter.prototype.debugAst=function(t){return n.i(a.a)(t)},StatementInterpreter.prototype.visitDeclareVarStmt=function(t,e){return e.vars.set(t.name,t.value.visitExpression(this,e)),null},StatementInterpreter.prototype.visitWriteVarExpr=function(t,e){for(var n=t.value.visitExpression(this,e),r=e;null!=r;){if(r.vars.has(t.name))return r.vars.set(t.name,n),n;r=r.parent}throw new Error("Not declared variable "+t.name)},StatementInterpreter.prototype.visitReadVarExpr=function(t,e){var r=t.name;if(n.i(i.a)(t.builtin))switch(t.builtin){case o.O.Super:return e.instance.__proto__;case o.O.This:return e.instance;case o.O.CatchError:r=u;break;case o.O.CatchStack:r=p;break;default:throw new Error("Unknown builtin variable "+t.builtin)}for(var a=e;null!=a;){if(a.vars.has(r))return a.vars.get(r);a=a.parent}throw new Error("Not declared variable "+r)},StatementInterpreter.prototype.visitWriteKeyExpr=function(t,e){var n=t.receiver.visitExpression(this,e),r=t.index.visitExpression(this,e),i=t.value.visitExpression(this,e);return n[r]=i,i},StatementInterpreter.prototype.visitWritePropExpr=function(t,e){var n=t.receiver.visitExpression(this,e),r=t.value.visitExpression(this,e);return n[t.name]=r,r},StatementInterpreter.prototype.visitInvokeMethodExpr=function(t,e){var a,s=t.receiver.visitExpression(this,e),c=this.visitAllExpressions(t.args,e);if(n.i(i.a)(t.builtin))switch(t.builtin){case o.r.ConcatArray:a=r.a.concat(s,c[0]);break;case o.r.SubscribeObservable:a=s.subscribe({next:c[0]});break;case o.r.Bind:a=s.bind(c[0]);break;default:throw new Error("Unknown builtin method "+t.builtin)}else a=s[t.name].apply(s,c);return a},StatementInterpreter.prototype.visitInvokeFunctionExpr=function(t,e){var n=this.visitAllExpressions(t.args,e),r=t.fn;if(r instanceof o.B&&r.builtin===o.O.Super)return e.instance.constructor.prototype.constructor.apply(e.instance,n),null;var i=t.fn.visitExpression(this,e);return i.apply(null,n)},StatementInterpreter.prototype.visitReturnStmt=function(t,e){return new c(t.value.visitExpression(this,e))},StatementInterpreter.prototype.visitDeclareClassStmt=function(t,e){var n=createDynamicClass(t,e,this);return e.vars.set(t.name,n),null},StatementInterpreter.prototype.visitExpressionStmt=function(t,e){return t.expr.visitExpression(this,e)},StatementInterpreter.prototype.visitIfStmt=function(t,e){var r=t.condition.visitExpression(this,e);return r?this.visitAllStatements(t.trueCase,e):n.i(i.a)(t.falseCase)?this.visitAllStatements(t.falseCase,e):null},StatementInterpreter.prototype.visitTryCatchStmt=function(t,e){try{return this.visitAllStatements(t.bodyStmts,e)}catch(n){var r=e.createChildWihtLocalVars();return r.vars.set(u,n),r.vars.set(p,n.stack),this.visitAllStatements(t.catchStmts,r)}},StatementInterpreter.prototype.visitThrowStmt=function(t,e){throw t.error.visitExpression(this,e)},StatementInterpreter.prototype.visitCommentStmt=function(t,e){return null},StatementInterpreter.prototype.visitInstantiateExpr=function(t,e){var n=this.visitAllExpressions(t.args,e),r=t.classExpr.visitExpression(this,e);return new(r.bind.apply(r,[void 0].concat(n)))},StatementInterpreter.prototype.visitLiteralExpr=function(t,e){return t.value},StatementInterpreter.prototype.visitExternalExpr=function(t,e){return t.value.reference},StatementInterpreter.prototype.visitConditionalExpr=function(t,e){return t.condition.visitExpression(this,e)?t.trueCase.visitExpression(this,e):n.i(i.a)(t.falseCase)?t.falseCase.visitExpression(this,e):null},StatementInterpreter.prototype.visitNotExpr=function(t,e){return!t.condition.visitExpression(this,e)},StatementInterpreter.prototype.visitCastExpr=function(t,e){return t.value.visitExpression(this,e)},StatementInterpreter.prototype.visitFunctionExpr=function(t,e){var n=t.params.map(function(t){return t.name});return _declareFn(n,t.statements,e,this)},StatementInterpreter.prototype.visitDeclareFunctionStmt=function(t,e){var n=t.params.map(function(t){return t.name});return e.vars.set(t.name,_declareFn(n,t.statements,e,this)),null},StatementInterpreter.prototype.visitBinaryOperatorExpr=function(t,e){var n=this,r=function(){return t.lhs.visitExpression(n,e)},i=function(){return t.rhs.visitExpression(n,e)};switch(t.operator){case o.y.Equals:return r()==i();case o.y.Identical:return r()===i();case o.y.NotEquals:return r()!=i();case o.y.NotIdentical:return r()!==i();case o.y.And:return r()&&i();case o.y.Or:return r()||i();case o.y.Plus:return r()+i();case o.y.Minus:return r()-i();case o.y.Divide:return r()/i();case o.y.Multiply:return r()*i();case o.y.Modulo:return r()%i();case o.y.Lower:return r()<i();case o.y.LowerEquals:return r()<=i();case o.y.Bigger:return r()>i();case o.y.BiggerEquals:return r()>=i();default:throw new Error("Unknown operator "+t.operator)}},StatementInterpreter.prototype.visitReadPropExpr=function(t,e){var n,r=t.receiver.visitExpression(this,e);return n=r[t.name]},StatementInterpreter.prototype.visitReadKeyExpr=function(t,e){var n=t.receiver.visitExpression(this,e),r=t.index.visitExpression(this,e);return n[r]},StatementInterpreter.prototype.visitLiteralArrayExpr=function(t,e){return this.visitAllExpressions(t.entries,e)},StatementInterpreter.prototype.visitLiteralMapExpr=function(t,e){var n=this,r={};return t.entries.forEach(function(t){return r[t[0]]=t[1].visitExpression(n,e)}),r},StatementInterpreter.prototype.visitAllExpressions=function(t,e){var n=this;return t.map(function(t){return t.visitExpression(n,e)})},StatementInterpreter.prototype.visitAllStatements=function(t,e){for(var n=0;n<t.length;n++){var r=t[n],i=r.visitStatement(this,e);if(i instanceof c)return i}return null},StatementInterpreter}(),u="error",p="stack"},function(t,e,n){"use strict";function jitStatements(t,e,i){var a=new c,s=o.a.createRoot([i]);return a.visitAllStatements(e,s),n.i(r.r)(t,i,s.toSource(),a.getArgs())}var r=n(3),i=n(23),o=n(156),a=n(456);e.a=jitStatements;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},c=function(t){function JitEmitterVisitor(){t.apply(this,arguments),this._evalArgNames=[],this._evalArgValues=[]}return s(JitEmitterVisitor,t),JitEmitterVisitor.prototype.getArgs=function(){for(var t={},e=0;e<this._evalArgNames.length;e++)t[this._evalArgNames[e]]=this._evalArgValues[e];return t},JitEmitterVisitor.prototype.visitExternalExpr=function(t,e){var o=t.value.reference,a=this._evalArgValues.indexOf(o);if(a===-1){a=this._evalArgValues.length,this._evalArgValues.push(o);var s=n.i(r.a)(t.value.name)?n.i(i.a)(t.value.name):"val";this._evalArgNames.push(n.i(i.a)("jit_"+s+a))}return e.print(this._evalArgNames[a]),null},JitEmitterVisitor}(a.a)},function(t,e,n){"use strict";n.d(e,"b",function(){return i}),n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=/asset:([^\/]+)\/([^\/]+)\/(.+)/,i=function(){function ImportGenerator(){}return ImportGenerator.parseAssetUrl=function(t){return o.parse(t)},ImportGenerator}(),o=function(){function AssetUrl(t,e,n){this.packageName=t,this.firstLevelDir=e,this.modulePath=n}return AssetUrl.parse=function(t,e){void 0===e&&(e=!0);var n=t.match(r);if(null!==n)return new AssetUrl(n[1],n[2],n[3]);if(e)return null;throw new Error("Url "+t+" is not a valid asset: url")},AssetUrl}()},function(t,e,n){"use strict";var r=n(148),i=n(102),o=n(103),a=n(153),s=n(104),c=n(40),l=n(154),u=n(459),p=n(280),d=n(41),f=n(284),h=n(159),m=n(160),v=n(105),g=n(106);({SelectorMatcher:h.b,CssSelector:h.a,AssetUrl:u.a,ImportGenerator:u.b,CompileMetadataResolver:a.a,HtmlParser:s.b,InterpolationConfig:c.b,DirectiveNormalizer:r.a,Lexer:i.c,Parser:o.a,ParseLocation:d.c,ParseError:d.a,ParseErrorLevel:d.e,ParseSourceFile:d.b,ParseSourceSpan:d.d,TemplateParser:v.a,DomElementSchemaRegistry:f.a,StyleCompiler:m.a,ViewCompiler:g.c,NgModuleCompiler:l.a,TypeScriptEmitter:p.b})},function(t,e,n){"use strict";function registerContext(t,e){for(var n=0,r=e;n<r.length;n++){var o=r[n];i[o.toLowerCase()]=t}}var r=n(0);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i={};registerContext(r.SecurityContext.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]),registerContext(r.SecurityContext.STYLE,["*|style"]),registerContext(r.SecurityContext.URL,["*|formAction","area|href","area|ping","audio|src","a|href","a|ping","blockquote|cite","body|background","del|cite","form|action","img|src","img|srcset","input|src","ins|cite","q|cite","source|src","source|srcset","track|src","video|poster","video|src"]),registerContext(r.SecurityContext.RESOURCE_URL,["applet|code","applet|codebase","base|href","embed|src","frame|src","head|profile","html|manifest","iframe|src","link|href","media|src","object|codebase","object|data","script|src"])},function(t,e,n){"use strict";function stripComments(t){return r.g.replaceAllMapped(t,_,function(t){return""})}function extractSourceMappingUrl(t){var e=t.match(w);return e?e[1]:""}function processRules(t,e){var i=escapeBlocks(t),o=0;return r.g.replaceAllMapped(i.escapedString,x,function(t){var a=t[2],s="",c=t[4],l="";n.i(r.a)(t[4])&&t[4].startsWith("{"+E)&&(s=i.blocks[o++],c=t[4].substring(E.length+1),l="{");var u=e(new P(a,s));return""+t[1]+u.selector+t[3]+l+u.content+c})}function escapeBlocks(t){for(var e=r.g.split(t,C),n=[],i=[],o=0,a=[],s=0;s<e.length;s++){var c=e[s];c==k&&o--,o>0?a.push(c):(a.length>0&&(i.push(a.join("")),n.push(E),a=[]),n.push(c)),c==S&&o++}return a.length>0&&(i.push(a.join("")),n.push(E)),new A(n.join(""),i)}var r=n(3);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function ShadowCss(){this.strictStyling=!0}return ShadowCss.prototype.shimCssText=function(t,e,n){void 0===n&&(n="");var r=extractSourceMappingUrl(t);return t=stripComments(t),t=this._insertDirectives(t),this._scopeCssText(t,e,n)+r},ShadowCss.prototype._insertDirectives=function(t){return t=this._insertPolyfillDirectivesInCssText(t),this._insertPolyfillRulesInCssText(t)},ShadowCss.prototype._insertPolyfillDirectivesInCssText=function(t){return r.g.replaceAllMapped(t,o,function(t){return t[1]+"{"})},ShadowCss.prototype._insertPolyfillRulesInCssText=function(t){return r.g.replaceAllMapped(t,a,function(t){var e=t[0];return e=r.g.replace(e,t[1],""),e=r.g.replace(e,t[2],""),t[3]+e})},ShadowCss.prototype._scopeCssText=function(t,e,i){var o=this._extractUnscopedRulesFromCssText(t);return t=this._insertPolyfillHostInCssText(t),t=this._convertColonHost(t),t=this._convertColonHostContext(t),t=this._convertShadowDOMSelectors(t),n.i(r.a)(e)&&(t=this._scopeSelectors(t,e,i)),t=t+"\n"+o,t.trim()},ShadowCss.prototype._extractUnscopedRulesFromCssText=function(t){var e,n="";for(s.lastIndex=0;null!==(e=s.exec(t));){var i=e[0];i=r.g.replace(i,e[2],""),i=r.g.replace(i,e[1],e[3]),n+=i+"\n\n"}return n},ShadowCss.prototype._convertColonHost=function(t){return this._convertColonRule(t,p,this._colonHostPartReplacer)},ShadowCss.prototype._convertColonHostContext=function(t){return this._convertColonRule(t,d,this._colonHostContextPartReplacer)},ShadowCss.prototype._convertColonRule=function(t,e,i){return r.g.replaceAllMapped(t,e,function(t){if(n.i(r.a)(t[2])){for(var e=t[2].split(","),o=[],a=0;a<e.length;a++){var s=e[a];if(n.i(r.c)(s))break;s=s.trim(),o.push(i(f,s,t[3]))}return o.join(",")}return f+t[3]})},ShadowCss.prototype._colonHostContextPartReplacer=function(t,e,n){return r.g.contains(e,c)?this._colonHostPartReplacer(t,e,n):t+e+n+", "+e+" "+t+n},ShadowCss.prototype._colonHostPartReplacer=function(t,e,n){return t+r.g.replace(e,c,"")+n},ShadowCss.prototype._convertShadowDOMSelectors=function(t){return h.reduce(function(t,e){return r.g.replaceAll(t,e," ")},t)},ShadowCss.prototype._scopeSelectors=function(t,e,n){var r=this;return processRules(t,function(t){var i=t.selector,o=t.content;return"@"!=t.selector[0]||t.selector.startsWith("@page")?i=r._scopeSelector(t.selector,e,n,r.strictStyling):(t.selector.startsWith("@media")||t.selector.startsWith("@supports"))&&(o=r._scopeSelectors(t.content,e,n)),new P(i,o)})},ShadowCss.prototype._scopeSelector=function(t,e,n,r){var i=this;return t.split(",").map(function(t){return t.trim().split(m)}).map(function(t){var o=t[0],a=t.slice(1),s=function(t){return i._selectorNeedsScoping(t,e)?r?i._applyStrictSelectorScope(t,e,n):i._applySelectorScope(t,e,n):t};return[s(o)].concat(a).join(" ")}).join(", ")},ShadowCss.prototype._selectorNeedsScoping=function(t,e){var n=this._makeScopeMatcher(e);return!n.test(t)},ShadowCss.prototype._makeScopeMatcher=function(t){var e=/\[/g,n=/\]/g;return t=r.g.replaceAll(t,e,"\\["),t=r.g.replaceAll(t,n,"\\]"),new RegExp("^("+t+")"+v,"m")},ShadowCss.prototype._applySelectorScope=function(t,e,n){return this._applySimpleSelectorScope(t,e,n)},ShadowCss.prototype._applySimpleSelectorScope=function(t,e,n){if(g.lastIndex=0,g.test(t)){var i=this.strictStyling?"["+n+"]":e;return t=r.g.replace(t,f,i),r.g.replaceAll(t,g,i+" ")}return e+" "+t},ShadowCss.prototype._applyStrictSelectorScope=function(t,e,n){var r=this,i=/\[is=([^\]]*)\]/g;e=e.replace(i,function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return e[0]});for(var o,a="["+e+"]",s=function(t){var i=t.trim();if(0==i.length)return"";if(t.indexOf(f)>-1)i=r._applySimpleSelectorScope(t,e,n);else{var o=t.replace(g,"");if(o.length>0){var s=o.match(/([^:]*)(:*)(.*)/);null!==s&&(i=s[1]+a+s[2]+s[3])}}return i},c=/( |>|\+|~)\s*/g,l=t.indexOf(f),u="",p=0;null!==(o=c.exec(t));){var d=o[1],h=t.slice(p,o.index).trim(),m=p>=l?s(h):h;u+=m+" "+d+" ",p=c.lastIndex}return u+s(t.substring(p))},ShadowCss.prototype._insertPolyfillHostInCssText=function(t){return t.replace(y,l).replace(b,c)},ShadowCss}(),o=/polyfill-next-selector[^}]*content:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim,a=/(polyfill-rule)[^}]*(content:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,s=/(polyfill-unscoped-rule)[^}]*(content:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,c="-shadowcsshost",l="-shadowcsscontext",u=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",p=new RegExp("("+c+u,"gim"),d=new RegExp("("+l+u,"gim"),f=c+"-no-combinator",h=[/::shadow/g,/::content/g,/\/shadow-deep\//g,/\/shadow\//g],m=/(?:>>>)|(?:\/deep\/)/g,v="([>\\s~+[.,{:][\\s\\S]*)?$",g=/-shadowcsshost/gim,b=/:host/gim,y=/:host-context/gim,_=/\/\*\s*[\s\S]*?\*\//g,w=/[\s\S]*(\/\*\s*#\s*sourceMappingURL=[\s\S]+?\*\/)\s*$/,x=/(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g,C=/([{}])/g,S="{",k="}",E="%BLOCK%",P=function(){function CssRule(t,e){this.selector=t,this.content=e}return CssRule}(),A=function(){function StringWithEscapedBlocks(t,e){this.escapedString=t,this.blocks=e}return StringWithEscapedBlocks}()},function(t,e,n){"use strict";function _findPipeMeta(t,e){for(var i=null,o=t.pipeMetas.length-1;o>=0;o--){var a=t.pipeMetas[o];if(a.name==e){i=a;break}}if(n.i(r.c)(i))throw new Error("Illegal state: Could not find pipe "+e+" although the parser should have detected this error!");return i}var r=n(3),i=n(16),o=n(7),a=n(81);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function CompilePipe(t,e){var r=this;this.view=t,this.meta=e,this._purePipeProxyCount=0,this.instance=o.n.prop("_pipe_"+e.name+"_"+t.pipeCount++);var s=this.meta.type.diDeps.map(function(t){return t.token.reference===n.i(i.a)(i.b.ChangeDetectorRef).reference?n.i(a.a)(o.n.prop("ref"),r.view,r.view.componentView):n.i(a.b)(t.token,!1)});this.view.fields.push(new o.s(this.instance.name,o.c(this.meta.type))),this.view.createMethod.resetDebugInfo(null,null),this.view.createMethod.addStmt(o.n.prop(this.instance.name).set(o.b(this.meta.type).instantiate(s)).toStmt())}return CompilePipe.call=function(t,e,i){var o,a=t.componentView,s=_findPipeMeta(a,e);return s.pure?(o=a.purePipes.get(e),n.i(r.c)(o)&&(o=new CompilePipe(a,s),a.purePipes.set(e,o),a.pipes.push(o))):(o=new CompilePipe(t,s),t.pipes.push(o)),o._call(t,i)},Object.defineProperty(CompilePipe.prototype,"pure",{get:function(){return this.meta.pure},enumerable:!0,configurable:!0}),CompilePipe.prototype._call=function(t,e){if(this.meta.pure){var r=o.n.prop(this.instance.name+"_"+this._purePipeProxyCount++),s=n.i(a.a)(this.instance,t,this.view);return n.i(a.c)(s.prop("transform").callMethod(o.r.Bind,[s]),e.length,r,t),o.b(n.i(i.d)(i.b.castByValue)).callFn([r,s.prop("transform")]).callFn(e)}return n.i(a.a)(this.instance,t,this.view).callMethod("transform",e)},CompilePipe}()},function(t,e,n){"use strict";function collectEventListeners(t,e,r){var i=[];return t.forEach(function(t){r.view.bindings.push(new s.a(r,t));var e=d.getOrCreate(r,t.target,t.name,i);e.addAction(t,null,null)}),e.forEach(function(t){var e=r.instances.get(n.i(o.c)(t.directive.type).reference);t.hostEvents.forEach(function(n){r.view.bindings.push(new s.a(r,n));var o=d.getOrCreate(r,n.target,n.name,i);o.addAction(n,t.directive,e)})}),i.forEach(function(t){return t.finishMethod()}),i}function bindDirectiveOutputs(t,e,n){r.b.forEach(t.directive.outputs,function(t,r){n.filter(function(e){return e.eventName==t}).forEach(function(t){t.listenToDirective(e,r)})})}function bindRenderOutputs(t){t.forEach(function(t){return t.listenToRenderer()})}function bindAnimationOutputs(t){t.forEach(function(t){t.listener.listenToAnimation(t.output)})}function convertStmtIntoExpression(t){return t instanceof a.F?t.expr:t instanceof a.t?t.value:null}function santitizeEventName(t){return i.g.replaceAll(t,/[^a-zA-Z_]/g,"_")}var r=n(6),i=n(3),o=n(16),a=n(7),s=n(287),c=n(161),l=n(68),u=n(291);n.d(e,"b",function(){return p}),e.a=collectEventListeners,e.e=bindDirectiveOutputs,e.d=bindRenderOutputs,e.c=bindAnimationOutputs;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var p=function(){function CompileElementAnimationOutput(t,e){this.listener=t,this.output=e}return CompileElementAnimationOutput}(),d=function(){function CompileEventListener(t,e,n,r){this.compileElement=t,this.eventTarget=e,this.eventName=n,this._hasComponentHostListener=!1,this._actionResultExprs=[],this._method=new c.a(t.view),this._methodName="_handle_"+santitizeEventName(n)+"_"+t.nodeIndex+"_"+r,this._eventParam=new a.k(l.b.event.name,a.c(this.compileElement.view.genConfig.renderTypes.renderEvent))}return CompileEventListener.getOrCreate=function(t,e,r,o){var a=o.find(function(t){return t.eventTarget==e&&t.eventName==r});return n.i(i.c)(a)&&(a=new CompileEventListener(t,e,r,o.length),o.push(a)),a},Object.defineProperty(CompileEventListener.prototype,"methodName",{get:function(){return this._methodName},enumerable:!0,configurable:!0}),CompileEventListener.prototype.addAction=function(t,e,r){n.i(i.a)(e)&&e.isComponent&&(this._hasComponentHostListener=!0),this._method.resetDebugInfo(this.compileElement.nodeIndex,t);var o=n.i(i.a)(r)?r:this.compileElement.view.componentContext,s=n.i(u.a)(this.compileElement.view,o,t.handler,this.compileElement.nodeIndex),c=s.length-1;if(c>=0){var l=s[c],p=convertStmtIntoExpression(l),d=a.e("pd_"+this._actionResultExprs.length);this._actionResultExprs.push(d),n.i(i.a)(p)&&(s[c]=d.set(p.cast(a.l).notIdentical(a.a(!1))).toDeclStmt(null,[a.u.Final]))}this._method.addStmts(s)},CompileEventListener.prototype.finishMethod=function(){var t=this._hasComponentHostListener?this.compileElement.appElement.prop("componentView"):a.n,e=a.a(!0);this._actionResultExprs.forEach(function(t){e=e.and(t)});var n=[t.callMethod("markPathToRootAsCheckOnce",[]).toStmt()].concat(this._method.finish()).concat([new a.t(e)]);this.compileElement.view.eventHandlerMethods.push(new a.C(this._methodName,[this._eventParam],n,a.D,[a.u.Private]))},CompileEventListener.prototype.listenToRenderer=function(){var t,e=a.n.callMethod("eventHandler",[a.n.prop(this._methodName).callMethod(a.r.Bind,[a.n])]);t=n.i(i.a)(this.eventTarget)?l.c.renderer.callMethod("listenGlobal",[a.a(this.eventTarget),a.a(this.eventName),e]):l.c.renderer.callMethod("listen",[this.compileElement.renderNode,a.a(this.eventName),e]);var r=a.e("disposable_"+this.compileElement.view.disposables.length);this.compileElement.view.disposables.push(r),this.compileElement.view.createMethod.addStmt(r.set(t).toDeclStmt(a.E,[a.u.Private]))},CompileEventListener.prototype.listenToAnimation=function(t){var e=a.n.callMethod("eventHandler",[a.n.prop(this._methodName).callMethod(a.r.Bind,[a.n])]),r=a.n.callMethod("registerAnimationOutput",[this.compileElement.renderNode,a.b(n.i(o.d)(o.b.AnimationOutput)).instantiate([a.a(t.name),a.a(t.phase)]),e]).toStmt();this.compileElement.view.createMethod.addStmt(r)},CompileEventListener.prototype.listenToDirective=function(t,e){var n=a.e("subscription_"+this.compileElement.view.subscriptions.length);this.compileElement.view.subscriptions.push(n);var r=a.n.callMethod("eventHandler",[a.n.prop(this._methodName).callMethod(a.r.Bind,[a.n])]);this.compileElement.view.createMethod.addStmt(n.set(t.prop(e).callMethod(a.r.SubscribeObservable,[r])).toDeclStmt(null,[a.u.Final]))},CompileEventListener}()},function(t,e,n){"use strict";function bindDirectiveDetectChangesLifecycleCallbacks(t,e,n){var c=n.view,l=c.detectChangesInInputsMethod,u=t.directive.type.lifecycleHooks;u.indexOf(i.W.OnChanges)!==-1&&t.inputs.length>0&&l.addStmt(new r.i(o.d.changes.notIdentical(r.h),[e.callMethod("ngOnChanges",[o.d.changes]).toStmt()])),u.indexOf(i.W.OnInit)!==-1&&l.addStmt(new r.i(a.and(s),[e.callMethod("ngOnInit",[]).toStmt()])),u.indexOf(i.W.DoCheck)!==-1&&l.addStmt(new r.i(s,[e.callMethod("ngDoCheck",[]).toStmt()]))}function bindDirectiveAfterContentLifecycleCallbacks(t,e,n){var o=n.view,s=t.type.lifecycleHooks,c=o.afterContentLifecycleCallbacksMethod;c.resetDebugInfo(n.nodeIndex,n.sourceAst),s.indexOf(i.W.AfterContentInit)!==-1&&c.addStmt(new r.i(a,[e.callMethod("ngAfterContentInit",[]).toStmt()])),s.indexOf(i.W.AfterContentChecked)!==-1&&c.addStmt(e.callMethod("ngAfterContentChecked",[]).toStmt())}function bindDirectiveAfterViewLifecycleCallbacks(t,e,n){var o=n.view,s=t.type.lifecycleHooks,c=o.afterViewLifecycleCallbacksMethod;c.resetDebugInfo(n.nodeIndex,n.sourceAst),s.indexOf(i.W.AfterViewInit)!==-1&&c.addStmt(new r.i(a,[e.callMethod("ngAfterViewInit",[]).toStmt()])),s.indexOf(i.W.AfterViewChecked)!==-1&&c.addStmt(e.callMethod("ngAfterViewChecked",[]).toStmt())}function bindInjectableDestroyLifecycleCallbacks(t,e,n){var r=n.view.destroyMethod;r.resetDebugInfo(n.nodeIndex,n.sourceAst),t.lifecycleHooks.indexOf(i.W.OnDestroy)!==-1&&r.addStmt(e.callMethod("ngOnDestroy",[]).toStmt())}function bindPipeDestroyLifecycleCallbacks(t,e,n){var r=n.destroyMethod;t.type.lifecycleHooks.indexOf(i.W.OnDestroy)!==-1&&r.addStmt(e.callMethod("ngOnDestroy",[]).toStmt())}var r=n(7),i=n(17),o=n(68);e.b=bindDirectiveDetectChangesLifecycleCallbacks,e.c=bindDirectiveAfterContentLifecycleCallbacks,e.d=bindDirectiveAfterViewLifecycleCallbacks,e.e=bindInjectableDestroyLifecycleCallbacks,e.a=bindPipeDestroyLifecycleCallbacks;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=r.n.prop("numberOfChecks").identical(new r.G(0)),s=r.A(o.d.throwOnChange)},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function createBindFieldExpr(t){return a.n.prop("_expr_"+t)}function createCurrValueExpr(t){return a.e("currVal_"+t)}function bind(t,e,r,s,c,l,u,f){var h=n.i(d.b)(t,c,s,p.d.valUnwrapper,f);if(!n.i(i.c)(h.expression)){if(h.temporaryCount)for(var m=0;m<h.temporaryCount;m++)u.addStmt(n.i(d.c)(f,m));if(t.fields.push(new a.s(r.name,null,[a.u.Private])),t.createMethod.addStmt(a.n.prop(r.name).set(a.b(n.i(o.d)(o.b.UNINITIALIZED))).toStmt()),h.needsValueUnwrapper){var v=p.d.valUnwrapper.callMethod("reset",[]).toStmt();u.addStmt(v)}u.addStmt(e.set(h.expression).toDeclStmt(null,[a.u.Final]));var g=a.b(n.i(o.d)(o.b.checkBinding)).callFn([p.d.throwOnChange,r,e]);h.needsValueUnwrapper&&(g=p.d.valUnwrapper.prop("hasWrappedValue").or(g)),u.addStmt(new a.i(g,l.concat([a.n.prop(r.name).set(e).toStmt()])))}}function bindRenderText(t,e,n){var r=n.bindings.length;n.bindings.push(new u.a(e,t));var i=createCurrValueExpr(r),o=createBindFieldExpr(r);n.detectChangesRenderPropertiesMethod.resetDebugInfo(e.nodeIndex,t),bind(n,i,o,t.value,n.componentContext,[a.n.prop("renderer").callMethod("setText",[e.renderNode,i]).toStmt()],n.detectChangesRenderPropertiesMethod,r)}function bindAndWriteToRenderer(t,e,r,l){var p=r.view,d=r.renderNode;t.forEach(function(t){var h=p.bindings.length;p.bindings.push(new u.a(r,t)),p.detectChangesRenderPropertiesMethod.resetDebugInfo(r.nodeIndex,t);var m=createBindFieldExpr(h),v=createCurrValueExpr(h),g=sanitizedValue(t,m),b=sanitizedValue(t,v),y=[];switch(t.type){case c.l.Property:p.genConfig.logBindingUpdate&&y.push(logBindingUpdateStmt(d,t.name,b)),y.push(a.n.prop("renderer").callMethod("setElementProperty",[d,a.a(t.name),b]).toStmt());break;case c.l.Attribute:b=b.isBlank().conditional(a.h,b.callMethod("toString",[])),y.push(a.n.prop("renderer").callMethod("setElementAttribute",[d,a.a(t.name),b]).toStmt());break;case c.l.Class:y.push(a.n.prop("renderer").callMethod("setElementClass",[d,a.a(t.name),b]).toStmt());break;case c.l.Style:var _=b.callMethod("toString",[]);n.i(i.a)(t.unit)&&(_=_.plus(a.a(t.unit))),b=b.isBlank().conditional(a.h,_),y.push(a.n.prop("renderer").callMethod("setElementStyle",[d,a.a(t.name),b]).toStmt());break;case c.l.Animation:var w=t.name,x=a.n;l&&(x=r.appElement.prop("componentView"));var C=x.prop("componentType").prop("animations").key(a.a(w)),S=a.a(s.V),k=a.e("oldRenderVar");y.push(k.set(g).toDeclStmt()),y.push(new a.i(k.equals(a.b(n.i(o.d)(o.b.UNINITIALIZED))),[k.set(S).toStmt()]));var E=a.e("newRenderVar");if(y.push(E.set(b).toDeclStmt()),y.push(new a.i(E.equals(a.b(n.i(o.d)(o.b.UNINITIALIZED))),[E.set(S).toStmt()])),y.push(C.callFn([a.n,d,k,E]).toStmt()),p.detachMethod.addStmt(C.callFn([a.n,d,g,S]).toStmt()),!f.get(p)){f.set(p,!0);var P=a.n.callMethod("triggerQueuedAnimations",[]).toStmt();p.afterViewLifecycleCallbacksMethod.addStmt(P),p.detachMethod.addStmt(P)}}bind(p,v,m,t.value,e,y,p.detectChangesRenderPropertiesMethod,p.bindings.length)})}function sanitizedValue(t,e){var i;switch(t.securityContext){case r.SecurityContext.NONE:return e;case r.SecurityContext.HTML:i="HTML";break;case r.SecurityContext.STYLE:i="STYLE";break;case r.SecurityContext.SCRIPT:i="SCRIPT";break;case r.SecurityContext.URL:i="URL";break;case r.SecurityContext.RESOURCE_URL:i="RESOURCE_URL";break;default:throw new Error("internal error, unexpected SecurityContext "+t.securityContext+".")}var s=p.c.viewUtils.prop("sanitizer"),c=[a.b(n.i(o.d)(o.b.SecurityContext)).prop(i),e];return s.callMethod("sanitize",c)}function bindRenderInputs(t,e){bindAndWriteToRenderer(t,e.view.componentContext,e,!1)}function bindDirectiveHostProps(t,e,n){bindAndWriteToRenderer(t.hostProperties,e,n,!0)}function bindDirectiveInputs(t,e,r){if(0!==t.inputs.length){var i=r.view,c=i.detectChangesInInputsMethod;c.resetDebugInfo(r.nodeIndex,r.sourceAst);var l=t.directive.type.lifecycleHooks,d=l.indexOf(s.W.OnChanges)!==-1,f=t.directive.isComponent&&!n.i(s.X)(t.directive.changeDetection);d&&c.addStmt(p.d.changes.set(a.h).toStmt()),f&&c.addStmt(p.d.changed.set(a.a(!1)).toStmt()),t.inputs.forEach(function(t){var s=i.bindings.length;i.bindings.push(new u.a(r,t)),c.resetDebugInfo(r.nodeIndex,t);var l=createBindFieldExpr(s),h=createCurrValueExpr(s),m=[e.prop(t.directiveName).set(h).toStmt()];d&&(m.push(new a.i(p.d.changes.identical(a.h),[p.d.changes.set(a.f([],new a.w(a.c(n.i(o.d)(o.b.SimpleChange))))).toStmt()])),m.push(p.d.changes.key(a.a(t.directiveName)).set(a.b(n.i(o.d)(o.b.SimpleChange)).instantiate([l,h])).toStmt())),f&&m.push(p.d.changed.set(a.a(!0)).toStmt()),i.genConfig.logBindingUpdate&&m.push(logBindingUpdateStmt(r.renderNode,t.directiveName,h)),bind(i,h,l,t.value,i.componentContext,m,c,s)}),f&&c.addStmt(new a.i(p.d.changed,[r.appElement.prop("componentView").callMethod("markAsCheckOnce",[]).toStmt()]))}}function logBindingUpdateStmt(t,e,r){var i=a.n.prop("renderer").callMethod("setBindingDebugInfo",[t,a.a("ng-reflect-"+n.i(l.f)(e)),r.isBlank().conditional(a.h,r.callMethod("toString",[]))]).toStmt(),o=a.n.prop("renderer").callMethod("setBindingDebugInfo",[t,a.a("ng-reflect-"+n.i(l.f)(e)),a.a("[ERROR] Exception while trying to serialize the value")]).toStmt();return new a.H([i],[o])}var r=n(0),i=n(3),o=n(16),a=n(7),s=n(17),c=n(42),l=n(23),u=n(287),p=n(68),d=n(291);e.a=bindRenderText,e.b=bindRenderInputs,e.d=bindDirectiveHostProps,e.c=bindDirectiveInputs;var f=new Map},function(t,e,n){"use strict";function bindView(t,e,i){var a=new s(t,i);n.i(r.c)(a,e),t.pipes.forEach(function(t){n.i(o.a)(t.meta,t.instance,t.view)})}var r=n(42),i=n(464),o=n(465),a=n(466);e.a=bindView;var s=function(){function ViewBinderVisitor(t,e){var n=this;this.view=t,this.animationOutputs=e,this._nodeIndex=0,this._animationOutputsMap={},e.forEach(function(t){n._animationOutputsMap[t.fullPropertyName]=t})}return ViewBinderVisitor.prototype.visitBoundText=function(t,e){var r=this.view.nodes[this._nodeIndex++];return n.i(a.a)(t,r,this.view),null},ViewBinderVisitor.prototype.visitText=function(t,e){return this._nodeIndex++,null},ViewBinderVisitor.prototype.visitNgContent=function(t,e){return null},ViewBinderVisitor.prototype.visitElement=function(t,e){var s=this,c=this.view.nodes[this._nodeIndex++],l=[],u=[];return n.i(i.a)(t.outputs,t.directives,c).forEach(function(t){if("@"==t.eventName[0]){var e=t.eventName.substr(1),n=s._animationOutputsMap[e];n&&u.push(new i.b(t,n))}else l.push(t)}),n.i(i.c)(u),n.i(a.b)(t.inputs,c),n.i(i.d)(l),t.directives.forEach(function(t){var e=c.instances.get(t.directive.type.reference);n.i(a.c)(t,e,c),n.i(o.b)(t,e,c),n.i(a.d)(t,e,c),n.i(i.e)(t,e,l)}),n.i(r.c)(this,t.children,c),t.directives.forEach(function(t){var e=c.instances.get(t.directive.type.reference);n.i(o.c)(t.directive,e,c),n.i(o.d)(t.directive,e,c)}),t.providers.forEach(function(t){var e=c.instances.get(t.token.reference);n.i(o.e)(t,e,c)}),null},ViewBinderVisitor.prototype.visitEmbeddedTemplate=function(t,e){var r=this.view.nodes[this._nodeIndex++],s=n.i(i.a)(t.outputs,t.directives,r);return t.directives.forEach(function(t){var e=r.instances.get(t.directive.type.reference);n.i(a.c)(t,e,r),n.i(o.b)(t,e,r),n.i(i.e)(t,e,s),n.i(o.c)(t.directive,e,r),n.i(o.d)(t.directive,e,r)}),t.providers.forEach(function(t){var e=r.instances.get(t.token.reference);n.i(o.e)(t,e,r)}),bindView(r.embeddedView,t.children,this.animationOutputs),null},ViewBinderVisitor.prototype.visitAttr=function(t,e){return null},ViewBinderVisitor.prototype.visitDirective=function(t,e){return null},ViewBinderVisitor.prototype.visitEvent=function(t,e){return null},ViewBinderVisitor.prototype.visitReference=function(t,e){return null},ViewBinderVisitor.prototype.visitVariable=function(t,e){return null},ViewBinderVisitor.prototype.visitDirectiveProperty=function(t,e){return null},ViewBinderVisitor.prototype.visitElementProperty=function(t,e){return null},ViewBinderVisitor}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function AnimationKeyframe(t,e){this.offset=t,this.styles=e}return AnimationKeyframe}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function AnimationOutput(t,e,n){this.name=t,this.phase=e,this.fullPropertyName=n}return AnimationOutput}()},function(t,e,n){"use strict";var r=n(2),i=n(162);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function AnimationSequencePlayer(t){var e=this;this._players=t,this._currentIndex=0,this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this.parentPlayer=null,this._players.forEach(function(t){t.parentPlayer=e}),this._onNext(!1)}return AnimationSequencePlayer.prototype._onNext=function(t){var e=this;if(!this._finished)if(0==this._players.length)this._activePlayer=new i.a,n.i(r.s)(function(){return e._onFinish()});else if(this._currentIndex>=this._players.length)this._activePlayer=new i.a,this._onFinish();else{var o=this._players[this._currentIndex++];o.onDone(function(){return e._onNext(!0)}),this._activePlayer=o,t&&o.play()}},AnimationSequencePlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,n.i(r.g)(this.parentPlayer)||this.destroy(),this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},AnimationSequencePlayer.prototype.init=function(){this._players.forEach(function(t){return t.init()})},AnimationSequencePlayer.prototype.onStart=function(t){this._onStartFns.push(t)},AnimationSequencePlayer.prototype.onDone=function(t){this._onDoneFns.push(t)},AnimationSequencePlayer.prototype.hasStarted=function(){return this._started},AnimationSequencePlayer.prototype.play=function(){n.i(r.g)(this.parentPlayer)||this.init(),this.hasStarted()||(this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[],this._started=!0),this._activePlayer.play()},AnimationSequencePlayer.prototype.pause=function(){this._activePlayer.pause()},AnimationSequencePlayer.prototype.restart=function(){this._players.length>0&&(this.reset(),this._players[0].restart())},AnimationSequencePlayer.prototype.reset=function(){this._players.forEach(function(t){return t.reset()})},AnimationSequencePlayer.prototype.finish=function(){this._onFinish(),this._players.forEach(function(t){return t.finish()})},AnimationSequencePlayer.prototype.destroy=function(){this._onFinish(),this._players.forEach(function(t){return t.destroy()})},AnimationSequencePlayer.prototype.setPosition=function(t){this._players[0].setPosition(t)},AnimationSequencePlayer.prototype.getPosition=function(){return this._players[0].getPosition()},AnimationSequencePlayer}()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function prepareFinalAnimationStyles(t,e,o){void 0===o&&(o=null);var s={};return r.f.forEach(e,function(t,e){s[e]=t==a.AUTO_STYLE?o:t.toString()}),r.f.forEach(t,function(t,e){n.i(i.g)(s[e])||(s[e]=o)}),s}function balanceAnimationKeyframes(t,e,o){var s=o.length-1,c=o[0],l=flattenStyles(c.styles.styles),u={},p=!1;r.f.forEach(t,function(t,e){l[e]||(l[e]=t,u[e]=t,p=!0)});var d=r.f.merge({},l),f=o[s];r.a.insert(f.styles.styles,0,e);var h=flattenStyles(f.styles.styles),m={},v=!1;return r.f.forEach(d,function(t,e){n.i(i.g)(h[e])||(m[e]=a.AUTO_STYLE,v=!0)}),v&&f.styles.styles.push(m),r.f.forEach(h,function(t,e){n.i(i.g)(l[e])||(u[e]=a.AUTO_STYLE,p=!0)}),p&&c.styles.styles.push(u),o}function clearStyles(t){var e={};return r.f.keys(t).forEach(function(t){e[t]=null}),e}function collectAndResolveStyles(t,e){return e.map(function(e){var s={};return r.f.forEach(e,function(e,r){e==o.a&&(e=t[r],n.i(i.g)(e)||(e=a.AUTO_STYLE)),t[r]=e,s[r]=e}),s})}function renderStyles(t,e,n){r.f.forEach(n,function(n,r){e.setElementStyle(t,r,n)})}function flattenStyles(t){var e={};return t.forEach(function(t){r.f.forEach(t,function(t,n){e[n]=t})}),e}var r=n(10),i=n(2),o=n(293),a=n(296);e.a=prepareFinalAnimationStyles,e.b=balanceAnimationKeyframes,e.d=clearStyles,e.f=collectAndResolveStyles,e.e=renderStyles,e.c=flattenStyles},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function AnimationStyles(t){this.styles=t}return AnimationStyles}()},function(t,e,n){"use strict";var r=n(10),i=n(2);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function ViewAnimationMap(){this._map=new r.b,this._allPlayers=[]}return Object.defineProperty(ViewAnimationMap.prototype,"length",{get:function(){return this.getAllPlayers().length},enumerable:!0,configurable:!0}),ViewAnimationMap.prototype.find=function(t,e){var r=this._map.get(t);if(n.i(i.g)(r))return r[e]},ViewAnimationMap.prototype.findAllPlayersByElement=function(t){var e=this._map.get(t);return e?r.f.values(e):[]},ViewAnimationMap.prototype.set=function(t,e,r){var o=this._map.get(t);n.i(i.g)(o)||(o={});var a=o[e];n.i(i.g)(a)&&this.remove(t,e),o[e]=r,this._allPlayers.push(r),this._map.set(t,o)},ViewAnimationMap.prototype.getAllPlayers=function(){return this._allPlayers},ViewAnimationMap.prototype.remove=function(t,e){var o=this._map.get(t);if(n.i(i.g)(o)){var a=o[e];delete o[e];var s=this._allPlayers.indexOf(a);r.a.removeAt(this._allPlayers,s),r.f.isEmpty(o)&&this._map.delete(t)}},ViewAnimationMap}()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function _iterableDiffersFactory(){return a.b}function _keyValueDiffersFactory(){return a.c}var r=n(163),i=n(164),o=n(107),a=n(108),s=n(303),c=n(84),l=n(115),u=n(312);n.d(e,"a",function(){return p});var p=function(){function ApplicationModule(){}return ApplicationModule.decorators=[{type:u.NgModule,args:[{providers:[i.d,{provide:i.e,useExisting:i.d},r.a,c.b,o.d,l.a,{provide:a.d,useFactory:_iterableDiffersFactory},{provide:a.e,useFactory:_keyValueDiffersFactory},{provide:s.a,useValue:"en-US"}]}]}],ApplicationModule.ctorParameters=[],ApplicationModule}()},function(t,e,n){"use strict";var r=n(108);n.o(r,"g")&&n.d(e,"ChangeDetectionStrategy",function(){return r.g}),n.o(r,"h")&&n.d(e,"ChangeDetectorRef",function(){return r.h}),n.o(r,"k")&&n.d(e,"CollectionChangeRecord",function(){return r.k}),n.o(r,"l")&&n.d(e,"DefaultIterableDiffer",function(){return r.l}),n.o(r,"d")&&n.d(e,"IterableDiffers",function(){return r.d}),n.o(r,"m")&&n.d(e,"KeyValueChangeRecord",function(){return r.m}),n.o(r,"e")&&n.d(e,"KeyValueDiffers",function(){return r.e}),n.o(r,"i")&&n.d(e,"SimpleChange",function(){return r.i}),n.o(r,"j")&&n.d(e,"WrappedValue",function(){return r.j})},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function ChangeDetectorRef(){}return ChangeDetectorRef}()},function(t,e,n){"use strict";var r=n(312),i=n(491),o=n(35),a=n(164),s=n(107),c=n(163),l=n(492),u=n(490),p=n(482),d=n(300),f=n(175),h=n(475),m=n(488),v=n(303),g=n(474),b=n(116),y=n(176),_=n(170),w=n(302),x=n(478),C=n(296),S=n(295),k=n(162),E=n(320);for(var P in r)["assertPlatform","destroyPlatform","getPlatform","createPlatform","ApplicationRef","enableProdMode","isDevMode","createPlatformFactory","PlatformRef","APP_ID","PACKAGE_ROOT_URL","APP_BOOTSTRAP_LISTENER","PLATFORM_INITIALIZER","ApplicationInitStatus","APP_INITIALIZER","DebugElement","DebugNode","asNativeElements","getDebugNode","Testability","TestabilityRegistry","setTestabilityGetter","TRANSLATIONS","TRANSLATIONS_FORMAT","LOCALE_ID","ApplicationModule","wtfCreateScope","wtfLeave","wtfStartTimeRange","wtfEndTimeRange","Type","EventEmitter","ErrorHandler","AnimationTransitionEvent","AnimationPlayer","Sanitizer","SecurityContext","default"].indexOf(P)<0&&function(t){n.d(e,t,function(){return r[t]})}(P);for(var P in i)["assertPlatform","destroyPlatform","getPlatform","createPlatform","ApplicationRef","enableProdMode","isDevMode","createPlatformFactory","PlatformRef","APP_ID","PACKAGE_ROOT_URL","APP_BOOTSTRAP_LISTENER","PLATFORM_INITIALIZER","ApplicationInitStatus","APP_INITIALIZER","DebugElement","DebugNode","asNativeElements","getDebugNode","Testability","TestabilityRegistry","setTestabilityGetter","TRANSLATIONS","TRANSLATIONS_FORMAT","LOCALE_ID","ApplicationModule","wtfCreateScope","wtfLeave","wtfStartTimeRange","wtfEndTimeRange","Type","EventEmitter","ErrorHandler","AnimationTransitionEvent","AnimationPlayer","Sanitizer","SecurityContext","default"].indexOf(P)<0&&function(t){n.d(e,t,function(){return i[t]})}(P);for(var P in o)["assertPlatform","destroyPlatform","getPlatform","createPlatform","ApplicationRef","enableProdMode","isDevMode","createPlatformFactory","PlatformRef","APP_ID","PACKAGE_ROOT_URL","APP_BOOTSTRAP_LISTENER","PLATFORM_INITIALIZER","ApplicationInitStatus","APP_INITIALIZER","DebugElement","DebugNode","asNativeElements","getDebugNode","Testability","TestabilityRegistry","setTestabilityGetter","TRANSLATIONS","TRANSLATIONS_FORMAT","LOCALE_ID","ApplicationModule","wtfCreateScope","wtfLeave","wtfStartTimeRange","wtfEndTimeRange","Type","EventEmitter","ErrorHandler","AnimationTransitionEvent","AnimationPlayer","Sanitizer","SecurityContext","default"].indexOf(P)<0&&function(t){n.d(e,t,function(){return o[t]})}(P);n.o(a,"g")&&n.d(e,"assertPlatform",function(){return a.g}),n.o(a,"h")&&n.d(e,"destroyPlatform",function(){return a.h}),n.o(a,"i")&&n.d(e,"getPlatform",function(){return a.i}),n.o(a,"j")&&n.d(e,"createPlatform",function(){return a.j}),n.o(a,"e")&&n.d(e,"ApplicationRef",function(){return a.e}),n.o(a,"k")&&n.d(e,"enableProdMode",function(){return a.k}),n.o(a,"f")&&n.d(e,"isDevMode",function(){return a.f}),n.o(a,"c")&&n.d(e,"createPlatformFactory",function(){return a.c}),n.o(a,"b")&&n.d(e,"PlatformRef",function(){return a.b}),n.o(s,"a")&&n.d(e,"APP_ID",function(){return s.a}),n.o(s,"e")&&n.d(e,"PACKAGE_ROOT_URL",function(){return s.e}),n.o(s,"c")&&n.d(e,"APP_BOOTSTRAP_LISTENER",function(){return s.c}),n.o(s,"b")&&n.d(e,"PLATFORM_INITIALIZER",function(){return s.b}),n.o(c,"a")&&n.d(e,"ApplicationInitStatus",function(){return c.a}),n.o(c,"b")&&n.d(e,"APP_INITIALIZER",function(){return c.b});for(var P in l)["assertPlatform","destroyPlatform","getPlatform","createPlatform","ApplicationRef","enableProdMode","isDevMode","createPlatformFactory","PlatformRef","APP_ID","PACKAGE_ROOT_URL","APP_BOOTSTRAP_LISTENER","PLATFORM_INITIALIZER","ApplicationInitStatus","APP_INITIALIZER","DebugElement","DebugNode","asNativeElements","getDebugNode","Testability","TestabilityRegistry","setTestabilityGetter","TRANSLATIONS","TRANSLATIONS_FORMAT","LOCALE_ID","ApplicationModule","wtfCreateScope","wtfLeave","wtfStartTimeRange","wtfEndTimeRange","Type","EventEmitter","ErrorHandler","AnimationTransitionEvent","AnimationPlayer","Sanitizer","SecurityContext","default"].indexOf(P)<0&&function(t){n.d(e,t,function(){return l[t]})}(P);for(var P in u)["assertPlatform","destroyPlatform","getPlatform","createPlatform","ApplicationRef","enableProdMode","isDevMode","createPlatformFactory","PlatformRef","APP_ID","PACKAGE_ROOT_URL","APP_BOOTSTRAP_LISTENER","PLATFORM_INITIALIZER","ApplicationInitStatus","APP_INITIALIZER","DebugElement","DebugNode","asNativeElements","getDebugNode","Testability","TestabilityRegistry","setTestabilityGetter","TRANSLATIONS","TRANSLATIONS_FORMAT","LOCALE_ID","ApplicationModule","wtfCreateScope","wtfLeave","wtfStartTimeRange","wtfEndTimeRange","Type","EventEmitter","ErrorHandler","AnimationTransitionEvent","AnimationPlayer","Sanitizer","SecurityContext","default"].indexOf(P)<0&&function(t){n.d(e,t,function(){return u[t]})}(P);for(var P in p)["assertPlatform","destroyPlatform","getPlatform","createPlatform","ApplicationRef","enableProdMode","isDevMode","createPlatformFactory","PlatformRef","APP_ID","PACKAGE_ROOT_URL","APP_BOOTSTRAP_LISTENER","PLATFORM_INITIALIZER","ApplicationInitStatus","APP_INITIALIZER","DebugElement","DebugNode","asNativeElements","getDebugNode","Testability","TestabilityRegistry","setTestabilityGetter","TRANSLATIONS","TRANSLATIONS_FORMAT","LOCALE_ID","ApplicationModule","wtfCreateScope","wtfLeave","wtfStartTimeRange","wtfEndTimeRange","Type","EventEmitter","ErrorHandler","AnimationTransitionEvent","AnimationPlayer","Sanitizer","SecurityContext","default"].indexOf(P)<0&&function(t){n.d(e,t,function(){return p[t]})}(P);n.o(d,"a")&&n.d(e,"DebugElement",function(){return d.a}),n.o(d,"d")&&n.d(e,"DebugNode",function(){return d.d}),n.o(d,"g")&&n.d(e,"asNativeElements",function(){return d.g}),n.o(d,"c")&&n.d(e,"getDebugNode",function(){return d.c}),n.o(f,"a")&&n.d(e,"Testability",function(){return f.a}),n.o(f,"b")&&n.d(e,"TestabilityRegistry",function(){return f.b}),n.o(f,"c")&&n.d(e,"setTestabilityGetter",function(){return f.c});for(var P in h)["assertPlatform","destroyPlatform","getPlatform","createPlatform","ApplicationRef","enableProdMode","isDevMode","createPlatformFactory","PlatformRef","APP_ID","PACKAGE_ROOT_URL","APP_BOOTSTRAP_LISTENER","PLATFORM_INITIALIZER","ApplicationInitStatus","APP_INITIALIZER","DebugElement","DebugNode","asNativeElements","getDebugNode","Testability","TestabilityRegistry","setTestabilityGetter","TRANSLATIONS","TRANSLATIONS_FORMAT","LOCALE_ID","ApplicationModule","wtfCreateScope","wtfLeave","wtfStartTimeRange","wtfEndTimeRange","Type","EventEmitter","ErrorHandler","AnimationTransitionEvent","AnimationPlayer","Sanitizer","SecurityContext","default"].indexOf(P)<0&&function(t){n.d(e,t,function(){return h[t]})}(P);for(var P in m)["assertPlatform","destroyPlatform","getPlatform","createPlatform","ApplicationRef","enableProdMode","isDevMode","createPlatformFactory","PlatformRef","APP_ID","PACKAGE_ROOT_URL","APP_BOOTSTRAP_LISTENER","PLATFORM_INITIALIZER","ApplicationInitStatus","APP_INITIALIZER","DebugElement","DebugNode","asNativeElements","getDebugNode","Testability","TestabilityRegistry","setTestabilityGetter","TRANSLATIONS","TRANSLATIONS_FORMAT","LOCALE_ID","ApplicationModule","wtfCreateScope","wtfLeave","wtfStartTimeRange","wtfEndTimeRange","Type","EventEmitter","ErrorHandler","AnimationTransitionEvent","AnimationPlayer","Sanitizer","SecurityContext","default"].indexOf(P)<0&&function(t){n.d(e,t,function(){return m[t]})}(P);n.o(v,"c")&&n.d(e,"TRANSLATIONS",function(){return v.c}),n.o(v,"b")&&n.d(e,"TRANSLATIONS_FORMAT",function(){return v.b}),n.o(v,"a")&&n.d(e,"LOCALE_ID",function(){return v.a}),n.o(g,"a")&&n.d(e,"ApplicationModule",function(){return g.a}),n.o(b,"a")&&n.d(e,"wtfCreateScope",function(){return b.a}),n.o(b,"b")&&n.d(e,"wtfLeave",function(){return b.b}),n.o(b,"c")&&n.d(e,"wtfStartTimeRange",function(){return b.c}),n.o(b,"d")&&n.d(e,"wtfEndTimeRange",function(){return b.d}),n.o(y,"a")&&n.d(e,"Type",function(){return y.a}),n.o(_,"a")&&n.d(e,"EventEmitter",function(){return _.a}),n.o(w,"a")&&n.d(e,"ErrorHandler",function(){return w.a});for(var P in x)["assertPlatform","destroyPlatform","getPlatform","createPlatform","ApplicationRef","enableProdMode","isDevMode","createPlatformFactory","PlatformRef","APP_ID","PACKAGE_ROOT_URL","APP_BOOTSTRAP_LISTENER","PLATFORM_INITIALIZER","ApplicationInitStatus","APP_INITIALIZER","DebugElement","DebugNode","asNativeElements","getDebugNode","Testability","TestabilityRegistry","setTestabilityGetter","TRANSLATIONS","TRANSLATIONS_FORMAT","LOCALE_ID","ApplicationModule","wtfCreateScope","wtfLeave","wtfStartTimeRange","wtfEndTimeRange","Type","EventEmitter","ErrorHandler","AnimationTransitionEvent","AnimationPlayer","Sanitizer","SecurityContext","default"].indexOf(P)<0&&function(t){n.d(e,t,function(){return x[t]})}(P);for(var P in C)["assertPlatform","destroyPlatform","getPlatform","createPlatform","ApplicationRef","enableProdMode","isDevMode","createPlatformFactory","PlatformRef","APP_ID","PACKAGE_ROOT_URL","APP_BOOTSTRAP_LISTENER","PLATFORM_INITIALIZER","ApplicationInitStatus","APP_INITIALIZER","DebugElement","DebugNode","asNativeElements","getDebugNode","Testability","TestabilityRegistry","setTestabilityGetter","TRANSLATIONS","TRANSLATIONS_FORMAT","LOCALE_ID","ApplicationModule","wtfCreateScope","wtfLeave","wtfStartTimeRange","wtfEndTimeRange","Type","EventEmitter","ErrorHandler","AnimationTransitionEvent","AnimationPlayer","Sanitizer","SecurityContext","default"].indexOf(P)<0&&function(t){n.d(e,t,function(){return C[t]})}(P);n.o(S,"a")&&n.d(e,"AnimationTransitionEvent",function(){return S.a}),n.o(k,"b")&&n.d(e,"AnimationPlayer",function(){return k.b}),n.o(E,"a")&&n.d(e,"Sanitizer",function(){return E.a}),n.o(E,"b")&&n.d(e,"SecurityContext",function(){return E.b})},function(t,e,n){"use strict";var r=n(293),i=n(294),o=n(468),a=n(469),s=n(162),c=n(470),l=n(471),u=n(472),p=n(109),d=n(110),f=n(166),h=n(479),m=n(169),v=n(84),g=n(113),b=n(305),y=n(171),_=n(308),w=n(309),x=n(487),C=n(114),S=n(115),k=n(315),E=n(317),P=n(172),A=n(318),T=n(173),O=n(174),M=n(117);n.d(e,"__core_private__",function(){return D});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var D={isDefaultChangeDetectionStrategy:d.c,ChangeDetectorStatus:d.b,CHANGE_DETECTION_STRATEGY_VALUES:d.d,constructDependencies:m.b,LifecycleHooks:k.a,LIFECYCLE_HOOKS_VALUES:k.b,ReflectorReader:T.a,CodegenComponentFactoryResolver:g.b,AppElement:y.a,AppView:x.a,DebugAppView:x.b,NgModuleInjector:_.a,ViewType:C.a,MAX_INTERPOLATION_VALUES:S.d,checkBinding:S.e,flattenNestedViewRenderNodes:S.c,interpolate:S.f,ViewUtils:S.a,VIEW_ENCAPSULATION_VALUES:E.a,ViewMetadata:E.b,DebugContext:b.a,StaticNodeDebugInfo:b.b,devModeEqual:p.b,UNINITIALIZED:p.a,ValueUnwrapper:p.c,RenderDebugInfo:O.c,TemplateRef_:w.a,ReflectionCapabilities:A.a,makeDecorator:M.b,DebugDomRootRenderer:h.a,EMPTY_ARRAY:S.g,EMPTY_MAP:S.h,pureProxy1:S.i,pureProxy2:S.j,pureProxy3:S.k,pureProxy4:S.l,pureProxy5:S.m,pureProxy6:S.n,pureProxy7:S.o,pureProxy8:S.p,pureProxy9:S.q,pureProxy10:S.r,castByValue:S.s,Console:f.a,reflector:P.a,Reflector:P.b,NoOpAnimationPlayer:s.a,AnimationPlayer:s.b,AnimationSequencePlayer:c.a,AnimationGroupPlayer:i.a,AnimationKeyframe:o.a,prepareFinalAnimationStyles:l.a,balanceAnimationKeyframes:l.b,flattenStyles:l.c,clearStyles:l.d,renderStyles:l.e,collectAndResolveStyles:l.f,AnimationStyles:u.a,AnimationOutput:a.a,ANY_STATE:r.b,DEFAULT_STATE:r.c,EMPTY_STATE:r.d,FILL_STYLE_FLAG:r.a,ComponentStillLoadingError:v.c}},function(t,e,n){"use strict";var r=n(2),i=n(300);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function DebugDomRootRenderer(t){this._delegate=t}return DebugDomRootRenderer.prototype.renderComponent=function(t){return new a(this._delegate.renderComponent(t))},DebugDomRootRenderer}(),a=function(){function DebugDomRenderer(t){this._delegate=t}return DebugDomRenderer.prototype.selectRootElement=function(t,e){var r=this._delegate.selectRootElement(t,e),o=new i.a(r,null,e);return n.i(i.b)(o),r},DebugDomRenderer.prototype.createElement=function(t,e,r){var o=this._delegate.createElement(t,e,r),a=new i.a(o,n.i(i.c)(t),r);return a.name=e,n.i(i.b)(a),o},DebugDomRenderer.prototype.createViewRoot=function(t){return this._delegate.createViewRoot(t)},DebugDomRenderer.prototype.createTemplateAnchor=function(t,e){var r=this._delegate.createTemplateAnchor(t,e),o=new i.d(r,n.i(i.c)(t),e);return n.i(i.b)(o),r},DebugDomRenderer.prototype.createText=function(t,e,r){var o=this._delegate.createText(t,e,r),a=new i.d(o,n.i(i.c)(t),r);return n.i(i.b)(a),o},DebugDomRenderer.prototype.projectNodes=function(t,e){var o=n.i(i.c)(t);if(n.i(r.g)(o)&&o instanceof i.a){var a=o;e.forEach(function(t){a.addChild(n.i(i.c)(t))})}this._delegate.projectNodes(t,e)},DebugDomRenderer.prototype.attachViewAfter=function(t,e){var o=n.i(i.c)(t);if(n.i(r.g)(o)){var a=o.parent;if(e.length>0&&n.i(r.g)(a)){var s=[];e.forEach(function(t){return s.push(n.i(i.c)(t))}),a.insertChildrenAfter(o,s)}}this._delegate.attachViewAfter(t,e)},DebugDomRenderer.prototype.detachView=function(t){t.forEach(function(t){var e=n.i(i.c)(t);n.i(r.g)(e)&&n.i(r.g)(e.parent)&&e.parent.removeChild(e)}),this._delegate.detachView(t)},DebugDomRenderer.prototype.destroyView=function(t,e){e.forEach(function(t){n.i(i.e)(n.i(i.c)(t))}),this._delegate.destroyView(t,e)},DebugDomRenderer.prototype.listen=function(t,e,o){var a=n.i(i.c)(t);return n.i(r.g)(a)&&a.listeners.push(new i.f(e,o)),this._delegate.listen(t,e,o)},DebugDomRenderer.prototype.listenGlobal=function(t,e,n){return this._delegate.listenGlobal(t,e,n)},DebugDomRenderer.prototype.setElementProperty=function(t,e,o){var a=n.i(i.c)(t);n.i(r.g)(a)&&a instanceof i.a&&(a.properties[e]=o),this._delegate.setElementProperty(t,e,o)},DebugDomRenderer.prototype.setElementAttribute=function(t,e,o){var a=n.i(i.c)(t);n.i(r.g)(a)&&a instanceof i.a&&(a.attributes[e]=o),this._delegate.setElementAttribute(t,e,o)},DebugDomRenderer.prototype.setBindingDebugInfo=function(t,e,n){this._delegate.setBindingDebugInfo(t,e,n)},DebugDomRenderer.prototype.setElementClass=function(t,e,o){var a=n.i(i.c)(t);n.i(r.g)(a)&&a instanceof i.a&&(a.classes[e]=o),this._delegate.setElementClass(t,e,o)},DebugDomRenderer.prototype.setElementStyle=function(t,e,o){var a=n.i(i.c)(t);n.i(r.g)(a)&&a instanceof i.a&&(a.styles[e]=o),this._delegate.setElementStyle(t,e,o)},DebugDomRenderer.prototype.invokeElementMethod=function(t,e,n){this._delegate.invokeElementMethod(t,e,n)},DebugDomRenderer.prototype.setText=function(t,e){this._delegate.setText(t,e)},DebugDomRenderer.prototype.animate=function(t,e,n,r,i,o){return this._delegate.animate(t,e,n,r,i,o)},DebugDomRenderer}()},function(t,e,n){"use strict";function _mapProviders(t,e){for(var n=new Array(t._proto.numberOfProviders),r=0;r<t._proto.numberOfProviders;++r)n[r]=e(t._proto.getProviderAtIndex(r));return n}var r=n(10),i=n(30),o=n(112),a=n(83),s=n(301),c=n(168),l=n(169);n.d(e,"a",function(){return g});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var u=10,p=new Object,d=function(){function ReflectiveProtoInjectorInlineStrategy(t,e){this.provider0=null,this.provider1=null,this.provider2=null,this.provider3=null,this.provider4=null,this.provider5=null,this.provider6=null,this.provider7=null,this.provider8=null,this.provider9=null,this.keyId0=null,this.keyId1=null,this.keyId2=null,this.keyId3=null,this.keyId4=null,this.keyId5=null,this.keyId6=null,this.keyId7=null,this.keyId8=null,this.keyId9=null;var n=e.length;n>0&&(this.provider0=e[0],this.keyId0=e[0].key.id),n>1&&(this.provider1=e[1],this.keyId1=e[1].key.id),n>2&&(this.provider2=e[2],this.keyId2=e[2].key.id),n>3&&(this.provider3=e[3],this.keyId3=e[3].key.id),n>4&&(this.provider4=e[4],this.keyId4=e[4].key.id),n>5&&(this.provider5=e[5],this.keyId5=e[5].key.id),n>6&&(this.provider6=e[6],this.keyId6=e[6].key.id),n>7&&(this.provider7=e[7],this.keyId7=e[7].key.id),n>8&&(this.provider8=e[8],this.keyId8=e[8].key.id),n>9&&(this.provider9=e[9],this.keyId9=e[9].key.id)}return ReflectiveProtoInjectorInlineStrategy.prototype.getProviderAtIndex=function(t){if(0==t)return this.provider0;if(1==t)return this.provider1;if(2==t)return this.provider2;if(3==t)return this.provider3;if(4==t)return this.provider4;if(5==t)return this.provider5;if(6==t)return this.provider6;if(7==t)return this.provider7;if(8==t)return this.provider8;if(9==t)return this.provider9;throw new s.d(t)},ReflectiveProtoInjectorInlineStrategy.prototype.createInjectorStrategy=function(t){return new m(t,this)},ReflectiveProtoInjectorInlineStrategy}(),f=function(){function ReflectiveProtoInjectorDynamicStrategy(t,e){this.providers=e;var n=e.length;this.keyIds=r.a.createFixedSize(n);for(var i=0;i<n;i++)this.keyIds[i]=e[i].key.id}return ReflectiveProtoInjectorDynamicStrategy.prototype.getProviderAtIndex=function(t){if(t<0||t>=this.providers.length)throw new s.d(t);return this.providers[t]},ReflectiveProtoInjectorDynamicStrategy.prototype.createInjectorStrategy=function(t){return new v(this,t)},ReflectiveProtoInjectorDynamicStrategy}(),h=function(){function ReflectiveProtoInjector(t){this.numberOfProviders=t.length,this._strategy=t.length>u?new f(this,t):new d(this,t)}return ReflectiveProtoInjector.fromResolvedProviders=function(t){return new ReflectiveProtoInjector(t)},ReflectiveProtoInjector.prototype.getProviderAtIndex=function(t){return this._strategy.getProviderAtIndex(t)},ReflectiveProtoInjector}(),m=function(){function ReflectiveInjectorInlineStrategy(t,e){this.injector=t,this.protoStrategy=e,this.obj0=p,this.obj1=p,this.obj2=p,this.obj3=p,this.obj4=p,this.obj5=p,this.obj6=p,this.obj7=p,this.obj8=p,this.obj9=p}return ReflectiveInjectorInlineStrategy.prototype.resetConstructionCounter=function(){this.injector._constructionCounter=0},ReflectiveInjectorInlineStrategy.prototype.instantiateProvider=function(t){return this.injector._new(t)},ReflectiveInjectorInlineStrategy.prototype.getObjByKeyId=function(t){var e=this.protoStrategy,n=this.injector;return e.keyId0===t?(this.obj0===p&&(this.obj0=n._new(e.provider0)),this.obj0):e.keyId1===t?(this.obj1===p&&(this.obj1=n._new(e.provider1)),this.obj1):e.keyId2===t?(this.obj2===p&&(this.obj2=n._new(e.provider2)),this.obj2):e.keyId3===t?(this.obj3===p&&(this.obj3=n._new(e.provider3)),this.obj3):e.keyId4===t?(this.obj4===p&&(this.obj4=n._new(e.provider4)),this.obj4):e.keyId5===t?(this.obj5===p&&(this.obj5=n._new(e.provider5)),this.obj5):e.keyId6===t?(this.obj6===p&&(this.obj6=n._new(e.provider6)),this.obj6):e.keyId7===t?(this.obj7===p&&(this.obj7=n._new(e.provider7)),this.obj7):e.keyId8===t?(this.obj8===p&&(this.obj8=n._new(e.provider8)),this.obj8):e.keyId9===t?(this.obj9===p&&(this.obj9=n._new(e.provider9)),this.obj9):p},ReflectiveInjectorInlineStrategy.prototype.getObjAtIndex=function(t){if(0==t)return this.obj0;if(1==t)return this.obj1;if(2==t)return this.obj2;if(3==t)return this.obj3;if(4==t)return this.obj4;if(5==t)return this.obj5;if(6==t)return this.obj6;if(7==t)return this.obj7;if(8==t)return this.obj8;if(9==t)return this.obj9;throw new s.d(t)},ReflectiveInjectorInlineStrategy.prototype.getMaxNumberOfObjects=function(){return u},ReflectiveInjectorInlineStrategy}(),v=function(){function ReflectiveInjectorDynamicStrategy(t,e){this.protoStrategy=t,this.injector=e,this.objs=r.a.createFixedSize(t.providers.length),r.a.fill(this.objs,p)}return ReflectiveInjectorDynamicStrategy.prototype.resetConstructionCounter=function(){this.injector._constructionCounter=0},ReflectiveInjectorDynamicStrategy.prototype.instantiateProvider=function(t){return this.injector._new(t)},ReflectiveInjectorDynamicStrategy.prototype.getObjByKeyId=function(t){for(var e=this.protoStrategy,n=0;n<e.keyIds.length;n++)if(e.keyIds[n]===t)return this.objs[n]===p&&(this.objs[n]=this.injector._new(e.providers[n])),this.objs[n];return p},ReflectiveInjectorDynamicStrategy.prototype.getObjAtIndex=function(t){if(t<0||t>=this.objs.length)throw new s.d(t);return this.objs[t]},ReflectiveInjectorDynamicStrategy.prototype.getMaxNumberOfObjects=function(){return this.objs.length},ReflectiveInjectorDynamicStrategy}(),g=function(){function ReflectiveInjector(){}return ReflectiveInjector.resolve=function(t){return n.i(l.a)(t)},ReflectiveInjector.resolveAndCreate=function(t,e){void 0===e&&(e=null);var n=ReflectiveInjector.resolve(t);return ReflectiveInjector.fromResolvedProviders(n,e)},ReflectiveInjector.fromResolvedProviders=function(t,e){return void 0===e&&(e=null),new b(h.fromResolvedProviders(t),e)},Object.defineProperty(ReflectiveInjector.prototype,"parent",{get:function(){return n.i(i.a)()},enumerable:!0,configurable:!0}),ReflectiveInjector.prototype.resolveAndCreateChild=function(t){return n.i(i.a)()},ReflectiveInjector.prototype.createChildFromResolved=function(t){return n.i(i.a)()},ReflectiveInjector.prototype.resolveAndInstantiate=function(t){return n.i(i.a)()},ReflectiveInjector.prototype.instantiateResolved=function(t){return n.i(i.a)()},ReflectiveInjector}(),b=function(){function ReflectiveInjector_(t,e){void 0===e&&(e=null),this._constructionCounter=0,this._proto=t,this._parent=e,this._strategy=t._strategy.createInjectorStrategy(this)}return ReflectiveInjector_.prototype.get=function(t,e){return void 0===e&&(e=o.a),this._getByKey(c.a.get(t),null,null,e)},ReflectiveInjector_.prototype.getAt=function(t){return this._strategy.getObjAtIndex(t)},Object.defineProperty(ReflectiveInjector_.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(ReflectiveInjector_.prototype,"internalStrategy",{get:function(){return this._strategy},enumerable:!0,configurable:!0}),ReflectiveInjector_.prototype.resolveAndCreateChild=function(t){var e=g.resolve(t);return this.createChildFromResolved(e)},ReflectiveInjector_.prototype.createChildFromResolved=function(t){var e=new h(t),n=new ReflectiveInjector_(e);return n._parent=this,n},ReflectiveInjector_.prototype.resolveAndInstantiate=function(t){return this.instantiateResolved(g.resolve([t])[0])},ReflectiveInjector_.prototype.instantiateResolved=function(t){return this._instantiateProvider(t)},ReflectiveInjector_.prototype._new=function(t){if(this._constructionCounter++>this._strategy.getMaxNumberOfObjects())throw new s.e(this,t.key);return this._instantiateProvider(t)},ReflectiveInjector_.prototype._instantiateProvider=function(t){if(t.multiProvider){for(var e=r.a.createFixedSize(t.resolvedFactories.length),n=0;n<t.resolvedFactories.length;++n)e[n]=this._instantiate(t,t.resolvedFactories[n]);return e}return this._instantiate(t,t.resolvedFactories[0])},ReflectiveInjector_.prototype._instantiate=function(t,e){var n,r,i,o,a,c,l,u,p,d,f,h,m,v,g,b,y,_,w,x,C=e.factory,S=e.dependencies,k=S.length;try{n=k>0?this._getByReflectiveDependency(t,S[0]):null,r=k>1?this._getByReflectiveDependency(t,S[1]):null,i=k>2?this._getByReflectiveDependency(t,S[2]):null,o=k>3?this._getByReflectiveDependency(t,S[3]):null,a=k>4?this._getByReflectiveDependency(t,S[4]):null,c=k>5?this._getByReflectiveDependency(t,S[5]):null,l=k>6?this._getByReflectiveDependency(t,S[6]):null,u=k>7?this._getByReflectiveDependency(t,S[7]):null,p=k>8?this._getByReflectiveDependency(t,S[8]):null,d=k>9?this._getByReflectiveDependency(t,S[9]):null,f=k>10?this._getByReflectiveDependency(t,S[10]):null,h=k>11?this._getByReflectiveDependency(t,S[11]):null,m=k>12?this._getByReflectiveDependency(t,S[12]):null,v=k>13?this._getByReflectiveDependency(t,S[13]):null,g=k>14?this._getByReflectiveDependency(t,S[14]):null,b=k>15?this._getByReflectiveDependency(t,S[15]):null,y=k>16?this._getByReflectiveDependency(t,S[16]):null,_=k>17?this._getByReflectiveDependency(t,S[17]):null,w=k>18?this._getByReflectiveDependency(t,S[18]):null,x=k>19?this._getByReflectiveDependency(t,S[19]):null}catch(E){throw(E instanceof s.f||E instanceof s.g)&&E.addKey(this,t.key),E}var P;try{switch(k){case 0:P=C();break;case 1:P=C(n);break;case 2:P=C(n,r);break;case 3:P=C(n,r,i);break;case 4:P=C(n,r,i,o);break;case 5:P=C(n,r,i,o,a);break;case 6:P=C(n,r,i,o,a,c);break;case 7:P=C(n,r,i,o,a,c,l);break;case 8:P=C(n,r,i,o,a,c,l,u);break;case 9:P=C(n,r,i,o,a,c,l,u,p);break;case 10:P=C(n,r,i,o,a,c,l,u,p,d);break;case 11:P=C(n,r,i,o,a,c,l,u,p,d,f);break;case 12:P=C(n,r,i,o,a,c,l,u,p,d,f,h);break;case 13:P=C(n,r,i,o,a,c,l,u,p,d,f,h,m);break;case 14:P=C(n,r,i,o,a,c,l,u,p,d,f,h,m,v);break;case 15:P=C(n,r,i,o,a,c,l,u,p,d,f,h,m,v,g);break;case 16:P=C(n,r,i,o,a,c,l,u,p,d,f,h,m,v,g,b);break;case 17:P=C(n,r,i,o,a,c,l,u,p,d,f,h,m,v,g,b,y);break;case 18:P=C(n,r,i,o,a,c,l,u,p,d,f,h,m,v,g,b,y,_);break;case 19:P=C(n,r,i,o,a,c,l,u,p,d,f,h,m,v,g,b,y,_,w);break;case 20:P=C(n,r,i,o,a,c,l,u,p,d,f,h,m,v,g,b,y,_,w,x);break;default:throw new Error("Cannot instantiate '"+t.key.displayName+"' because it has more than 20 dependencies")}}catch(E){throw new s.g(this,E,E.stack,t.key)}return P},ReflectiveInjector_.prototype._getByReflectiveDependency=function(t,e){return this._getByKey(e.key,e.lowerBoundVisibility,e.upperBoundVisibility,e.optional?null:o.a)},ReflectiveInjector_.prototype._getByKey=function(t,e,n,r){return t===y?this:n instanceof a.d?this._getByKeySelf(t,r):this._getByKeyDefault(t,r,e)},ReflectiveInjector_.prototype._throwOrNull=function(t,e){if(e!==o.a)return e;throw new s.h(this,t)},ReflectiveInjector_.prototype._getByKeySelf=function(t,e){var n=this._strategy.getObjByKeyId(t.id);return n!==p?n:this._throwOrNull(t,e)},ReflectiveInjector_.prototype._getByKeyDefault=function(t,e,n){var r;for(r=n instanceof a.f?this._parent:this;r instanceof ReflectiveInjector_;){var i=r,o=i._strategy.getObjByKeyId(t.id);if(o!==p)return o;r=i._parent}return null!==r?r.get(t.token,e):this._throwOrNull(t,e)},Object.defineProperty(ReflectiveInjector_.prototype,"displayName",{get:function(){var t=_mapProviders(this,function(t){return' "'+t.key.displayName+'" '}).join(", ");return"ReflectiveInjector(providers: ["+t+"])"},enumerable:!0,configurable:!0}),ReflectiveInjector_.prototype.toString=function(){return this.displayName},ReflectiveInjector_}(),y=c.a.get(o.b)},function(t,e,n){"use strict";var r=n(2);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=r.c.Math},function(t,e,n){"use strict";var r=n(84),i=n(304),o=n(113),a=n(306),s=n(308),c=n(484),l=n(485),u=n(486),p=n(309),d=n(310),f=n(311);n.o(r,"e")&&n.d(e,"COMPILER_OPTIONS",function(){return r.e}),n.o(r,"a")&&n.d(e,"CompilerFactory",function(){return r.a}),n.o(r,"d")&&n.d(e,"ModuleWithComponentFactories",function(){return r.d}),n.o(r,"b")&&n.d(e,"Compiler",function(){return r.b}),n.o(i,"a")&&n.d(e,"ComponentFactory",function(){return i.a}),n.o(i,"b")&&n.d(e,"ComponentRef",function(){return i.b}),n.o(o,"a")&&n.d(e,"ComponentFactoryResolver",function(){return o.a}),n.o(a,"a")&&n.d(e,"ElementRef",function(){return a.a}),n.o(s,"b")&&n.d(e,"NgModuleFactory",function(){return s.b}),n.o(s,"c")&&n.d(e,"NgModuleRef",function(){return s.c}),n.o(c,"a")&&n.d(e,"NgModuleFactoryLoader",function(){return c.a}),n.o(l,"a")&&n.d(e,"QueryList",function(){return l.a}),n.o(u,"a")&&n.d(e,"SystemJsNgModuleLoader",function(){return u.a}),n.o(u,"b")&&n.d(e,"SystemJsNgModuleLoaderConfig",function(){return u.b}),n.o(p,"b")&&n.d(e,"TemplateRef",function(){return p.b}),n.o(d,"b")&&n.d(e,"ViewContainerRef",function(){return d.b}),n.o(f,"b")&&n.d(e,"EmbeddedViewRef",function(){return f.b}),n.o(f,"c")&&n.d(e,"ViewRef",function(){return f.c})},function(t,e,n){"use strict";var r=n(112);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},o=new Object,a=function(t){function ElementInjector(e,n){t.call(this),this._view=e,this._nodeIndex=n}return i(ElementInjector,t),ElementInjector.prototype.get=function(t,e){void 0===e&&(e=r.a);var n=o;return n===o&&(n=this._view.injectorGet(t,this._nodeIndex,o)),n===o&&(n=this._view.parentInjector.get(t,e)),n},ElementInjector}(r.b)},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function NgModuleFactoryLoader(){}return NgModuleFactoryLoader}()},function(t,e,n){"use strict";var r=n(170),i=n(10),o=n(2);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=function(){function QueryList(){this._dirty=!0,this._results=[],this._emitter=new r.a}return Object.defineProperty(QueryList.prototype,"changes",{get:function(){return this._emitter},enumerable:!0,configurable:!0}),Object.defineProperty(QueryList.prototype,"length",{get:function(){return this._results.length},enumerable:!0,configurable:!0}),Object.defineProperty(QueryList.prototype,"first",{get:function(){return this._results[0]},enumerable:!0,configurable:!0}),Object.defineProperty(QueryList.prototype,"last",{get:function(){return this._results[this.length-1]},enumerable:!0,configurable:!0}),QueryList.prototype.map=function(t){return this._results.map(t)},QueryList.prototype.filter=function(t){return this._results.filter(t)},QueryList.prototype.reduce=function(t,e){return this._results.reduce(t,e)},QueryList.prototype.forEach=function(t){this._results.forEach(t)},QueryList.prototype.some=function(t){return this._results.some(t)},QueryList.prototype.toArray=function(){return this._results.slice()},QueryList.prototype[n.i(o.j)()]=function(){return this._results[n.i(o.j)()]()},QueryList.prototype.toString=function(){return this._results.toString()},QueryList.prototype.reset=function(t){this._results=i.a.flatten(t),this._dirty=!1},QueryList.prototype.notifyOnChanges=function(){this._emitter.emit(this)},QueryList.prototype.setDirty=function(){this._dirty=!0},Object.defineProperty(QueryList.prototype,"dirty",{get:function(){return this._dirty},enumerable:!0,configurable:!0}),QueryList}()},function(t,e,n){"use strict";function checkNotEmpty(t,e,n){if(!t)throw new Error("Cannot find '"+n+"' in '"+e+"'");return t}var r=n(35),i=n(84);n.d(e,"b",function(){return s}),n.d(e,"a",function(){return l});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o="#",a="NgFactory",s=function(){function SystemJsNgModuleLoaderConfig(){}return SystemJsNgModuleLoaderConfig}(),c={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"},l=function(){function SystemJsNgModuleLoader(t,e){this._compiler=t,this._system=function(){return System},this._config=e||c}return SystemJsNgModuleLoader.prototype.load=function(t){var e=this._compiler instanceof i.b;return e?this.loadFactory(t):this.loadAndCompile(t)},SystemJsNgModuleLoader.prototype.loadAndCompile=function(t){var e=this,n=t.split(o),r=n[0],i=n[1];return void 0===i&&(i="default"),this._system().import(r).then(function(t){return t[i]}).then(function(t){return checkNotEmpty(t,r,i)}).then(function(t){return e._compiler.compileModuleAsync(t)})},SystemJsNgModuleLoader.prototype.loadFactory=function(t){var e=t.split(o),n=e[0],r=e[1],i=a;return void 0===r&&(r="default",i=""),this._system().import(this._config.factoryPathPrefix+n+this._config.factoryPathSuffix).then(function(t){return t[r+i]}).then(function(t){return checkNotEmpty(t,n,r)})},SystemJsNgModuleLoader.decorators=[{type:r.Injectable}],SystemJsNgModuleLoader.ctorParameters=[{type:i.b},{type:s,decorators:[{type:r.Optional}]}],SystemJsNgModuleLoader}()},function(t,e,n){"use strict";function _findLastRenderNode(t){var e;if(t instanceof p.a){var r=t;if(e=r.nativeElement,n.i(c.g)(r.nestedViews))for(var i=r.nestedViews.length-1;i>=0;i--){var o=r.nestedViews[i];o.rootNodesOrAppElements.length>0&&(e=_findLastRenderNode(o.rootNodesOrAppElements[o.rootNodesOrAppElements.length-1]))}}else e=t;return e}var r=n(294),i=n(295),o=n(473),a=n(108),s=n(10),c=n(2),l=n(116),u=n(305),p=n(171),d=n(483),f=n(307),h=n(311),m=n(114),v=n(115);n.d(e,"a",function(){return y}),n.d(e,"b",function(){return _});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var g=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},b=n.i(l.a)("AppView#check(ascii id)"),y=function(){function AppView(t,e,n,r,i,a,s){this.clazz=t,this.componentType=e,this.type=n,this.viewUtils=r,this.parentInjector=i,this.declarationAppElement=a,this.cdMode=s,this.contentChildren=[],this.viewChildren=[],this.viewContainerElement=null,this.numberOfChecks=0,this.animationPlayers=new o.a,this._animationListeners=new Map,this.ref=new h.a(this),n===m.a.COMPONENT||n===m.a.HOST?this.renderer=r.renderComponent(e):this.renderer=a.parentView.renderer}return Object.defineProperty(AppView.prototype,"destroyed",{get:function(){return this.cdMode===a.f.Destroyed},enumerable:!0,configurable:!0}),AppView.prototype.cancelActiveAnimation=function(t,e,r){if(void 0===r&&(r=!1),r)this.animationPlayers.findAllPlayersByElement(t).forEach(function(t){return t.destroy()});else{var i=this.animationPlayers.find(t,e);n.i(c.g)(i)&&i.destroy()}},AppView.prototype.queueAnimation=function(t,e,n,r,o,a){var s=this,c=new i.a({fromState:o,toState:a,totalTime:r});this.animationPlayers.set(t,e,n),n.onDone(function(){s.triggerAnimationOutput(t,e,"done",c),s.animationPlayers.remove(t,e)}),n.onStart(function(){s.triggerAnimationOutput(t,e,"start",c)})},AppView.prototype.triggerQueuedAnimations=function(){this.animationPlayers.getAllPlayers().forEach(function(t){t.hasStarted()||t.play()})},AppView.prototype.triggerAnimationOutput=function(t,e,r,i){var o=this._animationListeners.get(t);if(n.i(c.g)(o)&&o.length)for(var a=0;a<o.length;a++){var s=o[a];if(s.output.name==e&&s.output.phase==r){s.handler(i);break}}},AppView.prototype.registerAnimationOutput=function(t,e,r){var i=new w(e,r),o=this._animationListeners.get(t);n.i(c.g)(o)||this._animationListeners.set(t,o=[]),o.push(i)},AppView.prototype.create=function(t,e,r){this.context=t;var i;switch(this.type){case m.a.COMPONENT:i=n.i(v.b)(e,this.componentType.slotCount);break;case m.a.EMBEDDED:i=this.declarationAppElement.parentView.projectableNodes;break;case m.a.HOST:i=e}return this._hasExternalHostElement=n.i(c.g)(r),this.projectableNodes=i,this.createInternal(r)},AppView.prototype.createInternal=function(t){return null},AppView.prototype.init=function(t,e,n,r){this.rootNodesOrAppElements=t,this.allNodes=e,this.disposables=n,this.subscriptions=r,this.type===m.a.COMPONENT&&(this.declarationAppElement.parentView.viewChildren.push(this),this.dirtyParentQueriesInternal())},AppView.prototype.selectOrCreateHostElement=function(t,e,r){var i;return i=n.i(c.g)(e)?this.renderer.selectRootElement(e,r):this.renderer.createElement(null,t,r)},AppView.prototype.injectorGet=function(t,e,n){return this.injectorGetInternal(t,e,n)},AppView.prototype.injectorGetInternal=function(t,e,n){return n},AppView.prototype.injector=function(t){return n.i(c.g)(t)?new d.a(this,t):this.parentInjector},AppView.prototype.destroy=function(){this._hasExternalHostElement?this.renderer.detachView(this.flatRootNodes):n.i(c.g)(this.viewContainerElement)&&this.viewContainerElement.detachView(this.viewContainerElement.nestedViews.indexOf(this)),this._destroyRecurse()},AppView.prototype._destroyRecurse=function(){if(this.cdMode!==a.f.Destroyed){for(var t=this.contentChildren,e=0;e<t.length;e++)t[e]._destroyRecurse();t=this.viewChildren;for(var e=0;e<t.length;e++)t[e]._destroyRecurse();this.destroyLocal(),this.cdMode=a.f.Destroyed}},AppView.prototype.destroyLocal=function(){for(var t=this,e=this.type===m.a.COMPONENT?this.declarationAppElement.nativeElement:null,n=0;n<this.disposables.length;n++)this.disposables[n]();for(var n=0;n<this.subscriptions.length;n++)this.subscriptions[n].unsubscribe();if(this.destroyInternal(),this.dirtyParentQueriesInternal(),0==this.animationPlayers.length)this.renderer.destroyView(e,this.allNodes);else{var i=new r.a(this.animationPlayers.getAllPlayers());i.onDone(function(){t.renderer.destroyView(e,t.allNodes)})}},AppView.prototype.destroyInternal=function(){},AppView.prototype.detachInternal=function(){},AppView.prototype.detach=function(){var t=this;if(this.detachInternal(),0==this.animationPlayers.length)this.renderer.detachView(this.flatRootNodes);else{var e=new r.a(this.animationPlayers.getAllPlayers());e.onDone(function(){t.renderer.detachView(t.flatRootNodes)})}},Object.defineProperty(AppView.prototype,"changeDetectorRef",{get:function(){return this.ref},enumerable:!0,configurable:!0}),Object.defineProperty(AppView.prototype,"parent",{get:function(){return n.i(c.g)(this.declarationAppElement)?this.declarationAppElement.parentView:null},enumerable:!0,configurable:!0}),Object.defineProperty(AppView.prototype,"flatRootNodes",{get:function(){return n.i(v.c)(this.rootNodesOrAppElements)},enumerable:!0,configurable:!0}),Object.defineProperty(AppView.prototype,"lastRootNode",{get:function(){var t=this.rootNodesOrAppElements.length>0?this.rootNodesOrAppElements[this.rootNodesOrAppElements.length-1]:null;return _findLastRenderNode(t)},enumerable:!0,configurable:!0}),AppView.prototype.dirtyParentQueriesInternal=function(){},AppView.prototype.detectChanges=function(t){var e=b(this.clazz);this.cdMode!==a.f.Checked&&this.cdMode!==a.f.Errored&&(this.cdMode===a.f.Destroyed&&this.throwDestroyedError("detectChanges"),this.detectChangesInternal(t),this.cdMode===a.f.CheckOnce&&(this.cdMode=a.f.Checked),this.numberOfChecks++,n.i(l.b)(e))},AppView.prototype.detectChangesInternal=function(t){this.detectContentChildrenChanges(t),this.detectViewChildrenChanges(t)},AppView.prototype.detectContentChildrenChanges=function(t){for(var e=0;e<this.contentChildren.length;++e){var n=this.contentChildren[e];n.cdMode!==a.f.Detached&&n.detectChanges(t)}},AppView.prototype.detectViewChildrenChanges=function(t){for(var e=0;e<this.viewChildren.length;++e){var n=this.viewChildren[e];n.cdMode!==a.f.Detached&&n.detectChanges(t)}},AppView.prototype.markContentChildAsMoved=function(t){this.dirtyParentQueriesInternal()},AppView.prototype.addToContentChildren=function(t){t.parentView.contentChildren.push(this),this.viewContainerElement=t,this.dirtyParentQueriesInternal()},AppView.prototype.removeFromContentChildren=function(t){s.a.remove(t.parentView.contentChildren,this),this.dirtyParentQueriesInternal(),this.viewContainerElement=null},AppView.prototype.markAsCheckOnce=function(){this.cdMode=a.f.CheckOnce},AppView.prototype.markPathToRootAsCheckOnce=function(){for(var t=this;n.i(c.g)(t)&&t.cdMode!==a.f.Detached;){t.cdMode===a.f.Checked&&(t.cdMode=a.f.CheckOnce);var e=t.type===m.a.COMPONENT?t.declarationAppElement:t.viewContainerElement;t=n.i(c.g)(e)?e.parentView:null}},AppView.prototype.eventHandler=function(t){return t},AppView.prototype.throwDestroyedError=function(t){throw new f.b(t)},AppView}(),_=function(t){function DebugAppView(e,n,r,i,o,a,s,c){t.call(this,e,n,r,i,o,a,s),this.staticNodeDebugInfos=c,this._currentDebugContext=null}return g(DebugAppView,t),DebugAppView.prototype.create=function(e,n,r){this._resetDebug();try{return t.prototype.create.call(this,e,n,r)}catch(i){throw this._rethrowWithContext(i),i}},DebugAppView.prototype.injectorGet=function(e,n,r){this._resetDebug();try{return t.prototype.injectorGet.call(this,e,n,r)}catch(i){throw this._rethrowWithContext(i),i}},DebugAppView.prototype.detach=function(){this._resetDebug();try{t.prototype.detach.call(this)}catch(e){throw this._rethrowWithContext(e),e}},DebugAppView.prototype.destroyLocal=function(){this._resetDebug();try{t.prototype.destroyLocal.call(this)}catch(e){throw this._rethrowWithContext(e),e}},DebugAppView.prototype.detectChanges=function(e){this._resetDebug();try{t.prototype.detectChanges.call(this,e)}catch(n){throw this._rethrowWithContext(n),n}},DebugAppView.prototype._resetDebug=function(){this._currentDebugContext=null},DebugAppView.prototype.debug=function(t,e,n){return this._currentDebugContext=new u.a(this,t,e,n)},DebugAppView.prototype._rethrowWithContext=function(t){if(!(t instanceof f.c)&&(t instanceof f.a||(this.cdMode=a.f.Errored),n.i(c.g)(this._currentDebugContext)))throw new f.c(t,this._currentDebugContext)},DebugAppView.prototype.eventHandler=function(e){var n=this,r=t.prototype.eventHandler.call(this,e);return function(t){n._resetDebug();try{return r(t)}catch(e){throw n._rethrowWithContext(e),e}}},DebugAppView}(y),w=function(){function _AnimationOutputWithHandler(t,e){this.output=t,this.handler=e}return _AnimationOutputWithHandler}()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function _reflector(){return o.a}var r=n(164),i=n(166),o=n(172),a=n(173),s=n(175);n.d(e,"platformCore",function(){return l});var c=[r.a,{provide:r.b,useExisting:r.a},{provide:o.b,useFactory:_reflector,deps:[]},{provide:a.a,useExisting:o.b},s.b,i.a],l=n.i(r.c)(null,"core",c)},function(t,e,n){"use strict";function detectWTF(){var t=r.c.wtf;return!(!t||!(i=t.trace))&&(o=i.events,!0)}function createScope(t,e){return void 0===e&&(e=null),o.createScope(t,e)}function leave(t,e){return i.leaveScope(t,e),e}function startTimeRange(t,e){return i.beginTimeRange(t,e)}function endTimeRange(t){i.endTimeRange(t)}var r=n(2);e.a=detectWTF,e.b=createScope,e.c=leave,e.d=startTimeRange,e.e=endTimeRange;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i,o},function(t,e,n){"use strict";var r=n(174);n.o(r,"a")&&n.d(e,"RenderComponentType",function(){return r.a}),n.o(r,"d")&&n.d(e,"Renderer",function(){return r.d}),n.o(r,"b")&&n.d(e,"RootRenderer",function(){return r.b})},function(t,e,n){"use strict";var r=n(117);n.o(r,"d")&&n.d(e,"Class",function(){return r.d})},function(t,e,n){"use strict";var r=n(177);n.o(r,"a")&&n.d(e,"NgZone",function(){return r.a})},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r=function(){function NgZoneImpl(t){var e=this,n=t.trace,r=t.onEnter,i=t.onLeave,o=t.setMicrotask,a=t.setMacrotask,s=t.onError;if(this.onEnter=r,this.onLeave=i,this.setMicrotask=o,this.setMacrotask=a,this.onError=s,!Zone)throw new Error("Angular requires Zone.js polyfill.");this.outer=this.inner=Zone.current,Zone.wtfZoneSpec&&(this.inner=this.inner.fork(Zone.wtfZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(this.inner=this.inner.fork(Zone.longStackTraceZoneSpec)),this.inner=this.inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:function(t,n,r,i,o,a){try{return e.onEnter(),t.invokeTask(r,i,o,a)}finally{e.onLeave()}},onInvoke:function(t,n,r,i,o,a,s){try{return e.onEnter(),t.invoke(r,i,o,a,s)}finally{e.onLeave()}},onHasTask:function(t,n,r,i){t.hasTask(r,i),n==r&&("microTask"==i.change?e.setMicrotask(i.microTask):"macroTask"==i.change&&e.setMacrotask(i.macroTask))},onHandleError:function(t,n,r,i){return t.handleError(r,i),e.onError(i),!1}})}return NgZoneImpl.isInAngularZone=function(){return Zone.current.get("isAngularZone")===!0},NgZoneImpl.prototype.runInner=function(t){return this.inner.run(t)},NgZoneImpl.prototype.runInnerGuarded=function(t){return this.inner.runGuarded(t)},NgZoneImpl.prototype.runOuter=function(t){return this.outer.run(t)},NgZoneImpl}()},function(t,e,n){"use strict";var r=n(0),i=n(118),o=n(119),a=n(179),s=n(86),c=n(180),l=n(120),u=n(181),p=n(121),d=n(182),f=n(183),h=n(87),m=n(88),v=n(123),g=n(124),b=n(184);n(60);n.d(e,"a",function(){return _}),n.d(e,"c",function(){return w}),n.d(e,"b",function(){return x});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var y=[v.b,g.b,o.a,u.a,i.a,v.a,g.a,p.a,a.a,a.b,b.a,b.b,b.c,b.d],_=[c.a,l.a,s.a],w=[d.a,h.a,f.a,m.a,m.b],x=function(){function InternalFormsSharedModule(){}return InternalFormsSharedModule.decorators=[{type:r.NgModule,args:[{declarations:y,exports:y}]}],InternalFormsSharedModule.ctorParameters=[],InternalFormsSharedModule}()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function normalizeValidator(t){return void 0!==t.validate?function(e){return t.validate(e)}:t}function normalizeAsyncValidator(t){return void 0!==t.validate?function(e){return t.validate(e)}:t}e.a=normalizeValidator,e.b=normalizeAsyncValidator},function(t,e,n){"use strict";var r=n(0),i=n(494),o=n(121),a=n(323);n.d(e,"FormsModule",function(){return s}),n.d(e,"ReactiveFormsModule",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function FormsModule(){}return FormsModule.decorators=[{type:r.NgModule,args:[{declarations:i.a,providers:[o.b],exports:[i.b,i.a]}]}],FormsModule.ctorParameters=[],FormsModule}(),c=function(){function ReactiveFormsModule(){}return ReactiveFormsModule.decorators=[{type:r.NgModule,args:[{declarations:[i.c],providers:[a.a,o.b],exports:[i.b,i.c]}]}],ReactiveFormsModule.ctorParameters=[],ReactiveFormsModule}()},function(t,e,n){"use strict";var r=n(178),i=n(85),o=n(118),a=n(43),s=n(36),c=n(119),l=n(60),u=n(179),p=n(86),d=n(180),f=n(120),h=n(182),m=n(183),v=n(87),g=n(88),b=n(123),y=n(124),_=n(184),w=n(323),x=n(125),C=n(38),S=n(496);n.o(r,"a")&&n.d(e,"AbstractControlDirective",function(){return r.a}),n.o(i,"a")&&n.d(e,"AbstractFormGroupDirective",function(){return i.a}),n.o(o,"a")&&n.d(e,"CheckboxControlValueAccessor",function(){return o.a}),n.o(a,"a")&&n.d(e,"ControlContainer",function(){return a.a}),n.o(s,"a")&&n.d(e,"NG_VALUE_ACCESSOR",function(){return s.a}),n.o(c,"a")&&n.d(e,"DefaultValueAccessor",function(){return c.a}),n.o(l,"a")&&n.d(e,"NgControl",function(){return l.a}),n.o(u,"b")&&n.d(e,"NgControlStatusGroup",function(){return u.b}),n.o(u,"a")&&n.d(e,"NgControlStatus",function(){return u.a}),n.o(p,"a")&&n.d(e,"NgForm",function(){return p.a}),n.o(d,"a")&&n.d(e,"NgModel",function(){return d.a}),n.o(f,"a")&&n.d(e,"NgModelGroup",function(){return f.a}),n.o(h,"a")&&n.d(e,"FormControlDirective",function(){return h.a}),n.o(m,"a")&&n.d(e,"FormControlName",function(){return m.a}),n.o(v,"a")&&n.d(e,"FormGroupDirective",function(){return v.a}),n.o(g,"b")&&n.d(e,"FormArrayName",function(){return g.b}),n.o(g,"a")&&n.d(e,"FormGroupName",function(){return g.a}),n.o(b,"b")&&n.d(e,"NgSelectOption",function(){return b.b}),n.o(b,"a")&&n.d(e,"SelectControlValueAccessor",function(){return b.a}),n.o(y,"a")&&n.d(e,"SelectMultipleControlValueAccessor",function(){return y.a}),n.o(_,"c")&&n.d(e,"MaxLengthValidator",function(){return _.c}),n.o(_,"b")&&n.d(e,"MinLengthValidator",function(){return _.b}),n.o(_,"d")&&n.d(e,"PatternValidator",function(){return _.d}),n.o(_,"a")&&n.d(e,"RequiredValidator",function(){return _.a}),n.o(w,"a")&&n.d(e,"FormBuilder",function(){return w.a}),n.o(x,"d")&&n.d(e,"AbstractControl",function(){return x.d}),n.o(x,"c")&&n.d(e,"FormArray",function(){return x.c}),n.o(x,"b")&&n.d(e,"FormControl",function(){return x.b}),n.o(x,"a")&&n.d(e,"FormGroup",function(){return x.a}),n.o(C,"c")&&n.d(e,"NG_ASYNC_VALIDATORS",function(){return C.c}),n.o(C,"b")&&n.d(e,"NG_VALIDATORS",function(){return C.b}),n.o(C,"a")&&n.d(e,"Validators",function(){return C.a});for(var k in S)["AbstractControlDirective","AbstractFormGroupDirective","CheckboxControlValueAccessor","ControlContainer","NG_VALUE_ACCESSOR","DefaultValueAccessor","NgControl","NgControlStatusGroup","NgControlStatus","NgForm","NgModel","NgModelGroup","FormControlDirective","FormControlName","FormGroupDirective","FormArrayName","FormGroupName","NgSelectOption","SelectControlValueAccessor","SelectMultipleControlValueAccessor","MaxLengthValidator","MinLengthValidator","PatternValidator","RequiredValidator","FormBuilder","AbstractControl","FormArray","FormControl","FormGroup","NG_ASYNC_VALIDATORS","NG_VALIDATORS","Validators","default"].indexOf(k)<0&&function(t){n.d(e,t,function(){return S[t]})}(k)},function(t,e,n){"use strict";var r=n(499);n.d(e,"a",function(){return r.a})},function(t,e,n){"use strict";var r=n(101),i=n(0),o=n(325),a=n(502);n(500);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=([{provide:r.a,useClass:a.a}],n.i(i.createPlatformFactory)(r.b,"browserDynamic",o.a))},function(t,e,n){"use strict";var r=n(325),i=n(326);({INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS:r.a,ResourceLoaderImpl:i.a})},function(t,e,n){"use strict";var r=n(185);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=r.__platform_browser_private__.INTERNAL_BROWSER_PLATFORM_PROVIDERS;r.__platform_browser_private__.getDOM},function(t,e,n){"use strict";var r=n(101),i=n(324);n.d(e,"a",function(){return a});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a=function(t){function CachedResourceLoader(){if(t.call(this),this._cache=i.b.$templateCache,null==this._cache)throw new Error("CachedResourceLoader: Template cache was not found in $templateCache.")}return o(CachedResourceLoader,t),CachedResourceLoader.prototype.get=function(t){return this._cache.hasOwnProperty(t)?Promise.resolve(this._cache[t]):Promise.reject("CachedResourceLoader: Did not find cached template for "+t)},CachedResourceLoader}(r.a)},function(t,e,n){"use strict";var r=n(15),i=n(44),o=n(25);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},s=function(t){function GenericBrowserDomAdapter(){var e=this;t.call(this),this._animationPrefix=null,this._transitionEnd=null;try{var r=this.createElement("div",this.defaultDoc());if(n.i(o.b)(this.getStyle(r,"animationName")))this._animationPrefix="";else for(var a=["Webkit","Moz","O","ms"],s=0;s<a.length;s++)if(n.i(o.b)(this.getStyle(r,a[s]+"AnimationName"))){this._animationPrefix="-"+a[s].toLowerCase()+"-";break}var c={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};i.a.forEach(c,function(t,i){n.i(o.b)(e.getStyle(r,i))&&(e._transitionEnd=t)})}catch(l){this._animationPrefix=null,this._transitionEnd=null}}return a(GenericBrowserDomAdapter,t),GenericBrowserDomAdapter.prototype.getDistributedNodes=function(t){return t.getDistributedNodes()},GenericBrowserDomAdapter.prototype.resolveAndSetHref=function(t,e,n){t.href=null==n?e:e+"/../"+n},GenericBrowserDomAdapter.prototype.supportsDOMEvents=function(){return!0},GenericBrowserDomAdapter.prototype.supportsNativeShadowDOM=function(){return n.i(o.i)(this.defaultDoc().body.createShadowRoot)},GenericBrowserDomAdapter.prototype.getAnimationPrefix=function(){return n.i(o.b)(this._animationPrefix)?this._animationPrefix:""},GenericBrowserDomAdapter.prototype.getTransitionEnd=function(){return n.i(o.b)(this._transitionEnd)?this._transitionEnd:""},GenericBrowserDomAdapter.prototype.supportsAnimation=function(){return n.i(o.b)(this._animationPrefix)&&n.i(o.b)(this._transitionEnd)},GenericBrowserDomAdapter}(r.b)},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function supportsState(){return!!window.history.pushState}e.a=supportsState},function(t,e,n){"use strict";var r=n(15);n.d(e,"a",function(){return i});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var i=function(){function Title(){}return Title.prototype.getTitle=function(){return n.i(r.a)().getTitle()},Title.prototype.setTitle=function(t){n.i(r.a)().setTitle(t)},Title}()},function(t,e,n){"use strict";var r=n(0),i=n(15),o=n(512),a=n(25);n.d(e,"a",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function ChangeDetectionPerfRecord(t,e){this.msPerTick=t,this.numTicks=e}return ChangeDetectionPerfRecord}(),c=function(){function AngularTools(t){this.profiler=new l(t)}return AngularTools}(),l=function(){function AngularProfiler(t){this.appRef=t.injector.get(r.ApplicationRef)}return AngularProfiler.prototype.timeChangeDetection=function(t){var e=n.i(a.b)(t)&&t.record,r="Change Detection",c=n.i(a.b)(o.a.console.profile);e&&c&&o.a.console.profile(r);for(var l=n.i(i.a)().performanceNow(),u=0;u<5||n.i(i.a)().performanceNow()-l<500;)this.appRef.tick(),u++;var p=n.i(i.a)().performanceNow();e&&c&&o.a.console.profileEnd(r);var d=(p-l)/u;return o.a.console.log("ran "+u+" change detection cycles"),o.a.console.log(a.o.toFixed(d,2)+" ms per check"),new s(d,u)},AngularProfiler}()},function(t,e,n){"use strict";function enableDebugTools(t){return o.ng=new i.a(t),t}function disableDebugTools(){delete o.ng}var r=n(25),i=n(506);e.b=enableDebugTools,e.a=disableDebugTools;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=r.a},function(t,e,n){"use strict";var r=n(15),i=n(25);n.d(e,"a",function(){return o});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=function(){function By(){}return By.all=function(){return function(t){return!0}},By.css=function(t){return function(e){return!!n.i(i.b)(e.nativeElement)&&n.i(r.a)().elementMatches(e.nativeElement,t)}},By.directive=function(t){return function(e){return e.providerTokens.indexOf(t)!==-1}},By}()},function(t,e,n){"use strict";var r=n(44),i=n(70);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var o=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},a={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0},s=function(t){function HammerGesturesPluginCommon(){t.call(this)}return o(HammerGesturesPluginCommon,t),HammerGesturesPluginCommon.prototype.supports=function(t){return t=t.toLowerCase(),r.a.contains(a,t)},HammerGesturesPluginCommon}(i.b)},function(t,e,n){"use strict";function _populateStyles(t,e,s){var c={};return e.styles.forEach(function(t){i.a.forEach(t,function(t,e){var i=n.i(a.a)(e);c[i]=t==r.AUTO_STYLE?t:t.toString()+_resolveStyleUnit(t,e,i)})}),i.a.forEach(s,function(t,e){n.i(o.b)(c[e])||(c[e]=t)}),c}function _resolveStyleUnit(t,e,r){var i="";if(_isPixelDimensionStyle(r)&&0!=t&&"0"!=t)if(n.i(o.h)(t))i="px";else if(0==_findDimensionalSuffix(t.toString()).length)throw new Error("Please provide a CSS unit value for "+e+":"+t);return i}function _findDimensionalSuffix(t){for(var e=0;e<t.length;e++){var n=o.g.charCodeAt(t,e);if(!(n>=l&&n<=u||n==p))return t.substring(e,t.length)}return""}function _isPixelDimensionStyle(t){switch(t){case"width":case"height":case"minWidth":case"minHeight":case"maxWidth":case"maxHeight":case"left":case"top":case"bottom":case"right":case"fontSize":case"outlineWidth":case"outlineOffset":case"paddingTop":case"paddingLeft":case"paddingBottom":case"paddingRight":case"marginTop":case"marginLeft":case"marginBottom":case"marginRight":case"borderRadius":case"borderWidth":case"borderTopWidth":case"borderLeftWidth":case"borderRightWidth":case"borderBottomWidth":case"textIndent":return!0;default:return!1}}var r=n(0),i=n(44),o=n(25),a=n(333),s=n(511);n.d(e,"a",function(){return c});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var c=function(){function WebAnimationsDriver(){}return WebAnimationsDriver.prototype.animate=function(t,e,r,i,a,c){var l=[],u={};if(n.i(o.b)(e)&&e.styles.length>0&&(u=_populateStyles(t,e,{}),u.offset=0,l.push(u)),r.forEach(function(e){var n=_populateStyles(t,e.styles,u);n.offset=e.offset,l.push(n)}),1==l.length){var p=l[0];p.offset=null,l=[p,p]}var d={duration:i,delay:a,fill:"both"};return c&&(d.easing=c),new s.a(t,l,d)},WebAnimationsDriver}(),l=48,u=57,p=46},function(t,e,n){"use strict";function _computeStyle(t,e){return n.i(a.a)().getComputedStyle(t)[e]}var r=n(0),i=n(44),o=n(25),a=n(15);n.d(e,"a",function(){return s});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var s=function(){function WebAnimationsPlayer(t,e,n){this.element=t,this.keyframes=e,this.options=n,this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._initialized=!1,this._started=!1,this.parentPlayer=null,this._duration=n.duration}return WebAnimationsPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,n.i(o.b)(this.parentPlayer)||this.destroy(),this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},WebAnimationsPlayer.prototype.init=function(){var t=this;if(!this._initialized){this._initialized=!0;var e=this.keyframes.map(function(e){var n={};return i.a.forEach(e,function(e,i){n[i]=e==r.AUTO_STYLE?_computeStyle(t.element,i):e}),n});this._player=this._triggerWebAnimation(this.element,e,this.options),this.reset(),this._player.onfinish=function(){return t._onFinish()}}},WebAnimationsPlayer.prototype._triggerWebAnimation=function(t,e,n){return t.animate(e,n)},WebAnimationsPlayer.prototype.onStart=function(t){this._onStartFns.push(t)},WebAnimationsPlayer.prototype.onDone=function(t){this._onDoneFns.push(t)},WebAnimationsPlayer.prototype.play=function(){this.init(),this.hasStarted()||(this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[],this._started=!0),this._player.play()},WebAnimationsPlayer.prototype.pause=function(){this.init(),this._player.pause()},WebAnimationsPlayer.prototype.finish=function(){this.init(),this._onFinish(),this._player.finish()},WebAnimationsPlayer.prototype.reset=function(){this._player.cancel()},WebAnimationsPlayer.prototype.restart=function(){this.reset(),this.play()},WebAnimationsPlayer.prototype.hasStarted=function(){return this._started},WebAnimationsPlayer.prototype.destroy=function(){this.reset(),this._onFinish()},Object.defineProperty(WebAnimationsPlayer.prototype,"totalTime",{get:function(){return this._duration},enumerable:!0,configurable:!0}),WebAnimationsPlayer.prototype.setPosition=function(t){this._player.currentTime=t*this.totalTime},WebAnimationsPlayer.prototype.getPosition=function(){return this._player.currentTime/this.totalTime},WebAnimationsPlayer}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var r="undefined"!=typeof window&&window||{};r.document,r.location,r.gc?function(){return r.gc()}:function(){return null},r.performance?r.performance:null,r.Event,r.MouseEvent,r.KeyboardEvent,r.EventTarget,r.History,r.Location,r.EventListener},function(t,e,n){"use strict";var r=n(327),i=n(505),o=n(507),a=n(186),s=n(508),c=n(187),l=n(126),u=n(70),p=n(189),d=n(335),f=n(514);n.o(r,"d")&&n.d(e,"BrowserModule",function(){return r.d}),n.o(r,"e")&&n.d(e,"platformBrowser",function(){return r.e}),n.o(i,"a")&&n.d(e,"Title",function(){return i.a}),n.o(o,"a")&&n.d(e,"disableDebugTools",function(){return o.a}),n.o(o,"b")&&n.d(e,"enableDebugTools",function(){return o.b}),n.o(a,"a")&&n.d(e,"AnimationDriver",function(){return a.a}),n.o(s,"a")&&n.d(e,"By",function(){return s.a}),n.o(c,"b")&&n.d(e,"NgProbeToken",function(){return c.b}),n.o(l,"a")&&n.d(e,"DOCUMENT",function(){return l.a}),n.o(u,"c")&&n.d(e,"EVENT_MANAGER_PLUGINS",function(){return u.c}),n.o(u,"a")&&n.d(e,"EventManager",function(){return u.a}),n.o(p,"b")&&n.d(e,"HAMMER_GESTURE_CONFIG",function(){return p.b}),n.o(p,"c")&&n.d(e,"HammerGestureConfig",function(){return p.c}),n.o(d,"a")&&n.d(e,"DomSanitizer",function(){return d.a});for(var h in f)["BrowserModule","platformBrowser","Title","disableDebugTools","enableDebugTools","AnimationDriver","By","NgProbeToken","DOCUMENT","EVENT_MANAGER_PLUGINS","EventManager","HAMMER_GESTURE_CONFIG","HammerGestureConfig","DomSanitizer","default"].indexOf(h)<0&&function(t){n.d(e,t,function(){return f[t]})}(h)},function(t,e,n){"use strict";var r=n(327),i=n(328),o=n(329),a=n(330),s=n(187),c=n(15),l=n(188),u=n(331),p=n(189),d=n(332),f=n(190);n.d(e,"__platform_browser_private__",function(){return h});var h={BrowserPlatformLocation:o.a,DomAdapter:c.b,BrowserDomAdapter:i.a,BrowserGetTestability:a.a,getDOM:c.a,setRootDomAdapter:c.c,DomRootRenderer_:l.b,DomRootRenderer:l.a,DomSharedStylesHost:f.a,SharedStylesHost:f.b,ELEMENT_PROBE_PROVIDERS:s.a,DomEventsPlugin:u.a,KeyEventsPlugin:d.a,HammerGesturesPlugin:p.a,initDomAdapter:r.a,INTERNAL_BROWSER_PLATFORM_PROVIDERS:r.b,BROWSER_SANITIZATION_PROVIDERS:r.c}},function(t,e,n){"use strict";function getInertElement(){if(a)return a;s=n.i(i.a)();var t=s.createElement("template");if("content"in t)return t;var e=s.createHtmlDocument();if(a=s.querySelector(e,"body"),null==a){var r=s.createElement("html",e);a=s.createElement("body",e),s.appendChild(r,a),s.appendChild(e,r)}return a}function tagSet(t){for(var e={},n=0,r=t.split(",");n<r.length;n++){var i=r[n];e[i]=!0}return e}function merge(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];for(var n={},r=0,i=t;r<i.length;r++){var o=i[r];for(var a in o)o.hasOwnProperty(a)&&(n[a]=!0)}return n}function encodeEntities(t){return t.replace(/&/g,"&amp;").replace(_,function(t){var e=t.charCodeAt(0),n=t.charCodeAt(1);return"&#"+(1024*(e-55296)+(n-56320)+65536)+";"}).replace(w,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function stripCustomNsAttrs(t){s.attributeMap(t).forEach(function(e,n){"xmlns:ns1"!==n&&0!==n.indexOf("ns1:")||s.removeAttribute(t,n)});for(var e=0,n=s.childNodesAsList(t);e<n.length;e++){var r=n[e];s.isElementNode(r)&&stripCustomNsAttrs(r)}}function sanitizeHtml(t){try{var e=getInertElement(),i=t?String(t):"",o=5,c=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=c,s.setInnerHTML(e,i),s.defaultDoc().documentMode&&stripCustomNsAttrs(e),c=s.getInnerHTML(e)}while(i!==c);for(var l=new y,u=l.sanitizeChildren(s.getTemplateContent(e)||e),p=s.getTemplateContent(e)||e,d=0,f=s.childNodesAsList(p);d<f.length;d++){var h=f[d];s.removeChild(p,h)}return n.i(r.isDevMode)()&&l.sanitizedSomething&&s.log("WARNING: sanitizing HTML stripped some content (see http://g.co/ng/security#xss)."),u}catch(m){throw a=null,m}}var r=n(0),i=n(15),o=n(191);e.a=sanitizeHtml;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a=null,s=null,c=tagSet("area,br,col,hr,img,wbr"),l=tagSet("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),u=tagSet("rp,rt"),p=merge(u,l),d=merge(l,tagSet("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),f=merge(u,tagSet("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),h=merge(c,d,f,p),m=tagSet("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),v=tagSet("srcset"),g=tagSet("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),b=merge(m,v,g),y=function(){function SanitizingHtmlSerializer(){this.sanitizedSomething=!1,this.buf=[]}return SanitizingHtmlSerializer.prototype.sanitizeChildren=function(t){for(var e=t.firstChild;e;)if(s.isElementNode(e)?this.startElement(e):s.isTextNode(e)?this.chars(s.nodeValue(e)):this.sanitizedSomething=!0,s.firstChild(e))e=s.firstChild(e);else for(;e;){if(s.isElementNode(e)&&this.endElement(e),s.nextSibling(e)){e=s.nextSibling(e);break}e=s.parentElement(e)}return this.buf.join("")},SanitizingHtmlSerializer.prototype.startElement=function(t){var e=this,r=s.nodeName(t).toLowerCase();return h.hasOwnProperty(r)?(this.buf.push("<"),this.buf.push(r),s.attributeMap(t).forEach(function(t,r){var i=r.toLowerCase();return b.hasOwnProperty(i)?(m[i]&&(t=n.i(o.a)(t)),v[i]&&(t=n.i(o.b)(t)),e.buf.push(" "),e.buf.push(r),e.buf.push('="'),e.buf.push(encodeEntities(t)),void e.buf.push('"')):void(e.sanitizedSomething=!0)}),void this.buf.push(">")):void(this.sanitizedSomething=!0)},SanitizingHtmlSerializer.prototype.endElement=function(t){var e=s.nodeName(t).toLowerCase();h.hasOwnProperty(e)&&!c.hasOwnProperty(e)&&(this.buf.push("</"),this.buf.push(e),this.buf.push(">"))},SanitizingHtmlSerializer.prototype.chars=function(t){this.buf.push(encodeEntities(t))},SanitizingHtmlSerializer}(),_=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,w=/([^\#-~ |!])/g},function(t,e,n){"use strict";function hasBalancedQuotes(t){for(var e=!0,n=!0,r=0;r<t.length;r++){var i=t.charAt(r);"'"===i&&n?e=!e:'"'===i&&e&&(n=!n)}return e&&n}function sanitizeStyle(t){if(t=String(t).trim(),!t)return"";var e=t.match(p);return e&&n.i(o.a)(e[1])===e[1]||t.match(u)&&hasBalancedQuotes(t)?t:(n.i(r.isDevMode)()&&n.i(i.a)().log("WARNING: sanitizing unsafe style value "+t+" (see http://g.co/ng/security#xss)."),"unsafe")}var r=n(0),i=n(15),o=n(191);e.a=sanitizeStyle;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var a="[-,.\"'%_!# a-zA-Z0-9]+",s="(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|3d)?",c="(?:rgb|hsl)a?",l="\\([-0-9.%, a-zA-Z]+\\)",u=new RegExp("^("+a+"|(?:"+s+"|"+c+")"+l+")$","g"),p=/^url\(([^)]+)\)$/},function(t,e,n){"use strict";function noMatch(t){return new r.Observable(function(e){return e.error(new v(t))})}function absoluteRedirect(t){return new r.Observable(function(e){return e.error(new g(t))})}function canLoadFails(t){return new r.Observable(function(e){return e.error(new f.b("Cannot load children because the guard of the route \"path: '"+t.path+"'\" returned false"))})}function applyRedirects(t,e,n,r){return new b(t,e,n,r).apply()}function runGuards(t,e){var r=e.canLoad;if(!r||0===r.length)return n.i(o.of)(!0);var a=l.map.call(n.i(i.from)(r),function(r){var i=t.get(r);return i.canLoad?n.i(m.b)(i.canLoad(e)):n.i(m.b)(i(e))});return n.i(m.f)(a)}function match(t,e,n){var r={matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}};if(""===e.path)return"full"===e.pathMatch&&(t.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};for(var i=e.path,o=i.split("/"),a={},s=[],c=0,l=0;l<o.length;++l){if(c>=n.length)return r;var u=n[c],p=o[l],d=p.startsWith(":");if(!d&&p!==u.path)return r;d&&(a[p.substring(1)]=u),s.push(u),c++}return"full"===e.pathMatch&&(t.hasChildren()||c<n.length)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:s,lastChild:c,positionalParamSegments:a}}function applyRedirectCommands(t,e,n){var r=e.startsWith("/")?e.substring(1):e;return""===r?[]:createSegments(e,r.split("/"),t,n)}function createSegments(t,e,n,r){return e.map(function(e){return e.startsWith(":")?findPosParam(e,r,t):findOrCreateSegment(e,n)})}function findPosParam(t,e,n){var r=t.substring(1),i=e[r];if(!i)throw new Error("Cannot redirect to '"+n+"'. Cannot find '"+t+"'.");return i}function findOrCreateSegment(t,e){for(var n=0,r=0,i=e;r<i.length;r++){var o=i[r];if(o.path===t)return e.splice(n),o;n++}return new h.c(t,{})}function split(t,e,n,r){if(n.length>0&&containsEmptyPathRedirectsWithNamedOutlets(t,n,r)){var i=new h.a(e,createChildrenForEmptySegments(r,new h.a(n,t.children)));return{segmentGroup:mergeTrivialChildren(i),slicedSegments:[]}}if(0===n.length&&containsEmptyPathRedirects(t,n,r)){var i=new h.a(t.segments,addEmptySegmentsToChildrenIfNeeded(t,n,r,t.children));return{segmentGroup:mergeTrivialChildren(i),slicedSegments:n}}return{segmentGroup:t,slicedSegments:n}}function mergeTrivialChildren(t){if(1===t.numberOfChildren&&t.children[f.a]){var e=t.children[f.a];return new h.a(t.segments.concat(e.segments),e.children)}return t}function addEmptySegmentsToChildrenIfNeeded(t,e,r,i){for(var o={},a=0,s=r;a<s.length;a++){var c=s[a];emptyPathRedirect(t,e,c)&&!i[getOutlet(c)]&&(o[getOutlet(c)]=new h.a([],{}))}return n.i(m.g)(i,o)}function createChildrenForEmptySegments(t,e){var n={};n[f.a]=e;for(var r=0,i=t;r<i.length;r++){var o=i[r];""===o.path&&getOutlet(o)!==f.a&&(n[getOutlet(o)]=new h.a([],{}))}return n}function containsEmptyPathRedirectsWithNamedOutlets(t,e,n){return n.filter(function(n){return emptyPathRedirect(t,e,n)&&getOutlet(n)!==f.a}).length>0}function containsEmptyPathRedirects(t,e,n){return n.filter(function(n){return emptyPathRedirect(t,e,n)}).length>0}function emptyPathRedirect(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&(""===n.path&&void 0!==n.redirectTo)}function getOutlet(t){return t.outlet?t.outlet:f.a}var r=n(9),i=(n.n(r),n(240)),o=(n.n(i),n(96)),a=(n.n(o),n(742)),s=(n.n(a),n(421)),c=(n.n(s),n(745)),l=(n.n(c),n(97)),u=(n.n(l),n(143)),p=(n.n(u),n(246)),d=(n.n(p),n(128)),f=n(45),h=n(61),m=n(46);e.a=applyRedirects;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var v=function(){function NoMatch(t){void 0===t&&(t=null),this.segmentGroup=t}return NoMatch}(),g=function(){function AbsoluteRedirect(t){this.segments=t}return AbsoluteRedirect}(),b=function(){function ApplyRedirects(t,e,n,r){this.injector=t,this.configLoader=e,this.urlTree=n,this.config=r,this.allowRedirects=!0}return ApplyRedirects.prototype.apply=function(){var t=this,e=this.expandSegmentGroup(this.injector,this.config,this.urlTree.root,f.a),n=l.map.call(e,function(e){return t.createUrlTree(e)});return a._catch.call(n,function(e){if(e instanceof g){t.allowRedirects=!1;var n=new h.a([],(r={},r[f.a]=new h.a(e.segments,{}),r));return t.match(n)}throw e instanceof v?t.noMatchError(e):e;var r})},ApplyRedirects.prototype.match=function(t){var e=this,n=this.expandSegmentGroup(this.injector,this.config,t,f.a),r=l.map.call(n,function(t){return e.createUrlTree(t)});return a._catch.call(r,function(t){throw t instanceof v?e.noMatchError(t):t})},ApplyRedirects.prototype.noMatchError=function(t){return new Error("Cannot match any routes: '"+t.segmentGroup+"'")},ApplyRedirects.prototype.createUrlTree=function(t){var e=t.segments.length>0?new h.a([],(n={},n[f.a]=t,n)):t;return new h.b(e,this.urlTree.queryParams,this.urlTree.fragment);var n},ApplyRedirects.prototype.expandSegmentGroup=function(t,e,n,r){return 0===n.segments.length&&n.hasChildren()?l.map.call(this.expandChildren(t,e,n),function(t){return new h.a([],t)}):this.expandSegment(t,n,e,n.segments,r,!0)},ApplyRedirects.prototype.expandChildren=function(t,e,r){var i=this;return n.i(m.e)(r.children,function(n,r){return i.expandSegmentGroup(t,e,r,n)})},ApplyRedirects.prototype.expandSegment=function(t,e,r,i,u,d){var f=this,h=o.of.apply(void 0,r),m=l.map.call(h,function(s){var c=f.expandSegmentAgainstRoute(t,e,r,s,i,u,d);return a._catch.call(c,function(t){if(t instanceof v)return n.i(o.of)(null);throw t})}),g=s.concatAll.call(m),b=c.first.call(g,function(t){return!!t});return a._catch.call(b,function(t,n){throw t instanceof p.EmptyError?new v(e):t})},ApplyRedirects.prototype.expandSegmentAgainstRoute=function(t,e,n,r,i,o,a){return getOutlet(r)!==o?noMatch(e):void 0===r.redirectTo||a&&this.allowRedirects?void 0===r.redirectTo?this.matchSegmentAgainstRoute(t,e,r,i):this.expandSegmentAgainstRouteUsingRedirect(t,e,n,r,i,o):noMatch(e)},ApplyRedirects.prototype.expandSegmentAgainstRouteUsingRedirect=function(t,e,n,r,i,o){return"**"===r.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(r):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,r,i,o)},ApplyRedirects.prototype.expandWildCardWithParamsAgainstRouteUsingRedirect=function(t){var e=applyRedirectCommands([],t.redirectTo,{});return t.redirectTo.startsWith("/")?absoluteRedirect(e):n.i(o.of)(new h.a(e,{}))},ApplyRedirects.prototype.expandRegularSegmentAgainstRouteUsingRedirect=function(t,e,n,r,i,o){var a=match(e,r,i),s=a.matched,c=a.consumedSegments,l=a.lastChild,u=a.positionalParamSegments;if(!s)return noMatch(e);var p=applyRedirectCommands(c,r.redirectTo,u);return r.redirectTo.startsWith("/")?absoluteRedirect(p):this.expandSegment(t,e,n,p.concat(i.slice(l)),o,!1)},ApplyRedirects.prototype.matchSegmentAgainstRoute=function(t,e,r,i){var a=this;if("**"===r.path)return n.i(o.of)(new h.a(i,{}));var s=match(e,r,i),c=s.matched,p=s.consumedSegments,d=s.lastChild;if(!c)return noMatch(e);var m=i.slice(d),v=this.getChildConfig(t,r);return u.mergeMap.call(v,function(t){var r=t.injector,i=t.routes,s=split(e,p,m,i),c=s.segmentGroup,u=s.slicedSegments;if(0===u.length&&c.hasChildren()){var d=a.expandChildren(r,i,c);return l.map.call(d,function(t){return new h.a(p,t)})}if(0===i.length&&0===u.length)return n.i(o.of)(new h.a(p,{}));var d=a.expandSegment(r,c,i,u,f.a,!0);return l.map.call(d,function(t){return new h.a(p.concat(t.segments),t.children)})})},ApplyRedirects.prototype.getChildConfig=function(t,e){var r=this;return e.children?n.i(o.of)(new d.a(e.children,t,null)):e.loadChildren?u.mergeMap.call(runGuards(t,e),function(i){return i?e._loadedConfig?n.i(o.of)(e._loadedConfig):l.map.call(r.configLoader.load(t,e.loadChildren),function(t){return e._loadedConfig=t,t}):canLoadFails(e)}):n.i(o.of)(new d.a([],t,null))},ApplyRedirects}()},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function validateConfig(t){t.forEach(validateNode)}function validateNode(t){if(Array.isArray(t))throw new Error("Invalid route configuration: Array cannot be specified");if(t.redirectTo&&t.children)throw new Error("Invalid configuration of route '"+t.path+"': redirectTo and children cannot be used together");if(t.redirectTo&&t.loadChildren)throw new Error("Invalid configuration of route '"+t.path+"': redirectTo and loadChildren cannot be used together");if(t.children&&t.loadChildren)throw new Error("Invalid configuration of route '"+t.path+"': children and loadChildren cannot be used together");if(t.redirectTo&&t.component)throw new Error("Invalid configuration of route '"+t.path+"': redirectTo and component cannot be used together");if(void 0===t.redirectTo&&!t.component&&!t.children&&!t.loadChildren)throw new Error("Invalid configuration of route '"+t.path+"': one of the following must be provided (component or redirectTo or children or loadChildren)");if(void 0===t.path)throw new Error("Invalid route configuration: routes must have path specified");if(t.path.startsWith("/"))throw new Error("Invalid route configuration of route '"+t.path+"': path cannot start with a slash");if(""===t.path&&void 0!==t.redirectTo&&void 0===t.pathMatch){var e="The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.";throw new Error("Invalid route configuration of route '{path: \""+t.path+'", redirectTo: "'+t.redirectTo+"\"}': please provide 'pathMatch'. "+e)}if(void 0!==t.pathMatch&&"full"!==t.pathMatch&&"prefix"!==t.pathMatch)throw new Error("Invalid configuration of route '"+t.path+"': pathMatch can only be set to 'prefix' or 'full'")}e.a=validateConfig},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function createRouterState(t,e){var n=createNode(t._root,e?e._root:void 0);return new i.a(n,t)}function createNode(t,e){if(e&&equalRouteSnapshots(e.value.snapshot,t.value)){var n=e.value;n._futureSnapshot=t.value;var r=createOrReuseChildren(t,e);return new o.b(n,r)}var n=createActivatedRoute(t.value),r=t.children.map(function(t){return createNode(t)});return new o.b(n,r)}function createOrReuseChildren(t,e){return t.children.map(function(t){for(var n=0,r=e.children;n<r.length;n++){var i=r[n];if(equalRouteSnapshots(i.value.snapshot,t.value))return createNode(t,i)}return createNode(t)})}function createActivatedRoute(t){return new i.b(new r.BehaviorSubject(t.url),new r.BehaviorSubject(t.params),new r.BehaviorSubject(t.queryParams),new r.BehaviorSubject(t.fragment),new r.BehaviorSubject(t.data),t.outlet,t.component,t)}function equalRouteSnapshots(t,e){return t._routeConfig===e._routeConfig}var r=n(415),i=(n.n(r),n(71)),o=n(193);e.a=createRouterState},function(t,e,n){"use strict";/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+function createUrlTree(t,e,n,r,o){if(0===n.length)return tree(e.root,e.root,e,r,o);var a=normalizeCommands(n);if(validateCommands(a),navigateToRoot(a))return tree(e.root,new i.a([],{}),e,r,o);var s=findStartingPosition(a,e,t),c=s.processChildren?updateSegmentGroupChildren(s.segmentGroup,s.index,a.commands):updateSegmentGroup(s.segmentGroup,s.index,a.commands);return tree(s.segmentGroup,c,e,r,o)}function validateCommands(t){if(t.isAbsolute&&t.commands.length>0&&isMatrixParams(t.commands[0]))throw new Error("Root segment cannot have matrix parameters");var e=t.commands.filter(function(t){return"object"==typeof t&&void 0!==t.outlets});if(e.length>0&&e[0]!==t.commands[t.commands.length-1])throw new Error("{outlets:{}} has to be the last command")}function isMatrixParams(t){return"object"==typeof t&&void 0===t.outlets&&void 0===t.segmentPath}function tree(t,e,n,r,o){return n.root===t?new i.b(e,stringify(r),o):new i.b(replaceSegment(n.root,t,e),stringify(r),o)}function replaceSegment(t,e,r){var a={};return n.i(o.c)(t.children,function(t,n){t===e?a[n]=r:a[n]=replaceSegment(t,e,r)}),new i.a(t.segments,a)}function navigateToRoot(t){return t.isAbsolute&&1===t.commands.length&&"/"==t.commands[0]}function normalizeCommands(t){if("string"==typeof t[0]&&1===t.length&&"/"==t[0])return new a((!0),0,t);for(var e=0,r=!1,i=[],s=function(a){var s=t[a];if("object"==typeof s&&void 0!==s.outlets){var c={};return n.i(o.c)(s.outlets,function(t,e){"string"==typeof t?c[e]=t.split("/"):c[e]=t}),i.push({outlets:c}),"continue"}if("object"==typeof s&&void 0!==s.segmentPath)return i.push(s.segmentPath),"continue";if("string"!=typeof s)return i.push(s),"continue";if(0===a)for(var l=s.split("/"),u=0;u<l.length;++u){var p=l[u];0==u&&"."==p||(0==u&&""==p?r=!0:".."==p?e++:""!=p&&i.push(p))}else i.push(s)},c=0;c<t.length;++c)s(c);return new a(r,e,i)}function findStartingPosition(t,e,n){if(t.isAbsolute)return new s(e.root,(!0),0);if(n.snapshot._lastPathIndex===-1)return new s(n.snapshot._urlSegment,(!0),0);var r=isMatrixParams(t.commands[0])?0:1,i=n.snapshot._lastPathIndex+r;return createPositionApplyingDoubleDots(n.snapshot._urlSegment,i,t.numberOfDoubleDots)}function createPositionApplyingDoubleDots(t,e,n){for(var r=t,i=e,o=n;o>i;){if(o-=i,r=r.parent,!r)throw new Error("Invalid number of '../'");i=r.segments.length}return new s(r,(!1),i-o)}function getPath(t){return""+t}function getOutlets(t){return"object"!=typeof t[0]?(e={},e[r.a]=t,e):void 0===t[0].outlets?(n={},n[r.a]=t,n):t[0].outlets;var e,n}function updateSegmentGroup(t,e,n){if(t||(t=new i.a([],{})),0===t.segments.length&&t.hasChildren())return updateSegmentGroupChildren(t,e,n);var r=prefixedWith(t,e,n),o=n.slice(r.lastIndex);return r.match&&0===o.length?new i.a(t.segments,{}):r.match&&!t.hasChildren()?createNewSegmentGroup(t,e,n):r.match?updateSegmentGroupChildren(t,0,o):createNewSegmentGroup(t,e,n)}function updateSegmentGroupChildren(t,e,r){if(0===r.length)return new i.a(t.segments,{});var a=getOutlets(r),s={};return n.i(o.c)(a,function(n,r){null!==n&&(s[r]=updateSegmentGroup(t.children[r],e,n))}),n.i(o.c)(t.children,function(t,e){void 0===a[e]&&(s[e]=t)}),new i.a(t.segments,s)}function prefixedWith(t,e,n){for(var r=0,i=e,o={match:!1,lastIndex:0};i<t.segments.length;){if(r>=n.length)return o;var a=t.segments[i],s=getPath(n[r]),c=r<n.length-1?n[r+1]:null;if(s&&c&&"object"==typeof c&&void 0===c.outlets){if(!compare(s,c,a))return o;r+=2}else{if(!compare(s,{},a))return o;r++}i++}return{match:!0,lastIndex:r}}function createNewSegmentGroup(t,e,n){for(var r=t.segments.slice(0,e),o=0;o<n.length;){if("object"==typeof n[o]&&void 0!==n[o].outlets){var a=createNewSegmentChldren(n[o].outlets);return new i.a(r,a)}if(0===o&&isMatrixParams(n[0])){var s=t.segments[e];r.push(new i.c(s.path,n[0])),o++}else{var c=getPath(n[o]),l=o<n.length-1?n[o+1]:null;c&&l&&isMatrixParams(l)?(r.push(new i.c(c,stringify(l))),o+=2):(r.push(new i.c(c,{})),o++)}}return new i.a(r,{})}function createNewSegmentChldren(t){var e={};return n.i(o.c)(t,function(t,n){null!==t&&(e[n]=createNewSegmentGroup(new i.a([],{}),0,t))}),e}function stringify(t){var e={};return n.i(o.c)(t,function(t,n){return e[n]=""+t}),e}function compare(t,e,r){return t==r.path&&n.i(o.d)(e,r.parameters)}var r=n(45),i=n(61),o=n(46);e.a=createUrlTree;var a=function(){function NormalizedNavigationCommands(t,e,n){this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=n}return NormalizedNavigationCommands}(),s=function(){function Position(t,e,n){this.segmentGroup=t,this.processChildren=e,this.index=n}return Position}()},function(t,e,n){"use strict";var r=(n(192),n(336),n(337),n(127)),i=n(338),o=(n(129),n(71));n(45),n(61),n(522);n.o(r,"a")&&n.d(e,"b",function(){return r.a}),n.o(r,"b")&&n.d(e,"a",function(){return r.b}),n.o(i,"b")&&n.d(e,"d",function(){return i.b}),n.o(o,"b")&&n.d(e,"c",function(){return o.b})},function(t,e,n){"use strict";var r=n(128),i=n(338),o=n(46);({ROUTER_PROVIDERS:i.a,ROUTES:r.c,flatten:o.a})},function(t,e,n){"use strict";function recognize(t,e,n,r){return new d(t,e,n,r).recognize()}function sortActivatedRouteSnapshots(t){t.sort(function(t,e){return t.value.outlet===a.a?-1:e.value.outlet===a.a?1:t.value.outlet.localeCompare(e.value.outlet)})}function getChildConfig(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}function match(t,e,r,i){if(""===e.path){if("full"===e.pathMatch&&(t.hasChildren()||r.length>0))throw new u;var o=i?i.params:{};return{consumedSegments:[],lastChild:0,parameters:o}}for(var a=e.path,s=a.split("/"),l={},p=[],d=0,f=0;f<s.length;++f){if(d>=r.length)throw new u;var h=r[d],m=s[f],v=m.startsWith(":");if(!v&&m!==h.path)throw new u;v&&(l[m.substring(1)]=h.path),p.push(h),d++}if("full"===e.pathMatch&&(t.hasChildren()||d<r.length))throw new u;var g=n.i(c.g)(l,p[p.length-1].parameters);return{consumedSegments:p,lastChild:d,parameters:g}}function checkOutletNameUniqueness(t){var e={};t.forEach(function(t){var n=e[t.value.outlet];if(n){var r=n.url.map(function(t){return t.toString()}).join("/"),i=t.value.url.map(function(t){return t.toString()}).join("/");throw new Error("Two segments cannot have the same outlet name: '"+r+"' and '"+i+"'.")}e[t.value.outlet]=t.value})}function getSourceSegmentGroup(t){for(var e=t;e._sourceSegment;)e=e._sourceSegment;return e}function getPathIndexShift(t){for(var e=t,n=e._segmentIndexShift?e._segmentIndexShift:0;e._sourceSegment;)e=e._sourceSegment,n+=e._segmentIndexShift?e._segmentIndexShift:0;return n-1}function split(t,e,n,r){if(n.length>0&&containsEmptyPathMatchesWithNamedOutlets(t,n,r)){var i=new s.a(e,createChildrenForEmptyPaths(t,e,r,new s.a(n,t.children)));return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:[]}}if(0===n.length&&containsEmptyPathMatches(t,n,r)){var i=new s.a(t.segments,addEmptyPathsToChildrenIfNeeded(t,n,r,t.children));return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:n}}var i=new s.a(t.segments,t.children);return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:n}}function addEmptyPathsToChildrenIfNeeded(t,e,r,i){for(var o={},a=0,l=r;a<l.length;a++){var u=l[a];if(emptyPathMatch(t,e,u)&&!i[getOutlet(u)]){var p=new s.a([],{});p._sourceSegment=t,p._segmentIndexShift=t.segments.length,o[getOutlet(u)]=p}}return n.i(c.g)(i,o)}function createChildrenForEmptyPaths(t,e,n,r){var i={};i[a.a]=r,r._sourceSegment=t,r._segmentIndexShift=e.length;for(var o=0,c=n;o<c.length;o++){var l=c[o];if(""===l.path&&getOutlet(l)!==a.a){var u=new s.a([],{});u._sourceSegment=t,u._segmentIndexShift=e.length,i[getOutlet(l)]=u}}return i}function containsEmptyPathMatchesWithNamedOutlets(t,e,n){return n.filter(function(n){return emptyPathMatch(t,e,n)&&getOutlet(n)!==a.a}).length>0}function containsEmptyPathMatches(t,e,n){return n.filter(function(n){return emptyPathMatch(t,e,n)}).length>0}function emptyPathMatch(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&(""===n.path&&void 0===n.redirectTo)}function getOutlet(t){return t.outlet?t.outlet:a.a}function getData(t){return t.data?t.data:{}}function getResolve(t){return t.resolve?t.resolve:{}}var r=n(9),i=(n.n(r),n(96)),o=(n.n(i),n(71)),a=n(45),s=n(61),c=n(46),l=n(193);e.a=recognize;/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var u=function(){function NoMatch(){}return NoMatch}(),p=function(){function InheritedFromParent(t,e,n,r,i){this.parent=t,this.snapshot=e,this.params=n,this.data=r,this.resolve=i}return Object.defineProperty(InheritedFromParent.prototype,"allParams",{get:function(){return this.parent?n.i(c.g)(this.parent.allParams,this.params):this.params},enumerable:!0,configurable:!0}),Object.defineProperty(InheritedFromParent.prototype,"allData",{get:function(){return this.parent?n.i(c.g)(this.parent.allData,this.data):this.data},enumerable:!0,configurable:!0}),InheritedFromParent.empty=function(t){return new InheritedFromParent(null,t,{},{},new o.c(null,{}))},InheritedFromParent}(),d=function(){function Recognizer(t,e,n,r){this.rootComponentType=t,this.config=e,this.urlTree=n,this.url=r}return Recognizer.prototype.recognize=function(){try{var t=split(this.urlTree.root,[],[],this.config).segmentGroup,e=this.processSegmentGroup(this.config,t,p.empty(null),a.a),s=new o.d([],Object.freeze({}),Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,{},a.a,this.rootComponentType,null,this.urlTree.root,(-1),o.c.empty),c=new l.b(s,e);return n.i(i.of)(new o.e(this.url,c))}catch(u){return new r.Observable(function(t){return t.error(u)})}},Recognizer.prototype.processSegmentGroup=function(t,e,n,r){return 0===e.segments.length&&e.hasChildren()?this.processChildren(t,e,n):this.processSegment(t,e,0,e.segments,n,r)},Recognizer.prototype.processChildren=function(t,e,r){var i=this,o=n.i(s.d)(e,function(e,n){return i.processSegmentGroup(t,e,r,n)});return checkOutletNameUniqueness(o),sortActivatedRouteSnapshots(o),o},Recognizer.prototype.processSegment=function(t,e,n,r,i,o){for(var a=0,s=t;a<s.length;a++){var c=s[a];try{return this.processSegmentAgainstRoute(c,e,n,r,i,o)}catch(l){if(!(l instanceof u))throw l}}throw new u},Recognizer.prototype.processSegmentAgainstRoute=function(t,e,r,i,s,d){if(t.redirectTo)throw new u;if((t.outlet?t.outlet:a.a)!==d)throw new u;var f=new o.c(s.resolve,getResolve(t));if("**"===t.path){var h=i.length>0?n.i(c.i)(i).parameters:{},m=new o.d(i,Object.freeze(n.i(c.g)(s.allParams,h)),Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,n.i(c.g)(s.allData,getData(t)),d,t.component,t,getSourceSegmentGroup(e),getPathIndexShift(e)+i.length,f);return[new l.b(m,[])]}var v=match(e,t,i,s.snapshot),g=v.consumedSegments,b=v.parameters,y=v.lastChild,_=i.slice(y),w=getChildConfig(t),x=split(e,g,_,w),C=x.segmentGroup,S=x.slicedSegments,k=new o.d(g,Object.freeze(n.i(c.g)(s.allParams,b)),Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,n.i(c.g)(s.allData,getData(t)),d,t.component,t,getSourceSegmentGroup(e),getPathIndexShift(e)+g.length,f),E=t.component?p.empty(k):new p(s,k,b,getData(t),f);if(0===S.length&&C.hasChildren()){var P=this.processChildren(w,C,E);return[new l.b(k,P)]}if(0===w.length&&0===S.length)return[new l.b(k,[])];var P=this.processSegment(w,C,r+y,S,E,a.a);return[new l.b(k,P)]},Recognizer}()},function(t,e,n){"use strict";var r=n(0),i=n(185),o=n(339),a=n(706),s=(n.n(a),n(529)),c=n(709),l=(n.n(c),n(530)),u=n(527),p=n(528),d=n(525),f=n(350),h=n(351),m=n(347),v=n(341),g=n(342),b=n(343),y=n(344),_=n(345),w=n(346),x=n(348),C=n(349),S=n(356),k=n(340),E=n(352),P=n(353),A=n(354),T=n(355);n.d(e,"a",function(){return D});var O=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},M=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},D=function(){function AppModule(){}return AppModule=O([n.i(r.NgModule)({imports:[i.BrowserModule,d.a,a.Ng2BootstrapModule,c.ChartsModule],declarations:[o.a,f.a,h.a,m.a,v.a,g.a,b.a,y.a,_.a,w.a,x.a,C.a,S.a,k.a,E.a,P.a,A.a,T.a,s.a,p.a,l.a,u.a],bootstrap:[o.a]}),M("design:paramtypes",[])],AppModule)}()},function(t,e,n){"use strict";var r=n(89),i=n(350),o=n(351),a=n(347),s=n(341),c=n(342),l=n(343),u=n(344),p=n(345),d=n(346),f=n(348),h=n(349),m=n(356),v=n(340),g=n(352),b=n(353),y=n(354),_=n(355);n.d(e,"a",function(){return x});var w=[{path:"",redirectTo:"dashboard",pathMatch:"full"},{path:"",component:i.a,data:{title:"Home"},children:[{path:"dashboard",component:a.a,data:{title:"Dashboard"}},{path:"components",redirectTo:"components/buttons",pathMatch:"full"},{path:"components",data:{title:"Components"},children:[{path:"buttons",component:s.a,data:{title:"Buttons"}},{path:"cards",component:c.a,data:{title:"Cards"}},{path:"forms",component:l.a,data:{title:"Forms"}},{path:"social-buttons",component:u.a,data:{title:"Social buttons"}},{path:"switches",component:p.a,data:{title:"Switches"}},{path:"tables",component:d.a,data:{title:"Tables"}}]},{path:"icons",redirectTo:"icons/font-awesome",pathMatch:"full"},{path:"icons",data:{title:"Icons"},children:[{path:"font-awesome",component:f.a,data:{title:"Font Awesome"}},{path:"simple-line-icons",component:h.a,data:{title:"Simple Line Icons"}}]},{path:"widgets",component:m.a,data:{title:"Widgets"}},{path:"charts",component:v.a,data:{title:"Charts"}}]},{path:"pages",component:o.a,data:{title:"Pages"},children:[{path:"404",component:g.a,data:{title:"Page 404"}},{path:"500",component:b.a,data:{title:"Page 500"}},{path:"login",component:y.a,data:{title:"Login Page"}},{path:"register",component:_.a,data:{title:"Register Page"}}]}],x=r.d.forRoot(w)},function(t,e,n){"use strict";var r=(n(339),n(524));n.d(e,"a",function(){return r.a})},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return a});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function AsideToggleDirective(){}return AsideToggleDirective.prototype.toggleOpen=function(t){t.preventDefault(),document.querySelector("body").classList.toggle("aside-menu-open")},i([n.i(r.HostListener)("click",["$event"]),o("design:type",Function),o("design:paramtypes",[Object]),o("design:returntype",void 0)],AsideToggleDirective.prototype,"toggleOpen",null),AsideToggleDirective=i([n.i(r.Directive)({selector:".aside-toggle"}),o("design:paramtypes",[])],AsideToggleDirective)}()},function(t,e,n){"use strict";var r=n(0),i=n(89),o=n(416);n.n(o);n.d(e,"a",function(){return c});var a=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},s=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},c=function(){function BreadcrumbsComponent(t,e){this.router=t,this.route=e}return BreadcrumbsComponent.prototype.ngOnInit=function(){var t=this;this.router.events.filter(function(t){return t instanceof i.a}).subscribe(function(e){t.breadcrumbs=[];var n=t.route.root,r="";do{var i=n.children;n=null,i.forEach(function(e){if("primary"===e.outlet){var i=e.snapshot;r+="/"+i.url.map(function(t){return t.path}).join("/"),t.breadcrumbs.push({label:e.snapshot.data,url:r}),n=e}})}while(n)})},BreadcrumbsComponent=a([n.i(r.Component)({selector:"breadcrumbs",template:'\n    <li class="breadcrumb-item" *ngFor="let breadcrumb of breadcrumbs; let last = last" [ngClass]="{active: last}">\n    <a *ngIf="!last" [routerLink]="breadcrumb.url">{{breadcrumb.label.title}}</a>\n    <span *ngIf="last" [routerLink]="breadcrumb.url">{{breadcrumb.label.title}}</span>\n    </li>'}),s("design:paramtypes",["function"==typeof(t="undefined"!=typeof i.b&&i.b)&&t||Object,"function"==typeof(e="undefined"!=typeof i.c&&i.c)&&e||Object])],BreadcrumbsComponent);var t,e}()},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return c});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function NavDropdownDirective(){this._open=!1}return NavDropdownDirective.prototype.isOpen=function(){return this._open},NavDropdownDirective.prototype.open=function(){this._open=!0},NavDropdownDirective.prototype.close=function(){this._open=!1},NavDropdownDirective.prototype.toggle=function(){this.isOpen()?this.close():this.open()},NavDropdownDirective=i([n.i(r.Directive)({selector:".nav-dropdown",host:{"[class.open]":"_open"}}),o("design:paramtypes",[])],NavDropdownDirective)}(),s=function(){function NavDropdownToggleDirective(t){this.dropdown=t}return NavDropdownToggleDirective.prototype.toggleOpen=function(t){t.preventDefault(),this.dropdown.toggle()},i([n.i(r.HostListener)("click",["$event"]),o("design:type",Function),o("design:paramtypes",[Object]),o("design:returntype",void 0)],NavDropdownToggleDirective.prototype,"toggleOpen",null),NavDropdownToggleDirective=i([n.i(r.Directive)({selector:".nav-dropdown-toggle"}),o("design:paramtypes",[a])],NavDropdownToggleDirective)}(),c=[a,s]},function(t,e,n){"use strict";var r=n(0);n.d(e,"a",function(){return l});var i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},a=function(){function SidebarToggleDirective(){}return SidebarToggleDirective.prototype.hasClass=function(t,e){return new RegExp("(\\s|^)"+e+"(\\s|$)").test(t.className)},SidebarToggleDirective.prototype.toggleClass=function(t,e){var n=" "+t.className.replace(/[\t\r\n]/g," ")+" ";if(this.hasClass(t,e)){for(;n.indexOf(" "+e+" ")>=0;)n=n.replace(" "+e+" "," ");t.className=n.replace(/^\s+|\s+$/g,"")}else t.className+=" "+e},SidebarToggleDirective.prototype.toggleOpen=function(t){t.preventDefault();var e=localStorage.getItem("body-class");this.hasClass(document.querySelector("body"),"sidebar-off-canvas")?(this.toggleClass(document.querySelector("body"),"sidebar-opened"),this.toggleClass(document.querySelector("html"),"sidebar-opened")):(this.hasClass(document.querySelector("body"),"sidebar-nav")||"sidebar-nav"==e)&&(this.toggleClass(document.querySelector("body"),"sidebar-nav"),localStorage.setItem("body-class","sidebar-nav"),"sidebar-nav"==e&&localStorage.clear())},i([n.i(r.HostListener)("click",["$event"]),o("design:type",Function),o("design:paramtypes",[Object]),o("design:returntype",void 0)],SidebarToggleDirective.prototype,"toggleOpen",null),SidebarToggleDirective=i([n.i(r.Directive)({selector:".sidebar-toggle"}),o("design:paramtypes",[])],SidebarToggleDirective)}(),s=function(){function MobileSidebarToggleDirective(){}return MobileSidebarToggleDirective.prototype.hasClass=function(t,e){return new RegExp("(\\s|^)"+e+"(\\s|$)").test(t.className)},MobileSidebarToggleDirective.prototype.toggleClass=function(t,e){var n=" "+t.className.replace(/[\t\r\n]/g," ")+" ";if(this.hasClass(t,e)){for(;n.indexOf(" "+e+" ")>=0;)n=n.replace(" "+e+" "," ");t.className=n.replace(/^\s+|\s+$/g,"")}else t.className+=" "+e},MobileSidebarToggleDirective.prototype.toggleOpen=function(t){t.preventDefault(),this.toggleClass(document.querySelector("body"),"mobile-open"),console.log("asdasdasd")},i([n.i(r.HostListener)("click",["$event"]),o("design:type",Function),o("design:paramtypes",[Object]),o("design:returntype",void 0)],MobileSidebarToggleDirective.prototype,"toggleOpen",null),MobileSidebarToggleDirective=i([n.i(r.Directive)({selector:"[mobile-nav-toggle]"}),o("design:paramtypes",[])],MobileSidebarToggleDirective)}(),c=function(){function SidebarOffCanvasCloseDirective(){}return SidebarOffCanvasCloseDirective.prototype.hasClass=function(t,e){return new RegExp("(\\s|^)"+e+"(\\s|$)").test(t.className)},SidebarOffCanvasCloseDirective.prototype.toggleClass=function(t,e){var n=" "+t.className.replace(/[\t\r\n]/g," ")+" ";if(this.hasClass(t,e)){for(;n.indexOf(" "+e+" ")>=0;)n=n.replace(" "+e+" "," ");t.className=n.replace(/^\s+|\s+$/g,"")}else t.className+=" "+e},SidebarOffCanvasCloseDirective.prototype.toggleOpen=function(t){t.preventDefault(),this.hasClass(document.querySelector("body"),"sidebar-off-canvas")&&this.toggleClass(document.querySelector("body"),"sidebar-opened")},i([n.i(r.HostListener)("click",["$event"]),o("design:type",Function),o("design:paramtypes",[Object]),o("design:returntype",void 0)],SidebarOffCanvasCloseDirective.prototype,"toggleOpen",null),SidebarOffCanvasCloseDirective=i([n.i(r.Directive)({selector:".sidebar-close"}),o("design:paramtypes",[])],SidebarOffCanvasCloseDirective)}(),l=[a,c,s]},function(t,e,n){"use strict";n.d(e,"a",function(){return r});var r={production:!0}},function(t,e,n){"use strict";var r=n(546),i=(n.n(r),n(539)),o=(n.n(i),n(535)),a=(n.n(o),n(541)),s=(n.n(a),n(540)),c=(n.n(s),n(538)),l=(n.n(c),n(537)),u=(n.n(l),n(545)),p=(n.n(u),n(534)),d=(n.n(p),n(533)),f=(n.n(d),n(543)),h=(n.n(f),n(536)),m=(n.n(h),n(544)),v=(n.n(m),n(542)),g=(n.n(v),n(547)),b=(n.n(g),n(760));n.n(b)},function(t,e,n){n(138),n(570),n(568),n(574),n(571),n(577),n(579),n(567),n(573),n(564),n(578),n(562),n(576),n(575),n(569),n(572),n(561),n(563),n(566),n(565),n(580),n(384),t.exports=n(13).Array},function(t,e,n){n(581),n(583),n(582),n(585),n(584),t.exports=Date},function(t,e,n){n(586),n(588),n(587),t.exports=n(13).Function},function(t,e,n){n(137),n(138),n(393),n(385),t.exports=n(13).Map},function(t,e,n){n(589),n(590),n(591),n(592),n(593),n(594),n(595),n(596),n(597),n(598),n(599),n(600),n(601),n(602),n(603),n(604),n(605),t.exports=n(13).Math},function(t,e,n){n(606),n(616),n(617),n(607),n(608),n(609),n(610),n(611),n(612),n(613),n(614),n(615),t.exports=n(13).Number},function(t,e,n){n(392),n(619),n(621),n(620),n(623),n(625),n(630),n(624),n(622),n(632),n(631),n(627),n(628),n(626),n(618),n(629),n(633),n(137),t.exports=n(13).Object},function(t,e,n){n(634),t.exports=n(13).parseFloat},function(t,e,n){n(635),t.exports=n(13).parseInt},function(t,e,n){n(636),n(637),n(638),n(639),n(640),n(643),n(641),n(642),n(644),n(645),n(646),n(647),n(649),n(648),t.exports=n(13).Reflect},function(t,e,n){n(650),n(651),n(386),n(387),n(388),n(389),n(390),t.exports=n(13).RegExp},function(t,e,n){n(137),n(138),n(393),n(391),t.exports=n(13).Set},function(t,e,n){n(661),n(665),n(672),n(138),n(656),n(657),n(662),n(666),n(668),n(652),n(653),n(654),n(655),n(658),n(659),n(660),n(663),n(664),n(667),n(669),n(670),n(671),n(387),n(388),n(389),n(390),t.exports=n(13).String},function(t,e,n){n(392),n(137),t.exports=n(13).Symbol},function(t,e,n){n(674),n(675),n(677),n(676),n(679),n(678),n(680),n(681),n(682),t.exports=n(13).Reflect},function(t,e,n){"use strict";var r=n(34),i=n(94),o=n(31);t.exports=[].copyWithin||function(t,e){var n=r(this),a=o(n.length),s=i(t,a),c=i(e,a),l=arguments.length>2?arguments[2]:void 0,u=Math.min((void 0===l?a:i(l,a))-c,a-s),p=1;for(c<s&&s<c+u&&(p=-1,c+=u-1,s+=u-1);u-- >0;)c in n?n[s]=n[c]:delete n[s],s+=p,c+=p;return n}},function(t,e,n){"use strict";var r=n(34),i=n(94),o=n(31);t.exports=function(t){for(var e=r(this),n=o(e.length),a=arguments.length,s=i(a>1?arguments[1]:void 0,n),c=a>2?arguments[2]:void 0,l=void 0===c?n:i(c,n);l>s;)e[s++]=t;return e}},function(t,e,n){var r=n(131);t.exports=function(t,e){var n=[];return r(t,!1,n.push,n,e),n}},function(t,e,n){var r=n(8),i=n(200),o=n(11)("species");t.exports=function(t){var e;return i(t)&&(e=t.constructor,"function"!=typeof e||e!==Array&&!i(e.prototype)||(e=void 0),r(e)&&(e=e[o],null===e&&(e=void 0))),void 0===e?Array:e}},function(t,e,n){var r=n(551);t.exports=function(t,e){return new(r(t))(e)}},function(t,e,n){"use strict";var r=n(206),i=n(57).getWeak,o=n(4),a=n(8),s=n(194),c=n(131),l=n(47),u=n(26),p=l(5),d=l(6),f=0,h=function(t){return t._l||(t._l=new m)},m=function(){this.a=[]},v=function(t,e){return p(t.a,function(t){return t[0]===e})};m.prototype={get:function(t){var e=v(this,t);if(e)return e[1]},has:function(t){return!!v(this,t)},set:function(t,e){var n=v(this,t);n?n[1]=e:this.a.push([t,e])},"delete":function(t){var e=d(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,o){var l=t(function(t,r){s(t,l,e,"_i"),t._i=f++,t._l=void 0,void 0!=r&&c(r,n,t[o],t)});return r(l.prototype,{"delete":function(t){if(!a(t))return!1;var e=i(t);return e===!0?h(this).delete(t):e&&u(e,this._i)&&delete e[this._i]},has:function(t){if(!a(t))return!1;var e=i(t);return e===!0?h(this).has(t):e&&u(e,this._i)}}),l},def:function(t,e,n){var r=i(o(e),!0);return r===!0?h(t).set(e,n):r[t._i]=n,t},ufstore:h}},function(t,e,n){"use strict";var r=n(4),i=n(65),o="number";t.exports=function(t){if("string"!==t&&t!==o&&"default"!==t)throw TypeError("Incorrect hint");return i(r(this),t!=o)}},function(t,e,n){var r=n(74),i=n(132),o=n(133);t.exports=function(t){var e=r(t),n=i.f;if(n)for(var a,s=n(t),c=o.f,l=0;s.length>l;)c.call(t,a=s[l++])&&e.push(a);return e}},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){var r=n(74),i=n(33);t.exports=function(t,e){for(var n,o=i(t),a=r(o),s=a.length,c=0;s>c;)if(o[n=a[c++]]===e)return n}},function(t,e,n){var r=n(93),i=n(132),o=n(4),a=n(14).Reflect;t.exports=a&&a.ownKeys||function(t){var e=r.f(o(t)),n=i.f;return n?e.concat(n(t)):e}},function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},function(t,e,n){var r=n(14),i=n(13),o=n(203),a=n(382),s=n(18).f;t.exports=function(t){var e=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||s(e,t,{value:a.f(t)})}},function(t,e,n){var r=n(1);r(r.P,"Array",{copyWithin:n(548)}),n(90)("copyWithin")},function(t,e,n){"use strict";var r=n(1),i=n(47)(4);r(r.P+r.F*!n(32)([].every,!0),"Array",{every:function(t){return i(this,t,arguments[1])}})},function(t,e,n){var r=n(1);r(r.P,"Array",{fill:n(549)}),n(90)("fill")},function(t,e,n){"use strict";var r=n(1),i=n(47)(2);r(r.P+r.F*!n(32)([].filter,!0),"Array",{filter:function(t){return i(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(1),i=n(47)(6),o="findIndex",a=!0;o in[]&&Array(1)[o](function(){a=!1}),r(r.P+r.F*a,"Array",{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n(90)(o)},function(t,e,n){"use strict";var r=n(1),i=n(47)(5),o="find",a=!0;o in[]&&Array(1)[o](function(){a=!1}),r(r.P+r.F*a,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n(90)(o)},function(t,e,n){"use strict";var r=n(1),i=n(47)(0),o=n(32)([].forEach,!0);r(r.P+r.F*!o,"Array",{forEach:function(t){return i(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(72),i=n(1),o=n(34),a=n(369),s=n(367),c=n(31),l=n(363),u=n(383);i(i.S+i.F*!n(371)(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,i,p,d=o(t),f="function"==typeof this?this:Array,h=arguments.length,m=h>1?arguments[1]:void 0,v=void 0!==m,g=0,b=u(d);if(v&&(m=r(m,h>2?arguments[2]:void 0,2)),void 0==b||f==Array&&s(b))for(e=c(d.length),n=new f(e);e>g;g++)l(n,g,v?m(d[g],g):d[g]);else for(p=b.call(d),n=new f;!(i=p.next()).done;g++)l(n,g,v?a(p,m,[i.value,g],!0):i.value);return n.length=g,n}})},function(t,e,n){"use strict";var r=n(1),i=n(358)(!1),o=[].indexOf,a=!!o&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n(32)(o)),"Array",{indexOf:function(t){return a?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},function(t,e,n){var r=n(1);r(r.S,"Array",{isArray:n(200)})},function(t,e,n){"use strict";var r=n(1),i=n(33),o=[].join;r(r.P+r.F*(n(91)!=Object||!n(32)(o)),"Array",{join:function(t){return o.call(i(this),void 0===t?",":t)}})},function(t,e,n){"use strict";var r=n(1),i=n(33),o=n(75),a=n(31),s=[].lastIndexOf,c=!!s&&1/[1].lastIndexOf(1,-0)<0;r(r.P+r.F*(c||!n(32)(s)),"Array",{lastIndexOf:function(t){if(c)return s.apply(this,arguments)||0;var e=i(this),n=a(e.length),r=n-1;for(arguments.length>1&&(r=Math.min(r,o(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in e&&e[r]===t)return r||0;return-1}})},function(t,e,n){"use strict";var r=n(1),i=n(47)(1);r(r.P+r.F*!n(32)([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(1),i=n(363);r(r.S+r.F*n(5)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},function(t,e,n){"use strict";var r=n(1),i=n(359);r(r.P+r.F*!n(32)([].reduceRight,!0),"Array",{reduceRight:function(t){return i(this,t,arguments.length,arguments[1],!0)}})},function(t,e,n){"use strict";var r=n(1),i=n(359);r(r.P+r.F*!n(32)([].reduce,!0),"Array",{reduce:function(t){return i(this,t,arguments.length,arguments[1],!1)}})},function(t,e,n){"use strict";var r=n(1),i=n(365),o=n(63),a=n(94),s=n(31),c=[].slice;r(r.P+r.F*n(5)(function(){i&&c.call(i)}),"Array",{slice:function(t,e){var n=s(this.length),r=o(this);if(e=void 0===e?n:e,"Array"==r)return c.call(this,t,e);for(var i=a(t,n),l=a(e,n),u=s(l-i),p=Array(u),d=0;d<u;d++)p[d]="String"==r?this.charAt(i+d):this[i+d];return p}})},function(t,e,n){"use strict";var r=n(1),i=n(47)(3);r(r.P+r.F*!n(32)([].some,!0),"Array",{some:function(t){return i(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(1),i=n(62),o=n(34),a=n(5),s=[].sort,c=[1,2,3];r(r.P+r.F*(a(function(){c.sort(void 0)})||!a(function(){c.sort(null)})||!n(32)(s)),"Array",{sort:function(t){return void 0===t?s.call(o(this)):s.call(o(this),i(t))}})},function(t,e,n){n(208)("Array")},function(t,e,n){var r=n(1);r(r.S,"Date",{now:function(){return(new Date).getTime()}})},function(t,e,n){"use strict";var r=n(1),i=n(5),o=Date.prototype.getTime,a=function(t){return t>9?t:"0"+t};r(r.P+r.F*(i(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!i(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function(){if(!isFinite(o.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),n=t.getUTCMilliseconds(),r=e<0?"-":e>9999?"+":"";return r+("00000"+Math.abs(e)).slice(r?-6:-4)+"-"+a(t.getUTCMonth()+1)+"-"+a(t.getUTCDate())+"T"+a(t.getUTCHours())+":"+a(t.getUTCMinutes())+":"+a(t.getUTCSeconds())+"."+(n>99?n:"0"+a(n))+"Z"}})},function(t,e,n){"use strict";var r=n(1),i=n(34),o=n(65);r(r.P+r.F*n(5)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function(t){var e=i(this),n=o(e);return"number"!=typeof n||isFinite(n)?e.toISOString():null}})},function(t,e,n){var r=n(11)("toPrimitive"),i=Date.prototype;r in i||n(49)(i,r,n(554))},function(t,e,n){var r=Date.prototype,i="Invalid Date",o="toString",a=r[o],s=r.getTime;new Date(NaN)+""!=i&&n(27)(r,o,function(){var t=s.call(this);return t===t?a.call(this):i})},function(t,e,n){var r=n(1);r(r.P,"Function",{bind:n(360)})},function(t,e,n){"use strict";var r=n(8),i=n(51),o=n(11)("hasInstance"),a=Function.prototype;o in a||n(18).f(a,o,{value:function(t){if("function"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},function(t,e,n){var r=n(18).f,i=n(64),o=n(26),a=Function.prototype,s=/^\s*function ([^ (]*)/,c="name",l=Object.isExtensible||function(){return!0};c in a||n(22)&&r(a,c,{configurable:!0,get:function(){try{var t=this,e=(""+t).match(s)[1];return o(t,c)||!l(t)||r(t,c,i(5,e)),e}catch(n){return""}}})},function(t,e,n){var r=n(1),i=n(373),o=Math.sqrt,a=Math.acosh;r(r.S+r.F*!(a&&710==Math.floor(a(Number.MAX_VALUE))&&a(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},function(t,e,n){function asinh(t){return isFinite(t=+t)&&0!=t?t<0?-asinh(-t):Math.log(t+Math.sqrt(t*t+1)):t}var r=n(1),i=Math.asinh;r(r.S+r.F*!(i&&1/i(0)>0),"Math",{asinh:asinh})},function(t,e,n){var r=n(1),i=Math.atanh;r(r.S+r.F*!(i&&1/i(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},function(t,e,n){var r=n(1),i=n(205);r(r.S,"Math",{cbrt:function(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},function(t,e,n){var r=n(1);r(r.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},function(t,e,n){var r=n(1),i=Math.exp;r(r.S,"Math",{cosh:function(t){return(i(t=+t)+i(-t))/2}})},function(t,e,n){var r=n(1),i=n(204);r(r.S+r.F*(i!=Math.expm1),"Math",{expm1:i})},function(t,e,n){var r=n(1),i=n(205),o=Math.pow,a=o(2,-52),s=o(2,-23),c=o(2,127)*(2-s),l=o(2,-126),u=function(t){return t+1/a-1/a};r(r.S,"Math",{fround:function(t){var e,n,r=Math.abs(t),o=i(t);return r<l?o*u(r/l/s)*l*s:(e=(1+s/a)*r,n=e-(e-r),n>c||n!=n?o*(1/0):o*n)}})},function(t,e,n){var r=n(1),i=Math.abs;r(r.S,"Math",{hypot:function(t,e){for(var n,r,o=0,a=0,s=arguments.length,c=0;a<s;)n=i(arguments[a++]),c<n?(r=c/n,o=o*r*r+1,c=n):n>0?(r=n/c,o+=r*r):o+=n;return c===1/0?1/0:c*Math.sqrt(o)}})},function(t,e,n){var r=n(1),i=Math.imul;r(r.S+r.F*n(5)(function(){return i(4294967295,5)!=-5||2!=i.length}),"Math",{imul:function(t,e){var n=65535,r=+t,i=+e,o=n&r,a=n&i;return 0|o*a+((n&r>>>16)*a+o*(n&i>>>16)<<16>>>0)}})},function(t,e,n){var r=n(1);r(r.S,"Math",{log10:function(t){return Math.log(t)/Math.LN10}})},function(t,e,n){var r=n(1);r(r.S,"Math",{log1p:n(373)})},function(t,e,n){var r=n(1);r(r.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},function(t,e,n){var r=n(1);r(r.S,"Math",{sign:n(205)})},function(t,e,n){var r=n(1),i=n(204),o=Math.exp;r(r.S+r.F*n(5)(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},function(t,e,n){var r=n(1),i=n(204),o=Math.exp;r(r.S,"Math",{tanh:function(t){var e=i(t=+t),n=i(-t);return e==1/0?1:n==1/0?-1:(e-n)/(o(t)+o(-t))}})},function(t,e,n){var r=n(1);r(r.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},function(t,e,n){"use strict";var r=n(14),i=n(26),o=n(63),a=n(199),s=n(65),c=n(5),l=n(93).f,u=n(58).f,p=n(18).f,d=n(136).trim,f="Number",h=r[f],m=h,v=h.prototype,g=o(n(73)(v))==f,b="trim"in String.prototype,y=function(t){var e=s(t,!1);if("string"==typeof e&&e.length>2){e=b?e.trim():d(e,3);var n,r,i,o=e.charCodeAt(0);if(43===o||45===o){if(n=e.charCodeAt(2),88===n||120===n)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+e}for(var a,c=e.slice(2),l=0,u=c.length;l<u;l++)if(a=c.charCodeAt(l),a<48||a>i)return NaN;return parseInt(c,r)}}return+e};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(g?c(function(){v.valueOf.call(n)}):o(n)!=f)?a(new m(y(e)),n,h):y(e)};for(var _,w=n(22)?l(m):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),x=0;w.length>x;x++)i(m,_=w[x])&&!i(h,_)&&p(h,_,u(m,_));h.prototype=v,v.constructor=h,n(27)(r,f,h)}},function(t,e,n){var r=n(1);r(r.S,"Number",{EPSILON:Math.pow(2,-52)})},function(t,e,n){var r=n(1),i=n(14).isFinite;r(r.S,"Number",{isFinite:function(t){return"number"==typeof t&&i(t)}})},function(t,e,n){var r=n(1);r(r.S,"Number",{isInteger:n(368)})},function(t,e,n){var r=n(1);r(r.S,"Number",{isNaN:function(t){return t!=t}})},function(t,e,n){var r=n(1),i=n(368),o=Math.abs;r(r.S,"Number",{isSafeInteger:function(t){return i(t)&&o(t)<=9007199254740991}})},function(t,e,n){var r=n(1);r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(t,e,n){var r=n(1);r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(t,e,n){var r=n(1),i=n(378);r(r.S+r.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},function(t,e,n){var r=n(1),i=n(379);r(r.S+r.F*(Number.parseInt!=i),"Number",{parseInt:i})},function(t,e,n){"use strict";var r=n(1),i=n(75),o=n(357),a=n(381),s=1..toFixed,c=Math.floor,l=[0,0,0,0,0,0],u="Number.toFixed: incorrect invocation!",p="0",d=function(t,e){for(var n=-1,r=e;++n<6;)r+=t*l[n],l[n]=r%1e7,r=c(r/1e7)},f=function(t){for(var e=6,n=0;--e>=0;)n+=l[e],l[e]=c(n/t),n=n%t*1e7},h=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==l[t]){var n=String(l[t]);e=""===e?n:e+a.call(p,7-n.length)+n}return e},m=function(t,e,n){return 0===e?n:e%2===1?m(t,e-1,n*t):m(t*t,e/2,n)},v=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e};r(r.P+r.F*(!!s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!n(5)(function(){s.call({})})),"Number",{toFixed:function(t){var e,n,r,s,c=o(this,u),l=i(t),g="",b=p;if(l<0||l>20)throw RangeError(u);if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return String(c);if(c<0&&(g="-",c=-c),c>1e-21)if(e=v(c*m(2,69,1))-69,n=e<0?c*m(2,-e,1):c/m(2,e,1),n*=4503599627370496,e=52-e,e>0){for(d(0,n),r=l;r>=7;)d(1e7,0),r-=7;for(d(m(10,r,1),0),r=e-1;r>=23;)f(1<<23),r-=23;f(1<<r),d(1,1),f(2),b=h()}else d(0,n),d(1<<-e,0),b=h()+a.call(p,l);return l>0?(s=b.length,b=g+(s<=l?"0."+a.call(p,l-s)+b:b.slice(0,s-l)+"."+b.slice(s-l))):b=g+b,b}})},function(t,e,n){"use strict";var r=n(1),i=n(5),o=n(357),a=1..toPrecision;r(r.P+r.F*(i(function(){return"1"!==a.call(1,void 0)})||!i(function(){a.call({})})),"Number",{toPrecision:function(t){var e=o(this,"Number#toPrecision: incorrect invocation!");return void 0===t?a.call(e):a.call(e,t)}})},function(t,e,n){var r=n(1);r(r.S+r.F,"Object",{assign:n(374)})},function(t,e,n){var r=n(1);r(r.S,"Object",{create:n(73)})},function(t,e,n){var r=n(1);r(r.S+r.F*!n(22),"Object",{defineProperties:n(375)})},function(t,e,n){var r=n(1);r(r.S+r.F*!n(22),"Object",{defineProperty:n(18).f})},function(t,e,n){var r=n(8),i=n(57).onFreeze;n(39)("freeze",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},function(t,e,n){var r=n(33),i=n(58).f;n(39)("getOwnPropertyDescriptor",function(){return function(t,e){return i(r(t),e)}})},function(t,e,n){n(39)("getOwnPropertyNames",function(){return n(376).f})},function(t,e,n){var r=n(34),i=n(51);n(39)("getPrototypeOf",function(){return function(t){return i(r(t))}})},function(t,e,n){var r=n(8);n(39)("isExtensible",function(t){return function(e){return!!r(e)&&(!t||t(e))}})},function(t,e,n){var r=n(8);n(39)("isFrozen",function(t){return function(e){return!r(e)||!!t&&t(e)}})},function(t,e,n){var r=n(8);n(39)("isSealed",function(t){return function(e){return!r(e)||!!t&&t(e)}})},function(t,e,n){var r=n(1);r(r.S,"Object",{is:n(559)})},function(t,e,n){var r=n(34),i=n(74);n(39)("keys",function(){return function(t){return i(r(t))}})},function(t,e,n){var r=n(8),i=n(57).onFreeze;n(39)("preventExtensions",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},function(t,e,n){var r=n(8),i=n(57).onFreeze;n(39)("seal",function(t){
+return function(e){return t&&r(e)?t(i(e)):e}})},function(t,e,n){var r=n(1);r(r.S,"Object",{setPrototypeOf:n(207).set})},function(t,e,n){var r=n(1),i=n(378);r(r.G+r.F*(parseFloat!=i),{parseFloat:i})},function(t,e,n){var r=n(1),i=n(379);r(r.G+r.F*(parseInt!=i),{parseInt:i})},function(t,e,n){var r=n(1),i=n(62),o=n(4),a=(n(14).Reflect||{}).apply,s=Function.apply;r(r.S+r.F*!n(5)(function(){a(function(){})}),"Reflect",{apply:function(t,e,n){var r=i(t),c=o(n);return a?a(r,e,c):s.call(r,e,c)}})},function(t,e,n){var r=n(1),i=n(73),o=n(62),a=n(4),s=n(8),c=n(5),l=n(360),u=(n(14).Reflect||{}).construct,p=c(function(){function F(){}return!(u(function(){},[],F)instanceof F)}),d=!c(function(){u(function(){})});r(r.S+r.F*(p||d),"Reflect",{construct:function(t,e){o(t),a(e);var n=arguments.length<3?t:o(arguments[2]);if(d&&!p)return u(t,e,n);if(t==n){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var r=[null];return r.push.apply(r,e),new(l.apply(t,r))}var c=n.prototype,f=i(s(c)?c:Object.prototype),h=Function.apply.call(t,f,e);return s(h)?h:f}})},function(t,e,n){var r=n(18),i=n(1),o=n(4),a=n(65);i(i.S+i.F*n(5)(function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(t,e,n){o(t),e=a(e,!0),o(n);try{return r.f(t,e,n),!0}catch(i){return!1}}})},function(t,e,n){var r=n(1),i=n(58).f,o=n(4);r(r.S,"Reflect",{deleteProperty:function(t,e){var n=i(o(t),e);return!(n&&!n.configurable)&&delete t[e]}})},function(t,e,n){"use strict";var r=n(1),i=n(4),o=function(t){this._t=i(t),this._i=0;var e,n=this._k=[];for(e in t)n.push(e)};n(370)(o,"Object",function(){var t,e=this,n=e._k;do if(e._i>=n.length)return{value:void 0,done:!0};while(!((t=n[e._i++])in e._t));return{value:t,done:!1}}),r(r.S,"Reflect",{enumerate:function(t){return new o(t)}})},function(t,e,n){var r=n(58),i=n(1),o=n(4);i(i.S,"Reflect",{getOwnPropertyDescriptor:function(t,e){return r.f(o(t),e)}})},function(t,e,n){var r=n(1),i=n(51),o=n(4);r(r.S,"Reflect",{getPrototypeOf:function(t){return i(o(t))}})},function(t,e,n){function get(t,e){var n,a,l=arguments.length<3?t:arguments[2];return c(t)===l?t[e]:(n=r.f(t,e))?o(n,"value")?n.value:void 0!==n.get?n.get.call(l):void 0:s(a=i(t))?get(a,e,l):void 0}var r=n(58),i=n(51),o=n(26),a=n(1),s=n(8),c=n(4);a(a.S,"Reflect",{get:get})},function(t,e,n){var r=n(1);r(r.S,"Reflect",{has:function(t,e){return e in t}})},function(t,e,n){var r=n(1),i=n(4),o=Object.isExtensible;r(r.S,"Reflect",{isExtensible:function(t){return i(t),!o||o(t)}})},function(t,e,n){var r=n(1);r(r.S,"Reflect",{ownKeys:n(558)})},function(t,e,n){var r=n(1),i=n(4),o=Object.preventExtensions;r(r.S,"Reflect",{preventExtensions:function(t){i(t);try{return o&&o(t),!0}catch(e){return!1}}})},function(t,e,n){var r=n(1),i=n(207);i&&r(r.S,"Reflect",{setPrototypeOf:function(t,e){i.check(t,e);try{return i.set(t,e),!0}catch(n){return!1}}})},function(t,e,n){function set(t,e,n){var s,p,d=arguments.length<4?t:arguments[3],f=i.f(l(t),e);if(!f){if(u(p=o(t)))return set(p,e,n,d);f=c(0)}return a(f,"value")?!(f.writable===!1||!u(d))&&(s=i.f(d,e)||c(0),s.value=n,r.f(d,e,s),!0):void 0!==f.set&&(f.set.call(d,n),!0)}var r=n(18),i=n(58),o=n(51),a=n(26),s=n(1),c=n(64),l=n(4),u=n(8);s(s.S,"Reflect",{set:set})},function(t,e,n){var r=n(14),i=n(199),o=n(18).f,a=n(93).f,s=n(201),c=n(198),l=r.RegExp,u=l,p=l.prototype,d=/a/g,f=/a/g,h=new l(d)!==d;if(n(22)&&(!h||n(5)(function(){return f[n(11)("match")]=!1,l(d)!=d||l(f)==f||"/a/i"!=l(d,"i")}))){l=function(t,e){var n=this instanceof l,r=s(t),o=void 0===e;return!n&&r&&t.constructor===l&&o?t:i(h?new u(r&&!o?t.source:t,e):u((r=t instanceof l)?t.source:t,r&&o?c.call(t):e),n?this:p,l)};for(var m=(function(t){t in l||o(l,t,{configurable:!0,get:function(){return u[t]},set:function(e){u[t]=e}})}),v=a(u),g=0;v.length>g;)m(v[g++]);p.constructor=l,l.prototype=p,n(27)(r,"RegExp",l)}n(208)("RegExp")},function(t,e,n){"use strict";n(386);var r=n(4),i=n(198),o=n(22),a="toString",s=/./[a],c=function(t){n(27)(RegExp.prototype,a,t,!0)};n(5)(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?c(function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)}):s.name!=a&&c(function(){return s.call(this)})},function(t,e,n){"use strict";n(28)("anchor",function(t){return function(e){return t(this,"a","name",e)}})},function(t,e,n){"use strict";n(28)("big",function(t){return function(){return t(this,"big","","")}})},function(t,e,n){"use strict";n(28)("blink",function(t){return function(){return t(this,"blink","","")}})},function(t,e,n){"use strict";n(28)("bold",function(t){return function(){return t(this,"b","","")}})},function(t,e,n){"use strict";var r=n(1),i=n(380)(!1);r(r.P,"String",{codePointAt:function(t){return i(this,t)}})},function(t,e,n){"use strict";var r=n(1),i=n(31),o=n(210),a="endsWith",s=""[a];r(r.P+r.F*n(197)(a),"String",{endsWith:function(t){var e=o(this,t,a),n=arguments.length>1?arguments[1]:void 0,r=i(e.length),c=void 0===n?r:Math.min(i(n),r),l=String(t);return s?s.call(e,l,c):e.slice(c-l.length,c)===l}})},function(t,e,n){"use strict";n(28)("fixed",function(t){return function(){return t(this,"tt","","")}})},function(t,e,n){"use strict";n(28)("fontcolor",function(t){return function(e){return t(this,"font","color",e)}})},function(t,e,n){"use strict";n(28)("fontsize",function(t){return function(e){return t(this,"font","size",e)}})},function(t,e,n){var r=n(1),i=n(94),o=String.fromCharCode,a=String.fromCodePoint;r(r.S+r.F*(!!a&&1!=a.length),"String",{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],i(e,1114111)!==e)throw RangeError(e+" is not a valid code point");n.push(e<65536?o(e):o(((e-=65536)>>10)+55296,e%1024+56320))}return n.join("")}})},function(t,e,n){"use strict";var r=n(1),i=n(210),o="includes";r(r.P+r.F*n(197)(o),"String",{includes:function(t){return!!~i(this,t,o).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";n(28)("italics",function(t){return function(){return t(this,"i","","")}})},function(t,e,n){"use strict";n(28)("link",function(t){return function(e){return t(this,"a","href",e)}})},function(t,e,n){var r=n(1),i=n(33),o=n(31);r(r.S,"String",{raw:function(t){for(var e=i(t.raw),n=o(e.length),r=arguments.length,a=[],s=0;n>s;)a.push(String(e[s++])),s<r&&a.push(String(arguments[s]));return a.join("")}})},function(t,e,n){var r=n(1);r(r.P,"String",{repeat:n(381)})},function(t,e,n){"use strict";n(28)("small",function(t){return function(){return t(this,"small","","")}})},function(t,e,n){"use strict";var r=n(1),i=n(31),o=n(210),a="startsWith",s=""[a];r(r.P+r.F*n(197)(a),"String",{startsWith:function(t){var e=o(this,t,a),n=i(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return s?s.call(e,r,n):e.slice(n,n+r.length)===r}})},function(t,e,n){"use strict";n(28)("strike",function(t){return function(){return t(this,"strike","","")}})},function(t,e,n){"use strict";n(28)("sub",function(t){return function(){return t(this,"sub","","")}})},function(t,e,n){"use strict";n(28)("sup",function(t){return function(){return t(this,"sup","","")}})},function(t,e,n){"use strict";n(136)("trim",function(t){return function(){return t(this,3)}})},function(t,e,n){"use strict";var r,i=n(47)(0),o=n(27),a=n(57),s=n(374),c=n(553),l=n(8),u=a.getWeak,p=Object.isExtensible,d=c.ufstore,f={},h=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},m={get:function(t){if(l(t)){var e=u(t);return e===!0?d(this).get(t):e?e[this._i]:void 0}},set:function(t,e){return c.def(this,t,e)}},v=t.exports=n(195)("WeakMap",h,m,c,!0,!0);7!=(new v).set((Object.freeze||Object)(f),7).get(f)&&(r=c.getConstructor(h),s(r.prototype,m),a.NEED=!0,i(["delete","has","get","set"],function(t){var e=v.prototype,n=e[t];o(e,t,function(e,i){if(l(e)&&!p(e)){this._f||(this._f=new r);var o=this._f[t](e,i);return"set"==t?this:o}return n.call(this,e,i)})}))},function(t,e,n){var r=n(50),i=n(4),o=r.key,a=r.set;r.exp({defineMetadata:function(t,e,n,r){a(t,e,i(n),o(r))}})},function(t,e,n){var r=n(50),i=n(4),o=r.key,a=r.map,s=r.store;r.exp({deleteMetadata:function(t,e){var n=arguments.length<3?void 0:o(arguments[2]),r=a(i(e),n,!1);if(void 0===r||!r.delete(t))return!1;if(r.size)return!0;var c=s.get(e);return c.delete(n),!!c.size||s.delete(e)}})},function(t,e,n){var r=n(391),i=n(550),o=n(50),a=n(4),s=n(51),c=o.keys,l=o.key,u=function(t,e){var n=c(t,e),o=s(t);if(null===o)return n;var a=u(o,e);return a.length?n.length?i(new r(n.concat(a))):a:n};o.exp({getMetadataKeys:function(t){return u(a(t),arguments.length<2?void 0:l(arguments[1]))}})},function(t,e,n){var r=n(50),i=n(4),o=n(51),a=r.has,s=r.get,c=r.key,l=function(t,e,n){var r=a(t,e,n);if(r)return s(t,e,n);var i=o(e);return null!==i?l(t,i,n):void 0};r.exp({getMetadata:function(t,e){return l(t,i(e),arguments.length<3?void 0:c(arguments[2]))}})},function(t,e,n){var r=n(50),i=n(4),o=r.keys,a=r.key;r.exp({getOwnMetadataKeys:function(t){return o(i(t),arguments.length<2?void 0:a(arguments[1]))}})},function(t,e,n){var r=n(50),i=n(4),o=r.get,a=r.key;r.exp({getOwnMetadata:function(t,e){return o(t,i(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var r=n(50),i=n(4),o=n(51),a=r.has,s=r.key,c=function(t,e,n){var r=a(t,e,n);if(r)return!0;var i=o(e);return null!==i&&c(t,i,n)};r.exp({hasMetadata:function(t,e){return c(t,i(e),arguments.length<3?void 0:s(arguments[2]))}})},function(t,e,n){var r=n(50),i=n(4),o=r.has,a=r.key;r.exp({hasOwnMetadata:function(t,e){return o(t,i(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var r=n(50),i=n(4),o=n(62),a=r.key,s=r.set;r.exp({metadata:function(t,e){return function(n,r){s(t,e,(void 0!==r?i:o)(n),a(r))}}})},function(t,e,n){"use strict";var r=n(394);e.AccordionPanelComponent=r.AccordionPanelComponent;var i=n(212);e.AccordionComponent=i.AccordionComponent;var o=n(213);e.AccordionModule=o.AccordionModule},function(t,e,n){"use strict";var r=n(395);e.AlertComponent=r.AlertComponent;var i=n(214);e.AlertModule=i.AlertModule},function(t,e,n){"use strict";var r=n(396);e.ButtonCheckboxDirective=r.ButtonCheckboxDirective;var i=n(397);e.ButtonRadioDirective=i.ButtonRadioDirective;var o=n(215);e.ButtonsModule=o.ButtonsModule},function(t,e,n){"use strict";var r=n(216);e.CarouselComponent=r.CarouselComponent;var i=n(217);e.CarouselModule=i.CarouselModule;var o=n(398);e.SlideComponent=o.SlideComponent},function(t,e,n){"use strict";var r=n(399);e.CollapseDirective=r.CollapseDirective;var i=n(139);e.CollapseModule=i.CollapseModule},function(t,e,n){"use strict";var r=n(401);e.DatePickerComponent=r.DatePickerComponent;var i=n(218);e.DatepickerModule=i.DatepickerModule},function(t,e,n){"use strict";var r=n(707),i=function(){function DateFormatter(){}return DateFormatter.prototype.format=function(t,e){return r(t.getTime()).format(e)},DateFormatter}();e.DateFormatter=i},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(76),s=n(140),c=(p={},p[a.Ng2BootstrapTheme.BS4]={DAY_TITLE:'\n        <th *ngFor="let labelz of labels" class="text-xs-center"><small aria-label="labelz.full"><b>{{labelz.abbr}}</b></small></th>\n    ',WEEK_ROW:'\n        <td *ngIf="datePicker.showWeeks" class="text-xs-center h6"><em>{{ weekNumbers[index] }}</em></td>\n        <td *ngFor="let dtz of rowz" class="text-xs-center" role="gridcell" [id]="dtz.uid">\n          <button type="button" style="min-width:100%;" class="btn btn-sm {{dtz.customClass}}"\n                  *ngIf="!(datePicker.onlyCurrentMonth && dtz.secondary)"\n                  [ngClass]="{\'btn-secondary\': !dtz.selected && !datePicker.isActive(dtz), \'btn-info\': dtz.selected, disabled: dtz.disabled}"\n                  [disabled]="dtz.disabled"\n                  (click)="datePicker.select(dtz.date)" tabindex="-1">\n            <span [ngClass]="{\'text-muted\': dtz.secondary || dtz.current}">{{dtz.label}}</span>\n          </button>\n        </td>\n    ',ARROW_LEFT:"&lt;",ARROW_RIGHT:"&gt;"},p[a.Ng2BootstrapTheme.BS3]={DAY_TITLE:'\n        <th *ngFor="let labelz of labels" class="text-center"><small aria-label="labelz.full"><b>{{labelz.abbr}}</b></small></th>\n    ',WEEK_ROW:'\n        <td *ngIf="datePicker.showWeeks" class="text-center h6"><em>{{ weekNumbers[index] }}</em></td>\n        <td *ngFor="let dtz of rowz" class="text-center" role="gridcell" [id]="dtz.uid">\n          <button type="button" style="min-width:100%;" class="btn btn-default btn-sm {{dtz.customClass}}"\n                  *ngIf="!(datePicker.onlyCurrentMonth && dtz.secondary)"\n                  [ngClass]="{\'btn-info\': dtz.selected, active: datePicker.isActive(dtz), disabled: dtz.disabled}"\n                  [disabled]="dtz.disabled"\n                  (click)="datePicker.select(dtz.date)" tabindex="-1">\n            <span [ngClass]="{\'text-muted\': dtz.secondary, \'text-info\': dtz.current}">{{dtz.label}}</span>\n          </button>\n        </td>\n    ',ARROW_LEFT:'\n    <i class="glyphicon glyphicon-chevron-left"></i>\n    ',ARROW_RIGHT:'\n    <i class="glyphicon glyphicon-chevron-right"></i>\n    '},p),l=c[a.Ng2BootstrapConfig.theme||a.Ng2BootstrapTheme.BS3],u=function(){function DayPickerComponent(t){this.labels=[],this.rows=[],this.weekNumbers=[],this.datePicker=t}return DayPickerComponent.prototype.ngOnInit=function(){var t=this;this.datePicker.stepDay={months:1},this.datePicker.setRefreshViewHandler(function(){var e=this.activeDate.getFullYear(),n=this.activeDate.getMonth(),r=new Date(e,n,1),i=this.startingDay-r.getDay(),o=i>0?7-i:-i,a=new Date(r.getTime());o>0&&a.setDate(-o+1);for(var s=t.getDates(a,42),c=[],l=0;l<42;l++){var u=this.createDateObject(s[l],this.formatDay);u.secondary=s[l].getMonth()!==n,u.uid=this.uniqueId+"-"+l,c[l]=u}t.labels=[];for(var p=0;p<7;p++)t.labels[p]={},t.labels[p].abbr=this.dateFilter(c[p].date,this.formatDayHeader),t.labels[p].full=this.dateFilter(c[p].date,"EEEE");if(t.title=this.dateFilter(this.activeDate,this.formatDayTitle),t.rows=this.split(c,7),this.showWeeks){t.weekNumbers=[];for(var d=(11-this.startingDay)%7,f=t.rows.length,h=0;h<f;h++)t.weekNumbers.push(t.getISO8601WeekNumber(t.rows[h][d].date))}},"day"),this.datePicker.setCompareHandler(function(t,e){var n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(e.getFullYear(),e.getMonth(),e.getDate());return n.getTime()-r.getTime()},"day"),this.datePicker.refreshView()},DayPickerComponent.prototype.getDates=function(t,e){for(var n,r=new Array(e),i=new Date(t.getTime()),o=0;o<e;)n=new Date(i.getTime()),n=this.datePicker.fixTimeZone(n),r[o++]=n,i=new Date(i.getFullYear(),i.getMonth(),i.getDate()+1);return r},DayPickerComponent.prototype.getISO8601WeekNumber=function(t){var e=new Date(t.getTime());e.setDate(e.getDate()+4-(e.getDay()||7));var n=e.getTime();return e.setMonth(0),e.setDate(1),Math.floor(Math.round((n-e.getTime())/864e5)/7)+1},DayPickerComponent=r([o.Component({selector:"daypicker",template:'\n<table *ngIf="datePicker.datepickerMode===\'day\'" role="grid" aria-labelledby="uniqueId+\'-title\'" aria-activedescendant="activeDateId">\n  <thead>\n    <tr>\n      <th>\n        <button type="button" class="btn btn-default btn-secondary btn-sm pull-left" (click)="datePicker.move(-1)" tabindex="-1">\n        '+l.ARROW_LEFT+'\n        </button>\n      </th>\n      <th [attr.colspan]="5 + datePicker.showWeeks">\n        <button [id]="datePicker.uniqueId + \'-title\'"\n                type="button" class="btn btn-default btn-secondary btn-sm"\n                (click)="datePicker.toggleMode()"\n                [disabled]="datePicker.datepickerMode === datePicker.maxMode"\n                [ngClass]="{disabled: datePicker.datepickerMode === datePicker.maxMode}" tabindex="-1" style="width:100%;">\n          <strong>{{title}}</strong>\n        </button>\n      </th>\n      <th>\n        <button type="button" class="btn btn-default btn-secondary btn-sm pull-right" (click)="datePicker.move(1)" tabindex="-1">\n        '+l.ARROW_RIGHT+'\n        </button>\n      </th>\n    </tr>\n    <tr>\n      <th *ngIf="datePicker.showWeeks"></th>\n      '+l.DAY_TITLE+'\n    </tr>\n  </thead>\n  <tbody>\n    <template ngFor [ngForOf]="rows" let-rowz="$implicit" let-index="index">\n      <tr *ngIf="!(datePicker.onlyCurrentMonth && rowz[0].secondary && rowz[6].secondary)">\n        '+l.WEEK_ROW+"\n      </tr>\n    </template>\n  </tbody>\n</table>\n  "}),i("design:paramtypes",[s.DatePickerInnerComponent])],DayPickerComponent)}();e.DayPickerComponent=u;var p},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(76),s=n(140),c={bs4:{MONTH_BUTTON:'\n        <button type="button" style="min-width:100%;" class="btn btn-default"\n                [ngClass]="{\'btn-info\': dtz.selected, \'btn-link\': !dtz.selected && !datePicker.isActive(dtz), \'btn-info\': !dtz.selected && datePicker.isActive(dtz), disabled: dtz.disabled}"\n                [disabled]="dtz.disabled"\n                (click)="datePicker.select(dtz.date)" tabindex="-1"><span [ngClass]="{\'text-success\': dtz.current}">{{dtz.label}}</span></button>\n    '},bs3:{MONTH_BUTTON:'\n        <button type="button" style="min-width:100%;" class="btn btn-default"\n                [ngClass]="{\'btn-info\': dtz.selected, active: datePicker.isActive(dtz), disabled: dtz.disabled}"\n                [disabled]="dtz.disabled"\n                (click)="datePicker.select(dtz.date)" tabindex="-1"><span [ngClass]="{\'text-info\': dtz.current}">{{dtz.label}}</span></button>\n    '}},l=c[a.Ng2BootstrapConfig.theme]||c.bs3,u=function(){function MonthPickerComponent(t){this.rows=[],this.datePicker=t}return MonthPickerComponent.prototype.ngOnInit=function(){var t=this;this.datePicker.stepMonth={years:1},this.datePicker.setRefreshViewHandler(function(){for(var e,n=new Array(12),r=this.activeDate.getFullYear(),i=0;i<12;i++)e=new Date(r,i,1),e=this.fixTimeZone(e),n[i]=this.createDateObject(e,this.formatMonth),n[i].uid=this.uniqueId+"-"+i;t.title=this.dateFilter(this.activeDate,this.formatMonthTitle),t.rows=this.split(n,3)},"month"),this.datePicker.setCompareHandler(function(t,e){var n=new Date(t.getFullYear(),t.getMonth()),r=new Date(e.getFullYear(),e.getMonth());return n.getTime()-r.getTime()},"month"),this.datePicker.refreshView()},MonthPickerComponent=r([o.Component({selector:"monthpicker",template:'\n<table *ngIf="datePicker.datepickerMode===\'month\'" role="grid">\n  <thead>\n    <tr>\n      <th>\n        <button type="button" class="btn btn-default btn-sm pull-left"\n                (click)="datePicker.move(-1)" tabindex="-1">\n          <i class="glyphicon glyphicon-chevron-left"></i>\n        </button></th>\n      <th>\n        <button [id]="uniqueId + \'-title\'"\n                type="button" class="btn btn-default btn-sm"\n                (click)="datePicker.toggleMode()"\n                [disabled]="datePicker.datepickerMode === maxMode"\n                [ngClass]="{disabled: datePicker.datepickerMode === maxMode}" tabindex="-1" style="width:100%;">\n          <strong>{{title}}</strong>\n        </button>\n      </th>\n      <th>\n        <button type="button" class="btn btn-default btn-sm pull-right"\n                (click)="datePicker.move(1)" tabindex="-1">\n          <i class="glyphicon glyphicon-chevron-right"></i>\n        </button>\n      </th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr *ngFor="let rowz of rows">\n      <td *ngFor="let dtz of rowz" class="text-center" role="gridcell" id="{{dtz.uid}}" [ngClass]="dtz.customClass">\n        '+l.MONTH_BUTTON+"\n      </td>\n    </tr>\n  </tbody>\n</table>\n  "}),i("design:paramtypes",[s.DatePickerInnerComponent])],MonthPickerComponent)}();e.MonthPickerComponent=u},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(76),s=n(140),c={bs4:{YEAR_BUTTON:'\n        <button type="button" style="min-width:100%;" class="btn btn-default"\n                [ngClass]="{\'btn-info\': dtz.selected, \'btn-link\': !dtz.selected && !datePicker.isActive(dtz), \'btn-info\': !dtz.selected && datePicker.isActive(dtz), disabled: dtz.disabled}"\n                [disabled]="dtz.disabled"\n                (click)="datePicker.select(dtz.date)" tabindex="-1">\n          <span [ngClass]="{\'text-success\': dtz.current}">{{dtz.label}}</span>\n        </button>\n    '},bs3:{YEAR_BUTTON:'\n        <button type="button" style="min-width:100%;" class="btn btn-default"\n                [ngClass]="{\'btn-info\': dtz.selected, active: datePicker.isActive(dtz), disabled: dtz.disabled}"\n                [disabled]="dtz.disabled"\n                (click)="datePicker.select(dtz.date)" tabindex="-1">\n          <span [ngClass]="{\'text-info\': dtz.current}">{{dtz.label}}</span>\n        </button>\n    '}},l=c[a.Ng2BootstrapConfig.theme]||c.bs3,u=function(){function YearPickerComponent(t){this.rows=[],this.datePicker=t}return YearPickerComponent.prototype.ngOnInit=function(){var t=this;this.datePicker.stepYear={years:this.datePicker.yearRange},this.datePicker.setRefreshViewHandler(function(){for(var e,n=new Array(this.yearRange),r=t.getStartingYear(this.activeDate.getFullYear()),i=0;i<this.yearRange;i++)e=new Date(r+i,0,1),e=this.fixTimeZone(e),n[i]=this.createDateObject(e,this.formatYear),n[i].uid=this.uniqueId+"-"+i;t.title=[n[0].label,n[this.yearRange-1].label].join(" - "),t.rows=this.split(n,5)},"year"),this.datePicker.setCompareHandler(function(t,e){return t.getFullYear()-e.getFullYear()},"year"),this.datePicker.refreshView()},YearPickerComponent.prototype.getStartingYear=function(t){return(t-1)/this.datePicker.yearRange*this.datePicker.yearRange+1},YearPickerComponent=r([o.Component({selector:"yearpicker",template:'\n<table *ngIf="datePicker.datepickerMode===\'year\'" role="grid">\n  <thead>\n    <tr>\n      <th>\n        <button type="button" class="btn btn-default btn-sm pull-left"\n                (click)="datePicker.move(-1)" tabindex="-1">\n          <i class="glyphicon glyphicon-chevron-left"></i>\n        </button>\n      </th>\n      <th colspan="3">\n        <button [id]="uniqueId + \'-title\'" role="heading"\n                type="button" class="btn btn-default btn-sm"\n                (click)="datePicker.toggleMode()"\n                [disabled]="datePicker.datepickerMode === datePicker.maxMode"\n                [ngClass]="{disabled: datePicker.datepickerMode === datePicker.maxMode}" tabindex="-1" style="width:100%;">\n          <strong>{{title}}</strong>\n        </button>\n      </th>\n      <th>\n        <button type="button" class="btn btn-default btn-sm pull-right"\n                (click)="datePicker.move(1)" tabindex="-1">\n          <i class="glyphicon glyphicon-chevron-right"></i>\n        </button>\n      </th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr *ngFor="let rowz of rows">\n      <td *ngFor="let dtz of rowz" class="text-center" role="gridcell">\n      '+l.YEAR_BUTTON+"\n      </td>\n    </tr>\n  </tbody>\n</table>\n  "}),i("design:paramtypes",[s.DatePickerInnerComponent])],YearPickerComponent)}();e.YearPickerComponent=u},function(t,e,n){"use strict";var r=n(402);e.DropdownMenuDirective=r.DropdownMenuDirective;var i=n(403);e.DropdownToggleDirective=i.DropdownToggleDirective;var o=n(141);e.DropdownDirective=o.DropdownDirective;var a=n(219);e.DropdownModule=a.DropdownModule},function(t,e){"use strict";e.ALWAYS="always",e.DISABLED="disabled",e.OUTSIDECLICK="outsideClick",e.NONINPUT="nonInput";var n=function(){function DropdownService(){this.closeDropdownBind=this.closeDropdown.bind(this),this.keybindFilterBind=this.keybindFilter.bind(this)}return DropdownService.prototype.open=function(t){this.openScope||(window.document.addEventListener("click",this.closeDropdownBind,!0),window.document.addEventListener("keydown",this.keybindFilterBind)),this.openScope&&this.openScope!==t&&(this.openScope.isOpen=!1),this.openScope=t},DropdownService.prototype.close=function(t){this.openScope===t&&(this.openScope=void 0,window.document.removeEventListener("click",this.closeDropdownBind,!0),window.document.removeEventListener("keydown",this.keybindFilterBind))},DropdownService.prototype.closeDropdown=function(t){this.openScope&&(t&&this.openScope.autoClose===e.DISABLED||t&&this.openScope.toggleEl&&this.openScope.toggleEl.nativeElement.contains(t.target)||t&&this.openScope.autoClose===e.NONINPUT&&this.openScope.menuEl&&/input|textarea/i.test(t.target.tagName)&&this.openScope.menuEl.nativeElement.contains(t.target)||t&&this.openScope.autoClose===e.OUTSIDECLICK&&this.openScope.menuEl&&this.openScope.menuEl.nativeElement.contains(t.target)||(this.openScope.isOpen=!1))},DropdownService.prototype.keybindFilter=function(t){return 27===t.which?(this.openScope.focusToggleElement(),void this.closeDropdown(void 0)):void(this.openScope.keyboardNav&&this.openScope.isOpen&&(38===t.which||40===t.which)&&(t.preventDefault(),t.stopPropagation(),this.openScope.focusDropdownEntry(t.which)))},DropdownService}();e.DropdownService=n,e.dropdownService=new n},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=n(213),s=n(214),c=n(215),l=n(217),u=n(139),p=n(218),d=n(219),f=n(222),h=n(224),m=n(227),v=n(228),g=n(230),b=n(232),y=n(234),_=n(237),w=n(52),x=function(){function Ng2BootstrapModule(){}return Ng2BootstrapModule=r([o.NgModule({exports:[a.AccordionModule,s.AlertModule,c.ButtonsModule,l.CarouselModule,u.CollapseModule,p.DatepickerModule,d.DropdownModule,f.ModalModule,h.PaginationModule,m.ProgressbarModule,v.RatingModule,g.TabsModule,b.TimepickerModule,y.TooltipModule,_.TypeaheadModule],providers:[{provide:w.ComponentsHelper,useClass:w.ComponentsHelper}]}),i("design:paramtypes",[])],Ng2BootstrapModule)}();e.Ng2BootstrapModule=x},function(t,e,n){"use strict";function __export(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}__export(n(220)),__export(n(221)),__export(n(404));var r=n(222);e.ModalModule=r.ModalModule},function(t,e,n){"use strict";var r=n(405);e.PagerComponent=r.PagerComponent;var i=n(223);e.PaginationComponent=i.PaginationComponent;var o=n(224);e.PaginationModule=o.PaginationModule},function(t,e,n){"use strict";var r=n(406);e.BarComponent=r.BarComponent;var i=n(226);e.ProgressDirective=i.ProgressDirective;var o=n(407);e.ProgressbarComponent=o.ProgressbarComponent;var a=n(227);e.ProgressbarModule=a.ProgressbarModule},function(t,e,n){"use strict";var r=n(408);e.RatingComponent=r.RatingComponent;var i=n(228);e.RatingModule=i.RatingModule},function(t,e,n){"use strict";var r=n(409);e.TabHeadingDirective=r.TabHeadingDirective;var i=n(231);e.TabsetComponent=i.TabsetComponent;var o=n(229);e.TabDirective=o.TabDirective;var a=n(230);e.TabsModule=a.TabsModule},function(t,e,n){"use strict";var r=n(410);e.TimepickerComponent=r.TimepickerComponent;var i=n(232);e.TimepickerModule=i.TimepickerModule},function(t,e,n){"use strict";var r=n(233);e.TooltipContainerComponent=r.TooltipContainerComponent;var i=n(412);e.TooltipDirective=i.TooltipDirective;var o=n(234);e.TooltipModule=o.TooltipModule},function(t,e,n){"use strict";var r=n(235);e.TypeaheadContainerComponent=r.TypeaheadContainerComponent;var i=n(236);e.TypeaheadOptions=i.TypeaheadOptions;var o=n(414);e.TypeaheadDirective=o.TypeaheadDirective;var a=n(237);e.TypeaheadModule=a.TypeaheadModule},function(t,e){"use strict";e.latinMap={"Á":"A","Ă":"A","Ắ":"A","Ặ":"A","Ằ":"A","Ẳ":"A","Ẵ":"A","Ǎ":"A","Â":"A","Ấ":"A","Ậ":"A","Ầ":"A","Ẩ":"A","Ẫ":"A","Ä":"A","Ǟ":"A","Ȧ":"A","Ǡ":"A","Ạ":"A","Ȁ":"A","À":"A","Ả":"A","Ȃ":"A","Ā":"A","Ą":"A","Å":"A","Ǻ":"A","Ḁ":"A","Ⱥ":"A","Ã":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ḃ":"B","Ḅ":"B","Ɓ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ć":"C","Č":"C","Ç":"C","Ḉ":"C","Ĉ":"C","Ċ":"C","Ƈ":"C","Ȼ":"C","Ď":"D","Ḑ":"D","Ḓ":"D","Ḋ":"D","Ḍ":"D","Ɗ":"D","Ḏ":"D","Dz":"D","Dž":"D","Đ":"D","Ƌ":"D","DZ":"DZ","DŽ":"DZ","É":"E","Ĕ":"E","Ě":"E","Ȩ":"E","Ḝ":"E","Ê":"E","Ế":"E","Ệ":"E","Ề":"E","Ể":"E","Ễ":"E","Ḙ":"E","Ë":"E","Ė":"E","Ẹ":"E","Ȅ":"E","È":"E","Ẻ":"E","Ȇ":"E","Ē":"E","Ḗ":"E","Ḕ":"E","Ę":"E","Ɇ":"E","Ẽ":"E","Ḛ":"E","Ꝫ":"ET","Ḟ":"F","Ƒ":"F","Ǵ":"G","Ğ":"G","Ǧ":"G","Ģ":"G","Ĝ":"G","Ġ":"G","Ɠ":"G","Ḡ":"G","Ǥ":"G","Ḫ":"H","Ȟ":"H","Ḩ":"H","Ĥ":"H","Ⱨ":"H","Ḧ":"H","Ḣ":"H","Ḥ":"H","Ħ":"H","Í":"I","Ĭ":"I","Ǐ":"I","Î":"I","Ï":"I","Ḯ":"I","İ":"I","Ị":"I","Ȉ":"I","Ì":"I","Ỉ":"I","Ȋ":"I","Ī":"I","Į":"I","Ɨ":"I","Ĩ":"I","Ḭ":"I","Ꝺ":"D","Ꝼ":"F","Ᵹ":"G","Ꞃ":"R","Ꞅ":"S","Ꞇ":"T","Ꝭ":"IS","Ĵ":"J","Ɉ":"J","Ḱ":"K","Ǩ":"K","Ķ":"K","Ⱪ":"K","Ꝃ":"K","Ḳ":"K","Ƙ":"K","Ḵ":"K","Ꝁ":"K","Ꝅ":"K","Ĺ":"L","Ƚ":"L","Ľ":"L","Ļ":"L","Ḽ":"L","Ḷ":"L","Ḹ":"L","Ⱡ":"L","Ꝉ":"L","Ḻ":"L","Ŀ":"L","Ɫ":"L","Lj":"L","Ł":"L","LJ":"LJ","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ń":"N","Ň":"N","Ņ":"N","Ṋ":"N","Ṅ":"N","Ṇ":"N","Ǹ":"N","Ɲ":"N","Ṉ":"N","Ƞ":"N","Nj":"N","Ñ":"N","NJ":"NJ","Ó":"O","Ŏ":"O","Ǒ":"O","Ô":"O","Ố":"O","Ộ":"O","Ồ":"O","Ổ":"O","Ỗ":"O","Ö":"O","Ȫ":"O","Ȯ":"O","Ȱ":"O","Ọ":"O","Ő":"O","Ȍ":"O","Ò":"O","Ỏ":"O","Ơ":"O","Ớ":"O","Ợ":"O","Ờ":"O","Ở":"O","Ỡ":"O","Ȏ":"O","Ꝋ":"O","Ꝍ":"O","Ō":"O","Ṓ":"O","Ṑ":"O","Ɵ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Õ":"O","Ṍ":"O","Ṏ":"O","Ȭ":"O","Ƣ":"OI","Ꝏ":"OO","Ɛ":"E","Ɔ":"O","Ȣ":"OU","Ṕ":"P","Ṗ":"P","Ꝓ":"P","Ƥ":"P","Ꝕ":"P","Ᵽ":"P","Ꝑ":"P","Ꝙ":"Q","Ꝗ":"Q","Ŕ":"R","Ř":"R","Ŗ":"R","Ṙ":"R","Ṛ":"R","Ṝ":"R","Ȑ":"R","Ȓ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꜿ":"C","Ǝ":"E","Ś":"S","Ṥ":"S","Š":"S","Ṧ":"S","Ş":"S","Ŝ":"S","Ș":"S","Ṡ":"S","Ṣ":"S","Ṩ":"S","Ť":"T","Ţ":"T","Ṱ":"T","Ț":"T","Ⱦ":"T","Ṫ":"T","Ṭ":"T","Ƭ":"T","Ṯ":"T","Ʈ":"T","Ŧ":"T","Ɐ":"A","Ꞁ":"L","Ɯ":"M","Ʌ":"V","Ꜩ":"TZ","Ú":"U","Ŭ":"U","Ǔ":"U","Û":"U","Ṷ":"U","Ü":"U","Ǘ":"U","Ǚ":"U","Ǜ":"U","Ǖ":"U","Ṳ":"U","Ụ":"U","Ű":"U","Ȕ":"U","Ù":"U","Ủ":"U","Ư":"U","Ứ":"U","Ự":"U","Ừ":"U","Ử":"U","Ữ":"U","Ȗ":"U","Ū":"U","Ṻ":"U","Ų":"U","Ů":"U","Ũ":"U","Ṹ":"U","Ṵ":"U","Ꝟ":"V","Ṿ":"V","Ʋ":"V","Ṽ":"V","Ꝡ":"VY","Ẃ":"W","Ŵ":"W","Ẅ":"W","Ẇ":"W","Ẉ":"W","Ẁ":"W","Ⱳ":"W","Ẍ":"X","Ẋ":"X","Ý":"Y","Ŷ":"Y","Ÿ":"Y","Ẏ":"Y","Ỵ":"Y","Ỳ":"Y","Ƴ":"Y","Ỷ":"Y","Ỿ":"Y","Ȳ":"Y","Ɏ":"Y","Ỹ":"Y","Ź":"Z","Ž":"Z","Ẑ":"Z","Ⱬ":"Z","Ż":"Z","Ẓ":"Z","Ȥ":"Z","Ẕ":"Z","Ƶ":"Z","IJ":"IJ","Œ":"OE","ᴀ":"A","ᴁ":"AE","ʙ":"B","ᴃ":"B","ᴄ":"C","ᴅ":"D","ᴇ":"E","ꜰ":"F","ɢ":"G","ʛ":"G","ʜ":"H","ɪ":"I","ʁ":"R","ᴊ":"J","ᴋ":"K","ʟ":"L","ᴌ":"L","ᴍ":"M",
+"ɴ":"N","ᴏ":"O","ɶ":"OE","ᴐ":"O","ᴕ":"OU","ᴘ":"P","ʀ":"R","ᴎ":"N","ᴙ":"R","ꜱ":"S","ᴛ":"T","ⱻ":"E","ᴚ":"R","ᴜ":"U","ᴠ":"V","ᴡ":"W","ʏ":"Y","ᴢ":"Z","á":"a","ă":"a","ắ":"a","ặ":"a","ằ":"a","ẳ":"a","ẵ":"a","ǎ":"a","â":"a","ấ":"a","ậ":"a","ầ":"a","ẩ":"a","ẫ":"a","ä":"a","ǟ":"a","ȧ":"a","ǡ":"a","ạ":"a","ȁ":"a","à":"a","ả":"a","ȃ":"a","ā":"a","ą":"a","ᶏ":"a","ẚ":"a","å":"a","ǻ":"a","ḁ":"a","ⱥ":"a","ã":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ḃ":"b","ḅ":"b","ɓ":"b","ḇ":"b","ᵬ":"b","ᶀ":"b","ƀ":"b","ƃ":"b","ɵ":"o","ć":"c","č":"c","ç":"c","ḉ":"c","ĉ":"c","ɕ":"c","ċ":"c","ƈ":"c","ȼ":"c","ď":"d","ḑ":"d","ḓ":"d","ȡ":"d","ḋ":"d","ḍ":"d","ɗ":"d","ᶑ":"d","ḏ":"d","ᵭ":"d","ᶁ":"d","đ":"d","ɖ":"d","ƌ":"d","ı":"i","ȷ":"j","ɟ":"j","ʄ":"j","dz":"dz","dž":"dz","é":"e","ĕ":"e","ě":"e","ȩ":"e","ḝ":"e","ê":"e","ế":"e","ệ":"e","ề":"e","ể":"e","ễ":"e","ḙ":"e","ë":"e","ė":"e","ẹ":"e","ȅ":"e","è":"e","ẻ":"e","ȇ":"e","ē":"e","ḗ":"e","ḕ":"e","ⱸ":"e","ę":"e","ᶒ":"e","ɇ":"e","ẽ":"e","ḛ":"e","ꝫ":"et","ḟ":"f","ƒ":"f","ᵮ":"f","ᶂ":"f","ǵ":"g","ğ":"g","ǧ":"g","ģ":"g","ĝ":"g","ġ":"g","ɠ":"g","ḡ":"g","ᶃ":"g","ǥ":"g","ḫ":"h","ȟ":"h","ḩ":"h","ĥ":"h","ⱨ":"h","ḧ":"h","ḣ":"h","ḥ":"h","ɦ":"h","ẖ":"h","ħ":"h","ƕ":"hv","í":"i","ĭ":"i","ǐ":"i","î":"i","ï":"i","ḯ":"i","ị":"i","ȉ":"i","ì":"i","ỉ":"i","ȋ":"i","ī":"i","į":"i","ᶖ":"i","ɨ":"i","ĩ":"i","ḭ":"i","ꝺ":"d","ꝼ":"f","ᵹ":"g","ꞃ":"r","ꞅ":"s","ꞇ":"t","ꝭ":"is","ǰ":"j","ĵ":"j","ʝ":"j","ɉ":"j","ḱ":"k","ǩ":"k","ķ":"k","ⱪ":"k","ꝃ":"k","ḳ":"k","ƙ":"k","ḵ":"k","ᶄ":"k","ꝁ":"k","ꝅ":"k","ĺ":"l","ƚ":"l","ɬ":"l","ľ":"l","ļ":"l","ḽ":"l","ȴ":"l","ḷ":"l","ḹ":"l","ⱡ":"l","ꝉ":"l","ḻ":"l","ŀ":"l","ɫ":"l","ᶅ":"l","ɭ":"l","ł":"l","lj":"lj","ſ":"s","ẜ":"s","ẛ":"s","ẝ":"s","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ᵯ":"m","ᶆ":"m","ń":"n","ň":"n","ņ":"n","ṋ":"n","ȵ":"n","ṅ":"n","ṇ":"n","ǹ":"n","ɲ":"n","ṉ":"n","ƞ":"n","ᵰ":"n","ᶇ":"n","ɳ":"n","ñ":"n","nj":"nj","ó":"o","ŏ":"o","ǒ":"o","ô":"o","ố":"o","ộ":"o","ồ":"o","ổ":"o","ỗ":"o","ö":"o","ȫ":"o","ȯ":"o","ȱ":"o","ọ":"o","ő":"o","ȍ":"o","ò":"o","ỏ":"o","ơ":"o","ớ":"o","ợ":"o","ờ":"o","ở":"o","ỡ":"o","ȏ":"o","ꝋ":"o","ꝍ":"o","ⱺ":"o","ō":"o","ṓ":"o","ṑ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","õ":"o","ṍ":"o","ṏ":"o","ȭ":"o","ƣ":"oi","ꝏ":"oo","ɛ":"e","ᶓ":"e","ɔ":"o","ᶗ":"o","ȣ":"ou","ṕ":"p","ṗ":"p","ꝓ":"p","ƥ":"p","ᵱ":"p","ᶈ":"p","ꝕ":"p","ᵽ":"p","ꝑ":"p","ꝙ":"q","ʠ":"q","ɋ":"q","ꝗ":"q","ŕ":"r","ř":"r","ŗ":"r","ṙ":"r","ṛ":"r","ṝ":"r","ȑ":"r","ɾ":"r","ᵳ":"r","ȓ":"r","ṟ":"r","ɼ":"r","ᵲ":"r","ᶉ":"r","ɍ":"r","ɽ":"r","ↄ":"c","ꜿ":"c","ɘ":"e","ɿ":"r","ś":"s","ṥ":"s","š":"s","ṧ":"s","ş":"s","ŝ":"s","ș":"s","ṡ":"s","ṣ":"s","ṩ":"s","ʂ":"s","ᵴ":"s","ᶊ":"s","ȿ":"s","ɡ":"g","ᴑ":"o","ᴓ":"o","ᴝ":"u","ť":"t","ţ":"t","ṱ":"t","ț":"t","ȶ":"t","ẗ":"t","ⱦ":"t","ṫ":"t","ṭ":"t","ƭ":"t","ṯ":"t","ᵵ":"t","ƫ":"t","ʈ":"t","ŧ":"t","ᵺ":"th","ɐ":"a","ᴂ":"ae","ǝ":"e","ᵷ":"g","ɥ":"h","ʮ":"h","ʯ":"h","ᴉ":"i","ʞ":"k","ꞁ":"l","ɯ":"m","ɰ":"m","ᴔ":"oe","ɹ":"r","ɻ":"r","ɺ":"r","ⱹ":"r","ʇ":"t","ʌ":"v","ʍ":"w","ʎ":"y","ꜩ":"tz","ú":"u","ŭ":"u","ǔ":"u","û":"u","ṷ":"u","ü":"u","ǘ":"u","ǚ":"u","ǜ":"u","ǖ":"u","ṳ":"u","ụ":"u","ű":"u","ȕ":"u","ù":"u","ủ":"u","ư":"u","ứ":"u","ự":"u","ừ":"u","ử":"u","ữ":"u","ȗ":"u","ū":"u","ṻ":"u","ų":"u","ᶙ":"u","ů":"u","ũ":"u","ṹ":"u","ṵ":"u","ᵫ":"ue","ꝸ":"um","ⱴ":"v","ꝟ":"v","ṿ":"v","ʋ":"v","ᶌ":"v","ⱱ":"v","ṽ":"v","ꝡ":"vy","ẃ":"w","ŵ":"w","ẅ":"w","ẇ":"w","ẉ":"w","ẁ":"w","ⱳ":"w","ẘ":"w","ẍ":"x","ẋ":"x","ᶍ":"x","ý":"y","ŷ":"y","ÿ":"y","ẏ":"y","ỵ":"y","ỳ":"y","ƴ":"y","ỷ":"y","ỿ":"y","ȳ":"y","ẙ":"y","ɏ":"y","ỹ":"y","ź":"z","ž":"z","ẑ":"z","ʑ":"z","ⱬ":"z","ż":"z","ẓ":"z","ȥ":"z","ẕ":"z","ᵶ":"z","ᶎ":"z","ʐ":"z","ƶ":"z","ɀ":"z","ff":"ff","ffi":"ffi","ffl":"ffl","fi":"fi","fl":"fl","ij":"ij","œ":"oe","st":"st","ₐ":"a","ₑ":"e","ᵢ":"i","ⱼ":"j","ₒ":"o","ᵣ":"r","ᵤ":"u","ᵥ":"v","ₓ":"x"}},function(t,e,n){"use strict";var r=n(238),i=function(){function Utils(){}return Utils.reflow=function(t){new Function("bs","return bs")(t.offsetHeight)},Utils.getStyles=function(t){var e=t.ownerDocument.defaultView;return e&&e.opener||(e=r.window),e.getComputedStyle(t)},Utils}();e.Utils=i},function(t,e,n){"use strict";function __export(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}__export(n(683)),__export(n(684)),__export(n(685)),__export(n(686)),__export(n(687)),__export(n(688)),__export(n(696)),__export(n(693)),__export(n(697)),__export(n(698)),__export(n(699)),__export(n(700)),__export(n(701)),__export(n(702)),__export(n(703)),__export(n(225)),__export(n(400)),__export(n(76));var r=n(213);e.AccordionModule=r.AccordionModule;var i=n(214);e.AlertModule=i.AlertModule;var o=n(215);e.ButtonsModule=o.ButtonsModule;var a=n(217);e.CarouselModule=a.CarouselModule;var s=n(139);e.CollapseModule=s.CollapseModule;var c=n(218);e.DatepickerModule=c.DatepickerModule;var l=n(219);e.DropdownModule=l.DropdownModule;var u=n(222);e.ModalModule=u.ModalModule;var p=n(224);e.PaginationModule=p.PaginationModule;var d=n(227);e.ProgressbarModule=d.ProgressbarModule;var f=n(228);e.RatingModule=f.RatingModule;var h=n(230);e.TabsModule=h.TabsModule;var m=n(232);e.TimepickerModule=m.TimepickerModule;var v=n(234);e.TooltipModule=v.TooltipModule;var g=n(237);e.TypeaheadModule=g.TypeaheadModule;var b=n(52);e.ComponentsHelper=b.ComponentsHelper;var y=n(695);e.Ng2BootstrapModule=y.Ng2BootstrapModule},function(t,e,n){(function(t){!function(e,n){t.exports=n()}(this,function(){"use strict";function utils_hooks__hooks(){return e.apply(null,arguments)}function setHookCallback(t){e=t}function isArray(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function isObject(t){return"[object Object]"===Object.prototype.toString.call(t)}function isObjectEmpty(t){var e;for(e in t)return!1;return!0}function isDate(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function map(t,e){var n,r=[];for(n=0;n<t.length;++n)r.push(e(t[n],n));return r}function hasOwnProp(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function extend(t,e){for(var n in e)hasOwnProp(e,n)&&(t[n]=e[n]);return hasOwnProp(e,"toString")&&(t.toString=e.toString),hasOwnProp(e,"valueOf")&&(t.valueOf=e.valueOf),t}function create_utc__createUTC(t,e,n,r){return createLocalOrUTC(t,e,n,r,!0).utc()}function defaultParsingFlags(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null}}function getParsingFlags(t){return null==t._pf&&(t._pf=defaultParsingFlags()),t._pf}function valid__isValid(t){if(null==t._isValid){var e=getParsingFlags(t),r=n.call(e.parsedDateParts,function(t){return null!=t});t._isValid=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&r),t._strict&&(t._isValid=t._isValid&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour)}return t._isValid}function valid__createInvalid(t){var e=create_utc__createUTC(NaN);return null!=t?extend(getParsingFlags(e),t):getParsingFlags(e).userInvalidated=!0,e}function isUndefined(t){return void 0===t}function copyConfig(t,e){var n,i,o;if(isUndefined(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),isUndefined(e._i)||(t._i=e._i),isUndefined(e._f)||(t._f=e._f),isUndefined(e._l)||(t._l=e._l),isUndefined(e._strict)||(t._strict=e._strict),isUndefined(e._tzm)||(t._tzm=e._tzm),isUndefined(e._isUTC)||(t._isUTC=e._isUTC),isUndefined(e._offset)||(t._offset=e._offset),isUndefined(e._pf)||(t._pf=getParsingFlags(e)),isUndefined(e._locale)||(t._locale=e._locale),r.length>0)for(n in r)i=r[n],o=e[i],isUndefined(o)||(t[i]=o);return t}function Moment(t){copyConfig(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),i===!1&&(i=!0,utils_hooks__hooks.updateOffset(this),i=!1)}function isMoment(t){return t instanceof Moment||null!=t&&null!=t._isAMomentObject}function absFloor(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function toInt(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=absFloor(e)),n}function compareArrays(t,e,n){var r,i=Math.min(t.length,e.length),o=Math.abs(t.length-e.length),a=0;for(r=0;r<i;r++)(n&&t[r]!==e[r]||!n&&toInt(t[r])!==toInt(e[r]))&&a++;return a+o}function warn(t){utils_hooks__hooks.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function deprecate(t,e){var n=!0;return extend(function(){return null!=utils_hooks__hooks.deprecationHandler&&utils_hooks__hooks.deprecationHandler(null,t),n&&(warn(t+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),n=!1),e.apply(this,arguments)},e)}function deprecateSimple(t,e){null!=utils_hooks__hooks.deprecationHandler&&utils_hooks__hooks.deprecationHandler(t,e),o[t]||(warn(e),o[t]=!0)}function isFunction(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function locale_set__set(t){var e,n;for(n in t)e=t[n],isFunction(e)?this[n]=e:this["_"+n]=e;this._config=t,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function mergeConfigs(t,e){var n,r=extend({},t);for(n in e)hasOwnProp(e,n)&&(isObject(t[n])&&isObject(e[n])?(r[n]={},extend(r[n],t[n]),extend(r[n],e[n])):null!=e[n]?r[n]=e[n]:delete r[n]);for(n in t)hasOwnProp(t,n)&&!hasOwnProp(e,n)&&isObject(t[n])&&(r[n]=extend({},r[n]));return r}function Locale(t){null!=t&&this.set(t)}function locale_calendar__calendar(t,e,n){var r=this._calendar[t]||this._calendar.sameElse;return isFunction(r)?r.call(e,n):r}function longDateFormat(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function invalidDate(){return this._invalidDate}function ordinal(t){return this._ordinal.replace("%d",t)}function relative__relativeTime(t,e,n,r){var i=this._relativeTime[n];return isFunction(i)?i(t,e,n,r):i.replace(/%d/i,t)}function pastFuture(t,e){var n=this._relativeTime[t>0?"future":"past"];return isFunction(n)?n(e):n.replace(/%s/i,e)}function addUnitAlias(t,e){var n=t.toLowerCase();h[n]=h[n+"s"]=h[e]=t}function normalizeUnits(t){return"string"==typeof t?h[t]||h[t.toLowerCase()]:void 0}function normalizeObjectUnits(t){var e,n,r={};for(n in t)hasOwnProp(t,n)&&(e=normalizeUnits(n),e&&(r[e]=t[n]));return r}function addUnitPriority(t,e){m[t]=e}function getPrioritizedUnits(t){var e=[];for(var n in t)e.push({unit:n,priority:m[n]});return e.sort(function(t,e){return t.priority-e.priority}),e}function makeGetSet(t,e){return function(n){return null!=n?(get_set__set(this,t,n),utils_hooks__hooks.updateOffset(this,e),this):get_set__get(this,t)}}function get_set__get(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function get_set__set(t,e,n){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](n)}function stringGet(t){return t=normalizeUnits(t),isFunction(this[t])?this[t]():this}function stringSet(t,e){if("object"==typeof t){t=normalizeObjectUnits(t);for(var n=getPrioritizedUnits(t),r=0;r<n.length;r++)this[n[r].unit](t[n[r].unit])}else if(t=normalizeUnits(t),isFunction(this[t]))return this[t](e);return this}function zeroFill(t,e,n){var r=""+Math.abs(t),i=e-r.length,o=t>=0;return(o?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+r}function addFormatToken(t,e,n,r){var i=r;"string"==typeof r&&(i=function(){return this[r]()}),t&&(y[t]=i),e&&(y[e[0]]=function(){return zeroFill(i.apply(this,arguments),e[1],e[2])}),n&&(y[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),t)})}function removeFormattingTokens(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function makeFormatFunction(t){var e,n,r=t.match(v);for(e=0,n=r.length;e<n;e++)y[r[e]]?r[e]=y[r[e]]:r[e]=removeFormattingTokens(r[e]);return function(e){var i,o="";for(i=0;i<n;i++)o+=r[i]instanceof Function?r[i].call(e,t):r[i];return o}}function formatMoment(t,e){return t.isValid()?(e=expandFormat(e,t.localeData()),b[e]=b[e]||makeFormatFunction(e),b[e](t)):t.localeData().invalidDate()}function expandFormat(t,e){function replaceLongDateFormatTokens(t){return e.longDateFormat(t)||t}var n=5;for(g.lastIndex=0;n>=0&&g.test(t);)t=t.replace(g,replaceLongDateFormatTokens),g.lastIndex=0,n-=1;return t}function addRegexToken(t,e,n){L[t]=isFunction(e)?e:function(t,r){return t&&n?n:e}}function getParseRegexForToken(t,e){return hasOwnProp(L,t)?L[t](e._strict,e._locale):new RegExp(unescapeFormat(t))}function unescapeFormat(t){return regexEscape(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,r,i){return e||n||r||i}))}function regexEscape(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function addParseToken(t,e){var n,r=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(r=function(t,n){n[e]=toInt(t)}),n=0;n<t.length;n++)j[t[n]]=r}function addWeekParseToken(t,e){addParseToken(t,function(t,n,r,i){r._w=r._w||{},e(t,r._w,r,i)})}function addTimeToArrayFromToken(t,e,n){null!=e&&hasOwnProp(j,t)&&j[t](e,n._a,n,t)}function daysInMonth(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function localeMonths(t,e){return isArray(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||K).test(e)?"format":"standalone"][t.month()]}function localeMonthsShort(t,e){return isArray(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[K.test(e)?"format":"standalone"][t.month()]}function units_month__handleStrictParse(t,e,n){var r,i,o,a=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)o=create_utc__createUTC([2e3,r]),this._shortMonthsParse[r]=this.monthsShort(o,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(o,"").toLocaleLowerCase();return n?"MMM"===e?(i=s.call(this._shortMonthsParse,a),i!==-1?i:null):(i=s.call(this._longMonthsParse,a),i!==-1?i:null):"MMM"===e?(i=s.call(this._shortMonthsParse,a),i!==-1?i:(i=s.call(this._longMonthsParse,a),i!==-1?i:null)):(i=s.call(this._longMonthsParse,a),i!==-1?i:(i=s.call(this._shortMonthsParse,a),i!==-1?i:null))}function localeMonthsParse(t,e,n){var r,i,o;if(this._monthsParseExact)return units_month__handleStrictParse.call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(i=create_utc__createUTC([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(o="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[r]=new RegExp(o.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[r].test(t))return r;if(n&&"MMM"===e&&this._shortMonthsParse[r].test(t))return r;if(!n&&this._monthsParse[r].test(t))return r}}function setMonth(t,e){var n;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=toInt(e);else if(e=t.localeData().monthsParse(e),"number"!=typeof e)return t;return n=Math.min(t.date(),daysInMonth(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,n),t}function getSetMonth(t){return null!=t?(setMonth(this,t),utils_hooks__hooks.updateOffset(this,!0),this):get_set__get(this,"Month")}function getDaysInMonth(){return daysInMonth(this.year(),this.month())}function monthsShortRegex(t){return this._monthsParseExact?(hasOwnProp(this,"_monthsRegex")||computeMonthsParse.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(hasOwnProp(this,"_monthsShortRegex")||(this._monthsShortRegex=J),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)}function monthsRegex(t){return this._monthsParseExact?(hasOwnProp(this,"_monthsRegex")||computeMonthsParse.call(this),t?this._monthsStrictRegex:this._monthsRegex):(hasOwnProp(this,"_monthsRegex")||(this._monthsRegex=Q),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)}function computeMonthsParse(){function cmpLenRev(t,e){return e.length-t.length}var t,e,n=[],r=[],i=[];for(t=0;t<12;t++)e=create_utc__createUTC([2e3,t]),n.push(this.monthsShort(e,"")),r.push(this.months(e,"")),i.push(this.months(e,"")),i.push(this.monthsShort(e,""));for(n.sort(cmpLenRev),r.sort(cmpLenRev),i.sort(cmpLenRev),t=0;t<12;t++)n[t]=regexEscape(n[t]),r[t]=regexEscape(r[t]);for(t=0;t<24;t++)i[t]=regexEscape(i[t]);this._monthsRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+n.join("|")+")","i")}function daysInYear(t){return isLeapYear(t)?366:365}function isLeapYear(t){return t%4===0&&t%100!==0||t%400===0}function getIsLeapYear(){return isLeapYear(this.year())}function createDate(t,e,n,r,i,o,a){var s=new Date(t,e,n,r,i,o,a);return t<100&&t>=0&&isFinite(s.getFullYear())&&s.setFullYear(t),s}function createUTCDate(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function firstWeekOffset(t,e,n){var r=7+e-n,i=(7+createUTCDate(t,0,r).getUTCDay()-e)%7;return-i+r-1}function dayOfYearFromWeeks(t,e,n,r,i){var o,a,s=(7+n-r)%7,c=firstWeekOffset(t,r,i),l=1+7*(e-1)+s+c;return l<=0?(o=t-1,a=daysInYear(o)+l):l>daysInYear(t)?(o=t+1,a=l-daysInYear(t)):(o=t,a=l),{year:o,dayOfYear:a}}function weekOfYear(t,e,n){var r,i,o=firstWeekOffset(t.year(),e,n),a=Math.floor((t.dayOfYear()-o-1)/7)+1;return a<1?(i=t.year()-1,r=a+weeksInYear(i,e,n)):a>weeksInYear(t.year(),e,n)?(r=a-weeksInYear(t.year(),e,n),i=t.year()+1):(i=t.year(),r=a),{week:r,year:i}}function weeksInYear(t,e,n){var r=firstWeekOffset(t,e,n),i=firstWeekOffset(t+1,e,n);return(daysInYear(t)-r+i)/7}function localeWeek(t){return weekOfYear(t,this._week.dow,this._week.doy).week}function localeFirstDayOfWeek(){return this._week.dow}function localeFirstDayOfYear(){return this._week.doy}function getSetWeek(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function getSetISOWeek(t){var e=weekOfYear(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function parseWeekday(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function parseIsoWeekday(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function localeWeekdays(t,e){return isArray(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]}function localeWeekdaysShort(t){return this._weekdaysShort[t.day()]}function localeWeekdaysMin(t){return this._weekdaysMin[t.day()]}function day_of_week__handleStrictParse(t,e,n){var r,i,o,a=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)o=create_utc__createUTC([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===e?(i=s.call(this._weekdaysParse,a),i!==-1?i:null):"ddd"===e?(i=s.call(this._shortWeekdaysParse,a),i!==-1?i:null):(i=s.call(this._minWeekdaysParse,a),i!==-1?i:null):"dddd"===e?(i=s.call(this._weekdaysParse,a),i!==-1?i:(i=s.call(this._shortWeekdaysParse,a),i!==-1?i:(i=s.call(this._minWeekdaysParse,a),i!==-1?i:null))):"ddd"===e?(i=s.call(this._shortWeekdaysParse,a),i!==-1?i:(i=s.call(this._weekdaysParse,a),i!==-1?i:(i=s.call(this._minWeekdaysParse,a),i!==-1?i:null))):(i=s.call(this._minWeekdaysParse,a),i!==-1?i:(i=s.call(this._weekdaysParse,a),i!==-1?i:(i=s.call(this._shortWeekdaysParse,a),i!==-1?i:null)))}function localeWeekdaysParse(t,e,n){var r,i,o;if(this._weekdaysParseExact)return day_of_week__handleStrictParse.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(i=create_utc__createUTC([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(i,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(i,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(i,"").replace(".",".?")+"$","i")),this._weekdaysParse[r]||(o="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[r]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[r].test(t))return r;if(n&&"ddd"===e&&this._shortWeekdaysParse[r].test(t))return r;if(n&&"dd"===e&&this._minWeekdaysParse[r].test(t))return r;if(!n&&this._weekdaysParse[r].test(t))return r}}function getSetDayOfWeek(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=parseWeekday(t,this.localeData()),this.add(t-e,"d")):e}function getSetLocaleDayOfWeek(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function getSetISODayOfWeek(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=parseIsoWeekday(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function weekdaysRegex(t){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(hasOwnProp(this,"_weekdaysRegex")||(this._weekdaysRegex=it),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function weekdaysShortRegex(t){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(hasOwnProp(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ot),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function weekdaysMinRegex(t){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(hasOwnProp(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=at),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function computeWeekdaysParse(){function cmpLenRev(t,e){return e.length-t.length}var t,e,n,r,i,o=[],a=[],s=[],c=[];for(t=0;t<7;t++)e=create_utc__createUTC([2e3,1]).day(t),n=this.weekdaysMin(e,""),r=this.weekdaysShort(e,""),i=this.weekdays(e,""),o.push(n),a.push(r),s.push(i),c.push(n),c.push(r),c.push(i);for(o.sort(cmpLenRev),a.sort(cmpLenRev),s.sort(cmpLenRev),c.sort(cmpLenRev),t=0;t<7;t++)a[t]=regexEscape(a[t]),s[t]=regexEscape(s[t]),c[t]=regexEscape(c[t]);this._weekdaysRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function hFormat(){return this.hours()%12||12}function kFormat(){return this.hours()||24}function meridiem(t,e){addFormatToken(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function matchMeridiem(t,e){return e._meridiemParse}function localeIsPM(t){return"p"===(t+"").toLowerCase().charAt(0)}function localeMeridiem(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}function normalizeLocale(t){return t?t.toLowerCase().replace("_","-"):t}function chooseLocale(t){for(var e,n,r,i,o=0;o<t.length;){for(i=normalizeLocale(t[o]).split("-"),e=i.length,n=normalizeLocale(t[o+1]),n=n?n.split("-"):null;e>0;){if(r=loadLocale(i.slice(0,e).join("-")))return r;if(n&&n.length>=e&&compareArrays(i,n,!0)>=e-1)break;e--}o++}return null}function loadLocale(e){var n=null;if(!pt[e]&&"undefined"!=typeof t&&t&&t.exports)try{n=st._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),locale_locales__getSetGlobalLocale(n)}catch(r){}return pt[e]}function locale_locales__getSetGlobalLocale(t,e){var n;return t&&(n=isUndefined(e)?locale_locales__getLocale(t):defineLocale(t,e),n&&(st=n)),st._abbr}function defineLocale(t,e){if(null!==e){var n=ut;return e.abbr=t,null!=pt[t]?(deprecateSimple("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=pt[t]._config):null!=e.parentLocale&&(null!=pt[e.parentLocale]?n=pt[e.parentLocale]._config:deprecateSimple("parentLocaleUndefined","specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/")),pt[t]=new Locale(mergeConfigs(n,e)),locale_locales__getSetGlobalLocale(t),pt[t]}return delete pt[t],null}function updateLocale(t,e){if(null!=e){var n,r=ut;null!=pt[t]&&(r=pt[t]._config),e=mergeConfigs(r,e),n=new Locale(e),n.parentLocale=pt[t],pt[t]=n,locale_locales__getSetGlobalLocale(t)}else null!=pt[t]&&(null!=pt[t].parentLocale?pt[t]=pt[t].parentLocale:null!=pt[t]&&delete pt[t]);return pt[t]}function locale_locales__getLocale(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return st;if(!isArray(t)){if(e=loadLocale(t))return e;t=[t]}return chooseLocale(t)}function locale_locales__listLocales(){return a(pt)}function checkOverflow(t){var e,n=t._a;return n&&getParsingFlags(t).overflow===-2&&(e=n[W]<0||n[W]>11?W:n[B]<1||n[B]>daysInMonth(n[F],n[W])?B:n[U]<0||n[U]>24||24===n[U]&&(0!==n[z]||0!==n[H]||0!==n[q])?U:n[z]<0||n[z]>59?z:n[H]<0||n[H]>59?H:n[q]<0||n[q]>999?q:-1,getParsingFlags(t)._overflowDayOfYear&&(e<F||e>B)&&(e=B),getParsingFlags(t)._overflowWeeks&&e===-1&&(e=G),getParsingFlags(t)._overflowWeekday&&e===-1&&(e=Y),getParsingFlags(t).overflow=e),t}function configFromISO(t){var e,n,r,i,o,a,s=t._i,c=dt.exec(s)||ft.exec(s);if(c){for(getParsingFlags(t).iso=!0,e=0,n=mt.length;e<n;e++)if(mt[e][1].exec(c[1])){i=mt[e][0],r=mt[e][2]!==!1;break}if(null==i)return void(t._isValid=!1);if(c[3]){for(e=0,n=vt.length;e<n;e++)if(vt[e][1].exec(c[3])){o=(c[2]||" ")+vt[e][0];break}if(null==o)return void(t._isValid=!1)}if(!r&&null!=o)return void(t._isValid=!1);if(c[4]){if(!ht.exec(c[4]))return void(t._isValid=!1);a="Z"}t._f=i+(o||"")+(a||""),configFromStringAndFormat(t)}else t._isValid=!1}function configFromString(t){var e=gt.exec(t._i);return null!==e?void(t._d=new Date((+e[1]))):(configFromISO(t),void(t._isValid===!1&&(delete t._isValid,utils_hooks__hooks.createFromInputFallback(t))))}function defaults(t,e,n){return null!=t?t:null!=e?e:n}function currentDateArray(t){var e=new Date(utils_hooks__hooks.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function configFromArray(t){var e,n,r,i,o=[];if(!t._d){for(r=currentDateArray(t),t._w&&null==t._a[B]&&null==t._a[W]&&dayOfYearFromWeekInfo(t),t._dayOfYear&&(i=defaults(t._a[F],r[F]),t._dayOfYear>daysInYear(i)&&(getParsingFlags(t)._overflowDayOfYear=!0),n=createUTCDate(i,0,t._dayOfYear),t._a[W]=n.getUTCMonth(),t._a[B]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=r[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[U]&&0===t._a[z]&&0===t._a[H]&&0===t._a[q]&&(t._nextDay=!0,t._a[U]=0),t._d=(t._useUTC?createUTCDate:createDate).apply(null,o),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[U]=24)}}function dayOfYearFromWeekInfo(t){var e,n,r,i,o,a,s,c;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(o=1,a=4,n=defaults(e.GG,t._a[F],weekOfYear(local__createLocal(),1,4).year),r=defaults(e.W,1),i=defaults(e.E,1),(i<1||i>7)&&(c=!0)):(o=t._locale._week.dow,a=t._locale._week.doy,n=defaults(e.gg,t._a[F],weekOfYear(local__createLocal(),o,a).year),r=defaults(e.w,1),null!=e.d?(i=e.d,(i<0||i>6)&&(c=!0)):null!=e.e?(i=e.e+o,(e.e<0||e.e>6)&&(c=!0)):i=o),r<1||r>weeksInYear(n,o,a)?getParsingFlags(t)._overflowWeeks=!0:null!=c?getParsingFlags(t)._overflowWeekday=!0:(s=dayOfYearFromWeeks(n,r,i,o,a),t._a[F]=s.year,t._dayOfYear=s.dayOfYear)}function configFromStringAndFormat(t){if(t._f===utils_hooks__hooks.ISO_8601)return void configFromISO(t);t._a=[],getParsingFlags(t).empty=!0;var e,n,r,i,o,a=""+t._i,s=a.length,c=0;for(r=expandFormat(t._f,t._locale).match(v)||[],e=0;e<r.length;e++)i=r[e],n=(a.match(getParseRegexForToken(i,t))||[])[0],n&&(o=a.substr(0,a.indexOf(n)),o.length>0&&getParsingFlags(t).unusedInput.push(o),a=a.slice(a.indexOf(n)+n.length),c+=n.length),y[i]?(n?getParsingFlags(t).empty=!1:getParsingFlags(t).unusedTokens.push(i),addTimeToArrayFromToken(i,n,t)):t._strict&&!n&&getParsingFlags(t).unusedTokens.push(i);getParsingFlags(t).charsLeftOver=s-c,a.length>0&&getParsingFlags(t).unusedInput.push(a),t._a[U]<=12&&getParsingFlags(t).bigHour===!0&&t._a[U]>0&&(getParsingFlags(t).bigHour=void 0),getParsingFlags(t).parsedDateParts=t._a.slice(0),getParsingFlags(t).meridiem=t._meridiem,t._a[U]=meridiemFixWrap(t._locale,t._a[U],t._meridiem),configFromArray(t),checkOverflow(t)}function meridiemFixWrap(t,e,n){var r;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(r=t.isPM(n),r&&e<12&&(e+=12),r||12!==e||(e=0),e):e}function configFromStringAndArray(t){var e,n,r,i,o;if(0===t._f.length)return getParsingFlags(t).invalidFormat=!0,void(t._d=new Date(NaN));for(i=0;i<t._f.length;i++)o=0,e=copyConfig({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[i],configFromStringAndFormat(e),valid__isValid(e)&&(o+=getParsingFlags(e).charsLeftOver,o+=10*getParsingFlags(e).unusedTokens.length,getParsingFlags(e).score=o,(null==r||o<r)&&(r=o,n=e));extend(t,n||e)}function configFromObject(t){if(!t._d){var e=normalizeObjectUnits(t._i);t._a=map([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],function(t){return t&&parseInt(t,10)}),configFromArray(t)}}function createFromConfig(t){var e=new Moment(checkOverflow(prepareConfig(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function prepareConfig(t){var e=t._i,n=t._f;return t._locale=t._locale||locale_locales__getLocale(t._l),null===e||void 0===n&&""===e?valid__createInvalid({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),isMoment(e)?new Moment(checkOverflow(e)):(isArray(n)?configFromStringAndArray(t):isDate(e)?t._d=e:n?configFromStringAndFormat(t):configFromInput(t),valid__isValid(t)||(t._d=null),t))}function configFromInput(t){var e=t._i;void 0===e?t._d=new Date(utils_hooks__hooks.now()):isDate(e)?t._d=new Date(e.valueOf()):"string"==typeof e?configFromString(t):isArray(e)?(t._a=map(e.slice(0),function(t){return parseInt(t,10)}),configFromArray(t)):"object"==typeof e?configFromObject(t):"number"==typeof e?t._d=new Date(e):utils_hooks__hooks.createFromInputFallback(t)}function createLocalOrUTC(t,e,n,r,i){var o={};return"boolean"==typeof n&&(r=n,n=void 0),(isObject(t)&&isObjectEmpty(t)||isArray(t)&&0===t.length)&&(t=void 0),o._isAMomentObject=!0,o._useUTC=o._isUTC=i,o._l=n,o._i=t,o._f=e,o._strict=r,createFromConfig(o)}function local__createLocal(t,e,n,r){return createLocalOrUTC(t,e,n,r,!1)}function pickBy(t,e){var n,r;if(1===e.length&&isArray(e[0])&&(e=e[0]),!e.length)return local__createLocal();for(n=e[0],r=1;r<e.length;++r)e[r].isValid()&&!e[r][t](n)||(n=e[r]);return n}function min(){var t=[].slice.call(arguments,0);return pickBy("isBefore",t)}function max(){var t=[].slice.call(arguments,0);return pickBy("isAfter",t)}function Duration(t){var e=normalizeObjectUnits(t),n=e.year||0,r=e.quarter||0,i=e.month||0,o=e.week||0,a=e.day||0,s=e.hour||0,c=e.minute||0,l=e.second||0,u=e.millisecond||0;this._milliseconds=+u+1e3*l+6e4*c+1e3*s*60*60,this._days=+a+7*o,this._months=+i+3*r+12*n,this._data={},this._locale=locale_locales__getLocale(),this._bubble()}function isDuration(t){return t instanceof Duration}function offset(t,e){addFormatToken(t,0,0,function(){var t=this.utcOffset(),n="+";return t<0&&(t=-t,
+n="-"),n+zeroFill(~~(t/60),2)+e+zeroFill(~~t%60,2)})}function offsetFromString(t,e){var n=(e||"").match(t)||[],r=n[n.length-1]||[],i=(r+"").match(wt)||["-",0,0],o=+(60*i[1])+toInt(i[2]);return"+"===i[0]?o:-o}function cloneWithOffset(t,e){var n,r;return e._isUTC?(n=e.clone(),r=(isMoment(t)||isDate(t)?t.valueOf():local__createLocal(t).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+r),utils_hooks__hooks.updateOffset(n,!1),n):local__createLocal(t).local()}function getDateOffset(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function getSetOffset(t,e){var n,r=this._offset||0;return this.isValid()?null!=t?("string"==typeof t?t=offsetFromString(I,t):Math.abs(t)<16&&(t=60*t),!this._isUTC&&e&&(n=getDateOffset(this)),this._offset=t,this._isUTC=!0,null!=n&&this.add(n,"m"),r!==t&&(!e||this._changeInProgress?add_subtract__addSubtract(this,create__createDuration(t-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,utils_hooks__hooks.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?r:getDateOffset(this):null!=t?this:NaN}function getSetZone(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function setOffsetToUTC(t){return this.utcOffset(0,t)}function setOffsetToLocal(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(getDateOffset(this),"m")),this}function setOffsetToParsedOffset(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(offsetFromString(R,this._i)),this}function hasAlignedHourOffset(t){return!!this.isValid()&&(t=t?local__createLocal(t).utcOffset():0,(this.utcOffset()-t)%60===0)}function isDaylightSavingTime(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function isDaylightSavingTimeShifted(){if(!isUndefined(this._isDSTShifted))return this._isDSTShifted;var t={};if(copyConfig(t,this),t=prepareConfig(t),t._a){var e=t._isUTC?create_utc__createUTC(t._a):local__createLocal(t._a);this._isDSTShifted=this.isValid()&&compareArrays(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function isLocal(){return!!this.isValid()&&!this._isUTC}function isUtcOffset(){return!!this.isValid()&&this._isUTC}function isUtc(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function create__createDuration(t,e){var n,r,i,o=t,a=null;return isDuration(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(o={},e?o[e]=t:o.milliseconds=t):(a=xt.exec(t))?(n="-"===a[1]?-1:1,o={y:0,d:toInt(a[B])*n,h:toInt(a[U])*n,m:toInt(a[z])*n,s:toInt(a[H])*n,ms:toInt(a[q])*n}):(a=Ct.exec(t))?(n="-"===a[1]?-1:1,o={y:parseIso(a[2],n),M:parseIso(a[3],n),w:parseIso(a[4],n),d:parseIso(a[5],n),h:parseIso(a[6],n),m:parseIso(a[7],n),s:parseIso(a[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(i=momentsDifference(local__createLocal(o.from),local__createLocal(o.to)),o={},o.ms=i.milliseconds,o.M=i.months),r=new Duration(o),isDuration(t)&&hasOwnProp(t,"_locale")&&(r._locale=t._locale),r}function parseIso(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function positiveMomentsDifference(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function momentsDifference(t,e){var n;return t.isValid()&&e.isValid()?(e=cloneWithOffset(e,t),t.isBefore(e)?n=positiveMomentsDifference(t,e):(n=positiveMomentsDifference(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function absRound(t){return t<0?Math.round(-1*t)*-1:Math.round(t)}function createAdder(t,e){return function(n,r){var i,o;return null===r||isNaN(+r)||(deprecateSimple(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=n,n=r,r=o),n="string"==typeof n?+n:n,i=create__createDuration(n,r),add_subtract__addSubtract(this,i,t),this}}function add_subtract__addSubtract(t,e,n,r){var i=e._milliseconds,o=absRound(e._days),a=absRound(e._months);t.isValid()&&(r=null==r||r,i&&t._d.setTime(t._d.valueOf()+i*n),o&&get_set__set(t,"Date",get_set__get(t,"Date")+o*n),a&&setMonth(t,get_set__get(t,"Month")+a*n),r&&utils_hooks__hooks.updateOffset(t,o||a))}function getCalendarFormat(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function moment_calendar__calendar(t,e){var n=t||local__createLocal(),r=cloneWithOffset(n,this).startOf("day"),i=utils_hooks__hooks.calendarFormat(this,r)||"sameElse",o=e&&(isFunction(e[i])?e[i].call(this,n):e[i]);return this.format(o||this.localeData().calendar(i,this,local__createLocal(n)))}function clone(){return new Moment(this)}function isAfter(t,e){var n=isMoment(t)?t:local__createLocal(t);return!(!this.isValid()||!n.isValid())&&(e=normalizeUnits(isUndefined(e)?"millisecond":e),"millisecond"===e?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(e).valueOf())}function isBefore(t,e){var n=isMoment(t)?t:local__createLocal(t);return!(!this.isValid()||!n.isValid())&&(e=normalizeUnits(isUndefined(e)?"millisecond":e),"millisecond"===e?this.valueOf()<n.valueOf():this.clone().endOf(e).valueOf()<n.valueOf())}function isBetween(t,e,n,r){return r=r||"()",("("===r[0]?this.isAfter(t,n):!this.isBefore(t,n))&&(")"===r[1]?this.isBefore(e,n):!this.isAfter(e,n))}function isSame(t,e){var n,r=isMoment(t)?t:local__createLocal(t);return!(!this.isValid()||!r.isValid())&&(e=normalizeUnits(e||"millisecond"),"millisecond"===e?this.valueOf()===r.valueOf():(n=r.valueOf(),this.clone().startOf(e).valueOf()<=n&&n<=this.clone().endOf(e).valueOf()))}function isSameOrAfter(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function isSameOrBefore(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function diff(t,e,n){var r,i,o,a;return this.isValid()?(r=cloneWithOffset(t,this),r.isValid()?(i=6e4*(r.utcOffset()-this.utcOffset()),e=normalizeUnits(e),"year"===e||"month"===e||"quarter"===e?(a=monthDiff(this,r),"quarter"===e?a/=3:"year"===e&&(a/=12)):(o=this-r,a="second"===e?o/1e3:"minute"===e?o/6e4:"hour"===e?o/36e5:"day"===e?(o-i)/864e5:"week"===e?(o-i)/6048e5:o),n?a:absFloor(a)):NaN):NaN}function monthDiff(t,e){var n,r,i=12*(e.year()-t.year())+(e.month()-t.month()),o=t.clone().add(i,"months");return e-o<0?(n=t.clone().add(i-1,"months"),r=(e-o)/(o-n)):(n=t.clone().add(i+1,"months"),r=(e-o)/(n-o)),-(i+r)||0}function toString(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function moment_format__toISOString(){var t=this.clone().utc();return 0<t.year()&&t.year()<=9999?isFunction(Date.prototype.toISOString)?this.toDate().toISOString():formatMoment(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):formatMoment(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function format(t){t||(t=this.isUtc()?utils_hooks__hooks.defaultFormatUtc:utils_hooks__hooks.defaultFormat);var e=formatMoment(this,t);return this.localeData().postformat(e)}function from(t,e){return this.isValid()&&(isMoment(t)&&t.isValid()||local__createLocal(t).isValid())?create__createDuration({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function fromNow(t){return this.from(local__createLocal(),t)}function to(t,e){return this.isValid()&&(isMoment(t)&&t.isValid()||local__createLocal(t).isValid())?create__createDuration({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function toNow(t){return this.to(local__createLocal(),t)}function locale(t){var e;return void 0===t?this._locale._abbr:(e=locale_locales__getLocale(t),null!=e&&(this._locale=e),this)}function localeData(){return this._locale}function startOf(t){switch(t=normalizeUnits(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function endOf(t){return t=normalizeUnits(t),void 0===t||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function to_type__valueOf(){return this._d.valueOf()-6e4*(this._offset||0)}function unix(){return Math.floor(this.valueOf()/1e3)}function toDate(){return new Date(this.valueOf())}function toArray(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function toObject(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function toJSON(){return this.isValid()?this.toISOString():null}function moment_valid__isValid(){return valid__isValid(this)}function parsingFlags(){return extend({},getParsingFlags(this))}function invalidAt(){return getParsingFlags(this).overflow}function creationData(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function addWeekYearFormatToken(t,e){addFormatToken(0,[t,t.length],0,e)}function getSetWeekYear(t){return getSetWeekYearHelper.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function getSetISOWeekYear(t){return getSetWeekYearHelper.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function getISOWeeksInYear(){return weeksInYear(this.year(),1,4)}function getWeeksInYear(){var t=this.localeData()._week;return weeksInYear(this.year(),t.dow,t.doy)}function getSetWeekYearHelper(t,e,n,r,i){var o;return null==t?weekOfYear(this,r,i).year:(o=weeksInYear(t,r,i),e>o&&(e=o),setWeekAll.call(this,t,e,n,r,i))}function setWeekAll(t,e,n,r,i){var o=dayOfYearFromWeeks(t,e,n,r,i),a=createUTCDate(o.year,0,o.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function getSetQuarter(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function getSetDayOfYear(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function parseMs(t,e){e[q]=toInt(1e3*("0."+t))}function getZoneAbbr(){return this._isUTC?"UTC":""}function getZoneName(){return this._isUTC?"Coordinated Universal Time":""}function moment__createUnix(t){return local__createLocal(1e3*t)}function moment__createInZone(){return local__createLocal.apply(null,arguments).parseZone()}function preParsePostFormat(t){return t}function lists__get(t,e,n,r){var i=locale_locales__getLocale(),o=create_utc__createUTC().set(r,e);return i[n](o,t)}function listMonthsImpl(t,e,n){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return lists__get(t,e,n,"month");var r,i=[];for(r=0;r<12;r++)i[r]=lists__get(t,r,n,"month");return i}function listWeekdaysImpl(t,e,n,r){"boolean"==typeof t?("number"==typeof e&&(n=e,e=void 0),e=e||""):(e=t,n=e,t=!1,"number"==typeof e&&(n=e,e=void 0),e=e||"");var i=locale_locales__getLocale(),o=t?i._week.dow:0;if(null!=n)return lists__get(e,(n+o)%7,r,"day");var a,s=[];for(a=0;a<7;a++)s[a]=lists__get(e,(a+o)%7,r,"day");return s}function lists__listMonths(t,e){return listMonthsImpl(t,e,"months")}function lists__listMonthsShort(t,e){return listMonthsImpl(t,e,"monthsShort")}function lists__listWeekdays(t,e,n){return listWeekdaysImpl(t,e,n,"weekdays")}function lists__listWeekdaysShort(t,e,n){return listWeekdaysImpl(t,e,n,"weekdaysShort")}function lists__listWeekdaysMin(t,e,n){return listWeekdaysImpl(t,e,n,"weekdaysMin")}function duration_abs__abs(){var t=this._data;return this._milliseconds=Nt(this._milliseconds),this._days=Nt(this._days),this._months=Nt(this._months),t.milliseconds=Nt(t.milliseconds),t.seconds=Nt(t.seconds),t.minutes=Nt(t.minutes),t.hours=Nt(t.hours),t.months=Nt(t.months),t.years=Nt(t.years),this}function duration_add_subtract__addSubtract(t,e,n,r){var i=create__createDuration(e,n);return t._milliseconds+=r*i._milliseconds,t._days+=r*i._days,t._months+=r*i._months,t._bubble()}function duration_add_subtract__add(t,e){return duration_add_subtract__addSubtract(this,t,e,1)}function duration_add_subtract__subtract(t,e){return duration_add_subtract__addSubtract(this,t,e,-1)}function absCeil(t){return t<0?Math.floor(t):Math.ceil(t)}function bubble(){var t,e,n,r,i,o=this._milliseconds,a=this._days,s=this._months,c=this._data;return o>=0&&a>=0&&s>=0||o<=0&&a<=0&&s<=0||(o+=864e5*absCeil(monthsToDays(s)+a),a=0,s=0),c.milliseconds=o%1e3,t=absFloor(o/1e3),c.seconds=t%60,e=absFloor(t/60),c.minutes=e%60,n=absFloor(e/60),c.hours=n%24,a+=absFloor(n/24),i=absFloor(daysToMonths(a)),s+=i,a-=absCeil(monthsToDays(i)),r=absFloor(s/12),s%=12,c.days=a,c.months=s,c.years=r,this}function daysToMonths(t){return 4800*t/146097}function monthsToDays(t){return 146097*t/4800}function as(t){var e,n,r=this._milliseconds;if(t=normalizeUnits(t),"month"===t||"year"===t)return e=this._days+r/864e5,n=this._months+daysToMonths(e),"month"===t?n:n/12;switch(e=this._days+Math.round(monthsToDays(this._months)),t){case"week":return e/7+r/6048e5;case"day":return e+r/864e5;case"hour":return 24*e+r/36e5;case"minute":return 1440*e+r/6e4;case"second":return 86400*e+r/1e3;case"millisecond":return Math.floor(864e5*e)+r;default:throw new Error("Unknown unit "+t)}}function duration_as__valueOf(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*toInt(this._months/12)}function makeAs(t){return function(){return this.as(t)}}function duration_get__get(t){return t=normalizeUnits(t),this[t+"s"]()}function makeGetter(t){return function(){return this._data[t]}}function weeks(){return absFloor(this.days()/7)}function substituteTimeAgo(t,e,n,r,i){return i.relativeTime(e||1,!!n,t,r)}function duration_humanize__relativeTime(t,e,n){var r=create__createDuration(t).abs(),i=Jt(r.as("s")),o=Jt(r.as("m")),a=Jt(r.as("h")),s=Jt(r.as("d")),c=Jt(r.as("M")),l=Jt(r.as("y")),u=i<Qt.s&&["s",i]||o<=1&&["m"]||o<Qt.m&&["mm",o]||a<=1&&["h"]||a<Qt.h&&["hh",a]||s<=1&&["d"]||s<Qt.d&&["dd",s]||c<=1&&["M"]||c<Qt.M&&["MM",c]||l<=1&&["y"]||["yy",l];return u[2]=e,u[3]=+t>0,u[4]=n,substituteTimeAgo.apply(null,u)}function duration_humanize__getSetRelativeTimeRounding(t){return void 0===t?Jt:"function"==typeof t&&(Jt=t,!0)}function duration_humanize__getSetRelativeTimeThreshold(t,e){return void 0!==Qt[t]&&(void 0===e?Qt[t]:(Qt[t]=e,!0))}function humanize(t){var e=this.localeData(),n=duration_humanize__relativeTime(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}function iso_string__toISOString(){var t,e,n,r=Xt(this._milliseconds)/1e3,i=Xt(this._days),o=Xt(this._months);t=absFloor(r/60),e=absFloor(t/60),r%=60,t%=60,n=absFloor(o/12),o%=12;var a=n,s=o,c=i,l=e,u=t,p=r,d=this.asSeconds();return d?(d<0?"-":"")+"P"+(a?a+"Y":"")+(s?s+"M":"")+(c?c+"D":"")+(l||u||p?"T":"")+(l?l+"H":"")+(u?u+"M":"")+(p?p+"S":""):"P0D"}var e,n;n=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,r=0;r<n;r++)if(r in e&&t.call(this,e[r],r,e))return!0;return!1};var r=utils_hooks__hooks.momentProperties=[],i=!1,o={};utils_hooks__hooks.suppressDeprecationWarnings=!1,utils_hooks__hooks.deprecationHandler=null;var a;a=Object.keys?Object.keys:function(t){var e,n=[];for(e in t)hasOwnProp(t,e)&&n.push(e);return n};var s,c={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},l={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},u="Invalid date",p="%d",d=/\d{1,2}/,f={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},h={},m={},v=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,g=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,b={},y={},_=/\d/,w=/\d\d/,x=/\d{3}/,C=/\d{4}/,S=/[+-]?\d{6}/,k=/\d\d?/,E=/\d\d\d\d?/,P=/\d\d\d\d\d\d?/,A=/\d{1,3}/,T=/\d{1,4}/,O=/[+-]?\d{1,6}/,M=/\d+/,D=/[+-]?\d+/,R=/Z|[+-]\d\d:?\d\d/gi,I=/Z|[+-]\d\d(?::?\d\d)?/gi,N=/[+-]?\d+(\.\d{1,3})?/,V=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,L={},j={},F=0,W=1,B=2,U=3,z=4,H=5,q=6,G=7,Y=8;s=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},addFormatToken("M",["MM",2],"Mo",function(){return this.month()+1}),addFormatToken("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),addFormatToken("MMMM",0,0,function(t){return this.localeData().months(this,t)}),addUnitAlias("month","M"),addUnitPriority("month",8),addRegexToken("M",k),addRegexToken("MM",k,w),addRegexToken("MMM",function(t,e){return e.monthsShortRegex(t)}),addRegexToken("MMMM",function(t,e){return e.monthsRegex(t)}),addParseToken(["M","MM"],function(t,e){e[W]=toInt(t)-1}),addParseToken(["MMM","MMMM"],function(t,e,n,r){var i=n._locale.monthsParse(t,r,n._strict);null!=i?e[W]=i:getParsingFlags(n).invalidMonth=t});var K=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Z="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),$="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),J=V,Q=V;addFormatToken("Y",0,0,function(){var t=this.year();return t<=9999?""+t:"+"+t}),addFormatToken(0,["YY",2],0,function(){return this.year()%100}),addFormatToken(0,["YYYY",4],0,"year"),addFormatToken(0,["YYYYY",5],0,"year"),addFormatToken(0,["YYYYYY",6,!0],0,"year"),addUnitAlias("year","y"),addUnitPriority("year",1),addRegexToken("Y",D),addRegexToken("YY",k,w),addRegexToken("YYYY",T,C),addRegexToken("YYYYY",O,S),addRegexToken("YYYYYY",O,S),addParseToken(["YYYYY","YYYYYY"],F),addParseToken("YYYY",function(t,e){e[F]=2===t.length?utils_hooks__hooks.parseTwoDigitYear(t):toInt(t)}),addParseToken("YY",function(t,e){e[F]=utils_hooks__hooks.parseTwoDigitYear(t)}),addParseToken("Y",function(t,e){e[F]=parseInt(t,10)}),utils_hooks__hooks.parseTwoDigitYear=function(t){return toInt(t)+(toInt(t)>68?1900:2e3)};var X=makeGetSet("FullYear",!0);addFormatToken("w",["ww",2],"wo","week"),addFormatToken("W",["WW",2],"Wo","isoWeek"),addUnitAlias("week","w"),addUnitAlias("isoWeek","W"),addUnitPriority("week",5),addUnitPriority("isoWeek",5),addRegexToken("w",k),addRegexToken("ww",k,w),addRegexToken("W",k),addRegexToken("WW",k,w),addWeekParseToken(["w","ww","W","WW"],function(t,e,n,r){e[r.substr(0,1)]=toInt(t)});var tt={dow:0,doy:6};addFormatToken("d",0,"do","day"),addFormatToken("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),addFormatToken("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),addFormatToken("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),addFormatToken("e",0,0,"weekday"),addFormatToken("E",0,0,"isoWeekday"),addUnitAlias("day","d"),addUnitAlias("weekday","e"),addUnitAlias("isoWeekday","E"),addUnitPriority("day",11),addUnitPriority("weekday",11),addUnitPriority("isoWeekday",11),addRegexToken("d",k),addRegexToken("e",k),addRegexToken("E",k),addRegexToken("dd",function(t,e){return e.weekdaysMinRegex(t)}),addRegexToken("ddd",function(t,e){return e.weekdaysShortRegex(t)}),addRegexToken("dddd",function(t,e){return e.weekdaysRegex(t)}),addWeekParseToken(["dd","ddd","dddd"],function(t,e,n,r){var i=n._locale.weekdaysParse(t,r,n._strict);null!=i?e.d=i:getParsingFlags(n).invalidWeekday=t}),addWeekParseToken(["d","e","E"],function(t,e,n,r){e[r]=toInt(t)});var et="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),nt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),rt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),it=V,ot=V,at=V;addFormatToken("H",["HH",2],0,"hour"),addFormatToken("h",["hh",2],0,hFormat),addFormatToken("k",["kk",2],0,kFormat),addFormatToken("hmm",0,0,function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)}),addFormatToken("hmmss",0,0,function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)}),addFormatToken("Hmm",0,0,function(){return""+this.hours()+zeroFill(this.minutes(),2)}),addFormatToken("Hmmss",0,0,function(){return""+this.hours()+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)}),meridiem("a",!0),meridiem("A",!1),addUnitAlias("hour","h"),addUnitPriority("hour",13),addRegexToken("a",matchMeridiem),addRegexToken("A",matchMeridiem),addRegexToken("H",k),addRegexToken("h",k),addRegexToken("HH",k,w),addRegexToken("hh",k,w),addRegexToken("hmm",E),addRegexToken("hmmss",P),addRegexToken("Hmm",E),addRegexToken("Hmmss",P),addParseToken(["H","HH"],U),addParseToken(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),addParseToken(["h","hh"],function(t,e,n){e[U]=toInt(t),getParsingFlags(n).bigHour=!0}),addParseToken("hmm",function(t,e,n){var r=t.length-2;e[U]=toInt(t.substr(0,r)),e[z]=toInt(t.substr(r)),getParsingFlags(n).bigHour=!0}),addParseToken("hmmss",function(t,e,n){var r=t.length-4,i=t.length-2;e[U]=toInt(t.substr(0,r)),e[z]=toInt(t.substr(r,2)),e[H]=toInt(t.substr(i)),getParsingFlags(n).bigHour=!0}),addParseToken("Hmm",function(t,e,n){var r=t.length-2;e[U]=toInt(t.substr(0,r)),e[z]=toInt(t.substr(r))}),addParseToken("Hmmss",function(t,e,n){var r=t.length-4,i=t.length-2;e[U]=toInt(t.substr(0,r)),e[z]=toInt(t.substr(r,2)),e[H]=toInt(t.substr(i))});var st,ct=/[ap]\.?m?\.?/i,lt=makeGetSet("Hours",!0),ut={calendar:c,longDateFormat:l,invalidDate:u,ordinal:p,ordinalParse:d,relativeTime:f,months:Z,monthsShort:$,week:tt,weekdays:et,weekdaysMin:rt,weekdaysShort:nt,meridiemParse:ct},pt={},dt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,ft=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,ht=/Z|[+-]\d\d(?::?\d\d)?/,mt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],vt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],gt=/^\/?Date\((\-?\d+)/i;utils_hooks__hooks.createFromInputFallback=deprecate("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),utils_hooks__hooks.ISO_8601=function(){};var bt=deprecate("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=local__createLocal.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:valid__createInvalid()}),yt=deprecate("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=local__createLocal.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:valid__createInvalid()}),_t=function(){return Date.now?Date.now():+new Date};offset("Z",":"),offset("ZZ",""),addRegexToken("Z",I),addRegexToken("ZZ",I),addParseToken(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=offsetFromString(I,t)});var wt=/([\+\-]|\d\d)/gi;utils_hooks__hooks.updateOffset=function(){};var xt=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,Ct=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;create__createDuration.fn=Duration.prototype;var St=createAdder(1,"add"),kt=createAdder(-1,"subtract");utils_hooks__hooks.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",utils_hooks__hooks.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Et=deprecate("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});addFormatToken(0,["gg",2],0,function(){return this.weekYear()%100}),addFormatToken(0,["GG",2],0,function(){return this.isoWeekYear()%100}),addWeekYearFormatToken("gggg","weekYear"),addWeekYearFormatToken("ggggg","weekYear"),addWeekYearFormatToken("GGGG","isoWeekYear"),addWeekYearFormatToken("GGGGG","isoWeekYear"),addUnitAlias("weekYear","gg"),addUnitAlias("isoWeekYear","GG"),addUnitPriority("weekYear",1),addUnitPriority("isoWeekYear",1),addRegexToken("G",D),addRegexToken("g",D),addRegexToken("GG",k,w),addRegexToken("gg",k,w),addRegexToken("GGGG",T,C),addRegexToken("gggg",T,C),addRegexToken("GGGGG",O,S),addRegexToken("ggggg",O,S),addWeekParseToken(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,r){e[r.substr(0,2)]=toInt(t)}),addWeekParseToken(["gg","GG"],function(t,e,n,r){e[r]=utils_hooks__hooks.parseTwoDigitYear(t)}),addFormatToken("Q",0,"Qo","quarter"),addUnitAlias("quarter","Q"),addUnitPriority("quarter",7),addRegexToken("Q",_),addParseToken("Q",function(t,e){e[W]=3*(toInt(t)-1)}),addFormatToken("D",["DD",2],"Do","date"),addUnitAlias("date","D"),addUnitPriority("date",9),addRegexToken("D",k),addRegexToken("DD",k,w),addRegexToken("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),addParseToken(["D","DD"],B),addParseToken("Do",function(t,e){e[B]=toInt(t.match(k)[0],10)});var Pt=makeGetSet("Date",!0);addFormatToken("DDD",["DDDD",3],"DDDo","dayOfYear"),addUnitAlias("dayOfYear","DDD"),addUnitPriority("dayOfYear",4),addRegexToken("DDD",A),addRegexToken("DDDD",x),addParseToken(["DDD","DDDD"],function(t,e,n){n._dayOfYear=toInt(t)}),addFormatToken("m",["mm",2],0,"minute"),addUnitAlias("minute","m"),addUnitPriority("minute",14),addRegexToken("m",k),addRegexToken("mm",k,w),addParseToken(["m","mm"],z);var At=makeGetSet("Minutes",!1);addFormatToken("s",["ss",2],0,"second"),addUnitAlias("second","s"),addUnitPriority("second",15),addRegexToken("s",k),addRegexToken("ss",k,w),addParseToken(["s","ss"],H);var Tt=makeGetSet("Seconds",!1);addFormatToken("S",0,0,function(){return~~(this.millisecond()/100)}),addFormatToken(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),addFormatToken(0,["SSS",3],0,"millisecond"),addFormatToken(0,["SSSS",4],0,function(){return 10*this.millisecond()}),addFormatToken(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),addFormatToken(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),addFormatToken(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),addFormatToken(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),addFormatToken(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),addUnitAlias("millisecond","ms"),addUnitPriority("millisecond",16),addRegexToken("S",A,_),addRegexToken("SS",A,w),addRegexToken("SSS",A,x);var Ot;for(Ot="SSSS";Ot.length<=9;Ot+="S")addRegexToken(Ot,M);for(Ot="S";Ot.length<=9;Ot+="S")addParseToken(Ot,parseMs);var Mt=makeGetSet("Milliseconds",!1);addFormatToken("z",0,0,"zoneAbbr"),addFormatToken("zz",0,0,"zoneName");var Dt=Moment.prototype;Dt.add=St,Dt.calendar=moment_calendar__calendar,Dt.clone=clone,Dt.diff=diff,Dt.endOf=endOf,Dt.format=format,Dt.from=from,Dt.fromNow=fromNow,Dt.to=to,Dt.toNow=toNow,Dt.get=stringGet,Dt.invalidAt=invalidAt,Dt.isAfter=isAfter,Dt.isBefore=isBefore,Dt.isBetween=isBetween,Dt.isSame=isSame,Dt.isSameOrAfter=isSameOrAfter,Dt.isSameOrBefore=isSameOrBefore,Dt.isValid=moment_valid__isValid,Dt.lang=Et,Dt.locale=locale,Dt.localeData=localeData,Dt.max=yt,Dt.min=bt,Dt.parsingFlags=parsingFlags,Dt.set=stringSet,Dt.startOf=startOf,Dt.subtract=kt,Dt.toArray=toArray,Dt.toObject=toObject,Dt.toDate=toDate,Dt.toISOString=moment_format__toISOString,Dt.toJSON=toJSON,Dt.toString=toString,Dt.unix=unix,Dt.valueOf=to_type__valueOf,Dt.creationData=creationData,Dt.year=X,Dt.isLeapYear=getIsLeapYear,Dt.weekYear=getSetWeekYear,Dt.isoWeekYear=getSetISOWeekYear,Dt.quarter=Dt.quarters=getSetQuarter,Dt.month=getSetMonth,Dt.daysInMonth=getDaysInMonth,Dt.week=Dt.weeks=getSetWeek,Dt.isoWeek=Dt.isoWeeks=getSetISOWeek,Dt.weeksInYear=getWeeksInYear,Dt.isoWeeksInYear=getISOWeeksInYear,Dt.date=Pt,Dt.day=Dt.days=getSetDayOfWeek,Dt.weekday=getSetLocaleDayOfWeek,Dt.isoWeekday=getSetISODayOfWeek,Dt.dayOfYear=getSetDayOfYear,Dt.hour=Dt.hours=lt,Dt.minute=Dt.minutes=At,Dt.second=Dt.seconds=Tt,Dt.millisecond=Dt.milliseconds=Mt,Dt.utcOffset=getSetOffset,Dt.utc=setOffsetToUTC,Dt.local=setOffsetToLocal,Dt.parseZone=setOffsetToParsedOffset,Dt.hasAlignedHourOffset=hasAlignedHourOffset,Dt.isDST=isDaylightSavingTime,Dt.isLocal=isLocal,Dt.isUtcOffset=isUtcOffset,Dt.isUtc=isUtc,Dt.isUTC=isUtc,Dt.zoneAbbr=getZoneAbbr,Dt.zoneName=getZoneName,Dt.dates=deprecate("dates accessor is deprecated. Use date instead.",Pt),Dt.months=deprecate("months accessor is deprecated. Use month instead",getSetMonth),Dt.years=deprecate("years accessor is deprecated. Use year instead",X),Dt.zone=deprecate("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",getSetZone),Dt.isDSTShifted=deprecate("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",isDaylightSavingTimeShifted);var Rt=Dt,It=Locale.prototype;It.calendar=locale_calendar__calendar,It.longDateFormat=longDateFormat,It.invalidDate=invalidDate,It.ordinal=ordinal,It.preparse=preParsePostFormat,It.postformat=preParsePostFormat,It.relativeTime=relative__relativeTime,It.pastFuture=pastFuture,It.set=locale_set__set,It.months=localeMonths,It.monthsShort=localeMonthsShort,It.monthsParse=localeMonthsParse,It.monthsRegex=monthsRegex,It.monthsShortRegex=monthsShortRegex,It.week=localeWeek,It.firstDayOfYear=localeFirstDayOfYear,It.firstDayOfWeek=localeFirstDayOfWeek,It.weekdays=localeWeekdays,It.weekdaysMin=localeWeekdaysMin,It.weekdaysShort=localeWeekdaysShort,It.weekdaysParse=localeWeekdaysParse,It.weekdaysRegex=weekdaysRegex,It.weekdaysShortRegex=weekdaysShortRegex,It.weekdaysMinRegex=weekdaysMinRegex,It.isPM=localeIsPM,It.meridiem=localeMeridiem,locale_locales__getSetGlobalLocale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===toInt(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}}),utils_hooks__hooks.lang=deprecate("moment.lang is deprecated. Use moment.locale instead.",locale_locales__getSetGlobalLocale),utils_hooks__hooks.langData=deprecate("moment.langData is deprecated. Use moment.localeData instead.",locale_locales__getLocale);var Nt=Math.abs,Vt=makeAs("ms"),Lt=makeAs("s"),jt=makeAs("m"),Ft=makeAs("h"),Wt=makeAs("d"),Bt=makeAs("w"),Ut=makeAs("M"),zt=makeAs("y"),Ht=makeGetter("milliseconds"),qt=makeGetter("seconds"),Gt=makeGetter("minutes"),Yt=makeGetter("hours"),Kt=makeGetter("days"),Zt=makeGetter("months"),$t=makeGetter("years"),Jt=Math.round,Qt={s:45,m:45,h:22,d:26,M:11},Xt=Math.abs,te=Duration.prototype;te.abs=duration_abs__abs,te.add=duration_add_subtract__add,te.subtract=duration_add_subtract__subtract,te.as=as,te.asMilliseconds=Vt,te.asSeconds=Lt,te.asMinutes=jt,te.asHours=Ft,te.asDays=Wt,te.asWeeks=Bt,te.asMonths=Ut,te.asYears=zt,te.valueOf=duration_as__valueOf,te._bubble=bubble,te.get=duration_get__get,te.milliseconds=Ht,te.seconds=qt,te.minutes=Gt,te.hours=Yt,te.days=Kt,te.weeks=weeks,te.months=Zt,te.years=$t,te.humanize=humanize,te.toISOString=iso_string__toISOString,te.toString=iso_string__toISOString,te.toJSON=iso_string__toISOString,te.locale=locale,te.localeData=localeData,te.toIsoString=deprecate("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",iso_string__toISOString),
+te.lang=Et,addFormatToken("X",0,0,"unix"),addFormatToken("x",0,0,"valueOf"),addRegexToken("x",D),addRegexToken("X",N),addParseToken("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),addParseToken("x",function(t,e,n){n._d=new Date(toInt(t))}),utils_hooks__hooks.version="2.14.1",setHookCallback(local__createLocal),utils_hooks__hooks.fn=Rt,utils_hooks__hooks.min=min,utils_hooks__hooks.max=max,utils_hooks__hooks.now=_t,utils_hooks__hooks.utc=create_utc__createUTC,utils_hooks__hooks.unix=moment__createUnix,utils_hooks__hooks.months=lists__listMonths,utils_hooks__hooks.isDate=isDate,utils_hooks__hooks.locale=locale_locales__getSetGlobalLocale,utils_hooks__hooks.invalid=valid__createInvalid,utils_hooks__hooks.duration=create__createDuration,utils_hooks__hooks.isMoment=isMoment,utils_hooks__hooks.weekdays=lists__listWeekdays,utils_hooks__hooks.parseZone=moment__createInZone,utils_hooks__hooks.localeData=locale_locales__getLocale,utils_hooks__hooks.isDuration=isDuration,utils_hooks__hooks.monthsShort=lists__listMonthsShort,utils_hooks__hooks.weekdaysMin=lists__listWeekdaysMin,utils_hooks__hooks.defineLocale=defineLocale,utils_hooks__hooks.updateLocale=updateLocale,utils_hooks__hooks.locales=locale_locales__listLocales,utils_hooks__hooks.weekdaysShort=lists__listWeekdaysShort,utils_hooks__hooks.normalizeUnits=normalizeUnits,utils_hooks__hooks.relativeTimeRounding=duration_humanize__getSetRelativeTimeRounding,utils_hooks__hooks.relativeTimeThreshold=duration_humanize__getSetRelativeTimeThreshold,utils_hooks__hooks.calendarFormat=getCalendarFormat,utils_hooks__hooks.prototype=Rt;var ee=utils_hooks__hooks;return ee})}).call(e,n(428)(t))},function(t,e,n){"use strict";function rgba(t,e){return"rgba("+t.concat(e).join(",")+")"}function getRandomInt(t,e){return Math.floor(Math.random()*(e-t+1))+t}function formatLineColor(t){return{backgroundColor:rgba(t,.4),borderColor:rgba(t,1),pointBackgroundColor:rgba(t,1),pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:rgba(t,.8)}}function formatBarColor(t){return{backgroundColor:rgba(t,.6),borderColor:rgba(t,1),hoverBackgroundColor:rgba(t,.8),hoverBorderColor:rgba(t,1)}}function formatPieColors(t){return{backgroundColor:t.map(function(t){return rgba(t,.6)}),borderColor:t.map(function(){return"#fff"}),pointBackgroundColor:t.map(function(t){return rgba(t,1)}),pointBorderColor:t.map(function(){return"#fff"}),pointHoverBackgroundColor:t.map(function(t){return rgba(t,1)}),pointHoverBorderColor:t.map(function(t){return rgba(t,1)})}}function formatPolarAreaColors(t){return{backgroundColor:t.map(function(t){return rgba(t,.6)}),borderColor:t.map(function(t){return rgba(t,1)}),hoverBackgroundColor:t.map(function(t){return rgba(t,.8)}),hoverBorderColor:t.map(function(t){return rgba(t,1)})}}function getRandomColor(){return[getRandomInt(0,255),getRandomInt(0,255),getRandomInt(0,255)]}function generateColor(t){return a.defaultColors[t]||getRandomColor()}function generateColors(t){for(var e=new Array(t),n=0;n<t;n++)e[n]=a.defaultColors[n]||getRandomColor();return e}function getColors(t,e,n){return"pie"===t||"doughnut"===t?formatPieColors(generateColors(n)):"polarArea"===t?formatPolarAreaColors(generateColors(n)):"line"===t||"radar"===t?formatLineColor(generateColor(e)):"bar"===t||"horizontalBar"===t?formatBarColor(generateColor(e)):generateColor(e)}var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=n(0),a=function(){function BaseChartComponent(t){this.labels=[],this.options={responsive:!0},this.chartClick=new o.EventEmitter,this.chartHover=new o.EventEmitter,this.initFlag=!1,this.element=t}return BaseChartComponent.prototype.ngOnInit=function(){this.ctx=this.element.nativeElement.children[0].getContext("2d"),this.cvs=this.element.nativeElement.children[0],this.parent=this.element.nativeElement,this.initFlag=!0,(this.data||this.datasets)&&this.refresh()},BaseChartComponent.prototype.ngOnChanges=function(){this.initFlag&&this.refresh()},BaseChartComponent.prototype.ngOnDestroy=function(){this.chart&&(this.chart.destroy(),this.chart=void 0)},BaseChartComponent.prototype.getChartBuilder=function(t){var e=this,n=void 0;if((!this.datasets||!this.datasets.length&&this.data&&this.data.length)&&(n=Array.isArray(this.data[0])?this.data.map(function(t,n){return{data:t,label:e.labels[n]||"Label "+n}}):[{data:this.data,label:"Label 0"}]),(this.datasets&&this.datasets.length||n&&n.length)&&(n=(this.datasets||n).map(function(t,n){var r=Object.assign({},t);return e.colors&&e.colors.length?Object.assign(r,e.colors[n]):Object.assign(r,getColors(e.chartType,n,r.data.length)),r})),!n)throw new Error("ng-charts configuration error, \n      data or datasets field are required to render char "+this.chartType);var r=Object.assign({},this.options);this.legend===!1&&(r.legend={display:!1}),r.hover=r.hover||{},r.hover.onHover||(r.hover.onHover=function(t){t&&!t.length||e.chartHover.emit({active:t})}),r.onClick||(r.onClick=function(t,n){e.chartClick.emit({event:t,active:n})});var i={type:this.chartType,data:{labels:this.labels,datasets:n},options:r};if("undefined"==typeof Chart)throw new Error("ng2-charts configuration issue: Embedding Chart.js lib is mandatory");return new Chart(t,i)},BaseChartComponent.prototype.refresh=function(){var t=this;return this.options&&this.options.responsive&&0===this.parent.clientHeight?setTimeout(function(){return t.refresh()},50):(this.ngOnDestroy(),void(this.chart=this.getChartBuilder(this.ctx)))},BaseChartComponent.defaultColors=[[255,99,132],[54,162,235],[255,206,86],[231,233,237],[75,192,192],[151,187,205],[220,220,220],[247,70,74],[70,191,189],[253,180,92],[148,159,177],[77,83,96]],r([o.Input(),i("design:type",Object)],BaseChartComponent.prototype,"data",void 0),r([o.Input(),i("design:type",Array)],BaseChartComponent.prototype,"datasets",void 0),r([o.Input(),i("design:type",Array)],BaseChartComponent.prototype,"labels",void 0),r([o.Input(),i("design:type",Object)],BaseChartComponent.prototype,"options",void 0),r([o.Input(),i("design:type",String)],BaseChartComponent.prototype,"chartType",void 0),r([o.Input(),i("design:type",Array)],BaseChartComponent.prototype,"colors",void 0),r([o.Input(),i("design:type",Boolean)],BaseChartComponent.prototype,"legend",void 0),r([o.Output(),i("design:type",o.EventEmitter)],BaseChartComponent.prototype,"chartClick",void 0),r([o.Output(),i("design:type",o.EventEmitter)],BaseChartComponent.prototype,"chartHover",void 0),BaseChartComponent=r([o.Component({selector:"base-chart",template:'<canvas style="width: 100%; height: 100%;"></canvas>',styles:[":host { display: block; }"]}),i("design:paramtypes",[o.ElementRef])],BaseChartComponent)}();e.BaseChartComponent=a;var s=function(){function ChartsModule(){}return ChartsModule=r([o.NgModule({declarations:[a],exports:[a],imports:[]}),i("design:paramtypes",[])],ChartsModule)}();e.ChartsModule=s},function(t,e,n){"use strict";function __export(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}__export(n(708))},function(t,e){function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(t){if(n===setTimeout)return setTimeout(t,0);if((n===defaultSetTimout||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}function runClearTimeout(t){if(r===clearTimeout)return clearTimeout(t);if((r===defaultClearTimeout||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{return r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}function cleanUpNextTick(){s&&o&&(s=!1,o.length?a=o.concat(a):c=-1,a.length&&drainQueue())}function drainQueue(){if(!s){var t=runTimeout(cleanUpNextTick);s=!0;for(var e=a.length;e;){for(o=a,a=[];++c<e;)o&&o[c].run();c=-1,e=a.length}o=null,s=!1,runClearTimeout(t)}}function Item(t,e){this.fun=t,this.array=e}function noop(){}var n,r,i=t.exports={};!function(){try{n="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(t){n=defaultSetTimout}try{r="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(t){r=defaultClearTimeout}}();var o,a=[],s=!1,c=-1;i.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];a.push(new Item(t,e)),1!==a.length||s||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=noop,i.addListener=noop,i.once=noop,i.off=noop,i.removeListener=noop,i.removeAllListeners=noop,i.emit=noop,i.binding=function(t){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(t){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},,,function(t,e){t.exports='<div class="animated fadeIn">\n    <div class="card-columns col-2">\n        <div class="card">\n            <div class="card-header">\n                Line Chart\n                <div class="card-actions">\n                    <a href="http://www.chartjs.org">\n                        <small class="text-muted">docs</small>\n                    </a>\n                </div>\n            </div>\n            <div class="card-block">\n                <div class="chart-wrapper">\n                    <base-chart class="chart"\n                                [datasets]="lineChartData"\n                                [labels]="lineChartLabels"\n                                [options]="lineChartOptions"\n                                [colors]="lineChartColours"\n                                [legend]="lineChartLegend"\n                                [chartType]="lineChartType"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)"></base-chart>\n                </div>\n            </div>\n        </div>\n        <div class="card">\n            <div class="card-header">\n                Bar Chart\n                <div class="card-actions">\n                    <a href="http://www.chartjs.org">\n                        <small class="text-muted">docs</small>\n                    </a>\n                </div>\n            </div>\n            <div class="card-block">\n                <div class="chart-wrapper">\n                    <base-chart class="chart"\n                               [datasets]="barChartData"\n                               [labels]="barChartLabels"\n                               [options]="barChartOptions"\n                               [legend]="barChartLegend"\n                               [chartType]="barChartType"\n                               (chartHover)="chartHovered($event)"\n                               (chartClick)="chartClicked($event)"></base-chart>\n                </div>\n            </div>\n        </div>\n        <div class="card">\n            <div class="card-header">\n                Doughnut Chart\n                <div class="card-actions">\n                    <a href="http://www.chartjs.org">\n                        <small class="text-muted">docs</small>\n                    </a>\n                </div>\n            </div>\n            <div class="card-block">\n                <div class="chart-wrapper">\n                    <base-chart class="chart"\n                                [data]="doughnutChartData"\n                                [labels]="doughnutChartLabels"\n                                [chartType]="doughnutChartType"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)"></base-chart>\n                </div>\n            </div>\n        </div>\n        <div class="card">\n            <div class="card-header">\n                Radar Chart\n                <div class="card-actions">\n                    <a href="http://www.chartjs.org">\n                        <small class="text-muted">docs</small>\n                    </a>\n                </div>\n            </div>\n            <div class="card-block">\n                <div class="chart-wrapper">\n                    <base-chart class="chart"\n                                [datasets]="radarChartData"\n                                [labels]="radarChartLabels"\n                                [chartType]="radarChartType"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)"></base-chart>\n                </div>\n            </div>\n        </div>\n        <div class="card">\n            <div class="card-header">\n                Pie Chart\n                <div class="card-actions">\n                    <a href="http://www.chartjs.org">\n                        <small class="text-muted">docs</small>\n                    </a>\n                </div>\n            </div>\n            <div class="card-block">\n                <div class="chart-wrapper">\n                    <base-chart class="chart"\n                                [data]="pieChartData"\n                                [labels]="pieChartLabels"\n                                [chartType]="pieChartType"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)"></base-chart>\n                </div>\n            </div>\n        </div>\n        <div class="card">\n            <div class="card-header">\n                Polar Area Chart\n                <div class="card-actions">\n                    <a href="http://www.chartjs.org">\n                        <small class="text-muted">docs</small>\n                    </a>\n                </div>\n            </div>\n            <div class="card-block">\n                <div class="chart-wrapper">\n                    <base-chart class="chart"\n                                [data]="polarAreaChartData"\n                                [labels]="polarAreaChartLabels"\n                                [legend]="polarAreaLegend"\n                                [chartType]="polarAreaChartType"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)"></base-chart>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n'},function(t,e){t.exports='<div class="animated fadeIn">\n    <div class="row">\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Options</strong>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-primary">Primary</button>\n                    <button type="button" class="btn btn-secondary">Secondary</button>\n                    <button type="button" class="btn btn-success">Success</button>\n                    <button type="button" class="btn btn-warning">Warning</button>\n                    <button type="button" class="btn btn-danger">Danger</button>\n                    <button type="button" class="btn btn-link">Link</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>With Icons</strong>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-primary"><i class="fa fa-star"></i>&nbsp; Primary</button>\n                    <button type="button" class="btn btn-secondary"><i class="fa fa-lightbulb-o"></i>&nbsp; Secondary</button>\n                    <button type="button" class="btn btn-success"><i class="fa fa-magic"></i>&nbsp; Success</button>\n                    <button type="button" class="btn btn-warning"><i class="fa fa-map-marker"></i>&nbsp; Warning</button>\n                    <button type="button" class="btn btn-danger"><i class="fa fa-rss"></i>&nbsp; Danger</button>\n                    <button type="button" class="btn btn-link"><i class="fa fa-link"></i>&nbsp; Link</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Size Large</strong>\n                    <small>Add this class\n                        <code>.btn-lg</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-primary btn-lg">Primary</button>\n                    <button type="button" class="btn btn-secondary btn-lg">Secondary</button>\n                    <button type="button" class="btn btn-success btn-lg">Success</button>\n                    <button type="button" class="btn btn-info btn-lg">Info</button>\n                    <button type="button" class="btn btn-warning btn-lg">Warning</button>\n                    <button type="button" class="btn btn-danger btn-lg">Danger</button>\n                    <button type="button" class="btn btn-link btn-lg">Link</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Size Small</strong>\n                    <small>Add this class\n                        <code>.btn-sm</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-primary btn-sm">Primary</button>\n                    <button type="button" class="btn btn-secondary btn-sm">Secondary</button>\n                    <button type="button" class="btn btn-success btn-sm">Success</button>\n                    <button type="button" class="btn btn-info btn-sm">Info</button>\n                    <button type="button" class="btn btn-warning btn-sm">Warning</button>\n                    <button type="button" class="btn btn-danger btn-sm">Danger</button>\n                    <button type="button" class="btn btn-link btn-sm">Link</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Size Extra Small</strong>\n                    <small>Add this class\n                        <code>.btn-xs</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-primary btn-xs">Primary</button>\n                    <button type="button" class="btn btn-secondary btn-xs">Secondary</button>\n                    <button type="button" class="btn btn-success btn-xs">Success</button>\n                    <button type="button" class="btn btn-info btn-xs">Info</button>\n                    <button type="button" class="btn btn-warning btn-xs">Warning</button>\n                    <button type="button" class="btn btn-danger btn-xs">Danger</button>\n                    <button type="button" class="btn btn-link btn-xs">Link</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Disabled state</strong>\n                    <small>Add this\n                        <code>disabled="disabled"</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-primary" disabled="disabled">Primary</button>\n                    <button type="button" class="btn btn-secondary" disabled="disabled">Secondary</button>\n                    <button type="button" class="btn btn-success" disabled="disabled">Success</button>\n                    <button type="button" class="btn btn-info" disabled="disabled">Info</button>\n                    <button type="button" class="btn btn-warning" disabled="disabled">Warning</button>\n                    <button type="button" class="btn btn-danger" disabled="disabled">Danger</button>\n                    <button type="button" class="btn btn-link" disabled="disabled">Link</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Active state</strong>\n                    <small>Add this class\n                        <code>.active</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-primary active">Primary</button>\n                    <button type="button" class="btn btn-secondary active">Secondary</button>\n                    <button type="button" class="btn btn-success active">Success</button>\n                    <button type="button" class="btn btn-info active">Info</button>\n                    <button type="button" class="btn btn-warning active">Warning</button>\n                    <button type="button" class="btn btn-danger active">Danger</button>\n                    <button type="button" class="btn btn-link active">Link</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Block Level Buttons</strong>\n                    <small>Add this class\n                        <code>.btn-block</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-secondary btn-lg btn-block">Block level button</button>\n                    <button type="button" class="btn btn-primary btn-lg btn-block">Block level button</button>\n                    <button type="button" class="btn btn-success btn-lg btn-block">Block level button</button>\n                    <button type="button" class="btn btn-info btn-lg btn-block">Block level button</button>\n                    <button type="button" class="btn btn-warning btn-lg btn-block">Block level button</button>\n                    <button type="button" class="btn btn-danger btn-lg btn-block">Block level button</button>\n                    <button type="button" class="btn btn-link btn-lg btn-block">Block level button</button>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Options</strong>\n                </div>\n                <div class="card-block">\n                    <!-- Provides extra visual weight and identifies the primary action in a set of buttons -->\n                    <button type="button" class="btn btn-outline-primary">Primary</button>\n                    <!-- Secondary, outline button -->\n                    <button type="button" class="btn btn-outline-secondary">Secondary</button>\n                    <!-- Indicates a successful or positive action -->\n                    <button type="button" class="btn btn-outline-success">Success</button>\n                    <!-- Indicates caution should be taken with this action -->\n                    <button type="button" class="btn btn-outline-warning">Warning</button>\n                    <!-- Indicates a dangerous or potentially negative action -->\n                    <button type="button" class="btn btn-outline-danger">Danger</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>With Icons</strong>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-outline-primary"><i class="fa fa-star"></i>&nbsp; Primary</button>\n                    <button type="button" class="btn btn-outline-secondary"><i class="fa fa-lightbulb-o"></i>&nbsp; Secondary</button>\n                    <button type="button" class="btn btn-outline-success"><i class="fa fa-magic"></i>&nbsp; Success</button>\n                    <button type="button" class="btn btn-outline-warning"><i class="fa fa-map-marker"></i>&nbsp; Warning</button>\n                    <button type="button" class="btn btn-outline-danger"><i class="fa fa-rss"></i>&nbsp; Danger</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Size Large</strong>\n                    <small>Add this class\n                        <code>.btn-lg</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-outline-primary btn-lg">Primary</button>\n                    <button type="button" class="btn btn-outline-secondary btn-lg">Secondary</button>\n                    <button type="button" class="btn btn-outline-success btn-lg">Success</button>\n                    <button type="button" class="btn btn-outline-info btn-lg">Info</button>\n                    <button type="button" class="btn btn-outline-warning btn-lg">Warning</button>\n                    <button type="button" class="btn btn-outline-danger btn-lg">Danger</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Size Small</strong>\n                    <small>Add this class\n                        <code>.btn-sm</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-outline-primary btn-sm">Primary</button>\n                    <button type="button" class="btn btn-outline-secondary btn-sm">Secondary</button>\n                    <button type="button" class="btn btn-outline-success btn-sm">Success</button>\n                    <button type="button" class="btn btn-outline-info btn-sm">Info</button>\n                    <button type="button" class="btn btn-outline-warning btn-sm">Warning</button>\n                    <button type="button" class="btn btn-outline-danger btn-sm">Danger</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Size Extra Small</strong>\n                    <small>Add this class\n                        <code>.btn-xs</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-outline-primary btn-xs">Primary</button>\n                    <button type="button" class="btn btn-outline-secondary btn-xs">Secondary</button>\n                    <button type="button" class="btn btn-outline-success btn-xs">Success</button>\n                    <button type="button" class="btn btn-outline-info btn-xs">Info</button>\n                    <button type="button" class="btn btn-outline-warning btn-xs">Warning</button>\n                    <button type="button" class="btn btn-outline-danger btn-xs">Danger</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Disabled state</strong>\n                    <small>Add this\n                        <code>disabled="disabled"</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-outline-primary" disabled="disabled">Primary</button>\n                    <button type="button" class="btn btn-outline-secondary" disabled="disabled">Secondary</button>\n                    <button type="button" class="btn btn-success" disabled="disabled">Success</button>\n                    <button type="button" class="btn btn-outline-info" disabled="disabled">Info</button>\n                    <button type="button" class="btn btn-outline-warning" disabled="disabled">Warning</button>\n                    <button type="button" class="btn btn-outline-danger" disabled="disabled">Danger</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Active state</strong>\n                    <small>Add this class\n                        <code>.active</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-outline-primary active">Primary</button>\n                    <button type="button" class="btn btn-outline-secondary active">Secondary</button>\n                    <button type="button" class="btn btn-outline-success active">Success</button>\n                    <button type="button" class="btn btn-outline-info active">Info</button>\n                    <button type="button" class="btn btn-outline-warning active">Warning</button>\n                    <button type="button" class="btn btn-outline-danger active">Danger</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Block Level Buttons</strong>\n                    <small>Add this class\n                        <code>.btn-block</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <button type="button" class="btn btn-outline-secondary btn-lg btn-block">Block level button</button>\n                    <button type="button" class="btn btn-outline-primary btn-lg btn-block">Block level button</button>\n                    <button type="button" class="btn btn-outline-success btn-lg btn-block">Block level button</button>\n                    <button type="button" class="btn btn-outline-info btn-lg btn-block">Block level button</button>\n                    <button type="button" class="btn btn-outline-warning btn-lg btn-block">Block level button</button>\n                    <button type="button" class="btn btn-outline-danger btn-lg btn-block">Block level button</button>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n</div>\n'},function(t,e){t.exports='<div class="animated fadeIn">\n    <div class="row">\n        <div class="col-sm-6 col-md-4">\n            <div class="card">\n                <div class="card-header">\n                    Card title\n                </div>\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card">\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n                <div class="card-footer">Card footer</div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-default">\n                <div class="card-header">\n                    Card Minimized\n                    <small>Add this class\n                        <code>.panel-minimized</code>\n                    </small>\n                    <div class="card-actions">\n                        <a href="#" class="btn-minimize"><i class="icon-arrow-up"></i></a>\n                    </div>\n                </div>\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card">\n                <div class="card-header">\n                    <i class="fa fa-check"></i>Card with icon\n                </div>\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card">\n                <div class="card-header">\n                    Card with switch\n                    <label class="switch switch-sm switch-text switch-info pull-right m-b-0">\n                        <input type="checkbox" class="switch-input">\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card">\n                <div class="card-header">\n                    Card with label\n                    <span class="tag tag-success pull-right">Success</span>\n                </div>\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card">\n                <div class="card-header">\n                    Card with label\n                    <span class="tag tag-pill tag-danger pull-right">42</span>\n                </div>\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n    <div class="row">\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-inverse card-primary text-xs-center">\n                <div class="card-block">\n                    <blockquote class="card-blockquote">\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>\n                        <footer>Someone famous in\n                            <cite title="Source Title">Source Title</cite>\n                        </footer>\n                    </blockquote>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-inverse card-success text-xs-center">\n                <div class="card-block">\n                    <blockquote class="card-blockquote">\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>\n                        <footer>Someone famous in\n                            <cite title="Source Title">Source Title</cite>\n                        </footer>\n                    </blockquote>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-inverse card-info text-xs-center">\n                <div class="card-block">\n                    <blockquote class="card-blockquote">\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>\n                        <footer>Someone famous in\n                            <cite title="Source Title">Source Title</cite>\n                        </footer>\n                    </blockquote>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-inverse card-warning text-xs-center">\n                <div class="card-block">\n                    <blockquote class="card-blockquote">\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>\n                        <footer>Someone famous in\n                            <cite title="Source Title">Source Title</cite>\n                        </footer>\n                    </blockquote>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-inverse card-danger text-xs-center">\n                <div class="card-block">\n                    <blockquote class="card-blockquote">\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>\n                        <footer>Someone famous in\n                            <cite title="Source Title">Source Title</cite>\n                        </footer>\n                    </blockquote>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-inverse card-primary text-xs-center">\n                <div class="card-block">\n                    <blockquote class="card-blockquote">\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>\n                        <footer>Someone famous in\n                            <cite title="Source Title">Source Title</cite>\n                        </footer>\n                    </blockquote>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n    <div class="row">\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-inverse card-primary">\n                <div class="card-header">\n                    Card title\n                </div>\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-inverse card-success">\n                <div class="card-header">\n                    Card title\n                </div>\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-inverse card-info">\n                <div class="card-header">\n                    Card title\n                </div>\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-inverse card-warning">\n                <div class="card-header">\n                    Card title\n                </div>\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-md-4">\n            <div class="card card-inverse card-danger">\n                <div class="card-header">\n                    Card title\n                </div>\n                <div class="card-block">\n                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n</div>\n';
+},function(t,e){t.exports='<div class="animated fadeIn">\n    <div class="row">\n        <div class="col-sm-6">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Credit Card</strong>\n                    <small>Form</small>\n                </div>\n                <div class="card-block">\n                    <div class="row">\n                        <div class="col-sm-12">\n                            <div class="form-group">\n                                <label for="name">Name</label>\n                                <input type="text" class="form-control" id="name" placeholder="Enter your name">\n                            </div>\n                        </div>\n                    </div>\n                    <!--/row-->\n                    <div class="row">\n                        <div class="col-sm-12">\n                            <div class="form-group">\n                                <label for="ccnumber">Credit Card Number</label>\n                                <input type="text" class="form-control" id="ccnumber" placeholder="0000 0000 0000 0000">\n                            </div>\n                        </div>\n                    </div>\n                    <!--/row-->\n                    <div class="row">\n                        <div class="form-group col-sm-4">\n                            <label for="ccmonth">Month</label>\n                            <select class="form-control" id="ccmonth">\n                                <option>1</option>\n                                <option>2</option>\n                                <option>3</option>\n                                <option>4</option>\n                                <option>5</option>\n                                <option>6</option>\n                                <option>7</option>\n                                <option>8</option>\n                                <option>9</option>\n                                <option>10</option>\n                                <option>11</option>\n                                <option>12</option>\n                            </select>\n                        </div>\n                        <div class="form-group col-sm-4">\n                            <label for="ccyear">Year</label>\n                            <select class="form-control" id="ccyear">\n                                <option>2014</option>\n                                <option>2015</option>\n                                <option>2016</option>\n                                <option>2017</option>\n                                <option>2018</option>\n                                <option>2019</option>\n                                <option>2020</option>\n                                <option>2021</option>\n                                <option>2022</option>\n                                <option>2023</option>\n                                <option>2024</option>\n                                <option>2025</option>\n                            </select>\n                        </div>\n                        <div class="col-sm-4">\n                            <div class="form-group">\n                                <label for="cvv">CVV/CVC</label>\n                                <input type="text" class="form-control" id="cvv" placeholder="123">\n                            </div>\n                        </div>\n                    </div>\n                    <!--/row-->\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Company</strong>\n                    <small>Form</small>\n                </div>\n                <div class="card-block">\n                    <div class="form-group">\n                        <label for="company">Company</label>\n                        <input type="text" class="form-control" id="company" placeholder="Enter your company name">\n                    </div>\n                    <div class="form-group">\n                        <label for="vat">VAT</label>\n                        <input type="text" class="form-control" id="vat" placeholder="PL1234567890">\n                    </div>\n                    <div class="form-group">\n                        <label for="street">Street</label>\n                        <input type="text" class="form-control" id="street" placeholder="Enter street name">\n                    </div>\n                    <div class="row">\n                        <div class="form-group col-sm-8">\n                            <label for="city">City</label>\n                            <input type="text" class="form-control" id="city" placeholder="Enter your city">\n                        </div>\n                        <div class="form-group col-sm-4">\n                            <label for="postal-code">Postal Code</label>\n                            <input type="text" class="form-control" id="postal-code" placeholder="Postal Code">\n                        </div>\n                    </div>\n                    <!--/row-->\n                    <div class="form-group">\n                        <label for="country">Country</label>\n                        <input type="text" class="form-control" id="country" placeholder="Country name">\n                    </div>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/.row-->\n    <div class="row">\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Basic Form</strong> Elements\n                </div>\n                <div class="card-block">\n                    <form action="" method="post" enctype="multipart/form-data" class="form-horizontal ">\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label">Static</label>\n                            <div class="col-md-9">\n                                <p class="form-control-static">Username</p>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="text-input">Text Input</label>\n                            <div class="col-md-9">\n                                <input type="text" id="text-input" name="text-input" class="form-control" placeholder="Text">\n                                <span class="help-block">This is a help text</span>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="email-input">Email Input</label>\n                            <div class="col-md-9">\n                                <input type="email" id="email-input" name="email-input" class="form-control" placeholder="Enter Email">\n                                <span class="help-block">Please enter your email</span>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="password-input">Password</label>\n                            <div class="col-md-9">\n                                <input type="password" id="password-input" name="password-input" class="form-control" placeholder="Password">\n                                <span class="help-block">Please enter a complex password</span>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="disabled-input">Disabled Input</label>\n                            <div class="col-md-9">\n                                <input type="text" id="disabled-input" name="disabled-input" class="form-control" placeholder="Disabled" disabled>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="textarea-input">Textarea</label>\n                            <div class="col-md-9">\n                                <textarea id="textarea-input" name="textarea-input" rows="9" class="form-control" placeholder="Content.."></textarea>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="select">Select</label>\n                            <div class="col-md-9">\n                                <select id="select" name="select" class="form-control" size="1">\n                                    <option value="0">Please select</option>\n                                    <option value="1">Option #1</option>\n                                    <option value="2">Option #2</option>\n                                    <option value="3">Option #3</option>\n                                </select>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="select">Select Large</label>\n                            <div class="col-md-9">\n                                <select id="select" name="select" class="form-control input-lg" size="1">\n                                    <option value="0">Please select</option>\n                                    <option value="1">Option #1</option>\n                                    <option value="2">Option #2</option>\n                                    <option value="3">Option #3</option>\n                                </select>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="select">Select Small</label>\n                            <div class="col-md-9">\n                                <select id="select" name="select" class="form-control input-sm" size="1">\n                                    <option value="0">Please select</option>\n                                    <option value="1">Option #1</option>\n                                    <option value="2">Option #2</option>\n                                    <option value="3">Option #3</option>\n                                </select>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="select">Disabled Select</label>\n                            <div class="col-md-9">\n                                <select id="disabledSelect" class="form-control" disabled>\n                                    <option value="0">Please select</option>\n                                    <option value="1">Option #1</option>\n                                    <option value="2">Option #2</option>\n                                    <option value="3">Option #3</option>\n                                </select>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="multiple-select">Multiple select</label>\n                            <div class="col-md-9">\n                                <select id="multiple-select" name="multiple-select" class="form-control" size="5" multiple>\n                                    <option value="1">Option #1</option>\n                                    <option value="2">Option #2</option>\n                                    <option value="3">Option #3</option>\n                                    <option value="4">Option #4</option>\n                                    <option value="5">Option #5</option>\n                                    <option value="6">Option #6</option>\n                                    <option value="7">Option #7</option>\n                                    <option value="8">Option #8</option>\n                                    <option value="9">Option #9</option>\n                                    <option value="10">Option #10</option>\n                                </select>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label">Radios</label>\n                            <div class="col-md-9">\n                                <div class="radio">\n                                    <label for="radio1">\n                                        <input type="radio" id="radio1" name="radios" value="option1"> Option 1\n                                    </label>\n                                </div>\n                                <div class="radio">\n                                    <label for="radio2">\n                                        <input type="radio" id="radio2" name="radios" value="option2"> Option 2\n                                    </label>\n                                </div>\n                                <div class="radio">\n                                    <label for="radio3">\n                                        <input type="radio" id="radio3" name="radios" value="option3"> Option 3\n                                    </label>\n                                </div>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label">Inline Radios</label>\n                            <div class="col-md-9">\n                                <label class="radio-inline" for="inline-radio1">\n                                    <input type="radio" id="inline-radio1" name="inline-radios" value="option1"> One\n                                </label>\n                                <label class="radio-inline" for="inline-radio2">\n                                    <input type="radio" id="inline-radio2" name="inline-radios" value="option2"> Two\n                                </label>\n                                <label class="radio-inline" for="inline-radio3">\n                                    <input type="radio" id="inline-radio3" name="inline-radios" value="option3"> Three\n                                </label>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label">Checkboxes</label>\n                            <div class="col-md-9">\n                                <div class="checkbox">\n                                    <label for="checkbox1">\n                                        <input type="checkbox" id="checkbox1" name="checkbox1" value="option1"> Option 1\n                                    </label>\n                                </div>\n                                <div class="checkbox">\n                                    <label for="checkbox2">\n                                        <input type="checkbox" id="checkbox2" name="checkbox2" value="option2"> Option 2\n                                    </label>\n                                </div>\n                                <div class="checkbox">\n                                    <label for="checkbox3">\n                                        <input type="checkbox" id="checkbox3" name="checkbox3" value="option3"> Option 3\n                                    </label>\n                                </div>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label">Inline Checkboxes</label>\n                            <div class="col-md-9">\n                                <label class="checkbox-inline" for="inline-checkbox1">\n                                    <input type="checkbox" id="inline-checkbox1" name="inline-checkbox1" value="option1">One\n                                </label>\n                                <label class="checkbox-inline" for="inline-checkbox2">\n                                    <input type="checkbox" id="inline-checkbox2" name="inline-checkbox2" value="option2">Two\n                                </label>\n                                <label class="checkbox-inline" for="inline-checkbox3">\n                                    <input type="checkbox" id="inline-checkbox3" name="inline-checkbox3" value="option3">Three\n                                </label>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="file-input">File input</label>\n                            <div class="col-md-9">\n                                <input type="file" id="file-input" name="file-input">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="file-multiple-input">Multiple File input</label>\n                            <div class="col-md-9">\n                                <input type="file" id="file-multiple-input" name="file-multiple-input" multiple>\n                            </div>\n                        </div>\n                    </form>\n                </div>\n                <div class="card-footer">\n                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>\n                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Inline</strong> Form\n                </div>\n                <div class="card-block">\n                    <form action="" method="post" class="form-inline">\n                        <div class="form-group">\n                            <label class="sr-only" for="if-email">Email</label>\n                            <input type="email" id="if-email" name="if-email" class="form-control" placeholder="Enter Email..">\n                        </div>\n                        <div class="form-group">\n                            <label class="sr-only" for="if-password">Password</label>\n                            <input type="password" id="if-password" name="if-password" class="form-control" placeholder="Enter Password..">\n                        </div>\n                    </form>\n                </div>\n                <div class="card-footer">\n                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>\n                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>\n                </div>\n            </div>\n        </div>\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Horizontal</strong> Form\n                </div>\n                <div class="card-block">\n                    <form action="" method="post" class="form-horizontal ">\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="hf-email">Email</label>\n                            <div class="col-md-9">\n                                <input type="email" id="hf-email" name="hf-email" class="form-control" placeholder="Enter Email..">\n                                <span class="help-block">Please enter your email</span>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-md-3 form-control-label" for="hf-password">Password</label>\n                            <div class="col-md-9">\n                                <input type="password" id="hf-password" name="hf-password" class="form-control" placeholder="Enter Password..">\n                                <span class="help-block">Please enter your password</span>\n                            </div>\n                        </div>\n                    </form>\n                </div>\n                <div class="card-footer">\n                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>\n                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    <strong>Normal</strong> Form\n                </div>\n                <div class="card-block">\n                    <form action="" method="post">\n                        <div class="form-group">\n                            <label for="nf-email">Email</label>\n                            <input type="email" id="nf-email" name="nf-email" class="form-control" placeholder="Enter Email..">\n                            <span class="help-block">Please enter your email</span>\n                        </div>\n                        <div class="form-group">\n                            <label for="nf-password">Password</label>\n                            <input type="password" id="nf-password" name="nf-password" class="form-control" placeholder="Enter Password..">\n                            <span class="help-block">Please enter your password</span>\n                        </div>\n                    </form>\n                </div>\n                <div class="card-footer">\n                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>\n                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    Input\n                    <strong>Grid</strong>\n                </div>\n                <div class="card-block">\n                    <form action="" method="post" class="form-horizontal ">\n                        <div class="form-group row">\n                            <div class="col-sm-3">\n                                <input type="text" class="form-control" placeholder=".col-sm-3">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-sm-4">\n                                <input type="text" class="form-control" placeholder=".col-sm-4">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-sm-5">\n                                <input type="text" class="form-control" placeholder=".col-sm-5">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-sm-6">\n                                <input type="text" class="form-control" placeholder=".col-sm-6">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-sm-7">\n                                <input type="text" class="form-control" placeholder=".col-sm-7">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-sm-8">\n                                <input type="text" class="form-control" placeholder=".col-sm-8">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-sm-9">\n                                <input type="text" class="form-control" placeholder=".col-sm-9">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-sm-10">\n                                <input type="text" class="form-control" placeholder=".col-sm-10">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-sm-11">\n                                <input type="text" class="form-control" placeholder=".col-sm-11">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-sm-12">\n                                <input type="text" class="form-control" placeholder=".col-sm-12">\n                            </div>\n                        </div>\n                    </form>\n                </div>\n                <div class="card-footer">\n                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-user"></i> Login</button>\n                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>\n                </div>\n            </div>\n            <div class="card">\n                <div class="card-header">\n                    Input\n                    <strong>Sizes</strong>\n                </div>\n                <div class="card-block">\n                    <form action="" method="post" class="form-horizontal ">\n                        <div class="form-group row">\n                            <label class="col-sm-3 form-control-label" for="input-small">Small Input</label>\n                            <div class="col-sm-6">\n                                <input type="text" id="input-small" name="input-small" class="form-control input-sm" placeholder=".input-sm">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-sm-3 form-control-label" for="input-normal">Normal Input</label>\n                            <div class="col-sm-6">\n                                <input type="text" id="input-normal" name="input-normal" class="form-control" placeholder="Normal">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <label class="col-sm-3 form-control-label" for="input-large">Large Input</label>\n                            <div class="col-sm-6">\n                                <input type="text" id="input-large" name="input-large" class="form-control input-lg" placeholder=".input-lg">\n                            </div>\n                        </div>\n                    </form>\n                </div>\n                <div class="card-footer">\n                    <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>\n                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/.row-->\n    <div class="row">\n        <div class="col-sm-6">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Validation states</strong> Form\n                </div>\n                <div class="card-block">\n                    <div class="form-group has-success">\n                        <label class="form-form-control-label" for="inputSuccess1">Input with success</label>\n                        <input type="text" class="form-control" id="inputSuccess1">\n                    </div>\n                    <div class="form-group has-warning">\n                        <label class="form-form-control-label" for="inputWarning1">Input with warning</label>\n                        <input type="text" class="form-control" id="inputWarning1">\n                    </div>\n                    <div class="form-group has-danger">\n                        <label class="form-form-control-label" for="inputError1">Input with error</label>\n                        <input type="text" class="form-control" id="inputError1">\n                    </div>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Validation states</strong> with optional icons\n                </div>\n                <div class="card-block">\n                    <div class="form-group has-success">\n                        <label class="form-form-control-label" for="inputSuccess2">Input with success</label>\n                        <input type="text" class="form-control form-control-success" id="inputSuccess2">\n                    </div>\n                    <div class="form-group has-warning">\n                        <label class="form-form-control-label" for="inputWarning2">Input with warning</label>\n                        <input type="text" class="form-control form-control-warning" id="inputWarning2">\n                    </div>\n                    <div class="form-group has-danger has-feedback">\n                        <label class="form-form-control-label" for="inputError2">Input with error</label>\n                        <input type="text" class="form-control form-control-danger" id="inputError2">\n                    </div>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <div class="row">\n        <div class="col-sm-4">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Icon/Text</strong> Groups\n                </div>\n                <div class="card-block">\n                    <form action="" method="post" class="form-horizontal ">\n                        <div class="form-group row">\n                            <div class="col-md-12">\n                                <div class="input-group">\n                                    <span class="input-group-addon"><i class="fa fa-user"></i></span>\n                                    <input type="text" id="input1-group1" name="input1-group1" class="form-control" placeholder="Username">\n                                </div>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-md-12">\n                                <div class="input-group">\n                                    <input type="email" id="input2-group1" name="input2-group1" class="form-control" placeholder="Email">\n                                    <span class="input-group-addon"><i class="fa fa-envelope-o"></i></span>\n                                </div>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-md-12">\n                                <div class="input-group">\n                                    <span class="input-group-addon"><i class="fa fa-euro"></i></span>\n                                    <input type="text" id="input3-group1" name="input3-group1" class="form-control" placeholder="..">\n                                    <span class="input-group-addon">.00</span>\n                                </div>\n                            </div>\n                        </div>\n                    </form>\n                </div>\n                <div class="card-footer">\n                    <button type="submit" class="btn btn-sm btn-success"><i class="fa fa-dot-circle-o"></i> Submit</button>\n                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-4">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Buttons</strong> Groups\n                </div>\n                <div class="card-block">\n                    <form action="" method="post" class="form-horizontal ">\n                        <div class="form-group row">\n                            <div class="col-md-12">\n                                <div class="input-group">\n                                    <span class="input-group-btn">\n                                        <button type="button" class="btn btn-primary"><i class="fa fa-search"></i> Search</button>\n                                    </span>\n                                    <input type="text" id="input1-group2" name="input1-group2" class="form-control" placeholder="Username">\n                                </div>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-md-12">\n                                <div class="input-group">\n                                    <input type="email" id="input2-group2" name="input2-group2" class="form-control" placeholder="Email">\n                                    <span class="input-group-btn">\n                                        <button type="button" class="btn btn-primary">Submit</button>\n                                    </span>\n                                </div>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-md-12">\n                                <div class="input-group">\n                                    <span class="input-group-btn">\n                                        <button type="button" class="btn btn-primary"><i class="fa fa-facebook"></i></button>\n                                    </span>\n                                    <input type="text" id="input3-group2" name="input3-group2" class="form-control" placeholder="Search">\n                                    <span class="input-group-btn">\n                                        <button type="button" class="btn btn-primary"><i class="fa fa-twitter"></i></button>\n                                    </span>\n                                </div>\n                            </div>\n                        </div>\n                    </form>\n                </div>\n                <div class="card-footer">\n                    <button type="submit" class="btn btn-sm btn-success"><i class="fa fa-dot-circle-o"></i> Submit</button>\n                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-4">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Dropdowns</strong> Groups\n                </div>\n                <div class="card-block">\n                    <form action="" method="post" class="form-horizontal ">\n                        <div class="form-group row">\n                            <div class="col-md-12">\n                                <div class="input-group">\n                                    <div class="input-group-btn">\n                                        <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">Action\n                                            <span class="caret"></span>\n                                        </button>\n                                        <ul class="dropdown-menu">\n                                            <li><a href="javascript:void(0)">Action</a>\n                                            </li>\n                                            <li><a href="javascript:void(0)">Another action</a>\n                                            </li>\n                                            <li><a href="javascript:void(0)">Something else here</a>\n                                            </li>\n                                            <li class="divider"></li>\n                                            <li><a href="javascript:void(0)">Separated link</a>\n                                            </li>\n                                        </ul>\n                                    </div>\n                                    <input type="text" id="input1-group3" name="input1-group3" class="form-control" placeholder="Username">\n                                </div>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-md-12">\n                                <div class="input-group">\n                                    <input type="email" id="input2-group3" name="input2-group3" class="form-control" placeholder="Email">\n                                    <div class="input-group-btn">\n                                        <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">Action\n                                            <span class="caret"></span>\n                                        </button>\n                                        <ul class="dropdown-menu dropdown-menu-right">\n                                            <li><a href="javascript:void(0)">Action</a>\n                                            </li>\n                                            <li><a href="javascript:void(0)">Another action</a>\n                                            </li>\n                                            <li><a href="javascript:void(0)">Something else here</a>\n                                            </li>\n                                            <li class="divider"></li>\n                                            <li><a href="javascript:void(0)">Separated link</a>\n                                            </li>\n                                        </ul>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-md-12">\n                                <div class="input-group">\n                                    <div class="input-group-btn">\n                                        <button type="button" class="btn btn-primary">Action</button>\n                                        <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">\n                                            <span class="caret"></span>\n                                        </button>\n                                        <ul class="dropdown-menu">\n                                            <li><a href="javascript:void(0)">Action</a>\n                                            </li>\n                                            <li><a href="javascript:void(0)">Another action</a>\n                                            </li>\n                                            <li><a href="javascript:void(0)">Something else here</a>\n                                            </li>\n                                            <li class="divider"></li>\n                                            <li><a href="javascript:void(0)">Separated link</a>\n                                            </li>\n                                        </ul>\n                                    </div>\n                                    <input type="text" id="input3-group3" name="input3-group3" class="form-control" placeholder="..">\n                                    <div class="input-group-btn">\n                                        <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">\n                                            <span class="caret"></span>\n                                        </button>\n                                        <ul class="dropdown-menu dropdown-menu-right">\n                                            <li><a href="javascript:void(0)">Action</a>\n                                            </li>\n                                            <li><a href="javascript:void(0)">Another action</a>\n                                            </li>\n                                            <li><a href="javascript:void(0)">Something else here</a>\n                                            </li>\n                                            <li class="divider"></li>\n                                            <li><a href="javascript:void(0)">Separated link</a>\n                                            </li>\n                                        </ul>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                    </form>\n                </div>\n                <div class="card-footer">\n                    <button type="submit" class="btn btn-sm btn-success"><i class="fa fa-dot-circle-o"></i> Submit</button>\n                    <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="row">\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Use the grid for big devices!\n                    <small>\n                        <code>.col-lg-*</code>\n                        <code>.col-md-*</code>\n                        <code>.col-sm-*</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <form action="" method="post" class="form-horizontal ">\n                        <div class="form-group row">\n                            <div class="col-md-8">\n                                <input type="text" class="form-control" placeholder=".col-md-8">\n                            </div>\n                            <div class="col-md-4">\n                                <input type="text" class="form-control" placeholder=".col-md-4">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-md-7">\n                                <input type="text" class="form-control" placeholder=".col-md-7">\n                            </div>\n                            <div class="col-md-5">\n                                <input type="text" class="form-control" placeholder=".col-md-5">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-md-6">\n                                <input type="text" class="form-control" placeholder=".col-md-6">\n                            </div>\n                            <div class="col-md-6">\n                                <input type="text" class="form-control" placeholder=".col-md-6">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-md-5">\n                                <input type="text" class="form-control" placeholder=".col-md-5">\n                            </div>\n                            <div class="col-md-7">\n                                <input type="text" class="form-control" placeholder=".col-md-7">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-md-4">\n                                <input type="text" class="form-control" placeholder=".col-md-4">\n                            </div>\n                            <div class="col-md-8">\n                                <input type="text" class="form-control" placeholder=".col-md-8">\n                            </div>\n                        </div>\n                    </form>\n                </div>\n                <div class="card-footer">\n                    <button type="submit" class="btn btn-sm btn-primary">Action</button>\n                    <button type="button" class="btn btn-sm btn-danger">Action</button>\n                    <button type="button" class="btn btn-sm btn-warning">Action</button>\n                    <button type="button" class="btn btn-sm btn-info">Action</button>\n                    <button type="button" class="btn btn-sm btn-success">Action</button>\n                </div>\n            </div>\n        </div>\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Input Grid for small devices!\n                    <small>\n                        <code>.col-xs-*</code>\n                    </small>\n                </div>\n                <div class="card-block">\n                    <form action="" method="post" class="form-horizontal ">\n                        <div class="form-group row">\n                            <div class="col-xs-4">\n                                <input type="text" class="form-control" placeholder=".col-xs-4">\n                            </div>\n                            <div class="col-xs-8">\n                                <input type="text" class="form-control" placeholder=".col-xs-8">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-xs-5">\n                                <input type="text" class="form-control" placeholder=".col-xs-5">\n                            </div>\n                            <div class="col-xs-7">\n                                <input type="text" class="form-control" placeholder=".col-xs-7">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-xs-6">\n                                <input type="text" class="form-control" placeholder=".col-xs-6">\n                            </div>\n                            <div class="col-xs-6">\n                                <input type="text" class="form-control" placeholder=".col-xs-6">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-xs-7">\n                                <input type="text" class="form-control" placeholder=".col-xs-5">\n                            </div>\n                            <div class="col-xs-5">\n                                <input type="text" class="form-control" placeholder=".col-xs-5">\n                            </div>\n                        </div>\n                        <div class="form-group row">\n                            <div class="col-xs-8">\n                                <input type="text" class="form-control" placeholder=".col-xs-8">\n                            </div>\n                            <div class="col-xs-4">\n                                <input type="text" class="form-control" placeholder=".col-xs-4">\n                            </div>\n                        </div>\n                    </form>\n                </div>\n                <div class="card-footer">\n                    <button type="submit" class="btn btn-sm btn-primary">Action</button>\n                    <button type="button" class="btn btn-sm btn-danger">Action</button>\n                    <button type="button" class="btn btn-sm btn-warning">Action</button>\n                    <button type="button" class="btn btn-sm btn-info">Action</button>\n                    <button type="button" class="btn btn-sm btn-success">Action</button>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="row">\n        <div class="col-sm-4">\n            <div class="card">\n                <div class="card-header">\n                    Example Form\n                </div>\n                <div class="card-block">\n                    <form action="" method="post">\n                        <div class="form-group">\n                            <div class="input-group">\n                                <span class="input-group-addon">Username</span>\n                                <input type="text" id="username3" name="username3" class="form-control">\n                                <span class="input-group-addon"><i class="fa fa-user"></i></span>\n                            </div>\n                        </div>\n                        <div class="form-group">\n                            <div class="input-group">\n                                <span class="input-group-addon">Email</span>\n                                <input type="email" id="email3" name="email3" class="form-control">\n                                <span class="input-group-addon"><i class="fa fa-envelope"></i></span>\n                            </div>\n                        </div>\n                        <div class="form-group">\n                            <div class="input-group">\n                                <span class="input-group-addon">Password</span>\n                                <input type="password" id="password3" name="password3" class="form-control">\n                                <span class="input-group-addon"><i class="fa fa-asterisk"></i></span>\n                            </div>\n                        </div>\n                        <div class="form-group form-actions">\n                            <button type="submit" class="btn btn-sm btn-primary">Submit</button>\n                        </div>\n                    </form>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-4">\n            <div class="card">\n                <div class="card-header">\n                    Example Form\n                </div>\n                <div class="card-block">\n                    <form action="" method="post">\n                        <div class="form-group">\n                            <div class="input-group">\n                                <input type="text" id="username2" name="username2" class="form-control" placeholder="Username">\n                                <span class="input-group-addon"><i class="fa fa-user"></i></span>\n                            </div>\n                        </div>\n                        <div class="form-group">\n                            <div class="input-group">\n                                <input type="email" id="email2" name="email2" class="form-control" placeholder="Email">\n                                <span class="input-group-addon"><i class="fa fa-envelope"></i></span>\n                            </div>\n                        </div>\n                        <div class="form-group">\n                            <div class="input-group">\n                                <input type="password" id="password2" name="password2" class="form-control" placeholder="Password">\n                                <span class="input-group-addon"><i class="fa fa-asterisk"></i></span>\n                            </div>\n                        </div>\n                        <div class="form-group form-actions">\n                            <button type="submit" class="btn btn-sm btn-default">Submit</button>\n                        </div>\n                    </form>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-4">\n            <div class="card">\n                <div class="card-header">\n                    Example Form\n                </div>\n                <div class="card-block">\n                    <form action="" method="post">\n                        <div class="form-group">\n                            <div class="input-group">\n                                <span class="input-group-addon"><i class="fa fa-user"></i></span>\n                                <input type="text" id="username" name="username" class="form-control" placeholder="Username">\n                            </div>\n                        </div>\n                        <div class="form-group">\n                            <div class="input-group">\n                                <span class="input-group-addon"><i class="fa fa-envelope"></i></span>\n                                <input type="email" id="email" name="email" class="form-control" placeholder="Email">\n                            </div>\n                        </div>\n                        <div class="form-group">\n                            <div class="input-group">\n                                <span class="input-group-addon"><i class="fa fa-asterisk"></i></span>\n                                <input type="password" id="password" name="password" class="form-control" placeholder="Password">\n                            </div>\n                        </div>\n                        <div class="form-group form-actions">\n                            <button type="submit" class="btn btn-sm btn-success">Submit</button>\n                        </div>\n                    </form>\n                </div>\n            </div>\n        </div>\n    </div>\n    <!--/row-->\n    <div class="row">\n        <div class="col-lg-12">\n            <div class="card">\n                <div class="card-header">\n                    <i class="fa fa-edit"></i>Form Elements\n                    <div class="card-actions">\n                        <a href="#" class="btn-setting"><i class="icon-settings"></i></a>\n                        <a href="#" class="btn-minimize"><i class="icon-arrow-up"></i></a>\n                        <a href="#" class="btn-close"><i class="icon-close"></i></a>\n                    </div>\n                </div>\n                <div class="card-block">\n                    <form class="form-horizontal">\n                        <div class="form-group">\n                            <label class="form-control-label" for="prependedInput">Prepended text</label>\n                            <div class="controls">\n                                <div class="input-prepend input-group">\n                                    <span class="input-group-addon">@</span>\n                                    <input id="prependedInput" class="form-control" size="16" type="text">\n                                </div>\n                                <p class="help-block">Here\'s some help text</p>\n                            </div>\n                        </div>\n                        <div class="form-group">\n                            <label class="form-control-label" for="appendedInput">Appended text</label>\n                            <div class="controls">\n                                <div class="input-group">\n                                    <input id="appendedInput" class="form-control" size="16" type="text">\n                                    <span class="input-group-addon">.00</span>\n                                </div>\n                                <span class="help-block">Here\'s more help text</span>\n                            </div>\n                        </div>\n                        <div class="form-group">\n                            <label class="form-control-label" for="appendedPrependedInput">Append and prepend</label>\n                            <div class="controls">\n                                <div class="input-prepend input-group">\n                                    <span class="input-group-addon">$</span>\n                                    <input id="appendedPrependedInput" class="form-control" size="16" type="text">\n                                    <span class="input-group-addon">.00</span>\n                                </div>\n                            </div>\n                        </div>\n                        <div class="form-group">\n                            <label class="form-control-label" for="appendedInputButton">Append with button</label>\n                            <div class="controls">\n                                <div class="input-group">\n                                    <input id="appendedInputButton" class="form-control" size="16" type="text">\n                                    <span class="input-group-btn">\n                                        <button class="btn btn-default" type="button">Go!</button>\n                                    </span>\n                                </div>\n                            </div>\n                        </div>\n                        <div class="form-group">\n                            <label class="form-control-label" for="appendedInputButtons">Two-button append</label>\n                            <div class="controls">\n                                <div class="input-group">\n                                    <input id="appendedInputButtons" size="16" class="form-control" type="text">\n                                    <span class="input-group-btn">\n                                        <button class="btn btn-default" type="button">Search</button>\n                                        <button class="btn btn-default" type="button">Options</button>\n                                    </span>\n                                </div>\n                            </div>\n                        </div>\n                        <div class="form-actions">\n                            <button type="submit" class="btn btn-primary">Save changes</button>\n                            <button class="btn btn-default" type="button">Cancel</button>\n                        </div>\n                    </form>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n</div>\n';
+},function(t,e){t.exports='<div class="animated fadeIn">\n    <div class="row">\n        <div class="col-xs-12">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Social Media Button</strong>\n                    <small>Usage ex.</small>\n                    <code style="text-transform:lowercase">&lt;button class="btn btn-facebook" type="button"&gt;&lt;span&gt;Facebook&lt;/span&gt;&lt;/button&gt;</code>\n                    <div class="card-actions">\n                        <a href="#" class="btn-setting"><i class="icon-settings"></i></a>\n                        <button class="btn-minimize" type="button" data-toggle="collapse" data-target="" aria-expanded="false" aria-controls="collapseExample">\n                            <i class="icon-arrow-up"></i>\n                        </button>\n                        <a href="#" class="btn-close"><i class="icon-close"></i></a>\n                    </div>\n                </div>\n                <div class="card-block">\n                    <h6>Size Small\n                        <small>Add this class\n                            <code>.btn-sm</code>\n                        </small>\n                    </h6>\n                    <p>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-facebook" type="button">\n                            <span>Facebook</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-twitter" type="button">\n                            <span>Twitter</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-linkedin" type="button">\n                            <span>LinkedIn</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-flickr" type="button">\n                            <span>Flickr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-tumblr" type="button">\n                            <span>Tumblr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-xing" type="button">\n                            <span>Xing</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-github" type="button">\n                            <span>Github</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-html5" type="button">\n                            <span>HTML5</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-openid" type="button">\n                            <span>OpenID</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-stack-overflow" type="button">\n                            <span>StackOverflow</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-css3" type="button">\n                            <span>CSS3</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-youtube" type="button">\n                            <span>YouTube</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dribbble" type="button">\n                            <span>Dribbble</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-google-plus" type="button">\n                            <span>Google+</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-instagram" type="button">\n                            <span>Instagram</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-pinterest" type="button">\n                            <span>Pinterest</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vk" type="button">\n                            <span>VK</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-yahoo" type="button">\n                            <span>Yahoo</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-behance" type="button">\n                            <span>Behance</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dropbox" type="button">\n                            <span>Dropbox</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-reddit" type="button">\n                            <span>Reddit</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-spotify" type="button">\n                            <span>Spotify</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vine" type="button">\n                            <span>Vine</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-foursquare" type="button">\n                            <span>Forsquare</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vimeo" type="button">\n                            <span>Vimeo</span>\n                        </button>\n                    </p>\n                    <h6>Size Normal</h6>\n                    <p>\n                        <button style="margin-bottom: 4px" class="btn btn-facebook" type="button">\n                            <span>Facebook</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-twitter" type="button">\n                            <span>Twitter</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-linkedin" type="button">\n                            <span>LinkedIn</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-flickr" type="button">\n                            <span>Flickr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-tumblr" type="button">\n                            <span>Tumblr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-xing" type="button">\n                            <span>Xing</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-github" type="button">\n                            <span>Github</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-html5" type="button">\n                            <span>HTML5</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-openid" type="button">\n                            <span>OpenID</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-stack-overflow" type="button">\n                            <span>StackOverflow</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-css3" type="button">\n                            <span>CSS3</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-youtube" type="button">\n                            <span>YouTube</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-dribbble" type="button">\n                            <span>Dribbble</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-google-plus" type="button">\n                            <span>Google+</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-instagram" type="button">\n                            <span>Instagram</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-pinterest" type="button">\n                            <span>Pinterest</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-vk" type="button">\n                            <span>VK</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-yahoo" type="button">\n                            <span>Yahoo</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-behance" type="button">\n                            <span>Behance</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-dropbox" type="button">\n                            <span>Dropbox</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-reddit" type="button">\n                            <span>Reddit</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-spotify" type="button">\n                            <span>Spotify</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-vine" type="button">\n                            <span>Vine</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-foursquare" type="button">\n                            <span>Forsquare</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-vimeo" type="button">\n                            <span>Vimeo</span>\n                        </button>\n                    </p>\n                    <h6>Size Large\n                        <small>Add this class\n                            <code>.btn-lg</code>\n                        </small>\n                    </h6>\n                    <p>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-facebook" type="button">\n                            <span>Facebook</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-twitter" type="button">\n                            <span>Twitter</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-linkedin" type="button">\n                            <span>LinkedIn</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-flickr" type="button">\n                            <span>Flickr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-tumblr" type="button">\n                            <span>Tumblr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-xing" type="button">\n                            <span>Xing</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-github" type="button">\n                            <span>Github</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-html5" type="button">\n                            <span>HTML5</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-openid" type="button">\n                            <span>OpenID</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-stack-overflow" type="button">\n                            <span>StackOverflow</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-css3" type="button">\n                            <span>CSS3</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-youtube" type="button">\n                            <span>YouTube</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dribbble" type="button">\n                            <span>Dribbble</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-google-plus" type="button">\n                            <span>Google+</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-instagram" type="button">\n                            <span>Instagram</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-pinterest" type="button">\n                            <span>Pinterest</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vk" type="button">\n                            <span>VK</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-yahoo" type="button">\n                            <span>Yahoo</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-behance" type="button">\n                            <span>Behance</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dropbox" type="button">\n                            <span>Dropbox</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-reddit" type="button">\n                            <span>Reddit</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-spotify" type="button">\n                            <span>Spotify</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vine" type="button">\n                            <span>Vine</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-foursquare" type="button">\n                            <span>Forsquare</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vimeo" type="button">\n                            <span>Vimeo</span>\n                        </button>\n                    </p>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-xs-12">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Social Media Button</strong>\n                    <small>Only icons. Usage ex.</small>\n                    <code style="text-transform:lowercase">&lt;button class="btn btn-facebook icon" type="button"&gt;&lt;span&gt;Facebook&lt;/span&gt;&lt;/button&gt;</code>\n                    <div class="card-actions">\n                        <a href="#" class="btn-setting"><i class="icon-settings"></i></a>\n                        <button class="btn-minimize" type="button" data-toggle="collapse" data-target="" aria-expanded="false" aria-controls="collapseExample">\n                            <i class="icon-arrow-up"></i>\n                        </button>\n                        <a href="#" class="btn-close"><i class="icon-close"></i></a>\n                    </div>\n                </div>\n                <div class="card-block collapse in">\n                    <h6>Size Small\n                        <small>Add this class\n                            <code>.btn-sm</code>\n                        </small>\n                    </h6>\n                    <p>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-facebook icon" type="button">\n                            <span>Facebook</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-twitter icon" type="button">\n                            <span>Twitter</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-linkedin icon" type="button">\n                            <span>LinkedIn</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-flickr icon" type="button">\n                            <span>Flickr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-tumblr icon" type="button">\n                            <span>Tumblr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-xing icon" type="button">\n                            <span>Xing</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-github icon" type="button">\n                            <span>Github</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-html5 icon" type="button">\n                            <span>HTML5</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-openid icon" type="button">\n                            <span>OpenID</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-stack-overflow icon" type="button">\n                            <span>StackOverflow</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-css3 icon" type="button">\n                            <span>CSS3</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-youtube icon" type="button">\n                            <span>YouTube</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dribbble icon" type="button">\n                            <span>Dribbble</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-google-plus icon" type="button">\n                            <span>Google+</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-instagram icon" type="button">\n                            <span>Instagram</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-pinterest icon" type="button">\n                            <span>Pinterest</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vk icon" type="button">\n                            <span>VK</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-yahoo icon" type="button">\n                            <span>Yahoo</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-behance icon" type="button">\n                            <span>Behance</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dropbox icon" type="button">\n                            <span>Dropbox</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-reddit icon" type="button">\n                            <span>Reddit</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-spotify icon" type="button">\n                            <span>Spotify</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vine icon" type="button">\n                            <span>Vine</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-foursquare icon" type="button">\n                            <span>Forsquare</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vimeo icon" type="button">\n                            <span>Vimeo</span>\n                        </button>\n                    </p>\n                    <h6>Size Normal</h6>\n                    <p>\n                        <button style="margin-bottom: 4px" class="btn btn-facebook icon" type="button">\n                            <span>Facebook</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-twitter icon" type="button">\n                            <span>Twitter</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-linkedin icon" type="button">\n                            <span>LinkedIn</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-flickr icon" type="button">\n                            <span>Flickr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-tumblr icon" type="button">\n                            <span>Tumblr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-xing icon" type="button">\n                            <span>Xing</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-github icon" type="button">\n                            <span>Github</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-html5 icon" type="button">\n                            <span>HTML5</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-openid icon" type="button">\n                            <span>OpenID</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-stack-overflow icon" type="button">\n                            <span>StackOverflow</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-css3 icon" type="button">\n                            <span>CSS3</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-youtube icon" type="button">\n                            <span>YouTube</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-dribbble icon" type="button">\n                            <span>Dribbble</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-google-plus icon" type="button">\n                            <span>Google+</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-instagram icon" type="button">\n                            <span>Instagram</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-pinterest icon" type="button">\n                            <span>Pinterest</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-vk icon" type="button">\n                            <span>VK</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-yahoo icon" type="button">\n                            <span>Yahoo</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-behance icon" type="button">\n                            <span>Behance</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-dropbox icon" type="button">\n                            <span>Dropbox</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-reddit icon" type="button">\n                            <span>Reddit</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-spotify icon" type="button">\n                            <span>Spotify</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-vine icon" type="button">\n                            <span>Vine</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-foursquare icon" type="button">\n                            <span>Forsquare</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-vimeo icon" type="button">\n                            <span>Vimeo</span>\n                        </button>\n                    </p>\n                    <h6>Size Large\n                        <small>Add this class\n                            <code>.btn-lg</code>\n                        </small>\n                    </h6>\n                    <p>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-facebook icon" type="button">\n                            <span>Facebook</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-twitter icon" type="button">\n                            <span>Twitter</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-linkedin icon" type="button">\n                            <span>LinkedIn</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-flickr icon" type="button">\n                            <span>Flickr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-tumblr icon" type="button">\n                            <span>Tumblr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-xing icon" type="button">\n                            <span>Xing</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-github icon" type="button">\n                            <span>Github</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-html5 icon" type="button">\n                            <span>HTML5</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-openid icon" type="button">\n                            <span>OpenID</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-stack-overflow icon" type="button">\n                            <span>StackOverflow</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-css3 icon" type="button">\n                            <span>CSS3</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-youtube icon" type="button">\n                            <span>YouTube</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dribbble icon" type="button">\n                            <span>Dribbble</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-google-plus icon" type="button">\n                            <span>Google+</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-instagram icon" type="button">\n                            <span>Instagram</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-pinterest icon" type="button">\n                            <span>Pinterest</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vk icon" type="button">\n                            <span>VK</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-yahoo icon" type="button">\n                            <span>Yahoo</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-behance icon" type="button">\n                            <span>Behance</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dropbox icon" type="button">\n                            <span>Dropbox</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-reddit icon" type="button">\n                            <span>Reddit</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-spotify icon" type="button">\n                            <span>Spotify</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vine icon" type="button">\n                            <span>Vine</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-foursquare icon" type="button">\n                            <span>Forsquare</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vimeo icon" type="button">\n                            <span>Vimeo</span>\n                        </button>\n                    </p>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-xs-12">\n            <div class="card">\n                <div class="card-header">\n                    <strong>Social Media Button</strong>\n                    <small>Only text. Usage ex.</small>\n                    <code style="text-transform:lowercase">&lt;button class="btn btn-facebook text" type="button"&gt;&lt;span&gt;Facebook&lt;/span&gt;&lt;/button&gt;</code>\n                    <div class="card-actions">\n                        <a href="#" class="btn-setting"><i class="icon-settings"></i></a>\n                        <button class="btn-minimize" type="button" data-toggle="collapse" data-target="" aria-expanded="false" aria-controls="collapseExample">\n                            <i class="icon-arrow-up"></i>\n                        </button>\n                        <a href="#" class="btn-close"><i class="icon-close"></i></a>\n                    </div>\n                </div>\n                <div class="card-block collapse in">\n                    <h6>Size Small\n                        <small>Add this class\n                            <code>.btn-sm</code>\n                        </small>\n                    </h6>\n                    <p>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-facebook text" type="button">\n                            <span>Facebook</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-twitter text" type="button">\n                            <span>Twitter</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-linkedin text" type="button">\n                            <span>LinkedIn</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-flickr text" type="button">\n                            <span>Flickr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-tumblr text" type="button">\n                            <span>Tumblr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-xing text" type="button">\n                            <span>Xing</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-github text" type="button">\n                            <span>Github</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-html5 text" type="button">\n                            <span>HTML5</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-openid text" type="button">\n                            <span>OpenID</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-stack-overflow text" type="button">\n                            <span>StackOverflow</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-css3 text" type="button">\n                            <span>CSS3</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-youtube text" type="button">\n                            <span>YouTube</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dribbble text" type="button">\n                            <span>Dribbble</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-google-plus text" type="button">\n                            <span>Google+</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-instagram text" type="button">\n                            <span>Instagram</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-pinterest text" type="button">\n                            <span>Pinterest</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vk text" type="button">\n                            <span>VK</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-yahoo text" type="button">\n                            <span>Yahoo</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-behance text" type="button">\n                            <span>Behance</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-dropbox text" type="button">\n                            <span>Dropbox</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-reddit text" type="button">\n                            <span>Reddit</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-spotify text" type="button">\n                            <span>Spotify</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vine text" type="button">\n                            <span>Vine</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-foursquare text" type="button">\n                            <span>Forsquare</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-sm btn-vimeo text" type="button">\n                            <span>Vimeo</span>\n                        </button>\n                    </p>\n                    <h6>Size Normal</h6>\n                    <p>\n                        <button style="margin-bottom: 4px" class="btn btn-facebook text" type="button">\n                            <span>Facebook</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-twitter text" type="button">\n                            <span>Twitter</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-linkedin text" type="button">\n                            <span>LinkedIn</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-flickr text" type="button">\n                            <span>Flickr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-tumblr text" type="button">\n                            <span>Tumblr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-xing text" type="button">\n                            <span>Xing</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-github text" type="button">\n                            <span>Github</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-html5 text" type="button">\n                            <span>HTML5</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-openid text" type="button">\n                            <span>OpenID</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-stack-overflow text" type="button">\n                            <span>StackOverflow</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-css3 text" type="button">\n                            <span>CSS3</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-youtube text" type="button">\n                            <span>YouTube</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-dribbble text" type="button">\n                            <span>Dribbble</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-google-plus text" type="button">\n                            <span>Google+</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-instagram text" type="button">\n                            <span>Instagram</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-pinterest text" type="button">\n                            <span>Pinterest</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-vk text" type="button">\n                            <span>VK</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-yahoo text" type="button">\n                            <span>Yahoo</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-behance text" type="button">\n                            <span>Behance</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-dropbox text" type="button">\n                            <span>Dropbox</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-reddit text" type="button">\n                            <span>Reddit</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-spotify text" type="button">\n                            <span>Spotify</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-vine text" type="button">\n                            <span>Vine</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-foursquare text" type="button">\n                            <span>Forsquare</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-vimeo text" type="button">\n                            <span>Vimeo</span>\n                        </button>\n                    </p>\n                    <h6>Size Large\n                        <small>Add this class\n                            <code>.btn-lg</code>\n                        </small>\n                    </h6>\n                    <p>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-facebook text" type="button">\n                            <span>Facebook</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-twitter text" type="button">\n                            <span>Twitter</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-linkedin text" type="button">\n                            <span>LinkedIn</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-flickr text" type="button">\n                            <span>Flickr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-tumblr text" type="button">\n                            <span>Tumblr</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-xing text" type="button">\n                            <span>Xing</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-github text" type="button">\n                            <span>Github</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-html5 text" type="button">\n                            <span>HTML5</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-openid text" type="button">\n                            <span>OpenID</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-stack-overflow text" type="button">\n                            <span>StackOverflow</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-css3 text" type="button">\n                            <span>CSS3</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-youtube text" type="button">\n                            <span>YouTube</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dribbble text" type="button">\n                            <span>Dribbble</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-google-plus text" type="button">\n                            <span>Google+</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-instagram text" type="button">\n                            <span>Instagram</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-pinterest text" type="button">\n                            <span>Pinterest</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vk text" type="button">\n                            <span>VK</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-yahoo text" type="button">\n                            <span>Yahoo</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-behance text" type="button">\n                            <span>Behance</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-dropbox text" type="button">\n                            <span>Dropbox</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-reddit text" type="button">\n                            <span>Reddit</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-spotify text" type="button">\n                            <span>Spotify</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vine text" type="button">\n                            <span>Vine</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-foursquare text" type="button">\n                            <span>Forsquare</span>\n                        </button>\n                        <button style="margin-bottom: 4px" class="btn btn-lg btn-vimeo text" type="button">\n                            <span>Vimeo</span>\n                        </button>\n                    </p>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n</div>\n';
+},function(t,e){t.exports='<div class="animated fadeIn">\n    <div class="row">\n        <div class="col-md-12">\n            <div class="card">\n                <div class="card-header">\n                    3d Switch\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-3d switch-primary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-3d switch-secondary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-3d switch-success">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-3d switch-warning">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-3d switch-info">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-3d switch-danger">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch default\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-default switch-primary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-secondary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-success">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-warning">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-info">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-danger">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch default - pills\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-default switch-pill switch-primary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-secondary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-success">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-warning">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-info">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-danger">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch outline\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-default switch-primary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-secondary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-success-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-warning-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-info-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-danger-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch outline - pills\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-default switch-pill switch-primary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-secondary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-success-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-warning-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-info-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-danger-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch outline alternative\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-default switch-primary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-secondary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-success-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-warning-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-info-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-danger-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch outline alternative - pills\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-default switch-pill switch-primary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-secondary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-success-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-warning-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-info-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-default switch-pill switch-danger-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with text\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-text switch-primary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-secondary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-success">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-warning">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-info">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-danger">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with text - pills\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-text switch-pill switch-primary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-secondary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-success">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-warning">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-info">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-danger">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with text outline\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-text switch-primary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-secondary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-success-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-warning-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-info-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-danger-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with text outline - pills\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-text switch-pill switch-primary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-secondary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-success-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-warning-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-info-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-danger-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with text outline alternative\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-text switch-primary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-secondary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-success-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-warning-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-info-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-danger-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with text outline alternative - pills\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-text switch-pill switch-primary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-secondary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-success-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-warning-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-info-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-text switch-pill switch-danger-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="On" data-off="Off"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with icon\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-icon switch-primary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-secondary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-success">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-warning">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-info">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-danger">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with icon - pills\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-icon switch-pill switch-primary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-secondary">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-success">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-warning">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-info">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-danger">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with icon outline\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-icon switch-primary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-secondary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-success-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-warning-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-info-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-danger-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with icon outline - pills\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-icon switch-pill switch-primary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-secondary-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-success-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-warning-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-info-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-danger-outline">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with icon outline alternative\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-icon switch-primary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-secondary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-success-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-warning-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-info-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-danger-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-6">\n            <div class="card">\n                <div class="card-header">\n                    Switch with icon outline alternative - pills\n                </div>\n                <div class="card-block">\n                    <label class="switch switch-icon switch-pill switch-primary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-secondary-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-success-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-warning-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-info-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                    &nbsp;&nbsp;&nbsp;\n                    <label class="switch switch-icon switch-pill switch-danger-outline-alt">\n                        <input type="checkbox" class="switch-input" checked>\n                        <span class="switch-label" data-on="#xf00c" data-off="#xf00d"></span>\n                        <span class="switch-handle"></span>\n                    </label>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-12">\n            <div class="card">\n                <div class="card-header">\n                    Sizes\n                </div>\n                <div class="card-block p-a-0">\n                    <table class="table table-hover table-striped table-align-middle m-b-0">\n                        <thead>\n                            <th>Size</th>\n                            <th>Example</th>\n                            <th>CSS Class</th>\n                        </thead>\n                        <tbody>\n                            <tr>\n                                <td>\n                                    Large\n                                </td>\n                                <td>\n                                    <label class="switch switch-lg switch-3d switch-primary">\n                                        <input type="checkbox" class="switch-input" checked>\n                                        <span class="switch-label"></span>\n                                        <span class="switch-handle"></span>\n                                    </label>\n                                </td>\n                                <td>\n                                    Add following class\n                                    <code>.switch-lg</code>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>\n                                    Normal\n                                </td>\n                                <td>\n                                    <label class="switch switch-3d switch-primary">\n                                        <input type="checkbox" class="switch-input" checked>\n                                        <span class="switch-label"></span>\n                                        <span class="switch-handle"></span>\n                                    </label>\n                                </td>\n                                <td>\n                                    -\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>\n                                    Small\n                                </td>\n                                <td>\n                                    <label class="switch switch-sm switch-3d switch-primary">\n                                        <input type="checkbox" class="switch-input" checked>\n                                        <span class="switch-label"></span>\n                                        <span class="switch-handle"></span>\n                                    </label>\n                                </td>\n                                <td>\n                                    Add following class\n                                    <code>.switch-sm</code>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>\n                                    Extra small\n                                </td>\n                                <td>\n                                    <label class="switch switch-xs switch-3d switch-primary">\n                                        <input type="checkbox" class="switch-input" checked>\n                                        <span class="switch-label"></span>\n                                        <span class="switch-handle"></span>\n                                    </label>\n                                </td>\n                                <td>\n                                    Add following class\n                                    <code>.switch-sm</code>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n</div>\n';
+},function(t,e){t.exports='<div class="animated fadeIn">\n    <div class="row">\n        <div class="col-lg-6">\n            <div class="card">\n                <div class="card-header">\n                    <i class="fa fa-align-justify"></i> Simple Table\n                </div>\n                <div class="card-block">\n                    <table class="table">\n                        <thead>\n                            <tr>\n                                <th>Username</th>\n                                <th>Date registered</th>\n                                <th>Role</th>\n                                <th>Status</th>\n                            </tr>\n                        </thead>\n                        <tbody>\n                            <tr>\n                                <td>Samppa Nori</td>\n                                <td>2012/01/01</td>\n                                <td>Member</td>\n                                <td>\n                                    <span class="tag tag-success">Active</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Estavan Lykos</td>\n                                <td>2012/02/01</td>\n                                <td>Staff</td>\n                                <td>\n                                    <span class="tag tag-danger">Banned</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Chetan Mohamed</td>\n                                <td>2012/02/01</td>\n                                <td>Admin</td>\n                                <td>\n                                    <span class="tag tag-default">Inactive</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Derick Maximinus</td>\n                                <td>2012/03/01</td>\n                                <td>Member</td>\n                                <td>\n                                    <span class="tag tag-warning">Pending</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Friderik Dávid</td>\n                                <td>2012/01/21</td>\n                                <td>Staff</td>\n                                <td>\n                                    <span class="tag tag-success">Active</span>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                    <ul class="pagination">\n                        <li class="page-item"><a class="page-link" href="#">Prev</a></li>\n                        <li class="page-item active">\n                            <a class="page-link" href="#">1</a>\n                        </li>\n                        <li class="page-item"><a class="page-link" href="#">2</a></li>\n                        <li class="page-item"><a class="page-link" href="#">3</a></li>\n                        <li class="page-item"><a class="page-link" href="#">4</a></li>\n                        <li class="page-item"><a class="page-link" href="#">Next</a></li>\n                    </ul>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-lg-6">\n            <div class="card">\n                <div class="card-header">\n                    <i class="fa fa-align-justify"></i> Striped Table\n                </div>\n                <div class="card-block">\n                    <table class="table table-striped">\n                        <thead>\n                            <tr>\n                                <th>Username</th>\n                                <th>Date registered</th>\n                                <th>Role</th>\n                                <th>Status</th>\n                            </tr>\n                        </thead>\n                        <tbody>\n                            <tr>\n                                <td>Yiorgos Avraamu</td>\n                                <td>2012/01/01</td>\n                                <td>Member</td>\n                                <td>\n                                    <span class="tag tag-success">Active</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Avram Tarasios</td>\n                                <td>2012/02/01</td>\n                                <td>Staff</td>\n                                <td>\n                                    <span class="tag tag-danger">Banned</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Quintin Ed</td>\n                                <td>2012/02/01</td>\n                                <td>Admin</td>\n                                <td>\n                                    <span class="tag tag-default">Inactive</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Enéas Kwadwo</td>\n                                <td>2012/03/01</td>\n                                <td>Member</td>\n                                <td>\n                                    <span class="tag tag-warning">Pending</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Agapetus Tadeáš</td>\n                                <td>2012/01/21</td>\n                                <td>Staff</td>\n                                <td>\n                                    <span class="tag tag-success">Active</span>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                    <ul class="pagination">\n                        <li class="page-item"><a class="page-link" href="#">Prev</a></li>\n                        <li class="page-item active">\n                            <a class="page-link" href="#">1</a>\n                        </li>\n                        <li class="page-item"><a class="page-link" href="#">2</a></li>\n                        <li class="page-item"><a class="page-link" href="#">3</a></li>\n                        <li class="page-item"><a class="page-link" href="#">4</a></li>\n                        <li class="page-item"><a class="page-link" href="#">Next</a></li>\n                    </ul>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n    <div class="row">\n        <div class="col-lg-6">\n            <div class="card">\n                <div class="card-header">\n                    <i class="fa fa-align-justify"></i> Condensed Table\n                </div>\n                <div class="card-block">\n                    <table class="table table-condensed">\n                        <thead>\n                            <tr>\n                                <th>Username</th>\n                                <th>Date registered</th>\n                                <th>Role</th>\n                                <th>Status</th>\n                            </tr>\n                        </thead>\n                        <tbody>\n                            <tr>\n                                <td>Carwyn Fachtna</td>\n                                <td>2012/01/01</td>\n                                <td>Member</td>\n                                <td>\n                                    <span class="tag tag-success">Active</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Nehemiah Tatius</td>\n                                <td>2012/02/01</td>\n                                <td>Staff</td>\n                                <td>\n                                    <span class="tag tag-danger">Banned</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Ebbe Gemariah</td>\n                                <td>2012/02/01</td>\n                                <td>Admin</td>\n                                <td>\n                                    <span class="tag tag-default">Inactive</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Eustorgios Amulius</td>\n                                <td>2012/03/01</td>\n                                <td>Member</td>\n                                <td>\n                                    <span class="tag tag-warning">Pending</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Leopold Gáspár</td>\n                                <td>2012/01/21</td>\n                                <td>Staff</td>\n                                <td>\n                                    <span class="tag tag-success">Active</span>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                    <ul class="pagination">\n                        <li class="page-item"><a class="page-link" href="#">Prev</a></li>\n                        <li class="page-item active">\n                            <a class="page-link" href="#">1</a>\n                        </li>\n                        <li class="page-item"><a class="page-link" href="#">2</a></li>\n                        <li class="page-item"><a class="page-link" href="#">3</a></li>\n                        <li class="page-item"><a class="page-link" href="#">4</a></li>\n                        <li class="page-item"><a class="page-link" href="#">Next</a></li>\n                    </ul>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-lg-6">\n            <div class="card">\n                <div class="card-header">\n                    <i class="fa fa-align-justify"></i> Bordered Table\n                </div>\n                <div class="card-block">\n                    <table class="table table-bordered">\n                        <thead>\n                            <tr>\n                                <th>Username</th>\n                                <th>Date registered</th>\n                                <th>Role</th>\n                                <th>Status</th>\n                            </tr>\n                        </thead>\n                        <tbody>\n                            <tr>\n                                <td>Pompeius René</td>\n                                <td>2012/01/01</td>\n                                <td>Member</td>\n                                <td>\n                                    <span class="tag tag-success">Active</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Paĉjo Jadon</td>\n                                <td>2012/02/01</td>\n                                <td>Staff</td>\n                                <td>\n                                    <span class="tag tag-danger">Banned</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Micheal Mercurius</td>\n                                <td>2012/02/01</td>\n                                <td>Admin</td>\n                                <td>\n                                    <span class="tag tag-default">Inactive</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Ganesha Dubhghall</td>\n                                <td>2012/03/01</td>\n                                <td>Member</td>\n                                <td>\n                                    <span class="tag tag-warning">Pending</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Hiroto Šimun</td>\n                                <td>2012/01/21</td>\n                                <td>Staff</td>\n                                <td>\n                                    <span class="tag tag-success">Active</span>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                    <ul class="pagination">\n                        <li class="page-item"><a class="page-link" href="#">Prev</a></li>\n                        <li class="page-item active">\n                            <a class="page-link" href="#">1</a>\n                        </li>\n                        <li class="page-item"><a class="page-link" href="#">2</a></li>\n                        <li class="page-item"><a class="page-link" href="#">3</a></li>\n                        <li class="page-item"><a class="page-link" href="#">4</a></li>\n                        <li class="page-item"><a class="page-link" href="#">Next</a></li>\n                    </ul>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n    <div class="row">\n        <div class="col-lg-12">\n            <div class="card">\n                <div class="card-header">\n                    <i class="fa fa-align-justify"></i> Combined All Table\n                </div>\n                <div class="card-block">\n                    <table class="table table-bordered table-striped table-condensed">\n                        <thead>\n                            <tr>\n                                <th>Username</th>\n                                <th>Date registered</th>\n                                <th>Role</th>\n                                <th>Status</th>\n                            </tr>\n                        </thead>\n                        <tbody>\n                            <tr>\n                                <td>Vishnu Serghei</td>\n                                <td>2012/01/01</td>\n                                <td>Member</td>\n                                <td>\n                                    <span class="tag tag-success">Active</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Zbyněk Phoibos</td>\n                                <td>2012/02/01</td>\n                                <td>Staff</td>\n                                <td>\n                                    <span class="tag tag-danger">Banned</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Einar Randall</td>\n                                <td>2012/02/01</td>\n                                <td>Admin</td>\n                                <td>\n                                    <span class="tag tag-default">Inactive</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Félix Troels</td>\n                                <td>2012/03/01</td>\n                                <td>Member</td>\n                                <td>\n                                    <span class="tag tag-warning">Pending</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td>Aulus Agmundr</td>\n                                <td>2012/01/21</td>\n                                <td>Staff</td>\n                                <td>\n                                    <span class="tag tag-success">Active</span>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                    <nav>\n                        <ul class="pagination">\n                            <li class="page-item"><a class="page-link" href="#">Prev</a></li>\n                            <li class="page-item active">\n                                <a class="page-link" href="#">1</a>\n                            </li>\n                            <li class="page-item"><a class="page-link" href="#">2</a></li>\n                            <li class="page-item"><a class="page-link" href="#">3</a></li>\n                            <li class="page-item"><a class="page-link" href="#">4</a></li>\n                            <li class="page-item"><a class="page-link" href="#">Next</a></li>\n                        </ul>\n                    </nav>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n</div>\n'},function(t,e){t.exports='<div class="animated fadeIn">\n    <div class="row">\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-primary">\n                <div class="card-block p-b-0">\n                    <div class="btn-group pull-right" dropdown>\n                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" dropdownToggle>\n                            <i class="icon-settings"></i>\n                        </button>\n                        <div class="dropdown-menu dropdown-menu-right" dropdownMenu>\n                            <a class="dropdown-item" href="#">Action</a>\n                            <a class="dropdown-item" href="#">Another action</a>\n                            <a class="dropdown-item" href="#">Something else here</a>\n                        </div>\n                    </div>\n                    <h4 class="m-b-0">9.823</h4>\n                    <p>Members online</p>\n                </div>\n                <div class="chart-wrapper p-x-1">\n                    <base-chart class="chart"\n                                [datasets]="lineChart1Data"\n                                [labels]="lineChart1Labels"\n                                [options]="lineChart1Options"\n                                [colors]="lineChart1Colours"\n                                [legend]="lineChart1Legend"\n                                [chartType]="lineChart1Type"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:70px;"></base-chart>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-info">\n                <div class="card-block p-b-0">\n                    <button type="button" class="btn btn-transparent p-a-0 pull-right">\n                        <i class="icon-location-pin"></i>\n                    </button>\n                    <h4 class="m-b-0">9.823</h4>\n                    <p>Members online</p>\n                </div>\n                <div class="chart-wrapper p-x-1" style="height:70px;">\n                    <base-chart class="chart"\n                                [datasets]="lineChart2Data"\n                                [labels]="lineChart2Labels"\n                                [options]="lineChart2Options"\n                                [colors]="lineChart2Colours"\n                                [legend]="lineChart2Legend"\n                                [chartType]="lineChart2Type"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:70px;"></base-chart>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-warning">\n                <div class="card-block p-b-0">\n                    <div class="btn-group pull-right">\n                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n                            <i class="icon-settings"></i>\n                        </button>\n                        <div class="dropdown-menu dropdown-menu-right">\n                            <a class="dropdown-item" href="#">Action</a>\n                            <a class="dropdown-item" href="#">Another action</a>\n                            <a class="dropdown-item" href="#">Something else here</a>\n                        </div>\n                    </div>\n                    <h4 class="m-b-0">9.823</h4>\n                    <p>Members online</p>\n                </div>\n                <div class="chart-wrapper" style="height:70px;">\n                    <base-chart class="chart"\n                                [datasets]="lineChart3Data"\n                                [labels]="lineChart3Labels"\n                                [options]="lineChart3Options"\n                                [colors]="lineChart3Colours"\n                                [legend]="lineChart3Legend"\n                                [chartType]="lineChart3Type"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:70px;"></base-chart>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-danger">\n                <div class="card-block p-b-0">\n                    <div class="btn-group pull-right" dropdown>\n                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" dropdownToggle>\n                            <i class="icon-settings"></i>\n                        </button>\n                        <div class="dropdown-menu dropdown-menu-right" dropdownMenu>\n                            <a class="dropdown-item" href="#">Action</a>\n                            <a class="dropdown-item" href="#">Another action</a>\n                            <a class="dropdown-item" href="#">Something else here</a>\n                        </div>\n                    </div>\n                    <h4 class="m-b-0">9.823</h4>\n                    <p>Members online</p>\n                </div>\n                <div class="chart-wrapper p-x-1" style="height:70px;">\n                    <base-chart class="chart"\n                                [datasets]="barChart1Data"\n                                [labels]="barChart1Labels"\n                                [options]="barChart1Options"\n                                [colors]="barChart1Colours"\n                                [legend]="barChart1Legend"\n                                [chartType]="barChart1Type"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:70px;"></base-chart>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n    <div class="card">\n        <div class="card-block">\n            <div class="row">\n                <div class="col-sm-6">\n                    <h4 class="card-title m-b-0">Traffic</h4>\n                    <div class="small text-muted">November 2015</div>\n                </div>\n                <div class="col-sm-6">\n                    <div class="btn-toolbar pull-right" role="toolbar" aria-label="Toolbar with button groups">\n                        <div class="btn-group" data-toggle="buttons" aria-label="First group">\n                            <label class="btn btn-outline-secondary">\n                                <input type="radio" name="options" id="option1"> Day\n                            </label>\n                            <label class="btn btn-outline-secondary active">\n                                <input type="radio" name="options" id="option2" checked> Month\n                            </label>\n                            <label class="btn btn-outline-secondary">\n                                <input type="radio" name="options" id="option3"> Year\n                            </label>\n                        </div>\n                        <div class="btn-group" role="group" aria-label="Second group">\n                            <button type="button" class="btn btn-primary"><i class="icon-cloud-download"></i></button>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class="chart-wrapper" style="height:300px;margin-top:40px;">\n                <base-chart class="chart"\n                            [datasets]="mainChartData"\n                            [labels]="mainChartLabels"\n                            [options]="mainChartOptions"\n                            [colors]="mainChartColours"\n                            [legend]="mainChartLegend"\n                            [chartType]="mainChartType"\n                            (chartHover)="chartHovered($event)"\n                            (chartClick)="chartClicked($event)" style="height:300px;"></base-chart>\n            </div>\n        </div>\n        <div class="card-footer">\n            <ul>\n                <li>\n                    <div class="text-muted">Visits</div>\n                    <strong>29.703 Users (40%)</strong>\n                    <progress class="progress progress-xs progress-success" value="40" max="100">40%</progress>\n                </li>\n                <li class="hidden-xs-down">\n                    <div class="text-muted">Unique</div>\n                    <strong>24.093 Unique Users (20%)</strong>\n                    <progress class="progress progress-xs progress-info" value="20" max="100">20%</progress>\n                </li>\n                <li>\n                    <div class="text-muted">Pageviews</div>\n                    <strong>78.706 Views (60%)</strong>\n                    <progress class="progress progress-xs progress-warning" value="60" max="100">60%</progress>\n                </li>\n                <li class="hidden-xs-down">\n                    <div class="text-muted">New Users</div>\n                    <strong>22.123 Users (80%)</strong>\n                    <progress class="progress progress-xs progress-danger" value="80" max="100">80%</progress>\n                </li>\n                <li class="hidden-xs-down">\n                    <div class="text-muted">Bounce Rate</div>\n                    <strong>40.15%</strong>\n                    <progress class="progress progress-xs progress-primary" value="40" max="100">40%</progress>\n                </li>\n            </ul>\n        </div>\n    </div>\n    <!--/.card-->\n    <div class="row">\n        <div class="col-sm-6 col-lg-3">\n            <div class="social-box facebook">\n                <i class="fa fa-facebook"></i>\n                <div class="chart-wrapper">\n                    <base-chart class="chart"\n                                [datasets]="socialChartData1"\n                                [labels]="socialChartLabels"\n                                [options]="socialChartOptions"\n                                [colors]="socialChartColours"\n                                [legend]="socialChartLegend"\n                                [chartType]="socialChartType"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:90px;"></base-chart>\n                </div>\n                <ul>\n                    <li>\n                        <strong>89k</strong>\n                        <span>friends</span>\n                    </li>\n                    <li>\n                        <strong>459</strong>\n                        <span>feeds</span>\n                    </li>\n                </ul>\n            </div>\n            <!--/.social-box-->\n        </div>\n        <!--/.col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="social-box twitter">\n                <i class="fa fa-twitter"></i>\n                <div class="chart-wrapper">\n                    <base-chart class="chart"\n                                [datasets]="socialChartData2"\n                                [labels]="socialChartLabels"\n                                [options]="socialChartOptions"\n                                [colors]="socialChartColours"\n                                [legend]="socialChartLegend"\n                                [chartType]="socialChartType"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:90px;"></base-chart>\n                </div>\n                <ul>\n                    <li>\n                        <strong>973k</strong>\n                        <span>followers</span>\n                    </li>\n                    <li>\n                        <strong>1.792</strong>\n                        <span>tweets</span>\n                    </li>\n                </ul>\n            </div>\n            <!--/.social-box-->\n        </div>\n        <!--/.col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="social-box linkedin">\n                <i class="fa fa-linkedin"></i>\n                <div class="chart-wrapper">\n                    <base-chart class="chart"\n                                [datasets]="socialChartData3"\n                                [labels]="socialChartLabels"\n                                [options]="socialChartOptions"\n                                [colors]="socialChartColours"\n                                [legend]="socialChartLegend"\n                                [chartType]="socialChartType"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:90px;"></base-chart>>\n                </div>\n                <ul>\n                    <li>\n                        <strong>500+</strong>\n                        <span>contacts</span>\n                    </li>\n                    <li>\n                        <strong>292</strong>\n                        <span>feeds</span>\n                    </li>\n                </ul>\n            </div>\n            <!--/.social-box-->\n        </div>\n        <!--/.col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="social-box google-plus">\n                <i class="fa fa-google-plus"></i>\n                <div class="chart-wrapper">\n                    <base-chart class="chart"\n                                [datasets]="socialChartData4"\n                                [labels]="socialChartLabels"\n                                [options]="socialChartOptions"\n                                [colors]="socialChartColours"\n                                [legend]="socialChartLegend"\n                                [chartType]="socialChartType"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:90px;"></base-chart>\n                </div>\n                <ul>\n                    <li>\n                        <strong>894</strong>\n                        <span>followers</span>\n                    </li>\n                    <li>\n                        <strong>92</strong>\n                        <span>circles</span>\n                    </li>\n                </ul>\n            </div>\n            <!--/.social-box-->\n        </div>\n        <!--/.col-->\n    </div>\n    <!--/.row-->\n    <div class="row">\n        <div class="col-md-12">\n            <div class="card">\n                <div class="card-header">\n                    Traffic &amp; Sales\n                </div>\n                <div class="card-block">\n                    <div class="row">\n                        <div class="col-sm-12 col-lg-4">\n                            <div class="row">\n                                <div class="col-sm-6">\n                                    <div class="callout callout-info">\n                                        <small class="text-muted">New Clients</small>\n                                        <br>\n                                        <strong class="h4">9,123</strong>\n                                        <div class="chart-wrapper">\n                                            <base-chart class="chart"\n                                                        [datasets]="sparklineChartData1"\n                                                        [labels]="sparklineChartLabels"\n                                                        [options]="sparklineChartOptions"\n                                                        [colors]="sparklineChartInfo"\n                                                        [legend]="sparklineChartLegend"\n                                                        [chartType]="sparklineChartType"\n                                                        (chartHover)="chartHovered($event)"\n                                                        (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>\n                                        </div>\n                                    </div>\n                                </div>\n                                <!--/.col-->\n                                <div class="col-sm-6">\n                                    <div class="callout callout-danger">\n                                        <small class="text-muted">Recuring Clients</small>\n                                        <br>\n                                        <strong class="h4">22,643</strong>\n                                        <div class="chart-wrapper">\n                                            <base-chart class="chart"\n                                                        [datasets]="sparklineChartData2"\n                                                        [labels]="sparklineChartLabels"\n                                                        [options]="sparklineChartOptions"\n                                                        [colors]="sparklineChartDanger"\n                                                        [legend]="sparklineChartLegend"\n                                                        [chartType]="sparklineChartType"\n                                                        (chartHover)="chartHovered($event)"\n                                                        (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>\n                                        </div>\n                                    </div>\n                                </div>\n                                <!--/.col-->\n                            </div>\n                            <!--/.row-->\n                            <hr class="m-t-0">\n                            <ul class="horizontal-bars">\n                                <li>\n                                    <div class="title">\n                                        Monday\n                                    </div>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-info" value="34" max="100" style="margin-bottom: 2px;">34%</progress>\n                                        <progress class="progress progress-xs progress-danger m-a-0" value="78" max="100">78%</progress>\n                                    </div>\n                                </li>\n                                <li>\n                                    <div class="title">\n                                        Tuesday\n                                    </div>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-info" value="56" max="100" style="margin-bottom: 2px;">56%</progress>\n                                        <progress class="progress progress-xs progress-danger m-a-0" value="94" max="100">94%</progress>\n                                    </div>\n                                </li>\n                                <li>\n                                    <div class="title">\n                                        Wednesday\n                                    </div>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-info" value="12" max="100" style="margin-bottom: 2px;">12%</progress>\n                                        <progress class="progress progress-xs progress-danger m-a-0" value="67" max="100">67%</progress>\n                                    </div>\n                                </li>\n                                <li>\n                                    <div class="title">\n                                        Thursday\n                                    </div>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-info" value="43" max="100" style="margin-bottom: 2px;">43%</progress>\n                                        <progress class="progress progress-xs progress-danger m-a-0" value="91" max="100">91%</progress>\n                                    </div>\n                                </li>\n                                <li>\n                                    <div class="title">\n                                        Friday\n                                    </div>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-info" value="22" max="100" style="margin-bottom: 2px;">22%</progress>\n                                        <progress class="progress progress-xs progress-danger m-a-0" value="73" max="100">73%</progress>\n                                    </div>\n                                </li>\n                                <li>\n                                    <div class="title">\n                                        Saturday\n                                    </div>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-info" value="53" max="100" style="margin-bottom: 2px;">53%</progress>\n                                        <progress class="progress progress-xs progress-danger m-a-0" value="82" max="100">82%</progress>\n                                    </div>\n                                </li>\n                                <li>\n                                    <div class="title">\n                                        Sunday\n                                    </div>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-info" value="9" max="100" style="margin-bottom: 2px;">9%</progress>\n                                        <progress class="progress progress-xs progress-danger m-a-0" value="69" max="100">69%</progress>\n                                    </div>\n                                </li>\n                                <li class="legend">\n                                    <span class="tag tag-pill tag-info"></span>\n                                    <small>New clients</small> &nbsp;\n                                    <span class="tag tag-pill tag-danger"></span>\n                                    <small>Recurring clients</small>\n                                </li>\n                            </ul>\n                        </div>\n                        <!--/.col-->\n                        <div class="col-sm-6 col-lg-4">\n                            <div class="row">\n                                <div class="col-sm-6">\n                                    <div class="callout callout-warning">\n                                        <small class="text-muted">Pageviews</small>\n                                        <br>\n                                        <strong class="h4">78,623</strong>\n                                        <div class="chart-wrapper">\n                                            <base-chart class="chart"\n                                                        [datasets]="sparklineChartData1"\n                                                        [labels]="sparklineChartLabels"\n                                                        [options]="sparklineChartOptions"\n                                                        [colors]="sparklineChartWarning"\n                                                        [legend]="sparklineChartLegend"\n                                                        [chartType]="sparklineChartType"\n                                                        (chartHover)="chartHovered($event)"\n                                                        (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>\n                                        </div>\n                                    </div>\n                                </div>\n                                <!--/.col-->\n                                <div class="col-sm-6">\n                                    <div class="callout callout-success">\n                                        <small class="text-muted">Organic</small>\n                                        <br>\n                                        <strong class="h4">49,123</strong>\n                                        <div class="chart-wrapper">\n                                            <base-chart class="chart"\n                                                        [datasets]="sparklineChartData2"\n                                                        [labels]="sparklineChartLabels"\n                                                        [options]="sparklineChartOptions"\n                                                        [colors]="sparklineChartSuccess"\n                                                        [legend]="sparklineChartLegend"\n                                                        [chartType]="sparklineChartType"\n                                                        (chartHover)="chartHovered($event)"\n                                                        (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>\n                                        </div>\n                                    </div>\n                                </div>\n                                <!--/.col-->\n                            </div>\n                            <!--/.row-->\n                            <hr class="m-t-0">\n                            <ul class="horizontal-bars type-2">\n                                <li>\n                                    <i class="icon-user"></i>\n                                    <span class="title">Male</span>\n                                    <span class="value">43%</span>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-warning m-a-0" value="43" max="100">43%</progress>\n                                    </div>\n                                </li>\n                                <li>\n                                    <i class="icon-user-female"></i>\n                                    <span class="title">Female</span>\n                                    <span class="value">37%</span>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-warning m-a-0" value="37" max="100">37%</progress>\n                                    </div>\n                                </li>\n                                <li class="divider"></li>\n                                <li>\n                                    <i class="icon-globe"></i>\n                                    <span class="title">Organic Search</span>\n                                    <span class="value">191,235\n                                        <span class="text-muted small">(56%)</span>\n                                    </span>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-success m-a-0" value="56" max="100">56%</progress>\n                                    </div>\n                                </li>\n                                <li>\n                                    <i class="icon-social-facebook"></i>\n                                    <span class="title">Facebook</span>\n                                    <span class="value">51,223\n                                        <span class="text-muted small">(15%)</span>\n                                    </span>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-success m-a-0" value="15" max="100">15%</progress>\n                                    </div>\n                                </li>\n                                <li>\n                                    <i class="icon-social-twitter"></i>\n                                    <span class="title">Twitter</span>\n                                    <span class="value">37,564\n                                        <span class="text-muted small">(11%)</span>\n                                    </span>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-success m-a-0" value="11" max="100">11%</progress>\n                                    </div>\n                                </li>\n                                <li>\n                                    <i class="icon-social-linkedin"></i>\n                                    <span class="title">LinkedIn</span>\n                                    <span class="value">27,319\n                                        <span class="text-muted small">(8%)</span>\n                                    </span>\n                                    <div class="bars">\n                                        <progress class="progress progress-xs progress-success m-a-0" value="8" max="100">8%</progress>\n                                    </div>\n                                </li>\n                                <li class="divider text-xs-center">\n                                    <button type="button" class="btn btn-sm btn-link text-muted" data-toggle="tooltip" data-placement="top" title="" data-original-title="show more"><i class="icon-options"></i></button>\n                                </li>\n                            </ul>\n                        </div>\n                        <!--/.col-->\n                        <div class="col-sm-6 col-lg-4">\n                            <div class="row">\n                                <div class="col-sm-6">\n                                    <div class="callout">\n                                        <small class="text-muted">CTR</small>\n                                        <br>\n                                        <strong class="h4">23%</strong>\n                                        <div class="chart-wrapper">\n                                            <base-chart class="chart"\n                                                        [datasets]="sparklineChartData1"\n                                                        [labels]="sparklineChartLabels"\n                                                        [options]="sparklineChartOptions"\n                                                        [colors]="sparklineChartDefault"\n                                                        [legend]="sparklineChartLegend"\n                                                        [chartType]="sparklineChartType"\n                                                        (chartHover)="chartHovered($event)"\n                                                        (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>\n                                        </div>\n                                    </div>\n                                </div>\n                                <!--/.col-->\n                                <div class="col-sm-6">\n                                    <div class="callout callout-primary">\n                                        <small class="text-muted">Bounce Rate</small>\n                                        <br>\n                                        <strong class="h4">5%</strong>\n                                        <div class="chart-wrapper">\n                                            <base-chart class="chart"\n                                                        [datasets]="sparklineChartData2"\n                                                        [labels]="sparklineChartLabels"\n                                                        [options]="sparklineChartOptions"\n                                                        [colors]="sparklineChartPrimary"\n                                                        [legend]="sparklineChartLegend"\n                                                        [chartType]="sparklineChartType"\n                                                        (chartHover)="chartHovered($event)"\n                                                        (chartClick)="chartClicked($event)" style="width:100px; height:30px;"></base-chart>\n                                        </div>\n                                    </div>\n                                </div>\n                                <!--/.col-->\n                            </div>\n                            <!--/.row-->\n                            <hr class="m-t-0">\n                            <ul class="icons-list">\n                                <li>\n                                    <i class="icon-screen-desktop bg-primary"></i>\n                                    <div class="desc">\n                                        <div class="title">iMac 4k</div>\n                                        <small>Lorem ipsum dolor sit amet</small>\n                                    </div>\n                                    <div class="value">\n                                        <div class="small text-muted">Sold this week</div>\n                                        <strong>1.924</strong>\n                                    </div>\n                                    <div class="actions">\n                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i></button>\n                                    </div>\n                                </li>\n                                <li>\n                                    <i class="icon-screen-smartphone bg-info"></i>\n                                    <div class="desc">\n                                        <div class="title">Samsung Galaxy Edge</div>\n                                        <small>Lorem ipsum dolor sit amet</small>\n                                    </div>\n                                    <div class="value">\n                                        <div class="small text-muted">Sold this week</div>\n                                        <strong>1.224</strong>\n                                    </div>\n                                    <div class="actions">\n                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i></button>\n                                    </div>\n                                </li>\n                                <li>\n                                    <i class="icon-screen-smartphone bg-warning"></i>\n                                    <div class="desc">\n                                        <div class="title">iPhone 6S</div>\n                                        <small>Lorem ipsum dolor sit amet</small>\n                                    </div>\n                                    <div class="value">\n                                        <div class="small text-muted">Sold this week</div>\n                                        <strong>1.163</strong>\n                                    </div>\n                                    <div class="actions">\n                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i></button>\n                                    </div>\n                                </li>\n                                <li>\n                                    <i class="icon-user bg-danger"></i>\n                                    <div class="desc">\n                                        <div class="title">Premium accounts</div>\n                                        <small>Lorem ipsum dolor sit amet</small>\n                                    </div>\n                                    <div class="value">\n                                        <div class="small text-muted">Sold this week</div>\n                                        <strong>928</strong>\n                                    </div>\n                                    <div class="actions">\n                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i></button>\n                                    </div>\n                                </li>\n                                <li>\n                                    <i class="icon-social-spotify bg-success"></i>\n                                    <div class="desc">\n                                        <div class="title">Spotify Subscriptions</div>\n                                        <small>Lorem ipsum dolor sit amet</small>\n                                    </div>\n                                    <div class="value">\n                                        <div class="small text-muted">Sold this week</div>\n                                        <strong>893</strong>\n                                    </div>\n                                    <div class="actions">\n                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i></button>\n                                    </div>\n                                </li>\n                                <li>\n                                    <i class="icon-cloud-download bg-danger"></i>\n                                    <div class="desc">\n                                        <div class="title">Ebook</div>\n                                        <small>Lorem ipsum dolor sit amet</small>\n                                    </div>\n                                    <div class="value">\n                                        <div class="small text-muted">Downloads</div>\n                                        <strong>121.924</strong>\n                                    </div>\n                                    <div class="actions">\n                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i></button>\n                                    </div>\n                                </li>\n                                <li>\n                                    <i class="icon-camera bg-warning"></i>\n                                    <div class="desc">\n                                        <div class="title">Photos</div>\n                                        <small>Lorem ipsum dolor sit amet</small>\n                                    </div>\n                                    <div class="value">\n                                        <div class="small text-muted">Uploaded</div>\n                                        <strong>12.125</strong>\n                                    </div>\n                                    <div class="actions">\n                                        <button type="button" class="btn btn-link text-muted"><i class="icon-settings"></i></button>\n                                    </div>\n                                </li>\n                                <li class="divider text-xs-center">\n                                    <button type="button" class="btn btn-sm btn-link text-muted" data-toggle="tooltip" data-placement="top" title="show more"><i class="icon-options"></i></button>\n                                </li>\n                            </ul>\n                        </div>\n                        <!--/.col-->\n                    </div>\n                    <!--/.row-->\n                    <br>\n                    <table class="table table-hover table-outline m-b-0 hidden-sm-down">\n                        <thead class="thead-default">\n                            <tr>\n                                <th class="text-xs-center"><i class="icon-people"></i></th>\n                                <th>User</th>\n                                <th class="text-xs-center">Country</th>\n                                <th>Usage</th>\n                                <th class="text-xs-center">Payment Method</th>\n                                <th>Activity</th>\n                            </tr>\n                        </thead>\n                        <tbody>\n                            <tr>\n                                <td class="text-xs-center">\n                                    <div class="avatar">\n                                        <img src="assets/img/avatars/1.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                                        <span class="avatar-status tag-success"></span>\n                                    </div>\n                                </td>\n                                <td>\n                                    <div>Yiorgos Avraamu</div>\n                                    <div class="small text-muted">\n                                        <span>New</span> | Registered: Jan 1, 2015\n                                    </div>\n                                </td>\n                                <td class="text-xs-center">\n                                    <img src="assets/img/flags/USA.png" alt="USA" style="height:24px;">\n                                </td>\n                                <td>\n                                    <div class="clearfix">\n                                        <div class="pull-left">\n                                            <strong>50%</strong>\n                                        </div>\n                                        <div class="pull-right">\n                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>\n                                        </div>\n                                    </div>\n                                    <progress class="progress progress-xs progress-success" value="50" max="100" style="margin:5px 0 0 0;">50%</progress>\n                                </td>\n                                <td class="text-xs-center">\n                                    <i class="fa fa-cc-mastercard" style="font-size:24px"></i>\n                                </td>\n                                <td>\n                                    <div class="small text-muted">Last login</div>\n                                    <strong>10 sec ago</strong>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td class="text-xs-center">\n                                    <div class="avatar">\n                                        <img src="assets/img/avatars/2.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                                        <span class="avatar-status tag-danger"></span>\n                                    </div>\n                                </td>\n                                <td>\n                                    <div>Avram Tarasios</div>\n                                    <div class="small text-muted">\n                                        <span>Recurring</span> | Registered: Jan 1, 2015\n                                    </div>\n                                </td>\n                                <td class="text-xs-center">\n                                    <img src="assets/img/flags/Brazil.png" alt="Brazil" style="height:24px;">\n                                </td>\n                                <td>\n                                    <div class="clearfix">\n                                        <div class="pull-left">\n                                            <strong>10%</strong>\n                                        </div>\n                                        <div class="pull-right">\n                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>\n                                        </div>\n                                    </div>\n                                    <progress class="progress progress-xs progress-info" value="10" max="100" style="margin:5px 0 0 0;">10%</progress>\n                                </td>\n                                <td class="text-xs-center">\n                                    <i class="fa fa-cc-visa" style="font-size:24px"></i>\n                                </td>\n                                <td>\n                                    <div class="small text-muted">Last login</div>\n                                    <strong>5 minutes ago</strong>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td class="text-xs-center">\n                                    <div class="avatar">\n                                        <img src="assets/img/avatars/3.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                                        <span class="avatar-status tag-warning"></span>\n                                    </div>\n                                </td>\n                                <td>\n                                    <div>Quintin Ed</div>\n                                    <div class="small text-muted">\n                                        <span>New</span> | Registered: Jan 1, 2015\n                                    </div>\n                                </td>\n                                <td class="text-xs-center">\n                                    <img src="assets/img/flags/India.png" alt="India" style="height:24px;">\n                                </td>\n                                <td>\n                                    <div class="clearfix">\n                                        <div class="pull-left">\n                                            <strong>74%</strong>\n                                        </div>\n                                        <div class="pull-right">\n                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>\n                                        </div>\n                                    </div>\n                                    <progress class="progress progress-xs progress-warning" value="74" max="100" style="margin:5px 0 0 0;">74%</progress>\n                                </td>\n                                <td class="text-xs-center">\n                                    <i class="fa fa-cc-stripe" style="font-size:24px"></i>\n                                </td>\n                                <td>\n                                    <div class="small text-muted">Last login</div>\n                                    <strong>1 hour ago</strong>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td class="text-xs-center">\n                                    <div class="avatar">\n                                        <img src="assets/img/avatars/4.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                                        <span class="avatar-status tag-default"></span>\n                                    </div>\n                                </td>\n                                <td>\n                                    <div>Enéas Kwadwo</div>\n                                    <div class="small text-muted">\n                                        <span>New</span> | Registered: Jan 1, 2015\n                                    </div>\n                                </td>\n                                <td class="text-xs-center">\n                                    <img src="assets/img/flags/France.png" alt="France" style="height:24px;">\n                                </td>\n                                <td>\n                                    <div class="clearfix">\n                                        <div class="pull-left">\n                                            <strong>98%</strong>\n                                        </div>\n                                        <div class="pull-right">\n                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>\n                                        </div>\n                                    </div>\n                                    <progress class="progress progress-xs progress-danger" value="98" max="100" style="margin:5px 0 0 0;">98%</progress>\n                                </td>\n                                <td class="text-xs-center">\n                                    <i class="fa fa-paypal" style="font-size:24px"></i>\n                                </td>\n                                <td>\n                                    <div class="small text-muted">Last login</div>\n                                    <strong>Last month</strong>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td class="text-xs-center">\n                                    <div class="avatar">\n                                        <img src="assets/img/avatars/5.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                                        <span class="avatar-status tag-success"></span>\n                                    </div>\n                                </td>\n                                <td>\n                                    <div>Agapetus Tadeáš</div>\n                                    <div class="small text-muted">\n                                        <span>New</span> | Registered: Jan 1, 2015\n                                    </div>\n                                </td>\n                                <td class="text-xs-center">\n                                    <img src="assets/img/flags/Spain.png" alt="Spain" style="height:24px;">\n                                </td>\n                                <td>\n                                    <div class="clearfix">\n                                        <div class="pull-left">\n                                            <strong>22%</strong>\n                                        </div>\n                                        <div class="pull-right">\n                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>\n                                        </div>\n                                    </div>\n                                    <progress class="progress progress-xs progress-info" value="22" max="100" style="margin:5px 0 0 0;">22%</progress>\n                                </td>\n                                <td class="text-xs-center">\n                                    <i class="fa fa-google-wallet" style="font-size:24px"></i>\n                                </td>\n                                <td>\n                                    <div class="small text-muted">Last login</div>\n                                    <strong>Last week</strong>\n                                </td>\n                            </tr>\n                            <tr>\n                                <td class="text-xs-center">\n                                    <div class="avatar">\n                                        <img src="assets/img/avatars/6.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                                        <span class="avatar-status tag-danger"></span>\n                                    </div>\n                                </td>\n                                <td>\n                                    <div>Friderik Dávid</div>\n                                    <div class="small text-muted">\n                                        <span>New</span> | Registered: Jan 1, 2015\n                                    </div>\n                                </td>\n                                <td class="text-xs-center">\n                                    <img src="assets/img/flags/Poland.png" alt="Poland" style="height:24px;">\n                                </td>\n                                <td>\n                                    <div class="clearfix">\n                                        <div class="pull-left">\n                                            <strong>43%</strong>\n                                        </div>\n                                        <div class="pull-right">\n                                            <small class="text-muted">Jun 11, 2015 - Jul 10, 2015</small>\n                                        </div>\n                                    </div>\n                                    <progress class="progress progress-xs progress-success" value="43" max="100" style="margin:5px 0 0 0;">43%</progress>\n                                </td>\n                                <td class="text-xs-center">\n                                    <i class="fa fa-cc-amex" style="font-size:24px"></i>\n                                </td>\n                                <td>\n                                    <div class="small text-muted">Last login</div>\n                                    <strong>Yesterday</strong>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n    </div>\n    <!--/.row-->\n</div>\n';
+},function(t,e){t.exports='<div class="animated fadeIn">\n    <div class="card" id="new">\n        <div class="card-header">20 New Icons in 4.5</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bluetooth fa-lg m-t-2"></i>\n                    <br>bluetooth\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bluetooth-b fa-lg m-t-2"></i>\n                    <br>bluetooth-b\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-codiepie fa-lg m-t-2"></i>\n                    <br>codiepie\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-credit-card-alt fa-lg m-t-2"></i>\n                    <br>credit-card-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-edge fa-lg m-t-2"></i>\n                    <br>edge\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-fort-awesome fa-lg m-t-2"></i>\n                    <br>fort-awesome\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hashtag fa-lg m-t-2"></i>\n                    <br>hashtag\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mixcloud fa-lg m-t-2"></i>\n                    <br>mixcloud\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-modx fa-lg m-t-2"></i>\n                    <br>modx\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pause-circle fa-lg m-t-2"></i>\n                    <br>pause-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pause-circle-o fa-lg m-t-2"></i>\n                    <br>pause-circle-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-percent fa-lg m-t-2"></i>\n                    <br>percent\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-product-hunt fa-lg m-t-2"></i>\n                    <br>product-hunt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-reddit-alien fa-lg m-t-2"></i>\n                    <br>reddit-alien\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-scribd fa-lg m-t-2"></i>\n                    <br>scribd\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-shopping-bag fa-lg m-t-2"></i>\n                    <br>shopping-bag\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-shopping-basket fa-lg m-t-2"></i>\n                    <br>shopping-basket\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-stop-circle fa-lg m-t-2"></i>\n                    <br>stop-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-stop-circle-o fa-lg m-t-2"></i>\n                    <br>stop-circle-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-usb fa-lg m-t-2"></i>\n                    <br>usb\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="web-application">\n        <div class="card-header">Web Application Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-adjust fa-lg m-t-2"></i>\n                    <br>adjust\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-anchor fa-lg m-t-2"></i>\n                    <br>anchor\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-archive fa-lg m-t-2"></i>\n                    <br>archive\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-area-chart fa-lg m-t-2"></i>\n                    <br>area-chart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrows fa-lg m-t-2"></i>\n                    <br>arrows\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrows-h fa-lg m-t-2"></i>\n                    <br>arrows-h\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrows-v fa-lg m-t-2"></i>\n                    <br>arrows-v\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-asterisk fa-lg m-t-2"></i>\n                    <br>asterisk\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-at fa-lg m-t-2"></i>\n                    <br>at\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-automobile fa-lg m-t-2"></i>\n                    <br>automobile\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-balance-scale fa-lg m-t-2"></i>\n                    <br>balance-scale\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ban fa-lg m-t-2"></i>\n                    <br>ban\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bank fa-lg m-t-2"></i>\n                    <br>bank\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bar-chart fa-lg m-t-2"></i>\n                    <br>bar-chart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bar-chart-o fa-lg m-t-2"></i>\n                    <br>bar-chart-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-barcode fa-lg m-t-2"></i>\n                    <br>barcode\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bars fa-lg m-t-2"></i>\n                    <br>bars\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-battery-0 fa-lg m-t-2"></i>\n                    <br>battery-0\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-battery-1 fa-lg m-t-2"></i>\n                    <br>battery-1\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-battery-2 fa-lg m-t-2"></i>\n                    <br>battery-2\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-battery-3 fa-lg m-t-2"></i>\n                    <br>battery-3\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-battery-4 fa-lg m-t-2"></i>\n                    <br>battery-4\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-battery-empty fa-lg m-t-2"></i>\n                    <br>battery-empty\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-battery-full fa-lg m-t-2"></i>\n                    <br>battery-full\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-battery-half fa-lg m-t-2"></i>\n                    <br>battery-half\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-battery-quarter fa-lg m-t-2"></i>\n                    <br>battery-quarter\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-battery-three-quarters fa-lg m-t-2"></i>\n                    <br>battery-three-quarters\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bed fa-lg m-t-2"></i>\n                    <br>bed\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-beer fa-lg m-t-2"></i>\n                    <br>beer\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bell fa-lg m-t-2"></i>\n                    <br>bell\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bell-o fa-lg m-t-2"></i>\n                    <br>bell-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bell-slash fa-lg m-t-2"></i>\n                    <br>bell-slash\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bell-slash-o fa-lg m-t-2"></i>\n                    <br>bell-slash-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bicycle fa-lg m-t-2"></i>\n                    <br>bicycle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-binoculars fa-lg m-t-2"></i>\n                    <br>binoculars\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-birthday-cake fa-lg m-t-2"></i>\n                    <br>birthday-cake\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bluetooth fa-lg m-t-2"></i>\n                    <br>bluetooth\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bluetooth-b fa-lg m-t-2"></i>\n                    <br>bluetooth-b\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bolt fa-lg m-t-2"></i>\n                    <br>bolt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bomb fa-lg m-t-2"></i>\n                    <br>bomb\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-book fa-lg m-t-2"></i>\n                    <br>book\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bookmark fa-lg m-t-2"></i>\n                    <br>bookmark\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bookmark-o fa-lg m-t-2"></i>\n                    <br>bookmark-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-briefcase fa-lg m-t-2"></i>\n                    <br>briefcase\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bug fa-lg m-t-2"></i>\n                    <br>bug\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-building fa-lg m-t-2"></i>\n                    <br>building\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-building-o fa-lg m-t-2"></i>\n                    <br>building-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bullhorn fa-lg m-t-2"></i>\n                    <br>bullhorn\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bullseye fa-lg m-t-2"></i>\n                    <br>bullseye\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bus fa-lg m-t-2"></i>\n                    <br>bus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cab fa-lg m-t-2"></i>\n                    <br>cab\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-calculator fa-lg m-t-2"></i>\n                    <br>calculator\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-calendar fa-lg m-t-2"></i>\n                    <br>calendar\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-calendar-check-o fa-lg m-t-2"></i>\n                    <br>calendar-check-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-calendar-minus-o fa-lg m-t-2"></i>\n                    <br>calendar-minus-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-calendar-o fa-lg m-t-2"></i>\n                    <br>calendar-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-calendar-plus-o fa-lg m-t-2"></i>\n                    <br>calendar-plus-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-calendar-times-o fa-lg m-t-2"></i>\n                    <br>calendar-times-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-camera fa-lg m-t-2"></i>\n                    <br>camera\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-camera-retro fa-lg m-t-2"></i>\n                    <br>camera-retro\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-car fa-lg m-t-2"></i>\n                    <br>car\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-square-o-down fa-lg m-t-2"></i>\n                    <br>caret-square-o-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-square-o-left fa-lg m-t-2"></i>\n                    <br>caret-square-o-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-square-o-right fa-lg m-t-2"></i>\n                    <br>caret-square-o-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-square-o-up fa-lg m-t-2"></i>\n                    <br>caret-square-o-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cart-arrow-down fa-lg m-t-2"></i>\n                    <br>cart-arrow-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cart-plus fa-lg m-t-2"></i>\n                    <br>cart-plus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc fa-lg m-t-2"></i>\n                    <br>cc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-certificate fa-lg m-t-2"></i>\n                    <br>certificate\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-check fa-lg m-t-2"></i>\n                    <br>check\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-check-circle fa-lg m-t-2"></i>\n                    <br>check-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-check-circle-o fa-lg m-t-2"></i>\n                    <br>check-circle-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-check-square fa-lg m-t-2"></i>\n                    <br>check-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-check-square-o fa-lg m-t-2"></i>\n                    <br>check-square-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-child fa-lg m-t-2"></i>\n                    <br>child\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-circle fa-lg m-t-2"></i>\n                    <br>circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-circle-o fa-lg m-t-2"></i>\n                    <br>circle-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-circle-o-notch fa-lg m-t-2"></i>\n                    <br>circle-o-notch\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-circle-thin fa-lg m-t-2"></i>\n                    <br>circle-thin\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-clock-o fa-lg m-t-2"></i>\n                    <br>clock-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-clone fa-lg m-t-2"></i>\n                    <br>clone\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-close fa-lg m-t-2"></i>\n                    <br>close\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cloud fa-lg m-t-2"></i>\n                    <br>cloud\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cloud-download fa-lg m-t-2"></i>\n                    <br>cloud-download\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cloud-upload fa-lg m-t-2"></i>\n                    <br>cloud-upload\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-code fa-lg m-t-2"></i>\n                    <br>code\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-code-fork fa-lg m-t-2"></i>\n                    <br>code-fork\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-coffee fa-lg m-t-2"></i>\n                    <br>coffee\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cog fa-lg m-t-2"></i>\n                    <br>cog\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cogs fa-lg m-t-2"></i>\n                    <br>cogs\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-comment fa-lg m-t-2"></i>\n                    <br>comment\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-comment-o fa-lg m-t-2"></i>\n                    <br>comment-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-commenting fa-lg m-t-2"></i>\n                    <br>commenting\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-commenting-o fa-lg m-t-2"></i>\n                    <br>commenting-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-comments fa-lg m-t-2"></i>\n                    <br>comments\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-comments-o fa-lg m-t-2"></i>\n                    <br>comments-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-compass fa-lg m-t-2"></i>\n                    <br>compass\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-copyright fa-lg m-t-2"></i>\n                    <br>copyright\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-creative-commons fa-lg m-t-2"></i>\n                    <br>creative-commons\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-credit-card fa-lg m-t-2"></i>\n                    <br>credit-card\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-credit-card-alt fa-lg m-t-2"></i>\n                    <br>credit-card-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-crop fa-lg m-t-2"></i>\n                    <br>crop\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-crosshairs fa-lg m-t-2"></i>\n                    <br>crosshairs\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cube fa-lg m-t-2"></i>\n                    <br>cube\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cubes fa-lg m-t-2"></i>\n                    <br>cubes\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cutlery fa-lg m-t-2"></i>\n                    <br>cutlery\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-dashboard fa-lg m-t-2"></i>\n                    <br>dashboard\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-database fa-lg m-t-2"></i>\n                    <br>database\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-desktop fa-lg m-t-2"></i>\n                    <br>desktop\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-diamond fa-lg m-t-2"></i>\n                    <br>diamond\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-dot-circle-o fa-lg m-t-2"></i>\n                    <br>dot-circle-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-download fa-lg m-t-2"></i>\n                    <br>download\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-edit fa-lg m-t-2"></i>\n                    <br>edit\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ellipsis-h fa-lg m-t-2"></i>\n                    <br>ellipsis-h\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ellipsis-v fa-lg m-t-2"></i>\n                    <br>ellipsis-v\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-envelope fa-lg m-t-2"></i>\n                    <br>envelope\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-envelope-o fa-lg m-t-2"></i>\n                    <br>envelope-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-envelope-square fa-lg m-t-2"></i>\n                    <br>envelope-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-eraser fa-lg m-t-2"></i>\n                    <br>eraser\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-exchange fa-lg m-t-2"></i>\n                    <br>exchange\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-exclamation fa-lg m-t-2"></i>\n                    <br>exclamation\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-exclamation-circle fa-lg m-t-2"></i>\n                    <br>exclamation-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-exclamation-triangle fa-lg m-t-2"></i>\n                    <br>exclamation-triangle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-external-link fa-lg m-t-2"></i>\n                    <br>external-link\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-external-link-square fa-lg m-t-2"></i>\n                    <br>external-link-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-eye fa-lg m-t-2"></i>\n                    <br>eye\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-eye-slash fa-lg m-t-2"></i>\n                    <br>eye-slash\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-eyedropper fa-lg m-t-2"></i>\n                    <br>eyedropper\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-fax fa-lg m-t-2"></i>\n                    <br>fax\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-feed fa-lg m-t-2"></i>\n                    <br>feed\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-female fa-lg m-t-2"></i>\n                    <br>female\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-fighter-jet fa-lg m-t-2"></i>\n                    <br>fighter-jet\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-archive-o fa-lg m-t-2"></i>\n                    <br>file-archive-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-audio-o fa-lg m-t-2"></i>\n                    <br>file-audio-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-code-o fa-lg m-t-2"></i>\n                    <br>file-code-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-excel-o fa-lg m-t-2"></i>\n                    <br>file-excel-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-image-o fa-lg m-t-2"></i>\n                    <br>file-image-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-movie-o fa-lg m-t-2"></i>\n                    <br>file-movie-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-pdf-o fa-lg m-t-2"></i>\n                    <br>file-pdf-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-photo-o fa-lg m-t-2"></i>\n                    <br>file-photo-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-picture-o fa-lg m-t-2"></i>\n                    <br>file-picture-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-powerpoint-o fa-lg m-t-2"></i>\n                    <br>file-powerpoint-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-sound-o fa-lg m-t-2"></i>\n                    <br>file-sound-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-video-o fa-lg m-t-2"></i>\n                    <br>file-video-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-word-o fa-lg m-t-2"></i>\n                    <br>file-word-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-zip-o fa-lg m-t-2"></i>\n                    <br>file-zip-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-film fa-lg m-t-2"></i>\n                    <br>film\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-filter fa-lg m-t-2"></i>\n                    <br>filter\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-fire fa-lg m-t-2"></i>\n                    <br>fire\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-fire-extinguisher fa-lg m-t-2"></i>\n                    <br>fire-extinguisher\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-flag fa-lg m-t-2"></i>\n                    <br>flag\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-flag-checkered fa-lg m-t-2"></i>\n                    <br>flag-checkered\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-flag-o fa-lg m-t-2"></i>\n                    <br>flag-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-flash fa-lg m-t-2"></i>\n                    <br>flash\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-flask fa-lg m-t-2"></i>\n                    <br>flask\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-folder fa-lg m-t-2"></i>\n                    <br>folder\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-folder-o fa-lg m-t-2"></i>\n                    <br>folder-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-folder-open fa-lg m-t-2"></i>\n                    <br>folder-open\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-folder-open-o fa-lg m-t-2"></i>\n                    <br>folder-open-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-frown-o fa-lg m-t-2"></i>\n                    <br>frown-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-futbol-o fa-lg m-t-2"></i>\n                    <br>futbol-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gamepad fa-lg m-t-2"></i>\n                    <br>gamepad\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gavel fa-lg m-t-2"></i>\n                    <br>gavel\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gear fa-lg m-t-2"></i>\n                    <br>gear\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gears fa-lg m-t-2"></i>\n                    <br>gears\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gift fa-lg m-t-2"></i>\n                    <br>gift\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-glass fa-lg m-t-2"></i>\n                    <br>glass\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-globe fa-lg m-t-2"></i>\n                    <br>globe\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-graduation-cap fa-lg m-t-2"></i>\n                    <br>graduation-cap\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-group fa-lg m-t-2"></i>\n                    <br>group\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-grab-o fa-lg m-t-2"></i>\n                    <br>hand-grab-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-lizard-o fa-lg m-t-2"></i>\n                    <br>hand-lizard-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-paper-o fa-lg m-t-2"></i>\n                    <br>hand-paper-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-peace-o fa-lg m-t-2"></i>\n                    <br>hand-peace-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-pointer-o fa-lg m-t-2"></i>\n                    <br>hand-pointer-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-rock-o fa-lg m-t-2"></i>\n                    <br>hand-rock-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-scissors-o fa-lg m-t-2"></i>\n                    <br>hand-scissors-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-spock-o fa-lg m-t-2"></i>\n                    <br>hand-spock-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-stop-o fa-lg m-t-2"></i>\n                    <br>hand-stop-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hashtag fa-lg m-t-2"></i>\n                    <br>hashtag\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hdd-o fa-lg m-t-2"></i>\n                    <br>hdd-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-headphones fa-lg m-t-2"></i>\n                    <br>headphones\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-heart fa-lg m-t-2"></i>\n                    <br>heart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-heart-o fa-lg m-t-2"></i>\n                    <br>heart-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-heartbeat fa-lg m-t-2"></i>\n                    <br>heartbeat\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-history fa-lg m-t-2"></i>\n                    <br>history\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-home fa-lg m-t-2"></i>\n                    <br>home\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hotel fa-lg m-t-2"></i>\n                    <br>hotel\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hourglass fa-lg m-t-2"></i>\n                    <br>hourglass\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hourglass-1 fa-lg m-t-2"></i>\n                    <br>hourglass-1\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hourglass-2 fa-lg m-t-2"></i>\n                    <br>hourglass-2\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hourglass-3 fa-lg m-t-2"></i>\n                    <br>hourglass-3\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hourglass-end fa-lg m-t-2"></i>\n                    <br>hourglass-end\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hourglass-half fa-lg m-t-2"></i>\n                    <br>hourglass-half\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hourglass-o fa-lg m-t-2"></i>\n                    <br>hourglass-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hourglass-start fa-lg m-t-2"></i>\n                    <br>hourglass-start\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-i-cursor fa-lg m-t-2"></i>\n                    <br>i-cursor\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-image fa-lg m-t-2"></i>\n                    <br>image\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-inbox fa-lg m-t-2"></i>\n                    <br>inbox\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-industry fa-lg m-t-2"></i>\n                    <br>industry\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-info fa-lg m-t-2"></i>\n                    <br>info\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-info-circle fa-lg m-t-2"></i>\n                    <br>info-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-institution fa-lg m-t-2"></i>\n                    <br>institution\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-key fa-lg m-t-2"></i>\n                    <br>key\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-keyboard-o fa-lg m-t-2"></i>\n                    <br>keyboard-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-language fa-lg m-t-2"></i>\n                    <br>language\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-laptop fa-lg m-t-2"></i>\n                    <br>laptop\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-leaf fa-lg m-t-2"></i>\n                    <br>leaf\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-legal fa-lg m-t-2"></i>\n                    <br>legal\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-lemon-o fa-lg m-t-2"></i>\n                    <br>lemon-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-level-down fa-lg m-t-2"></i>\n                    <br>level-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-level-up fa-lg m-t-2"></i>\n                    <br>level-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-life-bouy fa-lg m-t-2"></i>\n                    <br>life-bouy\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-life-buoy fa-lg m-t-2"></i>\n                    <br>life-buoy\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-life-ring fa-lg m-t-2"></i>\n                    <br>life-ring\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-life-saver fa-lg m-t-2"></i>\n                    <br>life-saver\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-lightbulb-o fa-lg m-t-2"></i>\n                    <br>lightbulb-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-line-chart fa-lg m-t-2"></i>\n                    <br>line-chart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-location-arrow fa-lg m-t-2"></i>\n                    <br>location-arrow\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-lock fa-lg m-t-2"></i>\n                    <br>lock\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-magic fa-lg m-t-2"></i>\n                    <br>magic\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-magnet fa-lg m-t-2"></i>\n                    <br>magnet\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mail-forward fa-lg m-t-2"></i>\n                    <br>mail-forward\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mail-reply fa-lg m-t-2"></i>\n                    <br>mail-reply\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mail-reply-all fa-lg m-t-2"></i>\n                    <br>mail-reply-all\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-male fa-lg m-t-2"></i>\n                    <br>male\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-map fa-lg m-t-2"></i>\n                    <br>map\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-map-marker fa-lg m-t-2"></i>\n                    <br>map-marker\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-map-o fa-lg m-t-2"></i>\n                    <br>map-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-map-pin fa-lg m-t-2"></i>\n                    <br>map-pin\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-map-signs fa-lg m-t-2"></i>\n                    <br>map-signs\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-meh-o fa-lg m-t-2"></i>\n                    <br>meh-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-microphone fa-lg m-t-2"></i>\n                    <br>microphone\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-microphone-slash fa-lg m-t-2"></i>\n                    <br>microphone-slash\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-minus fa-lg m-t-2"></i>\n                    <br>minus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-minus-circle fa-lg m-t-2"></i>\n                    <br>minus-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-minus-square fa-lg m-t-2"></i>\n                    <br>minus-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-minus-square-o fa-lg m-t-2"></i>\n                    <br>minus-square-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mobile fa-lg m-t-2"></i>\n                    <br>mobile\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mobile-phone fa-lg m-t-2"></i>\n                    <br>mobile-phone\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-money fa-lg m-t-2"></i>\n                    <br>money\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-moon-o fa-lg m-t-2"></i>\n                    <br>moon-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mortar-board fa-lg m-t-2"></i>\n                    <br>mortar-board\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-motorcycle fa-lg m-t-2"></i>\n                    <br>motorcycle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mouse-pointer fa-lg m-t-2"></i>\n                    <br>mouse-pointer\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-music fa-lg m-t-2"></i>\n                    <br>music\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-navicon fa-lg m-t-2"></i>\n                    <br>navicon\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-newspaper-o fa-lg m-t-2"></i>\n                    <br>newspaper-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-object-group fa-lg m-t-2"></i>\n                    <br>object-group\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-object-ungroup fa-lg m-t-2"></i>\n                    <br>object-ungroup\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-paint-brush fa-lg m-t-2"></i>\n                    <br>paint-brush\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-paper-plane fa-lg m-t-2"></i>\n                    <br>paper-plane\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-paper-plane-o fa-lg m-t-2"></i>\n                    <br>paper-plane-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-paw fa-lg m-t-2"></i>\n                    <br>paw\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pencil fa-lg m-t-2"></i>\n                    <br>pencil\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pencil-square fa-lg m-t-2"></i>\n                    <br>pencil-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pencil-square-o fa-lg m-t-2"></i>\n                    <br>pencil-square-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-percent fa-lg m-t-2"></i>\n                    <br>percent\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-phone fa-lg m-t-2"></i>\n                    <br>phone\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-phone-square fa-lg m-t-2"></i>\n                    <br>phone-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-photo fa-lg m-t-2"></i>\n                    <br>photo\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-picture-o fa-lg m-t-2"></i>\n                    <br>picture-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pie-chart fa-lg m-t-2"></i>\n                    <br>pie-chart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-plane fa-lg m-t-2"></i>\n                    <br>plane\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-plug fa-lg m-t-2"></i>\n                    <br>plug\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-plus fa-lg m-t-2"></i>\n                    <br>plus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-plus-circle fa-lg m-t-2"></i>\n                    <br>plus-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-plus-square fa-lg m-t-2"></i>\n                    <br>plus-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-plus-square-o fa-lg m-t-2"></i>\n                    <br>plus-square-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-power-off fa-lg m-t-2"></i>\n                    <br>power-off\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-print fa-lg m-t-2"></i>\n                    <br>print\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-puzzle-piece fa-lg m-t-2"></i>\n                    <br>puzzle-piece\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-qrcode fa-lg m-t-2"></i>\n                    <br>qrcode\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-question fa-lg m-t-2"></i>\n                    <br>question\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-question-circle fa-lg m-t-2"></i>\n                    <br>question-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-quote-left fa-lg m-t-2"></i>\n                    <br>quote-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-quote-right fa-lg m-t-2"></i>\n                    <br>quote-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-random fa-lg m-t-2"></i>\n                    <br>random\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-recycle fa-lg m-t-2"></i>\n                    <br>recycle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-refresh fa-lg m-t-2"></i>\n                    <br>refresh\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-registered fa-lg m-t-2"></i>\n                    <br>registered\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-remove fa-lg m-t-2"></i>\n                    <br>remove\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-reorder fa-lg m-t-2"></i>\n                    <br>reorder\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-reply fa-lg m-t-2"></i>\n                    <br>reply\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-reply-all fa-lg m-t-2"></i>\n                    <br>reply-all\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-retweet fa-lg m-t-2"></i>\n                    <br>retweet\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-road fa-lg m-t-2"></i>\n                    <br>road\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-rocket fa-lg m-t-2"></i>\n                    <br>rocket\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-rss fa-lg m-t-2"></i>\n                    <br>rss\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-rss-square fa-lg m-t-2"></i>\n                    <br>rss-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-search fa-lg m-t-2"></i>\n                    <br>search\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-search-minus fa-lg m-t-2"></i>\n                    <br>search-minus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-search-plus fa-lg m-t-2"></i>\n                    <br>search-plus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-send fa-lg m-t-2"></i>\n                    <br>send\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-send-o fa-lg m-t-2"></i>\n                    <br>send-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-server fa-lg m-t-2"></i>\n                    <br>server\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-share fa-lg m-t-2"></i>\n                    <br>share\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-share-alt fa-lg m-t-2"></i>\n                    <br>share-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-share-alt-square fa-lg m-t-2"></i>\n                    <br>share-alt-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-share-square fa-lg m-t-2"></i>\n                    <br>share-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-share-square-o fa-lg m-t-2"></i>\n                    <br>share-square-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-shield fa-lg m-t-2"></i>\n                    <br>shield\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ship fa-lg m-t-2"></i>\n                    <br>ship\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-shopping-bag fa-lg m-t-2"></i>\n                    <br>shopping-bag\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-shopping-basket fa-lg m-t-2"></i>\n                    <br>shopping-basket\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-shopping-cart fa-lg m-t-2"></i>\n                    <br>shopping-cart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sign-in fa-lg m-t-2"></i>\n                    <br>sign-in\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sign-out fa-lg m-t-2"></i>\n                    <br>sign-out\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-signal fa-lg m-t-2"></i>\n                    <br>signal\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sitemap fa-lg m-t-2"></i>\n                    <br>sitemap\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sliders fa-lg m-t-2"></i>\n                    <br>sliders\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-smile-o fa-lg m-t-2"></i>\n                    <br>smile-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-soccer-ball-o fa-lg m-t-2"></i>\n                    <br>soccer-ball-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sort fa-lg m-t-2"></i>\n                    <br>sort\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sort-alpha-asc fa-lg m-t-2"></i>\n                    <br>sort-alpha-asc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sort-alpha-desc fa-lg m-t-2"></i>\n                    <br>sort-alpha-desc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sort-amount-asc fa-lg m-t-2"></i>\n                    <br>sort-amount-asc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sort-amount-desc fa-lg m-t-2"></i>\n                    <br>sort-amount-desc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sort-asc fa-lg m-t-2"></i>\n                    <br>sort-asc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sort-desc fa-lg m-t-2"></i>\n                    <br>sort-desc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sort-down fa-lg m-t-2"></i>\n                    <br>sort-down\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sort-numeric-asc fa-lg m-t-2"></i>\n                    <br>sort-numeric-asc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sort-numeric-desc fa-lg m-t-2"></i>\n                    <br>sort-numeric-desc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sort-up fa-lg m-t-2"></i>\n                    <br>sort-up\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-space-shuttle fa-lg m-t-2"></i>\n                    <br>space-shuttle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-spinner fa-lg m-t-2"></i>\n                    <br>spinner\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-spoon fa-lg m-t-2"></i>\n                    <br>spoon\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-square fa-lg m-t-2"></i>\n                    <br>square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-square-o fa-lg m-t-2"></i>\n                    <br>square-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-star fa-lg m-t-2"></i>\n                    <br>star\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-star-half fa-lg m-t-2"></i>\n                    <br>star-half\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-star-half-empty fa-lg m-t-2"></i>\n                    <br>star-half-empty\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-star-half-full fa-lg m-t-2"></i>\n                    <br>star-half-full\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-star-half-o fa-lg m-t-2"></i>\n                    <br>star-half-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-star-o fa-lg m-t-2"></i>\n                    <br>star-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sticky-note fa-lg m-t-2"></i>\n                    <br>sticky-note\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sticky-note-o fa-lg m-t-2"></i>\n                    <br>sticky-note-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-street-view fa-lg m-t-2"></i>\n                    <br>street-view\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-suitcase fa-lg m-t-2"></i>\n                    <br>suitcase\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sun-o fa-lg m-t-2"></i>\n                    <br>sun-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-support fa-lg m-t-2"></i>\n                    <br>support\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tablet fa-lg m-t-2"></i>\n                    <br>tablet\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tachometer fa-lg m-t-2"></i>\n                    <br>tachometer\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tag fa-lg m-t-2"></i>\n                    <br>tag\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tags fa-lg m-t-2"></i>\n                    <br>tags\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tasks fa-lg m-t-2"></i>\n                    <br>tasks\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-taxi fa-lg m-t-2"></i>\n                    <br>taxi\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-television fa-lg m-t-2"></i>\n                    <br>television\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-terminal fa-lg m-t-2"></i>\n                    <br>terminal\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-thumb-tack fa-lg m-t-2"></i>\n                    <br>thumb-tack\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-thumbs-down fa-lg m-t-2"></i>\n                    <br>thumbs-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-thumbs-o-down fa-lg m-t-2"></i>\n                    <br>thumbs-o-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-thumbs-o-up fa-lg m-t-2"></i>\n                    <br>thumbs-o-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-thumbs-up fa-lg m-t-2"></i>\n                    <br>thumbs-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ticket fa-lg m-t-2"></i>\n                    <br>ticket\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-times fa-lg m-t-2"></i>\n                    <br>times\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-times-circle fa-lg m-t-2"></i>\n                    <br>times-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-times-circle-o fa-lg m-t-2"></i>\n                    <br>times-circle-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tint fa-lg m-t-2"></i>\n                    <br>tint\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-toggle-down fa-lg m-t-2"></i>\n                    <br>toggle-down\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-toggle-left fa-lg m-t-2"></i>\n                    <br>toggle-left\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-toggle-off fa-lg m-t-2"></i>\n                    <br>toggle-off\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-toggle-on fa-lg m-t-2"></i>\n                    <br>toggle-on\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-toggle-right fa-lg m-t-2"></i>\n                    <br>toggle-right\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-toggle-up fa-lg m-t-2"></i>\n                    <br>toggle-up\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-trademark fa-lg m-t-2"></i>\n                    <br>trademark\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-trash fa-lg m-t-2"></i>\n                    <br>trash\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-trash-o fa-lg m-t-2"></i>\n                    <br>trash-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tree fa-lg m-t-2"></i>\n                    <br>tree\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-trophy fa-lg m-t-2"></i>\n                    <br>trophy\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-truck fa-lg m-t-2"></i>\n                    <br>truck\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tty fa-lg m-t-2"></i>\n                    <br>tty\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tv fa-lg m-t-2"></i>\n                    <br>tv\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-umbrella fa-lg m-t-2"></i>\n                    <br>umbrella\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-university fa-lg m-t-2"></i>\n                    <br>university\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-unlock fa-lg m-t-2"></i>\n                    <br>unlock\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-unlock-alt fa-lg m-t-2"></i>\n                    <br>unlock-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-unsorted fa-lg m-t-2"></i>\n                    <br>unsorted\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-upload fa-lg m-t-2"></i>\n                    <br>upload\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-user fa-lg m-t-2"></i>\n                    <br>user\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-user-plus fa-lg m-t-2"></i>\n                    <br>user-plus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-user-secret fa-lg m-t-2"></i>\n                    <br>user-secret\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-user-times fa-lg m-t-2"></i>\n                    <br>user-times\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-users fa-lg m-t-2"></i>\n                    <br>users\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-video-camera fa-lg m-t-2"></i>\n                    <br>video-camera\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-volume-down fa-lg m-t-2"></i>\n                    <br>volume-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-volume-off fa-lg m-t-2"></i>\n                    <br>volume-off\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-volume-up fa-lg m-t-2"></i>\n                    <br>volume-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-warning fa-lg m-t-2"></i>\n                    <br>warning\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-wheelchair fa-lg m-t-2"></i>\n                    <br>wheelchair\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-wifi fa-lg m-t-2"></i>\n                    <br>wifi\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-wrench fa-lg m-t-2"></i>\n                    <br>wrench\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="hand">\n        <div class="card-header">Hand Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-grab-o fa-lg m-t-2"></i>\n                    <br>hand-grab-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-lizard-o fa-lg m-t-2"></i>\n                    <br>hand-lizard-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-o-down fa-lg m-t-2"></i>\n                    <br>hand-o-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-o-left fa-lg m-t-2"></i>\n                    <br>hand-o-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-o-right fa-lg m-t-2"></i>\n                    <br>hand-o-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-o-up fa-lg m-t-2"></i>\n                    <br>hand-o-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-paper-o fa-lg m-t-2"></i>\n                    <br>hand-paper-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-peace-o fa-lg m-t-2"></i>\n                    <br>hand-peace-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-pointer-o fa-lg m-t-2"></i>\n                    <br>hand-pointer-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-rock-o fa-lg m-t-2"></i>\n                    <br>hand-rock-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-scissors-o fa-lg m-t-2"></i>\n                    <br>hand-scissors-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-spock-o fa-lg m-t-2"></i>\n                    <br>hand-spock-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-stop-o fa-lg m-t-2"></i>\n                    <br>hand-stop-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-thumbs-down fa-lg m-t-2"></i>\n                    <br>thumbs-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-thumbs-o-down fa-lg m-t-2"></i>\n                    <br>thumbs-o-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-thumbs-o-up fa-lg m-t-2"></i>\n                    <br>thumbs-o-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-thumbs-up fa-lg m-t-2"></i>\n                    <br>thumbs-up\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="transportation">\n        <div class="card-header">Transportation Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ambulance fa-lg m-t-2"></i>\n                    <br>ambulance\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-automobile fa-lg m-t-2"></i>\n                    <br>automobile\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bicycle fa-lg m-t-2"></i>\n                    <br>bicycle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bus fa-lg m-t-2"></i>\n                    <br>bus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cab fa-lg m-t-2"></i>\n                    <br>cab\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-car fa-lg m-t-2"></i>\n                    <br>car\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-fighter-jet fa-lg m-t-2"></i>\n                    <br>fighter-jet\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-motorcycle fa-lg m-t-2"></i>\n                    <br>motorcycle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-plane fa-lg m-t-2"></i>\n                    <br>plane\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-rocket fa-lg m-t-2"></i>\n                    <br>rocket\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ship fa-lg m-t-2"></i>\n                    <br>ship\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-space-shuttle fa-lg m-t-2"></i>\n                    <br>space-shuttle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-subway fa-lg m-t-2"></i>\n                    <br>subway\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-taxi fa-lg m-t-2"></i>\n                    <br>taxi\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-train fa-lg m-t-2"></i>\n                    <br>train\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-truck fa-lg m-t-2"></i>\n                    <br>truck\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-wheelchair fa-lg m-t-2"></i>\n                    <br>wheelchair\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="gender">\n        <div class="card-header">Gender Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-genderless fa-lg m-t-2"></i>\n                    <br>genderless\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-intersex fa-lg m-t-2"></i>\n                    <br>intersex\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mars fa-lg m-t-2"></i>\n                    <br>mars\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mars-double fa-lg m-t-2"></i>\n                    <br>mars-double\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mars-stroke fa-lg m-t-2"></i>\n                    <br>mars-stroke\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mars-stroke-h fa-lg m-t-2"></i>\n                    <br>mars-stroke-h\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mars-stroke-v fa-lg m-t-2"></i>\n                    <br>mars-stroke-v\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mercury fa-lg m-t-2"></i>\n                    <br>mercury\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-neuter fa-lg m-t-2"></i>\n                    <br>neuter\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-transgender fa-lg m-t-2"></i>\n                    <br>transgender\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-transgender-alt fa-lg m-t-2"></i>\n                    <br>transgender-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-venus fa-lg m-t-2"></i>\n                    <br>venus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-venus-double fa-lg m-t-2"></i>\n                    <br>venus-double\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-venus-mars fa-lg m-t-2"></i>\n                    <br>venus-mars\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="file-type">\n        <div class="card-header">File Type Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file fa-lg m-t-2"></i>\n                    <br>file\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-archive-o fa-lg m-t-2"></i>\n                    <br>file-archive-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-audio-o fa-lg m-t-2"></i>\n                    <br>file-audio-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-code-o fa-lg m-t-2"></i>\n                    <br>file-code-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-excel-o fa-lg m-t-2"></i>\n                    <br>file-excel-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-image-o fa-lg m-t-2"></i>\n                    <br>file-image-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-movie-o fa-lg m-t-2"></i>\n                    <br>file-movie-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-o fa-lg m-t-2"></i>\n                    <br>file-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-pdf-o fa-lg m-t-2"></i>\n                    <br>file-pdf-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-photo-o fa-lg m-t-2"></i>\n                    <br>file-photo-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-picture-o fa-lg m-t-2"></i>\n                    <br>file-picture-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-powerpoint-o fa-lg m-t-2"></i>\n                    <br>file-powerpoint-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-sound-o fa-lg m-t-2"></i>\n                    <br>file-sound-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-text fa-lg m-t-2"></i>\n                    <br>file-text\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-text-o fa-lg m-t-2"></i>\n                    <br>file-text-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-video-o fa-lg m-t-2"></i>\n                    <br>file-video-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-word-o fa-lg m-t-2"></i>\n                    <br>file-word-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-zip-o fa-lg m-t-2"></i>\n                    <br>file-zip-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="spinner">\n        <div class="card-header">Spinner Icons</div>\n        <div class="card-block">\n            <div class="alert alert-success">\n                <ul class="fa-ul">\n                    <li>\n                        <i class="fa fa-info-circle fa-li"></i> These icons work great with the\n                        <code>fa-spin</code> class.\n                    </li>\n                </ul>\n            </div>\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-circle-o-notch fa-lg m-t-2"></i>\n                    <br>circle-o-notch\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cog fa-lg m-t-2"></i>\n                    <br>cog\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gear fa-lg m-t-2"></i>\n                    <br>gear\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-refresh fa-lg m-t-2"></i>\n                    <br>refresh\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-spinner fa-lg m-t-2"></i>\n                    <br>spinner\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="form-control">\n        <div class="card-header">Form Control Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-check-square fa-lg m-t-2"></i>\n                    <br>check-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-check-square-o fa-lg m-t-2"></i>\n                    <br>check-square-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-circle fa-lg m-t-2"></i>\n                    <br>circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-circle-o fa-lg m-t-2"></i>\n                    <br>circle-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-dot-circle-o fa-lg m-t-2"></i>\n                    <br>dot-circle-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-minus-square fa-lg m-t-2"></i>\n                    <br>minus-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-minus-square-o fa-lg m-t-2"></i>\n                    <br>minus-square-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-plus-square fa-lg m-t-2"></i>\n                    <br>plus-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-plus-square-o fa-lg m-t-2"></i>\n                    <br>plus-square-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-square fa-lg m-t-2"></i>\n                    <br>square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-square-o fa-lg m-t-2"></i>\n                    <br>square-o\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="payment">\n        <div class="card-header">Payment Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-amex fa-lg m-t-2"></i>\n                    <br>cc-amex\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-diners-club fa-lg m-t-2"></i>\n                    <br>cc-diners-club\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-discover fa-lg m-t-2"></i>\n                    <br>cc-discover\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-jcb fa-lg m-t-2"></i>\n                    <br>cc-jcb\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-mastercard fa-lg m-t-2"></i>\n                    <br>cc-mastercard\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-paypal fa-lg m-t-2"></i>\n                    <br>cc-paypal\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-stripe fa-lg m-t-2"></i>\n                    <br>cc-stripe\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-visa fa-lg m-t-2"></i>\n                    <br>cc-visa\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-credit-card fa-lg m-t-2"></i>\n                    <br>credit-card\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-credit-card-alt fa-lg m-t-2"></i>\n                    <br>credit-card-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-google-wallet fa-lg m-t-2"></i>\n                    <br>google-wallet\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-paypal fa-lg m-t-2"></i>\n                    <br>paypal\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="chart">\n        <div class="card-header">Chart Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-area-chart fa-lg m-t-2"></i>\n                    <br>area-chart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bar-chart fa-lg m-t-2"></i>\n                    <br>bar-chart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bar-chart-o fa-lg m-t-2"></i>\n                    <br>bar-chart-o\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-line-chart fa-lg m-t-2"></i>\n                    <br>line-chart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pie-chart fa-lg m-t-2"></i>\n                    <br>pie-chart\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="currency">\n        <div class="card-header">Currency Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bitcoin fa-lg m-t-2"></i>\n                    <br>bitcoin\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-btc fa-lg m-t-2"></i>\n                    <br>btc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cny fa-lg m-t-2"></i>\n                    <br>cny\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-dollar fa-lg m-t-2"></i>\n                    <br>dollar\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-eur fa-lg m-t-2"></i>\n                    <br>eur\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-euro fa-lg m-t-2"></i>\n                    <br>euro\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gbp fa-lg m-t-2"></i>\n                    <br>gbp\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gg fa-lg m-t-2"></i>\n                    <br>gg\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gg-circle fa-lg m-t-2"></i>\n                    <br>gg-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ils fa-lg m-t-2"></i>\n                    <br>ils\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-inr fa-lg m-t-2"></i>\n                    <br>inr\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-jpy fa-lg m-t-2"></i>\n                    <br>jpy\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-krw fa-lg m-t-2"></i>\n                    <br>krw\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-money fa-lg m-t-2"></i>\n                    <br>money\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-rmb fa-lg m-t-2"></i>\n                    <br>rmb\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-rouble fa-lg m-t-2"></i>\n                    <br>rouble\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-rub fa-lg m-t-2"></i>\n                    <br>rub\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ruble fa-lg m-t-2"></i>\n                    <br>ruble\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-rupee fa-lg m-t-2"></i>\n                    <br>rupee\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-shekel fa-lg m-t-2"></i>\n                    <br>shekel\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sheqel fa-lg m-t-2"></i>\n                    <br>sheqel\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-try fa-lg m-t-2"></i>\n                    <br>try\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-turkish-lira fa-lg m-t-2"></i>\n                    <br>turkish-lira\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-usd fa-lg m-t-2"></i>\n                    <br>usd\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-won fa-lg m-t-2"></i>\n                    <br>won\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-yen fa-lg m-t-2"></i>\n                    <br>yen\n                    <span class="text-muted">(alias)</span>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="text-editor">\n        <div class="card-header">Text Editor Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-align-center fa-lg m-t-2"></i>\n                    <br>align-center\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-align-justify fa-lg m-t-2"></i>\n                    <br>align-justify\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-align-left fa-lg m-t-2"></i>\n                    <br>align-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-align-right fa-lg m-t-2"></i>\n                    <br>align-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bold fa-lg m-t-2"></i>\n                    <br>bold\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-chain fa-lg m-t-2"></i>\n                    <br>chain\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-chain-broken fa-lg m-t-2"></i>\n                    <br>chain-broken\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-clipboard fa-lg m-t-2"></i>\n                    <br>clipboard\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-columns fa-lg m-t-2"></i>\n                    <br>columns\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-copy fa-lg m-t-2"></i>\n                    <br>copy\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cut fa-lg m-t-2"></i>\n                    <br>cut\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-dedent fa-lg m-t-2"></i>\n                    <br>dedent\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-eraser fa-lg m-t-2"></i>\n                    <br>eraser\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file fa-lg m-t-2"></i>\n                    <br>file\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-o fa-lg m-t-2"></i>\n                    <br>file-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-text fa-lg m-t-2"></i>\n                    <br>file-text\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-file-text-o fa-lg m-t-2"></i>\n                    <br>file-text-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-files-o fa-lg m-t-2"></i>\n                    <br>files-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-floppy-o fa-lg m-t-2"></i>\n                    <br>floppy-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-font fa-lg m-t-2"></i>\n                    <br>font\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-header fa-lg m-t-2"></i>\n                    <br>header\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-indent fa-lg m-t-2"></i>\n                    <br>indent\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-italic fa-lg m-t-2"></i>\n                    <br>italic\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-link fa-lg m-t-2"></i>\n                    <br>link\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-list fa-lg m-t-2"></i>\n                    <br>list\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-list-alt fa-lg m-t-2"></i>\n                    <br>list-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-list-ol fa-lg m-t-2"></i>\n                    <br>list-ol\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-list-ul fa-lg m-t-2"></i>\n                    <br>list-ul\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-outdent fa-lg m-t-2"></i>\n                    <br>outdent\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-paperclip fa-lg m-t-2"></i>\n                    <br>paperclip\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-paragraph fa-lg m-t-2"></i>\n                    <br>paragraph\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-paste fa-lg m-t-2"></i>\n                    <br>paste\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-repeat fa-lg m-t-2"></i>\n                    <br>repeat\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-rotate-left fa-lg m-t-2"></i>\n                    <br>rotate-left\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-rotate-right fa-lg m-t-2"></i>\n                    <br>rotate-right\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-save fa-lg m-t-2"></i>\n                    <br>save\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-scissors fa-lg m-t-2"></i>\n                    <br>scissors\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-strikethrough fa-lg m-t-2"></i>\n                    <br>strikethrough\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-subscript fa-lg m-t-2"></i>\n                    <br>subscript\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-superscript fa-lg m-t-2"></i>\n                    <br>superscript\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-table fa-lg m-t-2"></i>\n                    <br>table\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-text-height fa-lg m-t-2"></i>\n                    <br>text-height\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-text-width fa-lg m-t-2"></i>\n                    <br>text-width\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-th fa-lg m-t-2"></i>\n                    <br>th\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-th-large fa-lg m-t-2"></i>\n                    <br>th-large\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-th-list fa-lg m-t-2"></i>\n                    <br>th-list\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-underline fa-lg m-t-2"></i>\n                    <br>underline\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-undo fa-lg m-t-2"></i>\n                    <br>undo\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-unlink fa-lg m-t-2"></i>\n                    <br>unlink\n                    <span class="text-muted">(alias)</span>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="directional">\n        <div class="card-header">Directional Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-angle-double-down fa-lg m-t-2"></i>\n                    <br>angle-double-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-angle-double-left fa-lg m-t-2"></i>\n                    <br>angle-double-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-angle-double-right fa-lg m-t-2"></i>\n                    <br>angle-double-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-angle-double-up fa-lg m-t-2"></i>\n                    <br>angle-double-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-angle-down fa-lg m-t-2"></i>\n                    <br>angle-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-angle-left fa-lg m-t-2"></i>\n                    <br>angle-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-angle-right fa-lg m-t-2"></i>\n                    <br>angle-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-angle-up fa-lg m-t-2"></i>\n                    <br>angle-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-circle-down fa-lg m-t-2"></i>\n                    <br>arrow-circle-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-circle-left fa-lg m-t-2"></i>\n                    <br>arrow-circle-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-circle-o-down fa-lg m-t-2"></i>\n                    <br>arrow-circle-o-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-circle-o-left fa-lg m-t-2"></i>\n                    <br>arrow-circle-o-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-circle-o-right fa-lg m-t-2"></i>\n                    <br>arrow-circle-o-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-circle-o-up fa-lg m-t-2"></i>\n                    <br>arrow-circle-o-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-circle-right fa-lg m-t-2"></i>\n                    <br>arrow-circle-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-circle-up fa-lg m-t-2"></i>\n                    <br>arrow-circle-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-down fa-lg m-t-2"></i>\n                    <br>arrow-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-left fa-lg m-t-2"></i>\n                    <br>arrow-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-right fa-lg m-t-2"></i>\n                    <br>arrow-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrow-up fa-lg m-t-2"></i>\n                    <br>arrow-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrows fa-lg m-t-2"></i>\n                    <br>arrows\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrows-alt fa-lg m-t-2"></i>\n                    <br>arrows-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrows-h fa-lg m-t-2"></i>\n                    <br>arrows-h\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrows-v fa-lg m-t-2"></i>\n                    <br>arrows-v\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-down fa-lg m-t-2"></i>\n                    <br>caret-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-left fa-lg m-t-2"></i>\n                    <br>caret-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-right fa-lg m-t-2"></i>\n                    <br>caret-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-square-o-down fa-lg m-t-2"></i>\n                    <br>caret-square-o-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-square-o-left fa-lg m-t-2"></i>\n                    <br>caret-square-o-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-square-o-right fa-lg m-t-2"></i>\n                    <br>caret-square-o-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-square-o-up fa-lg m-t-2"></i>\n                    <br>caret-square-o-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-caret-up fa-lg m-t-2"></i>\n                    <br>caret-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-chevron-circle-down fa-lg m-t-2"></i>\n                    <br>chevron-circle-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-chevron-circle-left fa-lg m-t-2"></i>\n                    <br>chevron-circle-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-chevron-circle-right fa-lg m-t-2"></i>\n                    <br>chevron-circle-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-chevron-circle-up fa-lg m-t-2"></i>\n                    <br>chevron-circle-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-chevron-down fa-lg m-t-2"></i>\n                    <br>chevron-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-chevron-left fa-lg m-t-2"></i>\n                    <br>chevron-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-chevron-right fa-lg m-t-2"></i>\n                    <br>chevron-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-chevron-up fa-lg m-t-2"></i>\n                    <br>chevron-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-exchange fa-lg m-t-2"></i>\n                    <br>exchange\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-o-down fa-lg m-t-2"></i>\n                    <br>hand-o-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-o-left fa-lg m-t-2"></i>\n                    <br>hand-o-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-o-right fa-lg m-t-2"></i>\n                    <br>hand-o-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hand-o-up fa-lg m-t-2"></i>\n                    <br>hand-o-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-long-arrow-down fa-lg m-t-2"></i>\n                    <br>long-arrow-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-long-arrow-left fa-lg m-t-2"></i>\n                    <br>long-arrow-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-long-arrow-right fa-lg m-t-2"></i>\n                    <br>long-arrow-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-long-arrow-up fa-lg m-t-2"></i>\n                    <br>long-arrow-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-toggle-down fa-lg m-t-2"></i>\n                    <br>toggle-down\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-toggle-left fa-lg m-t-2"></i>\n                    <br>toggle-left\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-toggle-right fa-lg m-t-2"></i>\n                    <br>toggle-right\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-toggle-up fa-lg m-t-2"></i>\n                    <br>toggle-up\n                    <span class="text-muted">(alias)</span>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="video-player">\n        <div class="card-header">Video Player Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-arrows-alt fa-lg m-t-2"></i>\n                    <br>arrows-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-backward fa-lg m-t-2"></i>\n                    <br>backward\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-compress fa-lg m-t-2"></i>\n                    <br>compress\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-eject fa-lg m-t-2"></i>\n                    <br>eject\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-expand fa-lg m-t-2"></i>\n                    <br>expand\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-fast-backward fa-lg m-t-2"></i>\n                    <br>fast-backward\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-fast-forward fa-lg m-t-2"></i>\n                    <br>fast-forward\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-forward fa-lg m-t-2"></i>\n                    <br>forward\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pause fa-lg m-t-2"></i>\n                    <br>pause\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pause-circle fa-lg m-t-2"></i>\n                    <br>pause-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pause-circle-o fa-lg m-t-2"></i>\n                    <br>pause-circle-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-play fa-lg m-t-2"></i>\n                    <br>play\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-play-circle fa-lg m-t-2"></i>\n                    <br>play-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-play-circle-o fa-lg m-t-2"></i>\n                    <br>play-circle-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-random fa-lg m-t-2"></i>\n                    <br>random\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-step-backward fa-lg m-t-2"></i>\n                    <br>step-backward\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-step-forward fa-lg m-t-2"></i>\n                    <br>step-forward\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-stop fa-lg m-t-2"></i>\n                    <br>stop\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-stop-circle fa-lg m-t-2"></i>\n                    <br>stop-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-stop-circle-o fa-lg m-t-2"></i>\n                    <br>stop-circle-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-youtube-play fa-lg m-t-2"></i>\n                    <br>youtube-play\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="brand">\n        <div class="card-header">Brand Icons</div>\n        <div class="card-block">\n            <div class="alert alert-warning">\n                <h4><i class="fa fa-warning"></i> Warning!</h4>\n                Apparently, Adblock Plus can remove Font Awesome brand icons with their "Remove Social Media Buttons" setting. We will not use hacks to force them to display. Please\n                <a href="https://adblockplus.org/en/bugs" class="alert-link">report an issue with Adblock Plus</a> if you believe this to be an error. To work around this, you\'ll need to modify the social icon class names.\n            </div>\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-500px fa-lg m-t-2"></i>\n                    <br>500px\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-adn fa-lg m-t-2"></i>\n                    <br>adn\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-amazon fa-lg m-t-2"></i>\n                    <br>amazon\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-android fa-lg m-t-2"></i>\n                    <br>android\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-angellist fa-lg m-t-2"></i>\n                    <br>angellist\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-apple fa-lg m-t-2"></i>\n                    <br>apple\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-behance fa-lg m-t-2"></i>\n                    <br>behance\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-behance-square fa-lg m-t-2"></i>\n                    <br>behance-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bitbucket fa-lg m-t-2"></i>\n                    <br>bitbucket\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bitbucket-square fa-lg m-t-2"></i>\n                    <br>bitbucket-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bitcoin fa-lg m-t-2"></i>\n                    <br>bitcoin\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-black-tie fa-lg m-t-2"></i>\n                    <br>black-tie\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bluetooth fa-lg m-t-2"></i>\n                    <br>bluetooth\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-bluetooth-b fa-lg m-t-2"></i>\n                    <br>bluetooth-b\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-btc fa-lg m-t-2"></i>\n                    <br>btc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-buysellads fa-lg m-t-2"></i>\n                    <br>buysellads\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-amex fa-lg m-t-2"></i>\n                    <br>cc-amex\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-diners-club fa-lg m-t-2"></i>\n                    <br>cc-diners-club\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-discover fa-lg m-t-2"></i>\n                    <br>cc-discover\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-jcb fa-lg m-t-2"></i>\n                    <br>cc-jcb\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-mastercard fa-lg m-t-2"></i>\n                    <br>cc-mastercard\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-paypal fa-lg m-t-2"></i>\n                    <br>cc-paypal\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-stripe fa-lg m-t-2"></i>\n                    <br>cc-stripe\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-cc-visa fa-lg m-t-2"></i>\n                    <br>cc-visa\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-chrome fa-lg m-t-2"></i>\n                    <br>chrome\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-codepen fa-lg m-t-2"></i>\n                    <br>codepen\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-codiepie fa-lg m-t-2"></i>\n                    <br>codiepie\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-connectdevelop fa-lg m-t-2"></i>\n                    <br>connectdevelop\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-contao fa-lg m-t-2"></i>\n                    <br>contao\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-css3 fa-lg m-t-2"></i>\n                    <br>css3\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-dashcube fa-lg m-t-2"></i>\n                    <br>dashcube\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-delicious fa-lg m-t-2"></i>\n                    <br>delicious\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-deviantart fa-lg m-t-2"></i>\n                    <br>deviantart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-digg fa-lg m-t-2"></i>\n                    <br>digg\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-dribbble fa-lg m-t-2"></i>\n                    <br>dribbble\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-dropbox fa-lg m-t-2"></i>\n                    <br>dropbox\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-drupal fa-lg m-t-2"></i>\n                    <br>drupal\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-edge fa-lg m-t-2"></i>\n                    <br>edge\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-empire fa-lg m-t-2"></i>\n                    <br>empire\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-expeditedssl fa-lg m-t-2"></i>\n                    <br>expeditedssl\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-facebook fa-lg m-t-2"></i>\n                    <br>facebook\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-facebook-f fa-lg m-t-2"></i>\n                    <br>facebook-f\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-facebook-official fa-lg m-t-2"></i>\n                    <br>facebook-official\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-facebook-square fa-lg m-t-2"></i>\n                    <br>facebook-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-firefox fa-lg m-t-2"></i>\n                    <br>firefox\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-flickr fa-lg m-t-2"></i>\n                    <br>flickr\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-fonticons fa-lg m-t-2"></i>\n                    <br>fonticons\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-fort-awesome fa-lg m-t-2"></i>\n                    <br>fort-awesome\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-forumbee fa-lg m-t-2"></i>\n                    <br>forumbee\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-foursquare fa-lg m-t-2"></i>\n                    <br>foursquare\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ge fa-lg m-t-2"></i>\n                    <br>ge\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-get-pocket fa-lg m-t-2"></i>\n                    <br>get-pocket\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gg fa-lg m-t-2"></i>\n                    <br>gg\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gg-circle fa-lg m-t-2"></i>\n                    <br>gg-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-git fa-lg m-t-2"></i>\n                    <br>git\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-git-square fa-lg m-t-2"></i>\n                    <br>git-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-github fa-lg m-t-2"></i>\n                    <br>github\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-github-alt fa-lg m-t-2"></i>\n                    <br>github-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-github-square fa-lg m-t-2"></i>\n                    <br>github-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gittip fa-lg m-t-2"></i>\n                    <br>gittip\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-google fa-lg m-t-2"></i>\n                    <br>google\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-google-plus fa-lg m-t-2"></i>\n                    <br>google-plus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-google-plus-square fa-lg m-t-2"></i>\n                    <br>google-plus-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-google-wallet fa-lg m-t-2"></i>\n                    <br>google-wallet\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-gratipay fa-lg m-t-2"></i>\n                    <br>gratipay\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hacker-news fa-lg m-t-2"></i>\n                    <br>hacker-news\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-houzz fa-lg m-t-2"></i>\n                    <br>houzz\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-html5 fa-lg m-t-2"></i>\n                    <br>html5\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-instagram fa-lg m-t-2"></i>\n                    <br>instagram\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-internet-explorer fa-lg m-t-2"></i>\n                    <br>internet-explorer\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ioxhost fa-lg m-t-2"></i>\n                    <br>ioxhost\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-joomla fa-lg m-t-2"></i>\n                    <br>joomla\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-jsfiddle fa-lg m-t-2"></i>\n                    <br>jsfiddle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-lastfm fa-lg m-t-2"></i>\n                    <br>lastfm\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-lastfm-square fa-lg m-t-2"></i>\n                    <br>lastfm-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-leanpub fa-lg m-t-2"></i>\n                    <br>leanpub\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-linkedin fa-lg m-t-2"></i>\n                    <br>linkedin\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-linkedin-square fa-lg m-t-2"></i>\n                    <br>linkedin-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-linux fa-lg m-t-2"></i>\n                    <br>linux\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-maxcdn fa-lg m-t-2"></i>\n                    <br>maxcdn\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-meanpath fa-lg m-t-2"></i>\n                    <br>meanpath\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-medium fa-lg m-t-2"></i>\n                    <br>medium\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-mixcloud fa-lg m-t-2"></i>\n                    <br>mixcloud\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-modx fa-lg m-t-2"></i>\n                    <br>modx\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-odnoklassniki fa-lg m-t-2"></i>\n                    <br>odnoklassniki\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-odnoklassniki-square fa-lg m-t-2"></i>\n                    <br>odnoklassniki-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-opencart fa-lg m-t-2"></i>\n                    <br>opencart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-openid fa-lg m-t-2"></i>\n                    <br>openid\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-opera fa-lg m-t-2"></i>\n                    <br>opera\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-optin-monster fa-lg m-t-2"></i>\n                    <br>optin-monster\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pagelines fa-lg m-t-2"></i>\n                    <br>pagelines\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-paypal fa-lg m-t-2"></i>\n                    <br>paypal\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pied-piper fa-lg m-t-2"></i>\n                    <br>pied-piper\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pied-piper-alt fa-lg m-t-2"></i>\n                    <br>pied-piper-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pinterest fa-lg m-t-2"></i>\n                    <br>pinterest\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pinterest-p fa-lg m-t-2"></i>\n                    <br>pinterest-p\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-pinterest-square fa-lg m-t-2"></i>\n                    <br>pinterest-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-product-hunt fa-lg m-t-2"></i>\n                    <br>product-hunt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-qq fa-lg m-t-2"></i>\n                    <br>qq\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ra fa-lg m-t-2"></i>\n                    <br>ra\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-rebel fa-lg m-t-2"></i>\n                    <br>rebel\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-reddit fa-lg m-t-2"></i>\n                    <br>reddit\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-reddit-alien fa-lg m-t-2"></i>\n                    <br>reddit-alien\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-reddit-square fa-lg m-t-2"></i>\n                    <br>reddit-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-renren fa-lg m-t-2"></i>\n                    <br>renren\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-safari fa-lg m-t-2"></i>\n                    <br>safari\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-scribd fa-lg m-t-2"></i>\n                    <br>scribd\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-sellsy fa-lg m-t-2"></i>\n                    <br>sellsy\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-share-alt fa-lg m-t-2"></i>\n                    <br>share-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-share-alt-square fa-lg m-t-2"></i>\n                    <br>share-alt-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-shirtsinbulk fa-lg m-t-2"></i>\n                    <br>shirtsinbulk\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-simplybuilt fa-lg m-t-2"></i>\n                    <br>simplybuilt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-skyatlas fa-lg m-t-2"></i>\n                    <br>skyatlas\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-skype fa-lg m-t-2"></i>\n                    <br>skype\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-slack fa-lg m-t-2"></i>\n                    <br>slack\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-slideshare fa-lg m-t-2"></i>\n                    <br>slideshare\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-soundcloud fa-lg m-t-2"></i>\n                    <br>soundcloud\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-spotify fa-lg m-t-2"></i>\n                    <br>spotify\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-stack-exchange fa-lg m-t-2"></i>\n                    <br>stack-exchange\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-stack-overflow fa-lg m-t-2"></i>\n                    <br>stack-overflow\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-steam fa-lg m-t-2"></i>\n                    <br>steam\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-steam-square fa-lg m-t-2"></i>\n                    <br>steam-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-stumbleupon fa-lg m-t-2"></i>\n                    <br>stumbleupon\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-stumbleupon-circle fa-lg m-t-2"></i>\n                    <br>stumbleupon-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tencent-weibo fa-lg m-t-2"></i>\n                    <br>tencent-weibo\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-trello fa-lg m-t-2"></i>\n                    <br>trello\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tripadvisor fa-lg m-t-2"></i>\n                    <br>tripadvisor\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tumblr fa-lg m-t-2"></i>\n                    <br>tumblr\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-tumblr-square fa-lg m-t-2"></i>\n                    <br>tumblr-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-twitch fa-lg m-t-2"></i>\n                    <br>twitch\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-twitter fa-lg m-t-2"></i>\n                    <br>twitter\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-twitter-square fa-lg m-t-2"></i>\n                    <br>twitter-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-usb fa-lg m-t-2"></i>\n                    <br>usb\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-viacoin fa-lg m-t-2"></i>\n                    <br>viacoin\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-vimeo fa-lg m-t-2"></i>\n                    <br>vimeo\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-vimeo-square fa-lg m-t-2"></i>\n                    <br>vimeo-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-vine fa-lg m-t-2"></i>\n                    <br>vine\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-vk fa-lg m-t-2"></i>\n                    <br>vk\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-wechat fa-lg m-t-2"></i>\n                    <br>wechat\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-weibo fa-lg m-t-2"></i>\n                    <br>weibo\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-weixin fa-lg m-t-2"></i>\n                    <br>weixin\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-whatsapp fa-lg m-t-2"></i>\n                    <br>whatsapp\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-wikipedia-w fa-lg m-t-2"></i>\n                    <br>wikipedia-w\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-windows fa-lg m-t-2"></i>\n                    <br>windows\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-wordpress fa-lg m-t-2"></i>\n                    <br>wordpress\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-xing fa-lg m-t-2"></i>\n                    <br>xing\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-xing-square fa-lg m-t-2"></i>\n                    <br>xing-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-y-combinator fa-lg m-t-2"></i>\n                    <br>y-combinator\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-y-combinator-square fa-lg m-t-2"></i>\n                    <br>y-combinator-square\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-yahoo fa-lg m-t-2"></i>\n                    <br>yahoo\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-yc fa-lg m-t-2"></i>\n                    <br>yc\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-yc-square fa-lg m-t-2"></i>\n                    <br>yc-square\n                    <span class="text-muted">(alias)</span>\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-yelp fa-lg m-t-2"></i>\n                    <br>yelp\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-youtube fa-lg m-t-2"></i>\n                    <br>youtube\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-youtube-play fa-lg m-t-2"></i>\n                    <br>youtube-play\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-youtube-square fa-lg m-t-2"></i>\n                    <br>youtube-square\n                </div>\n            </div>\n            <div class="alert alert-success m-t-2">\n                <ul class="margin-bottom-none padding-left-lg">\n                    <li>All brand icons are trademarks of their respective owners.</li>\n                    <li>The use of these trademarks does not indicate endorsement of the trademark holder by Font Awesome, nor vice versa.</li>\n                    <li>Brand icons should only be used to represent the company or product to which they refer.</li>\n                </ul>\n            </div>\n        </div>\n    </div>\n    <div class="card" id="medical">\n        <div class="card-header">Medical Icons</div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-ambulance fa-lg m-t-2"></i>\n                    <br>ambulance\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-h-square fa-lg m-t-2"></i>\n                    <br>h-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-heart fa-lg m-t-2"></i>\n                    <br>heart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-heart-o fa-lg m-t-2"></i>\n                    <br>heart-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-heartbeat fa-lg m-t-2"></i>\n                    <br>heartbeat\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-hospital-o fa-lg m-t-2"></i>\n                    <br>hospital-o\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-medkit fa-lg m-t-2"></i>\n                    <br>medkit\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-plus-square fa-lg m-t-2"></i>\n                    <br>plus-square\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-stethoscope fa-lg m-t-2"></i>\n                    <br>stethoscope\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-user-md fa-lg m-t-2"></i>\n                    <br>user-md\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">\n                    <i class="fa fa-wheelchair fa-lg m-t-2"></i>\n                    <br>wheelchair\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n';
+},function(t,e){t.exports='<div class="animated fadeIn">\n    <div class="card card-default">\n        <div class="card-header">\n            <i class="fa fa-picture-o"></i> Simple Line Icons\n        </div>\n        <div class="card-block">\n            <div class="row text-xs-center">\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-user icons font-2xl d-block m-t-2"></i>icon-user\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-people icons font-2xl d-block m-t-2"></i>icon-people\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-user-female icons font-2xl d-block m-t-2"></i>icon-user-female\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-user-follow icons font-2xl d-block m-t-2"></i>icon-user-follow\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-user-following icons font-2xl d-block m-t-2"></i>icon-user-following\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-user-unfollow icons font-2xl d-block m-t-2"></i>icon-user-unfollow\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-login icons font-2xl d-block m-t-2"></i>icon-login\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-logout icons font-2xl d-block m-t-2"></i>icon-logout\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-emotsmile icons font-2xl d-block m-t-2"></i>icon-emotsmile\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-phone icons font-2xl d-block m-t-2"></i>icon-phone\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-call-end icons font-2xl d-block m-t-2"></i>icon-call-end\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-call-in icons font-2xl d-block m-t-2"></i>icon-call-in\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-call-out icons font-2xl d-block m-t-2"></i>icon-call-out\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-map icons font-2xl d-block m-t-2"></i>icon-map\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-location-pin icons font-2xl d-block m-t-2"></i>icon-location-pin\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-direction icons font-2xl d-block m-t-2"></i>icon-direction\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-directions icons font-2xl d-block m-t-2"></i>icon-directions\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-compass icons font-2xl d-block m-t-2"></i>icon-compass\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-layers icons font-2xl d-block m-t-2"></i>icon-layers\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-menu icons font-2xl d-block m-t-2"></i>icon-menu\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-list icons font-2xl d-block m-t-2"></i>icon-list\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-options-vertical icons font-2xl d-block m-t-2"></i>icon-options-vertical\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-options icons font-2xl d-block m-t-2"></i>icon-options\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-arrow-down icons font-2xl d-block m-t-2"></i>icon-arrow-down\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-arrow-left icons font-2xl d-block m-t-2"></i>icon-arrow-left\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-arrow-right icons font-2xl d-block m-t-2"></i>icon-arrow-right\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-arrow-up icons font-2xl d-block m-t-2"></i>icon-arrow-up\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-arrow-up-circle icons font-2xl d-block m-t-2"></i>icon-arrow-up-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-arrow-left-circle icons font-2xl d-block m-t-2"></i>icon-arrow-left-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-arrow-right-circle icons font-2xl d-block m-t-2"></i>icon-arrow-right-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-arrow-down-circle icons font-2xl d-block m-t-2"></i>icon-arrow-down-circle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-check icons font-2xl d-block m-t-2"></i>icon-check\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-clock icons font-2xl d-block m-t-2"></i>icon-clock\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-plus icons font-2xl d-block m-t-2"></i>icon-plus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-close icons font-2xl d-block m-t-2"></i>icon-close\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-trophy icons font-2xl d-block m-t-2"></i>icon-trophy\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-screen-smartphone icons font-2xl d-block m-t-2"></i>icon-screen-smartphone\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-screen-desktop icons font-2xl d-block m-t-2"></i>icon-screen-desktop\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-plane icons font-2xl d-block m-t-2"></i>icon-plane\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-notebook icons font-2xl d-block m-t-2"></i>icon-notebook\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-mustache icons font-2xl d-block m-t-2"></i>icon-mustache\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-mouse icons font-2xl d-block m-t-2"></i>icon-mouse\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-magnet icons font-2xl d-block m-t-2"></i>icon-magnet\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-energy icons font-2xl d-block m-t-2"></i>icon-energy\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-disc icons font-2xl d-block m-t-2"></i>icon-disc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-cursor icons font-2xl d-block m-t-2"></i>icon-cursor\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-cursor-move icons font-2xl d-block m-t-2"></i>icon-cursor-move\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-crop icons font-2xl d-block m-t-2"></i>icon-crop\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-chemistry icons font-2xl d-block m-t-2"></i>icon-chemistry\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-speedometer icons font-2xl d-block m-t-2"></i>icon-speedometer\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-shield icons font-2xl d-block m-t-2"></i>icon-shield\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-screen-tablet icons font-2xl d-block m-t-2"></i>icon-screen-tablet\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-magic-wand icons font-2xl d-block m-t-2"></i>icon-magic-wand\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-hourglass icons font-2xl d-block m-t-2"></i>icon-hourglass\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-graduation icons font-2xl d-block m-t-2"></i>icon-graduation\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-ghost icons font-2xl d-block m-t-2"></i>icon-ghost\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-game-controller icons font-2xl d-block m-t-2"></i>icon-game-controller\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-fire icons font-2xl d-block m-t-2"></i>icon-fire\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-eyeglass icons font-2xl d-block m-t-2"></i>icon-eyeglass\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-envelope-open icons font-2xl d-block m-t-2"></i>icon-envelope-open\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-envelope-letter icons font-2xl d-block m-t-2"></i>icon-envelope-letter\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-bell icons font-2xl d-block m-t-2"></i>icon-bell\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-badge icons font-2xl d-block m-t-2"></i>icon-badge\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-anchor icons font-2xl d-block m-t-2"></i>icon-anchor\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-wallet icons font-2xl d-block m-t-2"></i>icon-wallet\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-vector icons font-2xl d-block m-t-2"></i>icon-vector\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-speech icons font-2xl d-block m-t-2"></i>icon-speech\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-puzzle icons font-2xl d-block m-t-2"></i>icon-puzzle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-printer icons font-2xl d-block m-t-2"></i>icon-printer\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-present icons font-2xl d-block m-t-2"></i>icon-present\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-playlist icons font-2xl d-block m-t-2"></i>icon-playlist\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-pin icons font-2xl d-block m-t-2"></i>icon-pin\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-picture icons font-2xl d-block m-t-2"></i>icon-picture\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-handbag icons font-2xl d-block m-t-2"></i>icon-handbag\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-globe-alt icons font-2xl d-block m-t-2"></i>icon-globe-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-globe icons font-2xl d-block m-t-2"></i>icon-globe\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-folder-alt icons font-2xl d-block m-t-2"></i>icon-folder-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-folder icons font-2xl d-block m-t-2"></i>icon-folder\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-film icons font-2xl d-block m-t-2"></i>icon-film\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-feed icons font-2xl d-block m-t-2"></i>icon-feed\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-drop icons font-2xl d-block m-t-2"></i>icon-drop\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-drawer icons font-2xl d-block m-t-2"></i>icon-drawer\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-docs icons font-2xl d-block m-t-2"></i>icon-docs\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-doc icons font-2xl d-block m-t-2"></i>icon-doc\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-diamond icons font-2xl d-block m-t-2"></i>icon-diamond\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-cup icons font-2xl d-block m-t-2"></i>icon-cup\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-calculator icons font-2xl d-block m-t-2"></i>icon-calculator\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-bubbles icons font-2xl d-block m-t-2"></i>icon-bubbles\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-briefcase icons font-2xl d-block m-t-2"></i>icon-briefcase\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-book-open icons font-2xl d-block m-t-2"></i>icon-book-open\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-basket-loaded icons font-2xl d-block m-t-2"></i>icon-basket-loaded\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-basket icons font-2xl d-block m-t-2"></i>icon-basket\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-bag icons font-2xl d-block m-t-2"></i>icon-bag\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-action-undo icons font-2xl d-block m-t-2"></i>icon-action-undo\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-action-redo icons font-2xl d-block m-t-2"></i>icon-action-redo\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-wrench icons font-2xl d-block m-t-2"></i>icon-wrench\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-umbrella icons font-2xl d-block m-t-2"></i>icon-umbrella\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-trash icons font-2xl d-block m-t-2"></i>icon-trash\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-tag icons font-2xl d-block m-t-2"></i>icon-tag\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-support icons font-2xl d-block m-t-2"></i>icon-support\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-frame icons font-2xl d-block m-t-2"></i>icon-frame\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-size-fullscreen icons font-2xl d-block m-t-2"></i>icon-size-fullscreen\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-size-actual icons font-2xl d-block m-t-2"></i>icon-size-actual\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-shuffle icons font-2xl d-block m-t-2"></i>icon-shuffle\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-share-alt icons font-2xl d-block m-t-2"></i>icon-share-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-share icons font-2xl d-block m-t-2"></i>icon-share\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-rocket icons font-2xl d-block m-t-2"></i>icon-rocket\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-question icons font-2xl d-block m-t-2"></i>icon-question\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-pie-chart icons font-2xl d-block m-t-2"></i>icon-pie-chart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-pencil icons font-2xl d-block m-t-2"></i>icon-pencil\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-note icons font-2xl d-block m-t-2"></i>icon-note\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-loop icons font-2xl d-block m-t-2"></i>icon-loop\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-home icons font-2xl d-block m-t-2"></i>icon-home\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-grid icons font-2xl d-block m-t-2"></i>icon-grid\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-graph icons font-2xl d-block m-t-2"></i>icon-graph\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-microphone icons font-2xl d-block m-t-2"></i>icon-microphone\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-music-tone-alt icons font-2xl d-block m-t-2"></i>icon-music-tone-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-music-tone icons font-2xl d-block m-t-2"></i>icon-music-tone\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-earphones-alt icons font-2xl d-block m-t-2"></i>icon-earphones-alt\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-earphones icons font-2xl d-block m-t-2"></i>icon-earphones\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-equalizer icons font-2xl d-block m-t-2"></i>icon-equalizer\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-like icons font-2xl d-block m-t-2"></i>icon-like\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-dislike icons font-2xl d-block m-t-2"></i>icon-dislike\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-control-start icons font-2xl d-block m-t-2"></i>icon-control-start\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-control-rewind icons font-2xl d-block m-t-2"></i>icon-control-rewind\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-control-play icons font-2xl d-block m-t-2"></i>icon-control-play\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-control-pause icons font-2xl d-block m-t-2"></i>icon-control-pause\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-control-forward icons font-2xl d-block m-t-2"></i>icon-control-forward\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-control-end icons font-2xl d-block m-t-2"></i>icon-control-end\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-volume-1 icons font-2xl d-block m-t-2"></i>icon-volume-1\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-volume-2 icons font-2xl d-block m-t-2"></i>icon-volume-2\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-volume-off icons font-2xl d-block m-t-2"></i>icon-volume-off\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-calendar icons font-2xl d-block m-t-2"></i>icon-calendar\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-bulb icons font-2xl d-block m-t-2"></i>icon-bulb\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-chart icons font-2xl d-block m-t-2"></i>icon-chart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-ban icons font-2xl d-block m-t-2"></i>icon-ban\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-bubble icons font-2xl d-block m-t-2"></i>icon-bubble\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-camrecorder icons font-2xl d-block m-t-2"></i>icon-camrecorder\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-camera icons font-2xl d-block m-t-2"></i>icon-camera\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-cloud-download icons font-2xl d-block m-t-2"></i>icon-cloud-download\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-cloud-upload icons font-2xl d-block m-t-2"></i>icon-cloud-upload\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-envelope icons font-2xl d-block m-t-2"></i>icon-envelope\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-eye icons font-2xl d-block m-t-2"></i>icon-eye\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-flag icons font-2xl d-block m-t-2"></i>icon-flag\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-heart icons font-2xl d-block m-t-2"></i>icon-heart\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-info icons font-2xl d-block m-t-2"></i>icon-info\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-key icons font-2xl d-block m-t-2"></i>icon-key\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-link icons font-2xl d-block m-t-2"></i>icon-link\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-lock icons font-2xl d-block m-t-2"></i>icon-lock\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-lock-open icons font-2xl d-block m-t-2"></i>icon-lock-open\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-magnifier icons font-2xl d-block m-t-2"></i>icon-magnifier\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-magnifier-add icons font-2xl d-block m-t-2"></i>icon-magnifier-add\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-magnifier-remove icons font-2xl d-block m-t-2"></i>icon-magnifier-remove\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-paper-clip icons font-2xl d-block m-t-2"></i>icon-paper-clip\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-paper-plane icons font-2xl d-block m-t-2"></i>icon-paper-plane\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-power icons font-2xl d-block m-t-2"></i>icon-power\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-refresh icons font-2xl d-block m-t-2"></i>icon-refresh\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-reload icons font-2xl d-block m-t-2"></i>icon-reload\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-settings icons font-2xl d-block m-t-2"></i>icon-settings\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-star icons font-2xl d-block m-t-2"></i>icon-star\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-symbol-female icons font-2xl d-block m-t-2"></i>icon-symbol-female\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-symbol-male icons font-2xl d-block m-t-2"></i>icon-symbol-male\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-target icons font-2xl d-block m-t-2"></i>icon-target\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-credit-card icons font-2xl d-block m-t-2"></i>icon-credit-card\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-paypal icons font-2xl d-block m-t-2"></i>icon-paypal\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-tumblr icons font-2xl d-block m-t-2"></i>icon-social-tumblr\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-twitter icons font-2xl d-block m-t-2"></i>icon-social-twitter\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-facebook icons font-2xl d-block m-t-2"></i>icon-social-facebook\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-instagram icons font-2xl d-block m-t-2"></i>icon-social-instagram\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-linkedin icons font-2xl d-block m-t-2"></i>icon-social-linkedin\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-pinterest icons font-2xl d-block m-t-2"></i>icon-social-pinterest\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-github icons font-2xl d-block m-t-2"></i>icon-social-github\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-gplus icons font-2xl d-block m-t-2"></i>icon-social-gplus\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-reddit icons font-2xl d-block m-t-2"></i>icon-social-reddit\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-skype icons font-2xl d-block m-t-2"></i>icon-social-skype\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-dribbble icons font-2xl d-block m-t-2"></i>icon-social-dribbble\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-behance icons font-2xl d-block m-t-2"></i>icon-social-behance\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-foursqare icons font-2xl d-block m-t-2"></i>icon-social-foursqare\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-soundcloud icons font-2xl d-block m-t-2"></i>icon-social-soundcloud\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-spotify icons font-2xl d-block m-t-2"></i>icon-social-spotify\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-stumbleupon icons font-2xl d-block m-t-2"></i>icon-social-stumbleupon\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-youtube icons font-2xl d-block m-t-2"></i>icon-social-youtube\n                </div>\n                <div class="col-xs-6 col-sm-4 col-md-3">\n                    <i class="icon-social-dropbox icons font-2xl d-block m-t-2"></i>icon-social-dropbox\n                </div>\n            </div>\n            <!--/.row-->\n        </div>\n    </div>\n</div>\n';
+},function(t,e){t.exports='<header class="navbar">\n    <div class="container-fluid">\n        <button class="navbar-toggler hidden-lg-up" type="button" mobile-nav-toggle>&#9776;</button>\n        <a class="navbar-brand" href="#"></a>\n        <!-- remove:seed -->\n        <ul class="nav navbar-nav hidden-md-down">\n            <li class="nav-item">\n                <a class="nav-link navbar-toggler sidebar-toggle" href="#">&#9776;</a>\n            </li>\n            <li class="nav-item p-x-1">\n                <a class="nav-link" href="#">Dashboard</a>\n            </li>\n            <li class="nav-item p-x-1">\n                <a class="nav-link" href="#">Users</a>\n            </li>\n            <li class="nav-item p-x-1">\n                <a class="nav-link" href="#">Settings</a>\n            </li>\n        </ul>\n        <ul class="nav navbar-nav pull-right hidden-md-down">\n            <li class="nav-item">\n                <a class="nav-link" href="#"><i class="icon-bell"></i><span class="tag tag-pill tag-danger">5</span></a>\n            </li>\n            <li class="nav-item">\n                <a class="nav-link" href="#"><i class="icon-list"></i></a>\n            </li>\n            <li class="nav-item">\n                <a class="nav-link" href="#"><i class="icon-location-pin"></i></a>\n            </li>\n            <li class="nav-item dropdown" dropdown (onToggle)="toggled($event)">\n                <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false" dropdownToggle>\n                    <img src="assets/img/avatars/6.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    <span class="hidden-md-down">admin</span>\n                </a>\n                <div class="dropdown-menu dropdown-menu-right" dropdownMenu aria-labelledby="simple-dropdown">\n\n                    <div class="dropdown-header text-xs-center"><strong>Account</strong></div>\n\n                    <a class="dropdown-item" href="#"><i class="fa fa-bell-o"></i> Updates<span class="tag tag-info">42</span></a>\n                    <a class="dropdown-item" href="#"><i class="fa fa-envelope-o"></i> Messages<span class="tag tag-success">42</span></a>\n                    <a class="dropdown-item" href="#"><i class="fa fa-tasks"></i> Tasks<span class="tag tag-danger">42</span></a>\n                    <a class="dropdown-item" href="#"><i class="fa fa-comments"></i> Comment<span class="tag tag-warning">42</span></a>\n\n                    <div class="dropdown-header text-xs-center"><strong>Settings</strong></div>\n\n                    <a class="dropdown-item" href="#"><i class="fa fa-user"></i> Profile</a>\n                    <a class="dropdown-item" href="#"><i class="fa fa-wrench"></i> Setting</a>\n                    <a class="dropdown-item" href="#"><i class="fa fa-usd"></i> Payments<span class="tag tag-default">42</span></a>\n                    <a class="dropdown-item" href="#"><i class="fa fa-file"></i> Projects<span class="tag tag-primary">42</span></a>\n                    <div class="divider"></div>\n                    <a class="dropdown-item" href="#"><i class="fa fa-shield"></i> Lock account</a>\n                    <a class="dropdown-item" href="#"><i class="fa fa-lock"></i> Logout</a>\n                </div>\n            </li>\n            <li class="nav-item">\n                <a class="nav-link navbar-toggler aside-toggle" href="#">&#9776;</a>\n            </li>\n        </ul>\n        <!-- /remove:seed -->\n    </div>\n</header>\n\n<div class="sidebar">\n    <nav class="sidebar-nav">\n        <ul class="nav">\n            <li class="nav-item">\n                <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/dashboard\']"><i class="icon-speedometer"></i> Dashboard <span class="tag tag-info">NEW</span></a>\n            </li>\n            <!-- remove:seed -->\n            <li class="divider"></li>\n            <li class="nav-title">\n                UI Elements\n            </li>\n            <li class="nav-item nav-dropdown" routerLinkActive="open">\n                <a class="nav-link nav-dropdown-toggle" href="#"><i class="icon-puzzle"></i> Components</a>\n                <ul class="nav-dropdown-items">\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/components/buttons\']"><i class="icon-puzzle"></i> Buttons</a>\n                    </li>\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/components/social-buttons\']"><i class="icon-puzzle"></i> Social Buttons</a>\n                    </li>\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/components/cards\']"><i class="icon-puzzle"></i> Cards</a>\n                    </li>\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/components/forms\']"><i class="icon-puzzle"></i> Forms</a>\n                    </li>\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/components/switches\']"><i class="icon-puzzle"></i> Switches</a>\n                    </li>\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/components/tables\']"><i class="icon-puzzle"></i> Tables</a>\n                    </li>\n                </ul>\n            </li>\n            <li class="nav-item nav-dropdown" routerLinkActive="open">\n                <a class="nav-link nav-dropdown-toggle" href="#"><i class="icon-star"></i> Icons</a>\n                <ul class="nav-dropdown-items">\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/icons/font-awesome\']"><i class="icon-star"></i> Font Awesome</a>\n                    </li>\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/icons/simple-line-icons\']"><i class="icon-star"></i> Simple Line Icons</a>\n                    </li>\n                </ul>\n            </li>\n            <li class="nav-item">\n                <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/widgets\']"><i class="icon-calculator"></i> Widgets <span class="tag tag-info">NEW</span></a>\n            </li>\n            <li class="nav-item">\n                <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/charts\']"><i class="icon-pie-chart"></i> Charts</a>\n            </li>\n            <li class="divider"></li>\n            <li class="nav-title">\n                Extras\n            </li>\n            <li class="nav-item nav-dropdown">\n                <a class="nav-link nav-dropdown-toggle" href="#"><i class="icon-star"></i> Pages</a>\n                <ul class="nav-dropdown-items">\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/pages/login\']"><i class="icon-star"></i> Login</a>\n                    </li>\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/pages/register\']"><i class="icon-star"></i> Register</a>\n                    </li>\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/pages/404\']"><i class="icon-star"></i> Error 404</a>\n                    </li>\n                    <li class="nav-item">\n                        <a class="nav-link" routerLinkActive="active" [routerLink]="[\'/pages/500\']"><i class="icon-star"></i> Error 500</a>\n                    </li>\n                </ul>\n            </li>\n            <!-- /remove:seed -->\n        </ul>\n    </nav>\n</div>\n\n<!-- Main content -->\n<main class="main">\n\n    <!-- Breadcrumb -->\n    <ol class="breadcrumb">\n        <breadcrumbs></breadcrumbs>\n        <!-- remove:seed -->\n        <!-- Breadcrumb Menu-->\n        <li class="breadcrumb-menu">\n            <div class="btn-group" role="group" aria-label="Button group with nested dropdown">\n                <a class="btn btn-secondary" href="#"><i class="icon-speech"></i></a>\n                <a class="btn btn-secondary" [routerLink]="[\'/dashboard\']"><i class="icon-graph"></i> &nbsp;Dashboard</a>\n                <a class="btn btn-secondary" href="#"><i class="icon-settings"></i> &nbsp;Settings</a>\n            </div>\n        </li>\n        <!-- /remove:seed -->\n    </ol>\n\n    <div class="container-fluid">\n        <router-outlet></router-outlet>\n    </div><!-- /.conainer-fluid -->\n</main>\n\n<aside class="aside-menu">\n    <tabset>\n        <tab>\n            <template tabHeading><i class="icon-list"></i></template>\n            <div class="callout m-a-0 p-y-h text-muted text-xs-center bg-faded text-uppercase">\n                <small><b>Today</b></small>\n            </div>\n            <hr class="transparent m-x-1 m-y-0">\n            <div class="callout callout-warning m-a-0 p-y-1">\n                <div class="avatar pull-xs-right">\n                    <img src="assets/img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                </div>\n                <div>Meeting with <strong>Lucas</strong></div>\n                <small class="text-muted m-r-1"><i class="icon-calendar"></i>&nbsp; 1 - 3pm</small>\n                <small class="text-muted"><i class="icon-location-pin"></i>&nbsp; Palo Alto, CA </small>\n            </div>\n            <hr class="m-x-1 m-y-0">\n            <div class="callout callout-info m-a-0 p-y-1">\n                <div class="avatar pull-xs-right">\n                    <img src="assets/img/avatars/4.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                </div>\n                <div>Skype with <strong>Megan</strong></div>\n                <small class="text-muted m-r-1"><i class="icon-calendar"></i>&nbsp; 4 - 5pm</small>\n                <small class="text-muted"><i class="icon-social-skype"></i>&nbsp; On-line </small>\n            </div>\n            <hr class="transparent m-x-1 m-y-0">\n            <div class="callout m-a-0 p-y-h text-muted text-xs-center bg-faded text-uppercase">\n                <small><b>Tomorrow</b></small>\n            </div>\n            <hr class="transparent m-x-1 m-y-0">\n            <div class="callout callout-danger m-a-0 p-y-1">\n                <div>New UI Project - <strong>deadline</strong></div>\n                <small class="text-muted m-r-1"><i class="icon-calendar"></i>&nbsp; 10 - 11pm</small>\n                <small class="text-muted"><i class="icon-home"></i>&nbsp; creativeLabs HQ </small>\n                <div class="avatars-stack m-t-h">\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/2.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/3.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/4.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/5.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/6.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                </div>\n            </div>\n            <hr class="m-x-1 m-y-0">\n            <div class="callout callout-success m-a-0 p-y-1">\n                <div><strong>#10 Startups.Garden</strong> Meetup</div>\n                <small class="text-muted m-r-1"><i class="icon-calendar"></i>&nbsp; 1 - 3pm</small>\n                <small class="text-muted"><i class="icon-location-pin"></i>&nbsp; Palo Alto, CA </small>\n            </div>\n            <hr class="m-x-1 m-y-0">\n            <div class="callout callout-primary m-a-0 p-y-1">\n                <div><strong>Team meeting</strong></div>\n                <small class="text-muted m-r-1"><i class="icon-calendar"></i>&nbsp; 4 - 6pm</small>\n                <small class="text-muted"><i class="icon-home"></i>&nbsp; creativeLabs HQ </small>\n                <div class="avatars-stack m-t-h">\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/2.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/3.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/4.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/5.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/6.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                    <div class="avatar avatar-xs">\n                        <img src="assets/img/avatars/8.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                    </div>\n                </div>\n            </div>\n            <hr class="m-x-1 m-y-0">\n        </tab>\n        <tab>\n            <template tabHeading><i class="icon-speech"></i></template>\n            <div class="p-a-1">\n                <div class="message">\n                    <div class="p-y-1 p-b-3 m-r-1 pull-left">\n                        <div class="avatar">\n                            <img src="assets/img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                            <span class="avatar-status tag-success"></span>\n                        </div>\n                    </div>\n                    <div>\n                        <small class="text-muted">Lukasz Holeczek</small>\n                        <small class="text-muted pull-right m-t-q">1:52 PM</small>\n                    </div>\n                    <div class="text-truncate font-weight-bold">Lorem ipsum dolor sit amet</div>\n                    <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt...</small>\n                </div>\n                <hr>\n                <div class="message">\n                    <div class="p-y-1 p-b-3 m-r-1 pull-left">\n                        <div class="avatar">\n                            <img src="assets/img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                            <span class="avatar-status tag-success"></span>\n                        </div>\n                    </div>\n                    <div>\n                        <small class="text-muted">Lukasz Holeczek</small>\n                        <small class="text-muted pull-right m-t-q">1:52 PM</small>\n                    </div>\n                    <div class="text-truncate font-weight-bold">Lorem ipsum dolor sit amet</div>\n                    <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt...</small>\n                </div>\n                <hr>\n                <div class="message">\n                    <div class="p-y-1 p-b-3 m-r-1 pull-left">\n                        <div class="avatar">\n                            <img src="assets/img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                            <span class="avatar-status tag-success"></span>\n                        </div>\n                    </div>\n                    <div>\n                        <small class="text-muted">Lukasz Holeczek</small>\n                        <small class="text-muted pull-right m-t-q">1:52 PM</small>\n                    </div>\n                    <div class="text-truncate font-weight-bold">Lorem ipsum dolor sit amet</div>\n                    <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt...</small>\n                </div>\n                <hr>\n                <div class="message">\n                    <div class="p-y-1 p-b-3 m-r-1 pull-left">\n                        <div class="avatar">\n                            <img src="assets/img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                            <span class="avatar-status tag-success"></span>\n                        </div>\n                    </div>\n                    <div>\n                        <small class="text-muted">Lukasz Holeczek</small>\n                        <small class="text-muted pull-right m-t-q">1:52 PM</small>\n                    </div>\n                    <div class="text-truncate font-weight-bold">Lorem ipsum dolor sit amet</div>\n                    <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt...</small>\n                </div>\n                <hr>\n                <div class="message">\n                    <div class="p-y-1 p-b-3 m-r-1 pull-left">\n                        <div class="avatar">\n                            <img src="assets/img/avatars/7.jpg" class="img-avatar" alt="admin@bootstrapmaster.com">\n                            <span class="avatar-status tag-success"></span>\n                        </div>\n                    </div>\n                    <div>\n                        <small class="text-muted">Lukasz Holeczek</small>\n                        <small class="text-muted pull-right m-t-q">1:52 PM</small>\n                    </div>\n                    <div class="text-truncate font-weight-bold">Lorem ipsum dolor sit amet</div>\n                    <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt...</small>\n                </div>\n            </div>\n        </tab>\n        <tab>\n            <template tabHeading><i class="icon-settings"></i></template>\n            <div class="p-a-1">\n                <h6>Settings</h6>\n\n                <div class="aside-options">\n                    <div class="clearfix m-t-2">\n                        <small><b>Option 1</b></small>\n                        <label class="switch switch-text switch-pill switch-success switch-sm pull-right">\n                            <input type="checkbox" class="switch-input" checked>\n                            <span class="switch-label" data-on="On" data-off="Off"></span>\n                            <span class="switch-handle"></span>\n                        </label>\n                    </div>\n                    <div>\n                        <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</small>\n                    </div>\n                </div>\n\n                <div class="aside-options">\n                    <div class="clearfix m-t-1">\n                        <small><b>Option 2</b></small>\n                        <label class="switch switch-text switch-pill switch-success switch-sm pull-right">\n                            <input type="checkbox" class="switch-input">\n                            <span class="switch-label" data-on="On" data-off="Off"></span>\n                            <span class="switch-handle"></span>\n                        </label>\n                    </div>\n                    <div>\n                        <small class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</small>\n                    </div>\n                </div>\n\n                <div class="aside-options">\n                    <div class="clearfix m-t-1">\n                        <small><b>Option 3</b></small>\n                        <label class="switch switch-text switch-pill switch-success switch-sm pull-right">\n                            <input type="checkbox" class="switch-input">\n                            <span class="switch-label" data-on="On" data-off="Off"></span>\n                            <span class="switch-handle"></span>\n                        </label>\n                    </div>\n                </div>\n\n                <div class="aside-options">\n                    <div class="clearfix m-t-1">\n                        <small><b>Option 4</b></small>\n                        <label class="switch switch-text switch-pill switch-success switch-sm pull-right">\n                            <input type="checkbox" class="switch-input" checked>\n                            <span class="switch-label" data-on="On" data-off="Off"></span>\n                            <span class="switch-handle"></span>\n                        </label>\n                    </div>\n                </div>\n\n                <hr>\n                <h6>System Utilization</h6>\n\n                <div class="text-uppercase m-b-q m-t-2"><small><b>CPU Usage</b></small></div>\n                <progress class="progress progress-xs progress-info m-a-0" value="25" max="100">25%</progress>\n                <small class="text-muted">348 Processes. 1/4 Cores.</small>\n\n                <div class="text-uppercase m-b-q m-t-h"><small><b>Memory Usage</b></small></div>\n                <progress class="progress progress-xs progress-warning m-a-0" value="70" max="100">70%</progress>\n                <small class="text-muted">11444GB/16384MB</small>\n\n                <div class="text-uppercase m-b-q m-t-h"><small><b>SSD 1 Usage</b></small></div>\n                <progress class="progress progress-xs progress-danger m-a-0" value="95" max="100">95%</progress>\n                <small class="text-muted">243GB/256GB</small>\n\n                <div class="text-uppercase m-b-q m-t-h"><small><b>SSD 2 Usage</b></small></div>\n                <progress class="progress progress-xs progress-success m-a-0" value="10" max="100">10%</progress>\n                <small class="text-muted">25GB/256GB</small>\n            </div>\n        </tab>\n    </tabset>\n</aside>\n\n<footer class="footer">\n    <span class="text-left">\n        <a href="http://coreui.io">CoreUI</a> &copy; 2016 creativeLabs.\n    </span>\n    <span class="pull-right">\n        Powered by <a href="http://coreui.io">CoreUI</a>\n    </span>\n</footer>\n'},function(t,e){t.exports='<div class="container">\n    <div class="row">\n        <div vamiddle class="col-md-5 m-x-auto pull-xs-none">\n            <div class="clearfix">\n                <h1 class="pull-left display-3 m-r-2">404</h1>\n                <h4 class="p-t-1">Oops! You\'re lost.</h4>\n                <p class="text-muted">The page you are looking for was not found.</p>\n            </div>\n            <div class="input-prepend input-group">\n                <span class="input-group-addon"><i class="fa fa-search"></i></span>\n                <input id="prependedInput" class="form-control" size="16" type="text" placeholder="What are you looking for?">\n                <span class="input-group-btn">\n                    <button class="btn btn-info" type="button">Search</button>\n                </span>\n            </div>\n        </div>\n    </div>\n</div>\n'},function(t,e){t.exports='<div class="container">\n    <div class="row">\n        <div vamiddle class="col-md-6 m-x-auto pull-xs-none">\n            <div class="clearfix">\n                <h1 class="pull-left display-3 m-r-2">500</h1>\n                <h4 class="p-t-1">Houston, we have a problem!</h4>\n                <p class="text-muted">The page you are looking for is temporarily unavailable.</p>\n            </div>\n            <div class="input-prepend input-group">\n                <span class="input-group-addon"><i class="fa fa-search"></i></span>\n                <input id="prependedInput" class="form-control" size="16" type="text" placeholder="What are you looking for?">\n                <span class="input-group-btn">\n                    <button class="btn btn-info" type="button">Search</button>\n                </span>\n            </div>\n        </div>\n    </div>\n</div>\n'},function(t,e){t.exports='<div class="container">\n    <div class="row">\n        <div vamiddle class="col-md-8 m-x-auto pull-xs-none">\n            <div class="card-group">\n                <div class="card p-a-2">\n                    <div class="card-block">\n                        <h1>Login</h1>\n                        <p class="text-muted">Sign In to your account</p>\n                        <div class="input-group m-b-1">\n                            <span class="input-group-addon"><i class="icon-user"></i></span>\n                            <input type="text" class="form-control" placeholder="Username">\n                        </div>\n                        <div class="input-group m-b-2">\n                            <span class="input-group-addon"><i class="icon-lock"></i></span>\n                            <input type="password" class="form-control" placeholder="Password">\n                        </div>\n                        <div class="row">\n                            <div class="col-xs-6">\n                                <button type="button" class="btn btn-primary p-x-2">Login</button>\n                            </div>\n                            <div class="col-xs-6 text-xs-right">\n                                <button type="button" class="btn btn-link p-x-0">Forgot password?</button>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class="card card-inverse card-primary p-y-3 hidden-md-down" style="width:44%">\n                    <div class="card-block text-xs-center">\n                        <div>\n                            <h2>Sign up</h2>\n                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>\n                            <button type="button" class="btn btn-primary active m-t-1">Register Now!</button>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n'},function(t,e){t.exports='<div class="container">\n    <div class="row">\n        <div vamiddle class="col-md-5 m-x-auto pull-xs-none">\n            <div class="card">\n                <div class="card-block p-a-2">\n                    <h1>Register</h1>\n                    <p class="text-muted">Create your account</p>\n                    <div class="input-group m-b-1">\n                        <span class="input-group-addon"><i class="icon-user"></i></span>\n                        <input type="text" class="form-control" placeholder="Username">\n                    </div>\n                    <div class="input-group m-b-1">\n                        <span class="input-group-addon">@</span>\n                        <input type="text" class="form-control" placeholder="Email">\n                    </div>\n                    <div class="input-group m-b-1">\n                        <span class="input-group-addon"><i class="icon-lock"></i></span>\n                        <input type="password" class="form-control" placeholder="Password">\n                    </div>\n                    <div class="input-group m-b-2">\n                        <span class="input-group-addon"><i class="icon-lock"></i></span>\n                        <input type="password" class="form-control" placeholder="Repeat password">\n                    </div>\n                    <button type="button" class="btn btn-block btn-success">Create Account</button>\n                </div>\n                <div class="card-footer p-a-2">\n                    <div class="row">\n                        <div class="col-xs-6">\n                            <button class="btn btn-block btn-facebook" type="button">\n                                <span>facebook</span>\n                            </button>\n                        </div>\n                        <div class="col-xs-6">\n                            <button class="btn btn-block btn-twitter" type="button">\n                                <span>twitter</span>\n                            </button>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n'},function(t,e){t.exports='<div class="animated fadeIn">\n    <div class="row">\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-primary">\n                <div class="card-block p-b-0">\n                    <div class="btn-group pull-right" dropdown>\n                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" dropdownToggle>\n                            <i class="icon-settings"></i>\n                        </button>\n                        <div class="dropdown-menu dropdown-menu-right" dropdownMenu>\n                            <a class="dropdown-item" href="#">Action</a>\n                            <a class="dropdown-item" href="#">Another action</a>\n                            <a class="dropdown-item" href="#">Something else here</a>\n                        </div>\n                    </div>\n                    <h4 class="m-b-0">9.823</h4>\n                    <p>Members online</p>\n                </div>\n                <div class="chart-wrapper p-x-1">\n                    <base-chart class="chart"\n                                [datasets]="lineChart1Data"\n                                [labels]="lineChart1Labels"\n                                [options]="lineChart1Options"\n                                [colors]="lineChart1Colours"\n                                [legend]="lineChart1Legend"\n                                [chartType]="lineChart1Type"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:70px;"></base-chart>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-info">\n                <div class="card-block p-b-0">\n                    <button type="button" class="btn btn-transparent p-a-0 pull-right">\n                        <i class="icon-location-pin"></i>\n                    </button>\n                    <h4 class="m-b-0">9.823</h4>\n                    <p>Members online</p>\n                </div>\n                <div class="chart-wrapper p-x-1" style="height:70px;">\n                    <base-chart class="chart"\n                                [datasets]="lineChart2Data"\n                                [labels]="lineChart2Labels"\n                                [options]="lineChart2Options"\n                                [colors]="lineChart2Colours"\n                                [legend]="lineChart2Legend"\n                                [chartType]="lineChart2Type"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:70px;"></base-chart>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-warning">\n                <div class="card-block p-b-0">\n                    <div class="btn-group pull-right">\n                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n                            <i class="icon-settings"></i>\n                        </button>\n                        <div class="dropdown-menu dropdown-menu-right">\n                            <a class="dropdown-item" href="#">Action</a>\n                            <a class="dropdown-item" href="#">Another action</a>\n                            <a class="dropdown-item" href="#">Something else here</a>\n                        </div>\n                    </div>\n                    <h4 class="m-b-0">9.823</h4>\n                    <p>Members online</p>\n                </div>\n                <div class="chart-wrapper" style="height:70px;">\n                    <base-chart class="chart"\n                                [datasets]="lineChart3Data"\n                                [labels]="lineChart3Labels"\n                                [options]="lineChart3Options"\n                                [colors]="lineChart3Colours"\n                                [legend]="lineChart3Legend"\n                                [chartType]="lineChart3Type"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:70px;"></base-chart>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-danger">\n                <div class="card-block p-b-0">\n                    <div class="btn-group pull-right" dropdown>\n                        <button type="button" class="btn btn-transparent dropdown-toggle p-a-0" dropdownToggle>\n                            <i class="icon-settings"></i>\n                        </button>\n                        <div class="dropdown-menu dropdown-menu-right" dropdownMenu>\n                            <a class="dropdown-item" href="#">Action</a>\n                            <a class="dropdown-item" href="#">Another action</a>\n                            <a class="dropdown-item" href="#">Something else here</a>\n                        </div>\n                    </div>\n                    <h4 class="m-b-0">9.823</h4>\n                    <p>Members online</p>\n                </div>\n                <div class="chart-wrapper p-x-1" style="height:70px;">\n                    <base-chart class="chart"\n                                [datasets]="barChart1Data"\n                                [labels]="barChart1Labels"\n                                [options]="barChart1Options"\n                                [colors]="barChart1Colours"\n                                [legend]="barChart1Legend"\n                                [chartType]="barChart1Type"\n                                (chartHover)="chartHovered($event)"\n                                (chartClick)="chartClicked($event)" style="height:70px;"></base-chart>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n    <div class="row">\n        <div class="col-sm-6 col-lg-3">\n            <div class="card">\n                <div class="card-header card-header-inverse card-header-primary">\n                    <div class="font-weight-bold">\n                        <span>SALE</span>\n                        <span class="pull-right">$1.890,65</span>\n                    </div>\n                    <div>\n                        <span>\n                            <small>Today 6:43 AM</small>\n                        </span>\n                        <span class="pull-right">\n                            <small>+432,50 (15,78%)</small>\n                        </span>\n                    </div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="lineChart4Data"\n                                    [labels]="lineChart4Labels"\n                                    [options]="lineChart4Options"\n                                    [colors]="lineChart4Colours"\n                                    [legend]="lineChart4Legend"\n                                    [chartType]="lineChart4Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:38px;"></base-chart>\n                    </div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="barChart2Data"\n                                    [labels]="barChart2Labels"\n                                    [options]="barChart2Options"\n                                    [colors]="barChart2Colours"\n                                    [legend]="barChart2Legend"\n                                    [chartType]="barChart2Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:38px;"></base-chart>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-lg-3">\n            <div class="card">\n                <div class="card-header card-header-inverse card-header-danger">\n                    <div class="font-weight-bold">\n                        <span>SALE</span>\n                        <span class="pull-right">$1.890,65</span>\n                    </div>\n                    <div>\n                        <span>\n                            <small>Today 6:43 AM</small>\n                        </span>\n                        <span class="pull-right">\n                            <small>+432,50 (15,78%)</small>\n                        </span>\n                    </div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="lineChart4Data"\n                                    [labels]="lineChart4Labels"\n                                    [options]="lineChart4Options"\n                                    [colors]="lineChart4Colours"\n                                    [legend]="lineChart4Legend"\n                                    [chartType]="lineChart4Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:38px;"></base-chart>\n                    </div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="barChart2Data"\n                                    [labels]="barChart2Labels"\n                                    [options]="barChart2Options"\n                                    [colors]="barChart2Colours"\n                                    [legend]="barChart2Legend"\n                                    [chartType]="barChart2Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:38px;"></base-chart>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-lg-3">\n            <div class="card">\n                <div class="card-header card-header-inverse card-header-success">\n                    <div class="font-weight-bold">\n                        <span>SALE</span>\n                        <span class="pull-right">$1.890,65</span>\n                    </div>\n                    <div>\n                        <span>\n                            <small>Today 6:43 AM</small>\n                        </span>\n                        <span class="pull-right">\n                            <small>+432,50 (15,78%)</small>\n                        </span>\n                    </div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="lineChart4Data"\n                                    [labels]="lineChart4Labels"\n                                    [options]="lineChart4Options"\n                                    [colors]="lineChart4Colours"\n                                    [legend]="lineChart4Legend"\n                                    [chartType]="lineChart4Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:38px;"></base-chart>\n                    </div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="barChart2Data"\n                                    [labels]="barChart2Labels"\n                                    [options]="barChart2Options"\n                                    [colors]="barChart2Colours"\n                                    [legend]="barChart2Legend"\n                                    [chartType]="barChart2Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:38px;"></base-chart>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-lg-3">\n            <div class="card">\n                <div class="card-header card-header-inverse card-header-warning">\n                    <div class="font-weight-bold">\n                        <span>SALE</span>\n                        <span class="pull-right">$1.890,65</span>\n                    </div>\n                    <div>\n                        <span>\n                            <small>Today 6:43 AM</small>\n                        </span>\n                        <span class="pull-right">\n                            <small>+432,50 (15,78%)</small>\n                        </span>\n                    </div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="lineChart4Data"\n                                    [labels]="lineChart4Labels"\n                                    [options]="lineChart4Options"\n                                    [colors]="lineChart4Colours"\n                                    [legend]="lineChart4Legend"\n                                    [chartType]="lineChart4Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:38px;"></base-chart>\n                    </div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="barChart2Data"\n                                    [labels]="barChart2Labels"\n                                    [options]="barChart2Options"\n                                    [colors]="barChart2Colours"\n                                    [legend]="barChart2Legend"\n                                    [chartType]="barChart2Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:38px;"></base-chart>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="row">\n        <div class="col-sm-6 col-lg-3">\n            <div class="card">\n                <div class="card-block">\n                    <div class="h4 m-a-0">89.9%</div>\n                    <div class="p-b-1">Lorem ipsum...</div>\n                    <progress class="progress progress-xs progress-success" value="25" max="100">25%</progress>\n                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card">\n                <div class="card-block">\n                    <div class="h4 m-a-0">12.124</div>\n                    <div class="p-b-1">Lorem ipsum...</div>\n                    <progress class="progress progress-xs progress-info" value="25" max="100">25%</progress>\n                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card">\n                <div class="card-block">\n                    <div class="h4 m-a-0">$98.111,00</div>\n                    <div class="p-b-1">Lorem ipsum...</div>\n                    <progress class="progress progress-xs progress-warning" value="25" max="100">25%</progress>\n                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card">\n                <div class="card-block">\n                    <div class="h4 m-a-0">2 TB</div>\n                    <div class="p-b-1">Lorem ipsum...</div>\n                    <progress class="progress progress-xs progress-danger" value="25" max="100">25%</progress>\n                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n    <div class="row">\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-primary">\n                <div class="card-block">\n                    <div class="h4 m-a-0">89.9%</div>\n                    <div class="p-b-1">Lorem ipsum...</div>\n                    <progress class="progress progress-xs progress-success" value="25" max="100">25%</progress>\n                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-warning">\n                <div class="card-block">\n                    <div class="h4 m-a-0">12.124</div>\n                    <div class="p-b-1">Lorem ipsum...</div>\n                    <progress class="progress progress-xs progress-info" value="25" max="100">25%</progress>\n                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-danger">\n                <div class="card-block">\n                    <div class="h4 m-a-0">$98.111,00</div>\n                    <div class="p-b-1">Lorem ipsum...</div>\n                    <progress class="progress progress-xs progress-warning" value="25" max="100">25%</progress>\n                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-sm-6 col-lg-3">\n            <div class="card card-inverse card-info">\n                <div class="card-block">\n                    <div class="h4 m-a-0">2 TB</div>\n                    <div class="p-b-1">Lorem ipsum...</div>\n                    <progress class="progress progress-xs progress-danger" value="25" max="100">25%</progress>\n                    <small class="text-muted">Lorem ipsum dolor sit amet enim.</small>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n    <div class="row">\n        <div class="col-md-2 col-sm-4">\n            <div class="card">\n                <div class="card-block text-xs-center">\n                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>\n                    <div class="h2 p-y-1">1,123</div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="barChart3Data"\n                                    [labels]="barChart3Labels"\n                                    [options]="barChart3Options"\n                                    [colors]="barChart3Primary"\n                                    [legend]="barChart3Legend"\n                                    [chartType]="barChart3Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:40px;width:80px;display:inline-block !important;"></base-chart>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-2 col-sm-4">\n            <div class="card">\n                <div class="card-block text-xs-center">\n                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>\n                    <div class="h2 p-y-1">1,123</div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="barChart3Data"\n                                    [labels]="barChart3Labels"\n                                    [options]="barChart3Options"\n                                    [colors]="barChart3Danger"\n                                    [legend]="barChart3Legend"\n                                    [chartType]="barChart3Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:40px;width:80px;display:inline-block !important;"></base-chart>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-2 col-sm-4">\n            <div class="card">\n                <div class="card-block text-xs-center">\n                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>\n                    <div class="h2 p-y-1">1,123</div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="barChart3Data"\n                                    [labels]="barChart3Labels"\n                                    [options]="barChart3Options"\n                                    [colors]="barChart3Success"\n                                    [legend]="barChart3Legend"\n                                    [chartType]="barChart3Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:40px;width:80px;display:inline-block !important;"></base-chart>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-2 col-sm-4">\n            <div class="card">\n                <div class="card-block text-xs-center">\n                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>\n                    <div class="h2 p-y-1">1,123</div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="lineChart5Data"\n                                    [labels]="lineChart5Labels"\n                                    [options]="lineChart5Options"\n                                    [colors]="lineChart5Info"\n                                    [legend]="lineChart5Legend"\n                                    [chartType]="lineChart5Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:40px;width:100px;display:inline-block !important;"></base-chart>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-2 col-sm-4">\n            <div class="card">\n                <div class="card-block text-xs-center">\n                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>\n                    <div class="h2 p-y-1">1,123</div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="lineChart5Data"\n                                    [labels]="lineChart5Labels"\n                                    [options]="lineChart5Options"\n                                    [colors]="lineChart5Success"\n                                    [legend]="lineChart5Legend"\n                                    [chartType]="lineChart5Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:40px;width:100px;display:inline-block !important;"></base-chart>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n        <div class="col-md-2 col-sm-4">\n            <div class="card">\n                <div class="card-block text-xs-center">\n                    <div class="text-muted small text-uppercase font-weight-bold">Title</div>\n                    <div class="h2 p-y-1">1,123</div>\n                    <div class="chart-wrapper">\n                        <base-chart class="chart"\n                                    [datasets]="lineChart5Data"\n                                    [labels]="lineChart5Labels"\n                                    [options]="lineChart5Options"\n                                    [colors]="lineChart5Warning"\n                                    [legend]="lineChart5Legend"\n                                    [chartType]="lineChart5Type"\n                                    (chartHover)="chartHovered($event)"\n                                    (chartClick)="chartClicked($event)" style="height:40px;width:100px;display:inline-block !important;"></base-chart>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n    <div class="row">\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-1 clearfix">\n                    <i class="fa fa-cogs bg-primary p-a-1 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-primary m-b-0 m-t-h">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-1 clearfix">\n                    <i class="fa fa-laptop bg-info p-a-1 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-info m-b-0 m-t-h">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-1 clearfix">\n                    <i class="fa fa-moon-o bg-warning p-a-1 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-warning m-b-0 m-t-h">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-1 clearfix">\n                    <i class="fa fa-bell bg-danger p-a-1 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-danger m-b-0 m-t-h">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-1 clearfix">\n                    <i class="fa fa-cogs bg-primary p-a-1 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-primary m-b-0 m-t-h">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n                <div class="card-footer p-x-1 p-y-h">\n                    <a class="font-weight-bold font-xs btn-block text-muted" href="#">View More <i class="fa fa-angle-right pull-right font-lg"></i></a>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-1 clearfix">\n                    <i class="fa fa-laptop bg-info p-a-1 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-info m-b-0 m-t-h">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n                <div class="card-footer p-x-1 p-y-h">\n                    <a class="font-weight-bold font-xs btn-block text-muted" href="#">View More <i class="fa fa-angle-right pull-right font-lg"></i></a>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-1 clearfix">\n                    <i class="fa fa-moon-o bg-warning p-a-1 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-warning m-b-0 m-t-h">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n                <div class="card-footer p-x-1 p-y-h">\n                    <a class="font-weight-bold font-xs btn-block text-muted" href="#">View More <i class="fa fa-angle-right pull-right font-lg"></i></a>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-1 clearfix">\n                    <i class="fa fa-bell bg-danger p-a-1 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-danger m-b-0 m-t-h">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n                <div class="card-footer p-x-1 p-y-h">\n                    <a class="font-weight-bold font-xs btn-block text-muted" href="#">View More <i class="fa fa-angle-right pull-right font-lg"></i></a>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n    </div>\n    <!--/.row-->\n    <div class="row">\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-0 clearfix">\n                    <i class="fa fa-cogs bg-primary p-a-2 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-primary m-b-0 p-t-1">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-0 clearfix">\n                    <i class="fa fa-laptop bg-info p-a-2 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-info m-b-0 p-t-1">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-0 clearfix">\n                    <i class="fa fa-moon-o bg-warning p-a-2 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-warning m-b-0 p-t-1">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-0 clearfix">\n                    <i class="fa fa-bell bg-danger p-a-2 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-danger m-b-0 p-t-1">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-0 clearfix">\n                    <i class="fa fa-cogs bg-primary p-a-2 p-x-3 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-primary m-b-0 p-t-1">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-0 clearfix">\n                    <i class="fa fa-laptop bg-info p-a-2 p-x-3 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-info m-b-0 p-t-1">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-0 clearfix">\n                    <i class="fa fa-moon-o bg-warning p-a-2 p-x-3 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-warning m-b-0 p-t-1">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n        <div class="col-xs-6 col-lg-3">\n            <div class="card">\n                <div class="card-block p-a-0 clearfix">\n                    <i class="fa fa-bell bg-danger p-a-2 p-x-3 font-2xl m-r-1 pull-left"></i>\n                    <div class="h5 text-danger m-b-0 p-t-1">$1.999,50</div>\n                    <div class="text-muted text-uppercase font-weight-bold font-xs">Income</div>\n                </div>\n            </div>\n        </div>\n        <!--/.col-->\n    </div>\n    <!--/.row-->\n    <div class="row">\n        <div class="col-md-3 col-sm-6">\n            <div class="social-box facebook">\n                <i class="fa fa-facebook"></i>\n                <ul>\n                    <li>\n                        <strong>89k</strong>\n                        <span>friends</span>\n                    </li>\n                    <li>\n                        <strong>459</strong>\n                        <span>feeds</span>\n                    </li>\n                </ul>\n            </div>\n            <!--/social-box-->\n        </div>\n        <!--/col-->\n        <div class="col-md-3 col-sm-6">\n            <div class="social-box twitter">\n                <i class="fa fa-twitter"></i>\n                <ul>\n                    <li>\n                        <strong>973k</strong>\n                        <span>followers</span>\n                    </li>\n                    <li>\n                        <strong>1.792</strong>\n                        <span>tweets</span>\n                    </li>\n                </ul>\n            </div>\n            <!--/social-box-->\n        </div>\n        <!--/col-->\n        <div class="col-md-3 col-sm-6">\n            <div class="social-box linkedin">\n                <i class="fa fa-linkedin"></i>\n                <ul>\n                    <li>\n                        <strong>500+</strong>\n                        <span>contacts</span>\n                    </li>\n                    <li>\n                        <strong>292</strong>\n                        <span>feeds</span>\n                    </li>\n                </ul>\n            </div>\n            <!--/social-box-->\n        </div>\n        <!--/col-->\n        <div class="col-md-3 col-sm-6">\n            <div class="social-box google-plus">\n                <i class="fa fa-google-plus"></i>\n                <ul>\n                    <li>\n                        <strong>894</strong>\n                        <span>followers</span>\n                    </li>\n                    <li>\n                        <strong>92</strong>\n                        <span>circles</span>\n                    </li>\n                </ul>\n            </div>\n            <!--/social-box-->\n        </div>\n        <!--/col-->\n    </div>\n    <!--/row-->\n    <div class="card-group m-b-1">\n        <div class="card">\n            <div class="card-block">\n                <div class="h1 text-muted text-xs-right m-b-2">\n                    <i class="icon-people"></i>\n                </div>\n                <div class="h4 m-b-0">87.500</div>\n                <small class="text-muted text-uppercase font-weight-bold">Visitors</small>\n                <progress class="progress progress-xs progress-info m-t-1 m-b-0" value="25" max="100">25%</progress>\n            </div>\n        </div>\n        <div class="card">\n            <div class="card-block">\n                <div class="h1 text-muted text-xs-right m-b-2">\n                    <i class="icon-user-follow"></i>\n                </div>\n                <div class="h4 m-b-0">385</div>\n                <small class="text-muted text-uppercase font-weight-bold">New Clients</small>\n                <progress class="progress progress-xs progress-success m-t-1 m-b-0" value="25" max="100">25%</progress>\n            </div>\n        </div>\n        <div class="card">\n            <div class="card-block">\n                <div class="h1 text-muted text-xs-right m-b-2">\n                    <i class="icon-basket-loaded"></i>\n                </div>\n                <div class="h4 m-b-0">1238</div>\n                <small class="text-muted text-uppercase font-weight-bold">Products sold</small>\n                <progress class="progress progress-xs progress-warning m-t-1 m-b-0" value="25" max="100">25%</progress>\n            </div>\n        </div>\n        <div class="card">\n            <div class="card-block">\n                <div class="h1 text-muted text-xs-right m-b-2">\n                    <i class="icon-pie-chart"></i>\n                </div>\n                <div class="h4 m-b-0">28%</div>\n                <small class="text-muted text-uppercase font-weight-bold">Returning Visitors</small>\n                <progress class="progress progress-xs progress-primary m-t-1 m-b-0" value="25" max="100">25%</progress>\n            </div>\n        </div>\n        <div class="card">\n            <div class="card-block">\n                <div class="h1 text-muted text-xs-right m-b-2">\n                    <i class="icon-speedometer"></i>\n                </div>\n                <div class="h4 m-b-0">5:34:11</div>\n                <small class="text-muted text-uppercase font-weight-bold">Avg. Time</small>\n                <progress class="progress progress-xs progress-danger m-t-1 m-b-0" value="25" max="100">25%</progress>\n            </div>\n        </div>\n    </div>\n    <div class="row">\n        <div class="col-sm-6 col-md-2">\n            <div class="card">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-people"></i>\n                    </div>\n                    <div class="h4 m-b-0">87.500</div>\n                    <small class="text-muted text-uppercase font-weight-bold">Visitors</small>\n                    <progress class="progress progress-xs progress-info m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-md-2">\n            <div class="card">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-user-follow"></i>\n                    </div>\n                    <div class="h4 m-b-0">385</div>\n                    <small class="text-muted text-uppercase font-weight-bold">New Clients</small>\n                    <progress class="progress progress-xs progress-success m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-md-2">\n            <div class="card">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-basket-loaded"></i>\n                    </div>\n                    <div class="h4 m-b-0">1238</div>\n                    <small class="text-muted text-uppercase font-weight-bold">Products sold</small>\n                    <progress class="progress progress-xs progress-warning m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-md-2">\n            <div class="card">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-pie-chart"></i>\n                    </div>\n                    <div class="h4 m-b-0">28%</div>\n                    <small class="text-muted text-uppercase font-weight-bold">Returning Visitors</small>\n                    <progress class="progress progress-xs progress-primary m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-md-2">\n            <div class="card">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-speedometer"></i>\n                    </div>\n                    <div class="h4 m-b-0">5:34:11</div>\n                    <small class="text-muted text-uppercase font-weight-bold">Avg. Time</small>\n                    <progress class="progress progress-xs progress-danger m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-md-2">\n            <div class="card">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-speech"></i>\n                    </div>\n                    <div class="h4 m-b-0">972</div>\n                    <small class="text-muted text-uppercase font-weight-bold">Comments</small>\n                    <progress class="progress progress-xs progress-info m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class="row">\n        <div class="col-sm-6 col-md-2">\n            <div class="card card-inverse card-info">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-people"></i>\n                    </div>\n                    <div class="h4 m-b-0">87.500</div>\n                    <small class="text-muted text-uppercase font-weight-bold">Visitors</small>\n                    <progress class="progress progress-xs progress-info m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-md-2">\n            <div class="card card-inverse card-success">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-user-follow"></i>\n                    </div>\n                    <div class="h4 m-b-0">385</div>\n                    <small class="text-muted text-uppercase font-weight-bold">New Clients</small>\n                    <progress class="progress progress-xs progress-success m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-md-2">\n            <div class="card card-inverse card-warning">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-basket-loaded"></i>\n                    </div>\n                    <div class="h4 m-b-0">1238</div>\n                    <small class="text-muted text-uppercase font-weight-bold">Products sold</small>\n                    <progress class="progress progress-xs progress-warning m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-md-2">\n            <div class="card card-inverse card-primary">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-pie-chart"></i>\n                    </div>\n                    <div class="h4 m-b-0">28%</div>\n                    <small class="text-muted text-uppercase font-weight-bold">Returning Visitors</small>\n                    <progress class="progress progress-xs progress-primary m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-md-2">\n            <div class="card card-inverse card-danger">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-speedometer"></i>\n                    </div>\n                    <div class="h4 m-b-0">5:34:11</div>\n                    <small class="text-muted text-uppercase font-weight-bold">Avg. Time</small>\n                    <progress class="progress progress-xs progress-danger m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n        <div class="col-sm-6 col-md-2">\n            <div class="card card-inverse card-info">\n                <div class="card-block">\n                    <div class="h1 text-muted text-xs-right m-b-2">\n                        <i class="icon-speech"></i>\n                    </div>\n                    <div class="h4 m-b-0">972</div>\n                    <small class="text-muted text-uppercase font-weight-bold">Comments</small>\n                    <progress class="progress progress-xs progress-info m-t-1 m-b-0" value="25" max="100">25%</progress>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n';
+},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(29),o=function(t){function InnerSubscriber(e,n,r){t.call(this),this.parent=e,this.outerValue=n,this.outerIndex=r,this.index=0}return r(InnerSubscriber,t),InnerSubscriber.prototype._next=function(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)},InnerSubscriber.prototype._error=function(t){this.parent.notifyError(t,this),this.unsubscribe()},InnerSubscriber.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},InnerSubscriber}(i.Subscriber);e.InnerSubscriber=o},function(t,e,n){"use strict";var r=n(9),i=function(){function Notification(t,e,n){this.kind=t,this.value=e,this.exception=n,this.hasValue="N"===t}return Notification.prototype.observe=function(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.exception);case"C":return t.complete&&t.complete()}},Notification.prototype.do=function(t,e,n){var r=this.kind;switch(r){case"N":return t&&t(this.value);case"E":return e&&e(this.exception);case"C":return n&&n()}},Notification.prototype.accept=function(t,e,n){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,n)},Notification.prototype.toObservable=function(){var t=this.kind;switch(t){case"N":return r.Observable.of(this.value);case"E":return r.Observable.throw(this.exception);case"C":return r.Observable.empty()}throw new Error("unexpected notification kind value")},Notification.createNext=function(t){return"undefined"!=typeof t?new Notification("N",t):this.undefinedValueNotification},Notification.createError=function(t){return new Notification("E",(void 0),t)},Notification.createComplete=function(){return this.completeNotification},Notification.completeNotification=new Notification("C"),Notification.undefinedValueNotification=new Notification("N",(void 0)),Notification}();e.Notification=i},function(t,e){"use strict";e.empty={closed:!0,next:function(t){},error:function(t){throw t},complete:function(){}}},function(t,e){"use strict";var n=function(){function Scheduler(t,e){void 0===e&&(e=Scheduler.now),this.SchedulerAction=t,this.now=e}return Scheduler.prototype.schedule=function(t,e,n){return void 0===e&&(e=0),new this.SchedulerAction(this,t).schedule(n,e)},Scheduler.now=Date.now?Date.now:function(){return+new Date},Scheduler}();e.Scheduler=n},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(142),o=function(t){function SubjectSubscription(e,n){t.call(this),this.subject=e,this.subscriber=n,this.closed=!1}return r(SubjectSubscription,t),SubjectSubscription.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var t=this.subject,e=t.observers;if(this.subject=null,e&&0!==e.length&&!t.isStopped&&!t.closed){var n=e.indexOf(this.subscriber);n!==-1&&e.splice(n,1)}}},SubjectSubscription}(i.Subscription);e.SubjectSubscription=o},function(t,e,n){"use strict";var r=n(9),i=n(240);r.Observable.from=i.from},function(t,e,n){"use strict";var r=n(9),i=n(743);r.Observable.prototype.debounceTime=i.debounceTime},function(t,e,n){"use strict";var r=n(9),i=n(97);r.Observable.prototype.map=i.map},function(t,e,n){"use strict";var r=n(9),i=n(143);r.Observable.prototype.mergeMap=i.mergeMap,r.Observable.prototype.flatMap=i.mergeMap},function(t,e,n){"use strict";var r=n(9),i=n(749);r.Observable.prototype.toArray=i.toArray},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(9),o=n(420),a=n(418),s=function(t){function ArrayLikeObservable(e,n){t.call(this),this.arrayLike=e,this.scheduler=n,n||1!==e.length||(this._isScalar=!0,this.value=e[0])}return r(ArrayLikeObservable,t),ArrayLikeObservable.create=function(t,e){var n=t.length;return 0===n?new a.EmptyObservable:1===n?new o.ScalarObservable(t[0],e):new ArrayLikeObservable(t,e)},ArrayLikeObservable.dispatch=function(t){var e=t.arrayLike,n=t.index,r=t.length,i=t.subscriber;if(!i.closed){if(n>=r)return void i.complete();i.next(e[n]),t.index=n+1,this.schedule(t)}},ArrayLikeObservable.prototype._subscribe=function(t){var e=0,n=this,r=n.arrayLike,i=n.scheduler,o=r.length;if(i)return i.schedule(ArrayLikeObservable.dispatch,0,{arrayLike:r,index:e,length:o,subscriber:t});for(var a=0;a<o&&!t.closed;a++)t.next(r[a]);t.complete()},ArrayLikeObservable}(i.Observable);e.ArrayLikeObservable=s},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(247),o=n(426),a=n(419),s=n(741),c=n(417),l=n(739),u=n(243),p=n(9),d=n(747),f=n(244),h=function(t){return t&&"number"==typeof t.length},m=function(t){function FromObservable(e,n){t.call(this,null),this.ish=e,this.scheduler=n}return r(FromObservable,t),FromObservable.create=function(t,e){if(null!=t){if("function"==typeof t[f.$$observable])return t instanceof p.Observable&&!e?t:new FromObservable(t,e);if(i.isArray(t))return new c.ArrayObservable(t,e);if(o.isPromise(t))return new a.PromiseObservable(t,e);if("function"==typeof t[u.$$iterator]||"string"==typeof t)return new s.IteratorObservable(t,e);if(h(t))return new l.ArrayLikeObservable(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")},FromObservable.prototype._subscribe=function(t){var e=this.ish,n=this.scheduler;return null==n?e[f.$$observable]().subscribe(t):e[f.$$observable]().subscribe(new d.ObserveOnSubscriber(t,n,0))},FromObservable}(p.Observable);e.FromObservable=m},function(t,e,n){"use strict";function getIterator(t){var e=t[a.$$iterator];if(!e&&"string"==typeof t)return new c(t);if(!e&&void 0!==t.length)return new l(t);if(!e)throw new TypeError("object is not iterable");return t[a.$$iterator]()}function toLength(t){var e=+t.length;return isNaN(e)?0:0!==e&&numberIsFinite(e)?(e=sign(e)*Math.floor(Math.abs(e)),e<=0?0:e>u?u:e):e}function numberIsFinite(t){return"number"==typeof t&&i.root.isFinite(t)}function sign(t){var e=+t;return 0===e?e:isNaN(e)?e:e<0?-1:1}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(53),o=n(9),a=n(243),s=function(t){function IteratorObservable(e,n){if(t.call(this),this.scheduler=n,null==e)throw new Error("iterator cannot be null.");this.iterator=getIterator(e)}return r(IteratorObservable,t),IteratorObservable.create=function(t,e){return new IteratorObservable(t,e)},IteratorObservable.dispatch=function(t){var e=t.index,n=t.hasError,r=t.iterator,i=t.subscriber;if(n)return void i.error(t.error);var o=r.next();return o.done?void i.complete():(i.next(o.value),t.index=e+1,void(i.closed||this.schedule(t)))},IteratorObservable.prototype._subscribe=function(t){var e=0,n=this,r=n.iterator,i=n.scheduler;if(i)return i.schedule(IteratorObservable.dispatch,0,{index:e,iterator:r,subscriber:t});for(;;){var o=r.next();if(o.done){t.complete();break}if(t.next(o.value),t.closed)break}},IteratorObservable}(o.Observable);e.IteratorObservable=s;var c=function(){function StringIterator(t,e,n){void 0===e&&(e=0),void 0===n&&(n=t.length),this.str=t,this.idx=e,this.len=n}return StringIterator.prototype[a.$$iterator]=function(){return this},StringIterator.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.str.charAt(this.idx++)}:{done:!0,value:void 0}},StringIterator}(),l=function(){function ArrayIterator(t,e,n){void 0===e&&(e=0),void 0===n&&(n=toLength(t)),this.arr=t,this.idx=e,this.len=n}return ArrayIterator.prototype[a.$$iterator]=function(){return this},ArrayIterator.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.arr[this.idx++]}:{done:!0,value:void 0}},ArrayIterator}(),u=Math.pow(2,53)-1},function(t,e,n){"use strict";function _catch(t){var e=new a(t),n=this.lift(e);return e.caught=n}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(239),o=n(248);e._catch=_catch;var a=function(){function CatchOperator(t){this.selector=t}return CatchOperator.prototype.call=function(t,e){return e._subscribe(new s(t,this.selector,this.caught))},CatchOperator}(),s=function(t){function CatchSubscriber(e,n,r){t.call(this,e),this.selector=n,this.caught=r}return r(CatchSubscriber,t),CatchSubscriber.prototype.error=function(t){if(!this.isStopped){var e=void 0;try{e=this.selector(t,this.caught)}catch(t){return void this.destination.error(t)}this.unsubscribe(),this.destination.remove(this),o.subscribeToResult(this,e)}},CatchSubscriber}(i.OuterSubscriber)},function(t,e,n){"use strict";function debounceTime(t,e){return void 0===e&&(e=o.async),this.lift(new a(t,e))}function dispatchNext(t){t.debouncedNext()}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(29),o=n(754);e.debounceTime=debounceTime;var a=function(){function DebounceTimeOperator(t,e){this.dueTime=t,this.scheduler=e}return DebounceTimeOperator.prototype.call=function(t,e){return e._subscribe(new s(t,this.dueTime,this.scheduler))},DebounceTimeOperator}(),s=function(t){function DebounceTimeSubscriber(e,n,r){t.call(this,e),this.dueTime=n,this.scheduler=r,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}return r(DebounceTimeSubscriber,t),DebounceTimeSubscriber.prototype._next=function(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(dispatchNext,this.dueTime,this))},DebounceTimeSubscriber.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},DebounceTimeSubscriber.prototype.debouncedNext=function(){this.clearDebounce(),this.hasValue&&(this.destination.next(this.lastValue),this.lastValue=null,this.hasValue=!1)},DebounceTimeSubscriber.prototype.clearDebounce=function(){var t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)},DebounceTimeSubscriber}(i.Subscriber)},function(t,e,n){"use strict";function filter(t,e){return this.lift(new o(t,e))}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(29);e.filter=filter;var o=function(){function FilterOperator(t,e){this.predicate=t,this.thisArg=e}return FilterOperator.prototype.call=function(t,e){return e._subscribe(new a(t,this.predicate,this.thisArg))},FilterOperator}(),a=function(t){function FilterSubscriber(e,n,r){t.call(this,e),this.predicate=n,this.thisArg=r,this.count=0,this.predicate=n}return r(FilterSubscriber,t),FilterSubscriber.prototype._next=function(t){var e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}e&&this.destination.next(t)},FilterSubscriber}(i.Subscriber)},function(t,e,n){"use strict";function first(t,e,n){return this.lift(new a(t,e,n,this))}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(29),o=n(246);e.first=first;var a=function(){function FirstOperator(t,e,n,r){this.predicate=t,this.resultSelector=e,this.defaultValue=n,this.source=r}return FirstOperator.prototype.call=function(t,e){return e._subscribe(new s(t,this.predicate,this.resultSelector,this.defaultValue,this.source))},FirstOperator}(),s=function(t){function FirstSubscriber(e,n,r,i,o){t.call(this,e),this.predicate=n,this.resultSelector=r,this.defaultValue=i,this.source=o,this.index=0,this.hasCompleted=!1}return r(FirstSubscriber,t),FirstSubscriber.prototype._next=function(t){var e=this.index++;this.predicate?this._tryPredicate(t,e):this._emit(t,e)},FirstSubscriber.prototype._tryPredicate=function(t,e){var n;try{n=this.predicate(t,e,this.source)}catch(r){return void this.destination.error(r)}n&&this._emit(t,e)},FirstSubscriber.prototype._emit=function(t,e){return this.resultSelector?void this._tryResultSelector(t,e):void this._emitFinal(t)},FirstSubscriber.prototype._tryResultSelector=function(t,e){var n;try{n=this.resultSelector(t,e)}catch(r){return void this.destination.error(r)}this._emitFinal(n)},FirstSubscriber.prototype._emitFinal=function(t){var e=this.destination;e.next(t),e.complete(),this.hasCompleted=!0},FirstSubscriber.prototype._complete=function(){var t=this.destination;this.hasCompleted||"undefined"==typeof this.defaultValue?this.hasCompleted||t.error(new o.EmptyError):(t.next(this.defaultValue),t.complete())},FirstSubscriber}(i.Subscriber)},function(t,e,n){"use strict";function last(t,e,n){return this.lift(new a(t,e,n,this))}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(29),o=n(246);e.last=last;var a=function(){function LastOperator(t,e,n,r){this.predicate=t,this.resultSelector=e,this.defaultValue=n,this.source=r}return LastOperator.prototype.call=function(t,e){return e._subscribe(new s(t,this.predicate,this.resultSelector,this.defaultValue,this.source))},LastOperator}(),s=function(t){function LastSubscriber(e,n,r,i,o){t.call(this,e),this.predicate=n,this.resultSelector=r,this.defaultValue=i,this.source=o,this.hasValue=!1,this.index=0,"undefined"!=typeof i&&(this.lastValue=i,this.hasValue=!0)}return r(LastSubscriber,t),LastSubscriber.prototype._next=function(t){var e=this.index++;if(this.predicate)this._tryPredicate(t,e);else{if(this.resultSelector)return void this._tryResultSelector(t,e);this.lastValue=t,this.hasValue=!0}},LastSubscriber.prototype._tryPredicate=function(t,e){var n;try{n=this.predicate(t,e,this.source)}catch(r){return void this.destination.error(r)}if(n){if(this.resultSelector)return void this._tryResultSelector(t,e);this.lastValue=t,this.hasValue=!0}},LastSubscriber.prototype._tryResultSelector=function(t,e){var n;try{n=this.resultSelector(t,e)}catch(r){return void this.destination.error(r)}this.lastValue=n,this.hasValue=!0},LastSubscriber.prototype._complete=function(){var t=this.destination;this.hasValue?(t.next(this.lastValue),t.complete()):t.error(new o.EmptyError)},LastSubscriber}(i.Subscriber)},function(t,e,n){"use strict";function observeOn(t,e){return void 0===e&&(e=0),this.lift(new a(t,e))}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(29),o=n(730);e.observeOn=observeOn;var a=function(){function ObserveOnOperator(t,e){void 0===e&&(e=0),this.scheduler=t,this.delay=e}return ObserveOnOperator.prototype.call=function(t,e){return e._subscribe(new s(t,this.scheduler,this.delay))},ObserveOnOperator}();e.ObserveOnOperator=a;var s=function(t){function ObserveOnSubscriber(e,n,r){void 0===r&&(r=0),t.call(this,e),this.scheduler=n,this.delay=r}return r(ObserveOnSubscriber,t),ObserveOnSubscriber.dispatch=function(t){var e=t.notification,n=t.destination;e.observe(n)},ObserveOnSubscriber.prototype.scheduleMessage=function(t){this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch,this.delay,new c(t,this.destination)))},ObserveOnSubscriber.prototype._next=function(t){this.scheduleMessage(o.Notification.createNext(t))},ObserveOnSubscriber.prototype._error=function(t){this.scheduleMessage(o.Notification.createError(t))},ObserveOnSubscriber.prototype._complete=function(){this.scheduleMessage(o.Notification.createComplete())},ObserveOnSubscriber}(i.Subscriber);e.ObserveOnSubscriber=s;var c=function(){function ObserveOnMessage(t,e){this.notification=t,this.destination=e}return ObserveOnMessage}();e.ObserveOnMessage=c},function(t,e,n){"use strict";function reduce(t,e){return this.lift(new o(t,e))}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(29);e.reduce=reduce;var o=function(){function ReduceOperator(t,e){this.accumulator=t,this.seed=e}return ReduceOperator.prototype.call=function(t,e){return e._subscribe(new a(t,this.accumulator,this.seed))},ReduceOperator}();e.ReduceOperator=o;var a=function(t){function ReduceSubscriber(e,n,r){t.call(this,e),this.accumulator=n,this.hasValue=!1,this.acc=r,this.accumulator=n,this.hasSeed="undefined"!=typeof r}return r(ReduceSubscriber,t),ReduceSubscriber.prototype._next=function(t){this.hasValue||(this.hasValue=this.hasSeed)?this._tryReduce(t):(this.acc=t,this.hasValue=!0)},ReduceSubscriber.prototype._tryReduce=function(t){var e;try{e=this.accumulator(this.acc,t)}catch(n){return void this.destination.error(n)}this.acc=e},ReduceSubscriber.prototype._complete=function(){(this.hasValue||this.hasSeed)&&this.destination.next(this.acc),this.destination.complete()},ReduceSubscriber}(i.Subscriber);e.ReduceSubscriber=a},function(t,e,n){"use strict";function toArray(){return this.lift(new o)}var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(29);e.toArray=toArray;var o=function(){function ToArrayOperator(){}return ToArrayOperator.prototype.call=function(t,e){return e._subscribe(new a(t))},ToArrayOperator}(),a=function(t){function ToArraySubscriber(e){t.call(this,e),this.array=[]}return r(ToArraySubscriber,t),ToArraySubscriber.prototype._next=function(t){this.array.push(t)},ToArraySubscriber.prototype._complete=function(){this.destination.next(this.array),this.destination.complete()},ToArraySubscriber}(i.Subscriber)},function(t,e,n){"use strict";function toPromise(t){var e=this;if(t||(r.root.Rx&&r.root.Rx.config&&r.root.Rx.config.Promise?t=r.root.Rx.config.Promise:r.root.Promise&&(t=r.root.Promise)),!t)throw new Error("no Promise impl found");return new t(function(t,n){var r;e.subscribe(function(t){return r=t},function(t){return n(t)},function(){return t(r)})})}var r=n(53);e.toPromise=toPromise},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(142),o=function(t){function Action(e,n){t.call(this)}return r(Action,t),Action.prototype.schedule=function(t,e){return void 0===e&&(e=0),this},Action}(i.Subscription);e.Action=o},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(53),o=n(751),a=function(t){function AsyncAction(e,n){t.call(this,e,n),this.scheduler=e,this.work=n,this.pending=!1}return r(AsyncAction,t),AsyncAction.prototype.schedule=function(t,e){if(void 0===e&&(e=0),this.closed)return this;this.state=t,this.pending=!0;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,e)),this.delay=e,this.id=this.id||this.requestAsyncId(r,this.id,e),this},AsyncAction.prototype.requestAsyncId=function(t,e,n){return void 0===n&&(n=0),i.root.setInterval(t.flush.bind(t,this),n)},AsyncAction.prototype.recycleAsyncId=function(t,e,n){return void 0===n&&(n=0),null!==n&&this.delay===n?e:i.root.clearInterval(e)&&void 0||void 0},AsyncAction.prototype.execute=function(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(t,e);return n?n:void(this.pending===!1&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null)))},AsyncAction.prototype._execute=function(t,e){var n=!1,r=void 0;try{this.work(t)}catch(i){n=!0,r=!!i&&i||new Error(i)}if(n)return this.unsubscribe(),r},AsyncAction.prototype._unsubscribe=function(){var t=this.id,e=this.scheduler,n=e.actions,r=n.indexOf(this);this.work=null,this.delay=null,this.state=null,this.pending=!1,this.scheduler=null,r!==-1&&n.splice(r,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null))},AsyncAction}(o.Action);e.AsyncAction=a},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},i=n(732),o=function(t){function AsyncScheduler(){t.apply(this,arguments),this.actions=[],this.active=!1,this.scheduled=void 0}return r(AsyncScheduler,t),AsyncScheduler.prototype.flush=function(t){var e=this.actions;if(this.active)return void e.push(t);var n;this.active=!0;do if(n=t.execute(t.state,t.delay))break;while(t=e.shift());if(this.active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}},AsyncScheduler}(i.Scheduler);e.AsyncScheduler=o},function(t,e,n){"use strict";var r=n(752),i=n(753);e.async=new i.AsyncScheduler(r.AsyncAction)},function(t,e){"use strict";var n=this&&this.__extends||function(t,e){function __(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(__.prototype=e.prototype,new __)},r=function(t){function UnsubscriptionError(e){t.call(this),this.errors=e;var n=Error.call(this,e?e.length+" errors occurred during unsubscription:\n  "+e.map(function(t,e){return e+1+") "+t.toString()}).join("\n  "):"");this.name=n.name="UnsubscriptionError",this.stack=n.stack,this.message=n.message}return n(UnsubscriptionError,t),UnsubscriptionError}(Error);e.UnsubscriptionError=r},function(t,e){"use strict";function isObject(t){return null!=t&&"object"==typeof t}e.isObject=isObject},function(t,e){"use strict";function isScheduler(t){return t&&"function"==typeof t.schedule}e.isScheduler=isScheduler},function(t,e,n){"use strict";function toSubscriber(t,e,n){if(t){if(t instanceof r.Subscriber)return t;if(t[i.$$rxSubscriber])return t[i.$$rxSubscriber]()}return t||e||n?new r.Subscriber(t,e,n):new r.Subscriber}var r=n(29),i=n(245);e.toSubscriber=toSubscriber},function(t,e,n){"use strict";function tryCatcher(){try{return r.apply(this,arguments)}catch(t){return i.errorObject.e=t,i.errorObject}}function tryCatch(t){return r=t,tryCatcher}var r,i=n(424);e.tryCatch=tryCatch},function(t,e,n){(function(t,e){function bindArguments(t,e){for(var n=t.length-1;n>=0;n--)"function"==typeof t[n]&&(t[n]=Zone.current.wrap(t[n],e+"_"+n));return t}function patchPrototype(t,e){for(var n=t.constructor.name,r=function(r){var i=e[r],o=t[i];o&&(t[i]=function(t){return function(){return t.apply(this,bindArguments(arguments,n+"."+i))}}(o))},i=0;i<e.length;i++)r(i)}function patchProperty(t,e){var n=Object.getOwnPropertyDescriptor(t,e)||{enumerable:!0,configurable:!0};delete n.writable,delete n.value;var r=e.substr(2),i="_"+e;n.set=function(t){if(this[i]&&this.removeEventListener(r,this[i]),"function"==typeof t){var e=function(e){var n;n=t.apply(this,arguments),void 0==n||n||e.preventDefault()};this[i]=e,this.addEventListener(r,e,!1)}else this[i]=null},n.get=function(){return this[i]||null},Object.defineProperty(t,e,n)}function patchOnProperties(t,e){var n=[];for(var r in t)"on"==r.substr(0,2)&&n.push(r);for(var i=0;i<n.length;i++)patchProperty(t,n[i]);if(e)for(var o=0;o<e.length;o++)patchProperty(t,"on"+e[o])}function findExistingRegisteredTask(t,e,n,r,i){var o=t[s];if(o)for(var a=0;a<o.length;a++){var c=o[a],l=c.data;if(l.handler===e&&l.useCapturing===r&&l.eventName===n)return i&&o.splice(a,1),c}return null}function attachRegisteredEvent(t,e){var n=t[s];n||(n=t[s]=[]),n.push(e)}function scheduleEventListener(t){var e=t.data;return attachRegisteredEvent(e.target,t),e.target[u](e.eventName,t.invoke,e.useCapturing)}function cancelEventListener(t){var e=t.data;findExistingRegisteredTask(e.target,t.invoke,e.eventName,e.useCapturing,!0),e.target[p](e.eventName,t.invoke,e.useCapturing)}function zoneAwareAddEventListener(t,e){var n=e[0],i=e[1],o=e[2]||!1,a=t||r,s=null;"function"==typeof i?s=i:i&&i.handleEvent&&(s=function(t){return i.handleEvent(t)});var c=!1;try{c=i&&"[object FunctionWrapper]"===i.toString()}catch(l){return}if(!s||c)return a[u](n,i,o);var p=findExistingRegisteredTask(a,i,n,o,!1);if(p)return a[u](n,p.invoke,o);var d=Zone.current,f=a.constructor.name+".addEventListener:"+n,h={target:a,eventName:n,name:n,useCapturing:o,handler:i};d.scheduleEventTask(f,s,h,scheduleEventListener,cancelEventListener)}function zoneAwareRemoveEventListener(t,e){var n=e[0],i=e[1],o=e[2]||!1,a=t||r,s=findExistingRegisteredTask(a,i,n,o,!0);s?s.zone.cancelTask(s):a[p](n,i,o)}function patchEventTargetMethods(t){return!(!t||!t.addEventListener)&&(patchMethod(t,c,function(){return zoneAwareAddEventListener}),patchMethod(t,l,function(){return zoneAwareRemoveEventListener}),!0)}function patchClass(t){var e=r[t];if(e){r[t]=function(){var n=bindArguments(arguments,t);switch(n.length){case 0:this[d]=new e;break;case 1:this[d]=new e(n[0]);break;case 2:this[d]=new e(n[0],n[1]);break;case 3:this[d]=new e(n[0],n[1],n[2]);break;case 4:this[d]=new e(n[0],n[1],n[2],n[3]);break;default:throw new Error("Arg list too long.")}};var n,i=new e(function(){});for(n in i)"XMLHttpRequest"===t&&"responseBlob"===n||!function(e){"function"==typeof i[e]?r[t].prototype[e]=function(){return this[d][e].apply(this[d],arguments)}:Object.defineProperty(r[t].prototype,e,{set:function(n){"function"==typeof n?this[d][e]=Zone.current.wrap(n,t+"."+e):this[d][e]=n},get:function(){return this[d][e]}})}(n);for(n in e)"prototype"!==n&&e.hasOwnProperty(n)&&(r[t][n]=e[n])}}function createNamedFn(t,e){try{return Function("f","return function "+t+"(){return f(this, arguments)}")(e)}catch(n){return function(){return e(this,arguments)}}}function patchMethod(t,e,r){for(var i=t;i&&!i.hasOwnProperty(e);)i=Object.getPrototypeOf(i);!i&&t[e]&&(i=t);var o,a=n(e);return i&&!(o=i[a])&&(o=i[a]=i[e],i[e]=createNamedFn(e,r(o,a,e))),o}function eventTargetPatch(t){var e=[],n=t.wtf;n?e=f.split(",").map(function(t){return"HTML"+t+"Element"}).concat(h):t[m]?e.push(m):e=h;for(var r=0;r<e.length;r++){var i=t[e[r]];patchEventTargetMethods(i&&i.prototype)}}function propertyPatch(){Object.defineProperty=function(t,e,n){if(isUnconfigurable(t,e))throw new TypeError("Cannot assign to read only property '"+e+"' of "+t);var r=n.configurable;return"prototype"!==e&&(n=rewriteDescriptor(t,e,n)),_tryDefineProperty(t,e,n,r)},Object.defineProperties=function(t,e){return Object.keys(e).forEach(function(n){Object.defineProperty(t,n,e[n])}),t},Object.create=function(t,e){return"object"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach(function(n){e[n]=rewriteDescriptor(t,n,e[n])}),b(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var n=g(t,e);return isUnconfigurable(t,e)&&(n.configurable=!1),n}}function _redefineProperty(t,e,n){var r=n.configurable;return n=rewriteDescriptor(t,e,n),_tryDefineProperty(t,e,n,r)}function isUnconfigurable(t,e){return t&&t[y]&&t[y][e]}function rewriteDescriptor(t,e,n){return n.configurable=!0,n.configurable||(t[y]||v(t,y,{writable:!0,value:{}}),t[y][e]=!0),n}function _tryDefineProperty(t,e,n,r){try{return v(t,e,n)}catch(i){if(!n.configurable)throw i;"undefined"==typeof r?delete n.configurable:n.configurable=r;try{return v(t,e,n)}catch(i){var o=null;try{o=JSON.stringify(n)}catch(i){o=o.toString()}console.log("Attempting to configure '"+e+"' with descriptor '"+o+"' on object '"+t+"' and got error, giving up: "+i)}}}function registerElementPatch(t){if(a&&"registerElement"in t.document){var e=document.registerElement,n=["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"];document.registerElement=function(t,r){return r&&r.prototype&&n.forEach(function(t){var e="Document.registerElement::"+t;if(r.prototype.hasOwnProperty(t)){var n=Object.getOwnPropertyDescriptor(r.prototype,t);n&&n.value?(n.value=Zone.current.wrap(n.value,e),_redefineProperty(r.prototype,t,n)):r.prototype[t]=Zone.current.wrap(r.prototype[t],e)}else r.prototype[t]&&(r.prototype[t]=Zone.current.wrap(r.prototype[t],e))}),e.apply(document,[t,r])}}}function apply(t){var e=t.WebSocket;t.EventTarget||patchEventTargetMethods(e.prototype),t.WebSocket=function(t,n){var r,i=arguments.length>1?new e(t,n):new e(t),o=Object.getOwnPropertyDescriptor(i,"onmessage");return o&&o.configurable===!1?(r=Object.create(i),["addEventListener","removeEventListener","send","close"].forEach(function(t){r[t]=function(){return i[t].apply(i,arguments)}})):r=i,patchOnProperties(r,["close","error","message","open"]),r};for(var n in e)t.WebSocket[n]=e[n]}function propertyDescriptorPatch(t){if(!o){var e="undefined"!=typeof WebSocket;canPatchViaPropertyDescriptor()?(a&&patchOnProperties(HTMLElement.prototype,_),patchOnProperties(XMLHttpRequest.prototype,null),"undefined"!=typeof IDBIndex&&(patchOnProperties(IDBIndex.prototype,null),patchOnProperties(IDBRequest.prototype,null),patchOnProperties(IDBOpenDBRequest.prototype,null),patchOnProperties(IDBDatabase.prototype,null),patchOnProperties(IDBTransaction.prototype,null),patchOnProperties(IDBCursor.prototype,null)),e&&patchOnProperties(WebSocket.prototype,null)):(patchViaCapturingAllTheEvents(),patchClass("XMLHttpRequest"),e&&apply(t))}}function canPatchViaPropertyDescriptor(){if(a&&!Object.getOwnPropertyDescriptor(HTMLElement.prototype,"onclick")&&"undefined"!=typeof Element){var t=Object.getOwnPropertyDescriptor(Element.prototype,"onclick");if(t&&!t.configurable)return!1}Object.defineProperty(XMLHttpRequest.prototype,"onreadystatechange",{get:function(){return!0}});var e=new XMLHttpRequest,n=!!e.onreadystatechange;return Object.defineProperty(XMLHttpRequest.prototype,"onreadystatechange",{}),n}function patchViaCapturingAllTheEvents(){for(var t=function(t){var e=_[t],n="on"+e;document.addEventListener(e,function(t){var e,r,i=t.target;for(r=i?i.constructor.name+"."+n:"unknown."+n;i;)i[n]&&!i[n][w]&&(e=Zone.current.wrap(i[n],r),e[w]=i[n],i[n]=e),i=i.parentElement},!0)},e=0;e<_.length;e++)t(e)}function patchTimer(t,e,n,r){function scheduleTask(e){var n=e.data;return n.args[0]=e.invoke,n.handleId=i.apply(t,n.args),e}function clearTask(t){return o(t.data.handleId)}var i=null,o=null;e+=r,n+=r,i=patchMethod(t,e,function(n){return function(i,o){if("function"==typeof o[0]){var a=Zone.current,s={handleId:null,isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?o[1]||0:null,args:o},c=a.scheduleMacroTask(e,o[0],s,scheduleTask,clearTask);if(!c)return c;var l=c.data.handleId;return l.ref&&l.unref&&(c.ref=l.ref.bind(l),c.unref=l.unref.bind(l)),c}return n.apply(t,o)}}),o=patchMethod(t,n,function(e){return function(n,r){var i=r[0];i&&"string"==typeof i.type?(i.cancelFn&&i.data.isPeriodic||0===i.runCount)&&i.zone.cancelTask(i):e.apply(t,r)}})}function patchXHR(t){function findPendingTask(t){var e=t[A];return e}function scheduleTask(t){var e=t.data;e.target.addEventListener("readystatechange",function(){e.target.readyState===e.target.DONE&&(e.aborted||t.invoke())});var r=e.target[A];return r||(e.target[A]=t),n.apply(e.target,e.args),t}function placeholderCallback(){}function clearTask(t){var e=t.data;return e.aborted=!0,r.apply(e.target,e.args)}var e=patchMethod(t.XMLHttpRequest.prototype,"open",function(){return function(t,n){return t[T]=0==n[2],e.apply(t,n)}}),n=patchMethod(t.XMLHttpRequest.prototype,"send",function(){return function(t,e){var r=Zone.current;if(t[T])return n.apply(t,e);var i={target:t,isPeriodic:!1,delay:null,args:e,aborted:!1
+};return r.scheduleMacroTask("XMLHttpRequest.send",placeholderCallback,i,scheduleTask,clearTask)}}),r=patchMethod(t.XMLHttpRequest.prototype,"abort",function(t){return function(t,e){var n=findPendingTask(t);if(n&&"string"==typeof n.type){if(null==n.cancelFn)return;n.zone.cancelTask(n)}}})}var n=(function(t){function __symbol__(t){return"__zone_symbol__"+t}function scheduleQueueDrain(){0==d&&0==l.length&&(t[o]?t[o].resolve(0)[a](drainMicroTaskQueue):t[i](drainMicroTaskQueue,0))}function scheduleMicroTask(t){scheduleQueueDrain(),l.push(t)}function consoleError(t){var e=t&&t.rejection;e&&console.error("Unhandled Promise rejection:",e instanceof Error?e.message:e,"; Zone:",t.zone.name,"; Task:",t.task&&t.task.source,"; Value:",e,e instanceof Error?e.stack:void 0),console.error(t)}function drainMicroTaskQueue(){if(!u){for(u=!0;l.length;){var t=l;l=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(r){consoleError(r)}}}for(;p.length;)for(var i=function(){var t=p.shift();try{t.zone.runGuarded(function(){throw t})}catch(e){consoleError(e)}};p.length;)i();u=!1}}function isThenable(t){return t&&t.then}function forwardResolution(t){return t}function forwardRejection(t){return _.reject(t)}function makeResolver(t,e){return function(n){resolvePromise(t,e,n)}}function resolvePromise(t,n,r){if(t[f]===v)if(r instanceof _&&r[f]!==v)clearRejectedNoCatch(r),resolvePromise(t,r[f],r[h]);else if(isThenable(r))r.then(makeResolver(t,n),makeResolver(t,!1));else{t[f]=n;var i=t[h];t[h]=r;for(var o=0;o<i.length;)scheduleResolveOrReject(t,i[o++],i[o++],i[o++],i[o++]);if(0==i.length&&n==b){t[f]=y;try{throw new Error("Uncaught (in promise): "+r)}catch(a){var s=a;s.rejection=r,s.promise=t,s.zone=e.current,s.task=e.currentTask,p.push(s),scheduleQueueDrain()}}}return t}function clearRejectedNoCatch(t){if(t[f]===y){t[f]=b;for(var e=0;e<p.length;e++)if(t===p[e].promise){p.splice(e,1);break}}}function scheduleResolveOrReject(t,e,n,r,i){clearRejectedNoCatch(t);var o=t[f]?r||forwardResolution:i||forwardRejection;e.scheduleMicroTask(m,function(){try{resolvePromise(n,!0,e.run(o,null,[t[h]]))}catch(r){resolvePromise(n,!1,r)}})}function patchThen(t){var e=t.prototype,n=e[__symbol__("then")]=e.then;e.then=function(t,e){var r=this;return new _(function(t,e){n.call(r,t,e)}).then(t,e)}}if(t.Zone)throw new Error("Zone already loaded.");var e=function(){function Zone(t,e){this._properties=null,this._parent=t,this._name=e?e.name||"unnamed":"<root>",this._properties=e&&e.properties||{},this._zoneDelegate=new n(this,this._parent&&this._parent._zoneDelegate,e)}return Zone.assertZonePatched=function(){if(t.Promise!==_)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(Zone,"current",{get:function(){return s},enumerable:!0,configurable:!0}),Object.defineProperty(Zone,"currentTask",{get:function(){return c},enumerable:!0,configurable:!0}),Object.defineProperty(Zone.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(Zone.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),Zone.prototype.get=function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]},Zone.prototype.getZoneWith=function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null},Zone.prototype.fork=function(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)},Zone.prototype.wrap=function(t,e){if("function"!=typeof t)throw new Error("Expecting function got: "+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}},Zone.prototype.run=function(t,e,n,r){void 0===e&&(e=null),void 0===n&&(n=null),void 0===r&&(r=null);var i=s;s=this;try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{s=i}},Zone.prototype.runGuarded=function(t,e,n,r){void 0===e&&(e=null),void 0===n&&(n=null),void 0===r&&(r=null);var i=s;s=this;try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{s=i}},Zone.prototype.runTask=function(t,e,n){if(t.runCount++,t.zone!=this)throw new Error("A task can only be run in the zone which created it! (Creation: "+t.zone.name+"; Execution: "+this.name+")");var r=c;c=t;var i=s;s=this;try{"macroTask"==t.type&&t.data&&!t.data.isPeriodic&&(t.cancelFn=null);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{s=i,c=r}},Zone.prototype.scheduleMicroTask=function(t,e,n,i){return this._zoneDelegate.scheduleTask(this,new r("microTask",this,t,e,n,i,null))},Zone.prototype.scheduleMacroTask=function(t,e,n,i,o){return this._zoneDelegate.scheduleTask(this,new r("macroTask",this,t,e,n,i,o))},Zone.prototype.scheduleEventTask=function(t,e,n,i,o){return this._zoneDelegate.scheduleTask(this,new r("eventTask",this,t,e,n,i,o))},Zone.prototype.cancelTask=function(t){var e=this._zoneDelegate.cancelTask(this,t);return t.runCount=-1,t.cancelFn=null,e},Zone.__symbol__=__symbol__,Zone}(),n=function(){function ZoneDelegate(t,e,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=t,this._parentDelegate=e,this._forkZS=n&&(n&&n.onFork?n:e._forkZS),this._forkDlgt=n&&(n.onFork?e:e._forkDlgt),this._interceptZS=n&&(n.onIntercept?n:e._interceptZS),this._interceptDlgt=n&&(n.onIntercept?e:e._interceptDlgt),this._invokeZS=n&&(n.onInvoke?n:e._invokeZS),this._invokeDlgt=n&&(n.onInvoke?e:e._invokeDlgt),this._handleErrorZS=n&&(n.onHandleError?n:e._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?e:e._handleErrorDlgt),this._scheduleTaskZS=n&&(n.onScheduleTask?n:e._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?e:e._scheduleTaskDlgt),this._invokeTaskZS=n&&(n.onInvokeTask?n:e._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?e:e._invokeTaskDlgt),this._cancelTaskZS=n&&(n.onCancelTask?n:e._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?e:e._cancelTaskDlgt),this._hasTaskZS=n&&(n.onHasTask?n:e._hasTaskZS),this._hasTaskDlgt=n&&(n.onHasTask?e:e._hasTaskDlgt)}return ZoneDelegate.prototype.fork=function(t,n){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,n):new e(t,n)},ZoneDelegate.prototype.intercept=function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this.zone,t,e,n):e},ZoneDelegate.prototype.invoke=function(t,e,n,r,i){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this.zone,t,e,n,r,i):e.apply(n,r)},ZoneDelegate.prototype.handleError=function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this.zone,t,e)},ZoneDelegate.prototype.scheduleTask=function(t,e){try{if(this._scheduleTaskZS)return this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this.zone,t,e);if(e.scheduleFn)e.scheduleFn(e);else{if("microTask"!=e.type)throw new Error("Task is missing scheduleFn.");scheduleMicroTask(e)}return e}finally{t==this.zone&&this._updateTaskCount(e.type,1)}},ZoneDelegate.prototype.invokeTask=function(t,e,n,r){try{return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this.zone,t,e,n,r):e.callback.apply(n,r)}finally{t!=this.zone||"eventTask"==e.type||e.data&&e.data.isPeriodic||this._updateTaskCount(e.type,-1)}},ZoneDelegate.prototype.cancelTask=function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this.zone,t,e);else{if(!e.cancelFn)throw new Error("Task does not support cancellation, or is already canceled.");n=e.cancelFn(e)}return t==this.zone&&this._updateTaskCount(e.type,-1),n},ZoneDelegate.prototype.hasTask=function(t,e){return this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this.zone,t,e)},ZoneDelegate.prototype._updateTaskCount=function(t,e){var n=this._taskCounts,r=n[t],i=n[t]=r+e;if(i<0)throw new Error("More tasks executed then were scheduled.");if(0==r||0==i){var o={microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t};try{this.hasTask(this.zone,o)}finally{this._parentDelegate&&this._parentDelegate._updateTaskCount(t,e)}}},ZoneDelegate}(),r=function(){function ZoneTask(t,e,n,r,i,o,a){this.runCount=0,this.type=t,this.zone=e,this.source=n,this.data=i,this.scheduleFn=o,this.cancelFn=a,this.callback=r;var s=this;this.invoke=function(){d++;try{return e.runTask(s,this,arguments)}finally{1==d&&drainMicroTaskQueue(),d--}}}return ZoneTask.prototype.toString=function(){return this.data&&"undefined"!=typeof this.data.handleId?this.data.handleId:this.toString()},ZoneTask}(),i=__symbol__("setTimeout"),o=__symbol__("Promise"),a=__symbol__("then"),s=new e(null,null),c=null,l=[],u=!1,p=[],d=0,f=__symbol__("state"),h=__symbol__("value"),m="Promise.then",v=null,g=!0,b=!1,y=0,_=function(){function ZoneAwarePromise(t){var e=this;if(!(e instanceof ZoneAwarePromise))throw new Error("Must be an instanceof Promise.");e[f]=v,e[h]=[];try{t&&t(makeResolver(e,g),makeResolver(e,b))}catch(n){resolvePromise(e,!1,n)}}return ZoneAwarePromise.resolve=function(t){return resolvePromise(new this(null),g,t)},ZoneAwarePromise.reject=function(t){return resolvePromise(new this(null),b,t)},ZoneAwarePromise.race=function(t){function onResolve(t){r&&(r=e(t))}function onReject(t){r&&(r=n(t))}for(var e,n,r=new this(function(t,r){e=t,n=r}),i=0,o=t;i<o.length;i++){var a=o[i];isThenable(a)||(a=this.resolve(a)),a.then(onResolve,onReject)}return r},ZoneAwarePromise.all=function(t){for(var e,n,r=new this(function(t,r){e=t,n=r}),i=0,o=[],a=0,s=t;a<s.length;a++){var c=s[a];isThenable(c)||(c=this.resolve(c)),c.then(function(t){return function(n){o[t]=n,i--,i||e(o)}}(i),n),i++}return i||e(o),r},ZoneAwarePromise.prototype.then=function(t,n){var r=new this.constructor(null),i=e.current;return this[f]==v?this[h].push(i,r,t,n):scheduleResolveOrReject(this,i,r,t,n),r},ZoneAwarePromise.prototype.catch=function(t){return this.then(null,t)},ZoneAwarePromise}();_.resolve=_.resolve,_.reject=_.reject,_.race=_.race,_.all=_.all;var w=t[__symbol__("Promise")]=t.Promise;if(t.Promise=_,w&&(patchThen(w),"undefined"!=typeof t.fetch)){var x=t.fetch();x.then(function(){return null},function(){return null}),x.constructor!=w&&patchThen(x.constructor)}return Promise[e.__symbol__("uncaughtPromiseErrors")]=p,t.Zone=e}("object"==typeof window&&window||"object"==typeof self&&self||t),Zone.__symbol__),r="object"==typeof window&&window||"object"==typeof self&&self||t,i="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,o="undefined"!=typeof e&&"[object process]"==={}.toString.call(e),a=!o&&!i&&!("undefined"==typeof window||!window.HTMLElement),s=n("eventTasks"),c="addEventListener",l="removeEventListener",u=n(c),p=n(l),d=n("originalInstance"),f="Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video",h="ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex".split(","),m="EventTarget",v=Object[n("defineProperty")]=Object.defineProperty,g=Object[n("getOwnPropertyDescriptor")]=Object.getOwnPropertyDescriptor,b=Object.create,y=n("unconfigurables"),_="copy cut paste abort blur focus canplay canplaythrough change click contextmenu dblclick drag dragend dragenter dragleave dragover dragstart drop durationchange emptied ended input invalid keydown keypress keyup load loadeddata loadedmetadata loadstart message mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup pause play playing progress ratechange reset scroll seeked seeking select show stalled submit suspend timeupdate volumechange waiting mozfullscreenchange mozfullscreenerror mozpointerlockchange mozpointerlockerror error webglcontextrestored webglcontextlost webglcontextcreationerror".split(" "),w=n("unbound"),x="set",C="clear",S=["alert","prompt","confirm"],k="object"==typeof window&&window||"object"==typeof self&&self||t;patchTimer(k,x,C,"Timeout"),patchTimer(k,x,C,"Interval"),patchTimer(k,x,C,"Immediate"),patchTimer(k,"request","cancel","AnimationFrame"),patchTimer(k,"mozRequest","mozCancel","AnimationFrame"),patchTimer(k,"webkitRequest","webkitCancel","AnimationFrame");for(var E=0;E<S.length;E++){var P=S[E];patchMethod(k,P,function(t,e,n){return function(e,r){return Zone.current.run(t,k,r,n)}})}eventTargetPatch(k),propertyDescriptorPatch(k),patchClass("MutationObserver"),patchClass("WebKitMutationObserver"),patchClass("FileReader"),propertyPatch(),registerElementPatch(k),patchXHR(k);var A=n("xhrTask"),T=n("xhrSync");k.navigator&&k.navigator.geolocation&&patchPrototype(k.navigator.geolocation,["getCurrentPosition","watchPosition"])}).call(e,n(59),n(710))},function(t,e){function webpackEmptyContext(t){throw new Error("Cannot find module '"+t+"'.")}webpackEmptyContext.keys=function(){return[]},webpackEmptyContext.resolve=webpackEmptyContext,t.exports=webpackEmptyContext,webpackEmptyContext.id=761},function(t,e,n){t.exports=n(429)}],[762]);
\ No newline at end of file
diff --git a/demo/Angular2_Demo/main.386b62d50903aa6ad827.bundle.js.gz b/demo/Angular2_Demo/main.386b62d50903aa6ad827.bundle.js.gz
new file mode 100644
index 0000000000000000000000000000000000000000..4fac61aecfdda5b208a3cdad781590bfb2b0df7f
Binary files /dev/null and b/demo/Angular2_Demo/main.386b62d50903aa6ad827.bundle.js.gz differ
diff --git a/demo/Angular2_Demo/npm-debug.log b/demo/Angular2_Demo/npm-debug.log
deleted file mode 100644
index a3f06217021aa39026277a463e3ddb642cfbe20a..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/npm-debug.log
+++ /dev/null
@@ -1,43 +0,0 @@
-0 info it worked if it ends with ok
-1 verbose cli [ 'node', '/usr/local/bin/npm', 'start' ]
-2 info using npm@3.10.6
-3 info using node@v0.12.7
-4 verbose run-script [ 'prestart', 'start', 'poststart' ]
-5 info lifecycle CoreUI@1.0.0-alpha.1~prestart: CoreUI@1.0.0-alpha.1
-6 silly lifecycle CoreUI@1.0.0-alpha.1~prestart: no script for prestart, continuing
-7 info lifecycle CoreUI@1.0.0-alpha.1~start: CoreUI@1.0.0-alpha.1
-8 verbose lifecycle CoreUI@1.0.0-alpha.1~start: unsafe-perm in lifecycle true
-9 verbose lifecycle CoreUI@1.0.0-alpha.1~start: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/Applications/MAMP/htdocs/crtlbs/CoreUI-Private/_Angular2_Development/node_modules/.bin:/usr/local/opt/php56/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
-10 verbose lifecycle CoreUI@1.0.0-alpha.1~start: CWD: /Applications/MAMP/htdocs/crtlbs/CoreUI-Private/_Angular2_Development
-11 silly lifecycle CoreUI@1.0.0-alpha.1~start: Args: [ '-c', 'tsc && concurrently "tsc -w" "lite-server" ' ]
-12 silly lifecycle CoreUI@1.0.0-alpha.1~start: Returned: code: 2  signal: null
-13 info lifecycle CoreUI@1.0.0-alpha.1~start: Failed to exec start script
-14 verbose stack Error: CoreUI@1.0.0-alpha.1 start: `tsc && concurrently "tsc -w" "lite-server" `
-14 verbose stack Exit status 2
-14 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:255:16)
-14 verbose stack     at EventEmitter.emit (events.js:110:17)
-14 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:40:14)
-14 verbose stack     at ChildProcess.emit (events.js:110:17)
-14 verbose stack     at maybeClose (child_process.js:1015:16)
-14 verbose stack     at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
-15 verbose pkgid CoreUI@1.0.0-alpha.1
-16 verbose cwd /Applications/MAMP/htdocs/crtlbs/CoreUI-Private/_Angular2_Development
-17 error Darwin 15.5.0
-18 error argv "node" "/usr/local/bin/npm" "start"
-19 error node v0.12.7
-20 error npm  v3.10.6
-21 error code ELIFECYCLE
-22 error CoreUI@1.0.0-alpha.1 start: `tsc && concurrently "tsc -w" "lite-server" `
-22 error Exit status 2
-23 error Failed at the CoreUI@1.0.0-alpha.1 start script 'tsc && concurrently "tsc -w" "lite-server" '.
-23 error Make sure you have the latest version of node.js and npm installed.
-23 error If you do, this is most likely a problem with the CoreUI package,
-23 error not with npm itself.
-23 error Tell the author that this fails on your system:
-23 error     tsc && concurrently "tsc -w" "lite-server"
-23 error You can get information on how to open an issue for this project with:
-23 error     npm bugs CoreUI
-23 error Or if that isn't available, you can get their info via:
-23 error     npm owner ls CoreUI
-23 error There is likely additional logging output above.
-24 verbose exit [ 1, true ]
diff --git a/demo/Angular2_Demo/package.json b/demo/Angular2_Demo/package.json
deleted file mode 100644
index e2f0850a613d7d75bf5c2b17217e2a9a9fd7e9d5..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
-  "name": "CoreUI",
-  "version": "1.0.0-alpha.1",
-  "description": "Open Source Bootstrap Admin Template",
-  "author": "Łukasz Holeczek",
-  "url": "http://coreui.io",
-  "copyright": "Copyright 2016 creativeLabs Łukasz Holeczek",
-  "license": "http://coreui.io/license",
-  "scripts": {
-    "start": "tsc && concurrently \"tsc -w\" \"lite-server\" ",
-    "docker-build": "docker build -t ng2-quickstart .",
-    "docker": "npm run docker-build && docker run -it --rm -p 3000:3000 -p 3001:3001 ng2-quickstart",
-    "pree2e": "npm run webdriver:update",
-    "e2e": "tsc && concurrently \"http-server -s\" \"protractor protractor.config.js\" --kill-others --success first",
-    "lint": "tslint ./app/**/*.ts -t verbose",
-    "lite": "lite-server",
-    "postinstall": "typings install",
-    "test": "tsc && concurrently \"tsc -w\" \"karma start karma.conf.js\"",
-    "test-once": "tsc && karma start karma.conf.js --single-run",
-    "tsc": "tsc",
-    "tsc:w": "tsc -w",
-    "typings": "typings",
-    "webdriver:update": "webdriver-manager update"
-  },
-  "keywords": [],
-  "author": "",
-  "license": "ISC",
-  "dependencies": {
-    "@angular/common": "2.0.0-rc.5",
-    "@angular/compiler": "2.0.0-rc.5",
-    "@angular/core": "2.0.0-rc.5",
-    "@angular/forms": "0.3.0",
-    "@angular/http": "2.0.0-rc.5",
-    "@angular/platform-browser": "2.0.0-rc.5",
-    "@angular/platform-browser-dynamic": "2.0.0-rc.5",
-    "@angular/router": "3.0.0-rc.1",
-    "@angular/router-deprecated": "2.0.0-rc.2",
-    "@angular/upgrade": "2.0.0-rc.5",
-    "angular2-in-memory-web-api": "0.0.15",
-    "chart.js": "^2.2.1",
-    "core-js": "^2.4.0",
-    "ng2-bootstrap": "^1.0.24",
-    "ng2-charts": "^1.1.0",
-    "reflect-metadata": "^0.1.3",
-    "rxjs": "5.0.0-beta.6",
-    "systemjs": "0.19.27",
-    "zone.js": "^0.6.12"
-  },
-  "devDependencies": {
-    "canonical-path": "0.0.2",
-    "concurrently": "^2.2.0",
-    "gulp": "^3.9.1",
-    "gulp-concat": "^2.6.0",
-    "gulp-sass": "^2.3.2",
-    "http-server": "^0.9.0",
-    "jasmine-core": "~2.4.1",
-    "karma": "^0.13.22",
-    "karma-chrome-launcher": "^0.2.3",
-    "karma-cli": "^0.1.2",
-    "karma-htmlfile-reporter": "^0.2.2",
-    "karma-jasmine": "^0.3.8",
-    "lite-server": "^2.2.0",
-    "lodash": "^4.11.1",
-    "protractor": "^3.3.0",
-    "rimraf": "^2.5.2",
-    "tslint": "^3.7.4",
-    "typescript": "^1.8.10",
-    "typings": "^1.0.4"
-  },
-  "repository": {}
-}
diff --git a/demo/Angular2_Demo/protractor.config.js b/demo/Angular2_Demo/protractor.config.js
deleted file mode 100644
index fcadab6443802ad4f1e57153dadfc4409af9c59a..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/protractor.config.js
+++ /dev/null
@@ -1,176 +0,0 @@
-// FIRST TIME ONLY- run:
-//   ./node_modules/.bin/webdriver-manager update
-//
-//   Try: `npm run webdriver:update`
-//
-// AND THEN EVERYTIME ...
-//   1. Compile with `tsc`
-//   2. Make sure the test server (e.g., http-server: localhost:8080) is running.
-//   3. ./node_modules/.bin/protractor protractor.config.js
-//
-//   To do all steps, try:  `npm run e2e`
-
-var fs = require('fs');
-var path = require('canonical-path');
-var _ = require('lodash');
-
-
-exports.config = {
-  directConnect: true,
-
-  // Capabilities to be passed to the webdriver instance.
-  capabilities: {
-    'browserName': 'chrome'
-  },
-
-  // Framework to use. Jasmine is recommended.
-  framework: 'jasmine',
-
-  // Spec patterns are relative to this config file
-  specs: ['**/*e2e-spec.js' ],
-
-
-  // For angular2 tests
-  useAllAngular2AppRoots: true,
-
-  // Base URL for application server
-  baseUrl: 'http://localhost:8080',
-
-  // doesn't seem to work.
-  // resultJsonOutputFile: "foo.json",
-
-  onPrepare: function() {
-    //// SpecReporter
-    //var SpecReporter = require('jasmine-spec-reporter');
-    //jasmine.getEnv().addReporter(new SpecReporter({displayStacktrace: 'none'}));
-    //// jasmine.getEnv().addReporter(new SpecReporter({displayStacktrace: 'all'}));
-
-    // debugging
-    // console.log('browser.params:' + JSON.stringify(browser.params));
-    jasmine.getEnv().addReporter(new Reporter( browser.params )) ;
-
-    global.sendKeys = sendKeys;
-
-    // Allow changing bootstrap mode to NG1 for upgrade tests
-    global.setProtractorToNg1Mode = function() {
-      browser.useAllAngular2AppRoots = false;
-      browser.rootEl = 'body';
-    };
-  },
-
-  jasmineNodeOpts: {
-    // defaultTimeoutInterval: 60000,
-    defaultTimeoutInterval: 10000,
-    showTiming: true,
-    print: function() {}
-  }
-};
-
-// Hack - because of bug with protractor send keys
-function sendKeys(element, str) {
-  return str.split('').reduce(function (promise, char) {
-    return promise.then(function () {
-      return element.sendKeys(char);
-    });
-  }, element.getAttribute('value'));
-  // better to create a resolved promise here but ... don't know how with protractor;
-  }
-
-// Custom reporter
-function Reporter(options) {
-  var _defaultOutputFile = path.resolve(process.cwd(), './_test-output', 'protractor-results.txt');
-  options.outputFile = options.outputFile || _defaultOutputFile;
-
-  initOutputFile(options.outputFile);
-  options.appDir = options.appDir ||  './';
-  var _root = { appDir: options.appDir, suites: [] };
-  log('AppDir: ' + options.appDir, +1);
-  var _currentSuite;
-
-  this.suiteStarted = function(suite) {
-    _currentSuite = { description: suite.description, status: null, specs: [] };
-    _root.suites.push(_currentSuite);
-    log('Suite: ' + suite.description, +1);
-  };
-
-  this.suiteDone = function(suite) {
-    var statuses = _currentSuite.specs.map(function(spec) {
-      return spec.status;
-    });
-    statuses = _.uniq(statuses);
-    var status = statuses.indexOf('failed') >= 0 ? 'failed' : statuses.join(', ');
-    _currentSuite.status = status;
-    log('Suite ' + _currentSuite.status + ': ' + suite.description, -1);
-  };
-
-  this.specStarted = function(spec) {
-
-  };
-
-  this.specDone = function(spec) {
-    var currentSpec = {
-      description: spec.description,
-      status: spec.status
-    };
-    if (spec.failedExpectations.length > 0) {
-      currentSpec.failedExpectations = spec.failedExpectations;
-    }
-
-    _currentSuite.specs.push(currentSpec);
-    log(spec.status + ' - ' + spec.description);
-  };
-
-  this.jasmineDone = function() {
-    outputFile = options.outputFile;
-    //// Alternate approach - just stringify the _root - not as pretty
-    //// but might be more useful for automation.
-    // var output = JSON.stringify(_root, null, 2);
-    var output = formatOutput(_root);
-    fs.appendFileSync(outputFile, output);
-  };
-
-  function initOutputFile(outputFile) {
-    var header = "Protractor results for: " + (new Date()).toLocaleString() + "\n\n";
-    fs.writeFileSync(outputFile, header);
-  }
-
-  // for output file output
-  function formatOutput(output) {
-    var indent = '  ';
-    var pad = '  ';
-    var results = [];
-    results.push('AppDir:' + output.appDir);
-    output.suites.forEach(function(suite) {
-      results.push(pad + 'Suite: ' + suite.description + ' -- ' + suite.status);
-      pad+=indent;
-      suite.specs.forEach(function(spec) {
-        results.push(pad + spec.status + ' - ' + spec.description);
-        if (spec.failedExpectations) {
-          pad+=indent;
-          spec.failedExpectations.forEach(function (fe) {
-            results.push(pad + 'message: ' + fe.message);
-          });
-          pad=pad.substr(2);
-        }
-      });
-      pad = pad.substr(2);
-      results.push('');
-    });
-    results.push('');
-    return results.join('\n');
-  }
-
-  // for console output
-  var _pad;
-  function log(str, indent) {
-    _pad = _pad || '';
-    if (indent == -1) {
-      _pad = _pad.substr(2);
-    }
-    console.log(_pad + str);
-    if (indent == 1) {
-      _pad = _pad + '  ';
-    }
-  }
-
-}
diff --git a/demo/Angular2_Demo/scripts.8c9efe9ca9e73edd6f76.bundle.js b/demo/Angular2_Demo/scripts.8c9efe9ca9e73edd6f76.bundle.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc7397e651b424409632c7d97c35c67f5702ce69
--- /dev/null
+++ b/demo/Angular2_Demo/scripts.8c9efe9ca9e73edd6f76.bundle.js
@@ -0,0 +1,3 @@
+webpackJsonp([1,2],{427:function(t,e){t.exports=function(t){"undefined"!=typeof execScript?execScript(t):eval.call(null,t)}},430:function(t,e,i){i(427)(i(711))},431:function(t,e,i){i(427)(i(712))},711:function(t,e){t.exports='/*!\n * Chart.js\n * http://chartjs.org/\n * Version: 2.2.2\n *\n * Copyright 2016 Nick Downie\n * Released under the MIT license\n * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md\n */\n!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Chart=t()}}(function(){var t;return function e(t,n,i){function a(r,s){if(!n[r]){if(!t[r]){var l="function"==typeof require&&require;if(!s&&l)return l(r,!0);if(o)return o(r,!0);var d=new Error("Cannot find module \'"+r+"\'");throw d.code="MODULE_NOT_FOUND",d}var u=n[r]={exports:{}};t[r][0].call(u.exports,function(e){var n=t[r][1][e];return a(n?n:e)},u,u.exports,e,t,n,i)}return n[r].exports}for(var o="function"==typeof require&&require,r=0;r<i.length;r++)a(i[r]);return a}({1:[function(t,e,n){function i(t){if(t){var e=/^#([a-fA-F0-9]{3})$/,n=/^#([a-fA-F0-9]{6})$/,i=/^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/,a=/^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/,o=/(\\w+)/,r=[0,0,0],s=1,l=t.match(e);if(l){l=l[1];for(var d=0;d<r.length;d++)r[d]=parseInt(l[d]+l[d],16)}else if(l=t.match(n)){l=l[1];for(var d=0;d<r.length;d++)r[d]=parseInt(l.slice(2*d,2*d+2),16)}else if(l=t.match(i)){for(var d=0;d<r.length;d++)r[d]=parseInt(l[d+1]);s=parseFloat(l[4])}else if(l=t.match(a)){for(var d=0;d<r.length;d++)r[d]=Math.round(2.55*parseFloat(l[d+1]));s=parseFloat(l[4])}else if(l=t.match(o)){if("transparent"==l[1])return[0,0,0,0];if(r=x[l[1]],!r)return}for(var d=0;d<r.length;d++)r[d]=b(r[d],0,255);return s=s||0==s?b(s,0,1):1,r[3]=s,r}}function a(t){if(t){var e=/^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/,n=t.match(e);if(n){var i=parseFloat(n[4]),a=b(parseInt(n[1]),0,360),o=b(parseFloat(n[2]),0,100),r=b(parseFloat(n[3]),0,100),s=b(isNaN(i)?1:i,0,1);return[a,o,r,s]}}}function o(t){if(t){var e=/^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/,n=t.match(e);if(n){var i=parseFloat(n[4]),a=b(parseInt(n[1]),0,360),o=b(parseFloat(n[2]),0,100),r=b(parseFloat(n[3]),0,100),s=b(isNaN(i)?1:i,0,1);return[a,o,r,s]}}}function r(t){var e=i(t);return e&&e.slice(0,3)}function s(t){var e=a(t);return e&&e.slice(0,3)}function l(t){var e=i(t);return e?e[3]:(e=a(t))?e[3]:(e=o(t))?e[3]:void 0}function d(t){return"#"+y(t[0])+y(t[1])+y(t[2])}function u(t,e){return 1>e||t[3]&&t[3]<1?c(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"}function c(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function h(t,e){if(1>e||t[3]&&t[3]<1)return f(t,e);var n=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+n+"%, "+i+"%, "+a+"%)"}function f(t,e){var n=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgba("+n+"%, "+i+"%, "+a+"%, "+(e||t[3]||1)+")"}function g(t,e){return 1>e||t[3]&&t[3]<1?m(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"}function m(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function p(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"}function v(t){return k[t.slice(0,3)]}function b(t,e,n){return Math.min(Math.max(e,t),n)}function y(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var x=t(5);e.exports={getRgba:i,getHsla:a,getRgb:r,getHsl:s,getHwb:o,getAlpha:l,hexString:d,rgbString:u,rgbaString:c,percentString:h,percentaString:f,hslString:g,hslaString:m,hwbString:p,keyword:v};var k={};for(var S in x)k[x[S]]=S},{5:5}],2:[function(t,e,n){var i=t(4),a=t(1),o=function(t){if(t instanceof o)return t;if(!(this instanceof o))return new o(t);this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var e;if("string"==typeof t)if(e=a.getRgba(t))this.setValues("rgb",e);else if(e=a.getHsla(t))this.setValues("hsl",e);else{if(!(e=a.getHwb(t)))throw new Error(\'Unable to parse color from string "\'+t+\'"\');this.setValues("hwb",e)}else if("object"==typeof t)if(e=t,void 0!==e.r||void 0!==e.red)this.setValues("rgb",e);else if(void 0!==e.l||void 0!==e.lightness)this.setValues("hsl",e);else if(void 0!==e.v||void 0!==e.value)this.setValues("hsv",e);else if(void 0!==e.w||void 0!==e.whiteness)this.setValues("hwb",e);else{if(void 0===e.c&&void 0===e.cyan)throw new Error("Unable to parse color from object "+JSON.stringify(t));this.setValues("cmyk",e)}};o.prototype={rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t%=360,t=0>t?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return a.hexString(this.values.rgb)},rgbString:function(){return a.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return a.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return a.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return a.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return a.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return a.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return a.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],n=0;n<t.length;n++){var i=t[n]/255;e[n]=.03928>=i?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),n=t.luminosity();return e>n?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb,e=(299*t[0]+587*t[1]+114*t[2])/1e3;return 128>e},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;3>e;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=0>n?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=this,i=t,a=void 0===e?.5:e,o=2*a-1,r=n.alpha()-i.alpha(),s=((o*r===-1?o:(o+r)/(1+o*r))+1)/2,l=1-s;return this.rgb(s*n.red()+l*i.red(),s*n.green()+l*i.green(),s*n.blue()+l*i.blue()).alpha(n.alpha()*a+i.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new o,i=this.values,a=n.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],e={}.toString.call(t),"[object Array]"===e?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return n}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i<t.length;i++)n[t.charAt(i)]=e[t][i];return 1!==e.alpha&&(n.a=e.alpha),n},o.prototype.setValues=function(t,e){var n,a=this.values,o=this.spaces,r=this.maxes,s=1;if("alpha"===t)s=e;else if(e.length)a[t]=e.slice(0,t.length),s=e[t.length];else if(void 0!==e[t.charAt(0)]){for(n=0;n<t.length;n++)a[t][n]=e[t.charAt(n)];s=e.a}else if(void 0!==e[o[t][0]]){var l=o[t];for(n=0;n<t.length;n++)a[t][n]=e[l[n]];s=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===s?a.alpha:s)),"alpha"===t)return!1;var d;for(n=0;n<t.length;n++)d=Math.max(0,Math.min(r[t][n],a[t][n])),a[t][n]=Math.round(d);for(var u in o)u!==t&&(a[u]=i[t][u](a[t]));return!0},o.prototype.setSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n),this)},o.prototype.setChannel=function(t,e,n){var i=this.values[t];return void 0===n?i[e]:n===i[e]?this:(i[e]=n,this.setValues(t,i),this)},"undefined"!=typeof window&&(window.Color=o),e.exports=o},{1:1,4:4}],3:[function(t,e,n){function i(t){var e,n,i,a=t[0]/255,o=t[1]/255,r=t[2]/255,s=Math.min(a,o,r),l=Math.max(a,o,r),d=l-s;return l==s?e=0:a==l?e=(o-r)/d:o==l?e=2+(r-a)/d:r==l&&(e=4+(a-o)/d),e=Math.min(60*e,360),0>e&&(e+=360),i=(s+l)/2,n=l==s?0:.5>=i?d/(l+s):d/(2-l-s),[e,100*n,100*i]}function a(t){var e,n,i,a=t[0],o=t[1],r=t[2],s=Math.min(a,o,r),l=Math.max(a,o,r),d=l-s;return n=0==l?0:d/l*1e3/10,l==s?e=0:a==l?e=(o-r)/d:o==l?e=2+(r-a)/d:r==l&&(e=4+(a-o)/d),e=Math.min(60*e,360),0>e&&(e+=360),i=l/255*1e3/10,[e,n,i]}function o(t){var e=t[0],n=t[1],a=t[2],o=i(t)[0],r=1/255*Math.min(e,Math.min(n,a)),a=1-1/255*Math.max(e,Math.max(n,a));return[o,100*r,100*a]}function s(t){var e,n,i,a,o=t[0]/255,r=t[1]/255,s=t[2]/255;return a=Math.min(1-o,1-r,1-s),e=(1-o-a)/(1-a)||0,n=(1-r-a)/(1-a)||0,i=(1-s-a)/(1-a)||0,[100*e,100*n,100*i,100*a]}function l(t){return K[JSON.stringify(t)]}function d(t){var e=t[0]/255,n=t[1]/255,i=t[2]/255;e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92;var a=.4124*e+.3576*n+.1805*i,o=.2126*e+.7152*n+.0722*i,r=.0193*e+.1192*n+.9505*i;return[100*a,100*o,100*r]}function u(t){var e,n,i,a=d(t),o=a[0],r=a[1],s=a[2];return o/=95.047,r/=100,s/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,s=s>.008856?Math.pow(s,1/3):7.787*s+16/116,e=116*r-16,n=500*(o-r),i=200*(r-s),[e,n,i]}function c(t){return B(u(t))}function h(t){var e,n,i,a,o,r=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return o=255*l,[o,o,o];n=.5>l?l*(1+s):l+s-l*s,e=2*l-n,a=[0,0,0];for(var d=0;3>d;d++)i=r+1/3*-(d-1),0>i&&i++,i>1&&i--,o=1>6*i?e+6*(n-e)*i:1>2*i?n:2>3*i?e+(n-e)*(2/3-i)*6:e,a[d]=255*o;return a}function f(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return 0===o?[0,0,0]:(o*=2,a*=1>=o?o:2-o,n=(o+a)/2,e=2*a/(o+a),[i,100*e,100*n])}function m(t){return o(h(t))}function p(t){return s(h(t))}function v(t){return l(h(t))}function y(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*i*(1-n),s=255*i*(1-n*o),l=255*i*(1-n*(1-o)),i=255*i;switch(a){case 0:return[i,l,r];case 1:return[s,i,r];case 2:return[r,i,l];case 3:return[r,s,i];case 4:return[l,r,i];case 5:return[i,r,s]}}function x(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return n=(2-a)*o,e=a*o,e/=1>=n?n:2-n,e=e||0,n/=2,[i,100*e,100*n]}function k(t){return o(y(t))}function S(t){return s(y(t))}function w(t){return l(y(t))}function _(t){var e,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,d=s+l;switch(d>1&&(s/=d,l/=d),e=Math.floor(6*o),n=1-l,i=6*o-e,0!=(1&e)&&(i=1-i),a=s+i*(n-s),e){default:case 6:case 0:r=n,g=a,b=s;break;case 1:r=a,g=n,b=s;break;case 2:r=s,g=n,b=a;break;case 3:r=s,g=a,b=n;break;case 4:r=a,g=s,b=n;break;case 5:r=n,g=s,b=a}return[255*r,255*g,255*b]}function M(t){return i(_(t))}function D(t){return a(_(t))}function C(t){return s(_(t))}function T(t){return l(_(t))}function P(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100,s=t[3]/100;return e=1-Math.min(1,a*(1-s)+s),n=1-Math.min(1,o*(1-s)+s),i=1-Math.min(1,r*(1-s)+s),[255*e,255*n,255*i]}function A(t){return i(P(t))}function F(t){return a(P(t))}function I(t){return o(P(t))}function O(t){return l(P(t))}function R(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100;return e=3.2406*a+-1.5372*o+r*-.4986,n=a*-.9689+1.8758*o+.0415*r,i=.0557*a+o*-.204+1.057*r,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e=12.92*e,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n=12.92*n,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i=12.92*i,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),i=Math.min(Math.max(0,i),1),[255*e,255*n,255*i]}function W(t){var e,n,i,a=t[0],o=t[1],r=t[2];return a/=95.047,o/=100,r/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,e=116*o-16,n=500*(a-o),i=200*(o-r),[e,n,i]}function L(t){return B(W(t))}function V(t){var e,n,i,a,o=t[0],r=t[1],s=t[2];return 8>=o?(n=100*o/903.3,a=7.787*(n/100)+16/116):(n=100*Math.pow((o+16)/116,3),a=Math.pow(n/100,1/3)),e=.008856>=e/95.047?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i=.008859>=i/108.883?i=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3),[e,n,i]}function B(t){var e,n,i,a=t[0],o=t[1],r=t[2];return e=Math.atan2(r,o),n=360*e/2/Math.PI,0>n&&(n+=360),i=Math.sqrt(o*o+r*r),[a,i,n]}function Y(t){return R(V(t))}function z(t){var e,n,i,a=t[0],o=t[1],r=t[2];return i=r/360*2*Math.PI,e=o*Math.cos(i),n=o*Math.sin(i),[a,e,n]}function N(t){return V(z(t))}function H(t){return Y(z(t))}function E(t){return X[t]}function U(t){return i(E(t))}function j(t){return a(E(t))}function G(t){return o(E(t))}function q(t){return s(E(t))}function Z(t){return u(E(t))}function J(t){return d(E(t))}e.exports={rgb2hsl:i,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:s,rgb2keyword:l,rgb2xyz:d,rgb2lab:u,rgb2lch:c,hsl2rgb:h,hsl2hsv:f,hsl2hwb:m,hsl2cmyk:p,hsl2keyword:v,hsv2rgb:y,hsv2hsl:x,hsv2hwb:k,hsv2cmyk:S,hsv2keyword:w,hwb2rgb:_,hwb2hsl:M,hwb2hsv:D,hwb2cmyk:C,hwb2keyword:T,cmyk2rgb:P,cmyk2hsl:A,cmyk2hsv:F,cmyk2hwb:I,cmyk2keyword:O,keyword2rgb:E,keyword2hsl:U,keyword2hsv:j,keyword2hwb:G,keyword2cmyk:q,keyword2lab:Z,keyword2xyz:J,xyz2rgb:R,xyz2lab:W,xyz2lch:L,lab2xyz:V,lab2rgb:Y,lab2lch:B,lch2lab:z,lch2xyz:N,lch2rgb:H};var X={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},K={};for(var Q in X)K[JSON.stringify(X[Q])]=Q},{}],4:[function(t,e,n){var i=t(3),a=function(){return new d};for(var o in i){a[o+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(o);var r=/(\\w+)2(\\w+)/.exec(o),s=r[1],l=r[2];a[s]=a[s]||{},a[s][l]=a[o]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var n=i[t](e);if("string"==typeof n||void 0===n)return n;for(var a=0;a<n.length;a++)n[a]=Math.round(n[a]);return n}}(o)}var d=function(){this.convs={}};d.prototype.routeSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n))},d.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},d.prototype.getValues=function(t){var e=this.convs[t];if(!e){var n=this.space,i=this.convs[n];e=a[n][t](i),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){d.prototype[t]=function(e){return this.routeSpace(t,arguments)}}),e.exports=a},{3:3}],5:[function(t,e,n){e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],6:[function(e,n,i){!function(e,a){"object"==typeof i&&"undefined"!=typeof n?n.exports=a():"function"==typeof t&&t.amd?t(a):e.moment=a()}(this,function(){"use strict";function t(){return mi.apply(null,arguments)}function i(t){mi=t}function a(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return"[object Object]"===Object.prototype.toString.call(t)}function r(t){var e;for(e in t)return!1;return!0}function s(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function l(t,e){var n,i=[];for(n=0;n<t.length;++n)i.push(e(t[n],n));return i}function d(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function u(t,e){for(var n in e)d(e,n)&&(t[n]=e[n]);return d(e,"toString")&&(t.toString=e.toString),d(e,"valueOf")&&(t.valueOf=e.valueOf),t}function c(t,e,n,i){return be(t,e,n,i,!0).utc()}function h(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null}}function f(t){return null==t._pf&&(t._pf=h()),t._pf}function g(t){if(null==t._isValid){var e=f(t),n=pi.call(e.parsedDateParts,function(t){return null!=t});t._isValid=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&n),t._strict&&(t._isValid=t._isValid&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour)}return t._isValid}function m(t){var e=c(NaN);return null!=t?u(f(e),t):f(e).userInvalidated=!0,e}function p(t){return void 0===t}function v(t,e){var n,i,a;if(p(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),p(e._i)||(t._i=e._i),p(e._f)||(t._f=e._f),p(e._l)||(t._l=e._l),p(e._strict)||(t._strict=e._strict),p(e._tzm)||(t._tzm=e._tzm),p(e._isUTC)||(t._isUTC=e._isUTC),p(e._offset)||(t._offset=e._offset),p(e._pf)||(t._pf=f(e)),p(e._locale)||(t._locale=e._locale),vi.length>0)for(n in vi)i=vi[n],a=e[i],p(a)||(t[i]=a);return t}function b(e){v(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),bi===!1&&(bi=!0,t.updateOffset(this),bi=!1)}function y(t){return t instanceof b||null!=t&&null!=t._isAMomentObject}function x(t){return 0>t?Math.ceil(t)||0:Math.floor(t)}function k(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=x(e)),n}function S(t,e,n){var i,a=Math.min(t.length,e.length),o=Math.abs(t.length-e.length),r=0;for(i=0;a>i;i++)(n&&t[i]!==e[i]||!n&&k(t[i])!==k(e[i]))&&r++;return r+o}function w(e){t.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function _(e,n){var i=!0;return u(function(){return null!=t.deprecationHandler&&t.deprecationHandler(null,e),i&&(w(e+"\\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\\n"+(new Error).stack),i=!1),n.apply(this,arguments)},n)}function M(e,n){null!=t.deprecationHandler&&t.deprecationHandler(e,n),yi[e]||(w(n),yi[e]=!0)}function D(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function C(t){var e,n;for(n in t)e=t[n],D(e)?this[n]=e:this["_"+n]=e;this._config=t,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\\d{1,2}/.source)}function T(t,e){var n,i=u({},t);for(n in e)d(e,n)&&(o(t[n])&&o(e[n])?(i[n]={},u(i[n],t[n]),u(i[n],e[n])):null!=e[n]?i[n]=e[n]:delete i[n]);for(n in t)d(t,n)&&!d(e,n)&&o(t[n])&&(i[n]=u({},i[n]));return i}function P(t){null!=t&&this.set(t)}function A(t,e,n){var i=this._calendar[t]||this._calendar.sameElse;return D(i)?i.call(e,n):i}function F(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function I(){return this._invalidDate}function O(t){return this._ordinal.replace("%d",t)}function R(t,e,n,i){var a=this._relativeTime[n];return D(a)?a(t,e,n,i):a.replace(/%d/i,t)}function W(t,e){var n=this._relativeTime[t>0?"future":"past"];return D(n)?n(e):n.replace(/%s/i,e)}function L(t,e){var n=t.toLowerCase();Ti[n]=Ti[n+"s"]=Ti[e]=t}function V(t){return"string"==typeof t?Ti[t]||Ti[t.toLowerCase()]:void 0}function B(t){var e,n,i={};for(n in t)d(t,n)&&(e=V(n),e&&(i[e]=t[n]));return i}function Y(t,e){Pi[t]=e}function z(t){var e=[];for(var n in t)e.push({unit:n,priority:Pi[n]});return e.sort(function(t,e){return t.priority-e.priority}),e}function N(e,n){return function(i){return null!=i?(E(this,e,i),t.updateOffset(this,n),this):H(this,e)}}function H(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function E(t,e,n){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](n)}function U(t){return t=V(t),D(this[t])?this[t]():this}function j(t,e){if("object"==typeof t){t=B(t);for(var n=z(t),i=0;i<n.length;i++)this[n[i].unit](t[n[i].unit])}else if(t=V(t),D(this[t]))return this[t](e);return this}function G(t,e,n){var i=""+Math.abs(t),a=e-i.length,o=t>=0;return(o?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+i}function q(t,e,n,i){var a=i;"string"==typeof i&&(a=function(){return this[i]()}),t&&(Oi[t]=a),e&&(Oi[e[0]]=function(){return G(a.apply(this,arguments),e[1],e[2])}),n&&(Oi[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),t)})}function Z(t){return t.match(/\\[[\\s\\S]/)?t.replace(/^\\[|\\]$/g,""):t.replace(/\\\\/g,"")}function J(t){var e,n,i=t.match(Ai);for(e=0,n=i.length;n>e;e++)Oi[i[e]]?i[e]=Oi[i[e]]:i[e]=Z(i[e]);return function(e){var a,o="";for(a=0;n>a;a++)o+=i[a]instanceof Function?i[a].call(e,t):i[a];return o}}function X(t,e){return t.isValid()?(e=K(e,t.localeData()),Ii[e]=Ii[e]||J(e),Ii[e](t)):t.localeData().invalidDate()}function K(t,e){function n(t){return e.longDateFormat(t)||t}var i=5;for(Fi.lastIndex=0;i>=0&&Fi.test(t);)t=t.replace(Fi,n),Fi.lastIndex=0,i-=1;return t}function Q(t,e,n){Ki[t]=D(e)?e:function(t,i){return t&&n?n:e}}function $(t,e){return d(Ki,t)?Ki[t](e._strict,e._locale):new RegExp(tt(t))}function tt(t){return et(t.replace("\\\\","").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(t,e,n,i,a){return e||n||i||a}))}function et(t){return t.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,"\\\\$&")}function nt(t,e){var n,i=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(i=function(t,n){n[e]=k(t)}),n=0;n<t.length;n++)Qi[t[n]]=i}function it(t,e){nt(t,function(t,n,i,a){i._w=i._w||{},e(t,i._w,i,a)})}function at(t,e,n){null!=e&&d(Qi,t)&&Qi[t](e,n._a,n,t)}function ot(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function rt(t,e){return a(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||la).test(e)?"format":"standalone"][t.month()]}function st(t,e){return a(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[la.test(e)?"format":"standalone"][t.month()]}function lt(t,e,n){var i,a,o,r=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;12>i;++i)o=c([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(o,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(o,"").toLocaleLowerCase();return n?"MMM"===e?(a=ki.call(this._shortMonthsParse,r),-1!==a?a:null):(a=ki.call(this._longMonthsParse,r),-1!==a?a:null):"MMM"===e?(a=ki.call(this._shortMonthsParse,r),-1!==a?a:(a=ki.call(this._longMonthsParse,r),-1!==a?a:null)):(a=ki.call(this._longMonthsParse,r),-1!==a?a:(a=ki.call(this._shortMonthsParse,r),-1!==a?a:null))}function dt(t,e,n){var i,a,o;if(this._monthsParseExact)return lt.call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;12>i;i++){if(a=c([2e3,i]),n&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[i]||(o="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[i]=new RegExp(o.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(n&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!n&&this._monthsParse[i].test(t))return i}}function ut(t,e){var n;if(!t.isValid())return t;if("string"==typeof e)if(/^\\d+$/.test(e))e=k(e);else if(e=t.localeData().monthsParse(e),"number"!=typeof e)return t;return n=Math.min(t.date(),ot(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,n),t}function ct(e){return null!=e?(ut(this,e),t.updateOffset(this,!0),this):H(this,"Month")}function ht(){return ot(this.year(),this.month())}function ft(t){return this._monthsParseExact?(d(this,"_monthsRegex")||mt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=ca),\nthis._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)}function gt(t){return this._monthsParseExact?(d(this,"_monthsRegex")||mt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=ha),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)}function mt(){function t(t,e){return e.length-t.length}var e,n,i=[],a=[],o=[];for(e=0;12>e;e++)n=c([2e3,e]),i.push(this.monthsShort(n,"")),a.push(this.months(n,"")),o.push(this.months(n,"")),o.push(this.monthsShort(n,""));for(i.sort(t),a.sort(t),o.sort(t),e=0;12>e;e++)i[e]=et(i[e]),a[e]=et(a[e]);for(e=0;24>e;e++)o[e]=et(o[e]);this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function pt(t){return vt(t)?366:365}function vt(t){return t%4===0&&t%100!==0||t%400===0}function bt(){return vt(this.year())}function yt(t,e,n,i,a,o,r){var s=new Date(t,e,n,i,a,o,r);return 100>t&&t>=0&&isFinite(s.getFullYear())&&s.setFullYear(t),s}function xt(t){var e=new Date(Date.UTC.apply(null,arguments));return 100>t&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function kt(t,e,n){var i=7+e-n,a=(7+xt(t,0,i).getUTCDay()-e)%7;return-a+i-1}function St(t,e,n,i,a){var o,r,s=(7+n-i)%7,l=kt(t,i,a),d=1+7*(e-1)+s+l;return 0>=d?(o=t-1,r=pt(o)+d):d>pt(t)?(o=t+1,r=d-pt(t)):(o=t,r=d),{year:o,dayOfYear:r}}function wt(t,e,n){var i,a,o=kt(t.year(),e,n),r=Math.floor((t.dayOfYear()-o-1)/7)+1;return 1>r?(a=t.year()-1,i=r+_t(a,e,n)):r>_t(t.year(),e,n)?(i=r-_t(t.year(),e,n),a=t.year()+1):(a=t.year(),i=r),{week:i,year:a}}function _t(t,e,n){var i=kt(t,e,n),a=kt(t+1,e,n);return(pt(t)-i+a)/7}function Mt(t){return wt(t,this._week.dow,this._week.doy).week}function Dt(){return this._week.dow}function Ct(){return this._week.doy}function Tt(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Pt(t){var e=wt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function At(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Ft(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function It(t,e){return a(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]}function Ot(t){return this._weekdaysShort[t.day()]}function Rt(t){return this._weekdaysMin[t.day()]}function Wt(t,e,n){var i,a,o,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;7>i;++i)o=c([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===e?(a=ki.call(this._weekdaysParse,r),-1!==a?a:null):"ddd"===e?(a=ki.call(this._shortWeekdaysParse,r),-1!==a?a:null):(a=ki.call(this._minWeekdaysParse,r),-1!==a?a:null):"dddd"===e?(a=ki.call(this._weekdaysParse,r),-1!==a?a:(a=ki.call(this._shortWeekdaysParse,r),-1!==a?a:(a=ki.call(this._minWeekdaysParse,r),-1!==a?a:null))):"ddd"===e?(a=ki.call(this._shortWeekdaysParse,r),-1!==a?a:(a=ki.call(this._weekdaysParse,r),-1!==a?a:(a=ki.call(this._minWeekdaysParse,r),-1!==a?a:null))):(a=ki.call(this._minWeekdaysParse,r),-1!==a?a:(a=ki.call(this._weekdaysParse,r),-1!==a?a:(a=ki.call(this._shortWeekdaysParse,r),-1!==a?a:null)))}function Lt(t,e,n){var i,a,o;if(this._weekdaysParseExact)return Wt.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;7>i;i++){if(a=c([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(a,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(a,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(a,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(o="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[i]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(n&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(n&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!n&&this._weekdaysParse[i].test(t))return i}}function Vt(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=At(t,this.localeData()),this.add(t-e,"d")):e}function Bt(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Yt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Ft(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function zt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Et.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=ba),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Nt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Et.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ya),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ht(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Et.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=xa),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Et(){function t(t,e){return e.length-t.length}var e,n,i,a,o,r=[],s=[],l=[],d=[];for(e=0;7>e;e++)n=c([2e3,1]).day(e),i=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),o=this.weekdays(n,""),r.push(i),s.push(a),l.push(o),d.push(i),d.push(a),d.push(o);for(r.sort(t),s.sort(t),l.sort(t),d.sort(t),e=0;7>e;e++)s[e]=et(s[e]),l[e]=et(l[e]),d[e]=et(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Ut(){return this.hours()%12||12}function jt(){return this.hours()||24}function Gt(t,e){q(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function qt(t,e){return e._meridiemParse}function Zt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Jt(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}function Xt(t){return t?t.toLowerCase().replace("_","-"):t}function Kt(t){for(var e,n,i,a,o=0;o<t.length;){for(a=Xt(t[o]).split("-"),e=a.length,n=Xt(t[o+1]),n=n?n.split("-"):null;e>0;){if(i=Qt(a.slice(0,e).join("-")))return i;if(n&&n.length>=e&&S(a,n,!0)>=e-1)break;e--}o++}return null}function Qt(t){var i=null;if(!Ma[t]&&"undefined"!=typeof n&&n&&n.exports)try{i=ka._abbr,e("./locale/"+t),$t(i)}catch(a){}return Ma[t]}function $t(t,e){var n;return t&&(n=p(e)?ne(t):te(t,e),n&&(ka=n)),ka._abbr}function te(t,e){if(null!==e){var n=_a;return e.abbr=t,null!=Ma[t]?(M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Ma[t]._config):null!=e.parentLocale&&(null!=Ma[e.parentLocale]?n=Ma[e.parentLocale]._config:M("parentLocaleUndefined","specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/")),Ma[t]=new P(T(n,e)),$t(t),Ma[t]}return delete Ma[t],null}function ee(t,e){if(null!=e){var n,i=_a;null!=Ma[t]&&(i=Ma[t]._config),e=T(i,e),n=new P(e),n.parentLocale=Ma[t],Ma[t]=n,$t(t)}else null!=Ma[t]&&(null!=Ma[t].parentLocale?Ma[t]=Ma[t].parentLocale:null!=Ma[t]&&delete Ma[t]);return Ma[t]}function ne(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return ka;if(!a(t)){if(e=Qt(t))return e;t=[t]}return Kt(t)}function ie(){return xi(Ma)}function ae(t){var e,n=t._a;return n&&-2===f(t).overflow&&(e=n[ta]<0||n[ta]>11?ta:n[ea]<1||n[ea]>ot(n[$i],n[ta])?ea:n[na]<0||n[na]>24||24===n[na]&&(0!==n[ia]||0!==n[aa]||0!==n[oa])?na:n[ia]<0||n[ia]>59?ia:n[aa]<0||n[aa]>59?aa:n[oa]<0||n[oa]>999?oa:-1,f(t)._overflowDayOfYear&&($i>e||e>ea)&&(e=ea),f(t)._overflowWeeks&&-1===e&&(e=ra),f(t)._overflowWeekday&&-1===e&&(e=sa),f(t).overflow=e),t}function oe(t){var e,n,i,a,o,r,s=t._i,l=Da.exec(s)||Ca.exec(s);if(l){for(f(t).iso=!0,e=0,n=Pa.length;n>e;e++)if(Pa[e][1].exec(l[1])){a=Pa[e][0],i=Pa[e][2]!==!1;break}if(null==a)return void(t._isValid=!1);if(l[3]){for(e=0,n=Aa.length;n>e;e++)if(Aa[e][1].exec(l[3])){o=(l[2]||" ")+Aa[e][0];break}if(null==o)return void(t._isValid=!1)}if(!i&&null!=o)return void(t._isValid=!1);if(l[4]){if(!Ta.exec(l[4]))return void(t._isValid=!1);r="Z"}t._f=a+(o||"")+(r||""),ce(t)}else t._isValid=!1}function re(e){var n=Fa.exec(e._i);return null!==n?void(e._d=new Date(+n[1])):(oe(e),void(e._isValid===!1&&(delete e._isValid,t.createFromInputFallback(e))))}function se(t,e,n){return null!=t?t:null!=e?e:n}function le(e){var n=new Date(t.now());return e._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function de(t){var e,n,i,a,o=[];if(!t._d){for(i=le(t),t._w&&null==t._a[ea]&&null==t._a[ta]&&ue(t),t._dayOfYear&&(a=se(t._a[$i],i[$i]),t._dayOfYear>pt(a)&&(f(t)._overflowDayOfYear=!0),n=xt(a,0,t._dayOfYear),t._a[ta]=n.getUTCMonth(),t._a[ea]=n.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=o[e]=i[e];for(;7>e;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[na]&&0===t._a[ia]&&0===t._a[aa]&&0===t._a[oa]&&(t._nextDay=!0,t._a[na]=0),t._d=(t._useUTC?xt:yt).apply(null,o),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[na]=24)}}function ue(t){var e,n,i,a,o,r,s,l;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(o=1,r=4,n=se(e.GG,t._a[$i],wt(ye(),1,4).year),i=se(e.W,1),a=se(e.E,1),(1>a||a>7)&&(l=!0)):(o=t._locale._week.dow,r=t._locale._week.doy,n=se(e.gg,t._a[$i],wt(ye(),o,r).year),i=se(e.w,1),null!=e.d?(a=e.d,(0>a||a>6)&&(l=!0)):null!=e.e?(a=e.e+o,(e.e<0||e.e>6)&&(l=!0)):a=o),1>i||i>_t(n,o,r)?f(t)._overflowWeeks=!0:null!=l?f(t)._overflowWeekday=!0:(s=St(n,i,a,o,r),t._a[$i]=s.year,t._dayOfYear=s.dayOfYear)}function ce(e){if(e._f===t.ISO_8601)return void oe(e);e._a=[],f(e).empty=!0;var n,i,a,o,r,s=""+e._i,l=s.length,d=0;for(a=K(e._f,e._locale).match(Ai)||[],n=0;n<a.length;n++)o=a[n],i=(s.match($(o,e))||[])[0],i&&(r=s.substr(0,s.indexOf(i)),r.length>0&&f(e).unusedInput.push(r),s=s.slice(s.indexOf(i)+i.length),d+=i.length),Oi[o]?(i?f(e).empty=!1:f(e).unusedTokens.push(o),at(o,i,e)):e._strict&&!i&&f(e).unusedTokens.push(o);f(e).charsLeftOver=l-d,s.length>0&&f(e).unusedInput.push(s),e._a[na]<=12&&f(e).bigHour===!0&&e._a[na]>0&&(f(e).bigHour=void 0),f(e).parsedDateParts=e._a.slice(0),f(e).meridiem=e._meridiem,e._a[na]=he(e._locale,e._a[na],e._meridiem),de(e),ae(e)}function he(t,e,n){var i;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(i=t.isPM(n),i&&12>e&&(e+=12),i||12!==e||(e=0),e):e}function fe(t){var e,n,i,a,o;if(0===t._f.length)return f(t).invalidFormat=!0,void(t._d=new Date(NaN));for(a=0;a<t._f.length;a++)o=0,e=v({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[a],ce(e),g(e)&&(o+=f(e).charsLeftOver,o+=10*f(e).unusedTokens.length,f(e).score=o,(null==i||i>o)&&(i=o,n=e));u(t,n||e)}function ge(t){if(!t._d){var e=B(t._i);t._a=l([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],function(t){return t&&parseInt(t,10)}),de(t)}}function me(t){var e=new b(ae(pe(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function pe(t){var e=t._i,n=t._f;return t._locale=t._locale||ne(t._l),null===e||void 0===n&&""===e?m({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),y(e)?new b(ae(e)):(a(n)?fe(t):s(e)?t._d=e:n?ce(t):ve(t),g(t)||(t._d=null),t))}function ve(e){var n=e._i;void 0===n?e._d=new Date(t.now()):s(n)?e._d=new Date(n.valueOf()):"string"==typeof n?re(e):a(n)?(e._a=l(n.slice(0),function(t){return parseInt(t,10)}),de(e)):"object"==typeof n?ge(e):"number"==typeof n?e._d=new Date(n):t.createFromInputFallback(e)}function be(t,e,n,i,s){var l={};return"boolean"==typeof n&&(i=n,n=void 0),(o(t)&&r(t)||a(t)&&0===t.length)&&(t=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=s,l._l=n,l._i=t,l._f=e,l._strict=i,me(l)}function ye(t,e,n,i){return be(t,e,n,i,!1)}function xe(t,e){var n,i;if(1===e.length&&a(e[0])&&(e=e[0]),!e.length)return ye();for(n=e[0],i=1;i<e.length;++i)(!e[i].isValid()||e[i][t](n))&&(n=e[i]);return n}function ke(){var t=[].slice.call(arguments,0);return xe("isBefore",t)}function Se(){var t=[].slice.call(arguments,0);return xe("isAfter",t)}function we(t){var e=B(t),n=e.year||0,i=e.quarter||0,a=e.month||0,o=e.week||0,r=e.day||0,s=e.hour||0,l=e.minute||0,d=e.second||0,u=e.millisecond||0;this._milliseconds=+u+1e3*d+6e4*l+1e3*s*60*60,this._days=+r+7*o,this._months=+a+3*i+12*n,this._data={},this._locale=ne(),this._bubble()}function _e(t){return t instanceof we}function Me(t,e){q(t,0,0,function(){var t=this.utcOffset(),n="+";return 0>t&&(t=-t,n="-"),n+G(~~(t/60),2)+e+G(~~t%60,2)})}function De(t,e){var n=(e||"").match(t)||[],i=n[n.length-1]||[],a=(i+"").match(Wa)||["-",0,0],o=+(60*a[1])+k(a[2]);return"+"===a[0]?o:-o}function Ce(e,n){var i,a;return n._isUTC?(i=n.clone(),a=(y(e)||s(e)?e.valueOf():ye(e).valueOf())-i.valueOf(),i._d.setTime(i._d.valueOf()+a),t.updateOffset(i,!1),i):ye(e).local()}function Te(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Pe(e,n){var i,a=this._offset||0;return this.isValid()?null!=e?("string"==typeof e?e=De(Zi,e):Math.abs(e)<16&&(e=60*e),!this._isUTC&&n&&(i=Te(this)),this._offset=e,this._isUTC=!0,null!=i&&this.add(i,"m"),a!==e&&(!n||this._changeInProgress?Ge(this,ze(e-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?a:Te(this):null!=e?this:NaN}function Ae(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Fe(t){return this.utcOffset(0,t)}function Ie(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Te(this),"m")),this}function Oe(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(De(qi,this._i)),this}function Re(t){return this.isValid()?(t=t?ye(t).utcOffset():0,(this.utcOffset()-t)%60===0):!1}function We(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Le(){if(!p(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=pe(t),t._a){var e=t._isUTC?c(t._a):ye(t._a);this._isDSTShifted=this.isValid()&&S(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Ve(){return this.isValid()?!this._isUTC:!1}function Be(){return this.isValid()?this._isUTC:!1}function Ye(){return this.isValid()?this._isUTC&&0===this._offset:!1}function ze(t,e){var n,i,a,o=t,r=null;return _e(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(o={},e?o[e]=t:o.milliseconds=t):(r=La.exec(t))?(n="-"===r[1]?-1:1,o={y:0,d:k(r[ea])*n,h:k(r[na])*n,m:k(r[ia])*n,s:k(r[aa])*n,ms:k(r[oa])*n}):(r=Va.exec(t))?(n="-"===r[1]?-1:1,o={y:Ne(r[2],n),M:Ne(r[3],n),w:Ne(r[4],n),d:Ne(r[5],n),h:Ne(r[6],n),m:Ne(r[7],n),s:Ne(r[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(a=Ee(ye(o.from),ye(o.to)),o={},o.ms=a.milliseconds,o.M=a.months),i=new we(o),_e(t)&&d(t,"_locale")&&(i._locale=t._locale),i}function Ne(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function He(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function Ee(t,e){var n;return t.isValid()&&e.isValid()?(e=Ce(e,t),t.isBefore(e)?n=He(t,e):(n=He(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Ue(t){return 0>t?-1*Math.round(-1*t):Math.round(t)}function je(t,e){return function(n,i){var a,o;return null===i||isNaN(+i)||(M(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=n,n=i,i=o),n="string"==typeof n?+n:n,a=ze(n,i),Ge(this,a,t),this}}function Ge(e,n,i,a){var o=n._milliseconds,r=Ue(n._days),s=Ue(n._months);e.isValid()&&(a=null==a?!0:a,o&&e._d.setTime(e._d.valueOf()+o*i),r&&E(e,"Date",H(e,"Date")+r*i),s&&ut(e,H(e,"Month")+s*i),a&&t.updateOffset(e,r||s))}function qe(t,e){var n=t.diff(e,"days",!0);return-6>n?"sameElse":-1>n?"lastWeek":0>n?"lastDay":1>n?"sameDay":2>n?"nextDay":7>n?"nextWeek":"sameElse"}function Ze(e,n){var i=e||ye(),a=Ce(i,this).startOf("day"),o=t.calendarFormat(this,a)||"sameElse",r=n&&(D(n[o])?n[o].call(this,i):n[o]);return this.format(r||this.localeData().calendar(o,this,ye(i)))}function Je(){return new b(this)}function Xe(t,e){var n=y(t)?t:ye(t);return this.isValid()&&n.isValid()?(e=V(p(e)?"millisecond":e),"millisecond"===e?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(e).valueOf()):!1}function Ke(t,e){var n=y(t)?t:ye(t);return this.isValid()&&n.isValid()?(e=V(p(e)?"millisecond":e),"millisecond"===e?this.valueOf()<n.valueOf():this.clone().endOf(e).valueOf()<n.valueOf()):!1}function Qe(t,e,n,i){return i=i||"()",("("===i[0]?this.isAfter(t,n):!this.isBefore(t,n))&&(")"===i[1]?this.isBefore(e,n):!this.isAfter(e,n))}function $e(t,e){var n,i=y(t)?t:ye(t);return this.isValid()&&i.isValid()?(e=V(e||"millisecond"),"millisecond"===e?this.valueOf()===i.valueOf():(n=i.valueOf(),this.clone().startOf(e).valueOf()<=n&&n<=this.clone().endOf(e).valueOf())):!1}function tn(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function en(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function nn(t,e,n){var i,a,o,r;return this.isValid()?(i=Ce(t,this),i.isValid()?(a=6e4*(i.utcOffset()-this.utcOffset()),e=V(e),"year"===e||"month"===e||"quarter"===e?(r=an(this,i),"quarter"===e?r/=3:"year"===e&&(r/=12)):(o=this-i,r="second"===e?o/1e3:"minute"===e?o/6e4:"hour"===e?o/36e5:"day"===e?(o-a)/864e5:"week"===e?(o-a)/6048e5:o),n?r:x(r)):NaN):NaN}function an(t,e){var n,i,a=12*(e.year()-t.year())+(e.month()-t.month()),o=t.clone().add(a,"months");return 0>e-o?(n=t.clone().add(a-1,"months"),i=(e-o)/(o-n)):(n=t.clone().add(a+1,"months"),i=(e-o)/(n-o)),-(a+i)||0}function on(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function rn(){var t=this.clone().utc();return 0<t.year()&&t.year()<=9999?D(Date.prototype.toISOString)?this.toDate().toISOString():X(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):X(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function sn(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var n=X(this,e);return this.localeData().postformat(n)}function ln(t,e){return this.isValid()&&(y(t)&&t.isValid()||ye(t).isValid())?ze({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function dn(t){return this.from(ye(),t)}function un(t,e){return this.isValid()&&(y(t)&&t.isValid()||ye(t).isValid())?ze({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function cn(t){return this.to(ye(),t)}function hn(t){var e;return void 0===t?this._locale._abbr:(e=ne(t),null!=e&&(this._locale=e),this)}function fn(){return this._locale}function gn(t){switch(t=V(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function mn(t){return t=V(t),void 0===t||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function pn(){return this._d.valueOf()-6e4*(this._offset||0)}function vn(){return Math.floor(this.valueOf()/1e3)}function bn(){return new Date(this.valueOf())}function yn(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function xn(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function kn(){return this.isValid()?this.toISOString():null}function Sn(){return g(this)}function wn(){return u({},f(this))}function _n(){return f(this).overflow}function Mn(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Dn(t,e){q(0,[t,t.length],0,e)}function Cn(t){return Fn.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Tn(t){return Fn.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Pn(){return _t(this.year(),1,4)}function An(){var t=this.localeData()._week;return _t(this.year(),t.dow,t.doy)}function Fn(t,e,n,i,a){var o;return null==t?wt(this,i,a).year:(o=_t(t,i,a),e>o&&(e=o),In.call(this,t,e,n,i,a))}function In(t,e,n,i,a){var o=St(t,e,n,i,a),r=xt(o.year,0,o.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function On(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Rn(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Wn(t,e){e[oa]=k(1e3*("0."+t))}function Ln(){return this._isUTC?"UTC":""}function Vn(){return this._isUTC?"Coordinated Universal Time":""}function Bn(t){return ye(1e3*t)}function Yn(){return ye.apply(null,arguments).parseZone()}function zn(t){return t}function Nn(t,e,n,i){var a=ne(),o=c().set(i,e);return a[n](o,t)}function Hn(t,e,n){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Nn(t,e,n,"month");var i,a=[];for(i=0;12>i;i++)a[i]=Nn(t,i,n,"month");return a}function En(t,e,n,i){"boolean"==typeof t?("number"==typeof e&&(n=e,e=void 0),e=e||""):(e=t,n=e,t=!1,"number"==typeof e&&(n=e,e=void 0),e=e||"");var a=ne(),o=t?a._week.dow:0;if(null!=n)return Nn(e,(n+o)%7,i,"day");var r,s=[];for(r=0;7>r;r++)s[r]=Nn(e,(r+o)%7,i,"day");return s}function Un(t,e){return Hn(t,e,"months")}function jn(t,e){return Hn(t,e,"monthsShort")}function Gn(t,e,n){return En(t,e,n,"weekdays")}function qn(t,e,n){return En(t,e,n,"weekdaysShort")}function Zn(t,e,n){return En(t,e,n,"weekdaysMin")}function Jn(){var t=this._data;return this._milliseconds=Ja(this._milliseconds),this._days=Ja(this._days),this._months=Ja(this._months),t.milliseconds=Ja(t.milliseconds),t.seconds=Ja(t.seconds),t.minutes=Ja(t.minutes),t.hours=Ja(t.hours),t.months=Ja(t.months),t.years=Ja(t.years),this}function Xn(t,e,n,i){var a=ze(e,n);return t._milliseconds+=i*a._milliseconds,t._days+=i*a._days,t._months+=i*a._months,t._bubble()}function Kn(t,e){return Xn(this,t,e,1)}function Qn(t,e){return Xn(this,t,e,-1)}function $n(t){return 0>t?Math.floor(t):Math.ceil(t)}function ti(){var t,e,n,i,a,o=this._milliseconds,r=this._days,s=this._months,l=this._data;return o>=0&&r>=0&&s>=0||0>=o&&0>=r&&0>=s||(o+=864e5*$n(ni(s)+r),r=0,s=0),l.milliseconds=o%1e3,t=x(o/1e3),l.seconds=t%60,e=x(t/60),l.minutes=e%60,n=x(e/60),l.hours=n%24,r+=x(n/24),a=x(ei(r)),s+=a,r-=$n(ni(a)),i=x(s/12),s%=12,l.days=r,l.months=s,l.years=i,this}function ei(t){return 4800*t/146097}function ni(t){return 146097*t/4800}function ii(t){var e,n,i=this._milliseconds;if(t=V(t),"month"===t||"year"===t)return e=this._days+i/864e5,n=this._months+ei(e),"month"===t?n:n/12;switch(e=this._days+Math.round(ni(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}}function ai(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12)}function oi(t){return function(){return this.as(t)}}function ri(t){return t=V(t),this[t+"s"]()}function si(t){return function(){return this._data[t]}}function li(){return x(this.days()/7)}function di(t,e,n,i,a){return a.relativeTime(e||1,!!n,t,i)}function ui(t,e,n){var i=ze(t).abs(),a=ho(i.as("s")),o=ho(i.as("m")),r=ho(i.as("h")),s=ho(i.as("d")),l=ho(i.as("M")),d=ho(i.as("y")),u=a<fo.s&&["s",a]||1>=o&&["m"]||o<fo.m&&["mm",o]||1>=r&&["h"]||r<fo.h&&["hh",r]||1>=s&&["d"]||s<fo.d&&["dd",s]||1>=l&&["M"]||l<fo.M&&["MM",l]||1>=d&&["y"]||["yy",d];return u[2]=e,u[3]=+t>0,u[4]=n,di.apply(null,u)}function ci(t){return void 0===t?ho:"function"==typeof t?(ho=t,!0):!1}function hi(t,e){return void 0===fo[t]?!1:void 0===e?fo[t]:(fo[t]=e,!0)}function fi(t){var e=this.localeData(),n=ui(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}function gi(){var t,e,n,i=go(this._milliseconds)/1e3,a=go(this._days),o=go(this._months);t=x(i/60),e=x(t/60),i%=60,t%=60,n=x(o/12),o%=12;var r=n,s=o,l=a,d=e,u=t,c=i,h=this.asSeconds();return h?(0>h?"-":"")+"P"+(r?r+"Y":"")+(s?s+"M":"")+(l?l+"D":"")+(d||u||c?"T":"")+(d?d+"H":"")+(u?u+"M":"")+(c?c+"S":""):"P0D"}var mi,pi;pi=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,i=0;n>i;i++)if(i in e&&t.call(this,e[i],i,e))return!0;return!1};var vi=t.momentProperties=[],bi=!1,yi={};t.suppressDeprecationWarnings=!1,t.deprecationHandler=null;var xi;xi=Object.keys?Object.keys:function(t){var e,n=[];for(e in t)d(t,e)&&n.push(e);return n};var ki,Si={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},wi={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},_i="Invalid date",Mi="%d",Di=/\\d{1,2}/,Ci={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Ti={},Pi={},Ai=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Fi=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ii={},Oi={},Ri=/\\d/,Wi=/\\d\\d/,Li=/\\d{3}/,Vi=/\\d{4}/,Bi=/[+-]?\\d{6}/,Yi=/\\d\\d?/,zi=/\\d\\d\\d\\d?/,Ni=/\\d\\d\\d\\d\\d\\d?/,Hi=/\\d{1,3}/,Ei=/\\d{1,4}/,Ui=/[+-]?\\d{1,6}/,ji=/\\d+/,Gi=/[+-]?\\d+/,qi=/Z|[+-]\\d\\d:?\\d\\d/gi,Zi=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,Ji=/[+-]?\\d+(\\.\\d{1,3})?/,Xi=/[0-9]*[\'a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i,Ki={},Qi={},$i=0,ta=1,ea=2,na=3,ia=4,aa=5,oa=6,ra=7,sa=8;ki=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},q("M",["MM",2],"Mo",function(){return this.month()+1}),q("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),q("MMMM",0,0,function(t){return this.localeData().months(this,t)}),L("month","M"),Y("month",8),Q("M",Yi),Q("MM",Yi,Wi),Q("MMM",function(t,e){return e.monthsShortRegex(t)}),Q("MMMM",function(t,e){return e.monthsRegex(t)}),nt(["M","MM"],function(t,e){e[ta]=k(t)-1}),nt(["MMM","MMMM"],function(t,e,n,i){var a=n._locale.monthsParse(t,i,n._strict);null!=a?e[ta]=a:f(n).invalidMonth=t});var la=/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/,da="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ua="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),ca=Xi,ha=Xi;q("Y",0,0,function(){var t=this.year();return 9999>=t?""+t:"+"+t}),q(0,["YY",2],0,function(){return this.year()%100}),q(0,["YYYY",4],0,"year"),q(0,["YYYYY",5],0,"year"),q(0,["YYYYYY",6,!0],0,"year"),L("year","y"),Y("year",1),Q("Y",Gi),Q("YY",Yi,Wi),Q("YYYY",Ei,Vi),Q("YYYYY",Ui,Bi),Q("YYYYYY",Ui,Bi),nt(["YYYYY","YYYYYY"],$i),nt("YYYY",function(e,n){n[$i]=2===e.length?t.parseTwoDigitYear(e):k(e)}),nt("YY",function(e,n){n[$i]=t.parseTwoDigitYear(e)}),nt("Y",function(t,e){e[$i]=parseInt(t,10)}),t.parseTwoDigitYear=function(t){return k(t)+(k(t)>68?1900:2e3)};var fa=N("FullYear",!0);q("w",["ww",2],"wo","week"),q("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),Y("week",5),Y("isoWeek",5),Q("w",Yi),Q("ww",Yi,Wi),Q("W",Yi),Q("WW",Yi,Wi),it(["w","ww","W","WW"],function(t,e,n,i){e[i.substr(0,1)]=k(t)});var ga={dow:0,doy:6};q("d",0,"do","day"),q("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),q("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),q("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),q("e",0,0,"weekday"),q("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),Y("day",11),Y("weekday",11),Y("isoWeekday",11),Q("d",Yi),Q("e",Yi),Q("E",Yi),Q("dd",function(t,e){return e.weekdaysMinRegex(t)}),Q("ddd",function(t,e){return e.weekdaysShortRegex(t)}),Q("dddd",function(t,e){return e.weekdaysRegex(t)}),it(["dd","ddd","dddd"],function(t,e,n,i){var a=n._locale.weekdaysParse(t,i,n._strict);null!=a?e.d=a:f(n).invalidWeekday=t}),it(["d","e","E"],function(t,e,n,i){e[i]=k(t)});var ma="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),pa="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),va="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ba=Xi,ya=Xi,xa=Xi;q("H",["HH",2],0,"hour"),q("h",["hh",2],0,Ut),q("k",["kk",2],0,jt),q("hmm",0,0,function(){return""+Ut.apply(this)+G(this.minutes(),2)}),q("hmmss",0,0,function(){return""+Ut.apply(this)+G(this.minutes(),2)+G(this.seconds(),2)}),q("Hmm",0,0,function(){return""+this.hours()+G(this.minutes(),2)}),q("Hmmss",0,0,function(){return""+this.hours()+G(this.minutes(),2)+G(this.seconds(),2)}),Gt("a",!0),Gt("A",!1),L("hour","h"),Y("hour",13),Q("a",qt),Q("A",qt),Q("H",Yi),Q("h",Yi),Q("HH",Yi,Wi),Q("hh",Yi,Wi),Q("hmm",zi),Q("hmmss",Ni),Q("Hmm",zi),Q("Hmmss",Ni),nt(["H","HH"],na),nt(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),nt(["h","hh"],function(t,e,n){e[na]=k(t),f(n).bigHour=!0}),nt("hmm",function(t,e,n){var i=t.length-2;e[na]=k(t.substr(0,i)),e[ia]=k(t.substr(i)),f(n).bigHour=!0}),nt("hmmss",function(t,e,n){var i=t.length-4,a=t.length-2;e[na]=k(t.substr(0,i)),e[ia]=k(t.substr(i,2)),e[aa]=k(t.substr(a)),f(n).bigHour=!0}),nt("Hmm",function(t,e,n){var i=t.length-2;e[na]=k(t.substr(0,i)),e[ia]=k(t.substr(i))}),nt("Hmmss",function(t,e,n){var i=t.length-4,a=t.length-2;e[na]=k(t.substr(0,i)),e[ia]=k(t.substr(i,2)),e[aa]=k(t.substr(a))});var ka,Sa=/[ap]\\.?m?\\.?/i,wa=N("Hours",!0),_a={calendar:Si,longDateFormat:wi,invalidDate:_i,ordinal:Mi,ordinalParse:Di,relativeTime:Ci,months:da,monthsShort:ua,week:ga,weekdays:ma,weekdaysMin:va,weekdaysShort:pa,meridiemParse:Sa},Ma={},Da=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/,Ca=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/,Ta=/Z|[+-]\\d\\d(?::?\\d\\d)?/,Pa=[["YYYYYY-MM-DD",/[+-]\\d{6}-\\d\\d-\\d\\d/],["YYYY-MM-DD",/\\d{4}-\\d\\d-\\d\\d/],["GGGG-[W]WW-E",/\\d{4}-W\\d\\d-\\d/],["GGGG-[W]WW",/\\d{4}-W\\d\\d/,!1],["YYYY-DDD",/\\d{4}-\\d{3}/],["YYYY-MM",/\\d{4}-\\d\\d/,!1],["YYYYYYMMDD",/[+-]\\d{10}/],["YYYYMMDD",/\\d{8}/],["GGGG[W]WWE",/\\d{4}W\\d{3}/],["GGGG[W]WW",/\\d{4}W\\d{2}/,!1],["YYYYDDD",/\\d{7}/]],Aa=[["HH:mm:ss.SSSS",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],["HH:mm:ss,SSSS",/\\d\\d:\\d\\d:\\d\\d,\\d+/],["HH:mm:ss",/\\d\\d:\\d\\d:\\d\\d/],["HH:mm",/\\d\\d:\\d\\d/],["HHmmss.SSSS",/\\d\\d\\d\\d\\d\\d\\.\\d+/],["HHmmss,SSSS",/\\d\\d\\d\\d\\d\\d,\\d+/],["HHmmss",/\\d\\d\\d\\d\\d\\d/],["HHmm",/\\d\\d\\d\\d/],["HH",/\\d\\d/]],Fa=/^\\/?Date\\((\\-?\\d+)/i;\nt.createFromInputFallback=_("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),t.ISO_8601=function(){};var Ia=_("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=ye.apply(null,arguments);return this.isValid()&&t.isValid()?this>t?this:t:m()}),Oa=_("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=ye.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:m()}),Ra=function(){return Date.now?Date.now():+new Date};Me("Z",":"),Me("ZZ",""),Q("Z",Zi),Q("ZZ",Zi),nt(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=De(Zi,t)});var Wa=/([\\+\\-]|\\d\\d)/gi;t.updateOffset=function(){};var La=/^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)\\.?(\\d{3})?\\d*)?$/,Va=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;ze.fn=we.prototype;var Ba=je(1,"add"),Ya=je(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var za=_("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});q(0,["gg",2],0,function(){return this.weekYear()%100}),q(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Dn("gggg","weekYear"),Dn("ggggg","weekYear"),Dn("GGGG","isoWeekYear"),Dn("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),Y("weekYear",1),Y("isoWeekYear",1),Q("G",Gi),Q("g",Gi),Q("GG",Yi,Wi),Q("gg",Yi,Wi),Q("GGGG",Ei,Vi),Q("gggg",Ei,Vi),Q("GGGGG",Ui,Bi),Q("ggggg",Ui,Bi),it(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,i){e[i.substr(0,2)]=k(t)}),it(["gg","GG"],function(e,n,i,a){n[a]=t.parseTwoDigitYear(e)}),q("Q",0,"Qo","quarter"),L("quarter","Q"),Y("quarter",7),Q("Q",Ri),nt("Q",function(t,e){e[ta]=3*(k(t)-1)}),q("D",["DD",2],"Do","date"),L("date","D"),Y("date",9),Q("D",Yi),Q("DD",Yi,Wi),Q("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),nt(["D","DD"],ea),nt("Do",function(t,e){e[ea]=k(t.match(Yi)[0],10)});var Na=N("Date",!0);q("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),Y("dayOfYear",4),Q("DDD",Hi),Q("DDDD",Li),nt(["DDD","DDDD"],function(t,e,n){n._dayOfYear=k(t)}),q("m",["mm",2],0,"minute"),L("minute","m"),Y("minute",14),Q("m",Yi),Q("mm",Yi,Wi),nt(["m","mm"],ia);var Ha=N("Minutes",!1);q("s",["ss",2],0,"second"),L("second","s"),Y("second",15),Q("s",Yi),Q("ss",Yi,Wi),nt(["s","ss"],aa);var Ea=N("Seconds",!1);q("S",0,0,function(){return~~(this.millisecond()/100)}),q(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),q(0,["SSS",3],0,"millisecond"),q(0,["SSSS",4],0,function(){return 10*this.millisecond()}),q(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),q(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),q(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),q(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),q(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),L("millisecond","ms"),Y("millisecond",16),Q("S",Hi,Ri),Q("SS",Hi,Wi),Q("SSS",Hi,Li);var Ua;for(Ua="SSSS";Ua.length<=9;Ua+="S")Q(Ua,ji);for(Ua="S";Ua.length<=9;Ua+="S")nt(Ua,Wn);var ja=N("Milliseconds",!1);q("z",0,0,"zoneAbbr"),q("zz",0,0,"zoneName");var Ga=b.prototype;Ga.add=Ba,Ga.calendar=Ze,Ga.clone=Je,Ga.diff=nn,Ga.endOf=mn,Ga.format=sn,Ga.from=ln,Ga.fromNow=dn,Ga.to=un,Ga.toNow=cn,Ga.get=U,Ga.invalidAt=_n,Ga.isAfter=Xe,Ga.isBefore=Ke,Ga.isBetween=Qe,Ga.isSame=$e,Ga.isSameOrAfter=tn,Ga.isSameOrBefore=en,Ga.isValid=Sn,Ga.lang=za,Ga.locale=hn,Ga.localeData=fn,Ga.max=Oa,Ga.min=Ia,Ga.parsingFlags=wn,Ga.set=j,Ga.startOf=gn,Ga.subtract=Ya,Ga.toArray=yn,Ga.toObject=xn,Ga.toDate=bn,Ga.toISOString=rn,Ga.toJSON=kn,Ga.toString=on,Ga.unix=vn,Ga.valueOf=pn,Ga.creationData=Mn,Ga.year=fa,Ga.isLeapYear=bt,Ga.weekYear=Cn,Ga.isoWeekYear=Tn,Ga.quarter=Ga.quarters=On,Ga.month=ct,Ga.daysInMonth=ht,Ga.week=Ga.weeks=Tt,Ga.isoWeek=Ga.isoWeeks=Pt,Ga.weeksInYear=An,Ga.isoWeeksInYear=Pn,Ga.date=Na,Ga.day=Ga.days=Vt,Ga.weekday=Bt,Ga.isoWeekday=Yt,Ga.dayOfYear=Rn,Ga.hour=Ga.hours=wa,Ga.minute=Ga.minutes=Ha,Ga.second=Ga.seconds=Ea,Ga.millisecond=Ga.milliseconds=ja,Ga.utcOffset=Pe,Ga.utc=Fe,Ga.local=Ie,Ga.parseZone=Oe,Ga.hasAlignedHourOffset=Re,Ga.isDST=We,Ga.isLocal=Ve,Ga.isUtcOffset=Be,Ga.isUtc=Ye,Ga.isUTC=Ye,Ga.zoneAbbr=Ln,Ga.zoneName=Vn,Ga.dates=_("dates accessor is deprecated. Use date instead.",Na),Ga.months=_("months accessor is deprecated. Use month instead",ct),Ga.years=_("years accessor is deprecated. Use year instead",fa),Ga.zone=_("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ae),Ga.isDSTShifted=_("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Le);var qa=Ga,Za=P.prototype;Za.calendar=A,Za.longDateFormat=F,Za.invalidDate=I,Za.ordinal=O,Za.preparse=zn,Za.postformat=zn,Za.relativeTime=R,Za.pastFuture=W,Za.set=C,Za.months=rt,Za.monthsShort=st,Za.monthsParse=dt,Za.monthsRegex=gt,Za.monthsShortRegex=ft,Za.week=Mt,Za.firstDayOfYear=Ct,Za.firstDayOfWeek=Dt,Za.weekdays=It,Za.weekdaysMin=Rt,Za.weekdaysShort=Ot,Za.weekdaysParse=Lt,Za.weekdaysRegex=zt,Za.weekdaysShortRegex=Nt,Za.weekdaysMinRegex=Ht,Za.isPM=Zt,Za.meridiem=Jt,$t("en",{ordinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===k(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}}),t.lang=_("moment.lang is deprecated. Use moment.locale instead.",$t),t.langData=_("moment.langData is deprecated. Use moment.localeData instead.",ne);var Ja=Math.abs,Xa=oi("ms"),Ka=oi("s"),Qa=oi("m"),$a=oi("h"),to=oi("d"),eo=oi("w"),no=oi("M"),io=oi("y"),ao=si("milliseconds"),oo=si("seconds"),ro=si("minutes"),so=si("hours"),lo=si("days"),uo=si("months"),co=si("years"),ho=Math.round,fo={s:45,m:45,h:22,d:26,M:11},go=Math.abs,mo=we.prototype;mo.abs=Jn,mo.add=Kn,mo.subtract=Qn,mo.as=ii,mo.asMilliseconds=Xa,mo.asSeconds=Ka,mo.asMinutes=Qa,mo.asHours=$a,mo.asDays=to,mo.asWeeks=eo,mo.asMonths=no,mo.asYears=io,mo.valueOf=ai,mo._bubble=ti,mo.get=ri,mo.milliseconds=ao,mo.seconds=oo,mo.minutes=ro,mo.hours=so,mo.days=lo,mo.weeks=li,mo.months=uo,mo.years=co,mo.humanize=fi,mo.toISOString=gi,mo.toString=gi,mo.toJSON=gi,mo.locale=hn,mo.localeData=fn,mo.toIsoString=_("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",gi),mo.lang=za,q("X",0,0,"unix"),q("x",0,0,"valueOf"),Q("x",Gi),Q("X",Ji),nt("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),nt("x",function(t,e,n){n._d=new Date(k(t))}),t.version="2.14.1",i(ye),t.fn=qa,t.min=ke,t.max=Se,t.now=Ra,t.utc=c,t.unix=Bn,t.months=Un,t.isDate=s,t.locale=$t,t.invalid=m,t.duration=ze,t.isMoment=y,t.weekdays=Gn,t.parseZone=Yn,t.localeData=ne,t.isDuration=_e,t.monthsShort=jn,t.weekdaysMin=Zn,t.defineLocale=te,t.updateLocale=ee,t.locales=ie,t.weekdaysShort=qn,t.normalizeUnits=V,t.relativeTimeRounding=ci,t.relativeTimeThreshold=hi,t.calendarFormat=qe,t.prototype=qa;var po=t;return po})},{}],7:[function(t,e,n){var i=t(27)();t(26)(i),t(22)(i),t(25)(i),t(21)(i),t(23)(i),t(24)(i),t(28)(i),t(32)(i),t(30)(i),t(31)(i),t(33)(i),t(29)(i),t(34)(i),t(35)(i),t(36)(i),t(37)(i),t(38)(i),t(41)(i),t(39)(i),t(40)(i),t(42)(i),t(43)(i),t(44)(i),t(15)(i),t(16)(i),t(17)(i),t(18)(i),t(19)(i),t(20)(i),t(8)(i),t(9)(i),t(10)(i),t(11)(i),t(12)(i),t(13)(i),t(14)(i),window.Chart=e.exports=i},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,34:34,35:35,36:36,37:37,38:38,39:39,40:40,41:41,42:42,43:43,44:44,8:8,9:9}],8:[function(t,e,n){"use strict";e.exports=function(t){t.Bar=function(e,n){return n.type="bar",new t(e,n)}}},{}],9:[function(t,e,n){"use strict";e.exports=function(t){t.Bubble=function(e,n){return n.type="bubble",new t(e,n)}}},{}],10:[function(t,e,n){"use strict";e.exports=function(t){t.Doughnut=function(e,n){return n.type="doughnut",new t(e,n)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t){t.Line=function(e,n){return n.type="line",new t(e,n)}}},{}],12:[function(t,e,n){"use strict";e.exports=function(t){t.PolarArea=function(e,n){return n.type="polarArea",new t(e,n)}}},{}],13:[function(t,e,n){"use strict";e.exports=function(t){t.Radar=function(e,n){return n.options=t.helpers.configMerge({aspectRatio:1},n.options),n.type="radar",new t(e,n)}}},{}],14:[function(t,e,n){"use strict";e.exports=function(t){var e={hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-1"}],yAxes:[{type:"linear",position:"left",id:"y-axis-1"}]},tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}};t.defaults.scatter=e,t.controllers.scatter=t.controllers.line,t.Scatter=function(e,n){return n.type="scatter",new t(e,n)}}},{}],15:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.bar={hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}},t.controllers.bar=t.DatasetController.extend({dataElementType:t.elements.Rectangle,initialize:function(e,n){t.DatasetController.prototype.initialize.call(this,e,n),this.getMeta().bar=!0},getBarCount:function(){var t=this,n=0;return e.each(t.chart.data.datasets,function(e,i){var a=t.chart.getDatasetMeta(i);a.bar&&t.chart.isDatasetVisible(i)&&++n},t),n},update:function(t){var n=this;e.each(n.getMeta().data,function(e,i){n.updateElement(e,i,t)},n)},updateElement:function(t,n,i){var a=this,o=a.getMeta(),r=a.getScaleForId(o.xAxisID),s=a.getScaleForId(o.yAxisID),l=s.getBasePixel(),d=a.chart.options.elements.rectangle,u=t.custom||{},c=a.getDataset();e.extend(t,{_xScale:r,_yScale:s,_datasetIndex:a.index,_index:n,_model:{x:a.calculateBarX(n,a.index),y:i?l:a.calculateBarY(n,a.index),label:a.chart.data.labels[n],datasetLabel:c.label,base:i?l:a.calculateBarBase(a.index,n),width:a.calculateBarWidth(n),backgroundColor:u.backgroundColor?u.backgroundColor:e.getValueAtIndexOrDefault(c.backgroundColor,n,d.backgroundColor),borderSkipped:u.borderSkipped?u.borderSkipped:d.borderSkipped,borderColor:u.borderColor?u.borderColor:e.getValueAtIndexOrDefault(c.borderColor,n,d.borderColor),borderWidth:u.borderWidth?u.borderWidth:e.getValueAtIndexOrDefault(c.borderWidth,n,d.borderWidth)}}),t.pivot()},calculateBarBase:function(t,e){var n=this,i=n.getMeta(),a=n.getScaleForId(i.yAxisID),o=0;if(a.options.stacked){for(var r=n.chart,s=r.data.datasets,l=Number(s[t].data[e]),d=0;t>d;d++){var u=s[d],c=r.getDatasetMeta(d);if(c.bar&&c.yAxisID===a.id&&r.isDatasetVisible(d)){var h=Number(u.data[e]);o+=0>l?Math.min(h,0):Math.max(h,0)}}return a.getPixelForValue(o)}return a.getBasePixel()},getRuler:function(t){var e,n=this,i=n.getMeta(),a=n.getScaleForId(i.xAxisID),o=n.getBarCount();e="category"===a.options.type?a.getPixelForTick(t+1)-a.getPixelForTick(t):a.width/a.ticks.length;var r=e*a.options.categoryPercentage,s=(e-e*a.options.categoryPercentage)/2,l=r/o;if(a.ticks.length!==n.chart.data.labels.length){var d=a.ticks.length/n.chart.data.labels.length;l*=d}var u=l*a.options.barPercentage,c=l-l*a.options.barPercentage;return{datasetCount:o,tickWidth:e,categoryWidth:r,categorySpacing:s,fullBarWidth:l,barWidth:u,barSpacing:c}},calculateBarWidth:function(t){var e=this.getScaleForId(this.getMeta().xAxisID);if(e.options.barThickness)return e.options.barThickness;var n=this.getRuler(t);return e.options.stacked?n.categoryWidth:n.barWidth},getBarIndex:function(t){var e,n,i=0;for(n=0;t>n;++n)e=this.chart.getDatasetMeta(n),e.bar&&this.chart.isDatasetVisible(n)&&++i;return i},calculateBarX:function(t,e){var n=this,i=n.getMeta(),a=n.getScaleForId(i.xAxisID),o=n.getBarIndex(e),r=n.getRuler(t),s=a.getPixelForValue(null,t,e,n.chart.isCombo);return s-=n.chart.isCombo?r.tickWidth/2:0,a.options.stacked?s+r.categoryWidth/2+r.categorySpacing:s+r.barWidth/2+r.categorySpacing+r.barWidth*o+r.barSpacing/2+r.barSpacing*o},calculateBarY:function(t,e){var n=this,i=n.getMeta(),a=n.getScaleForId(i.yAxisID),o=Number(n.getDataset().data[t]);if(a.options.stacked){for(var r=0,s=0,l=0;e>l;l++){var d=n.chart.data.datasets[l],u=n.chart.getDatasetMeta(l);if(u.bar&&u.yAxisID===a.id&&n.chart.isDatasetVisible(l)){var c=Number(d.data[t]);0>c?s+=c||0:r+=c||0}}return 0>o?a.getPixelForValue(s+o):a.getPixelForValue(r+o)}return a.getPixelForValue(o)},draw:function(t){var n=this,i=t||1;e.each(n.getMeta().data,function(t,e){var a=n.getDataset().data[e];null===a||void 0===a||isNaN(a)||t.transition(i).draw()},n)},setHoverStyle:function(t){var n=this.chart.data.datasets[t._datasetIndex],i=t._index,a=t.custom||{},o=t._model;o.backgroundColor=a.hoverBackgroundColor?a.hoverBackgroundColor:e.getValueAtIndexOrDefault(n.hoverBackgroundColor,i,e.getHoverColor(o.backgroundColor)),o.borderColor=a.hoverBorderColor?a.hoverBorderColor:e.getValueAtIndexOrDefault(n.hoverBorderColor,i,e.getHoverColor(o.borderColor)),o.borderWidth=a.hoverBorderWidth?a.hoverBorderWidth:e.getValueAtIndexOrDefault(n.hoverBorderWidth,i,o.borderWidth)},removeHoverStyle:function(t){var n=this.chart.data.datasets[t._datasetIndex],i=t._index,a=t.custom||{},o=t._model,r=this.chart.options.elements.rectangle;o.backgroundColor=a.backgroundColor?a.backgroundColor:e.getValueAtIndexOrDefault(n.backgroundColor,i,r.backgroundColor),o.borderColor=a.borderColor?a.borderColor:e.getValueAtIndexOrDefault(n.borderColor,i,r.borderColor),o.borderWidth=a.borderWidth?a.borderWidth:e.getValueAtIndexOrDefault(n.borderWidth,i,r.borderWidth)}}),t.defaults.horizontalBar={hover:{mode:"label"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var n="";return t.length>0&&(t[0].yLabel?n=t[0].yLabel:e.labels.length>0&&t[0].index<e.labels.length&&(n=e.labels[t[0].index])),n},label:function(t,e){var n=e.datasets[t.datasetIndex].label||"";return n+": "+t.xLabel}}}},t.controllers.horizontalBar=t.controllers.bar.extend({updateElement:function(t,n,i){var a=this,o=a.getMeta(),r=a.getScaleForId(o.xAxisID),s=a.getScaleForId(o.yAxisID),l=r.getBasePixel(),d=t.custom||{},u=a.getDataset(),c=a.chart.options.elements.rectangle;e.extend(t,{_xScale:r,_yScale:s,_datasetIndex:a.index,_index:n,_model:{x:i?l:a.calculateBarX(n,a.index),y:a.calculateBarY(n,a.index),label:a.chart.data.labels[n],datasetLabel:u.label,base:i?l:a.calculateBarBase(a.index,n),height:a.calculateBarHeight(n),backgroundColor:d.backgroundColor?d.backgroundColor:e.getValueAtIndexOrDefault(u.backgroundColor,n,c.backgroundColor),borderSkipped:d.borderSkipped?d.borderSkipped:c.borderSkipped,borderColor:d.borderColor?d.borderColor:e.getValueAtIndexOrDefault(u.borderColor,n,c.borderColor),borderWidth:d.borderWidth?d.borderWidth:e.getValueAtIndexOrDefault(u.borderWidth,n,c.borderWidth)},draw:function(){function t(t){return l[(u+t)%4]}var e=this._chart.ctx,n=this._view,i=n.height/2,a=n.y-i,o=n.y+i,r=n.base-(n.base-n.x),s=n.borderWidth/2;n.borderWidth&&(a+=s,o-=s,r+=s),e.beginPath(),e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,e.lineWidth=n.borderWidth;var l=[[n.base,o],[n.base,a],[r,a],[r,o]],d=["bottom","left","top","right"],u=d.indexOf(n.borderSkipped,0);-1===u&&(u=0),e.moveTo.apply(e,t(0));for(var c=1;4>c;c++)e.lineTo.apply(e,t(c));e.fill(),n.borderWidth&&e.stroke()},inRange:function(t,e){var n=this._view,i=!1;return n&&(i=n.x<n.base?e>=n.y-n.height/2&&e<=n.y+n.height/2&&t>=n.x&&t<=n.base:e>=n.y-n.height/2&&e<=n.y+n.height/2&&t>=n.base&&t<=n.x),i}}),t.pivot()},calculateBarBase:function(t,e){var n=this,i=n.getMeta(),a=n.getScaleForId(i.xAxisID),o=0;if(a.options.stacked){for(var r=n.chart,s=r.data.datasets,l=Number(s[t].data[e]),d=0;t>d;d++){var u=s[d],c=r.getDatasetMeta(d);if(c.bar&&c.xAxisID===a.id&&r.isDatasetVisible(d)){var h=Number(u.data[e]);o+=0>l?Math.min(h,0):Math.max(h,0)}}return a.getPixelForValue(o)}return a.getBasePixel()},getRuler:function(t){var e,n=this,i=n.getMeta(),a=n.getScaleForId(i.yAxisID),o=n.getBarCount();e="category"===a.options.type?a.getPixelForTick(t+1)-a.getPixelForTick(t):a.width/a.ticks.length;var r=e*a.options.categoryPercentage,s=(e-e*a.options.categoryPercentage)/2,l=r/o;if(a.ticks.length!==n.chart.data.labels.length){var d=a.ticks.length/n.chart.data.labels.length;l*=d}var u=l*a.options.barPercentage,c=l-l*a.options.barPercentage;return{datasetCount:o,tickHeight:e,categoryHeight:r,categorySpacing:s,fullBarHeight:l,barHeight:u,barSpacing:c}},calculateBarHeight:function(t){var e=this,n=e.getScaleForId(e.getMeta().yAxisID);if(n.options.barThickness)return n.options.barThickness;var i=e.getRuler(t);return n.options.stacked?i.categoryHeight:i.barHeight},calculateBarX:function(t,e){var n=this,i=n.getMeta(),a=n.getScaleForId(i.xAxisID),o=Number(n.getDataset().data[t]);if(a.options.stacked){for(var r=0,s=0,l=0;e>l;l++){var d=n.chart.data.datasets[l],u=n.chart.getDatasetMeta(l);if(u.bar&&u.xAxisID===a.id&&n.chart.isDatasetVisible(l)){var c=Number(d.data[t]);0>c?s+=c||0:r+=c||0}}return 0>o?a.getPixelForValue(s+o):a.getPixelForValue(r+o)}return a.getPixelForValue(o)},calculateBarY:function(t,e){var n=this,i=n.getMeta(),a=n.getScaleForId(i.yAxisID),o=n.getBarIndex(e),r=n.getRuler(t),s=a.getPixelForValue(null,t,e,n.chart.isCombo);return s-=n.chart.isCombo?r.tickHeight/2:0,a.options.stacked?s+r.categoryHeight/2+r.categorySpacing:s+r.barHeight/2+r.categorySpacing+r.barHeight*o+r.barSpacing/2+r.barSpacing*o}})}},{}],16:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.bubble={hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var n=e.datasets[t.datasetIndex].label||"",i=e.datasets[t.datasetIndex].data[t.index];return n+": ("+i.x+", "+i.y+", "+i.r+")"}}}},t.controllers.bubble=t.DatasetController.extend({dataElementType:t.elements.Point,update:function(t){var n=this,i=n.getMeta(),a=i.data;e.each(a,function(e,i){n.updateElement(e,i,t)})},updateElement:function(n,i,a){var o=this,r=o.getMeta(),s=o.getScaleForId(r.xAxisID),l=o.getScaleForId(r.yAxisID),d=n.custom||{},u=o.getDataset(),c=u.data[i],h=o.chart.options.elements.point,f=o.index;e.extend(n,{_xScale:s,_yScale:l,_datasetIndex:f,_index:i,_model:{x:a?s.getPixelForDecimal(.5):s.getPixelForValue("object"==typeof c?c:NaN,i,f,o.chart.isCombo),y:a?l.getBasePixel():l.getPixelForValue(c,i,f),radius:a?0:d.radius?d.radius:o.getRadius(c),hitRadius:d.hitRadius?d.hitRadius:e.getValueAtIndexOrDefault(u.hitRadius,i,h.hitRadius)}}),t.DatasetController.prototype.removeHoverStyle.call(o,n,h);var g=n._model;g.skip=d.skip?d.skip:isNaN(g.x)||isNaN(g.y),n.pivot()},getRadius:function(t){return t.r||this.chart.options.elements.point.radius},setHoverStyle:function(n){var i=this;t.DatasetController.prototype.setHoverStyle.call(i,n);var a=i.chart.data.datasets[n._datasetIndex],o=n._index,r=n.custom||{},s=n._model;s.radius=r.hoverRadius?r.hoverRadius:e.getValueAtIndexOrDefault(a.hoverRadius,o,i.chart.options.elements.point.hoverRadius)+i.getRadius(a.data[o])},removeHoverStyle:function(e){var n=this;t.DatasetController.prototype.removeHoverStyle.call(n,e,n.chart.options.elements.point);var i=n.chart.data.datasets[e._datasetIndex].data[e._index],a=e.custom||{},o=e._model;o.radius=a.radius?a.radius:n.getRadius(i)}})}},{}],17:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers,n=t.defaults;n.doughnut={animation:{animateRotate:!0,animateScale:!1},aspectRatio:1,hover:{mode:"single"},legendCallback:function(t){var e=[];e.push(\'<ul class="\'+t.id+\'-legend">\');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push(\'<li><span style="background-color:\'+i[0].backgroundColor[o]+\'"></span>\'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var n=t.data;return n.labels.length&&n.datasets.length?n.labels.map(function(i,a){var o=t.getDatasetMeta(0),r=n.datasets[0],s=o.data[a],l=s&&s.custom||{},d=e.getValueAtIndexOrDefault,u=t.options.elements.arc,c=l.backgroundColor?l.backgroundColor:d(r.backgroundColor,a,u.backgroundColor),h=l.borderColor?l.borderColor:d(r.borderColor,a,u.borderColor),f=l.borderWidth?l.borderWidth:d(r.borderWidth,a,u.borderWidth);return{text:i,fillStyle:c,strokeStyle:h,lineWidth:f,hidden:isNaN(r.data[a])||o.data[a].hidden,index:a}}):[]}},onClick:function(t,e){var n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;i>n;++n)a=r.getDatasetMeta(n),a.data[o].hidden=!a.data[o].hidden;r.update()}},cutoutPercentage:50,rotation:Math.PI*-.5,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+e.datasets[t.datasetIndex].data[t.index]}}}},n.pie=e.clone(n.doughnut),e.extend(n.pie,{cutoutPercentage:0}),t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:t.elements.Arc,linkScales:e.noop,getRingIndex:function(t){for(var e=0,n=0;t>n;++n)this.chart.isDatasetVisible(n)&&++e;return e},update:function(t){var n=this,i=n.chart,a=i.chartArea,o=i.options,r=o.elements.arc,s=a.right-a.left-r.borderWidth,l=a.bottom-a.top-r.borderWidth,d=Math.min(s,l),u={x:0,y:0},c=n.getMeta(),h=o.cutoutPercentage,f=o.circumference;if(f<2*Math.PI){var g=o.rotation%(2*Math.PI);g+=2*Math.PI*(g>=Math.PI?-1:g<-Math.PI?1:0);var m=g+f,p={x:Math.cos(g),y:Math.sin(g)},v={x:Math.cos(m),y:Math.sin(m)},b=0>=g&&m>=0||g<=2*Math.PI&&2*Math.PI<=m,y=g<=.5*Math.PI&&.5*Math.PI<=m||g<=2.5*Math.PI&&2.5*Math.PI<=m,x=g<=-Math.PI&&-Math.PI<=m||g<=Math.PI&&Math.PI<=m,k=g<=.5*-Math.PI&&.5*-Math.PI<=m||g<=1.5*Math.PI&&1.5*Math.PI<=m,S=h/100,w={x:x?-1:Math.min(p.x*(p.x<0?1:S),v.x*(v.x<0?1:S)),y:k?-1:Math.min(p.y*(p.y<0?1:S),v.y*(v.y<0?1:S))},_={x:b?1:Math.max(p.x*(p.x>0?1:S),v.x*(v.x>0?1:S)),y:y?1:Math.max(p.y*(p.y>0?1:S),v.y*(v.y>0?1:S))},M={width:.5*(_.x-w.x),height:.5*(_.y-w.y)};d=Math.min(s/M.width,l/M.height),u={x:(_.x+w.x)*-.5,y:(_.y+w.y)*-.5}}i.borderWidth=n.getMaxBorderWidth(c.data),i.outerRadius=Math.max((d-i.borderWidth)/2,0),i.innerRadius=Math.max(h?i.outerRadius/100*h:1,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),i.offsetX=u.x*i.outerRadius,i.offsetY=u.y*i.outerRadius,c.total=n.calculateTotal(),n.outerRadius=i.outerRadius-i.radiusLength*n.getRingIndex(n.index),n.innerRadius=n.outerRadius-i.radiusLength,e.each(c.data,function(e,i){n.updateElement(e,i,t)})},updateElement:function(t,n,i){var a=this,o=a.chart,r=o.chartArea,s=o.options,l=s.animation,d=(r.left+r.right)/2,u=(r.top+r.bottom)/2,c=s.rotation,h=s.rotation,f=a.getDataset(),g=i&&l.animateRotate?0:t.hidden?0:a.calculateCircumference(f.data[n])*(s.circumference/(2*Math.PI)),m=i&&l.animateScale?0:a.innerRadius,p=i&&l.animateScale?0:a.outerRadius,v=e.getValueAtIndexOrDefault;e.extend(t,{_datasetIndex:a.index,_index:n,_model:{x:d+o.offsetX,y:u+o.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:p,innerRadius:m,label:v(f.label,n,o.data.labels[n])}});var b=t._model;this.removeHoverStyle(t),i&&l.animateRotate||(0===n?b.startAngle=s.rotation:b.startAngle=a.getMeta().data[n-1]._model.endAngle,b.endAngle=b.startAngle+b.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,n=this.getDataset(),i=this.getMeta(),a=0;return e.each(i.data,function(e,i){t=n.data[i],isNaN(t)||e.hidden||(a+=Math.abs(t))}),a},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var e,n,i=0,a=this.index,o=t.length,r=0;o>r;r++)e=t[r]._model?t[r]._model.borderWidth:0,n=t[r]._chart?t[r]._chart.config.data.datasets[a].hoverBorderWidth:0,i=e>i?e:i,i=n>i?n:i;return i}})}},{}],18:[function(t,e,n){"use strict";e.exports=function(t){function e(t,e){return n.getValueOrDefault(t.showLine,e.showLines)}var n=t.helpers;t.defaults.line={showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}},t.controllers.line=t.DatasetController.extend({datasetElementType:t.elements.Line,dataElementType:t.elements.Point,addElementAndReset:function(n){var i=this,a=i.chart.options,o=i.getMeta();t.DatasetController.prototype.addElementAndReset.call(i,n),e(i.getDataset(),a)&&0!==o.dataset._model.tension&&i.updateBezierControlPoints()},update:function(t){var i,a,o,r=this,s=r.getMeta(),l=s.dataset,d=s.data||[],u=r.chart.options,c=u.elements.line,h=r.getScaleForId(s.yAxisID),f=r.getDataset(),g=e(f,u);for(g&&(o=l.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),l._scale=h,l._datasetIndex=r.index,l._children=d,l._model={spanGaps:f.spanGaps?f.spanGaps:u.spanGaps,tension:o.tension?o.tension:n.getValueOrDefault(f.lineTension,c.tension),backgroundColor:o.backgroundColor?o.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:o.borderWidth?o.borderWidth:f.borderWidth||c.borderWidth,borderColor:o.borderColor?o.borderColor:f.borderColor||c.borderColor,borderCapStyle:o.borderCapStyle?o.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:o.borderDash?o.borderDash:f.borderDash||c.borderDash,borderDashOffset:o.borderDashOffset?o.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:o.borderJoinStyle?o.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:o.fill?o.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:o.steppedLine?o.steppedLine:n.getValueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:o.cubicInterpolationMode?o.cubicInterpolationMode:n.getValueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode),scaleTop:h.top,scaleBottom:h.bottom,scaleZero:h.getBasePixel()},l.pivot()),i=0,a=d.length;a>i;++i)r.updateElement(d[i],i,t);for(g&&0!==l._model.tension&&r.updateBezierControlPoints(),i=0,a=d.length;a>i;++i)d[i].pivot()},getPointBackgroundColor:function(t,e){var i=this.chart.options.elements.point.backgroundColor,a=this.getDataset(),o=t.custom||{};return o.backgroundColor?i=o.backgroundColor:a.pointBackgroundColor?i=n.getValueAtIndexOrDefault(a.pointBackgroundColor,e,i):a.backgroundColor&&(i=a.backgroundColor),i},getPointBorderColor:function(t,e){var i=this.chart.options.elements.point.borderColor,a=this.getDataset(),o=t.custom||{};return o.borderColor?i=o.borderColor:a.pointBorderColor?i=n.getValueAtIndexOrDefault(a.pointBorderColor,e,i):a.borderColor&&(i=a.borderColor),i},getPointBorderWidth:function(t,e){var i=this.chart.options.elements.point.borderWidth,a=this.getDataset(),o=t.custom||{};return o.borderWidth?i=o.borderWidth:a.pointBorderWidth?i=n.getValueAtIndexOrDefault(a.pointBorderWidth,e,i):a.borderWidth&&(i=a.borderWidth),i},updateElement:function(t,e,i){var a,o,r=this,s=r.getMeta(),l=t.custom||{},d=r.getDataset(),u=r.index,c=d.data[e],h=r.getScaleForId(s.yAxisID),f=r.getScaleForId(s.xAxisID),g=r.chart.options.elements.point,m=r.chart.data.labels||[],p=1===m.length||1===d.data.length||r.chart.isCombo;void 0!==d.radius&&void 0===d.pointRadius&&(d.pointRadius=d.radius),void 0!==d.hitRadius&&void 0===d.pointHitRadius&&(d.pointHitRadius=d.hitRadius),a=f.getPixelForValue("object"==typeof c?c:NaN,e,u,p),o=i?h.getBasePixel():r.calculatePointY(c,e,u),t._xScale=f,t._yScale=h,t._datasetIndex=u,t._index=e,t._model={x:a,y:o,skip:l.skip||isNaN(a)||isNaN(o),radius:l.radius||n.getValueAtIndexOrDefault(d.pointRadius,e,g.radius),pointStyle:l.pointStyle||n.getValueAtIndexOrDefault(d.pointStyle,e,g.pointStyle),backgroundColor:r.getPointBackgroundColor(t,e),borderColor:r.getPointBorderColor(t,e),borderWidth:r.getPointBorderWidth(t,e),tension:s.dataset._model?s.dataset._model.tension:0,steppedLine:s.dataset._model?s.dataset._model.steppedLine:!1,hitRadius:l.hitRadius||n.getValueAtIndexOrDefault(d.pointHitRadius,e,g.hitRadius)}},calculatePointY:function(t,e,n){var i,a,o,r=this,s=r.chart,l=r.getMeta(),d=r.getScaleForId(l.yAxisID),u=0,c=0;if(d.options.stacked){for(i=0;n>i;i++)if(a=s.data.datasets[i],o=s.getDatasetMeta(i),"line"===o.type&&o.yAxisID===d.id&&s.isDatasetVisible(i)){var h=Number(d.getRightValue(a.data[e]));0>h?c+=h||0:u+=h||0}var f=Number(d.getRightValue(t));return 0>f?d.getPixelForValue(c+f):d.getPixelForValue(u+f)}return d.getPixelForValue(t)},updateBezierControlPoints:function(){function t(t,e,n){return Math.max(Math.min(t,n),e)}var e=this,i=e.getMeta(),a=e.chart.chartArea,o=i.data||[];i.dataset._model.spanGaps&&(o=o.filter(function(t){return!t._model.skip}));var r,s,l,d,u;if("monotone"==i.dataset._model.cubicInterpolationMode)n.splineCurveMonotone(o);else for(r=0,s=o.length;s>r;++r)l=o[r],d=l._model,u=n.splineCurve(n.previousItem(o,r)._model,d,n.nextItem(o,r)._model,i.dataset._model.tension),d.controlPointPreviousX=u.previous.x,d.controlPointPreviousY=u.previous.y,d.controlPointNextX=u.next.x,d.controlPointNextY=u.next.y;if(e.chart.options.elements.line.capBezierPoints)for(r=0,s=o.length;s>r;++r)d=o[r]._model,d.controlPointPreviousX=t(d.controlPointPreviousX,a.left,a.right),d.controlPointPreviousY=t(d.controlPointPreviousY,a.top,a.bottom),d.controlPointNextX=t(d.controlPointNextX,a.left,a.right),d.controlPointNextY=t(d.controlPointNextY,a.top,a.bottom)},draw:function(t){var n,i,a=this,o=a.getMeta(),r=o.data||[],s=t||1;for(n=0,i=r.length;i>n;++n)r[n].transition(s);for(e(a.getDataset(),a.chart.options)&&o.dataset.transition(s).draw(),n=0,i=r.length;i>n;++n)r[n].draw()},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,a=t.custom||{},o=t._model;o.radius=a.hoverRadius||n.getValueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),o.backgroundColor=a.hoverBackgroundColor||n.getValueAtIndexOrDefault(e.pointHoverBackgroundColor,i,n.getHoverColor(o.backgroundColor)),o.borderColor=a.hoverBorderColor||n.getValueAtIndexOrDefault(e.pointHoverBorderColor,i,n.getHoverColor(o.borderColor)),o.borderWidth=a.hoverBorderWidth||n.getValueAtIndexOrDefault(e.pointHoverBorderWidth,i,o.borderWidth)},removeHoverStyle:function(t){var e=this,i=e.chart.data.datasets[t._datasetIndex],a=t._index,o=t.custom||{},r=t._model;void 0!==i.radius&&void 0===i.pointRadius&&(i.pointRadius=i.radius),r.radius=o.radius||n.getValueAtIndexOrDefault(i.pointRadius,a,e.chart.options.elements.point.radius),r.backgroundColor=e.getPointBackgroundColor(t,a),r.borderColor=e.getPointBorderColor(t,a),r.borderWidth=e.getPointBorderWidth(t,a)}})}},{}],19:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.polarArea={scale:{type:"radialLinear",lineArc:!0,ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,aspectRatio:1,legendCallback:function(t){var e=[];e.push(\'<ul class="\'+t.id+\'-legend">\');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push(\'<li><span style="background-color:\'+i[0].backgroundColor[o]+\'">\'),a[o]&&e.push(a[o]),e.push("</span></li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var n=t.data;return n.labels.length&&n.datasets.length?n.labels.map(function(i,a){var o=t.getDatasetMeta(0),r=n.datasets[0],s=o.data[a],l=s.custom||{},d=e.getValueAtIndexOrDefault,u=t.options.elements.arc,c=l.backgroundColor?l.backgroundColor:d(r.backgroundColor,a,u.backgroundColor),h=l.borderColor?l.borderColor:d(r.borderColor,a,u.borderColor),f=l.borderWidth?l.borderWidth:d(r.borderWidth,a,u.borderWidth);return{text:i,fillStyle:c,strokeStyle:h,lineWidth:f,hidden:isNaN(r.data[a])||o.data[a].hidden,index:a}}):[]}},onClick:function(t,e){\nvar n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;i>n;++n)a=r.getDatasetMeta(n),a.data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}},t.controllers.polarArea=t.DatasetController.extend({dataElementType:t.elements.Arc,linkScales:e.noop,update:function(t){var n=this,i=n.chart,a=i.chartArea,o=n.getMeta(),r=i.options,s=r.elements.arc,l=Math.min(a.right-a.left,a.bottom-a.top);i.outerRadius=Math.max((l-s.borderWidth/2)/2,0),i.innerRadius=Math.max(r.cutoutPercentage?i.outerRadius/100*r.cutoutPercentage:1,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),n.outerRadius=i.outerRadius-i.radiusLength*n.index,n.innerRadius=n.outerRadius-i.radiusLength,o.count=n.countVisibleElements(),e.each(o.data,function(e,i){n.updateElement(e,i,t)})},updateElement:function(t,n,i){for(var a=this,o=a.chart,r=a.getDataset(),s=o.options,l=s.animation,d=o.scale,u=e.getValueAtIndexOrDefault,c=o.data.labels,h=a.calculateCircumference(r.data[n]),f=d.xCenter,g=d.yCenter,m=0,p=a.getMeta(),v=0;n>v;++v)isNaN(r.data[v])||p.data[v].hidden||++m;var b=s.startAngle,y=t.hidden?0:d.getDistanceFromCenterForValue(r.data[n]),x=b+h*m,k=x+(t.hidden?0:h),S=l.animateScale?0:d.getDistanceFromCenterForValue(r.data[n]);e.extend(t,{_datasetIndex:a.index,_index:n,_scale:d,_model:{x:f,y:g,innerRadius:0,outerRadius:i?S:y,startAngle:i&&l.animateRotate?b:x,endAngle:i&&l.animateRotate?b:k,label:u(c,n,c[n])}}),a.removeHoverStyle(t),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},countVisibleElements:function(){var t=this.getDataset(),n=this.getMeta(),i=0;return e.each(n.data,function(e,n){isNaN(t.data[n])||e.hidden||i++}),i},calculateCircumference:function(t){var e=this.getMeta().count;return e>0&&!isNaN(t)?2*Math.PI/e:0}})}},{}],20:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.radar={scale:{type:"radialLinear"},elements:{line:{tension:0}}},t.controllers.radar=t.DatasetController.extend({datasetElementType:t.elements.Line,dataElementType:t.elements.Point,linkScales:e.noop,addElementAndReset:function(e){t.DatasetController.prototype.addElementAndReset.call(this,e),this.updateBezierControlPoints()},update:function(t){var n=this,i=n.getMeta(),a=i.dataset,o=i.data,r=a.custom||{},s=n.getDataset(),l=n.chart.options.elements.line,d=n.chart.scale;void 0!==s.tension&&void 0===s.lineTension&&(s.lineTension=s.tension),e.extend(i.dataset,{_datasetIndex:n.index,_children:o,_loop:!0,_model:{tension:r.tension?r.tension:e.getValueOrDefault(s.lineTension,l.tension),backgroundColor:r.backgroundColor?r.backgroundColor:s.backgroundColor||l.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:s.borderWidth||l.borderWidth,borderColor:r.borderColor?r.borderColor:s.borderColor||l.borderColor,fill:r.fill?r.fill:void 0!==s.fill?s.fill:l.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:s.borderCapStyle||l.borderCapStyle,borderDash:r.borderDash?r.borderDash:s.borderDash||l.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:s.borderDashOffset||l.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:s.borderJoinStyle||l.borderJoinStyle,scaleTop:d.top,scaleBottom:d.bottom,scaleZero:d.getBasePosition()}}),i.dataset.pivot(),e.each(o,function(e,i){n.updateElement(e,i,t)},n),n.updateBezierControlPoints()},updateElement:function(t,n,i){var a=this,o=t.custom||{},r=a.getDataset(),s=a.chart.scale,l=a.chart.options.elements.point,d=s.getPointPositionForValue(n,r.data[n]);e.extend(t,{_datasetIndex:a.index,_index:n,_scale:s,_model:{x:i?s.xCenter:d.x,y:i?s.yCenter:d.y,tension:o.tension?o.tension:e.getValueOrDefault(r.tension,a.chart.options.elements.line.tension),radius:o.radius?o.radius:e.getValueAtIndexOrDefault(r.pointRadius,n,l.radius),backgroundColor:o.backgroundColor?o.backgroundColor:e.getValueAtIndexOrDefault(r.pointBackgroundColor,n,l.backgroundColor),borderColor:o.borderColor?o.borderColor:e.getValueAtIndexOrDefault(r.pointBorderColor,n,l.borderColor),borderWidth:o.borderWidth?o.borderWidth:e.getValueAtIndexOrDefault(r.pointBorderWidth,n,l.borderWidth),pointStyle:o.pointStyle?o.pointStyle:e.getValueAtIndexOrDefault(r.pointStyle,n,l.pointStyle),hitRadius:o.hitRadius?o.hitRadius:e.getValueAtIndexOrDefault(r.hitRadius,n,l.hitRadius)}}),t._model.skip=o.skip?o.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,n=this.getMeta();e.each(n.data,function(i,a){var o=i._model,r=e.splineCurve(e.previousItem(n.data,a,!0)._model,o,e.nextItem(n.data,a,!0)._model,o.tension);o.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),o.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),o.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),o.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),i.pivot()})},draw:function(t){var n=this.getMeta(),i=t||1;e.each(n.data,function(t){t.transition(i)}),n.dataset.transition(i).draw(),e.each(n.data,function(t){t.draw()})},setHoverStyle:function(t){var n=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},a=t._index,o=t._model;o.radius=i.hoverRadius?i.hoverRadius:e.getValueAtIndexOrDefault(n.pointHoverRadius,a,this.chart.options.elements.point.hoverRadius),o.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:e.getValueAtIndexOrDefault(n.pointHoverBackgroundColor,a,e.getHoverColor(o.backgroundColor)),o.borderColor=i.hoverBorderColor?i.hoverBorderColor:e.getValueAtIndexOrDefault(n.pointHoverBorderColor,a,e.getHoverColor(o.borderColor)),o.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:e.getValueAtIndexOrDefault(n.pointHoverBorderWidth,a,o.borderWidth)},removeHoverStyle:function(t){var n=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},a=t._index,o=t._model,r=this.chart.options.elements.point;o.radius=i.radius?i.radius:e.getValueAtIndexOrDefault(n.radius,a,r.radius),o.backgroundColor=i.backgroundColor?i.backgroundColor:e.getValueAtIndexOrDefault(n.pointBackgroundColor,a,r.backgroundColor),o.borderColor=i.borderColor?i.borderColor:e.getValueAtIndexOrDefault(n.pointBorderColor,a,r.borderColor),o.borderWidth=i.borderWidth?i.borderWidth:e.getValueAtIndexOrDefault(n.pointBorderWidth,a,r.borderWidth)}})}},{}],21:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.global.animation={duration:1e3,easing:"easeOutQuart",onProgress:e.noop,onComplete:e.noop},t.Animation=t.Element.extend({currentStep:null,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,n,i){var a=this;i||(t.animating=!0);for(var o=0;o<a.animations.length;++o)if(a.animations[o].chartInstance===t)return void(a.animations[o].animationObject=e);a.animations.push({chartInstance:t,animationObject:e}),1===a.animations.length&&a.requestAnimationFrame()},cancelAnimation:function(t){var n=e.findIndex(this.animations,function(e){return e.chartInstance===t});-1!==n&&(this.animations.splice(n,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=e.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){var t=this,e=Date.now(),n=0;t.dropFrames>1&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1);for(var i=0;i<t.animations.length;)null===t.animations[i].animationObject.currentStep&&(t.animations[i].animationObject.currentStep=0),t.animations[i].animationObject.currentStep+=1+n,t.animations[i].animationObject.currentStep>t.animations[i].animationObject.numSteps&&(t.animations[i].animationObject.currentStep=t.animations[i].animationObject.numSteps),t.animations[i].animationObject.render(t.animations[i].chartInstance,t.animations[i].animationObject),t.animations[i].animationObject.onAnimationProgress&&t.animations[i].animationObject.onAnimationProgress.call&&t.animations[i].animationObject.onAnimationProgress.call(t.animations[i].chartInstance,t.animations[i]),t.animations[i].animationObject.currentStep===t.animations[i].animationObject.numSteps?(t.animations[i].animationObject.onAnimationComplete&&t.animations[i].animationObject.onAnimationComplete.call&&t.animations[i].animationObject.onAnimationComplete.call(t.animations[i].chartInstance,t.animations[i]),t.animations[i].chartInstance.animating=!1,t.animations.splice(i,1)):++i;var a=Date.now(),o=(a-e)/t.frameDuration;t.dropFrames+=o,t.animations.length>0&&t.requestAnimationFrame()}}}},{}],22:[function(t,e,n){"use strict";e.exports=function(t){var e=t.canvasHelpers={};e.drawPoint=function(t,e,n,i,a){var o,r,s,l,d,u;if("object"==typeof e&&(o=e.toString(),"[object HTMLImageElement]"===o||"[object HTMLCanvasElement]"===o))return void t.drawImage(e,i-e.width/2,a-e.height/2);if(!(isNaN(n)||0>=n)){switch(e){default:t.beginPath(),t.arc(i,a,n,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),r=3*n/Math.sqrt(3),d=r*Math.sqrt(3)/2,t.moveTo(i-r/2,a+d/3),t.lineTo(i+r/2,a+d/3),t.lineTo(i,a-2*d/3),t.closePath(),t.fill();break;case"rect":u=1/Math.SQRT2*n,t.beginPath(),t.fillRect(i-u,a-u,2*u,2*u),t.strokeRect(i-u,a-u,2*u,2*u);break;case"rectRot":u=1/Math.SQRT2*n,t.beginPath(),t.moveTo(i-u,a),t.lineTo(i,a+u),t.lineTo(i+u,a),t.lineTo(i,a-u),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"crossRot":t.beginPath(),s=Math.cos(Math.PI/4)*n,l=Math.sin(Math.PI/4)*n,t.moveTo(i-s,a-l),t.lineTo(i+s,a+l),t.moveTo(i-s,a+l),t.lineTo(i+s,a-l),t.closePath();break;case"star":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),s=Math.cos(Math.PI/4)*n,l=Math.sin(Math.PI/4)*n,t.moveTo(i-s,a-l),t.lineTo(i+s,a+l),t.moveTo(i-s,a+l),t.lineTo(i+s,a-l),t.closePath();break;case"line":t.beginPath(),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"dash":t.beginPath(),t.moveTo(i,a),t.lineTo(i+n,a),t.closePath()}t.stroke()}}}},{}],23:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers;t.types={},t.instances={},t.controllers={},t.Controller=function(n){return this.chart=n,this.config=n.config,this.options=this.config.options=e.configMerge(t.defaults.global,t.defaults[this.config.type],this.config.options||{}),this.id=e.uid(),Object.defineProperty(this,"data",{get:function(){return this.config.data}}),t.instances[this.id]=this,this.options.responsive&&this.resize(!0),this.initialize(),this},e.extend(t.Controller.prototype,{initialize:function(){var e=this;return t.plugins.notify("beforeInit",[e]),e.bindEvents(),e.ensureScalesHaveIDs(),e.buildOrUpdateControllers(),e.buildScales(),e.updateLayout(),e.resetElements(),e.initToolTip(),e.update(),t.plugins.notify("afterInit",[e]),e},clear:function(){return e.clear(this.chart),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(n){var i=this,a=i.chart,o=a.canvas,r=e.getMaximumWidth(o),s=a.aspectRatio,l=i.options.maintainAspectRatio&&isNaN(s)===!1&&isFinite(s)&&0!==s?r/s:e.getMaximumHeight(o),d=a.width!==r||a.height!==l;if(!d)return i;o.width=a.width=r,o.height=a.height=l,e.retinaScale(a);var u={width:r,height:l};return t.plugins.notify("resize",[i,u]),i.options.onResize&&i.options.onResize(i,u),n||(i.stop(),i.update(i.options.responsiveAnimationDuration)),i},ensureScalesHaveIDs:function(){var t=this.options,n=t.scales||{},i=t.scale;e.each(n.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),e.each(n.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildScales:function(){var n=this,i=n.options,a=n.scales={},o=[];i.scales&&(o=o.concat((i.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category"}}),(i.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear"}}))),i.scale&&o.push({options:i.scale,dtype:"radialLinear",isDefault:!0}),e.each(o,function(i){var o=i.options,r=e.getValueOrDefault(o.type,i.dtype),s=t.scaleService.getScaleConstructor(r);if(s){var l=new s({id:o.id,options:o,ctx:n.chart.ctx,chart:n});a[l.id]=l,i.isDefault&&(n.scale=l)}}),t.scaleService.addScalesToLayout(this)},updateLayout:function(){t.layoutService.update(this,this.chart.width,this.chart.height)},buildOrUpdateControllers:function(){var n=this,i=[],a=[];if(e.each(n.data.datasets,function(e,o){var r=n.getDatasetMeta(o);r.type||(r.type=e.type||n.config.type),i.push(r.type),r.controller?r.controller.updateIndex(o):(r.controller=new t.controllers[r.type](n,o),a.push(r.controller))},n),i.length>1)for(var o=1;o<i.length;o++)if(i[o]!==i[o-1]){n.isCombo=!0;break}return a},resetElements:function(){var t=this;e.each(t.data.datasets,function(e,n){t.getDatasetMeta(n).controller.reset()},t)},update:function(n,i){var a=this;t.plugins.notify("beforeUpdate",[a]),a.tooltip._data=a.data;var o=a.buildOrUpdateControllers();e.each(a.data.datasets,function(t,e){a.getDatasetMeta(e).controller.buildOrUpdateElements()},a),t.layoutService.update(a,a.chart.width,a.chart.height),t.plugins.notify("afterScaleUpdate",[a]),e.each(o,function(t){t.reset()}),a.updateDatasets(),t.plugins.notify("afterUpdate",[a]),a.render(n,i)},updateDatasets:function(){var e,n,i=this;if(t.plugins.notify("beforeDatasetsUpdate",[i])){for(e=0,n=i.data.datasets.length;n>e;++e)i.getDatasetMeta(e).controller.update();t.plugins.notify("afterDatasetsUpdate",[i])}},render:function(n,i){var a=this;t.plugins.notify("beforeRender",[a]);var o=a.options.animation;if(o&&("undefined"!=typeof n&&0!==n||"undefined"==typeof n&&0!==o.duration)){var r=new t.Animation;r.numSteps=(n||o.duration)/16.66,r.easing=o.easing,r.render=function(t,n){var i=e.easingEffects[n.easing],a=n.currentStep/n.numSteps,o=i(a);t.draw(o,a,n.currentStep)},r.onAnimationProgress=o.onProgress,r.onAnimationComplete=o.onComplete,t.animationService.addAnimation(a,r,n,i)}else a.draw(),o&&o.onComplete&&o.onComplete.call&&o.onComplete.call(a);return a},draw:function(n){var i=this,a=n||1;i.clear(),t.plugins.notify("beforeDraw",[i,a]),e.each(i.boxes,function(t){t.draw(i.chartArea)},i),i.scale&&i.scale.draw(),t.plugins.notify("beforeDatasetsDraw",[i,a]),e.each(i.data.datasets,function(t,e){i.isDatasetVisible(e)&&i.getDatasetMeta(e).controller.draw(n)},i,!0),t.plugins.notify("afterDatasetsDraw",[i,a]),i.tooltip.transition(a).draw(),t.plugins.notify("afterDraw",[i,a])},getElementAtEvent:function(t){var n=this,i=e.getRelativePosition(t,n.chart),a=[];return e.each(n.data.datasets,function(t,o){if(n.isDatasetVisible(o)){var r=n.getDatasetMeta(o);e.each(r.data,function(t){return t.inRange(i.x,i.y)?(a.push(t),a):void 0})}}),a.slice(0,1)},getElementsAtEvent:function(t){var n=this,i=e.getRelativePosition(t,n.chart),a=[],o=function(){if(n.data.datasets)for(var t=0;t<n.data.datasets.length;t++){var e=n.getDatasetMeta(t);if(n.isDatasetVisible(t))for(var a=0;a<e.data.length;a++)if(e.data[a].inRange(i.x,i.y))return e.data[a]}}.call(n);return o?(e.each(n.data.datasets,function(t,e){if(n.isDatasetVisible(e)){var i=n.getDatasetMeta(e),r=i.data[o._index];r&&!r._view.skip&&a.push(r)}},n),a):a},getElementsAtXAxis:function(t){var n=this,i=e.getRelativePosition(t,n.chart),a=[],o=function(){if(n.data.datasets)for(var t=0;t<n.data.datasets.length;t++){var e=n.getDatasetMeta(t);if(n.isDatasetVisible(t))for(var a=0;a<e.data.length;a++)if(e.data[a].inLabelRange(i.x,i.y))return e.data[a]}}.call(n);return o?(e.each(n.data.datasets,function(t,i){if(n.isDatasetVisible(i)){var r=n.getDatasetMeta(i),s=e.findIndex(r.data,function(t){return o._model.x===t._model.x});-1===s||r.data[s]._view.skip||a.push(r.data[s])}},n),a):a},getElementsAtEventForMode:function(t,e){var n=this;switch(e){case"single":return n.getElementAtEvent(t);case"label":return n.getElementsAtEvent(t);case"dataset":return n.getDatasetAtEvent(t);case"x-axis":return n.getElementsAtXAxis(t);default:return t}},getDatasetAtEvent:function(t){var e=this.getElementAtEvent(t);return e.length>0&&(e=this.getDatasetMeta(e[0]._datasetIndex).data),e},getDatasetMeta:function(t){var e=this,n=e.data.datasets[t];n._meta||(n._meta={});var i=n._meta[e.id];return i||(i=n._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;n>e;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroy:function(){var n=this;n.stop(),n.clear(),e.unbindEvents(n,n.events),e.removeResizeListener(n.chart.canvas.parentNode);var i=n.chart.canvas;i.width=n.chart.width,i.height=n.chart.height,void 0!==n.chart.originalDevicePixelRatio&&n.chart.ctx.scale(1/n.chart.originalDevicePixelRatio,1/n.chart.originalDevicePixelRatio),i.style.width=n.chart.originalCanvasStyleWidth,i.style.height=n.chart.originalCanvasStyleHeight,t.plugins.notify("destroy",[n]),delete t.instances[n.id]},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new t.Tooltip({_chart:e.chart,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e)},bindEvents:function(){var t=this;e.bindEvents(t,t.options.events,function(e){t.eventHandler(e)})},updateHoverStyle:function(t,e,n){var i,a,o,r=n?"setHoverStyle":"removeHoverStyle";switch(e){case"single":t=[t[0]];break;case"label":case"dataset":case"x-axis":break;default:return}for(a=0,o=t.length;o>a;++a)i=t[a],i&&this.getDatasetMeta(i._datasetIndex).controller[r](i)},eventHandler:function(t){var n=this,i=n.tooltip,a=n.options||{},o=a.hover,r=a.tooltips;return n.lastActive=n.lastActive||[],n.lastTooltipActive=n.lastTooltipActive||[],"mouseout"===t.type?(n.active=[],n.tooltipActive=[]):(n.active=n.getElementsAtEventForMode(t,o.mode),n.tooltipActive=n.getElementsAtEventForMode(t,r.mode)),o.onHover&&o.onHover.call(n,n.active),("mouseup"===t.type||"click"===t.type)&&(a.onClick&&a.onClick.call(n,t,n.active),n.legend&&n.legend.handleEvent&&n.legend.handleEvent(t)),n.lastActive.length&&n.updateHoverStyle(n.lastActive,o.mode,!1),n.active.length&&o.mode&&n.updateHoverStyle(n.active,o.mode,!0),(r.enabled||r.custom)&&(i.initialize(),i._active=n.tooltipActive,i.update(!0)),i.pivot(),n.animating||e.arrayEquals(n.active,n.lastActive)&&e.arrayEquals(n.tooltipActive,n.lastTooltipActive)||(n.stop(),(r.enabled||r.custom)&&i.update(!0),n.render(o.animationDuration,!0)),n.lastActive=n.active,n.lastTooltipActive=n.tooltipActive,n}})}},{}],24:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers,n=e.noop;t.DatasetController=function(t,e){this.initialize.call(this,t,e)},e.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null===e.xAxisID&&(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,n=e.dataElementType;return n&&new n({_chart:e.chart.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,n=this,i=n.getMeta(),a=n.getDataset().data||[],o=i.data;for(t=0,e=a.length;e>t;++t)o[t]=o[t]||n.createMetaData(i,t);i.dataset=i.dataset||n.createMetaDataset()},addElementAndReset:function(t){var e=this,n=e.createMetaData(t);e.getMeta().data.splice(t,0,n),e.updateElement(n,t,!0)},buildOrUpdateElements:function(){var t=this.getMeta(),e=t.data,n=this.getDataset().data.length,i=e.length;if(i>n)e.splice(n,i-n);else if(n>i)for(var a=i;n>a;++a)this.addElementAndReset(a)},update:n,draw:function(t){var n=t||1;e.each(this.getMeta().data,function(t){t.transition(n).draw()})},removeHoverStyle:function(t,n){var i=this.chart.data.datasets[t._datasetIndex],a=t._index,o=t.custom||{},r=e.getValueAtIndexOrDefault,s=t._model;s.backgroundColor=o.backgroundColor?o.backgroundColor:r(i.backgroundColor,a,n.backgroundColor),s.borderColor=o.borderColor?o.borderColor:r(i.borderColor,a,n.borderColor),s.borderWidth=o.borderWidth?o.borderWidth:r(i.borderWidth,a,n.borderWidth)},setHoverStyle:function(t){var n=this.chart.data.datasets[t._datasetIndex],i=t._index,a=t.custom||{},o=e.getValueAtIndexOrDefault,r=e.getHoverColor,s=t._model;s.backgroundColor=a.hoverBackgroundColor?a.hoverBackgroundColor:o(n.hoverBackgroundColor,i,r(s.backgroundColor)),s.borderColor=a.hoverBorderColor?a.hoverBorderColor:o(n.hoverBorderColor,i,r(s.borderColor)),s.borderWidth=a.hoverBorderWidth?a.hoverBorderWidth:o(n.hoverBorderWidth,i,s.borderWidth)}}),t.DatasetController.extend=e.inherits}},{}],25:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers;t.elements={},t.Element=function(t){e.extend(this,t),this.initialize.apply(this,arguments)},e.extend(t.Element.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=e.clone(t._model)),t._start=e.clone(t._view),t},transition:function(t){var n=this;return n._view||(n._view=e.clone(n._model)),1===t?(n._view=n._model,n._start=null,n):(n._start||n.pivot(),e.each(n._model,function(i,a){if("_"===a[0]);else if(n._view.hasOwnProperty(a))if(i===n._view[a]);else if("string"==typeof i)try{var o=e.color(n._model[a]).mix(e.color(n._start[a]),t);n._view[a]=o.rgbString()}catch(r){n._view[a]=i}else if("number"==typeof i){var s=void 0!==n._start[a]&&isNaN(n._start[a])===!1?n._start[a]:0;n._view[a]=(n._model[a]-s)*t+s}else n._view[a]=i;else"number"!=typeof i||isNaN(n._view[a])?n._view[a]=i:n._view[a]=i*t},n),n)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return e.isNumber(this._model.x)&&e.isNumber(this._model.y)}}),t.Element.extend=e.inherits}},{}],26:[function(t,e,n){"use strict";var i=t(2);e.exports=function(t){function e(t,e,n){var i;return"string"==typeof t?(i=parseInt(t,10),-1!=t.indexOf("%")&&(i=i/100*e.parentNode[n])):i=t,i}function n(t){return void 0!==t&&null!==t&&"none"!==t}function a(t,i,a){var o=document.defaultView,r=t.parentNode,s=o.getComputedStyle(t)[i],l=o.getComputedStyle(r)[i],d=n(s),u=n(l),c=Number.POSITIVE_INFINITY;return d||u?Math.min(d?e(s,t,a):c,u?e(l,r,a):c):"none"}var o=t.helpers={};o.each=function(t,e,n,i){var a,r;if(o.isArray(t))if(r=t.length,i)for(a=r-1;a>=0;a--)e.call(n,t[a],a);else for(a=0;r>a;a++)e.call(n,t[a],a);else if("object"==typeof t){var s=Object.keys(t);for(r=s.length,a=0;r>a;a++)e.call(n,t[s[a]],s[a])}},o.clone=function(t){var e={};return o.each(t,function(t,n){o.isArray(t)?e[n]=t.slice(0):"object"==typeof t&&null!==t?e[n]=o.clone(t):e[n]=t}),e},o.extend=function(t){for(var e=function(e,n){t[n]=e},n=1,i=arguments.length;i>n;n++)o.each(arguments[n],e);return t},o.configMerge=function(e){var n=o.clone(e);return o.each(Array.prototype.slice.call(arguments,1),function(e){o.each(e,function(e,i){if("scales"===i)n[i]=o.scaleMerge(n.hasOwnProperty(i)?n[i]:{},e);else if("scale"===i)n[i]=o.configMerge(n.hasOwnProperty(i)?n[i]:{},t.scaleService.getScaleDefaults(e.type),e);else if(n.hasOwnProperty(i)&&o.isArray(n[i])&&o.isArray(e)){var a=n[i];o.each(e,function(t,e){e<a.length?"object"==typeof a[e]&&null!==a[e]&&"object"==typeof t&&null!==t?a[e]=o.configMerge(a[e],t):a[e]=t:a.push(t)})}else n.hasOwnProperty(i)&&"object"==typeof n[i]&&null!==n[i]&&"object"==typeof e?n[i]=o.configMerge(n[i],e):n[i]=e})}),n},o.scaleMerge=function(e,n){var i=o.clone(e);return o.each(n,function(e,n){"xAxes"===n||"yAxes"===n?i.hasOwnProperty(n)?o.each(e,function(e,a){var r=o.getValueOrDefault(e.type,"xAxes"===n?"category":"linear"),s=t.scaleService.getScaleDefaults(r);a>=i[n].length||!i[n][a].type?i[n].push(o.configMerge(s,e)):e.type&&e.type!==i[n][a].type?i[n][a]=o.configMerge(i[n][a],s,e):i[n][a]=o.configMerge(i[n][a],e)}):(i[n]=[],o.each(e,function(e){var a=o.getValueOrDefault(e.type,"xAxes"===n?"category":"linear");i[n].push(o.configMerge(t.scaleService.getScaleDefaults(a),e))})):i.hasOwnProperty(n)&&"object"==typeof i[n]&&null!==i[n]&&"object"==typeof e?i[n]=o.configMerge(i[n],e):i[n]=e}),i},o.getValueAtIndexOrDefault=function(t,e,n){return void 0===t||null===t?n:o.isArray(t)?e<t.length?t[e]:n:t},o.getValueOrDefault=function(t,e){return void 0===t?e:t},o.indexOf=Array.prototype.indexOf?function(t,e){return t.indexOf(e)}:function(t,e){for(var n=0,i=t.length;i>n;++n)if(t[n]===e)return n;return-1},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return o.each(t,function(t){e(t)&&n.push(t)}),n},o.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var i=0,a=t.length;a>i;++i)if(e.call(n,t[i],i,t))return i;return-1},o.findNextWhere=function(t,e,n){(void 0===n||null===n)&&(n=-1);for(var i=n+1;i<t.length;i++){var a=t[i];if(e(a))return a}},o.findPreviousWhere=function(t,e,n){(void 0===n||null===n)&&(n=t.length);for(var i=n-1;i>=0;i--){var a=t[i];if(e(a))return a}},o.inherits=function(t){var e=this,n=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},i=function(){this.constructor=n};return i.prototype=e.prototype,n.prototype=new i,n.extend=o.inherits,t&&o.extend(n.prototype,t),n.__super__=e.prototype,n},o.noop=function(){},o.uid=function(){var t=0;return function(){return t++}}(),o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,n){return Math.abs(t-e)<n},o.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return t=+t,0===t||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),o=Math.atan2(i,n);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},o.aliasPixel=function(t){return t%2===0?0:.5},o.splineCurve=function(t,e,n,i){var a=t.skip?e:t,o=e,r=n.skip?e:n,s=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),d=s/(s+l),u=l/(s+l);d=isNaN(d)?0:d,u=isNaN(u)?0:u;var c=i*d,h=i*u;return{previous:{x:o.x-c*(r.x-a.x),y:o.y-c*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,n,i,a,r=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),s=r.length;for(e=0;s>e;++e)i=r[e],i.model.skip||(n=e>0?r[e-1]:null,a=s-1>e?r[e+1]:null,a&&!a.model.skip&&(i.deltaK=(a.model.y-i.model.y)/(a.model.x-i.model.x)),!n||n.model.skip?i.mK=i.deltaK:!a||a.model.skip?i.mK=n.deltaK:this.sign(n.deltaK)!=this.sign(i.deltaK)?i.mK=0:i.mK=(n.deltaK+i.deltaK)/2);var l,d,u,c;for(e=0;s-1>e;++e)i=r[e],a=r[e+1],i.model.skip||a.model.skip||(o.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=a.mK=0:(l=i.mK/i.deltaK,d=a.mK/i.deltaK,c=Math.pow(l,2)+Math.pow(d,2),9>=c||(u=3/Math.sqrt(c),i.mK=l*u*i.deltaK,a.mK=d*u*i.deltaK)));var h;for(e=0;s>e;++e)i=r[e],i.model.skip||(n=e>0?r[e-1]:null,a=s-1>e?r[e+1]:null,n&&!n.model.skip&&(h=(i.model.x-n.model.x)/3,i.model.controlPointPreviousX=i.model.x-h,i.model.controlPointPreviousY=i.model.y-h*i.mK),a&&!a.model.skip&&(h=(a.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+h,i.model.controlPointNextY=i.model.y+h*i.mK))},o.nextItem=function(t,e,n){return n?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,n){return n?0>=e?t[t.length-1]:t[e-1]:0>=e?t[0]:t[e-1]},o.niceNum=function(t,e){var n,i=Math.floor(o.log10(t)),a=t/Math.pow(10,i);return n=e?1.5>a?1:3>a?2:7>a?5:10:1>=a?1:2>=a?2:5>=a?5:10,n*Math.pow(10,i)};var r=o.easingEffects={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-1*t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-0.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return 1*((t=t/1-1)*t*t+1)},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-1*((t=t/1-1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-0.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return 1*(t/=1)*t*t*t*t},easeOutQuint:function(t){return 1*((t=t/1-1)*t*t*t*t+1)},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return-1*Math.cos(t/1*(Math.PI/2))+1},easeOutSine:function(t){return 1*Math.sin(t/1*(Math.PI/2))},easeInOutSine:function(t){return-0.5*(Math.cos(Math.PI*t/1)-1)},easeInExpo:function(t){return 0===t?1:1*Math.pow(2,10*(t/1-1))},easeOutExpo:function(t){return 1===t?1:1*(-Math.pow(2,-10*t/1)+1)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(-Math.pow(2,-10*--t)+2)},easeInCirc:function(t){return t>=1?t:-1*(Math.sqrt(1-(t/=1)*t)-1)},easeOutCirc:function(t){return 1*Math.sqrt(1-(t=t/1-1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-0.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===(t/=1)?1:(n||(n=.3),i<Math.abs(1)?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-(i*Math.pow(2,10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/n)))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===(t/=1)?1:(n||(n=.3),i<Math.abs(1)?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((1*t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2===(t/=.5)?1:(n||(n=1*(.3*1.5)),i<Math.abs(1)?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),1>t?-.5*(i*Math.pow(2,10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/n)):i*Math.pow(2,-10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return 1*(t/=1)*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return 1*((t=t/1-1)*t*((e+1)*t+e)+1)},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:function(t){return 1-r.easeOutBounce(1-t)},easeOutBounce:function(t){return(t/=1)<1/2.75?1*(7.5625*t*t):2/2.75>t?1*(7.5625*(t-=1.5/2.75)*t+.75):2.5/2.75>t?1*(7.5625*(t-=2.25/2.75)*t+.9375):1*(7.5625*(t-=2.625/2.75)*t+.984375)},easeInOutBounce:function(t){return.5>t?.5*r.easeInBounce(2*t):.5*r.easeOutBounce(2*t-1)+.5}};o.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}(),o.cancelAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(t){return window.clearTimeout(t,1e3/60)}}(),o.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,r=t.currentTarget||t.srcElement,s=r.getBoundingClientRect(),l=a.touches;l&&l.length>0?(n=l[0].clientX,i=l[0].clientY):(n=a.clientX,i=a.clientY);var d=parseFloat(o.getStyle(r,"padding-left")),u=parseFloat(o.getStyle(r,"padding-top")),c=parseFloat(o.getStyle(r,"padding-right")),h=parseFloat(o.getStyle(r,"padding-bottom")),f=s.right-s.left-d-c,g=s.bottom-s.top-u-h;return n=Math.round((n-s.left-d)/f*r.width/e.currentDevicePixelRatio),\ni=Math.round((i-s.top-u)/g*r.height/e.currentDevicePixelRatio),{x:n,y:i}},o.addEvent=function(t,e,n){t.addEventListener?t.addEventListener(e,n):t.attachEvent?t.attachEvent("on"+e,n):t["on"+e]=n},o.removeEvent=function(t,e,n){t.removeEventListener?t.removeEventListener(e,n,!1):t.detachEvent?t.detachEvent("on"+e,n):t["on"+e]=o.noop},o.bindEvents=function(t,e,n){var i=t.events=t.events||{};o.each(e,function(e){i[e]=function(){n.apply(t,arguments)},o.addEvent(t.chart.canvas,e,i[e])})},o.unbindEvents=function(t,e){var n=t.chart.canvas;o.each(e,function(t,e){o.removeEvent(n,e,t)})},o.getConstraintWidth=function(t){return a(t,"max-width","clientWidth")},o.getConstraintHeight=function(t){return a(t,"max-height","clientHeight")},o.getMaximumWidth=function(t){var e=t.parentNode,n=parseInt(o.getStyle(e,"padding-left"))+parseInt(o.getStyle(e,"padding-right")),i=e.clientWidth-n,a=o.getConstraintWidth(t);return isNaN(a)?i:Math.min(i,a)},o.getMaximumHeight=function(t){var e=t.parentNode,n=parseInt(o.getStyle(e,"padding-top"))+parseInt(o.getStyle(e,"padding-bottom")),i=e.clientHeight-n,a=o.getConstraintHeight(t);return isNaN(a)?i:Math.min(i,a)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t){var e=t.ctx,n=t.canvas,i=n.width,a=n.height,o=t.currentDevicePixelRatio=window.devicePixelRatio||1;1!==o&&(n.height=a*o,n.width=i*o,e.scale(o,o),t.originalDevicePixelRatio=t.originalDevicePixelRatio||o),n.style.width=i+"px",n.style.height=a+"px"},o.clear=function(t){t.ctx.clearRect(0,0,t.width,t.height)},o.fontString=function(t,e,n){return e+" "+t+"px "+n},o.longestText=function(t,e,n,i){i=i||{};var a=i.data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var s=0;o.each(n,function(e){void 0!==e&&null!==e&&o.isArray(e)!==!0?s=o.measureText(t,a,r,s,e):o.isArray(e)&&o.each(e,function(e){void 0===e||null===e||o.isArray(e)||(s=o.measureText(t,a,r,s,e))})});var l=r.length/2;if(l>n.length){for(var d=0;l>d;d++)delete a[r[d]];r.splice(0,l)}return s},o.measureText=function(t,e,n,i,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,n.push(a)),o>i&&(i=o),i},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.drawRoundedRectangle=function(t,e,n,i,a,o){t.beginPath(),t.moveTo(e+o,n),t.lineTo(e+i-o,n),t.quadraticCurveTo(e+i,n,e+i,n+o),t.lineTo(e+i,n+a-o),t.quadraticCurveTo(e+i,n+a,e+i-o,n+a),t.lineTo(e+o,n+a),t.quadraticCurveTo(e,n+a,e,n+a-o),t.lineTo(e,n+o),t.quadraticCurveTo(e,n,e+o,n),t.closePath()},o.color=function(e){return i?i(e instanceof CanvasGradient?t.defaults.global.defaultColor:e):(console.log("Color.js not found!"),e)},o.addResizeListener=function(t,e){var n=document.createElement("iframe"),i="chartjs-hidden-iframe";n.classlist?n.classlist.add(i):n.setAttribute("class",i),n.tabIndex=-1;var a=n.style;a.width="100%",a.display="block",a.border=0,a.height=0,a.margin=0,a.position="absolute",a.left=0,a.right=0,a.top=0,a.bottom=0,t.insertBefore(n,t.firstChild),(n.contentWindow||n).onresize=function(){e&&e()}},o.removeResizeListener=function(t){var e=t.querySelector(".chartjs-hidden-iframe");e&&e.parentNode.removeChild(e)},o.isArray=Array.isArray?function(t){return Array.isArray(t)}:function(t){return"[object Array]"===Object.prototype.toString.call(t)},o.arrayEquals=function(t,e){var n,i,a,r;if(!t||!e||t.length!=e.length)return!1;for(n=0,i=t.length;i>n;++n)if(a=t[n],r=e[n],a instanceof Array&&r instanceof Array){if(!o.arrayEquals(a,r))return!1}else if(a!=r)return!1;return!0},o.callCallback=function(t,e,n){t&&"function"==typeof t.call&&t.apply(n,e)},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{2:2}],27:[function(t,e,n){"use strict";e.exports=function(){var t=function(e,n){var i=this,a=t.helpers;return i.config=n||{data:{datasets:[]}},e.length&&e[0].getContext&&(e=e[0]),e.getContext&&(e=e.getContext("2d")),i.ctx=e,i.canvas=e.canvas,e.canvas.style.display=e.canvas.style.display||"block",i.width=e.canvas.width||parseInt(a.getStyle(e.canvas,"width"),10)||a.getMaximumWidth(e.canvas),i.height=e.canvas.height||parseInt(a.getStyle(e.canvas,"height"),10)||a.getMaximumHeight(e.canvas),i.aspectRatio=i.width/i.height,(isNaN(i.aspectRatio)||isFinite(i.aspectRatio)===!1)&&(i.aspectRatio=void 0!==n.aspectRatio?n.aspectRatio:2),i.originalCanvasStyleWidth=e.canvas.style.width,i.originalCanvasStyleHeight=e.canvas.style.height,a.retinaScale(i),i.controller=new t.Controller(i),a.addResizeListener(e.canvas.parentNode,function(){i.controller&&i.controller.config.options.responsive&&i.controller.resize()}),i.controller?i.controller:i};return t.defaults={global:{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"single",animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"\'Helvetica Neue\', \'Helvetica\', \'Arial\', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},legendCallback:function(t){var e=[];e.push(\'<ul class="\'+t.id+\'-legend">\');for(var n=0;n<t.data.datasets.length;n++)e.push(\'<li><span style="background-color:\'+t.data.datasets[n].backgroundColor+\'"></span>\'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("</li>");return e.push("</ul>"),e.join("")}}},t.Chart=t,t}},{}],28:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers;t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),t.boxes.push(e)},removeBox:function(t,e){t.boxes&&t.boxes.splice(t.boxes.indexOf(e),1)},update:function(t,n,i){function a(t){var e,n=t.isHorizontal();n?(e=t.update(t.options.fullWidth?m:k,x),S-=e.height):(e=t.update(y,b),k-=e.width),w.push({horizontal:n,minSize:e,box:t})}function o(t){var n=e.findNextWhere(w,function(e){return e.box===t});if(n)if(t.isHorizontal()){var i={left:_,right:M,top:0,bottom:0};t.update(t.options.fullWidth?m:k,p/2,i)}else t.update(n.minSize.width,S)}function r(t){var n=e.findNextWhere(w,function(e){return e.box===t}),i={left:0,right:0,top:D,bottom:C};n&&t.update(n.minSize.width,S,i)}function s(t){t.isHorizontal()?(t.left=t.options.fullWidth?l:_,t.right=t.options.fullWidth?n-l:_+k,t.top=F,t.bottom=F+t.height,F=t.bottom):(t.left=A,t.right=A+t.width,t.top=D,t.bottom=D+S,A=t.right)}if(t){var l=0,d=0,u=e.where(t.boxes,function(t){return"left"===t.options.position}),c=e.where(t.boxes,function(t){return"right"===t.options.position}),h=e.where(t.boxes,function(t){return"top"===t.options.position}),f=e.where(t.boxes,function(t){return"bottom"===t.options.position}),g=e.where(t.boxes,function(t){return"chartArea"===t.options.position});h.sort(function(t,e){return(e.options.fullWidth?1:0)-(t.options.fullWidth?1:0)}),f.sort(function(t,e){return(t.options.fullWidth?1:0)-(e.options.fullWidth?1:0)});var m=n-2*l,p=i-2*d,v=m/2,b=p/2,y=(n-v)/(u.length+c.length),x=(i-b)/(h.length+f.length),k=m,S=p,w=[];e.each(u.concat(c,h,f),a);var _=l,M=l,D=d,C=d;e.each(u.concat(c),o),e.each(u,function(t){_+=t.width}),e.each(c,function(t){M+=t.width}),e.each(h.concat(f),o),e.each(h,function(t){D+=t.height}),e.each(f,function(t){C+=t.height}),e.each(u.concat(c),r),_=l,M=l,D=d,C=d,e.each(u,function(t){_+=t.width}),e.each(c,function(t){M+=t.width}),e.each(h,function(t){D+=t.height}),e.each(f,function(t){C+=t.height});var T=i-D-C,P=n-_-M;(P!==k||T!==S)&&(e.each(u,function(t){t.height=T}),e.each(c,function(t){t.height=T}),e.each(h,function(t){t.options.fullWidth||(t.width=P)}),e.each(f,function(t){t.options.fullWidth||(t.width=P)}),S=T,k=P);var A=l,F=d;e.each(u.concat(h),s),A+=k,F+=S,e.each(c,s),e.each(f,s),t.chartArea={left:_,top:D,right:_+k,bottom:D+S},e.each(g,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(k,S)})}}}}},{}],29:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers,n=e.noop;t.defaults.global.legend={display:!0,position:"top",fullWidth:!0,reverse:!1,onClick:function(t,e){var n=e.datasetIndex,i=this.chart,a=i.getDatasetMeta(n);a.hidden=null===a.hidden?!i.data.datasets[n].hidden:null,i.update()},labels:{boxWidth:40,padding:10,generateLabels:function(t){var n=t.data;return e.isArray(n.datasets)?n.datasets.map(function(n,i){return{text:n.label,fillStyle:e.isArray(n.backgroundColor)?n.backgroundColor[0]:n.backgroundColor,hidden:!t.isDatasetVisible(i),lineCap:n.borderCapStyle,lineDash:n.borderDash,lineDashOffset:n.borderDashOffset,lineJoin:n.borderJoinStyle,lineWidth:n.borderWidth,strokeStyle:n.borderColor,pointStyle:n.pointStyle,datasetIndex:i}},this):[]}}},t.Legend=t.Element.extend({initialize:function(t){e.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:n,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:n,beforeSetDimensions:n,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:n,beforeBuildLabels:n,buildLabels:function(){var t=this;t.legendItems=t.options.labels.generateLabels.call(t,t.chart),t.options.reverse&&t.legendItems.reverse()},afterBuildLabels:n,beforeFit:n,fit:function(){var n=this,i=n.options,a=i.labels,o=i.display,r=n.ctx,s=t.defaults.global,l=e.getValueOrDefault,d=l(a.fontSize,s.defaultFontSize),u=l(a.fontStyle,s.defaultFontStyle),c=l(a.fontFamily,s.defaultFontFamily),h=e.fontString(d,u,c),f=n.legendHitBoxes=[],g=n.minSize,m=n.isHorizontal();if(m?(g.width=n.maxWidth,g.height=o?10:0):(g.width=o?10:0,g.height=n.maxHeight),o)if(r.font=h,m){var p=n.lineWidths=[0],v=n.legendItems.length?d+a.padding:0;r.textAlign="left",r.textBaseline="top",e.each(n.legendItems,function(t,e){var i=a.usePointStyle?d*Math.sqrt(2):a.boxWidth,o=i+d/2+r.measureText(t.text).width;p[p.length-1]+o+a.padding>=n.width&&(v+=d+a.padding,p[p.length]=n.left),f[e]={left:0,top:0,width:o,height:d},p[p.length-1]+=o+a.padding}),g.height+=v}else{var b=a.padding,y=n.columnWidths=[],x=a.padding,k=0,S=0,w=d+b;e.each(n.legendItems,function(t,e){var n=a.usePointStyle?2*a.boxWidth:a.boxWidth,i=n+d/2+r.measureText(t.text).width;S+w>g.height&&(x+=k+a.padding,y.push(k),k=0,S=0),k=Math.max(k,i),S+=w,f[e]={left:0,top:0,width:i,height:d}}),x+=k,y.push(k),g.width+=x}n.width=g.width,n.height=g.height},afterFit:n,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var n=this,i=n.options,a=i.labels,o=t.defaults.global,r=o.elements.line,s=n.width,l=n.lineWidths;if(i.display){var d,u=n.ctx,c=e.getValueOrDefault,h=c(a.fontColor,o.defaultFontColor),f=c(a.fontSize,o.defaultFontSize),g=c(a.fontStyle,o.defaultFontStyle),m=c(a.fontFamily,o.defaultFontFamily),p=e.fontString(f,g,m);u.textAlign="left",u.textBaseline="top",u.lineWidth=.5,u.strokeStyle=h,u.fillStyle=h,u.font=p;var v=a.boxWidth,b=n.legendHitBoxes,y=function(e,n,a){if(!(isNaN(v)||0>=v)){if(u.save(),u.fillStyle=c(a.fillStyle,o.defaultColor),u.lineCap=c(a.lineCap,r.borderCapStyle),u.lineDashOffset=c(a.lineDashOffset,r.borderDashOffset),u.lineJoin=c(a.lineJoin,r.borderJoinStyle),u.lineWidth=c(a.lineWidth,r.borderWidth),u.strokeStyle=c(a.strokeStyle,o.defaultColor),u.setLineDash&&u.setLineDash(c(a.lineDash,r.borderDash)),i.labels&&i.labels.usePointStyle){var s=f*Math.SQRT2/2,l=s/Math.SQRT2,d=e+l,h=n+l;t.canvasHelpers.drawPoint(u,a.pointStyle,s,d,h)}else u.strokeRect(e,n,v,f),u.fillRect(e,n,v,f);u.restore()}},x=function(t,e,n,i){u.fillText(n.text,v+f/2+t,e),n.hidden&&(u.beginPath(),u.lineWidth=2,u.moveTo(v+f/2+t,e+f/2),u.lineTo(v+f/2+t+i,e+f/2),u.stroke())},k=n.isHorizontal();d=k?{x:n.left+(s-l[0])/2,y:n.top+a.padding,line:0}:{x:n.left+a.padding,y:n.top+a.padding,line:0};var S=f+a.padding;e.each(n.legendItems,function(t,e){var i=u.measureText(t.text).width,o=a.usePointStyle?f+f/2+i:v+f/2+i,r=d.x,c=d.y;k?r+o>=s&&(c=d.y+=S,d.line++,r=d.x=n.left+(s-l[d.line])/2):c+S>n.bottom&&(r=d.x=r+n.columnWidths[d.line]+a.padding,c=d.y=n.top,d.line++),y(r,c,t),b[e].left=r,b[e].top=c,x(r,c,t,i),k?d.x+=o+a.padding:d.y+=S})}},handleEvent:function(t){var n=this,i=e.getRelativePosition(t,n.chart.chart),a=i.x,o=i.y,r=n.options;if(a>=n.left&&a<=n.right&&o>=n.top&&o<=n.bottom)for(var s=n.legendHitBoxes,l=0;l<s.length;++l){var d=s[l];if(a>=d.left&&a<=d.left+d.width&&o>=d.top&&o<=d.top+d.height){r.onClick&&r.onClick.call(n,t,n.legendItems[l]);break}}}}),t.plugins.register({beforeInit:function(e){var n=e.options,i=n.legend;i&&(e.legend=new t.Legend({ctx:e.chart.ctx,options:i,chart:e}),t.layoutService.addBox(e,e.legend))}})}},{}],30:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers.noop;t.plugins={_plugins:[],register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)})},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var n=e.indexOf(t);-1!==n&&e.splice(n,1)})},clear:function(){this._plugins=[]},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e){var n,i,a=this._plugins,o=a.length;for(n=0;o>n;++n)if(i=a[n],"function"==typeof i[t]&&i[t].apply(i,e||[])===!1)return!1;return!0}},t.PluginBase=t.Element.extend({beforeInit:e,afterInit:e,beforeUpdate:e,afterUpdate:e,beforeDraw:e,afterDraw:e,destroy:e}),t.pluginService=t.plugins}},{}],31:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.scale={display:!0,position:"left",gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{labelString:"",display:!1},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:10,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:function(t){return e.isArray(t)?t:""+t}}},t.Scale=t.Element.extend({beforeUpdate:function(){e.callCallback(this.options.beforeUpdate,[this])},update:function(t,n,i){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=n,a.margins=e.extend({left:0,right:0,top:0,bottom:0},i),a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeDataLimits(),a.determineDataLimits(),a.afterDataLimits(),a.beforeBuildTicks(),a.buildTicks(),a.afterBuildTicks(),a.beforeTickToLabelConversion(),a.convertTicksToLabels(),a.afterTickToLabelConversion(),a.beforeCalculateTickRotation(),a.calculateTickRotation(),a.afterCalculateTickRotation(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:function(){e.callCallback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){e.callCallback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){e.callCallback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){e.callCallback(this.options.beforeDataLimits,[this])},determineDataLimits:e.noop,afterDataLimits:function(){e.callCallback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){e.callCallback(this.options.beforeBuildTicks,[this])},buildTicks:e.noop,afterBuildTicks:function(){e.callCallback(this.options.afterBuildTicks,[this])},beforeTickToLabelConversion:function(){e.callCallback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this;t.ticks=t.ticks.map(function(e,n,i){return t.options.ticks.userCallback?t.options.ticks.userCallback(e,n,i):t.options.ticks.callback(e,n,i)},t)},afterTickToLabelConversion:function(){e.callCallback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){e.callCallback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var n=this,i=n.ctx,a=t.defaults.global,o=n.options.ticks,r=e.getValueOrDefault(o.fontSize,a.defaultFontSize),s=e.getValueOrDefault(o.fontStyle,a.defaultFontStyle),l=e.getValueOrDefault(o.fontFamily,a.defaultFontFamily),d=e.fontString(r,s,l);i.font=d;var u,c=i.measureText(n.ticks[0]).width,h=i.measureText(n.ticks[n.ticks.length-1]).width;if(n.labelRotation=o.minRotation||0,n.paddingRight=0,n.paddingLeft=0,n.options.display&&n.isHorizontal()){n.paddingRight=h/2+3,n.paddingLeft=c/2+3,n.longestTextCache||(n.longestTextCache={});for(var f,g,m=e.longestText(i,d,n.ticks,n.longestTextCache),p=m,v=n.getPixelForTick(1)-n.getPixelForTick(0)-6;p>v&&n.labelRotation<o.maxRotation;){if(f=Math.cos(e.toRadians(n.labelRotation)),g=Math.sin(e.toRadians(n.labelRotation)),u=f*c,u+r/2>n.yLabelWidth&&(n.paddingLeft=u+r/2),n.paddingRight=r/2,g*m>n.maxHeight){n.labelRotation--;break}n.labelRotation++,p=f*m}}n.margins&&(n.paddingLeft=Math.max(n.paddingLeft-n.margins.left,0),n.paddingRight=Math.max(n.paddingRight-n.margins.right,0))},afterCalculateTickRotation:function(){e.callCallback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){e.callCallback(this.options.beforeFit,[this])},fit:function(){var n=this,i=n.minSize={width:0,height:0},a=n.options,o=t.defaults.global,r=a.ticks,s=a.scaleLabel,l=a.gridLines,d=a.display,u=n.isHorizontal(),c=e.getValueOrDefault(r.fontSize,o.defaultFontSize),h=e.getValueOrDefault(r.fontStyle,o.defaultFontStyle),f=e.getValueOrDefault(r.fontFamily,o.defaultFontFamily),g=e.fontString(c,h,f),m=e.getValueOrDefault(s.fontSize,o.defaultFontSize),p=a.gridLines.tickMarkLength;if(u?i.width=n.isFullWidth()?n.maxWidth-n.margins.left-n.margins.right:n.maxWidth:i.width=d&&l.drawTicks?p:0,u?i.height=d&&l.drawTicks?p:0:i.height=n.maxHeight,s.display&&d&&(u?i.height+=1.5*m:i.width+=1.5*m),r.display&&d){n.longestTextCache||(n.longestTextCache={});var v=e.longestText(n.ctx,g,n.ticks,n.longestTextCache),b=e.numberOfLabelLines(n.ticks),y=.5*c;if(u){n.longestLabelWidth=v;var x=Math.sin(e.toRadians(n.labelRotation))*n.longestLabelWidth+c*b+y*b;i.height=Math.min(n.maxHeight,i.height+x),n.ctx.font=g;var k=n.ctx.measureText(n.ticks[0]).width,S=n.ctx.measureText(n.ticks[n.ticks.length-1]).width,w=Math.cos(e.toRadians(n.labelRotation)),_=Math.sin(e.toRadians(n.labelRotation));n.paddingLeft=0!==n.labelRotation?w*k+3:k/2+3,n.paddingRight=0!==n.labelRotation?_*(c/2)+3:S/2+3}else{var M=n.maxWidth-i.width,D=r.mirror;D?v=0:v+=n.options.ticks.padding,M>v?i.width+=v:i.width=n.maxWidth,n.paddingTop=c/2,n.paddingBottom=c/2}}n.margins&&(n.paddingLeft=Math.max(n.paddingLeft-n.margins.left,0),n.paddingTop=Math.max(n.paddingTop-n.margins.top,0),n.paddingRight=Math.max(n.paddingRight-n.margins.right,0),n.paddingBottom=Math.max(n.paddingBottom-n.margins.bottom,0)),n.width=i.width,n.height=i.height},afterFit:function(){e.callCallback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){return null===t||"undefined"==typeof t?NaN:"number"==typeof t&&isNaN(t)?NaN:"object"==typeof t?t instanceof Date||t.isValid?t:this.getRightValue(this.isHorizontal()?t.x:t.y):t},getLabelForIndex:e.noop,getPixelForValue:e.noop,getValueForPixel:e.noop,getPixelForTick:function(t,e){var n=this;if(n.isHorizontal()){var i=n.width-(n.paddingLeft+n.paddingRight),a=i/Math.max(n.ticks.length-(n.options.gridLines.offsetGridLines?0:1),1),o=a*t+n.paddingLeft;e&&(o+=a/2);var r=n.left+Math.round(o);return r+=n.isFullWidth()?n.margins.left:0}var s=n.height-(n.paddingTop+n.paddingBottom);return n.top+t*(s/(n.ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var n=e.width-(e.paddingLeft+e.paddingRight),i=n*t+e.paddingLeft,a=e.left+Math.round(i);return a+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){var t=this,e=t.min,n=t.max;return t.getPixelForValue(t.beginAtZero?0:0>e&&0>n?n:e>0&&n>0?e:0)},draw:function(n){var i=this,a=i.options;if(a.display){var o,r,s=i.ctx,l=t.defaults.global,d=a.ticks,u=a.gridLines,c=a.scaleLabel,h=0!==i.labelRotation,f=d.autoSkip,g=i.isHorizontal();d.maxTicksLimit&&(r=d.maxTicksLimit);var m=e.getValueOrDefault(d.fontColor,l.defaultFontColor),p=e.getValueOrDefault(d.fontSize,l.defaultFontSize),v=e.getValueOrDefault(d.fontStyle,l.defaultFontStyle),b=e.getValueOrDefault(d.fontFamily,l.defaultFontFamily),y=e.fontString(p,v,b),x=u.tickMarkLength,k=e.getValueOrDefault(u.borderDash,l.borderDash),S=e.getValueOrDefault(u.borderDashOffset,l.borderDashOffset),w=e.getValueOrDefault(c.fontColor,l.defaultFontColor),_=e.getValueOrDefault(c.fontSize,l.defaultFontSize),M=e.getValueOrDefault(c.fontStyle,l.defaultFontStyle),D=e.getValueOrDefault(c.fontFamily,l.defaultFontFamily),C=e.fontString(_,M,D),T=e.toRadians(i.labelRotation),P=Math.cos(T),A=i.longestLabelWidth*P;s.fillStyle=m;var F=[];if(g){if(o=!1,h&&(A/=2),(A+d.autoSkipPadding)*i.ticks.length>i.width-(i.paddingLeft+i.paddingRight)&&(o=1+Math.floor((A+d.autoSkipPadding)*i.ticks.length/(i.width-(i.paddingLeft+i.paddingRight)))),r&&i.ticks.length>r)for(;!o||i.ticks.length/(o||1)>r;)o||(o=1),o+=1;f||(o=!1)}var I="right"===a.position?i.left:i.right-x,O="right"===a.position?i.left+x:i.right,R="bottom"===a.position?i.top:i.bottom-x,W="bottom"===a.position?i.top+x:i.bottom;if(e.each(i.ticks,function(t,r){if(void 0!==t&&null!==t){var s=i.ticks.length===r+1,l=o>1&&r%o>0||r%o===0&&r+o>=i.ticks.length;if((!l||s)&&void 0!==t&&null!==t){var c,f;r===("undefined"!=typeof i.zeroLineIndex?i.zeroLineIndex:0)?(c=u.zeroLineWidth,f=u.zeroLineColor):(c=e.getValueAtIndexOrDefault(u.lineWidth,r),f=e.getValueAtIndexOrDefault(u.color,r));var m,p,v,b,y,w,_,M,D,C,P,A="middle";if(g){h||(A="top"===a.position?"bottom":"top"),P=h?"right":"center";var L=i.getPixelForTick(r)+e.aliasPixel(c);D=i.getPixelForTick(r,u.offsetGridLines)+d.labelOffset,C=h?i.top+12:"top"===a.position?i.bottom-x:i.top+x,m=v=y=_=L,p=R,b=W,w=n.top,M=n.bottom}else{"left"===a.position?d.mirror?(D=i.right+d.padding,P="left"):(D=i.right-d.padding,P="right"):d.mirror?(D=i.left-d.padding,P="right"):(D=i.left+d.padding,P="left");var V=i.getPixelForTick(r);V+=e.aliasPixel(c),C=i.getPixelForTick(r,u.offsetGridLines),m=I,v=O,y=n.left,_=n.right,p=b=w=M=V}F.push({tx1:m,ty1:p,tx2:v,ty2:b,x1:y,y1:w,x2:_,y2:M,labelX:D,labelY:C,glWidth:c,glColor:f,glBorderDash:k,glBorderDashOffset:S,rotation:-1*T,label:t,textBaseline:A,textAlign:P})}}}),e.each(F,function(t){if(u.display&&(s.save(),s.lineWidth=t.glWidth,s.strokeStyle=t.glColor,s.setLineDash&&(s.setLineDash(t.glBorderDash),s.lineDashOffset=t.glBorderDashOffset),s.beginPath(),u.drawTicks&&(s.moveTo(t.tx1,t.ty1),s.lineTo(t.tx2,t.ty2)),u.drawOnChartArea&&(s.moveTo(t.x1,t.y1),s.lineTo(t.x2,t.y2)),s.stroke(),s.restore()),d.display){s.save(),s.translate(t.labelX,t.labelY),s.rotate(t.rotation),s.font=y,s.textBaseline=t.textBaseline,s.textAlign=t.textAlign;var n=t.label;if(e.isArray(n))for(var i=0,a=0;i<n.length;++i)s.fillText(""+n[i],0,a),a+=1.5*p;else s.fillText(n,0,0);s.restore()}}),c.display){var L,V,B=0;if(g)L=i.left+(i.right-i.left)/2,V="bottom"===a.position?i.bottom-_/2:i.top+_/2;else{var Y="left"===a.position;L=Y?i.left+_/2:i.right-_/2,V=i.top+(i.bottom-i.top)/2,B=Y?-.5*Math.PI:.5*Math.PI}s.save(),s.translate(L,V),s.rotate(B),s.textAlign="center",s.textBaseline="middle",s.fillStyle=w,s.font=C,s.fillText(c.labelString,0,0),s.restore()}if(u.drawBorder){s.lineWidth=e.getValueAtIndexOrDefault(u.lineWidth,0),s.strokeStyle=e.getValueAtIndexOrDefault(u.color,0);var z=i.left,N=i.right,H=i.top,E=i.bottom,U=e.aliasPixel(s.lineWidth);g?(H=E="top"===a.position?i.bottom:i.top,H+=U,E+=U):(z=N="left"===a.position?i.right:i.left,z+=U,N+=U),s.beginPath(),s.moveTo(z,H),s.lineTo(N,E),s.stroke()}}}})}},{}],32:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers;t.scaleService={constructors:{},defaults:{},registerScaleType:function(t,n,i){this.constructors[t]=n,this.defaults[t]=e.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(n){return this.defaults.hasOwnProperty(n)?e.scaleMerge(t.defaults.scale,this.defaults[n]):{}},updateScaleDefaults:function(t,n){var i=this.defaults;i.hasOwnProperty(t)&&(i[t]=e.extend(i[t],n))},addScalesToLayout:function(n){e.each(n.scales,function(e){t.layoutService.addBox(n,e)})}}}},{}],33:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.global.title={display:!1,position:"top",fullWidth:!0,fontStyle:"bold",padding:10,text:""};var n=e.noop;t.Title=t.Element.extend({initialize:function(n){var i=this;e.extend(i,n),i.options=e.configMerge(t.defaults.global.title,n.options),i.legendHitBoxes=[]},beforeUpdate:function(){var n=this.chart.options;n&&n.title&&(this.options=e.configMerge(t.defaults.global.title,n.title))},update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:n,beforeSetDimensions:n,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:n,beforeBuildLabels:n,buildLabels:n,afterBuildLabels:n,beforeFit:n,fit:function(){var n=this,i=e.getValueOrDefault,a=n.options,o=t.defaults.global,r=a.display,s=i(a.fontSize,o.defaultFontSize),l=n.minSize;n.isHorizontal()?(l.width=n.maxWidth,l.height=r?s+2*a.padding:0):(l.width=r?s+2*a.padding:0,l.height=n.maxHeight),n.width=l.width,n.height=l.height},afterFit:n,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var n=this,i=n.ctx,a=e.getValueOrDefault,o=n.options,r=t.defaults.global;if(o.display){var s,l,d=a(o.fontSize,r.defaultFontSize),u=a(o.fontStyle,r.defaultFontStyle),c=a(o.fontFamily,r.defaultFontFamily),h=e.fontString(d,u,c),f=0,g=n.top,m=n.left,p=n.bottom,v=n.right;i.fillStyle=a(o.fontColor,r.defaultFontColor),i.font=h,n.isHorizontal()?(s=m+(v-m)/2,l=g+(p-g)/2):(s="left"===o.position?m+d/2:v-d/2,l=g+(p-g)/2,f=Math.PI*("left"===o.position?-.5:.5)),i.save(),i.translate(s,l),i.rotate(f),i.textAlign="center",i.textBaseline="middle",i.fillText(o.text,0,0),i.restore()}}}),t.plugins.register({beforeInit:function(e){var n=e.options,i=n.title;i&&(e.titleBlock=new t.Title({ctx:e.chart.ctx,options:i,chart:e}),t.layoutService.addBox(e,e.titleBlock))}})}},{}],34:[function(t,e,n){"use strict";e.exports=function(t){function e(t,e){return e&&(a.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function n(t){if(!t.length)return!1;var e,n,i=[],a=[];for(e=0,n=t.length;n>e;++e){var o=t[e];if(o&&o.hasValue()){var r=o.tooltipPosition();i.push(r.x),a.push(r.y)}}var s=0,l=0;for(e=0;e<i.length;++e)i[e]&&(s+=i[e],l+=a[e]);return{x:Math.round(s/i.length),y:Math.round(l/i.length)}}function i(t){var e=t._xScale,n=t._yScale||t._scale,i=t._index,a=t._datasetIndex;return{xLabel:e?e.getLabelForIndex(i,a):"",yLabel:n?n.getLabelForIndex(i,a):"",index:i,datasetIndex:a}}var a=t.helpers;t.defaults.global.tooltips={enabled:!0,custom:null,mode:"single",backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,yAlign:"center",xAlign:"center",caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",callbacks:{beforeTitle:a.noop,title:function(t,e){var n="",i=e.labels,a=i?i.length:0;if(t.length>0){var o=t[0];o.xLabel?n=o.xLabel:a>0&&o.index<a&&(n=i[o.index])}return n},afterTitle:a.noop,beforeBody:a.noop,beforeLabel:a.noop,label:function(t,e){var n=e.datasets[t.datasetIndex].label||"";return n+": "+t.yLabel},labelColor:function(t,e){var n=e.getDatasetMeta(t.datasetIndex),i=n.data[t.index],a=i._view;return{borderColor:a.borderColor,backgroundColor:a.backgroundColor}},afterLabel:a.noop,afterBody:a.noop,beforeFooter:a.noop,footer:a.noop,afterFooter:a.noop}},t.Tooltip=t.Element.extend({initialize:function(){var e=this,n=t.defaults.global,i=e._options,o=a.getValueOrDefault;a.extend(e,{_model:{xPadding:i.xPadding,yPadding:i.yPadding,xAlign:i.xAlign,yAlign:i.yAlign,bodyFontColor:i.bodyFontColor,_bodyFontFamily:o(i.bodyFontFamily,n.defaultFontFamily),_bodyFontStyle:o(i.bodyFontStyle,n.defaultFontStyle),_bodyAlign:i.bodyAlign,bodyFontSize:o(i.bodyFontSize,n.defaultFontSize),bodySpacing:i.bodySpacing,titleFontColor:i.titleFontColor,_titleFontFamily:o(i.titleFontFamily,n.defaultFontFamily),_titleFontStyle:o(i.titleFontStyle,n.defaultFontStyle),titleFontSize:o(i.titleFontSize,n.defaultFontSize),_titleAlign:i.titleAlign,titleSpacing:i.titleSpacing,titleMarginBottom:i.titleMarginBottom,footerFontColor:i.footerFontColor,_footerFontFamily:o(i.footerFontFamily,n.defaultFontFamily),_footerFontStyle:o(i.footerFontStyle,n.defaultFontStyle),footerFontSize:o(i.footerFontSize,n.defaultFontSize),_footerAlign:i.footerAlign,footerSpacing:i.footerSpacing,footerMarginTop:i.footerMarginTop,caretSize:i.caretSize,cornerRadius:i.cornerRadius,backgroundColor:i.backgroundColor,opacity:0,legendColorBackground:i.multiKeyBackground}})},getTitle:function(){var t=this,n=t._options,i=n.callbacks,a=i.beforeTitle.apply(t,arguments),o=i.title.apply(t,arguments),r=i.afterTitle.apply(t,arguments),s=[];return s=e(s,a),s=e(s,o),s=e(s,r)},getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this,arguments);return a.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,n){var i=this,o=i._options.callbacks,r=[];return a.each(t,function(t){var a={before:[],lines:[],after:[]};e(a.before,o.beforeLabel.call(i,t,n)),e(a.lines,o.label.call(i,t,n)),e(a.after,o.afterLabel.call(i,t,n)),r.push(a)}),r},getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this,arguments);return a.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var t=this,n=t._options.callbacks,i=n.beforeFooter.apply(t,arguments),a=n.footer.apply(t,arguments),o=n.afterFooter.apply(t,arguments),r=[];return r=e(r,i),r=e(r,a),r=e(r,o)},update:function(t){var e,o,r=this,s=r._options,l=r._model,d=r._active,u=r._data,c=r._chartInstance;if(d.length){l.opacity=1;var h=[],f=n(d),g=[];for(e=0,o=d.length;o>e;++e)g.push(i(d[e]));s.itemSort&&(g=g.sort(function(t,e){return s.itemSort(t,e,u)})),d.length>1&&a.each(g,function(t){h.push(s.callbacks.labelColor.call(r,t,c))}),a.extend(l,{title:r.getTitle(g,u),beforeBody:r.getBeforeBody(g,u),body:r.getBody(g,u),afterBody:r.getAfterBody(g,u),footer:r.getFooter(g,u),x:Math.round(f.x),y:Math.round(f.y),caretPadding:a.getValueOrDefault(f.padding,2),labelColors:h});var m=r.getTooltipSize(l);r.determineAlignment(m),a.extend(l,r.getBackgroundPoint(l,m))}else r._model.opacity=0;return t&&s.custom&&s.custom.call(r,l),r},getTooltipSize:function(t){var e=this._chart.ctx,n={height:2*t.yPadding,width:0},i=t.body,o=i.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);o+=t.beforeBody.length+t.afterBody.length;var r=t.title.length,s=t.footer.length,l=t.titleFontSize,d=t.bodyFontSize,u=t.footerFontSize;n.height+=r*l,n.height+=(r-1)*t.titleSpacing,n.height+=r?t.titleMarginBottom:0,n.height+=o*d,n.height+=o?(o-1)*t.bodySpacing:0,n.height+=s?t.footerMarginTop:0,n.height+=s*u,\nn.height+=s?(s-1)*t.footerSpacing:0;var c=0,h=function(t){n.width=Math.max(n.width,e.measureText(t).width+c)};return e.font=a.fontString(l,t._titleFontStyle,t._titleFontFamily),a.each(t.title,h),e.font=a.fontString(d,t._bodyFontStyle,t._bodyFontFamily),a.each(t.beforeBody.concat(t.afterBody),h),c=i.length>1?d+2:0,a.each(i,function(t){a.each(t.before,h),a.each(t.lines,h),a.each(t.after,h)}),c=0,e.font=a.fontString(u,t._footerFontStyle,t._footerFontFamily),a.each(t.footer,h),n.width+=2*t.xPadding,n},determineAlignment:function(t){var e=this,n=e._model,i=e._chart,a=e._chartInstance.chartArea;n.y<t.height?n.yAlign="top":n.y>i.height-t.height&&(n.yAlign="bottom");var o,r,s,l,d,u=(a.left+a.right)/2,c=(a.top+a.bottom)/2;"center"===n.yAlign?(o=function(t){return u>=t},r=function(t){return t>u}):(o=function(e){return e<=t.width/2},r=function(e){return e>=i.width-t.width/2}),s=function(e){return e+t.width>i.width},l=function(e){return e-t.width<0},d=function(t){return c>=t?"top":"bottom"},o(n.x)?(n.xAlign="left",s(n.x)&&(n.xAlign="center",n.yAlign=d(n.y))):r(n.x)&&(n.xAlign="right",l(n.x)&&(n.xAlign="center",n.yAlign=d(n.y)))},getBackgroundPoint:function(t,e){var n={x:t.x,y:t.y},i=t.caretSize,a=t.caretPadding,o=t.cornerRadius,r=t.xAlign,s=t.yAlign,l=i+a,d=o+a;return"right"===r?n.x-=e.width:"center"===r&&(n.x-=e.width/2),"top"===s?n.y+=l:"bottom"===s?n.y-=e.height+l:n.y-=e.height/2,"center"===s?"left"===r?n.x+=l:"right"===r&&(n.x-=l):"left"===r?n.x-=d:"right"===r&&(n.x+=d),n},drawCaret:function(t,e,n){var i,o,r,s,l,d,u=this._view,c=this._chart.ctx,h=u.caretSize,f=u.cornerRadius,g=u.xAlign,m=u.yAlign,p=t.x,v=t.y,b=e.width,y=e.height;"center"===m?("left"===g?(i=p,o=i-h,r=i):(i=p+b,o=i+h,r=i),l=v+y/2,s=l-h,d=l+h):("left"===g?(i=p+f,o=i+h,r=o+h):"right"===g?(i=p+b-f,o=i-h,r=o-h):(o=p+b/2,i=o-h,r=o+h),"top"===m?(s=v,l=s-h,d=s):(s=v+y,l=s+h,d=s));var x=a.color(u.backgroundColor);c.fillStyle=x.alpha(n*x.alpha()).rgbString(),c.beginPath(),c.moveTo(i,s),c.lineTo(o,l),c.lineTo(r,d),c.closePath(),c.fill()},drawTitle:function(t,e,n,i){var o=e.title;if(o.length){n.textAlign=e._titleAlign,n.textBaseline="top";var r=e.titleFontSize,s=e.titleSpacing,l=a.color(e.titleFontColor);n.fillStyle=l.alpha(i*l.alpha()).rgbString(),n.font=a.fontString(r,e._titleFontStyle,e._titleFontFamily);var d,u;for(d=0,u=o.length;u>d;++d)n.fillText(o[d],t.x,t.y),t.y+=r+s,d+1===o.length&&(t.y+=e.titleMarginBottom-s)}},drawBody:function(t,e,n,i){var o=e.bodyFontSize,r=e.bodySpacing,s=e.body;n.textAlign=e._bodyAlign,n.textBaseline="top";var l=a.color(e.bodyFontColor),d=l.alpha(i*l.alpha()).rgbString();n.fillStyle=d,n.font=a.fontString(o,e._bodyFontStyle,e._bodyFontFamily);var u=0,c=function(e){n.fillText(e,t.x+u,t.y),t.y+=o+r};a.each(e.beforeBody,c);var h=s.length>1;u=h?o+2:0,a.each(s,function(r,s){a.each(r.before,c),a.each(r.lines,function(r){h&&(n.fillStyle=a.color(e.legendColorBackground).alpha(i).rgbaString(),n.fillRect(t.x,t.y,o,o),n.strokeStyle=a.color(e.labelColors[s].borderColor).alpha(i).rgbaString(),n.strokeRect(t.x,t.y,o,o),n.fillStyle=a.color(e.labelColors[s].backgroundColor).alpha(i).rgbaString(),n.fillRect(t.x+1,t.y+1,o-2,o-2),n.fillStyle=d),c(r)}),a.each(r.after,c)}),u=0,a.each(e.afterBody,c),t.y-=r},drawFooter:function(t,e,n,i){var o=e.footer;if(o.length){t.y+=e.footerMarginTop,n.textAlign=e._footerAlign,n.textBaseline="top";var r=a.color(e.footerFontColor);n.fillStyle=r.alpha(i*r.alpha()).rgbString(),n.font=a.fontString(e.footerFontSize,e._footerFontStyle,e._footerFontFamily),a.each(o,function(i){n.fillText(i,t.x,t.y),t.y+=e.footerFontSize+e.footerSpacing})}},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n=this.getTooltipSize(e),i={x:e.x,y:e.y},o=Math.abs(e.opacity<.001)?0:e.opacity;if(this._options.enabled){var r=a.color(e.backgroundColor);t.fillStyle=r.alpha(o*r.alpha()).rgbString(),a.drawRoundedRectangle(t,i.x,i.y,n.width,n.height,e.cornerRadius),t.fill(),this.drawCaret(i,n,o),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,o),this.drawBody(i,e,t,o),this.drawFooter(i,e,t,o)}}}})}},{}],35:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers,n=t.defaults.global;n.elements.arc={backgroundColor:n.defaultColor,borderColor:"#fff",borderWidth:2},t.elements.Arc=t.Element.extend({inLabelRange:function(t){var e=this._view;return e?Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2):!1},inRange:function(t,n){var i=this._view;if(i){for(var a=e.getAngleFromPoint(i,{x:t,y:n}),o=a.angle,r=a.distance,s=i.startAngle,l=i.endAngle;s>l;)l+=2*Math.PI;for(;o>l;)o-=2*Math.PI;for(;s>o;)o+=2*Math.PI;var d=o>=s&&l>=o,u=r>=i.innerRadius&&r<=i.outerRadius;return d&&u}return!1},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t=this._chart.ctx,e=this._view,n=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,i),t.arc(e.x,e.y,e.innerRadius,i,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})}},{}],36:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers,n=t.defaults.global;t.defaults.global.elements.line={tension:.4,backgroundColor:n.defaultColor,borderWidth:3,borderColor:n.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0},t.elements.Line=t.Element.extend({draw:function(){function t(t,e){var n=e._view;e._view.steppedLine===!0?(l.lineTo(e._view.x,t._view.y),l.lineTo(e._view.x,e._view.y)):0===e._view.tension?l.lineTo(n.x,n.y):l.bezierCurveTo(t._view.controlPointNextX,t._view.controlPointNextY,n.controlPointPreviousX,n.controlPointPreviousY,n.x,n.y)}var i=this,a=i._view,o=a.spanGaps,r=a.scaleZero,s=i._loop,l=i._chart.ctx;l.save();var d=i._children.slice(),u=-1;s&&d.length&&d.push(d[0]);var c,h,f,g;if(d.length&&a.fill){for(l.beginPath(),c=0;c<d.length;++c)h=d[c],f=e.previousItem(d,c),g=h._view,0===c?(s?l.moveTo(r.x,r.y):l.moveTo(g.x,r),g.skip||(u=c,l.lineTo(g.x,g.y))):(f=-1===u?f:d[u],g.skip?o||u!==c-1||(s?l.lineTo(r.x,r.y):l.lineTo(f._view.x,r)):(u!==c-1?o&&-1!==u?t(f,h):s?l.lineTo(g.x,g.y):(l.lineTo(g.x,r),l.lineTo(g.x,g.y)):t(f,h),u=c));s||-1===u||l.lineTo(d[u]._view.x,r),l.fillStyle=a.backgroundColor||n.defaultColor,l.closePath(),l.fill()}var m=n.elements.line;for(l.lineCap=a.borderCapStyle||m.borderCapStyle,l.setLineDash&&l.setLineDash(a.borderDash||m.borderDash),l.lineDashOffset=a.borderDashOffset||m.borderDashOffset,l.lineJoin=a.borderJoinStyle||m.borderJoinStyle,l.lineWidth=a.borderWidth||m.borderWidth,l.strokeStyle=a.borderColor||n.defaultColor,l.beginPath(),u=-1,c=0;c<d.length;++c)h=d[c],f=e.previousItem(d,c),g=h._view,0===c?g.skip||(l.moveTo(g.x,g.y),u=c):(f=-1===u?f:d[u],g.skip||(u!==c-1&&!o||-1===u?l.moveTo(g.x,g.y):t(f,h),u=c));l.stroke(),l.restore()}})}},{}],37:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers,n=t.defaults.global,i=n.defaultColor;n.elements.point={radius:3,pointStyle:"circle",backgroundColor:i,borderWidth:1,borderColor:i,hitRadius:1,hoverRadius:4,hoverBorderWidth:1},t.elements.Point=t.Element.extend({inRange:function(t,e){var n=this._view;return n?Math.pow(t-n.x,2)+Math.pow(e-n.y,2)<Math.pow(n.hitRadius+n.radius,2):!1},inLabelRange:function(t){var e=this._view;return e?Math.pow(t-e.x,2)<Math.pow(e.radius+e.hitRadius,2):!1},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(){var a=this._view,o=this._chart.ctx,r=a.pointStyle,s=a.radius,l=a.x,d=a.y;a.skip||(o.strokeStyle=a.borderColor||i,o.lineWidth=e.getValueOrDefault(a.borderWidth,n.elements.point.borderWidth),o.fillStyle=a.backgroundColor||i,t.canvasHelpers.drawPoint(o,r,s,l,d))}})}},{}],38:[function(t,e,n){"use strict";e.exports=function(t){var e=t.defaults.global;e.elements.rectangle={backgroundColor:e.defaultColor,borderWidth:0,borderColor:e.defaultColor,borderSkipped:"bottom"},t.elements.Rectangle=t.Element.extend({draw:function(){function t(t){return l[(u+t)%4]}var e=this._chart.ctx,n=this._view,i=n.width/2,a=n.x-i,o=n.x+i,r=n.base-(n.base-n.y),s=n.borderWidth/2;n.borderWidth&&(a+=s,o-=s,r+=s),e.beginPath(),e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,e.lineWidth=n.borderWidth;var l=[[a,n.base],[a,r],[o,r],[o,n.base]],d=["bottom","left","top","right"],u=d.indexOf(n.borderSkipped,0);-1===u&&(u=0),e.moveTo.apply(e,t(0));for(var c=1;4>c;c++)e.lineTo.apply(e,t(c));e.fill(),n.borderWidth&&e.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var n=this._view;return n?n.y<n.base?t>=n.x-n.width/2&&t<=n.x+n.width/2&&e>=n.y&&e<=n.base:t>=n.x-n.width/2&&t<=n.x+n.width/2&&e>=n.base&&e<=n.y:!1},inLabelRange:function(t){var e=this._view;return e?t>=e.x-e.width/2&&t<=e.x+e.width/2:!1},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})}},{}],39:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers,n={position:"bottom"},i=t.Scale.extend({getLabels:function(){var t=this.chart.data;return(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t=this,n=t.getLabels();t.minIndex=0,t.maxIndex=n.length-1;var i;void 0!==t.options.ticks.min&&(i=e.indexOf(n,t.options.ticks.min),t.minIndex=-1!==i?i:t.minIndex),void 0!==t.options.ticks.max&&(i=e.indexOf(n,t.options.ticks.max),t.maxIndex=-1!==i?i:t.maxIndex),t.min=n[t.minIndex],t.max=n[t.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t){return this.ticks[t]},getPixelForValue:function(t,e,n,i){var a=this,o=Math.max(a.maxIndex+1-a.minIndex-(a.options.gridLines.offsetGridLines?0:1),1);if(void 0!==t&&isNaN(e)){var r=a.getLabels(),s=r.indexOf(t);e=-1!==s?s:e}if(a.isHorizontal()){var l=a.width-(a.paddingLeft+a.paddingRight),d=l/o,u=d*(e-a.minIndex)+a.paddingLeft;return(a.options.gridLines.offsetGridLines&&i||a.maxIndex===a.minIndex&&i)&&(u+=d/2),a.left+Math.round(u)}var c=a.height-(a.paddingTop+a.paddingBottom),h=c/o,f=h*(e-a.minIndex)+a.paddingTop;return a.options.gridLines.offsetGridLines&&i&&(f+=h/2),a.top+Math.round(f)},getPixelForTick:function(t,e){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null,e)},getValueForPixel:function(t){var e,n=this,i=Math.max(n.ticks.length-(n.options.gridLines.offsetGridLines?0:1),1),a=n.isHorizontal(),o=a?n.width-(n.paddingLeft+n.paddingRight):n.height-(n.paddingTop+n.paddingBottom),r=o/i;return t-=a?n.left:n.top,n.options.gridLines.offsetGridLines&&(t-=r/2),t-=a?n.paddingLeft:n.paddingTop,e=0>=t?0:Math.round(t/r)},getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType("category",i,n)}},{}],40:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers,n={position:"left",ticks:{callback:function(t,n,i){var a=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var o=e.log10(Math.abs(a)),r="";if(0!==t){var s=-1*Math.floor(o);s=Math.max(Math.min(s,20),0),r=t.toFixed(s)}else r="0";return r}}},i=t.LinearScaleBase.extend({determineDataLimits:function(){function t(t){return s?t.xAxisID===n.id:t.yAxisID===n.id}var n=this,i=n.options,a=n.chart,o=a.data,r=o.datasets,s=n.isHorizontal();if(n.min=null,n.max=null,i.stacked){var l={},d=!1,u=!1;e.each(r,function(o,r){var s=a.getDatasetMeta(r);void 0===l[s.type]&&(l[s.type]={positiveValues:[],negativeValues:[]});var c=l[s.type].positiveValues,h=l[s.type].negativeValues;a.isDatasetVisible(r)&&t(s)&&e.each(o.data,function(t,e){var a=+n.getRightValue(t);isNaN(a)||s.data[e].hidden||(c[e]=c[e]||0,h[e]=h[e]||0,i.relativePoints?c[e]=100:0>a?(u=!0,h[e]+=a):(d=!0,c[e]+=a))})}),e.each(l,function(t){var i=t.positiveValues.concat(t.negativeValues),a=e.min(i),o=e.max(i);n.min=null===n.min?a:Math.min(n.min,a),n.max=null===n.max?o:Math.max(n.max,o)})}else e.each(r,function(i,o){var r=a.getDatasetMeta(o);a.isDatasetVisible(o)&&t(r)&&e.each(i.data,function(t,e){var i=+n.getRightValue(t);isNaN(i)||r.data[e].hidden||(null===n.min?n.min=i:i<n.min&&(n.min=i),null===n.max?n.max=i:i>n.max&&(n.max=i))})});this.handleTickRangeOptions()},getTickLimit:function(){var n,i=this,a=i.options.ticks;if(i.isHorizontal())n=Math.min(a.maxTicksLimit?a.maxTicksLimit:11,Math.ceil(i.width/50));else{var o=e.getValueOrDefault(a.fontSize,t.defaults.global.defaultFontSize);n=Math.min(a.maxTicksLimit?a.maxTicksLimit:11,Math.ceil(i.height/(2*o)))}return n},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,n,i=this,a=i.paddingLeft,o=i.paddingBottom,r=i.start,s=+i.getRightValue(t),l=i.end-r;return i.isHorizontal()?(n=i.width-(a+i.paddingRight),e=i.left+n/l*(s-r),Math.round(e+a)):(n=i.height-(i.paddingTop+o),e=i.bottom-o-n/l*(s-r),Math.round(e))},getValueForPixel:function(t){var e=this,n=e.isHorizontal(),i=e.paddingLeft,a=e.paddingBottom,o=n?e.width-(i+e.paddingRight):e.height-(e.paddingTop+a),r=(n?t-e.left-i:e.bottom-a-t)/o;return e.start+(e.end-e.start)*r},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",i,n)}},{}],41:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers,n=e.noop;t.LinearScaleBase=t.Scale.extend({handleTickRangeOptions:function(){var t=this,n=t.options,i=n.ticks;if(i.beginAtZero){var a=e.sign(t.min),o=e.sign(t.max);0>a&&0>o?t.max=0:a>0&&o>0&&(t.min=0)}void 0!==i.min?t.min=i.min:void 0!==i.suggestedMin&&(t.min=Math.min(t.min,i.suggestedMin)),void 0!==i.max?t.max=i.max:void 0!==i.suggestedMax&&(t.max=Math.max(t.max,i.suggestedMax)),t.min===t.max&&(t.max++,i.beginAtZero||t.min--)},getTickLimit:n,handleDirectionalChanges:n,buildTicks:function(){var t=this,n=t.options,i=t.ticks=[],a=n.ticks,o=e.getValueOrDefault,r=t.getTickLimit();r=Math.max(2,r);var s,l=a.fixedStepSize&&a.fixedStepSize>0||a.stepSize&&a.stepSize>0;if(l)s=o(a.fixedStepSize,a.stepSize);else{var d=e.niceNum(t.max-t.min,!1);s=e.niceNum(d/(r-1),!0)}var u=Math.floor(t.min/s)*s,c=Math.ceil(t.max/s)*s,h=(c-u)/s;h=e.almostEquals(h,Math.round(h),s/1e3)?Math.round(h):Math.ceil(h),i.push(void 0!==a.min?a.min:u);for(var f=1;h>f;++f)i.push(u+f*s);i.push(void 0!==a.max?a.max:c),t.handleDirectionalChanges(),t.max=e.max(i),t.min=e.min(i),a.reverse?(i.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{}],42:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers,n={position:"left",ticks:{callback:function(t,n,i){var a=t/Math.pow(10,Math.floor(e.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===n||n===i.length-1?t.toExponential():""}}},i=t.Scale.extend({determineDataLimits:function(){function t(t){return d?t.xAxisID===n.id:t.yAxisID===n.id}var n=this,i=n.options,a=i.ticks,o=n.chart,r=o.data,s=r.datasets,l=e.getValueOrDefault,d=n.isHorizontal();if(n.min=null,n.max=null,n.minNotZero=null,i.stacked){var u={};e.each(s,function(a,r){var s=o.getDatasetMeta(r);o.isDatasetVisible(r)&&t(s)&&(void 0===u[s.type]&&(u[s.type]=[]),e.each(a.data,function(t,e){var a=u[s.type],o=+n.getRightValue(t);isNaN(o)||s.data[e].hidden||(a[e]=a[e]||0,i.relativePoints?a[e]=100:a[e]+=o)}))}),e.each(u,function(t){var i=e.min(t),a=e.max(t);n.min=null===n.min?i:Math.min(n.min,i),n.max=null===n.max?a:Math.max(n.max,a)})}else e.each(s,function(i,a){var r=o.getDatasetMeta(a);o.isDatasetVisible(a)&&t(r)&&e.each(i.data,function(t,e){var i=+n.getRightValue(t);isNaN(i)||r.data[e].hidden||(null===n.min?n.min=i:i<n.min&&(n.min=i),null===n.max?n.max=i:i>n.max&&(n.max=i),0!==i&&(null===n.minNotZero||i<n.minNotZero)&&(n.minNotZero=i))})});n.min=l(a.min,n.min),n.max=l(a.max,n.max),n.min===n.max&&(0!==n.min&&null!==n.min?(n.min=Math.pow(10,Math.floor(e.log10(n.min))-1),n.max=Math.pow(10,Math.floor(e.log10(n.max))+1)):(n.min=1,n.max=10))},buildTicks:function(){for(var t=this,n=t.options,i=n.ticks,a=e.getValueOrDefault,o=t.ticks=[],r=a(i.min,Math.pow(10,Math.floor(e.log10(t.min))));r<t.max;){o.push(r);var s,l;0===r?(s=Math.floor(e.log10(t.minNotZero)),l=Math.round(t.minNotZero/Math.pow(10,s))):(s=Math.floor(e.log10(r)),l=Math.floor(r/Math.pow(10,s))+1),10===l&&(l=1,++s),r=l*Math.pow(10,s)}var d=a(i.max,r);o.push(d),t.isHorizontal()||o.reverse(),t.max=e.max(o),t.min=e.min(o),i.reverse?(o.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),t.Scale.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},getPixelForValue:function(t){var n,i,a,o=this,r=o.start,s=+o.getRightValue(t),l=o.paddingTop,d=o.paddingBottom,u=o.paddingLeft,c=o.options,h=c.ticks;return o.isHorizontal()?(a=e.log10(o.end)-e.log10(r),0===s?i=o.left+u:(n=o.width-(u+o.paddingRight),i=o.left+n/a*(e.log10(s)-e.log10(r)),i+=u)):(n=o.height-(l+d),0!==r||h.reverse?0===o.end&&h.reverse?(a=e.log10(o.start)-e.log10(o.minNotZero),i=s===o.end?o.top+l:s===o.minNotZero?o.top+l+.02*n:o.top+l+.02*n+.98*n/a*(e.log10(s)-e.log10(o.minNotZero))):(a=e.log10(o.end)-e.log10(r),n=o.height-(l+d),i=o.bottom-d-n/a*(e.log10(s)-e.log10(r))):(a=e.log10(o.end)-e.log10(o.minNotZero),i=s===r?o.bottom-d:s===o.minNotZero?o.bottom-d-.02*n:o.bottom-d-.02*n-.98*n/a*(e.log10(s)-e.log10(o.minNotZero)))),i},getValueForPixel:function(t){var n,i,a=this,o=e.log10(a.end)-e.log10(a.start);return a.isHorizontal()?(i=a.width-(a.paddingLeft+a.paddingRight),n=a.start*Math.pow(10,(t-a.left-a.paddingLeft)*o/i)):(i=a.height-(a.paddingTop+a.paddingBottom),n=Math.pow(10,(a.bottom-a.paddingBottom-t)*o/i)/a.start),n}});t.scaleService.registerScaleType("logarithmic",i,n)}},{}],43:[function(t,e,n){"use strict";e.exports=function(t){var e=t.helpers,n=t.defaults.global,i={display:!0,animate:!0,lineArc:!1,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2},pointLabels:{fontSize:10,callback:function(t){return t}}},a=t.LinearScaleBase.extend({getValueCount:function(){return this.chart.data.labels.length},setDimensions:function(){var t=this,i=t.options,a=i.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var o=e.min([t.height,t.width]),r=e.getValueOrDefault(a.fontSize,n.defaultFontSize);t.drawingArea=i.display?o/2-(r/2+a.backdropPaddingY):o/2},determineDataLimits:function(){var t=this,n=t.chart;t.min=null,t.max=null,e.each(n.data.datasets,function(i,a){if(n.isDatasetVisible(a)){var o=n.getDatasetMeta(a);e.each(i.data,function(e,n){var i=+t.getRightValue(e);isNaN(i)||o.data[n].hidden||(null===t.min?t.min=i:i<t.min&&(t.min=i),null===t.max?t.max=i:i>t.max&&(t.max=i))})}}),t.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,i=e.getValueOrDefault(t.fontSize,n.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*i)))},convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t,i,a,o,r,s,l,d,u,c,h,f,g=this.options.pointLabels,m=e.getValueOrDefault(g.fontSize,n.defaultFontSize),p=e.getValueOrDefault(g.fontStyle,n.defaultFontStyle),v=e.getValueOrDefault(g.fontFamily,n.defaultFontFamily),b=e.fontString(m,p,v),y=e.min([this.height/2-m-5,this.width/2]),x=this.width,k=0;for(this.ctx.font=b,i=0;i<this.getValueCount();i++){t=this.getPointPosition(i,y),a=this.ctx.measureText(this.pointLabels[i]?this.pointLabels[i]:"").width+5;var S=this.getIndexAngle(i)+Math.PI/2,w=360*S/(2*Math.PI)%360;0===w||180===w?(o=a/2,t.x+o>x&&(x=t.x+o,r=i),t.x-o<k&&(k=t.x-o,l=i)):180>w?t.x+a>x&&(x=t.x+a,r=i):t.x-a<k&&(k=t.x-a,l=i)}u=k,c=Math.ceil(x-this.width),s=this.getIndexAngle(r),d=this.getIndexAngle(l),h=c/Math.sin(s+Math.PI/2),f=u/Math.sin(d+Math.PI/2),h=e.isNumber(h)?h:0,f=e.isNumber(f)?f:0,this.drawingArea=Math.round(y-(f+h)/2),this.setCenterPoint(f,h)},setCenterPoint:function(t,e){var n=this,i=n.width-e-n.drawingArea,a=t+n.drawingArea;n.xCenter=Math.round((a+i)/2+n.left),n.yCenter=Math.round(n.height/2+n.top)},getIndexAngle:function(t){var e=2*Math.PI/this.getValueCount(),n=this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0,i=n*Math.PI*2/360;return t*e-Math.PI/2+i},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var n=e.drawingArea/(e.max-e.min);return e.options.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this,i=n.getIndexAngle(t);return{x:Math.round(Math.cos(i)*e)+n.xCenter,y:Math.round(Math.sin(i)*e)+n.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this,e=t.min,n=t.max;return t.getPointPositionForValue(0,t.beginAtZero?0:0>e&&0>n?n:e>0&&n>0?e:0)},draw:function(){var t=this,i=t.options,a=i.gridLines,o=i.ticks,r=i.angleLines,s=i.pointLabels,l=e.getValueOrDefault;if(i.display){var d=t.ctx,u=l(o.fontSize,n.defaultFontSize),c=l(o.fontStyle,n.defaultFontStyle),h=l(o.fontFamily,n.defaultFontFamily),f=e.fontString(u,c,h);if(e.each(t.ticks,function(r,s){if(s>0||i.reverse){var c=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]),h=t.yCenter-c;if(a.display&&0!==s)if(d.strokeStyle=e.getValueAtIndexOrDefault(a.color,s-1),d.lineWidth=e.getValueAtIndexOrDefault(a.lineWidth,s-1),i.lineArc)d.beginPath(),d.arc(t.xCenter,t.yCenter,c,0,2*Math.PI),d.closePath(),d.stroke();else{d.beginPath();for(var g=0;g<t.getValueCount();g++){var m=t.getPointPosition(g,c);0===g?d.moveTo(m.x,m.y):d.lineTo(m.x,m.y)}d.closePath(),d.stroke()}if(o.display){var p=l(o.fontColor,n.defaultFontColor);if(d.font=f,o.showLabelBackdrop){var v=d.measureText(r).width;d.fillStyle=o.backdropColor,d.fillRect(t.xCenter-v/2-o.backdropPaddingX,h-u/2-o.backdropPaddingY,v+2*o.backdropPaddingX,u+2*o.backdropPaddingY)}d.textAlign="center",d.textBaseline="middle",d.fillStyle=p,d.fillText(r,t.xCenter,h)}}}),!i.lineArc){d.lineWidth=r.lineWidth,d.strokeStyle=r.color;for(var g=t.getDistanceFromCenterForValue(i.reverse?t.min:t.max),m=l(s.fontSize,n.defaultFontSize),p=l(s.fontStyle,n.defaultFontStyle),v=l(s.fontFamily,n.defaultFontFamily),b=e.fontString(m,p,v),y=t.getValueCount()-1;y>=0;y--){if(r.display){var x=t.getPointPosition(y,g);d.beginPath(),d.moveTo(t.xCenter,t.yCenter),d.lineTo(x.x,x.y),d.stroke(),d.closePath()}var k=t.getPointPosition(y,g+5),S=l(s.fontColor,n.defaultFontColor);d.font=b,d.fillStyle=S;var w=t.pointLabels,_=this.getIndexAngle(y)+Math.PI/2,M=360*_/(2*Math.PI)%360;0===M||180===M?d.textAlign="center":180>M?d.textAlign="left":d.textAlign="right",90===M||270===M?d.textBaseline="middle":M>270||90>M?d.textBaseline="bottom":d.textBaseline="top",d.fillText(w[y]?w[y]:"",k.x,k.y)}}}}});t.scaleService.registerScaleType("radialLinear",a,i)}},{}],44:[function(t,e,n){"use strict";var i=t(6);i="function"==typeof i?i:window.moment,e.exports=function(t){var e=t.helpers,n={units:[{name:"millisecond",steps:[1,2,5,10,20,50,100,250,500]},{name:"second",steps:[1,2,5,10,30]},{name:"minute",steps:[1,2,5,10,30]},{name:"hour",steps:[1,2,3,6,12]},{name:"day",steps:[1,2,5]},{name:"week",maxStep:4},{name:"month",maxStep:3},{name:"quarter",maxStep:4},{name:"year",maxStep:!1}]},a={position:"bottom",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm:ss a",hour:"MMM D, hA",day:"ll",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1}},o=t.Scale.extend({initialize:function(){if(!i)throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");t.Scale.prototype.initialize.call(this)},getLabelMoment:function(t,e){return"undefined"!=typeof this.labelMoments[t]?this.labelMoments[t][e]:null},getMomentStartOf:function(t){var e=this;return"week"===e.options.time.unit&&e.options.time.isoWeekday!==!1?t.clone().startOf("isoWeek").isoWeekday(e.options.time.isoWeekday):t.clone().startOf(e.tickUnit)},determineDataLimits:function(){var t=this;t.labelMoments=[];var n=[];t.chart.data.labels&&t.chart.data.labels.length>0?(e.each(t.chart.data.labels,function(e){var i=t.parseTime(e);i.isValid()&&(t.options.time.round&&i.startOf(t.options.time.round),n.push(i))},t),t.firstTick=i.min.call(t,n),t.lastTick=i.max.call(t,n)):(t.firstTick=null,t.lastTick=null),e.each(t.chart.data.datasets,function(a,o){var r=[],s=t.chart.isDatasetVisible(o);"object"==typeof a.data[0]&&null!==a.data[0]?e.each(a.data,function(e){var n=t.parseTime(t.getRightValue(e));n.isValid()&&(t.options.time.round&&n.startOf(t.options.time.round),r.push(n),s&&(t.firstTick=null!==t.firstTick?i.min(t.firstTick,n):n,t.lastTick=null!==t.lastTick?i.max(t.lastTick,n):n))},t):r=n,t.labelMoments.push(r)},t),t.options.time.min&&(t.firstTick=t.parseTime(t.options.time.min)),t.options.time.max&&(t.lastTick=t.parseTime(t.options.time.max)),t.firstTick=(t.firstTick||i()).clone(),t.lastTick=(t.lastTick||i()).clone()},buildTicks:function(){var i=this;i.ctx.save();var a=e.getValueOrDefault(i.options.ticks.fontSize,t.defaults.global.defaultFontSize),o=e.getValueOrDefault(i.options.ticks.fontStyle,t.defaults.global.defaultFontStyle),r=e.getValueOrDefault(i.options.ticks.fontFamily,t.defaults.global.defaultFontFamily),s=e.fontString(a,o,r);if(i.ctx.font=s,i.ticks=[],i.unitScale=1,i.scaleSizeInUnits=0,i.options.time.unit)i.tickUnit=i.options.time.unit||"day",i.displayFormat=i.options.time.displayFormats[i.tickUnit],i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0),i.unitScale=e.getValueOrDefault(i.options.time.unitStepSize,1);else{var l=i.isHorizontal()?i.width-(i.paddingLeft+i.paddingRight):i.height-(i.paddingTop+i.paddingBottom),d=i.tickFormatFunction(i.firstTick,0,[]),u=i.ctx.measureText(d).width,c=Math.cos(e.toRadians(i.options.ticks.maxRotation)),h=Math.sin(e.toRadians(i.options.ticks.maxRotation));u=u*c+a*h;var f=l/u;i.tickUnit="millisecond",i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0),i.displayFormat=i.options.time.displayFormats[i.tickUnit];for(var g=0,m=n.units[g];g<n.units.length;){if(i.unitScale=1,e.isArray(m.steps)&&Math.ceil(i.scaleSizeInUnits/f)<e.max(m.steps)){for(var p=0;p<m.steps.length;++p)if(m.steps[p]>=Math.ceil(i.scaleSizeInUnits/f)){i.unitScale=e.getValueOrDefault(i.options.time.unitStepSize,m.steps[p]);break}break}if(m.maxStep===!1||Math.ceil(i.scaleSizeInUnits/f)<m.maxStep){i.unitScale=e.getValueOrDefault(i.options.time.unitStepSize,Math.ceil(i.scaleSizeInUnits/f));break}++g,m=n.units[g],i.tickUnit=m.name;var v=i.firstTick.diff(i.getMomentStartOf(i.firstTick),i.tickUnit,!0),b=i.getMomentStartOf(i.lastTick.clone().add(1,i.tickUnit)).diff(i.lastTick,i.tickUnit,!0);i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0)+v+b,i.displayFormat=i.options.time.displayFormats[m.name]}}var y;if(i.options.time.min?y=i.getMomentStartOf(i.firstTick):(i.firstTick=i.getMomentStartOf(i.firstTick),y=i.firstTick),!i.options.time.max){var x=i.getMomentStartOf(i.lastTick),k=x.diff(i.lastTick,i.tickUnit,!0);0>k?i.lastTick=i.getMomentStartOf(i.lastTick.add(1,i.tickUnit)):k>=0&&(i.lastTick=x),i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0)}i.options.time.displayFormat&&(i.displayFormat=i.options.time.displayFormat),i.ticks.push(i.firstTick.clone());for(var S=1;S<=i.scaleSizeInUnits;++S){var w=y.clone().add(S,i.tickUnit);if(i.options.time.max&&w.diff(i.lastTick,i.tickUnit,!0)>=0)break;S%i.unitScale===0&&i.ticks.push(w)}var _=i.ticks[i.ticks.length-1].diff(i.lastTick,i.tickUnit);(0!==_||0===i.scaleSizeInUnits)&&(i.options.time.max?(i.ticks.push(i.lastTick.clone()),i.scaleSizeInUnits=i.lastTick.diff(i.ticks[0],i.tickUnit,!0)):(i.ticks.push(i.lastTick.clone()),i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0))),i.ctx.restore()},getLabelForIndex:function(t,e){var n=this,i=n.chart.data.labels&&t<n.chart.data.labels.length?n.chart.data.labels[t]:"";return"object"==typeof n.chart.data.datasets[e].data[0]&&(i=n.getRightValue(n.chart.data.datasets[e].data[t])),n.options.time.tooltipFormat&&(i=n.parseTime(i).format(n.options.time.tooltipFormat)),i},tickFormatFunction:function(t,n,i){var a=t.format(this.displayFormat),o=this.options.ticks,r=e.getValueOrDefault(o.callback,o.userCallback);return r?r(a,n,i):a},convertTicksToLabels:function(){var t=this;t.tickMoments=t.ticks,t.ticks=t.ticks.map(t.tickFormatFunction,t)},getPixelForValue:function(t,e,n){var i=this;t&&t.isValid||(t=i.parseTime(i.getRightValue(t)));var a=t&&t.isValid&&t.isValid()?t:i.getLabelMoment(n,e);if(a){var o=a.diff(i.firstTick,i.tickUnit,!0),r=0!==o?o/i.scaleSizeInUnits:o;if(i.isHorizontal()){var s=i.width-(i.paddingLeft+i.paddingRight),l=s*r+i.paddingLeft;return i.left+Math.round(l)}var d=i.height-(i.paddingTop+i.paddingBottom),u=d*r+i.paddingTop;return i.top+Math.round(u)}},getPixelForTick:function(t){return this.getPixelForValue(this.tickMoments[t],null,null)},getValueForPixel:function(t){var e=this,n=e.isHorizontal()?e.width-(e.paddingLeft+e.paddingRight):e.height-(e.paddingTop+e.paddingBottom),a=(t-(e.isHorizontal()?e.left+e.paddingLeft:e.top+e.paddingTop))/n;return a*=e.scaleSizeInUnits,e.firstTick.clone().add(i.duration(a,e.tickUnit).asSeconds(),"seconds")},parseTime:function(t){var e=this;return"string"==typeof e.options.time.parser?i(t,e.options.time.parser):"function"==typeof e.options.time.parser?e.options.time.parser(t):"function"==typeof t.getMonth||"number"==typeof t?i(t):t.isValid&&t.isValid()?t:"string"!=typeof e.options.time.format&&e.options.time.format.call?(console.warn("options.time.format is deprecated and replaced by options.time.parser. See http://nnnick.github.io/Chart.js/docs-v2/#scales-time-scale"),e.options.time.format(t)):i(t,e.options.time.format)}});t.scaleService.registerScaleType("time",o,a)}},{6:6}]},{},[7])(7)});';
+},712:function(t,e){t.exports='/*!\n * Chart.js\n * http://chartjs.org/\n * Version: 2.2.2\n *\n * Copyright 2016 Nick Downie\n * Released under the MIT license\n * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md\n */\n!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Chart=t()}}(function(){return function t(e,a,i){function n(r,l){if(!a[r]){if(!e[r]){var s="function"==typeof require&&require;if(!l&&s)return s(r,!0);if(o)return o(r,!0);var d=new Error("Cannot find module \'"+r+"\'");throw d.code="MODULE_NOT_FOUND",d}var u=a[r]={exports:{}};e[r][0].call(u.exports,function(t){var a=e[r][1][t];return n(a?a:t)},u,u.exports,t,e,a,i)}return a[r].exports}for(var o="function"==typeof require&&require,r=0;r<i.length;r++)n(i[r]);return n}({1:[function(t,e,a){},{}],2:[function(t,e,a){function i(t){if(t){var e=/^#([a-fA-F0-9]{3})$/,a=/^#([a-fA-F0-9]{6})$/,i=/^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/,n=/^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/,o=/(\\w+)/,r=[0,0,0],l=1,s=t.match(e);if(s){s=s[1];for(var d=0;d<r.length;d++)r[d]=parseInt(s[d]+s[d],16)}else if(s=t.match(a)){s=s[1];for(var d=0;d<r.length;d++)r[d]=parseInt(s.slice(2*d,2*d+2),16)}else if(s=t.match(i)){for(var d=0;d<r.length;d++)r[d]=parseInt(s[d+1]);l=parseFloat(s[4])}else if(s=t.match(n)){for(var d=0;d<r.length;d++)r[d]=Math.round(2.55*parseFloat(s[d+1]));l=parseFloat(s[4])}else if(s=t.match(o)){if("transparent"==s[1])return[0,0,0,0];if(r=y[s[1]],!r)return}for(var d=0;d<r.length;d++)r[d]=v(r[d],0,255);return l=l||0==l?v(l,0,1):1,r[3]=l,r}}function n(t){if(t){var e=/^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/,a=t.match(e);if(a){var i=parseFloat(a[4]),n=v(parseInt(a[1]),0,360),o=v(parseFloat(a[2]),0,100),r=v(parseFloat(a[3]),0,100),l=v(isNaN(i)?1:i,0,1);return[n,o,r,l]}}}function o(t){if(t){var e=/^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/,a=t.match(e);if(a){var i=parseFloat(a[4]),n=v(parseInt(a[1]),0,360),o=v(parseFloat(a[2]),0,100),r=v(parseFloat(a[3]),0,100),l=v(isNaN(i)?1:i,0,1);return[n,o,r,l]}}}function r(t){var e=i(t);return e&&e.slice(0,3)}function l(t){var e=n(t);return e&&e.slice(0,3)}function s(t){var e=i(t);return e?e[3]:(e=n(t))?e[3]:(e=o(t))?e[3]:void 0}function d(t){return"#"+x(t[0])+x(t[1])+x(t[2])}function u(t,e){return 1>e||t[3]&&t[3]<1?c(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"}function c(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function h(t,e){if(1>e||t[3]&&t[3]<1)return f(t,e);var a=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),n=Math.round(t[2]/255*100);return"rgb("+a+"%, "+i+"%, "+n+"%)"}function f(t,e){var a=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),n=Math.round(t[2]/255*100);return"rgba("+a+"%, "+i+"%, "+n+"%, "+(e||t[3]||1)+")"}function g(t,e){return 1>e||t[3]&&t[3]<1?p(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"}function p(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function m(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"}function b(t){return k[t.slice(0,3)]}function v(t,e,a){return Math.min(Math.max(e,t),a)}function x(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var y=t(6);e.exports={getRgba:i,getHsla:n,getRgb:r,getHsl:l,getHwb:o,getAlpha:s,hexString:d,rgbString:u,rgbaString:c,percentString:h,percentaString:f,hslString:g,hslaString:p,hwbString:m,keyword:b};var k={};for(var S in y)k[y[S]]=S},{6:6}],3:[function(t,e,a){var i=t(5),n=t(2),o=function(t){if(t instanceof o)return t;if(!(this instanceof o))return new o(t);this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var e;if("string"==typeof t)if(e=n.getRgba(t))this.setValues("rgb",e);else if(e=n.getHsla(t))this.setValues("hsl",e);else{if(!(e=n.getHwb(t)))throw new Error(\'Unable to parse color from string "\'+t+\'"\');this.setValues("hwb",e)}else if("object"==typeof t)if(e=t,void 0!==e.r||void 0!==e.red)this.setValues("rgb",e);else if(void 0!==e.l||void 0!==e.lightness)this.setValues("hsl",e);else if(void 0!==e.v||void 0!==e.value)this.setValues("hsv",e);else if(void 0!==e.w||void 0!==e.whiteness)this.setValues("hwb",e);else{if(void 0===e.c&&void 0===e.cyan)throw new Error("Unable to parse color from object "+JSON.stringify(t));this.setValues("cmyk",e)}};o.prototype={rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t%=360,t=0>t?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return n.hexString(this.values.rgb)},rgbString:function(){return n.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return n.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return n.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return n.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return n.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return n.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return n.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],a=0;a<t.length;a++){var i=t[a]/255;e[a]=.03928>=i?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),a=t.luminosity();return e>a?(e+.05)/(a+.05):(a+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb,e=(299*t[0]+587*t[1]+114*t[2])/1e3;return 128>e},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;3>e;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,a=(e[0]+t)%360;return e[0]=0>a?360+a:a,this.setValues("hsl",e),this},mix:function(t,e){var a=this,i=t,n=void 0===e?.5:e,o=2*n-1,r=a.alpha()-i.alpha(),l=((o*r===-1?o:(o+r)/(1+o*r))+1)/2,s=1-l;return this.rgb(l*a.red()+s*i.red(),l*a.green()+s*i.green(),l*a.blue()+s*i.blue()).alpha(a.alpha()*n+i.alpha()*(1-n))},toJSON:function(){return this.rgb()},clone:function(){var t,e,a=new o,i=this.values,n=a.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],e={}.toString.call(t),"[object Array]"===e?n[r]=t.slice(0):"[object Number]"===e?n[r]=t:console.error("unexpected color value:",t));return a}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,a={},i=0;i<t.length;i++)a[t.charAt(i)]=e[t][i];return 1!==e.alpha&&(a.a=e.alpha),a},o.prototype.setValues=function(t,e){var a,n=this.values,o=this.spaces,r=this.maxes,l=1;if("alpha"===t)l=e;else if(e.length)n[t]=e.slice(0,t.length),l=e[t.length];else if(void 0!==e[t.charAt(0)]){for(a=0;a<t.length;a++)n[t][a]=e[t.charAt(a)];l=e.a}else if(void 0!==e[o[t][0]]){var s=o[t];for(a=0;a<t.length;a++)n[t][a]=e[s[a]];l=e.alpha}if(n.alpha=Math.max(0,Math.min(1,void 0===l?n.alpha:l)),"alpha"===t)return!1;var d;for(a=0;a<t.length;a++)d=Math.max(0,Math.min(r[t][a],n[t][a])),n[t][a]=Math.round(d);for(var u in o)u!==t&&(n[u]=i[t][u](n[t]));return!0},o.prototype.setSpace=function(t,e){var a=e[0];return void 0===a?this.getValues(t):("number"==typeof a&&(a=Array.prototype.slice.call(e)),this.setValues(t,a),this)},o.prototype.setChannel=function(t,e,a){var i=this.values[t];return void 0===a?i[e]:a===i[e]?this:(i[e]=a,this.setValues(t,i),this)},"undefined"!=typeof window&&(window.Color=o),e.exports=o},{2:2,5:5}],4:[function(t,e,a){function i(t){var e,a,i,n=t[0]/255,o=t[1]/255,r=t[2]/255,l=Math.min(n,o,r),s=Math.max(n,o,r),d=s-l;return s==l?e=0:n==s?e=(o-r)/d:o==s?e=2+(r-n)/d:r==s&&(e=4+(n-o)/d),e=Math.min(60*e,360),0>e&&(e+=360),i=(l+s)/2,a=s==l?0:.5>=i?d/(s+l):d/(2-s-l),[e,100*a,100*i]}function n(t){var e,a,i,n=t[0],o=t[1],r=t[2],l=Math.min(n,o,r),s=Math.max(n,o,r),d=s-l;return a=0==s?0:d/s*1e3/10,s==l?e=0:n==s?e=(o-r)/d:o==s?e=2+(r-n)/d:r==s&&(e=4+(n-o)/d),e=Math.min(60*e,360),0>e&&(e+=360),i=s/255*1e3/10,[e,a,i]}function o(t){var e=t[0],a=t[1],n=t[2],o=i(t)[0],r=1/255*Math.min(e,Math.min(a,n)),n=1-1/255*Math.max(e,Math.max(a,n));return[o,100*r,100*n]}function l(t){var e,a,i,n,o=t[0]/255,r=t[1]/255,l=t[2]/255;return n=Math.min(1-o,1-r,1-l),e=(1-o-n)/(1-n)||0,a=(1-r-n)/(1-n)||0,i=(1-l-n)/(1-n)||0,[100*e,100*a,100*i,100*n]}function s(t){return G[JSON.stringify(t)]}function d(t){var e=t[0]/255,a=t[1]/255,i=t[2]/255;e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92,i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92;var n=.4124*e+.3576*a+.1805*i,o=.2126*e+.7152*a+.0722*i,r=.0193*e+.1192*a+.9505*i;return[100*n,100*o,100*r]}function u(t){var e,a,i,n=d(t),o=n[0],r=n[1],l=n[2];return o/=95.047,r/=100,l/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,l=l>.008856?Math.pow(l,1/3):7.787*l+16/116,e=116*r-16,a=500*(o-r),i=200*(r-l),[e,a,i]}function c(t){return W(u(t))}function h(t){var e,a,i,n,o,r=t[0]/360,l=t[1]/100,s=t[2]/100;if(0==l)return o=255*s,[o,o,o];a=.5>s?s*(1+l):s+l-s*l,e=2*s-a,n=[0,0,0];for(var d=0;3>d;d++)i=r+1/3*-(d-1),0>i&&i++,i>1&&i--,o=1>6*i?e+6*(a-e)*i:1>2*i?a:2>3*i?e+(a-e)*(2/3-i)*6:e,n[d]=255*o;return n}function f(t){var e,a,i=t[0],n=t[1]/100,o=t[2]/100;return 0===o?[0,0,0]:(o*=2,n*=1>=o?o:2-o,a=(o+n)/2,e=2*n/(o+n),[i,100*e,100*a])}function p(t){return o(h(t))}function m(t){return l(h(t))}function v(t){return s(h(t))}function x(t){var e=t[0]/60,a=t[1]/100,i=t[2]/100,n=Math.floor(e)%6,o=e-Math.floor(e),r=255*i*(1-a),l=255*i*(1-a*o),s=255*i*(1-a*(1-o)),i=255*i;switch(n){case 0:return[i,s,r];case 1:return[l,i,r];case 2:return[r,i,s];case 3:return[r,l,i];case 4:return[s,r,i];case 5:return[i,r,l]}}function y(t){var e,a,i=t[0],n=t[1]/100,o=t[2]/100;return a=(2-n)*o,e=n*o,e/=1>=a?a:2-a,e=e||0,a/=2,[i,100*e,100*a]}function k(t){return o(x(t))}function S(t){return l(x(t))}function w(t){return s(x(t))}function C(t){var e,a,i,n,o=t[0]/360,l=t[1]/100,s=t[2]/100,d=l+s;switch(d>1&&(l/=d,s/=d),e=Math.floor(6*o),a=1-s,i=6*o-e,0!=(1&e)&&(i=1-i),n=l+i*(a-l),e){default:case 6:case 0:r=a,g=n,b=l;break;case 1:r=n,g=a,b=l;break;case 2:r=l,g=a,b=n;break;case 3:r=l,g=n,b=a;break;case 4:r=n,g=l,b=a;break;case 5:r=a,g=l,b=n}return[255*r,255*g,255*b]}function M(t){return i(C(t))}function D(t){return n(C(t))}function I(t){return l(C(t))}function A(t){return s(C(t))}function P(t){var e,a,i,n=t[0]/100,o=t[1]/100,r=t[2]/100,l=t[3]/100;return e=1-Math.min(1,n*(1-l)+l),a=1-Math.min(1,o*(1-l)+l),i=1-Math.min(1,r*(1-l)+l),[255*e,255*a,255*i]}function T(t){return i(P(t))}function F(t){return n(P(t))}function R(t){return o(P(t))}function _(t){return s(P(t))}function V(t){var e,a,i,n=t[0]/100,o=t[1]/100,r=t[2]/100;return e=3.2406*n+-1.5372*o+r*-.4986,a=n*-.9689+1.8758*o+.0415*r,i=.0557*n+o*-.204+1.057*r,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e=12.92*e,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a=12.92*a,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i=12.92*i,e=Math.min(Math.max(0,e),1),a=Math.min(Math.max(0,a),1),i=Math.min(Math.max(0,i),1),[255*e,255*a,255*i]}function L(t){var e,a,i,n=t[0],o=t[1],r=t[2];return n/=95.047,o/=100,r/=108.883,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,e=116*o-16,a=500*(n-o),i=200*(o-r),[e,a,i]}function O(t){return W(L(t))}function B(t){var e,a,i,n,o=t[0],r=t[1],l=t[2];return 8>=o?(a=100*o/903.3,n=7.787*(a/100)+16/116):(a=100*Math.pow((o+16)/116,3),n=Math.pow(a/100,1/3)),e=.008856>=e/95.047?e=95.047*(r/500+n-16/116)/7.787:95.047*Math.pow(r/500+n,3),i=.008859>=i/108.883?i=108.883*(n-l/200-16/116)/7.787:108.883*Math.pow(n-l/200,3),[e,a,i]}function W(t){var e,a,i,n=t[0],o=t[1],r=t[2];return e=Math.atan2(r,o),a=360*e/2/Math.PI,0>a&&(a+=360),i=Math.sqrt(o*o+r*r),[n,i,a]}function z(t){return V(B(t))}function N(t){var e,a,i,n=t[0],o=t[1],r=t[2];return i=r/360*2*Math.PI,e=o*Math.cos(i),a=o*Math.sin(i),[n,e,a]}function H(t){return B(N(t))}function E(t){return z(N(t))}function U(t){return Z[t]}function q(t){return i(U(t))}function j(t){return n(U(t))}function Y(t){return o(U(t))}function K(t){return l(U(t))}function X(t){return u(U(t))}function J(t){return d(U(t))}e.exports={rgb2hsl:i,rgb2hsv:n,rgb2hwb:o,rgb2cmyk:l,rgb2keyword:s,rgb2xyz:d,rgb2lab:u,rgb2lch:c,hsl2rgb:h,hsl2hsv:f,hsl2hwb:p,hsl2cmyk:m,hsl2keyword:v,hsv2rgb:x,hsv2hsl:y,hsv2hwb:k,hsv2cmyk:S,hsv2keyword:w,hwb2rgb:C,hwb2hsl:M,hwb2hsv:D,hwb2cmyk:I,hwb2keyword:A,cmyk2rgb:P,cmyk2hsl:T,cmyk2hsv:F,cmyk2hwb:R,cmyk2keyword:_,keyword2rgb:U,keyword2hsl:q,keyword2hsv:j,keyword2hwb:Y,keyword2cmyk:K,keyword2lab:X,keyword2xyz:J,xyz2rgb:V,xyz2lab:L,xyz2lch:O,lab2xyz:B,lab2rgb:z,lab2lch:W,lch2lab:N,lch2xyz:H,lch2rgb:E};var Z={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},G={};for(var Q in Z)G[JSON.stringify(Z[Q])]=Q},{}],5:[function(t,e,a){var i=t(4),n=function(){return new d};for(var o in i){n[o+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(o);var r=/(\\w+)2(\\w+)/.exec(o),l=r[1],s=r[2];n[l]=n[l]||{},n[l][s]=n[o]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var a=i[t](e);if("string"==typeof a||void 0===a)return a;for(var n=0;n<a.length;n++)a[n]=Math.round(a[n]);return a}}(o)}var d=function(){this.convs={}};d.prototype.routeSpace=function(t,e){var a=e[0];return void 0===a?this.getValues(t):("number"==typeof a&&(a=Array.prototype.slice.call(e)),this.setValues(t,a))},d.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},d.prototype.getValues=function(t){var e=this.convs[t];if(!e){var a=this.space,i=this.convs[a];e=n[a][t](i),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){d.prototype[t]=function(e){return this.routeSpace(t,arguments)}}),e.exports=n},{4:4}],6:[function(t,e,a){e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],7:[function(t,e,a){var i=t(27)();t(26)(i),t(22)(i),t(25)(i),t(21)(i),t(23)(i),t(24)(i),t(28)(i),t(32)(i),t(30)(i),t(31)(i),t(33)(i),t(29)(i),t(34)(i),t(35)(i),t(36)(i),t(37)(i),t(38)(i),t(41)(i),t(39)(i),t(40)(i),t(42)(i),t(43)(i),t(44)(i),t(15)(i),t(16)(i),t(17)(i),t(18)(i),t(19)(i),t(20)(i),t(8)(i),t(9)(i),t(10)(i),t(11)(i),t(12)(i),t(13)(i),t(14)(i),window.Chart=e.exports=i},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,34:34,35:35,36:36,37:37,38:38,39:39,40:40,41:41,42:42,43:43,44:44,8:8,9:9}],8:[function(t,e,a){"use strict";e.exports=function(t){t.Bar=function(e,a){return a.type="bar",new t(e,a)}}},{}],9:[function(t,e,a){"use strict";e.exports=function(t){t.Bubble=function(e,a){return a.type="bubble",new t(e,a)}}},{}],10:[function(t,e,a){"use strict";e.exports=function(t){t.Doughnut=function(e,a){return a.type="doughnut",new t(e,a)}}},{}],11:[function(t,e,a){"use strict";e.exports=function(t){t.Line=function(e,a){return a.type="line",new t(e,a)}}},{}],12:[function(t,e,a){"use strict";e.exports=function(t){t.PolarArea=function(e,a){return a.type="polarArea",new t(e,a)}}},{}],13:[function(t,e,a){"use strict";e.exports=function(t){t.Radar=function(e,a){return a.options=t.helpers.configMerge({aspectRatio:1},a.options),a.type="radar",new t(e,a)}}},{}],14:[function(t,e,a){"use strict";e.exports=function(t){var e={hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-1"}],yAxes:[{type:"linear",position:"left",id:"y-axis-1"}]},tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}};t.defaults.scatter=e,t.controllers.scatter=t.controllers.line,t.Scatter=function(e,a){return a.type="scatter",new t(e,a)}}},{}],15:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.bar={hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}},t.controllers.bar=t.DatasetController.extend({dataElementType:t.elements.Rectangle,initialize:function(e,a){t.DatasetController.prototype.initialize.call(this,e,a),this.getMeta().bar=!0},getBarCount:function(){var t=this,a=0;return e.each(t.chart.data.datasets,function(e,i){var n=t.chart.getDatasetMeta(i);n.bar&&t.chart.isDatasetVisible(i)&&++a},t),a},update:function(t){var a=this;e.each(a.getMeta().data,function(e,i){a.updateElement(e,i,t)},a)},updateElement:function(t,a,i){var n=this,o=n.getMeta(),r=n.getScaleForId(o.xAxisID),l=n.getScaleForId(o.yAxisID),s=l.getBasePixel(),d=n.chart.options.elements.rectangle,u=t.custom||{},c=n.getDataset();e.extend(t,{_xScale:r,_yScale:l,_datasetIndex:n.index,_index:a,_model:{x:n.calculateBarX(a,n.index),y:i?s:n.calculateBarY(a,n.index),label:n.chart.data.labels[a],datasetLabel:c.label,base:i?s:n.calculateBarBase(n.index,a),width:n.calculateBarWidth(a),backgroundColor:u.backgroundColor?u.backgroundColor:e.getValueAtIndexOrDefault(c.backgroundColor,a,d.backgroundColor),borderSkipped:u.borderSkipped?u.borderSkipped:d.borderSkipped,borderColor:u.borderColor?u.borderColor:e.getValueAtIndexOrDefault(c.borderColor,a,d.borderColor),borderWidth:u.borderWidth?u.borderWidth:e.getValueAtIndexOrDefault(c.borderWidth,a,d.borderWidth)}}),t.pivot()},calculateBarBase:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.yAxisID),o=0;if(n.options.stacked){for(var r=a.chart,l=r.data.datasets,s=Number(l[t].data[e]),d=0;t>d;d++){var u=l[d],c=r.getDatasetMeta(d);if(c.bar&&c.yAxisID===n.id&&r.isDatasetVisible(d)){var h=Number(u.data[e]);o+=0>s?Math.min(h,0):Math.max(h,0)}}return n.getPixelForValue(o)}return n.getBasePixel()},getRuler:function(t){var e,a=this,i=a.getMeta(),n=a.getScaleForId(i.xAxisID),o=a.getBarCount();e="category"===n.options.type?n.getPixelForTick(t+1)-n.getPixelForTick(t):n.width/n.ticks.length;var r=e*n.options.categoryPercentage,l=(e-e*n.options.categoryPercentage)/2,s=r/o;if(n.ticks.length!==a.chart.data.labels.length){var d=n.ticks.length/a.chart.data.labels.length;s*=d}var u=s*n.options.barPercentage,c=s-s*n.options.barPercentage;return{datasetCount:o,tickWidth:e,categoryWidth:r,categorySpacing:l,fullBarWidth:s,barWidth:u,barSpacing:c}},calculateBarWidth:function(t){var e=this.getScaleForId(this.getMeta().xAxisID);if(e.options.barThickness)return e.options.barThickness;var a=this.getRuler(t);return e.options.stacked?a.categoryWidth:a.barWidth},getBarIndex:function(t){var e,a,i=0;for(a=0;t>a;++a)e=this.chart.getDatasetMeta(a),e.bar&&this.chart.isDatasetVisible(a)&&++i;return i},calculateBarX:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.xAxisID),o=a.getBarIndex(e),r=a.getRuler(t),l=n.getPixelForValue(null,t,e,a.chart.isCombo);return l-=a.chart.isCombo?r.tickWidth/2:0,n.options.stacked?l+r.categoryWidth/2+r.categorySpacing:l+r.barWidth/2+r.categorySpacing+r.barWidth*o+r.barSpacing/2+r.barSpacing*o},calculateBarY:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.yAxisID),o=Number(a.getDataset().data[t]);if(n.options.stacked){for(var r=0,l=0,s=0;e>s;s++){var d=a.chart.data.datasets[s],u=a.chart.getDatasetMeta(s);if(u.bar&&u.yAxisID===n.id&&a.chart.isDatasetVisible(s)){var c=Number(d.data[t]);0>c?l+=c||0:r+=c||0}}return 0>o?n.getPixelForValue(l+o):n.getPixelForValue(r+o)}return n.getPixelForValue(o)},draw:function(t){var a=this,i=t||1;e.each(a.getMeta().data,function(t,e){var n=a.getDataset().data[e];null===n||void 0===n||isNaN(n)||t.transition(i).draw()},a)},setHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},o=t._model;o.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:e.getValueAtIndexOrDefault(a.hoverBackgroundColor,i,e.getHoverColor(o.backgroundColor)),o.borderColor=n.hoverBorderColor?n.hoverBorderColor:e.getValueAtIndexOrDefault(a.hoverBorderColor,i,e.getHoverColor(o.borderColor)),o.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:e.getValueAtIndexOrDefault(a.hoverBorderWidth,i,o.borderWidth)},removeHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},o=t._model,r=this.chart.options.elements.rectangle;o.backgroundColor=n.backgroundColor?n.backgroundColor:e.getValueAtIndexOrDefault(a.backgroundColor,i,r.backgroundColor),o.borderColor=n.borderColor?n.borderColor:e.getValueAtIndexOrDefault(a.borderColor,i,r.borderColor),o.borderWidth=n.borderWidth?n.borderWidth:e.getValueAtIndexOrDefault(a.borderWidth,i,r.borderWidth)}}),t.defaults.horizontalBar={hover:{mode:"label"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var a="";return t.length>0&&(t[0].yLabel?a=t[0].yLabel:e.labels.length>0&&t[0].index<e.labels.length&&(a=e.labels[t[0].index])),a},label:function(t,e){var a=e.datasets[t.datasetIndex].label||"";return a+": "+t.xLabel}}}},t.controllers.horizontalBar=t.controllers.bar.extend({updateElement:function(t,a,i){var n=this,o=n.getMeta(),r=n.getScaleForId(o.xAxisID),l=n.getScaleForId(o.yAxisID),s=r.getBasePixel(),d=t.custom||{},u=n.getDataset(),c=n.chart.options.elements.rectangle;e.extend(t,{_xScale:r,_yScale:l,_datasetIndex:n.index,_index:a,_model:{x:i?s:n.calculateBarX(a,n.index),y:n.calculateBarY(a,n.index),label:n.chart.data.labels[a],datasetLabel:u.label,base:i?s:n.calculateBarBase(n.index,a),height:n.calculateBarHeight(a),backgroundColor:d.backgroundColor?d.backgroundColor:e.getValueAtIndexOrDefault(u.backgroundColor,a,c.backgroundColor),borderSkipped:d.borderSkipped?d.borderSkipped:c.borderSkipped,borderColor:d.borderColor?d.borderColor:e.getValueAtIndexOrDefault(u.borderColor,a,c.borderColor),borderWidth:d.borderWidth?d.borderWidth:e.getValueAtIndexOrDefault(u.borderWidth,a,c.borderWidth)},draw:function(){function t(t){return s[(u+t)%4]}var e=this._chart.ctx,a=this._view,i=a.height/2,n=a.y-i,o=a.y+i,r=a.base-(a.base-a.x),l=a.borderWidth/2;a.borderWidth&&(n+=l,o-=l,r+=l),e.beginPath(),e.fillStyle=a.backgroundColor,e.strokeStyle=a.borderColor,e.lineWidth=a.borderWidth;var s=[[a.base,o],[a.base,n],[r,n],[r,o]],d=["bottom","left","top","right"],u=d.indexOf(a.borderSkipped,0);-1===u&&(u=0),e.moveTo.apply(e,t(0));for(var c=1;4>c;c++)e.lineTo.apply(e,t(c));e.fill(),a.borderWidth&&e.stroke()},inRange:function(t,e){var a=this._view,i=!1;return a&&(i=a.x<a.base?e>=a.y-a.height/2&&e<=a.y+a.height/2&&t>=a.x&&t<=a.base:e>=a.y-a.height/2&&e<=a.y+a.height/2&&t>=a.base&&t<=a.x),i}}),t.pivot()},calculateBarBase:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.xAxisID),o=0;\nif(n.options.stacked){for(var r=a.chart,l=r.data.datasets,s=Number(l[t].data[e]),d=0;t>d;d++){var u=l[d],c=r.getDatasetMeta(d);if(c.bar&&c.xAxisID===n.id&&r.isDatasetVisible(d)){var h=Number(u.data[e]);o+=0>s?Math.min(h,0):Math.max(h,0)}}return n.getPixelForValue(o)}return n.getBasePixel()},getRuler:function(t){var e,a=this,i=a.getMeta(),n=a.getScaleForId(i.yAxisID),o=a.getBarCount();e="category"===n.options.type?n.getPixelForTick(t+1)-n.getPixelForTick(t):n.width/n.ticks.length;var r=e*n.options.categoryPercentage,l=(e-e*n.options.categoryPercentage)/2,s=r/o;if(n.ticks.length!==a.chart.data.labels.length){var d=n.ticks.length/a.chart.data.labels.length;s*=d}var u=s*n.options.barPercentage,c=s-s*n.options.barPercentage;return{datasetCount:o,tickHeight:e,categoryHeight:r,categorySpacing:l,fullBarHeight:s,barHeight:u,barSpacing:c}},calculateBarHeight:function(t){var e=this,a=e.getScaleForId(e.getMeta().yAxisID);if(a.options.barThickness)return a.options.barThickness;var i=e.getRuler(t);return a.options.stacked?i.categoryHeight:i.barHeight},calculateBarX:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.xAxisID),o=Number(a.getDataset().data[t]);if(n.options.stacked){for(var r=0,l=0,s=0;e>s;s++){var d=a.chart.data.datasets[s],u=a.chart.getDatasetMeta(s);if(u.bar&&u.xAxisID===n.id&&a.chart.isDatasetVisible(s)){var c=Number(d.data[t]);0>c?l+=c||0:r+=c||0}}return 0>o?n.getPixelForValue(l+o):n.getPixelForValue(r+o)}return n.getPixelForValue(o)},calculateBarY:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.yAxisID),o=a.getBarIndex(e),r=a.getRuler(t),l=n.getPixelForValue(null,t,e,a.chart.isCombo);return l-=a.chart.isCombo?r.tickHeight/2:0,n.options.stacked?l+r.categoryHeight/2+r.categorySpacing:l+r.barHeight/2+r.categorySpacing+r.barHeight*o+r.barSpacing/2+r.barSpacing*o}})}},{}],16:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.bubble={hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var a=e.datasets[t.datasetIndex].label||"",i=e.datasets[t.datasetIndex].data[t.index];return a+": ("+i.x+", "+i.y+", "+i.r+")"}}}},t.controllers.bubble=t.DatasetController.extend({dataElementType:t.elements.Point,update:function(t){var a=this,i=a.getMeta(),n=i.data;e.each(n,function(e,i){a.updateElement(e,i,t)})},updateElement:function(a,i,n){var o=this,r=o.getMeta(),l=o.getScaleForId(r.xAxisID),s=o.getScaleForId(r.yAxisID),d=a.custom||{},u=o.getDataset(),c=u.data[i],h=o.chart.options.elements.point,f=o.index;e.extend(a,{_xScale:l,_yScale:s,_datasetIndex:f,_index:i,_model:{x:n?l.getPixelForDecimal(.5):l.getPixelForValue("object"==typeof c?c:NaN,i,f,o.chart.isCombo),y:n?s.getBasePixel():s.getPixelForValue(c,i,f),radius:n?0:d.radius?d.radius:o.getRadius(c),hitRadius:d.hitRadius?d.hitRadius:e.getValueAtIndexOrDefault(u.hitRadius,i,h.hitRadius)}}),t.DatasetController.prototype.removeHoverStyle.call(o,a,h);var g=a._model;g.skip=d.skip?d.skip:isNaN(g.x)||isNaN(g.y),a.pivot()},getRadius:function(t){return t.r||this.chart.options.elements.point.radius},setHoverStyle:function(a){var i=this;t.DatasetController.prototype.setHoverStyle.call(i,a);var n=i.chart.data.datasets[a._datasetIndex],o=a._index,r=a.custom||{},l=a._model;l.radius=r.hoverRadius?r.hoverRadius:e.getValueAtIndexOrDefault(n.hoverRadius,o,i.chart.options.elements.point.hoverRadius)+i.getRadius(n.data[o])},removeHoverStyle:function(e){var a=this;t.DatasetController.prototype.removeHoverStyle.call(a,e,a.chart.options.elements.point);var i=a.chart.data.datasets[e._datasetIndex].data[e._index],n=e.custom||{},o=e._model;o.radius=n.radius?n.radius:a.getRadius(i)}})}},{}],17:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=t.defaults;a.doughnut={animation:{animateRotate:!0,animateScale:!1},aspectRatio:1,hover:{mode:"single"},legendCallback:function(t){var e=[];e.push(\'<ul class="\'+t.id+\'-legend">\');var a=t.data,i=a.datasets,n=a.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push(\'<li><span style="background-color:\'+i[0].backgroundColor[o]+\'"></span>\'),n[o]&&e.push(n[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var a=t.data;return a.labels.length&&a.datasets.length?a.labels.map(function(i,n){var o=t.getDatasetMeta(0),r=a.datasets[0],l=o.data[n],s=l&&l.custom||{},d=e.getValueAtIndexOrDefault,u=t.options.elements.arc,c=s.backgroundColor?s.backgroundColor:d(r.backgroundColor,n,u.backgroundColor),h=s.borderColor?s.borderColor:d(r.borderColor,n,u.borderColor),f=s.borderWidth?s.borderWidth:d(r.borderWidth,n,u.borderWidth);return{text:i,fillStyle:c,strokeStyle:h,lineWidth:f,hidden:isNaN(r.data[n])||o.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var a,i,n,o=e.index,r=this.chart;for(a=0,i=(r.data.datasets||[]).length;i>a;++a)n=r.getDatasetMeta(a),n.data[o].hidden=!n.data[o].hidden;r.update()}},cutoutPercentage:50,rotation:Math.PI*-.5,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+e.datasets[t.datasetIndex].data[t.index]}}}},a.pie=e.clone(a.doughnut),e.extend(a.pie,{cutoutPercentage:0}),t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:t.elements.Arc,linkScales:e.noop,getRingIndex:function(t){for(var e=0,a=0;t>a;++a)this.chart.isDatasetVisible(a)&&++e;return e},update:function(t){var a=this,i=a.chart,n=i.chartArea,o=i.options,r=o.elements.arc,l=n.right-n.left-r.borderWidth,s=n.bottom-n.top-r.borderWidth,d=Math.min(l,s),u={x:0,y:0},c=a.getMeta(),h=o.cutoutPercentage,f=o.circumference;if(f<2*Math.PI){var g=o.rotation%(2*Math.PI);g+=2*Math.PI*(g>=Math.PI?-1:g<-Math.PI?1:0);var p=g+f,m={x:Math.cos(g),y:Math.sin(g)},b={x:Math.cos(p),y:Math.sin(p)},v=0>=g&&p>=0||g<=2*Math.PI&&2*Math.PI<=p,x=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,y=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,k=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,S=h/100,w={x:y?-1:Math.min(m.x*(m.x<0?1:S),b.x*(b.x<0?1:S)),y:k?-1:Math.min(m.y*(m.y<0?1:S),b.y*(b.y<0?1:S))},C={x:v?1:Math.max(m.x*(m.x>0?1:S),b.x*(b.x>0?1:S)),y:x?1:Math.max(m.y*(m.y>0?1:S),b.y*(b.y>0?1:S))},M={width:.5*(C.x-w.x),height:.5*(C.y-w.y)};d=Math.min(l/M.width,s/M.height),u={x:(C.x+w.x)*-.5,y:(C.y+w.y)*-.5}}i.borderWidth=a.getMaxBorderWidth(c.data),i.outerRadius=Math.max((d-i.borderWidth)/2,0),i.innerRadius=Math.max(h?i.outerRadius/100*h:1,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),i.offsetX=u.x*i.outerRadius,i.offsetY=u.y*i.outerRadius,c.total=a.calculateTotal(),a.outerRadius=i.outerRadius-i.radiusLength*a.getRingIndex(a.index),a.innerRadius=a.outerRadius-i.radiusLength,e.each(c.data,function(e,i){a.updateElement(e,i,t)})},updateElement:function(t,a,i){var n=this,o=n.chart,r=o.chartArea,l=o.options,s=l.animation,d=(r.left+r.right)/2,u=(r.top+r.bottom)/2,c=l.rotation,h=l.rotation,f=n.getDataset(),g=i&&s.animateRotate?0:t.hidden?0:n.calculateCircumference(f.data[a])*(l.circumference/(2*Math.PI)),p=i&&s.animateScale?0:n.innerRadius,m=i&&s.animateScale?0:n.outerRadius,b=e.getValueAtIndexOrDefault;e.extend(t,{_datasetIndex:n.index,_index:a,_model:{x:d+o.offsetX,y:u+o.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:m,innerRadius:p,label:b(f.label,a,o.data.labels[a])}});var v=t._model;this.removeHoverStyle(t),i&&s.animateRotate||(0===a?v.startAngle=l.rotation:v.startAngle=n.getMeta().data[a-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,a=this.getDataset(),i=this.getMeta(),n=0;return e.each(i.data,function(e,i){t=a.data[i],isNaN(t)||e.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var e,a,i=0,n=this.index,o=t.length,r=0;o>r;r++)e=t[r]._model?t[r]._model.borderWidth:0,a=t[r]._chart?t[r]._chart.config.data.datasets[n].hoverBorderWidth:0,i=e>i?e:i,i=a>i?a:i;return i}})}},{}],18:[function(t,e,a){"use strict";e.exports=function(t){function e(t,e){return a.getValueOrDefault(t.showLine,e.showLines)}var a=t.helpers;t.defaults.line={showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}},t.controllers.line=t.DatasetController.extend({datasetElementType:t.elements.Line,dataElementType:t.elements.Point,addElementAndReset:function(a){var i=this,n=i.chart.options,o=i.getMeta();t.DatasetController.prototype.addElementAndReset.call(i,a),e(i.getDataset(),n)&&0!==o.dataset._model.tension&&i.updateBezierControlPoints()},update:function(t){var i,n,o,r=this,l=r.getMeta(),s=l.dataset,d=l.data||[],u=r.chart.options,c=u.elements.line,h=r.getScaleForId(l.yAxisID),f=r.getDataset(),g=e(f,u);for(g&&(o=s.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),s._scale=h,s._datasetIndex=r.index,s._children=d,s._model={spanGaps:f.spanGaps?f.spanGaps:u.spanGaps,tension:o.tension?o.tension:a.getValueOrDefault(f.lineTension,c.tension),backgroundColor:o.backgroundColor?o.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:o.borderWidth?o.borderWidth:f.borderWidth||c.borderWidth,borderColor:o.borderColor?o.borderColor:f.borderColor||c.borderColor,borderCapStyle:o.borderCapStyle?o.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:o.borderDash?o.borderDash:f.borderDash||c.borderDash,borderDashOffset:o.borderDashOffset?o.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:o.borderJoinStyle?o.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:o.fill?o.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:o.steppedLine?o.steppedLine:a.getValueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:o.cubicInterpolationMode?o.cubicInterpolationMode:a.getValueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode),scaleTop:h.top,scaleBottom:h.bottom,scaleZero:h.getBasePixel()},s.pivot()),i=0,n=d.length;n>i;++i)r.updateElement(d[i],i,t);for(g&&0!==s._model.tension&&r.updateBezierControlPoints(),i=0,n=d.length;n>i;++i)d[i].pivot()},getPointBackgroundColor:function(t,e){var i=this.chart.options.elements.point.backgroundColor,n=this.getDataset(),o=t.custom||{};return o.backgroundColor?i=o.backgroundColor:n.pointBackgroundColor?i=a.getValueAtIndexOrDefault(n.pointBackgroundColor,e,i):n.backgroundColor&&(i=n.backgroundColor),i},getPointBorderColor:function(t,e){var i=this.chart.options.elements.point.borderColor,n=this.getDataset(),o=t.custom||{};return o.borderColor?i=o.borderColor:n.pointBorderColor?i=a.getValueAtIndexOrDefault(n.pointBorderColor,e,i):n.borderColor&&(i=n.borderColor),i},getPointBorderWidth:function(t,e){var i=this.chart.options.elements.point.borderWidth,n=this.getDataset(),o=t.custom||{};return o.borderWidth?i=o.borderWidth:n.pointBorderWidth?i=a.getValueAtIndexOrDefault(n.pointBorderWidth,e,i):n.borderWidth&&(i=n.borderWidth),i},updateElement:function(t,e,i){var n,o,r=this,l=r.getMeta(),s=t.custom||{},d=r.getDataset(),u=r.index,c=d.data[e],h=r.getScaleForId(l.yAxisID),f=r.getScaleForId(l.xAxisID),g=r.chart.options.elements.point,p=r.chart.data.labels||[],m=1===p.length||1===d.data.length||r.chart.isCombo;void 0!==d.radius&&void 0===d.pointRadius&&(d.pointRadius=d.radius),void 0!==d.hitRadius&&void 0===d.pointHitRadius&&(d.pointHitRadius=d.hitRadius),n=f.getPixelForValue("object"==typeof c?c:NaN,e,u,m),o=i?h.getBasePixel():r.calculatePointY(c,e,u),t._xScale=f,t._yScale=h,t._datasetIndex=u,t._index=e,t._model={x:n,y:o,skip:s.skip||isNaN(n)||isNaN(o),radius:s.radius||a.getValueAtIndexOrDefault(d.pointRadius,e,g.radius),pointStyle:s.pointStyle||a.getValueAtIndexOrDefault(d.pointStyle,e,g.pointStyle),backgroundColor:r.getPointBackgroundColor(t,e),borderColor:r.getPointBorderColor(t,e),borderWidth:r.getPointBorderWidth(t,e),tension:l.dataset._model?l.dataset._model.tension:0,steppedLine:l.dataset._model?l.dataset._model.steppedLine:!1,hitRadius:s.hitRadius||a.getValueAtIndexOrDefault(d.pointHitRadius,e,g.hitRadius)}},calculatePointY:function(t,e,a){var i,n,o,r=this,l=r.chart,s=r.getMeta(),d=r.getScaleForId(s.yAxisID),u=0,c=0;if(d.options.stacked){for(i=0;a>i;i++)if(n=l.data.datasets[i],o=l.getDatasetMeta(i),"line"===o.type&&o.yAxisID===d.id&&l.isDatasetVisible(i)){var h=Number(d.getRightValue(n.data[e]));0>h?c+=h||0:u+=h||0}var f=Number(d.getRightValue(t));return 0>f?d.getPixelForValue(c+f):d.getPixelForValue(u+f)}return d.getPixelForValue(t)},updateBezierControlPoints:function(){function t(t,e,a){return Math.max(Math.min(t,a),e)}var e=this,i=e.getMeta(),n=e.chart.chartArea,o=i.data||[];i.dataset._model.spanGaps&&(o=o.filter(function(t){return!t._model.skip}));var r,l,s,d,u;if("monotone"==i.dataset._model.cubicInterpolationMode)a.splineCurveMonotone(o);else for(r=0,l=o.length;l>r;++r)s=o[r],d=s._model,u=a.splineCurve(a.previousItem(o,r)._model,d,a.nextItem(o,r)._model,i.dataset._model.tension),d.controlPointPreviousX=u.previous.x,d.controlPointPreviousY=u.previous.y,d.controlPointNextX=u.next.x,d.controlPointNextY=u.next.y;if(e.chart.options.elements.line.capBezierPoints)for(r=0,l=o.length;l>r;++r)d=o[r]._model,d.controlPointPreviousX=t(d.controlPointPreviousX,n.left,n.right),d.controlPointPreviousY=t(d.controlPointPreviousY,n.top,n.bottom),d.controlPointNextX=t(d.controlPointNextX,n.left,n.right),d.controlPointNextY=t(d.controlPointNextY,n.top,n.bottom)},draw:function(t){var a,i,n=this,o=n.getMeta(),r=o.data||[],l=t||1;for(a=0,i=r.length;i>a;++a)r[a].transition(l);for(e(n.getDataset(),n.chart.options)&&o.dataset.transition(l).draw(),a=0,i=r.length;i>a;++a)r[a].draw()},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},o=t._model;o.radius=n.hoverRadius||a.getValueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),o.backgroundColor=n.hoverBackgroundColor||a.getValueAtIndexOrDefault(e.pointHoverBackgroundColor,i,a.getHoverColor(o.backgroundColor)),o.borderColor=n.hoverBorderColor||a.getValueAtIndexOrDefault(e.pointHoverBorderColor,i,a.getHoverColor(o.borderColor)),o.borderWidth=n.hoverBorderWidth||a.getValueAtIndexOrDefault(e.pointHoverBorderWidth,i,o.borderWidth)},removeHoverStyle:function(t){var e=this,i=e.chart.data.datasets[t._datasetIndex],n=t._index,o=t.custom||{},r=t._model;void 0!==i.radius&&void 0===i.pointRadius&&(i.pointRadius=i.radius),r.radius=o.radius||a.getValueAtIndexOrDefault(i.pointRadius,n,e.chart.options.elements.point.radius),r.backgroundColor=e.getPointBackgroundColor(t,n),r.borderColor=e.getPointBorderColor(t,n),r.borderWidth=e.getPointBorderWidth(t,n)}})}},{}],19:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.polarArea={scale:{type:"radialLinear",lineArc:!0,ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,aspectRatio:1,legendCallback:function(t){var e=[];e.push(\'<ul class="\'+t.id+\'-legend">\');var a=t.data,i=a.datasets,n=a.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push(\'<li><span style="background-color:\'+i[0].backgroundColor[o]+\'">\'),n[o]&&e.push(n[o]),e.push("</span></li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var a=t.data;return a.labels.length&&a.datasets.length?a.labels.map(function(i,n){var o=t.getDatasetMeta(0),r=a.datasets[0],l=o.data[n],s=l.custom||{},d=e.getValueAtIndexOrDefault,u=t.options.elements.arc,c=s.backgroundColor?s.backgroundColor:d(r.backgroundColor,n,u.backgroundColor),h=s.borderColor?s.borderColor:d(r.borderColor,n,u.borderColor),f=s.borderWidth?s.borderWidth:d(r.borderWidth,n,u.borderWidth);return{text:i,fillStyle:c,strokeStyle:h,lineWidth:f,hidden:isNaN(r.data[n])||o.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var a,i,n,o=e.index,r=this.chart;for(a=0,i=(r.data.datasets||[]).length;i>a;++a)n=r.getDatasetMeta(a),n.data[o].hidden=!n.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}},t.controllers.polarArea=t.DatasetController.extend({dataElementType:t.elements.Arc,linkScales:e.noop,update:function(t){var a=this,i=a.chart,n=i.chartArea,o=a.getMeta(),r=i.options,l=r.elements.arc,s=Math.min(n.right-n.left,n.bottom-n.top);i.outerRadius=Math.max((s-l.borderWidth/2)/2,0),i.innerRadius=Math.max(r.cutoutPercentage?i.outerRadius/100*r.cutoutPercentage:1,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),a.outerRadius=i.outerRadius-i.radiusLength*a.index,a.innerRadius=a.outerRadius-i.radiusLength,o.count=a.countVisibleElements(),e.each(o.data,function(e,i){a.updateElement(e,i,t)})},updateElement:function(t,a,i){for(var n=this,o=n.chart,r=n.getDataset(),l=o.options,s=l.animation,d=o.scale,u=e.getValueAtIndexOrDefault,c=o.data.labels,h=n.calculateCircumference(r.data[a]),f=d.xCenter,g=d.yCenter,p=0,m=n.getMeta(),b=0;a>b;++b)isNaN(r.data[b])||m.data[b].hidden||++p;var v=l.startAngle,x=t.hidden?0:d.getDistanceFromCenterForValue(r.data[a]),y=v+h*p,k=y+(t.hidden?0:h),S=s.animateScale?0:d.getDistanceFromCenterForValue(r.data[a]);e.extend(t,{_datasetIndex:n.index,_index:a,_scale:d,_model:{x:f,y:g,innerRadius:0,outerRadius:i?S:x,startAngle:i&&s.animateRotate?v:y,endAngle:i&&s.animateRotate?v:k,label:u(c,a,c[a])}}),n.removeHoverStyle(t),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},countVisibleElements:function(){var t=this.getDataset(),a=this.getMeta(),i=0;return e.each(a.data,function(e,a){isNaN(t.data[a])||e.hidden||i++}),i},calculateCircumference:function(t){var e=this.getMeta().count;return e>0&&!isNaN(t)?2*Math.PI/e:0}})}},{}],20:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.radar={scale:{type:"radialLinear"},elements:{line:{tension:0}}},t.controllers.radar=t.DatasetController.extend({datasetElementType:t.elements.Line,dataElementType:t.elements.Point,linkScales:e.noop,addElementAndReset:function(e){t.DatasetController.prototype.addElementAndReset.call(this,e),this.updateBezierControlPoints()},update:function(t){var a=this,i=a.getMeta(),n=i.dataset,o=i.data,r=n.custom||{},l=a.getDataset(),s=a.chart.options.elements.line,d=a.chart.scale;void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),e.extend(i.dataset,{_datasetIndex:a.index,_children:o,_loop:!0,_model:{tension:r.tension?r.tension:e.getValueOrDefault(l.lineTension,s.tension),backgroundColor:r.backgroundColor?r.backgroundColor:l.backgroundColor||s.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:l.borderWidth||s.borderWidth,borderColor:r.borderColor?r.borderColor:l.borderColor||s.borderColor,fill:r.fill?r.fill:void 0!==l.fill?l.fill:s.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:l.borderCapStyle||s.borderCapStyle,borderDash:r.borderDash?r.borderDash:l.borderDash||s.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:l.borderDashOffset||s.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:l.borderJoinStyle||s.borderJoinStyle,scaleTop:d.top,scaleBottom:d.bottom,scaleZero:d.getBasePosition()}}),i.dataset.pivot(),e.each(o,function(e,i){a.updateElement(e,i,t)},a),a.updateBezierControlPoints()},updateElement:function(t,a,i){var n=this,o=t.custom||{},r=n.getDataset(),l=n.chart.scale,s=n.chart.options.elements.point,d=l.getPointPositionForValue(a,r.data[a]);e.extend(t,{_datasetIndex:n.index,_index:a,_scale:l,_model:{x:i?l.xCenter:d.x,y:i?l.yCenter:d.y,tension:o.tension?o.tension:e.getValueOrDefault(r.tension,n.chart.options.elements.line.tension),radius:o.radius?o.radius:e.getValueAtIndexOrDefault(r.pointRadius,a,s.radius),backgroundColor:o.backgroundColor?o.backgroundColor:e.getValueAtIndexOrDefault(r.pointBackgroundColor,a,s.backgroundColor),borderColor:o.borderColor?o.borderColor:e.getValueAtIndexOrDefault(r.pointBorderColor,a,s.borderColor),borderWidth:o.borderWidth?o.borderWidth:e.getValueAtIndexOrDefault(r.pointBorderWidth,a,s.borderWidth),pointStyle:o.pointStyle?o.pointStyle:e.getValueAtIndexOrDefault(r.pointStyle,a,s.pointStyle),hitRadius:o.hitRadius?o.hitRadius:e.getValueAtIndexOrDefault(r.hitRadius,a,s.hitRadius)}}),t._model.skip=o.skip?o.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,a=this.getMeta();e.each(a.data,function(i,n){var o=i._model,r=e.splineCurve(e.previousItem(a.data,n,!0)._model,o,e.nextItem(a.data,n,!0)._model,o.tension);o.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),o.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),o.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),o.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),i.pivot()})},draw:function(t){var a=this.getMeta(),i=t||1;e.each(a.data,function(t){t.transition(i)}),a.dataset.transition(i).draw(),e.each(a.data,function(t){t.draw()})},setHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,o=t._model;o.radius=i.hoverRadius?i.hoverRadius:e.getValueAtIndexOrDefault(a.pointHoverRadius,n,this.chart.options.elements.point.hoverRadius),o.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:e.getValueAtIndexOrDefault(a.pointHoverBackgroundColor,n,e.getHoverColor(o.backgroundColor)),o.borderColor=i.hoverBorderColor?i.hoverBorderColor:e.getValueAtIndexOrDefault(a.pointHoverBorderColor,n,e.getHoverColor(o.borderColor)),o.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:e.getValueAtIndexOrDefault(a.pointHoverBorderWidth,n,o.borderWidth)},removeHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,o=t._model,r=this.chart.options.elements.point;o.radius=i.radius?i.radius:e.getValueAtIndexOrDefault(a.radius,n,r.radius),o.backgroundColor=i.backgroundColor?i.backgroundColor:e.getValueAtIndexOrDefault(a.pointBackgroundColor,n,r.backgroundColor),o.borderColor=i.borderColor?i.borderColor:e.getValueAtIndexOrDefault(a.pointBorderColor,n,r.borderColor),o.borderWidth=i.borderWidth?i.borderWidth:e.getValueAtIndexOrDefault(a.pointBorderWidth,n,r.borderWidth)}})}},{}],21:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.global.animation={duration:1e3,easing:"easeOutQuart",onProgress:e.noop,onComplete:e.noop},t.Animation=t.Element.extend({currentStep:null,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,a,i){var n=this;i||(t.animating=!0);for(var o=0;o<n.animations.length;++o)if(n.animations[o].chartInstance===t)return void(n.animations[o].animationObject=e);n.animations.push({chartInstance:t,animationObject:e}),1===n.animations.length&&n.requestAnimationFrame()},cancelAnimation:function(t){var a=e.findIndex(this.animations,function(e){return e.chartInstance===t});-1!==a&&(this.animations.splice(a,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=e.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){var t=this,e=Date.now(),a=0;t.dropFrames>1&&(a=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1);for(var i=0;i<t.animations.length;)null===t.animations[i].animationObject.currentStep&&(t.animations[i].animationObject.currentStep=0),t.animations[i].animationObject.currentStep+=1+a,t.animations[i].animationObject.currentStep>t.animations[i].animationObject.numSteps&&(t.animations[i].animationObject.currentStep=t.animations[i].animationObject.numSteps),t.animations[i].animationObject.render(t.animations[i].chartInstance,t.animations[i].animationObject),t.animations[i].animationObject.onAnimationProgress&&t.animations[i].animationObject.onAnimationProgress.call&&t.animations[i].animationObject.onAnimationProgress.call(t.animations[i].chartInstance,t.animations[i]),t.animations[i].animationObject.currentStep===t.animations[i].animationObject.numSteps?(t.animations[i].animationObject.onAnimationComplete&&t.animations[i].animationObject.onAnimationComplete.call&&t.animations[i].animationObject.onAnimationComplete.call(t.animations[i].chartInstance,t.animations[i]),t.animations[i].chartInstance.animating=!1,t.animations.splice(i,1)):++i;var n=Date.now(),o=(n-e)/t.frameDuration;t.dropFrames+=o,t.animations.length>0&&t.requestAnimationFrame()}}}},{}],22:[function(t,e,a){"use strict";e.exports=function(t){var e=t.canvasHelpers={};e.drawPoint=function(t,e,a,i,n){var o,r,l,s,d,u;if("object"==typeof e&&(o=e.toString(),"[object HTMLImageElement]"===o||"[object HTMLCanvasElement]"===o))return void t.drawImage(e,i-e.width/2,n-e.height/2);if(!(isNaN(a)||0>=a)){switch(e){default:t.beginPath(),t.arc(i,n,a,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),r=3*a/Math.sqrt(3),d=r*Math.sqrt(3)/2,t.moveTo(i-r/2,n+d/3),t.lineTo(i+r/2,n+d/3),t.lineTo(i,n-2*d/3),t.closePath(),t.fill();break;case"rect":u=1/Math.SQRT2*a,t.beginPath(),t.fillRect(i-u,n-u,2*u,2*u),t.strokeRect(i-u,n-u,2*u,2*u);break;case"rectRot":u=1/Math.SQRT2*a,t.beginPath(),t.moveTo(i-u,n),t.lineTo(i,n+u),t.lineTo(i+u,n),t.lineTo(i,n-u),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(i,n+a),t.lineTo(i,n-a),t.moveTo(i-a,n),t.lineTo(i+a,n),t.closePath();break;case"crossRot":t.beginPath(),l=Math.cos(Math.PI/4)*a,s=Math.sin(Math.PI/4)*a,t.moveTo(i-l,n-s),t.lineTo(i+l,n+s),t.moveTo(i-l,n+s),t.lineTo(i+l,n-s),t.closePath();break;case"star":t.beginPath(),t.moveTo(i,n+a),t.lineTo(i,n-a),t.moveTo(i-a,n),t.lineTo(i+a,n),l=Math.cos(Math.PI/4)*a,s=Math.sin(Math.PI/4)*a,t.moveTo(i-l,n-s),t.lineTo(i+l,n+s),t.moveTo(i-l,n+s),t.lineTo(i+l,n-s),t.closePath();break;case"line":t.beginPath(),t.moveTo(i-a,n),t.lineTo(i+a,n),t.closePath();break;case"dash":t.beginPath(),t.moveTo(i,n),t.lineTo(i+a,n),t.closePath()}t.stroke()}}}},{}],23:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.types={},t.instances={},t.controllers={},t.Controller=function(a){return this.chart=a,this.config=a.config,this.options=this.config.options=e.configMerge(t.defaults.global,t.defaults[this.config.type],this.config.options||{}),this.id=e.uid(),Object.defineProperty(this,"data",{get:function(){return this.config.data}}),t.instances[this.id]=this,this.options.responsive&&this.resize(!0),this.initialize(),this},e.extend(t.Controller.prototype,{initialize:function(){var e=this;return t.plugins.notify("beforeInit",[e]),e.bindEvents(),e.ensureScalesHaveIDs(),e.buildOrUpdateControllers(),e.buildScales(),e.updateLayout(),e.resetElements(),e.initToolTip(),e.update(),t.plugins.notify("afterInit",[e]),e},clear:function(){return e.clear(this.chart),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(a){var i=this,n=i.chart,o=n.canvas,r=e.getMaximumWidth(o),l=n.aspectRatio,s=i.options.maintainAspectRatio&&isNaN(l)===!1&&isFinite(l)&&0!==l?r/l:e.getMaximumHeight(o),d=n.width!==r||n.height!==s;if(!d)return i;o.width=n.width=r,o.height=n.height=s,e.retinaScale(n);var u={width:r,height:s};return t.plugins.notify("resize",[i,u]),i.options.onResize&&i.options.onResize(i,u),a||(i.stop(),i.update(i.options.responsiveAnimationDuration)),i},ensureScalesHaveIDs:function(){var t=this.options,a=t.scales||{},i=t.scale;e.each(a.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),e.each(a.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildScales:function(){var a=this,i=a.options,n=a.scales={},o=[];i.scales&&(o=o.concat((i.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category"}}),(i.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear"}}))),i.scale&&o.push({options:i.scale,dtype:"radialLinear",isDefault:!0}),e.each(o,function(i){var o=i.options,r=e.getValueOrDefault(o.type,i.dtype),l=t.scaleService.getScaleConstructor(r);if(l){var s=new l({id:o.id,options:o,ctx:a.chart.ctx,chart:a});n[s.id]=s,i.isDefault&&(a.scale=s)}}),t.scaleService.addScalesToLayout(this)},updateLayout:function(){t.layoutService.update(this,this.chart.width,this.chart.height)},buildOrUpdateControllers:function(){var a=this,i=[],n=[];if(e.each(a.data.datasets,function(e,o){var r=a.getDatasetMeta(o);r.type||(r.type=e.type||a.config.type),i.push(r.type),r.controller?r.controller.updateIndex(o):(r.controller=new t.controllers[r.type](a,o),n.push(r.controller))},a),i.length>1)for(var o=1;o<i.length;o++)if(i[o]!==i[o-1]){a.isCombo=!0;break}return n},resetElements:function(){var t=this;e.each(t.data.datasets,function(e,a){t.getDatasetMeta(a).controller.reset()},t)},update:function(a,i){var n=this;t.plugins.notify("beforeUpdate",[n]),n.tooltip._data=n.data;var o=n.buildOrUpdateControllers();e.each(n.data.datasets,function(t,e){n.getDatasetMeta(e).controller.buildOrUpdateElements()},n),t.layoutService.update(n,n.chart.width,n.chart.height),t.plugins.notify("afterScaleUpdate",[n]),e.each(o,function(t){t.reset()}),n.updateDatasets(),t.plugins.notify("afterUpdate",[n]),n.render(a,i)},updateDatasets:function(){var e,a,i=this;if(t.plugins.notify("beforeDatasetsUpdate",[i])){for(e=0,a=i.data.datasets.length;a>e;++e)i.getDatasetMeta(e).controller.update();t.plugins.notify("afterDatasetsUpdate",[i])}},render:function(a,i){var n=this;t.plugins.notify("beforeRender",[n]);var o=n.options.animation;if(o&&("undefined"!=typeof a&&0!==a||"undefined"==typeof a&&0!==o.duration)){var r=new t.Animation;r.numSteps=(a||o.duration)/16.66,r.easing=o.easing,r.render=function(t,a){var i=e.easingEffects[a.easing],n=a.currentStep/a.numSteps,o=i(n);t.draw(o,n,a.currentStep)},r.onAnimationProgress=o.onProgress,r.onAnimationComplete=o.onComplete,t.animationService.addAnimation(n,r,a,i)}else n.draw(),o&&o.onComplete&&o.onComplete.call&&o.onComplete.call(n);return n},draw:function(a){var i=this,n=a||1;i.clear(),t.plugins.notify("beforeDraw",[i,n]),e.each(i.boxes,function(t){t.draw(i.chartArea)},i),i.scale&&i.scale.draw(),t.plugins.notify("beforeDatasetsDraw",[i,n]),e.each(i.data.datasets,function(t,e){i.isDatasetVisible(e)&&i.getDatasetMeta(e).controller.draw(a)},i,!0),t.plugins.notify("afterDatasetsDraw",[i,n]),i.tooltip.transition(n).draw(),t.plugins.notify("afterDraw",[i,n])},getElementAtEvent:function(t){var a=this,i=e.getRelativePosition(t,a.chart),n=[];return e.each(a.data.datasets,function(t,o){if(a.isDatasetVisible(o)){var r=a.getDatasetMeta(o);e.each(r.data,function(t){return t.inRange(i.x,i.y)?(n.push(t),n):void 0})}}),n.slice(0,1)},getElementsAtEvent:function(t){var a=this,i=e.getRelativePosition(t,a.chart),n=[],o=function(){if(a.data.datasets)for(var t=0;t<a.data.datasets.length;t++){var e=a.getDatasetMeta(t);if(a.isDatasetVisible(t))for(var n=0;n<e.data.length;n++)if(e.data[n].inRange(i.x,i.y))return e.data[n]}}.call(a);return o?(e.each(a.data.datasets,function(t,e){if(a.isDatasetVisible(e)){var i=a.getDatasetMeta(e),r=i.data[o._index];r&&!r._view.skip&&n.push(r)}},a),n):n},getElementsAtXAxis:function(t){var a=this,i=e.getRelativePosition(t,a.chart),n=[],o=function(){if(a.data.datasets)for(var t=0;t<a.data.datasets.length;t++){var e=a.getDatasetMeta(t);if(a.isDatasetVisible(t))for(var n=0;n<e.data.length;n++)if(e.data[n].inLabelRange(i.x,i.y))return e.data[n]}}.call(a);return o?(e.each(a.data.datasets,function(t,i){if(a.isDatasetVisible(i)){var r=a.getDatasetMeta(i),l=e.findIndex(r.data,function(t){return o._model.x===t._model.x});-1===l||r.data[l]._view.skip||n.push(r.data[l])}},a),n):n},getElementsAtEventForMode:function(t,e){var a=this;switch(e){case"single":return a.getElementAtEvent(t);case"label":return a.getElementsAtEvent(t);case"dataset":return a.getDatasetAtEvent(t);case"x-axis":return a.getElementsAtXAxis(t);default:return t}},getDatasetAtEvent:function(t){var e=this.getElementAtEvent(t);return e.length>0&&(e=this.getDatasetMeta(e[0]._datasetIndex).data),\ne},getDatasetMeta:function(t){var e=this,a=e.data.datasets[t];a._meta||(a._meta={});var i=a._meta[e.id];return i||(i=a._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,a=this.data.datasets.length;a>e;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroy:function(){var a=this;a.stop(),a.clear(),e.unbindEvents(a,a.events),e.removeResizeListener(a.chart.canvas.parentNode);var i=a.chart.canvas;i.width=a.chart.width,i.height=a.chart.height,void 0!==a.chart.originalDevicePixelRatio&&a.chart.ctx.scale(1/a.chart.originalDevicePixelRatio,1/a.chart.originalDevicePixelRatio),i.style.width=a.chart.originalCanvasStyleWidth,i.style.height=a.chart.originalCanvasStyleHeight,t.plugins.notify("destroy",[a]),delete t.instances[a.id]},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new t.Tooltip({_chart:e.chart,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e)},bindEvents:function(){var t=this;e.bindEvents(t,t.options.events,function(e){t.eventHandler(e)})},updateHoverStyle:function(t,e,a){var i,n,o,r=a?"setHoverStyle":"removeHoverStyle";switch(e){case"single":t=[t[0]];break;case"label":case"dataset":case"x-axis":break;default:return}for(n=0,o=t.length;o>n;++n)i=t[n],i&&this.getDatasetMeta(i._datasetIndex).controller[r](i)},eventHandler:function(t){var a=this,i=a.tooltip,n=a.options||{},o=n.hover,r=n.tooltips;return a.lastActive=a.lastActive||[],a.lastTooltipActive=a.lastTooltipActive||[],"mouseout"===t.type?(a.active=[],a.tooltipActive=[]):(a.active=a.getElementsAtEventForMode(t,o.mode),a.tooltipActive=a.getElementsAtEventForMode(t,r.mode)),o.onHover&&o.onHover.call(a,a.active),("mouseup"===t.type||"click"===t.type)&&(n.onClick&&n.onClick.call(a,t,a.active),a.legend&&a.legend.handleEvent&&a.legend.handleEvent(t)),a.lastActive.length&&a.updateHoverStyle(a.lastActive,o.mode,!1),a.active.length&&o.mode&&a.updateHoverStyle(a.active,o.mode,!0),(r.enabled||r.custom)&&(i.initialize(),i._active=a.tooltipActive,i.update(!0)),i.pivot(),a.animating||e.arrayEquals(a.active,a.lastActive)&&e.arrayEquals(a.tooltipActive,a.lastTooltipActive)||(a.stop(),(r.enabled||r.custom)&&i.update(!0),a.render(o.animationDuration,!0)),a.lastActive=a.active,a.lastTooltipActive=a.tooltipActive,a}})}},{}],24:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=e.noop;t.DatasetController=function(t,e){this.initialize.call(this,t,e)},e.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var a=this;a.chart=t,a.index=e,a.linkScales(),a.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),a=t.getDataset();null===e.xAxisID&&(e.xAxisID=a.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=a.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,a=e.dataElementType;return a&&new a({_chart:e.chart.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,a=this,i=a.getMeta(),n=a.getDataset().data||[],o=i.data;for(t=0,e=n.length;e>t;++t)o[t]=o[t]||a.createMetaData(i,t);i.dataset=i.dataset||a.createMetaDataset()},addElementAndReset:function(t){var e=this,a=e.createMetaData(t);e.getMeta().data.splice(t,0,a),e.updateElement(a,t,!0)},buildOrUpdateElements:function(){var t=this.getMeta(),e=t.data,a=this.getDataset().data.length,i=e.length;if(i>a)e.splice(a,i-a);else if(a>i)for(var n=i;a>n;++n)this.addElementAndReset(n)},update:a,draw:function(t){var a=t||1;e.each(this.getMeta().data,function(t){t.transition(a).draw()})},removeHoverStyle:function(t,a){var i=this.chart.data.datasets[t._datasetIndex],n=t._index,o=t.custom||{},r=e.getValueAtIndexOrDefault,l=t._model;l.backgroundColor=o.backgroundColor?o.backgroundColor:r(i.backgroundColor,n,a.backgroundColor),l.borderColor=o.borderColor?o.borderColor:r(i.borderColor,n,a.borderColor),l.borderWidth=o.borderWidth?o.borderWidth:r(i.borderWidth,n,a.borderWidth)},setHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},o=e.getValueAtIndexOrDefault,r=e.getHoverColor,l=t._model;l.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:o(a.hoverBackgroundColor,i,r(l.backgroundColor)),l.borderColor=n.hoverBorderColor?n.hoverBorderColor:o(a.hoverBorderColor,i,r(l.borderColor)),l.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:o(a.hoverBorderWidth,i,l.borderWidth)}}),t.DatasetController.extend=e.inherits}},{}],25:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.elements={},t.Element=function(t){e.extend(this,t),this.initialize.apply(this,arguments)},e.extend(t.Element.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=e.clone(t._model)),t._start=e.clone(t._view),t},transition:function(t){var a=this;return a._view||(a._view=e.clone(a._model)),1===t?(a._view=a._model,a._start=null,a):(a._start||a.pivot(),e.each(a._model,function(i,n){if("_"===n[0]);else if(a._view.hasOwnProperty(n))if(i===a._view[n]);else if("string"==typeof i)try{var o=e.color(a._model[n]).mix(e.color(a._start[n]),t);a._view[n]=o.rgbString()}catch(r){a._view[n]=i}else if("number"==typeof i){var l=void 0!==a._start[n]&&isNaN(a._start[n])===!1?a._start[n]:0;a._view[n]=(a._model[n]-l)*t+l}else a._view[n]=i;else"number"!=typeof i||isNaN(a._view[n])?a._view[n]=i:a._view[n]=i*t},a),a)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return e.isNumber(this._model.x)&&e.isNumber(this._model.y)}}),t.Element.extend=e.inherits}},{}],26:[function(t,e,a){"use strict";var i=t(3);e.exports=function(t){function e(t,e,a){var i;return"string"==typeof t?(i=parseInt(t,10),-1!=t.indexOf("%")&&(i=i/100*e.parentNode[a])):i=t,i}function a(t){return void 0!==t&&null!==t&&"none"!==t}function n(t,i,n){var o=document.defaultView,r=t.parentNode,l=o.getComputedStyle(t)[i],s=o.getComputedStyle(r)[i],d=a(l),u=a(s),c=Number.POSITIVE_INFINITY;return d||u?Math.min(d?e(l,t,n):c,u?e(s,r,n):c):"none"}var o=t.helpers={};o.each=function(t,e,a,i){var n,r;if(o.isArray(t))if(r=t.length,i)for(n=r-1;n>=0;n--)e.call(a,t[n],n);else for(n=0;r>n;n++)e.call(a,t[n],n);else if("object"==typeof t){var l=Object.keys(t);for(r=l.length,n=0;r>n;n++)e.call(a,t[l[n]],l[n])}},o.clone=function(t){var e={};return o.each(t,function(t,a){o.isArray(t)?e[a]=t.slice(0):"object"==typeof t&&null!==t?e[a]=o.clone(t):e[a]=t}),e},o.extend=function(t){for(var e=function(e,a){t[a]=e},a=1,i=arguments.length;i>a;a++)o.each(arguments[a],e);return t},o.configMerge=function(e){var a=o.clone(e);return o.each(Array.prototype.slice.call(arguments,1),function(e){o.each(e,function(e,i){if("scales"===i)a[i]=o.scaleMerge(a.hasOwnProperty(i)?a[i]:{},e);else if("scale"===i)a[i]=o.configMerge(a.hasOwnProperty(i)?a[i]:{},t.scaleService.getScaleDefaults(e.type),e);else if(a.hasOwnProperty(i)&&o.isArray(a[i])&&o.isArray(e)){var n=a[i];o.each(e,function(t,e){e<n.length?"object"==typeof n[e]&&null!==n[e]&&"object"==typeof t&&null!==t?n[e]=o.configMerge(n[e],t):n[e]=t:n.push(t)})}else a.hasOwnProperty(i)&&"object"==typeof a[i]&&null!==a[i]&&"object"==typeof e?a[i]=o.configMerge(a[i],e):a[i]=e})}),a},o.scaleMerge=function(e,a){var i=o.clone(e);return o.each(a,function(e,a){"xAxes"===a||"yAxes"===a?i.hasOwnProperty(a)?o.each(e,function(e,n){var r=o.getValueOrDefault(e.type,"xAxes"===a?"category":"linear"),l=t.scaleService.getScaleDefaults(r);n>=i[a].length||!i[a][n].type?i[a].push(o.configMerge(l,e)):e.type&&e.type!==i[a][n].type?i[a][n]=o.configMerge(i[a][n],l,e):i[a][n]=o.configMerge(i[a][n],e)}):(i[a]=[],o.each(e,function(e){var n=o.getValueOrDefault(e.type,"xAxes"===a?"category":"linear");i[a].push(o.configMerge(t.scaleService.getScaleDefaults(n),e))})):i.hasOwnProperty(a)&&"object"==typeof i[a]&&null!==i[a]&&"object"==typeof e?i[a]=o.configMerge(i[a],e):i[a]=e}),i},o.getValueAtIndexOrDefault=function(t,e,a){return void 0===t||null===t?a:o.isArray(t)?e<t.length?t[e]:a:t},o.getValueOrDefault=function(t,e){return void 0===t?e:t},o.indexOf=Array.prototype.indexOf?function(t,e){return t.indexOf(e)}:function(t,e){for(var a=0,i=t.length;i>a;++a)if(t[a]===e)return a;return-1},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var a=[];return o.each(t,function(t){e(t)&&a.push(t)}),a},o.findIndex=Array.prototype.findIndex?function(t,e,a){return t.findIndex(e,a)}:function(t,e,a){a=void 0===a?t:a;for(var i=0,n=t.length;n>i;++i)if(e.call(a,t[i],i,t))return i;return-1},o.findNextWhere=function(t,e,a){(void 0===a||null===a)&&(a=-1);for(var i=a+1;i<t.length;i++){var n=t[i];if(e(n))return n}},o.findPreviousWhere=function(t,e,a){(void 0===a||null===a)&&(a=t.length);for(var i=a-1;i>=0;i--){var n=t[i];if(e(n))return n}},o.inherits=function(t){var e=this,a=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},i=function(){this.constructor=a};return i.prototype=e.prototype,a.prototype=new i,a.extend=o.inherits,t&&o.extend(a.prototype,t),a.__super__=e.prototype,a},o.noop=function(){},o.uid=function(){var t=0;return function(){return t++}}(),o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,a){return Math.abs(t-e)<a},o.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return t=+t,0===t||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var a=e.x-t.x,i=e.y-t.y,n=Math.sqrt(a*a+i*i),o=Math.atan2(i,a);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:n}},o.aliasPixel=function(t){return t%2===0?0:.5},o.splineCurve=function(t,e,a,i){var n=t.skip?e:t,o=e,r=a.skip?e:a,l=Math.sqrt(Math.pow(o.x-n.x,2)+Math.pow(o.y-n.y,2)),s=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),d=l/(l+s),u=s/(l+s);d=isNaN(d)?0:d,u=isNaN(u)?0:u;var c=i*d,h=i*u;return{previous:{x:o.x-c*(r.x-n.x),y:o.y-c*(r.y-n.y)},next:{x:o.x+h*(r.x-n.x),y:o.y+h*(r.y-n.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,a,i,n,r=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),l=r.length;for(e=0;l>e;++e)i=r[e],i.model.skip||(a=e>0?r[e-1]:null,n=l-1>e?r[e+1]:null,n&&!n.model.skip&&(i.deltaK=(n.model.y-i.model.y)/(n.model.x-i.model.x)),!a||a.model.skip?i.mK=i.deltaK:!n||n.model.skip?i.mK=a.deltaK:this.sign(a.deltaK)!=this.sign(i.deltaK)?i.mK=0:i.mK=(a.deltaK+i.deltaK)/2);var s,d,u,c;for(e=0;l-1>e;++e)i=r[e],n=r[e+1],i.model.skip||n.model.skip||(o.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=n.mK=0:(s=i.mK/i.deltaK,d=n.mK/i.deltaK,c=Math.pow(s,2)+Math.pow(d,2),9>=c||(u=3/Math.sqrt(c),i.mK=s*u*i.deltaK,n.mK=d*u*i.deltaK)));var h;for(e=0;l>e;++e)i=r[e],i.model.skip||(a=e>0?r[e-1]:null,n=l-1>e?r[e+1]:null,a&&!a.model.skip&&(h=(i.model.x-a.model.x)/3,i.model.controlPointPreviousX=i.model.x-h,i.model.controlPointPreviousY=i.model.y-h*i.mK),n&&!n.model.skip&&(h=(n.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+h,i.model.controlPointNextY=i.model.y+h*i.mK))},o.nextItem=function(t,e,a){return a?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,a){return a?0>=e?t[t.length-1]:t[e-1]:0>=e?t[0]:t[e-1]},o.niceNum=function(t,e){var a,i=Math.floor(o.log10(t)),n=t/Math.pow(10,i);return a=e?1.5>n?1:3>n?2:7>n?5:10:1>=n?1:2>=n?2:5>=n?5:10,a*Math.pow(10,i)};var r=o.easingEffects={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-1*t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-0.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return 1*((t=t/1-1)*t*t+1)},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-1*((t=t/1-1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-0.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return 1*(t/=1)*t*t*t*t},easeOutQuint:function(t){return 1*((t=t/1-1)*t*t*t*t+1)},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return-1*Math.cos(t/1*(Math.PI/2))+1},easeOutSine:function(t){return 1*Math.sin(t/1*(Math.PI/2))},easeInOutSine:function(t){return-0.5*(Math.cos(Math.PI*t/1)-1)},easeInExpo:function(t){return 0===t?1:1*Math.pow(2,10*(t/1-1))},easeOutExpo:function(t){return 1===t?1:1*(-Math.pow(2,-10*t/1)+1)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(-Math.pow(2,-10*--t)+2)},easeInCirc:function(t){return t>=1?t:-1*(Math.sqrt(1-(t/=1)*t)-1)},easeOutCirc:function(t){return 1*Math.sqrt(1-(t=t/1-1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-0.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,a=0,i=1;return 0===t?0:1===(t/=1)?1:(a||(a=.3),i<Math.abs(1)?(i=1,e=a/4):e=a/(2*Math.PI)*Math.asin(1/i),-(i*Math.pow(2,10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/a)))},easeOutElastic:function(t){var e=1.70158,a=0,i=1;return 0===t?0:1===(t/=1)?1:(a||(a=.3),i<Math.abs(1)?(i=1,e=a/4):e=a/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((1*t-e)*(2*Math.PI)/a)+1)},easeInOutElastic:function(t){var e=1.70158,a=0,i=1;return 0===t?0:2===(t/=.5)?1:(a||(a=1*(.3*1.5)),i<Math.abs(1)?(i=1,e=a/4):e=a/(2*Math.PI)*Math.asin(1/i),1>t?-.5*(i*Math.pow(2,10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/a)):i*Math.pow(2,-10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/a)*.5+1)},easeInBack:function(t){var e=1.70158;return 1*(t/=1)*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return 1*((t=t/1-1)*t*((e+1)*t+e)+1)},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:function(t){return 1-r.easeOutBounce(1-t)},easeOutBounce:function(t){return(t/=1)<1/2.75?1*(7.5625*t*t):2/2.75>t?1*(7.5625*(t-=1.5/2.75)*t+.75):2.5/2.75>t?1*(7.5625*(t-=2.25/2.75)*t+.9375):1*(7.5625*(t-=2.625/2.75)*t+.984375)},easeInOutBounce:function(t){return.5>t?.5*r.easeInBounce(2*t):.5*r.easeOutBounce(2*t-1)+.5}};o.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}(),o.cancelAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(t){return window.clearTimeout(t,1e3/60)}}(),o.getRelativePosition=function(t,e){var a,i,n=t.originalEvent||t,r=t.currentTarget||t.srcElement,l=r.getBoundingClientRect(),s=n.touches;s&&s.length>0?(a=s[0].clientX,i=s[0].clientY):(a=n.clientX,i=n.clientY);var d=parseFloat(o.getStyle(r,"padding-left")),u=parseFloat(o.getStyle(r,"padding-top")),c=parseFloat(o.getStyle(r,"padding-right")),h=parseFloat(o.getStyle(r,"padding-bottom")),f=l.right-l.left-d-c,g=l.bottom-l.top-u-h;return a=Math.round((a-l.left-d)/f*r.width/e.currentDevicePixelRatio),i=Math.round((i-l.top-u)/g*r.height/e.currentDevicePixelRatio),{x:a,y:i}},o.addEvent=function(t,e,a){t.addEventListener?t.addEventListener(e,a):t.attachEvent?t.attachEvent("on"+e,a):t["on"+e]=a},o.removeEvent=function(t,e,a){t.removeEventListener?t.removeEventListener(e,a,!1):t.detachEvent?t.detachEvent("on"+e,a):t["on"+e]=o.noop},o.bindEvents=function(t,e,a){var i=t.events=t.events||{};o.each(e,function(e){i[e]=function(){a.apply(t,arguments)},o.addEvent(t.chart.canvas,e,i[e])})},o.unbindEvents=function(t,e){var a=t.chart.canvas;o.each(e,function(t,e){o.removeEvent(a,e,t)})},o.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},o.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},o.getMaximumWidth=function(t){var e=t.parentNode,a=parseInt(o.getStyle(e,"padding-left"))+parseInt(o.getStyle(e,"padding-right")),i=e.clientWidth-a,n=o.getConstraintWidth(t);return isNaN(n)?i:Math.min(i,n)},o.getMaximumHeight=function(t){var e=t.parentNode,a=parseInt(o.getStyle(e,"padding-top"))+parseInt(o.getStyle(e,"padding-bottom")),i=e.clientHeight-a,n=o.getConstraintHeight(t);return isNaN(n)?i:Math.min(i,n)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t){var e=t.ctx,a=t.canvas,i=a.width,n=a.height,o=t.currentDevicePixelRatio=window.devicePixelRatio||1;1!==o&&(a.height=n*o,a.width=i*o,e.scale(o,o),t.originalDevicePixelRatio=t.originalDevicePixelRatio||o),a.style.width=i+"px",a.style.height=n+"px"},o.clear=function(t){t.ctx.clearRect(0,0,t.width,t.height)},o.fontString=function(t,e,a){return e+" "+t+"px "+a},o.longestText=function(t,e,a,i){i=i||{};var n=i.data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(n=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var l=0;o.each(a,function(e){void 0!==e&&null!==e&&o.isArray(e)!==!0?l=o.measureText(t,n,r,l,e):o.isArray(e)&&o.each(e,function(e){void 0===e||null===e||o.isArray(e)||(l=o.measureText(t,n,r,l,e))})});var s=r.length/2;if(s>a.length){for(var d=0;s>d;d++)delete n[r[d]];r.splice(0,s)}return l},o.measureText=function(t,e,a,i,n){var o=e[n];return o||(o=e[n]=t.measureText(n).width,a.push(n)),o>i&&(i=o),i},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.drawRoundedRectangle=function(t,e,a,i,n,o){t.beginPath(),t.moveTo(e+o,a),t.lineTo(e+i-o,a),t.quadraticCurveTo(e+i,a,e+i,a+o),t.lineTo(e+i,a+n-o),t.quadraticCurveTo(e+i,a+n,e+i-o,a+n),t.lineTo(e+o,a+n),t.quadraticCurveTo(e,a+n,e,a+n-o),t.lineTo(e,a+o),t.quadraticCurveTo(e,a,e+o,a),t.closePath()},o.color=function(e){return i?i(e instanceof CanvasGradient?t.defaults.global.defaultColor:e):(console.log("Color.js not found!"),e)},o.addResizeListener=function(t,e){var a=document.createElement("iframe"),i="chartjs-hidden-iframe";a.classlist?a.classlist.add(i):a.setAttribute("class",i),a.tabIndex=-1;var n=a.style;n.width="100%",n.display="block",n.border=0,n.height=0,n.margin=0,n.position="absolute",n.left=0,n.right=0,n.top=0,n.bottom=0,t.insertBefore(a,t.firstChild),(a.contentWindow||a).onresize=function(){e&&e()}},o.removeResizeListener=function(t){var e=t.querySelector(".chartjs-hidden-iframe");e&&e.parentNode.removeChild(e)},o.isArray=Array.isArray?function(t){return Array.isArray(t)}:function(t){return"[object Array]"===Object.prototype.toString.call(t)},o.arrayEquals=function(t,e){var a,i,n,r;if(!t||!e||t.length!=e.length)return!1;for(a=0,i=t.length;i>a;++a)if(n=t[a],r=e[a],n instanceof Array&&r instanceof Array){if(!o.arrayEquals(n,r))return!1}else if(n!=r)return!1;return!0},o.callCallback=function(t,e,a){t&&"function"==typeof t.call&&t.apply(a,e)},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{3:3}],27:[function(t,e,a){"use strict";e.exports=function(){var t=function(e,a){var i=this,n=t.helpers;return i.config=a||{data:{datasets:[]}},e.length&&e[0].getContext&&(e=e[0]),e.getContext&&(e=e.getContext("2d")),i.ctx=e,i.canvas=e.canvas,e.canvas.style.display=e.canvas.style.display||"block",i.width=e.canvas.width||parseInt(n.getStyle(e.canvas,"width"),10)||n.getMaximumWidth(e.canvas),i.height=e.canvas.height||parseInt(n.getStyle(e.canvas,"height"),10)||n.getMaximumHeight(e.canvas),i.aspectRatio=i.width/i.height,(isNaN(i.aspectRatio)||isFinite(i.aspectRatio)===!1)&&(i.aspectRatio=void 0!==a.aspectRatio?a.aspectRatio:2),i.originalCanvasStyleWidth=e.canvas.style.width,i.originalCanvasStyleHeight=e.canvas.style.height,n.retinaScale(i),i.controller=new t.Controller(i),n.addResizeListener(e.canvas.parentNode,function(){i.controller&&i.controller.config.options.responsive&&i.controller.resize()}),i.controller?i.controller:i};return t.defaults={global:{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"single",animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"\'Helvetica Neue\', \'Helvetica\', \'Arial\', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},legendCallback:function(t){var e=[];e.push(\'<ul class="\'+t.id+\'-legend">\');for(var a=0;a<t.data.datasets.length;a++)e.push(\'<li><span style="background-color:\'+t.data.datasets[a].backgroundColor+\'"></span>\'),t.data.datasets[a].label&&e.push(t.data.datasets[a].label),e.push("</li>");return e.push("</ul>"),e.join("")}}},t.Chart=t,t}},{}],28:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),t.boxes.push(e)},removeBox:function(t,e){t.boxes&&t.boxes.splice(t.boxes.indexOf(e),1)},update:function(t,a,i){function n(t){var e,a=t.isHorizontal();a?(e=t.update(t.options.fullWidth?p:k,y),S-=e.height):(e=t.update(x,v),k-=e.width),w.push({horizontal:a,minSize:e,box:t})}function o(t){var a=e.findNextWhere(w,function(e){return e.box===t});if(a)if(t.isHorizontal()){var i={left:C,right:M,top:0,bottom:0};t.update(t.options.fullWidth?p:k,m/2,i)}else t.update(a.minSize.width,S)}function r(t){var a=e.findNextWhere(w,function(e){return e.box===t}),i={left:0,right:0,top:D,bottom:I};a&&t.update(a.minSize.width,S,i)}function l(t){t.isHorizontal()?(t.left=t.options.fullWidth?s:C,t.right=t.options.fullWidth?a-s:C+k,t.top=F,t.bottom=F+t.height,F=t.bottom):(t.left=T,t.right=T+t.width,t.top=D,t.bottom=D+S,T=t.right)}if(t){var s=0,d=0,u=e.where(t.boxes,function(t){return"left"===t.options.position}),c=e.where(t.boxes,function(t){return"right"===t.options.position}),h=e.where(t.boxes,function(t){return"top"===t.options.position}),f=e.where(t.boxes,function(t){return"bottom"===t.options.position}),g=e.where(t.boxes,function(t){return"chartArea"===t.options.position});h.sort(function(t,e){return(e.options.fullWidth?1:0)-(t.options.fullWidth?1:0)}),f.sort(function(t,e){return(t.options.fullWidth?1:0)-(e.options.fullWidth?1:0)});var p=a-2*s,m=i-2*d,b=p/2,v=m/2,x=(a-b)/(u.length+c.length),y=(i-v)/(h.length+f.length),k=p,S=m,w=[];e.each(u.concat(c,h,f),n);var C=s,M=s,D=d,I=d;e.each(u.concat(c),o),e.each(u,function(t){C+=t.width}),e.each(c,function(t){M+=t.width}),e.each(h.concat(f),o),e.each(h,function(t){D+=t.height}),e.each(f,function(t){I+=t.height}),e.each(u.concat(c),r),C=s,M=s,D=d,I=d,e.each(u,function(t){C+=t.width}),e.each(c,function(t){M+=t.width}),e.each(h,function(t){D+=t.height}),e.each(f,function(t){I+=t.height});var A=i-D-I,P=a-C-M;(P!==k||A!==S)&&(e.each(u,function(t){t.height=A}),e.each(c,function(t){t.height=A}),e.each(h,function(t){t.options.fullWidth||(t.width=P)}),e.each(f,function(t){t.options.fullWidth||(t.width=P)}),S=A,k=P);var T=s,F=d;e.each(u.concat(h),l),T+=k,F+=S,e.each(c,l),e.each(f,l),t.chartArea={left:C,top:D,right:C+k,bottom:D+S},e.each(g,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(k,S)})}}}}},{}],29:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=e.noop;t.defaults.global.legend={display:!0,position:"top",fullWidth:!0,reverse:!1,onClick:function(t,e){var a=e.datasetIndex,i=this.chart,n=i.getDatasetMeta(a);n.hidden=null===n.hidden?!i.data.datasets[a].hidden:null,i.update()},labels:{boxWidth:40,padding:10,generateLabels:function(t){var a=t.data;return e.isArray(a.datasets)?a.datasets.map(function(a,i){return{text:a.label,fillStyle:e.isArray(a.backgroundColor)?a.backgroundColor[0]:a.backgroundColor,hidden:!t.isDatasetVisible(i),lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:a.borderWidth,strokeStyle:a.borderColor,pointStyle:a.pointStyle,datasetIndex:i}},this):[]}}},t.Legend=t.Element.extend({initialize:function(t){e.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:a,update:function(t,e,a){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=a,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:a,beforeSetDimensions:a,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:a,beforeBuildLabels:a,buildLabels:function(){var t=this;t.legendItems=t.options.labels.generateLabels.call(t,t.chart),t.options.reverse&&t.legendItems.reverse()},afterBuildLabels:a,beforeFit:a,fit:function(){var a=this,i=a.options,n=i.labels,o=i.display,r=a.ctx,l=t.defaults.global,s=e.getValueOrDefault,d=s(n.fontSize,l.defaultFontSize),u=s(n.fontStyle,l.defaultFontStyle),c=s(n.fontFamily,l.defaultFontFamily),h=e.fontString(d,u,c),f=a.legendHitBoxes=[],g=a.minSize,p=a.isHorizontal();if(p?(g.width=a.maxWidth,g.height=o?10:0):(g.width=o?10:0,g.height=a.maxHeight),o)if(r.font=h,p){var m=a.lineWidths=[0],b=a.legendItems.length?d+n.padding:0;r.textAlign="left",r.textBaseline="top",e.each(a.legendItems,function(t,e){var i=n.usePointStyle?d*Math.sqrt(2):n.boxWidth,o=i+d/2+r.measureText(t.text).width;m[m.length-1]+o+n.padding>=a.width&&(b+=d+n.padding,m[m.length]=a.left),f[e]={left:0,top:0,width:o,height:d},m[m.length-1]+=o+n.padding}),g.height+=b}else{var v=n.padding,x=a.columnWidths=[],y=n.padding,k=0,S=0,w=d+v;e.each(a.legendItems,function(t,e){var a=n.usePointStyle?2*n.boxWidth:n.boxWidth,i=a+d/2+r.measureText(t.text).width;S+w>g.height&&(y+=k+n.padding,x.push(k),k=0,S=0),k=Math.max(k,i),S+=w,f[e]={left:0,top:0,width:i,height:d}}),y+=k,x.push(k),g.width+=y}a.width=g.width,a.height=g.height},afterFit:a,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var a=this,i=a.options,n=i.labels,o=t.defaults.global,r=o.elements.line,l=a.width,s=a.lineWidths;if(i.display){var d,u=a.ctx,c=e.getValueOrDefault,h=c(n.fontColor,o.defaultFontColor),f=c(n.fontSize,o.defaultFontSize),g=c(n.fontStyle,o.defaultFontStyle),p=c(n.fontFamily,o.defaultFontFamily),m=e.fontString(f,g,p);u.textAlign="left",u.textBaseline="top",u.lineWidth=.5,u.strokeStyle=h,u.fillStyle=h,u.font=m;var b=n.boxWidth,v=a.legendHitBoxes,x=function(e,a,n){if(!(isNaN(b)||0>=b)){if(u.save(),u.fillStyle=c(n.fillStyle,o.defaultColor),u.lineCap=c(n.lineCap,r.borderCapStyle),u.lineDashOffset=c(n.lineDashOffset,r.borderDashOffset),u.lineJoin=c(n.lineJoin,r.borderJoinStyle),u.lineWidth=c(n.lineWidth,r.borderWidth),u.strokeStyle=c(n.strokeStyle,o.defaultColor),u.setLineDash&&u.setLineDash(c(n.lineDash,r.borderDash)),i.labels&&i.labels.usePointStyle){var l=f*Math.SQRT2/2,s=l/Math.SQRT2,d=e+s,h=a+s;t.canvasHelpers.drawPoint(u,n.pointStyle,l,d,h)}else u.strokeRect(e,a,b,f),u.fillRect(e,a,b,f);u.restore()}},y=function(t,e,a,i){u.fillText(a.text,b+f/2+t,e),a.hidden&&(u.beginPath(),u.lineWidth=2,u.moveTo(b+f/2+t,e+f/2),u.lineTo(b+f/2+t+i,e+f/2),u.stroke())},k=a.isHorizontal();d=k?{x:a.left+(l-s[0])/2,y:a.top+n.padding,line:0}:{x:a.left+n.padding,y:a.top+n.padding,line:0};var S=f+n.padding;e.each(a.legendItems,function(t,e){var i=u.measureText(t.text).width,o=n.usePointStyle?f+f/2+i:b+f/2+i,r=d.x,c=d.y;k?r+o>=l&&(c=d.y+=S,d.line++,r=d.x=a.left+(l-s[d.line])/2):c+S>a.bottom&&(r=d.x=r+a.columnWidths[d.line]+n.padding,c=d.y=a.top,d.line++),x(r,c,t),v[e].left=r,v[e].top=c,y(r,c,t,i),k?d.x+=o+n.padding:d.y+=S})}},handleEvent:function(t){var a=this,i=e.getRelativePosition(t,a.chart.chart),n=i.x,o=i.y,r=a.options;if(n>=a.left&&n<=a.right&&o>=a.top&&o<=a.bottom)for(var l=a.legendHitBoxes,s=0;s<l.length;++s){var d=l[s];if(n>=d.left&&n<=d.left+d.width&&o>=d.top&&o<=d.top+d.height){r.onClick&&r.onClick.call(a,t,a.legendItems[s]);break}}}}),t.plugins.register({beforeInit:function(e){var a=e.options,i=a.legend;i&&(e.legend=new t.Legend({ctx:e.chart.ctx,options:i,chart:e}),t.layoutService.addBox(e,e.legend))}})}},{}],30:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers.noop;t.plugins={_plugins:[],register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)})},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var a=e.indexOf(t);-1!==a&&e.splice(a,1)})},clear:function(){this._plugins=[]},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e){var a,i,n=this._plugins,o=n.length;for(a=0;o>a;++a)if(i=n[a],"function"==typeof i[t]&&i[t].apply(i,e||[])===!1)return!1;return!0}},t.PluginBase=t.Element.extend({beforeInit:e,afterInit:e,beforeUpdate:e,afterUpdate:e,beforeDraw:e,afterDraw:e,destroy:e}),t.pluginService=t.plugins}},{}],31:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.scale={display:!0,position:"left",gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{labelString:"",display:!1},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:10,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:function(t){return e.isArray(t)?t:""+t}}},t.Scale=t.Element.extend({beforeUpdate:function(){e.callCallback(this.options.beforeUpdate,[this])},update:function(t,a,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=a,n.margins=e.extend({left:0,right:0,top:0,bottom:0},i),n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeDataLimits(),n.determineDataLimits(),n.afterDataLimits(),n.beforeBuildTicks(),n.buildTicks(),n.afterBuildTicks(),n.beforeTickToLabelConversion(),n.convertTicksToLabels(),n.afterTickToLabelConversion(),n.beforeCalculateTickRotation(),n.calculateTickRotation(),n.afterCalculateTickRotation(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:function(){e.callCallback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){e.callCallback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){e.callCallback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){e.callCallback(this.options.beforeDataLimits,[this])},determineDataLimits:e.noop,afterDataLimits:function(){e.callCallback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){e.callCallback(this.options.beforeBuildTicks,[this])},buildTicks:e.noop,afterBuildTicks:function(){e.callCallback(this.options.afterBuildTicks,[this])},beforeTickToLabelConversion:function(){e.callCallback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this;t.ticks=t.ticks.map(function(e,a,i){\nreturn t.options.ticks.userCallback?t.options.ticks.userCallback(e,a,i):t.options.ticks.callback(e,a,i)},t)},afterTickToLabelConversion:function(){e.callCallback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){e.callCallback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var a=this,i=a.ctx,n=t.defaults.global,o=a.options.ticks,r=e.getValueOrDefault(o.fontSize,n.defaultFontSize),l=e.getValueOrDefault(o.fontStyle,n.defaultFontStyle),s=e.getValueOrDefault(o.fontFamily,n.defaultFontFamily),d=e.fontString(r,l,s);i.font=d;var u,c=i.measureText(a.ticks[0]).width,h=i.measureText(a.ticks[a.ticks.length-1]).width;if(a.labelRotation=o.minRotation||0,a.paddingRight=0,a.paddingLeft=0,a.options.display&&a.isHorizontal()){a.paddingRight=h/2+3,a.paddingLeft=c/2+3,a.longestTextCache||(a.longestTextCache={});for(var f,g,p=e.longestText(i,d,a.ticks,a.longestTextCache),m=p,b=a.getPixelForTick(1)-a.getPixelForTick(0)-6;m>b&&a.labelRotation<o.maxRotation;){if(f=Math.cos(e.toRadians(a.labelRotation)),g=Math.sin(e.toRadians(a.labelRotation)),u=f*c,u+r/2>a.yLabelWidth&&(a.paddingLeft=u+r/2),a.paddingRight=r/2,g*p>a.maxHeight){a.labelRotation--;break}a.labelRotation++,m=f*p}}a.margins&&(a.paddingLeft=Math.max(a.paddingLeft-a.margins.left,0),a.paddingRight=Math.max(a.paddingRight-a.margins.right,0))},afterCalculateTickRotation:function(){e.callCallback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){e.callCallback(this.options.beforeFit,[this])},fit:function(){var a=this,i=a.minSize={width:0,height:0},n=a.options,o=t.defaults.global,r=n.ticks,l=n.scaleLabel,s=n.gridLines,d=n.display,u=a.isHorizontal(),c=e.getValueOrDefault(r.fontSize,o.defaultFontSize),h=e.getValueOrDefault(r.fontStyle,o.defaultFontStyle),f=e.getValueOrDefault(r.fontFamily,o.defaultFontFamily),g=e.fontString(c,h,f),p=e.getValueOrDefault(l.fontSize,o.defaultFontSize),m=n.gridLines.tickMarkLength;if(u?i.width=a.isFullWidth()?a.maxWidth-a.margins.left-a.margins.right:a.maxWidth:i.width=d&&s.drawTicks?m:0,u?i.height=d&&s.drawTicks?m:0:i.height=a.maxHeight,l.display&&d&&(u?i.height+=1.5*p:i.width+=1.5*p),r.display&&d){a.longestTextCache||(a.longestTextCache={});var b=e.longestText(a.ctx,g,a.ticks,a.longestTextCache),v=e.numberOfLabelLines(a.ticks),x=.5*c;if(u){a.longestLabelWidth=b;var y=Math.sin(e.toRadians(a.labelRotation))*a.longestLabelWidth+c*v+x*v;i.height=Math.min(a.maxHeight,i.height+y),a.ctx.font=g;var k=a.ctx.measureText(a.ticks[0]).width,S=a.ctx.measureText(a.ticks[a.ticks.length-1]).width,w=Math.cos(e.toRadians(a.labelRotation)),C=Math.sin(e.toRadians(a.labelRotation));a.paddingLeft=0!==a.labelRotation?w*k+3:k/2+3,a.paddingRight=0!==a.labelRotation?C*(c/2)+3:S/2+3}else{var M=a.maxWidth-i.width,D=r.mirror;D?b=0:b+=a.options.ticks.padding,M>b?i.width+=b:i.width=a.maxWidth,a.paddingTop=c/2,a.paddingBottom=c/2}}a.margins&&(a.paddingLeft=Math.max(a.paddingLeft-a.margins.left,0),a.paddingTop=Math.max(a.paddingTop-a.margins.top,0),a.paddingRight=Math.max(a.paddingRight-a.margins.right,0),a.paddingBottom=Math.max(a.paddingBottom-a.margins.bottom,0)),a.width=i.width,a.height=i.height},afterFit:function(){e.callCallback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){return null===t||"undefined"==typeof t?NaN:"number"==typeof t&&isNaN(t)?NaN:"object"==typeof t?t instanceof Date||t.isValid?t:this.getRightValue(this.isHorizontal()?t.x:t.y):t},getLabelForIndex:e.noop,getPixelForValue:e.noop,getValueForPixel:e.noop,getPixelForTick:function(t,e){var a=this;if(a.isHorizontal()){var i=a.width-(a.paddingLeft+a.paddingRight),n=i/Math.max(a.ticks.length-(a.options.gridLines.offsetGridLines?0:1),1),o=n*t+a.paddingLeft;e&&(o+=n/2);var r=a.left+Math.round(o);return r+=a.isFullWidth()?a.margins.left:0}var l=a.height-(a.paddingTop+a.paddingBottom);return a.top+t*(l/(a.ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var a=e.width-(e.paddingLeft+e.paddingRight),i=a*t+e.paddingLeft,n=e.left+Math.round(i);return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){var t=this,e=t.min,a=t.max;return t.getPixelForValue(t.beginAtZero?0:0>e&&0>a?a:e>0&&a>0?e:0)},draw:function(a){var i=this,n=i.options;if(n.display){var o,r,l=i.ctx,s=t.defaults.global,d=n.ticks,u=n.gridLines,c=n.scaleLabel,h=0!==i.labelRotation,f=d.autoSkip,g=i.isHorizontal();d.maxTicksLimit&&(r=d.maxTicksLimit);var p=e.getValueOrDefault(d.fontColor,s.defaultFontColor),m=e.getValueOrDefault(d.fontSize,s.defaultFontSize),b=e.getValueOrDefault(d.fontStyle,s.defaultFontStyle),v=e.getValueOrDefault(d.fontFamily,s.defaultFontFamily),x=e.fontString(m,b,v),y=u.tickMarkLength,k=e.getValueOrDefault(u.borderDash,s.borderDash),S=e.getValueOrDefault(u.borderDashOffset,s.borderDashOffset),w=e.getValueOrDefault(c.fontColor,s.defaultFontColor),C=e.getValueOrDefault(c.fontSize,s.defaultFontSize),M=e.getValueOrDefault(c.fontStyle,s.defaultFontStyle),D=e.getValueOrDefault(c.fontFamily,s.defaultFontFamily),I=e.fontString(C,M,D),A=e.toRadians(i.labelRotation),P=Math.cos(A),T=i.longestLabelWidth*P;l.fillStyle=p;var F=[];if(g){if(o=!1,h&&(T/=2),(T+d.autoSkipPadding)*i.ticks.length>i.width-(i.paddingLeft+i.paddingRight)&&(o=1+Math.floor((T+d.autoSkipPadding)*i.ticks.length/(i.width-(i.paddingLeft+i.paddingRight)))),r&&i.ticks.length>r)for(;!o||i.ticks.length/(o||1)>r;)o||(o=1),o+=1;f||(o=!1)}var R="right"===n.position?i.left:i.right-y,_="right"===n.position?i.left+y:i.right,V="bottom"===n.position?i.top:i.bottom-y,L="bottom"===n.position?i.top+y:i.bottom;if(e.each(i.ticks,function(t,r){if(void 0!==t&&null!==t){var l=i.ticks.length===r+1,s=o>1&&r%o>0||r%o===0&&r+o>=i.ticks.length;if((!s||l)&&void 0!==t&&null!==t){var c,f;r===("undefined"!=typeof i.zeroLineIndex?i.zeroLineIndex:0)?(c=u.zeroLineWidth,f=u.zeroLineColor):(c=e.getValueAtIndexOrDefault(u.lineWidth,r),f=e.getValueAtIndexOrDefault(u.color,r));var p,m,b,v,x,w,C,M,D,I,P,T="middle";if(g){h||(T="top"===n.position?"bottom":"top"),P=h?"right":"center";var O=i.getPixelForTick(r)+e.aliasPixel(c);D=i.getPixelForTick(r,u.offsetGridLines)+d.labelOffset,I=h?i.top+12:"top"===n.position?i.bottom-y:i.top+y,p=b=x=C=O,m=V,v=L,w=a.top,M=a.bottom}else{"left"===n.position?d.mirror?(D=i.right+d.padding,P="left"):(D=i.right-d.padding,P="right"):d.mirror?(D=i.left-d.padding,P="right"):(D=i.left+d.padding,P="left");var B=i.getPixelForTick(r);B+=e.aliasPixel(c),I=i.getPixelForTick(r,u.offsetGridLines),p=R,b=_,x=a.left,C=a.right,m=v=w=M=B}F.push({tx1:p,ty1:m,tx2:b,ty2:v,x1:x,y1:w,x2:C,y2:M,labelX:D,labelY:I,glWidth:c,glColor:f,glBorderDash:k,glBorderDashOffset:S,rotation:-1*A,label:t,textBaseline:T,textAlign:P})}}}),e.each(F,function(t){if(u.display&&(l.save(),l.lineWidth=t.glWidth,l.strokeStyle=t.glColor,l.setLineDash&&(l.setLineDash(t.glBorderDash),l.lineDashOffset=t.glBorderDashOffset),l.beginPath(),u.drawTicks&&(l.moveTo(t.tx1,t.ty1),l.lineTo(t.tx2,t.ty2)),u.drawOnChartArea&&(l.moveTo(t.x1,t.y1),l.lineTo(t.x2,t.y2)),l.stroke(),l.restore()),d.display){l.save(),l.translate(t.labelX,t.labelY),l.rotate(t.rotation),l.font=x,l.textBaseline=t.textBaseline,l.textAlign=t.textAlign;var a=t.label;if(e.isArray(a))for(var i=0,n=0;i<a.length;++i)l.fillText(""+a[i],0,n),n+=1.5*m;else l.fillText(a,0,0);l.restore()}}),c.display){var O,B,W=0;if(g)O=i.left+(i.right-i.left)/2,B="bottom"===n.position?i.bottom-C/2:i.top+C/2;else{var z="left"===n.position;O=z?i.left+C/2:i.right-C/2,B=i.top+(i.bottom-i.top)/2,W=z?-.5*Math.PI:.5*Math.PI}l.save(),l.translate(O,B),l.rotate(W),l.textAlign="center",l.textBaseline="middle",l.fillStyle=w,l.font=I,l.fillText(c.labelString,0,0),l.restore()}if(u.drawBorder){l.lineWidth=e.getValueAtIndexOrDefault(u.lineWidth,0),l.strokeStyle=e.getValueAtIndexOrDefault(u.color,0);var N=i.left,H=i.right,E=i.top,U=i.bottom,q=e.aliasPixel(l.lineWidth);g?(E=U="top"===n.position?i.bottom:i.top,E+=q,U+=q):(N=H="left"===n.position?i.right:i.left,N+=q,H+=q),l.beginPath(),l.moveTo(N,E),l.lineTo(H,U),l.stroke()}}}})}},{}],32:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.scaleService={constructors:{},defaults:{},registerScaleType:function(t,a,i){this.constructors[t]=a,this.defaults[t]=e.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(a){return this.defaults.hasOwnProperty(a)?e.scaleMerge(t.defaults.scale,this.defaults[a]):{}},updateScaleDefaults:function(t,a){var i=this.defaults;i.hasOwnProperty(t)&&(i[t]=e.extend(i[t],a))},addScalesToLayout:function(a){e.each(a.scales,function(e){t.layoutService.addBox(a,e)})}}}},{}],33:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.global.title={display:!1,position:"top",fullWidth:!0,fontStyle:"bold",padding:10,text:""};var a=e.noop;t.Title=t.Element.extend({initialize:function(a){var i=this;e.extend(i,a),i.options=e.configMerge(t.defaults.global.title,a.options),i.legendHitBoxes=[]},beforeUpdate:function(){var a=this.chart.options;a&&a.title&&(this.options=e.configMerge(t.defaults.global.title,a.title))},update:function(t,e,a){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=a,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:a,beforeSetDimensions:a,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:a,beforeBuildLabels:a,buildLabels:a,afterBuildLabels:a,beforeFit:a,fit:function(){var a=this,i=e.getValueOrDefault,n=a.options,o=t.defaults.global,r=n.display,l=i(n.fontSize,o.defaultFontSize),s=a.minSize;a.isHorizontal()?(s.width=a.maxWidth,s.height=r?l+2*n.padding:0):(s.width=r?l+2*n.padding:0,s.height=a.maxHeight),a.width=s.width,a.height=s.height},afterFit:a,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var a=this,i=a.ctx,n=e.getValueOrDefault,o=a.options,r=t.defaults.global;if(o.display){var l,s,d=n(o.fontSize,r.defaultFontSize),u=n(o.fontStyle,r.defaultFontStyle),c=n(o.fontFamily,r.defaultFontFamily),h=e.fontString(d,u,c),f=0,g=a.top,p=a.left,m=a.bottom,b=a.right;i.fillStyle=n(o.fontColor,r.defaultFontColor),i.font=h,a.isHorizontal()?(l=p+(b-p)/2,s=g+(m-g)/2):(l="left"===o.position?p+d/2:b-d/2,s=g+(m-g)/2,f=Math.PI*("left"===o.position?-.5:.5)),i.save(),i.translate(l,s),i.rotate(f),i.textAlign="center",i.textBaseline="middle",i.fillText(o.text,0,0),i.restore()}}}),t.plugins.register({beforeInit:function(e){var a=e.options,i=a.title;i&&(e.titleBlock=new t.Title({ctx:e.chart.ctx,options:i,chart:e}),t.layoutService.addBox(e,e.titleBlock))}})}},{}],34:[function(t,e,a){"use strict";e.exports=function(t){function e(t,e){return e&&(n.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function a(t){if(!t.length)return!1;var e,a,i=[],n=[];for(e=0,a=t.length;a>e;++e){var o=t[e];if(o&&o.hasValue()){var r=o.tooltipPosition();i.push(r.x),n.push(r.y)}}var l=0,s=0;for(e=0;e<i.length;++e)i[e]&&(l+=i[e],s+=n[e]);return{x:Math.round(l/i.length),y:Math.round(s/i.length)}}function i(t){var e=t._xScale,a=t._yScale||t._scale,i=t._index,n=t._datasetIndex;return{xLabel:e?e.getLabelForIndex(i,n):"",yLabel:a?a.getLabelForIndex(i,n):"",index:i,datasetIndex:n}}var n=t.helpers;t.defaults.global.tooltips={enabled:!0,custom:null,mode:"single",backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,yAlign:"center",xAlign:"center",caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",callbacks:{beforeTitle:n.noop,title:function(t,e){var a="",i=e.labels,n=i?i.length:0;if(t.length>0){var o=t[0];o.xLabel?a=o.xLabel:n>0&&o.index<n&&(a=i[o.index])}return a},afterTitle:n.noop,beforeBody:n.noop,beforeLabel:n.noop,label:function(t,e){var a=e.datasets[t.datasetIndex].label||"";return a+": "+t.yLabel},labelColor:function(t,e){var a=e.getDatasetMeta(t.datasetIndex),i=a.data[t.index],n=i._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},afterLabel:n.noop,afterBody:n.noop,beforeFooter:n.noop,footer:n.noop,afterFooter:n.noop}},t.Tooltip=t.Element.extend({initialize:function(){var e=this,a=t.defaults.global,i=e._options,o=n.getValueOrDefault;n.extend(e,{_model:{xPadding:i.xPadding,yPadding:i.yPadding,xAlign:i.xAlign,yAlign:i.yAlign,bodyFontColor:i.bodyFontColor,_bodyFontFamily:o(i.bodyFontFamily,a.defaultFontFamily),_bodyFontStyle:o(i.bodyFontStyle,a.defaultFontStyle),_bodyAlign:i.bodyAlign,bodyFontSize:o(i.bodyFontSize,a.defaultFontSize),bodySpacing:i.bodySpacing,titleFontColor:i.titleFontColor,_titleFontFamily:o(i.titleFontFamily,a.defaultFontFamily),_titleFontStyle:o(i.titleFontStyle,a.defaultFontStyle),titleFontSize:o(i.titleFontSize,a.defaultFontSize),_titleAlign:i.titleAlign,titleSpacing:i.titleSpacing,titleMarginBottom:i.titleMarginBottom,footerFontColor:i.footerFontColor,_footerFontFamily:o(i.footerFontFamily,a.defaultFontFamily),_footerFontStyle:o(i.footerFontStyle,a.defaultFontStyle),footerFontSize:o(i.footerFontSize,a.defaultFontSize),_footerAlign:i.footerAlign,footerSpacing:i.footerSpacing,footerMarginTop:i.footerMarginTop,caretSize:i.caretSize,cornerRadius:i.cornerRadius,backgroundColor:i.backgroundColor,opacity:0,legendColorBackground:i.multiKeyBackground}})},getTitle:function(){var t=this,a=t._options,i=a.callbacks,n=i.beforeTitle.apply(t,arguments),o=i.title.apply(t,arguments),r=i.afterTitle.apply(t,arguments),l=[];return l=e(l,n),l=e(l,o),l=e(l,r)},getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this,arguments);return n.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,a){var i=this,o=i._options.callbacks,r=[];return n.each(t,function(t){var n={before:[],lines:[],after:[]};e(n.before,o.beforeLabel.call(i,t,a)),e(n.lines,o.label.call(i,t,a)),e(n.after,o.afterLabel.call(i,t,a)),r.push(n)}),r},getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this,arguments);return n.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var t=this,a=t._options.callbacks,i=a.beforeFooter.apply(t,arguments),n=a.footer.apply(t,arguments),o=a.afterFooter.apply(t,arguments),r=[];return r=e(r,i),r=e(r,n),r=e(r,o)},update:function(t){var e,o,r=this,l=r._options,s=r._model,d=r._active,u=r._data,c=r._chartInstance;if(d.length){s.opacity=1;var h=[],f=a(d),g=[];for(e=0,o=d.length;o>e;++e)g.push(i(d[e]));l.itemSort&&(g=g.sort(function(t,e){return l.itemSort(t,e,u)})),d.length>1&&n.each(g,function(t){h.push(l.callbacks.labelColor.call(r,t,c))}),n.extend(s,{title:r.getTitle(g,u),beforeBody:r.getBeforeBody(g,u),body:r.getBody(g,u),afterBody:r.getAfterBody(g,u),footer:r.getFooter(g,u),x:Math.round(f.x),y:Math.round(f.y),caretPadding:n.getValueOrDefault(f.padding,2),labelColors:h});var p=r.getTooltipSize(s);r.determineAlignment(p),n.extend(s,r.getBackgroundPoint(s,p))}else r._model.opacity=0;return t&&l.custom&&l.custom.call(r,s),r},getTooltipSize:function(t){var e=this._chart.ctx,a={height:2*t.yPadding,width:0},i=t.body,o=i.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);o+=t.beforeBody.length+t.afterBody.length;var r=t.title.length,l=t.footer.length,s=t.titleFontSize,d=t.bodyFontSize,u=t.footerFontSize;a.height+=r*s,a.height+=(r-1)*t.titleSpacing,a.height+=r?t.titleMarginBottom:0,a.height+=o*d,a.height+=o?(o-1)*t.bodySpacing:0,a.height+=l?t.footerMarginTop:0,a.height+=l*u,a.height+=l?(l-1)*t.footerSpacing:0;var c=0,h=function(t){a.width=Math.max(a.width,e.measureText(t).width+c)};return e.font=n.fontString(s,t._titleFontStyle,t._titleFontFamily),n.each(t.title,h),e.font=n.fontString(d,t._bodyFontStyle,t._bodyFontFamily),n.each(t.beforeBody.concat(t.afterBody),h),c=i.length>1?d+2:0,n.each(i,function(t){n.each(t.before,h),n.each(t.lines,h),n.each(t.after,h)}),c=0,e.font=n.fontString(u,t._footerFontStyle,t._footerFontFamily),n.each(t.footer,h),a.width+=2*t.xPadding,a},determineAlignment:function(t){var e=this,a=e._model,i=e._chart,n=e._chartInstance.chartArea;a.y<t.height?a.yAlign="top":a.y>i.height-t.height&&(a.yAlign="bottom");var o,r,l,s,d,u=(n.left+n.right)/2,c=(n.top+n.bottom)/2;"center"===a.yAlign?(o=function(t){return u>=t},r=function(t){return t>u}):(o=function(e){return e<=t.width/2},r=function(e){return e>=i.width-t.width/2}),l=function(e){return e+t.width>i.width},s=function(e){return e-t.width<0},d=function(t){return c>=t?"top":"bottom"},o(a.x)?(a.xAlign="left",l(a.x)&&(a.xAlign="center",a.yAlign=d(a.y))):r(a.x)&&(a.xAlign="right",s(a.x)&&(a.xAlign="center",a.yAlign=d(a.y)))},getBackgroundPoint:function(t,e){var a={x:t.x,y:t.y},i=t.caretSize,n=t.caretPadding,o=t.cornerRadius,r=t.xAlign,l=t.yAlign,s=i+n,d=o+n;return"right"===r?a.x-=e.width:"center"===r&&(a.x-=e.width/2),"top"===l?a.y+=s:"bottom"===l?a.y-=e.height+s:a.y-=e.height/2,"center"===l?"left"===r?a.x+=s:"right"===r&&(a.x-=s):"left"===r?a.x-=d:"right"===r&&(a.x+=d),a},drawCaret:function(t,e,a){var i,o,r,l,s,d,u=this._view,c=this._chart.ctx,h=u.caretSize,f=u.cornerRadius,g=u.xAlign,p=u.yAlign,m=t.x,b=t.y,v=e.width,x=e.height;"center"===p?("left"===g?(i=m,o=i-h,r=i):(i=m+v,o=i+h,r=i),s=b+x/2,l=s-h,d=s+h):("left"===g?(i=m+f,o=i+h,r=o+h):"right"===g?(i=m+v-f,o=i-h,r=o-h):(o=m+v/2,i=o-h,r=o+h),"top"===p?(l=b,s=l-h,d=l):(l=b+x,s=l+h,d=l));var y=n.color(u.backgroundColor);c.fillStyle=y.alpha(a*y.alpha()).rgbString(),c.beginPath(),c.moveTo(i,l),c.lineTo(o,s),c.lineTo(r,d),c.closePath(),c.fill()},drawTitle:function(t,e,a,i){var o=e.title;if(o.length){a.textAlign=e._titleAlign,a.textBaseline="top";var r=e.titleFontSize,l=e.titleSpacing,s=n.color(e.titleFontColor);a.fillStyle=s.alpha(i*s.alpha()).rgbString(),a.font=n.fontString(r,e._titleFontStyle,e._titleFontFamily);var d,u;for(d=0,u=o.length;u>d;++d)a.fillText(o[d],t.x,t.y),t.y+=r+l,d+1===o.length&&(t.y+=e.titleMarginBottom-l)}},drawBody:function(t,e,a,i){var o=e.bodyFontSize,r=e.bodySpacing,l=e.body;a.textAlign=e._bodyAlign,a.textBaseline="top";var s=n.color(e.bodyFontColor),d=s.alpha(i*s.alpha()).rgbString();a.fillStyle=d,a.font=n.fontString(o,e._bodyFontStyle,e._bodyFontFamily);var u=0,c=function(e){a.fillText(e,t.x+u,t.y),t.y+=o+r};n.each(e.beforeBody,c);var h=l.length>1;u=h?o+2:0,n.each(l,function(r,l){n.each(r.before,c),n.each(r.lines,function(r){h&&(a.fillStyle=n.color(e.legendColorBackground).alpha(i).rgbaString(),a.fillRect(t.x,t.y,o,o),a.strokeStyle=n.color(e.labelColors[l].borderColor).alpha(i).rgbaString(),a.strokeRect(t.x,t.y,o,o),a.fillStyle=n.color(e.labelColors[l].backgroundColor).alpha(i).rgbaString(),a.fillRect(t.x+1,t.y+1,o-2,o-2),a.fillStyle=d),c(r)}),n.each(r.after,c)}),u=0,n.each(e.afterBody,c),t.y-=r},drawFooter:function(t,e,a,i){var o=e.footer;if(o.length){t.y+=e.footerMarginTop,a.textAlign=e._footerAlign,a.textBaseline="top";var r=n.color(e.footerFontColor);a.fillStyle=r.alpha(i*r.alpha()).rgbString(),a.font=n.fontString(e.footerFontSize,e._footerFontStyle,e._footerFontFamily),n.each(o,function(i){a.fillText(i,t.x,t.y),t.y+=e.footerFontSize+e.footerSpacing})}},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var a=this.getTooltipSize(e),i={x:e.x,y:e.y},o=Math.abs(e.opacity<.001)?0:e.opacity;if(this._options.enabled){var r=n.color(e.backgroundColor);t.fillStyle=r.alpha(o*r.alpha()).rgbString(),n.drawRoundedRectangle(t,i.x,i.y,a.width,a.height,e.cornerRadius),t.fill(),this.drawCaret(i,a,o),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,o),this.drawBody(i,e,t,o),this.drawFooter(i,e,t,o)}}}})}},{}],35:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=t.defaults.global;a.elements.arc={backgroundColor:a.defaultColor,borderColor:"#fff",borderWidth:2},t.elements.Arc=t.Element.extend({inLabelRange:function(t){var e=this._view;return e?Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2):!1},inRange:function(t,a){var i=this._view;if(i){for(var n=e.getAngleFromPoint(i,{x:t,y:a}),o=n.angle,r=n.distance,l=i.startAngle,s=i.endAngle;l>s;)s+=2*Math.PI;for(;o>s;)o-=2*Math.PI;for(;l>o;)o+=2*Math.PI;var d=o>=l&&s>=o,u=r>=i.innerRadius&&r<=i.outerRadius;return d&&u}return!1},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,a=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*a,y:t.y+Math.sin(e)*a}},draw:function(){var t=this._chart.ctx,e=this._view,a=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,a,i),t.arc(e.x,e.y,e.innerRadius,i,a,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})}},{}],36:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=t.defaults.global;t.defaults.global.elements.line={tension:.4,backgroundColor:a.defaultColor,borderWidth:3,borderColor:a.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0},t.elements.Line=t.Element.extend({draw:function(){function t(t,e){var a=e._view;e._view.steppedLine===!0?(s.lineTo(e._view.x,t._view.y),s.lineTo(e._view.x,e._view.y)):0===e._view.tension?s.lineTo(a.x,a.y):s.bezierCurveTo(t._view.controlPointNextX,t._view.controlPointNextY,a.controlPointPreviousX,a.controlPointPreviousY,a.x,a.y)}var i=this,n=i._view,o=n.spanGaps,r=n.scaleZero,l=i._loop,s=i._chart.ctx;s.save();var d=i._children.slice(),u=-1;l&&d.length&&d.push(d[0]);var c,h,f,g;if(d.length&&n.fill){for(s.beginPath(),c=0;c<d.length;++c)h=d[c],f=e.previousItem(d,c),g=h._view,0===c?(l?s.moveTo(r.x,r.y):s.moveTo(g.x,r),g.skip||(u=c,s.lineTo(g.x,g.y))):(f=-1===u?f:d[u],g.skip?o||u!==c-1||(l?s.lineTo(r.x,r.y):s.lineTo(f._view.x,r)):(u!==c-1?o&&-1!==u?t(f,h):l?s.lineTo(g.x,g.y):(s.lineTo(g.x,r),s.lineTo(g.x,g.y)):t(f,h),u=c));l||-1===u||s.lineTo(d[u]._view.x,r),s.fillStyle=n.backgroundColor||a.defaultColor,s.closePath(),s.fill()}var p=a.elements.line;for(s.lineCap=n.borderCapStyle||p.borderCapStyle,s.setLineDash&&s.setLineDash(n.borderDash||p.borderDash),s.lineDashOffset=n.borderDashOffset||p.borderDashOffset,s.lineJoin=n.borderJoinStyle||p.borderJoinStyle,s.lineWidth=n.borderWidth||p.borderWidth,s.strokeStyle=n.borderColor||a.defaultColor,s.beginPath(),u=-1,c=0;c<d.length;++c)h=d[c],f=e.previousItem(d,c),g=h._view,0===c?g.skip||(s.moveTo(g.x,g.y),u=c):(f=-1===u?f:d[u],g.skip||(u!==c-1&&!o||-1===u?s.moveTo(g.x,g.y):t(f,h),u=c));s.stroke(),s.restore()}})}},{}],37:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=t.defaults.global,i=a.defaultColor;a.elements.point={radius:3,pointStyle:"circle",backgroundColor:i,borderWidth:1,borderColor:i,hitRadius:1,hoverRadius:4,hoverBorderWidth:1},t.elements.Point=t.Element.extend({inRange:function(t,e){var a=this._view;return a?Math.pow(t-a.x,2)+Math.pow(e-a.y,2)<Math.pow(a.hitRadius+a.radius,2):!1},inLabelRange:function(t){var e=this._view;return e?Math.pow(t-e.x,2)<Math.pow(e.radius+e.hitRadius,2):!1},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(){var n=this._view,o=this._chart.ctx,r=n.pointStyle,l=n.radius,s=n.x,d=n.y;n.skip||(o.strokeStyle=n.borderColor||i,o.lineWidth=e.getValueOrDefault(n.borderWidth,a.elements.point.borderWidth),o.fillStyle=n.backgroundColor||i,t.canvasHelpers.drawPoint(o,r,l,s,d))}})}},{}],38:[function(t,e,a){"use strict";e.exports=function(t){var e=t.defaults.global;e.elements.rectangle={backgroundColor:e.defaultColor,borderWidth:0,borderColor:e.defaultColor,borderSkipped:"bottom"},t.elements.Rectangle=t.Element.extend({draw:function(){function t(t){return s[(u+t)%4]}var e=this._chart.ctx,a=this._view,i=a.width/2,n=a.x-i,o=a.x+i,r=a.base-(a.base-a.y),l=a.borderWidth/2;a.borderWidth&&(n+=l,o-=l,r+=l),e.beginPath(),e.fillStyle=a.backgroundColor,e.strokeStyle=a.borderColor,e.lineWidth=a.borderWidth;var s=[[n,a.base],[n,r],[o,r],[o,a.base]],d=["bottom","left","top","right"],u=d.indexOf(a.borderSkipped,0);-1===u&&(u=0),e.moveTo.apply(e,t(0));for(var c=1;4>c;c++)e.lineTo.apply(e,t(c));e.fill(),a.borderWidth&&e.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var a=this._view;return a?a.y<a.base?t>=a.x-a.width/2&&t<=a.x+a.width/2&&e>=a.y&&e<=a.base:t>=a.x-a.width/2&&t<=a.x+a.width/2&&e>=a.base&&e<=a.y:!1},inLabelRange:function(t){var e=this._view;return e?t>=e.x-e.width/2&&t<=e.x+e.width/2:!1},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})}},{}],39:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a={position:"bottom"},i=t.Scale.extend({getLabels:function(){var t=this.chart.data;return(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t=this,a=t.getLabels();t.minIndex=0,t.maxIndex=a.length-1;var i;void 0!==t.options.ticks.min&&(i=e.indexOf(a,t.options.ticks.min),t.minIndex=-1!==i?i:t.minIndex),void 0!==t.options.ticks.max&&(i=e.indexOf(a,t.options.ticks.max),t.maxIndex=-1!==i?i:t.maxIndex),t.min=a[t.minIndex],t.max=a[t.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t){return this.ticks[t]},getPixelForValue:function(t,e,a,i){var n=this,o=Math.max(n.maxIndex+1-n.minIndex-(n.options.gridLines.offsetGridLines?0:1),1);if(void 0!==t&&isNaN(e)){var r=n.getLabels(),l=r.indexOf(t);e=-1!==l?l:e}if(n.isHorizontal()){var s=n.width-(n.paddingLeft+n.paddingRight),d=s/o,u=d*(e-n.minIndex)+n.paddingLeft;return(n.options.gridLines.offsetGridLines&&i||n.maxIndex===n.minIndex&&i)&&(u+=d/2),n.left+Math.round(u)}var c=n.height-(n.paddingTop+n.paddingBottom),h=c/o,f=h*(e-n.minIndex)+n.paddingTop;return n.options.gridLines.offsetGridLines&&i&&(f+=h/2),n.top+Math.round(f)},getPixelForTick:function(t,e){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null,e)},getValueForPixel:function(t){var e,a=this,i=Math.max(a.ticks.length-(a.options.gridLines.offsetGridLines?0:1),1),n=a.isHorizontal(),o=n?a.width-(a.paddingLeft+a.paddingRight):a.height-(a.paddingTop+a.paddingBottom),r=o/i;return t-=n?a.left:a.top,a.options.gridLines.offsetGridLines&&(t-=r/2),t-=n?a.paddingLeft:a.paddingTop,e=0>=t?0:Math.round(t/r)},getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType("category",i,a)}},{}],40:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a={position:"left",ticks:{callback:function(t,a,i){var n=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(n)>1&&t!==Math.floor(t)&&(n=t-Math.floor(t));var o=e.log10(Math.abs(n)),r="";if(0!==t){var l=-1*Math.floor(o);l=Math.max(Math.min(l,20),0),r=t.toFixed(l)}else r="0";return r}}},i=t.LinearScaleBase.extend({determineDataLimits:function(){function t(t){return l?t.xAxisID===a.id:t.yAxisID===a.id}var a=this,i=a.options,n=a.chart,o=n.data,r=o.datasets,l=a.isHorizontal();if(a.min=null,a.max=null,i.stacked){var s={},d=!1,u=!1;e.each(r,function(o,r){var l=n.getDatasetMeta(r);void 0===s[l.type]&&(s[l.type]={positiveValues:[],negativeValues:[]});var c=s[l.type].positiveValues,h=s[l.type].negativeValues;n.isDatasetVisible(r)&&t(l)&&e.each(o.data,function(t,e){var n=+a.getRightValue(t);isNaN(n)||l.data[e].hidden||(c[e]=c[e]||0,h[e]=h[e]||0,i.relativePoints?c[e]=100:0>n?(u=!0,h[e]+=n):(d=!0,c[e]+=n))})}),e.each(s,function(t){var i=t.positiveValues.concat(t.negativeValues),n=e.min(i),o=e.max(i);a.min=null===a.min?n:Math.min(a.min,n),a.max=null===a.max?o:Math.max(a.max,o)})}else e.each(r,function(i,o){var r=n.getDatasetMeta(o);n.isDatasetVisible(o)&&t(r)&&e.each(i.data,function(t,e){var i=+a.getRightValue(t);isNaN(i)||r.data[e].hidden||(null===a.min?a.min=i:i<a.min&&(a.min=i),null===a.max?a.max=i:i>a.max&&(a.max=i))})});this.handleTickRangeOptions()},getTickLimit:function(){var a,i=this,n=i.options.ticks;if(i.isHorizontal())a=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(i.width/50));else{var o=e.getValueOrDefault(n.fontSize,t.defaults.global.defaultFontSize);a=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(i.height/(2*o)))}return a},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,a,i=this,n=i.paddingLeft,o=i.paddingBottom,r=i.start,l=+i.getRightValue(t),s=i.end-r;return i.isHorizontal()?(a=i.width-(n+i.paddingRight),e=i.left+a/s*(l-r),Math.round(e+n)):(a=i.height-(i.paddingTop+o),e=i.bottom-o-a/s*(l-r),Math.round(e))},getValueForPixel:function(t){var e=this,a=e.isHorizontal(),i=e.paddingLeft,n=e.paddingBottom,o=a?e.width-(i+e.paddingRight):e.height-(e.paddingTop+n),r=(a?t-e.left-i:e.bottom-n-t)/o;return e.start+(e.end-e.start)*r},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",i,a)}},{}],41:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=e.noop;t.LinearScaleBase=t.Scale.extend({handleTickRangeOptions:function(){var t=this,a=t.options,i=a.ticks;if(i.beginAtZero){var n=e.sign(t.min),o=e.sign(t.max);0>n&&0>o?t.max=0:n>0&&o>0&&(t.min=0)}void 0!==i.min?t.min=i.min:void 0!==i.suggestedMin&&(t.min=Math.min(t.min,i.suggestedMin)),void 0!==i.max?t.max=i.max:void 0!==i.suggestedMax&&(t.max=Math.max(t.max,i.suggestedMax)),t.min===t.max&&(t.max++,i.beginAtZero||t.min--)},getTickLimit:a,handleDirectionalChanges:a,buildTicks:function(){var t=this,a=t.options,i=t.ticks=[],n=a.ticks,o=e.getValueOrDefault,r=t.getTickLimit();r=Math.max(2,r);var l,s=n.fixedStepSize&&n.fixedStepSize>0||n.stepSize&&n.stepSize>0;if(s)l=o(n.fixedStepSize,n.stepSize);else{var d=e.niceNum(t.max-t.min,!1);l=e.niceNum(d/(r-1),!0)}var u=Math.floor(t.min/l)*l,c=Math.ceil(t.max/l)*l,h=(c-u)/l;h=e.almostEquals(h,Math.round(h),l/1e3)?Math.round(h):Math.ceil(h),i.push(void 0!==n.min?n.min:u);for(var f=1;h>f;++f)i.push(u+f*l);i.push(void 0!==n.max?n.max:c),t.handleDirectionalChanges(),t.max=e.max(i),t.min=e.min(i),n.reverse?(i.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{}],42:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a={position:"left",ticks:{callback:function(t,a,i){var n=t/Math.pow(10,Math.floor(e.log10(t)));return 0===t?"0":1===n||2===n||5===n||0===a||a===i.length-1?t.toExponential():""}}},i=t.Scale.extend({determineDataLimits:function(){function t(t){return d?t.xAxisID===a.id:t.yAxisID===a.id}var a=this,i=a.options,n=i.ticks,o=a.chart,r=o.data,l=r.datasets,s=e.getValueOrDefault,d=a.isHorizontal();if(a.min=null,a.max=null,a.minNotZero=null,i.stacked){var u={};e.each(l,function(n,r){var l=o.getDatasetMeta(r);o.isDatasetVisible(r)&&t(l)&&(void 0===u[l.type]&&(u[l.type]=[]),e.each(n.data,function(t,e){var n=u[l.type],o=+a.getRightValue(t);isNaN(o)||l.data[e].hidden||(n[e]=n[e]||0,i.relativePoints?n[e]=100:n[e]+=o)}))}),e.each(u,function(t){var i=e.min(t),n=e.max(t);a.min=null===a.min?i:Math.min(a.min,i),a.max=null===a.max?n:Math.max(a.max,n)})}else e.each(l,function(i,n){var r=o.getDatasetMeta(n);o.isDatasetVisible(n)&&t(r)&&e.each(i.data,function(t,e){var i=+a.getRightValue(t);isNaN(i)||r.data[e].hidden||(null===a.min?a.min=i:i<a.min&&(a.min=i),null===a.max?a.max=i:i>a.max&&(a.max=i),0!==i&&(null===a.minNotZero||i<a.minNotZero)&&(a.minNotZero=i))})});a.min=s(n.min,a.min),a.max=s(n.max,a.max),a.min===a.max&&(0!==a.min&&null!==a.min?(a.min=Math.pow(10,Math.floor(e.log10(a.min))-1),\na.max=Math.pow(10,Math.floor(e.log10(a.max))+1)):(a.min=1,a.max=10))},buildTicks:function(){for(var t=this,a=t.options,i=a.ticks,n=e.getValueOrDefault,o=t.ticks=[],r=n(i.min,Math.pow(10,Math.floor(e.log10(t.min))));r<t.max;){o.push(r);var l,s;0===r?(l=Math.floor(e.log10(t.minNotZero)),s=Math.round(t.minNotZero/Math.pow(10,l))):(l=Math.floor(e.log10(r)),s=Math.floor(r/Math.pow(10,l))+1),10===s&&(s=1,++l),r=s*Math.pow(10,l)}var d=n(i.max,r);o.push(d),t.isHorizontal()||o.reverse(),t.max=e.max(o),t.min=e.min(o),i.reverse?(o.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),t.Scale.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},getPixelForValue:function(t){var a,i,n,o=this,r=o.start,l=+o.getRightValue(t),s=o.paddingTop,d=o.paddingBottom,u=o.paddingLeft,c=o.options,h=c.ticks;return o.isHorizontal()?(n=e.log10(o.end)-e.log10(r),0===l?i=o.left+u:(a=o.width-(u+o.paddingRight),i=o.left+a/n*(e.log10(l)-e.log10(r)),i+=u)):(a=o.height-(s+d),0!==r||h.reverse?0===o.end&&h.reverse?(n=e.log10(o.start)-e.log10(o.minNotZero),i=l===o.end?o.top+s:l===o.minNotZero?o.top+s+.02*a:o.top+s+.02*a+.98*a/n*(e.log10(l)-e.log10(o.minNotZero))):(n=e.log10(o.end)-e.log10(r),a=o.height-(s+d),i=o.bottom-d-a/n*(e.log10(l)-e.log10(r))):(n=e.log10(o.end)-e.log10(o.minNotZero),i=l===r?o.bottom-d:l===o.minNotZero?o.bottom-d-.02*a:o.bottom-d-.02*a-.98*a/n*(e.log10(l)-e.log10(o.minNotZero)))),i},getValueForPixel:function(t){var a,i,n=this,o=e.log10(n.end)-e.log10(n.start);return n.isHorizontal()?(i=n.width-(n.paddingLeft+n.paddingRight),a=n.start*Math.pow(10,(t-n.left-n.paddingLeft)*o/i)):(i=n.height-(n.paddingTop+n.paddingBottom),a=Math.pow(10,(n.bottom-n.paddingBottom-t)*o/i)/n.start),a}});t.scaleService.registerScaleType("logarithmic",i,a)}},{}],43:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=t.defaults.global,i={display:!0,animate:!0,lineArc:!1,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2},pointLabels:{fontSize:10,callback:function(t){return t}}},n=t.LinearScaleBase.extend({getValueCount:function(){return this.chart.data.labels.length},setDimensions:function(){var t=this,i=t.options,n=i.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var o=e.min([t.height,t.width]),r=e.getValueOrDefault(n.fontSize,a.defaultFontSize);t.drawingArea=i.display?o/2-(r/2+n.backdropPaddingY):o/2},determineDataLimits:function(){var t=this,a=t.chart;t.min=null,t.max=null,e.each(a.data.datasets,function(i,n){if(a.isDatasetVisible(n)){var o=a.getDatasetMeta(n);e.each(i.data,function(e,a){var i=+t.getRightValue(e);isNaN(i)||o.data[a].hidden||(null===t.min?t.min=i:i<t.min&&(t.min=i),null===t.max?t.max=i:i>t.max&&(t.max=i))})}}),t.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,i=e.getValueOrDefault(t.fontSize,a.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*i)))},convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t,i,n,o,r,l,s,d,u,c,h,f,g=this.options.pointLabels,p=e.getValueOrDefault(g.fontSize,a.defaultFontSize),m=e.getValueOrDefault(g.fontStyle,a.defaultFontStyle),b=e.getValueOrDefault(g.fontFamily,a.defaultFontFamily),v=e.fontString(p,m,b),x=e.min([this.height/2-p-5,this.width/2]),y=this.width,k=0;for(this.ctx.font=v,i=0;i<this.getValueCount();i++){t=this.getPointPosition(i,x),n=this.ctx.measureText(this.pointLabels[i]?this.pointLabels[i]:"").width+5;var S=this.getIndexAngle(i)+Math.PI/2,w=360*S/(2*Math.PI)%360;0===w||180===w?(o=n/2,t.x+o>y&&(y=t.x+o,r=i),t.x-o<k&&(k=t.x-o,s=i)):180>w?t.x+n>y&&(y=t.x+n,r=i):t.x-n<k&&(k=t.x-n,s=i)}u=k,c=Math.ceil(y-this.width),l=this.getIndexAngle(r),d=this.getIndexAngle(s),h=c/Math.sin(l+Math.PI/2),f=u/Math.sin(d+Math.PI/2),h=e.isNumber(h)?h:0,f=e.isNumber(f)?f:0,this.drawingArea=Math.round(x-(f+h)/2),this.setCenterPoint(f,h)},setCenterPoint:function(t,e){var a=this,i=a.width-e-a.drawingArea,n=t+a.drawingArea;a.xCenter=Math.round((n+i)/2+a.left),a.yCenter=Math.round(a.height/2+a.top)},getIndexAngle:function(t){var e=2*Math.PI/this.getValueCount(),a=this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0,i=a*Math.PI*2/360;return t*e-Math.PI/2+i},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var a=e.drawingArea/(e.max-e.min);return e.options.reverse?(e.max-t)*a:(t-e.min)*a},getPointPosition:function(t,e){var a=this,i=a.getIndexAngle(t);return{x:Math.round(Math.cos(i)*e)+a.xCenter,y:Math.round(Math.sin(i)*e)+a.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this,e=t.min,a=t.max;return t.getPointPositionForValue(0,t.beginAtZero?0:0>e&&0>a?a:e>0&&a>0?e:0)},draw:function(){var t=this,i=t.options,n=i.gridLines,o=i.ticks,r=i.angleLines,l=i.pointLabels,s=e.getValueOrDefault;if(i.display){var d=t.ctx,u=s(o.fontSize,a.defaultFontSize),c=s(o.fontStyle,a.defaultFontStyle),h=s(o.fontFamily,a.defaultFontFamily),f=e.fontString(u,c,h);if(e.each(t.ticks,function(r,l){if(l>0||i.reverse){var c=t.getDistanceFromCenterForValue(t.ticksAsNumbers[l]),h=t.yCenter-c;if(n.display&&0!==l)if(d.strokeStyle=e.getValueAtIndexOrDefault(n.color,l-1),d.lineWidth=e.getValueAtIndexOrDefault(n.lineWidth,l-1),i.lineArc)d.beginPath(),d.arc(t.xCenter,t.yCenter,c,0,2*Math.PI),d.closePath(),d.stroke();else{d.beginPath();for(var g=0;g<t.getValueCount();g++){var p=t.getPointPosition(g,c);0===g?d.moveTo(p.x,p.y):d.lineTo(p.x,p.y)}d.closePath(),d.stroke()}if(o.display){var m=s(o.fontColor,a.defaultFontColor);if(d.font=f,o.showLabelBackdrop){var b=d.measureText(r).width;d.fillStyle=o.backdropColor,d.fillRect(t.xCenter-b/2-o.backdropPaddingX,h-u/2-o.backdropPaddingY,b+2*o.backdropPaddingX,u+2*o.backdropPaddingY)}d.textAlign="center",d.textBaseline="middle",d.fillStyle=m,d.fillText(r,t.xCenter,h)}}}),!i.lineArc){d.lineWidth=r.lineWidth,d.strokeStyle=r.color;for(var g=t.getDistanceFromCenterForValue(i.reverse?t.min:t.max),p=s(l.fontSize,a.defaultFontSize),m=s(l.fontStyle,a.defaultFontStyle),b=s(l.fontFamily,a.defaultFontFamily),v=e.fontString(p,m,b),x=t.getValueCount()-1;x>=0;x--){if(r.display){var y=t.getPointPosition(x,g);d.beginPath(),d.moveTo(t.xCenter,t.yCenter),d.lineTo(y.x,y.y),d.stroke(),d.closePath()}var k=t.getPointPosition(x,g+5),S=s(l.fontColor,a.defaultFontColor);d.font=v,d.fillStyle=S;var w=t.pointLabels,C=this.getIndexAngle(x)+Math.PI/2,M=360*C/(2*Math.PI)%360;0===M||180===M?d.textAlign="center":180>M?d.textAlign="left":d.textAlign="right",90===M||270===M?d.textBaseline="middle":M>270||90>M?d.textBaseline="bottom":d.textBaseline="top",d.fillText(w[x]?w[x]:"",k.x,k.y)}}}}});t.scaleService.registerScaleType("radialLinear",n,i)}},{}],44:[function(t,e,a){"use strict";var i=t(1);i="function"==typeof i?i:window.moment,e.exports=function(t){var e=t.helpers,a={units:[{name:"millisecond",steps:[1,2,5,10,20,50,100,250,500]},{name:"second",steps:[1,2,5,10,30]},{name:"minute",steps:[1,2,5,10,30]},{name:"hour",steps:[1,2,3,6,12]},{name:"day",steps:[1,2,5]},{name:"week",maxStep:4},{name:"month",maxStep:3},{name:"quarter",maxStep:4},{name:"year",maxStep:!1}]},n={position:"bottom",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm:ss a",hour:"MMM D, hA",day:"ll",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1}},o=t.Scale.extend({initialize:function(){if(!i)throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");t.Scale.prototype.initialize.call(this)},getLabelMoment:function(t,e){return"undefined"!=typeof this.labelMoments[t]?this.labelMoments[t][e]:null},getMomentStartOf:function(t){var e=this;return"week"===e.options.time.unit&&e.options.time.isoWeekday!==!1?t.clone().startOf("isoWeek").isoWeekday(e.options.time.isoWeekday):t.clone().startOf(e.tickUnit)},determineDataLimits:function(){var t=this;t.labelMoments=[];var a=[];t.chart.data.labels&&t.chart.data.labels.length>0?(e.each(t.chart.data.labels,function(e){var i=t.parseTime(e);i.isValid()&&(t.options.time.round&&i.startOf(t.options.time.round),a.push(i))},t),t.firstTick=i.min.call(t,a),t.lastTick=i.max.call(t,a)):(t.firstTick=null,t.lastTick=null),e.each(t.chart.data.datasets,function(n,o){var r=[],l=t.chart.isDatasetVisible(o);"object"==typeof n.data[0]&&null!==n.data[0]?e.each(n.data,function(e){var a=t.parseTime(t.getRightValue(e));a.isValid()&&(t.options.time.round&&a.startOf(t.options.time.round),r.push(a),l&&(t.firstTick=null!==t.firstTick?i.min(t.firstTick,a):a,t.lastTick=null!==t.lastTick?i.max(t.lastTick,a):a))},t):r=a,t.labelMoments.push(r)},t),t.options.time.min&&(t.firstTick=t.parseTime(t.options.time.min)),t.options.time.max&&(t.lastTick=t.parseTime(t.options.time.max)),t.firstTick=(t.firstTick||i()).clone(),t.lastTick=(t.lastTick||i()).clone()},buildTicks:function(){var i=this;i.ctx.save();var n=e.getValueOrDefault(i.options.ticks.fontSize,t.defaults.global.defaultFontSize),o=e.getValueOrDefault(i.options.ticks.fontStyle,t.defaults.global.defaultFontStyle),r=e.getValueOrDefault(i.options.ticks.fontFamily,t.defaults.global.defaultFontFamily),l=e.fontString(n,o,r);if(i.ctx.font=l,i.ticks=[],i.unitScale=1,i.scaleSizeInUnits=0,i.options.time.unit)i.tickUnit=i.options.time.unit||"day",i.displayFormat=i.options.time.displayFormats[i.tickUnit],i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0),i.unitScale=e.getValueOrDefault(i.options.time.unitStepSize,1);else{var s=i.isHorizontal()?i.width-(i.paddingLeft+i.paddingRight):i.height-(i.paddingTop+i.paddingBottom),d=i.tickFormatFunction(i.firstTick,0,[]),u=i.ctx.measureText(d).width,c=Math.cos(e.toRadians(i.options.ticks.maxRotation)),h=Math.sin(e.toRadians(i.options.ticks.maxRotation));u=u*c+n*h;var f=s/u;i.tickUnit="millisecond",i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0),i.displayFormat=i.options.time.displayFormats[i.tickUnit];for(var g=0,p=a.units[g];g<a.units.length;){if(i.unitScale=1,e.isArray(p.steps)&&Math.ceil(i.scaleSizeInUnits/f)<e.max(p.steps)){for(var m=0;m<p.steps.length;++m)if(p.steps[m]>=Math.ceil(i.scaleSizeInUnits/f)){i.unitScale=e.getValueOrDefault(i.options.time.unitStepSize,p.steps[m]);break}break}if(p.maxStep===!1||Math.ceil(i.scaleSizeInUnits/f)<p.maxStep){i.unitScale=e.getValueOrDefault(i.options.time.unitStepSize,Math.ceil(i.scaleSizeInUnits/f));break}++g,p=a.units[g],i.tickUnit=p.name;var b=i.firstTick.diff(i.getMomentStartOf(i.firstTick),i.tickUnit,!0),v=i.getMomentStartOf(i.lastTick.clone().add(1,i.tickUnit)).diff(i.lastTick,i.tickUnit,!0);i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0)+b+v,i.displayFormat=i.options.time.displayFormats[p.name]}}var x;if(i.options.time.min?x=i.getMomentStartOf(i.firstTick):(i.firstTick=i.getMomentStartOf(i.firstTick),x=i.firstTick),!i.options.time.max){var y=i.getMomentStartOf(i.lastTick),k=y.diff(i.lastTick,i.tickUnit,!0);0>k?i.lastTick=i.getMomentStartOf(i.lastTick.add(1,i.tickUnit)):k>=0&&(i.lastTick=y),i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0)}i.options.time.displayFormat&&(i.displayFormat=i.options.time.displayFormat),i.ticks.push(i.firstTick.clone());for(var S=1;S<=i.scaleSizeInUnits;++S){var w=x.clone().add(S,i.tickUnit);if(i.options.time.max&&w.diff(i.lastTick,i.tickUnit,!0)>=0)break;S%i.unitScale===0&&i.ticks.push(w)}var C=i.ticks[i.ticks.length-1].diff(i.lastTick,i.tickUnit);(0!==C||0===i.scaleSizeInUnits)&&(i.options.time.max?(i.ticks.push(i.lastTick.clone()),i.scaleSizeInUnits=i.lastTick.diff(i.ticks[0],i.tickUnit,!0)):(i.ticks.push(i.lastTick.clone()),i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0))),i.ctx.restore()},getLabelForIndex:function(t,e){var a=this,i=a.chart.data.labels&&t<a.chart.data.labels.length?a.chart.data.labels[t]:"";return"object"==typeof a.chart.data.datasets[e].data[0]&&(i=a.getRightValue(a.chart.data.datasets[e].data[t])),a.options.time.tooltipFormat&&(i=a.parseTime(i).format(a.options.time.tooltipFormat)),i},tickFormatFunction:function(t,a,i){var n=t.format(this.displayFormat),o=this.options.ticks,r=e.getValueOrDefault(o.callback,o.userCallback);return r?r(n,a,i):n},convertTicksToLabels:function(){var t=this;t.tickMoments=t.ticks,t.ticks=t.ticks.map(t.tickFormatFunction,t)},getPixelForValue:function(t,e,a){var i=this;t&&t.isValid||(t=i.parseTime(i.getRightValue(t)));var n=t&&t.isValid&&t.isValid()?t:i.getLabelMoment(a,e);if(n){var o=n.diff(i.firstTick,i.tickUnit,!0),r=0!==o?o/i.scaleSizeInUnits:o;if(i.isHorizontal()){var l=i.width-(i.paddingLeft+i.paddingRight),s=l*r+i.paddingLeft;return i.left+Math.round(s)}var d=i.height-(i.paddingTop+i.paddingBottom),u=d*r+i.paddingTop;return i.top+Math.round(u)}},getPixelForTick:function(t){return this.getPixelForValue(this.tickMoments[t],null,null)},getValueForPixel:function(t){var e=this,a=e.isHorizontal()?e.width-(e.paddingLeft+e.paddingRight):e.height-(e.paddingTop+e.paddingBottom),n=(t-(e.isHorizontal()?e.left+e.paddingLeft:e.top+e.paddingTop))/a;return n*=e.scaleSizeInUnits,e.firstTick.clone().add(i.duration(n,e.tickUnit).asSeconds(),"seconds")},parseTime:function(t){var e=this;return"string"==typeof e.options.time.parser?i(t,e.options.time.parser):"function"==typeof e.options.time.parser?e.options.time.parser(t):"function"==typeof t.getMonth||"number"==typeof t?i(t):t.isValid&&t.isValid()?t:"string"!=typeof e.options.time.format&&e.options.time.format.call?(console.warn("options.time.format is deprecated and replaced by options.time.parser. See http://nnnick.github.io/Chart.js/docs-v2/#scales-time-scale"),e.options.time.format(t)):i(t,e.options.time.format)}});t.scaleService.registerScaleType("time",o,n)}},{1:1}]},{},[7])(7)});';
+},763:function(t,e,i){i(430),t.exports=i(431)}},[763]);
\ No newline at end of file
diff --git a/demo/Angular2_Demo/scripts.8c9efe9ca9e73edd6f76.bundle.js.gz b/demo/Angular2_Demo/scripts.8c9efe9ca9e73edd6f76.bundle.js.gz
new file mode 100644
index 0000000000000000000000000000000000000000..064f0f7e4d99eb51f5a93074b992c44be15eef8b
Binary files /dev/null and b/demo/Angular2_Demo/scripts.8c9efe9ca9e73edd6f76.bundle.js.gz differ
diff --git a/demo/Angular2_Demo/scss/bootstrap/_alert.scss b/demo/Angular2_Demo/scss/bootstrap/_alert.scss
deleted file mode 100755
index 55fc101dc2771ba2771367406bd74d87eadfef61..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_alert.scss
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// Base styles
-//
-
-.alert {
-  padding: $alert-padding;
-  margin-bottom: $spacer-y;
-  border: $alert-border-width solid transparent;
-  @include border-radius($alert-border-radius);
-}
-
-// Headings for larger alerts
-.alert-heading {
-  // Specified to prevent conflicts of changing $headings-color
-  color: inherit;
-}
-
-// Provide class for links that match alerts
-.alert-link {
-  font-weight: $alert-link-font-weight;
-}
-
-
-// Dismissible alerts
-//
-// Expand the right padding and account for the close button's positioning.
-
-.alert-dismissible {
-  padding-right: ($alert-padding + 20px);
-
-  // Adjust close link position
-  .close {
-    position: relative;
-    top: -2px;
-    right: -21px;
-    color: inherit;
-  }
-}
-
-
-// Alternate styles
-//
-// Generate contextual modifier classes for colorizing the alert.
-
-.alert-success {
-  @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
-}
-.alert-info {
-  @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
-}
-.alert-warning {
-  @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
-}
-.alert-danger {
-  @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_animation.scss b/demo/Angular2_Demo/scss/bootstrap/_animation.scss
deleted file mode 100755
index edd7147e51e084061ae19e8ae0b3125f20156813..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_animation.scss
+++ /dev/null
@@ -1,27 +0,0 @@
-.fade {
-  opacity: 0;
-  transition: opacity .15s linear;
-
-  &.in {
-    opacity: 1;
-  }
-}
-
-.collapse {
-  display: none;
-
-  &.in {
-    display: block;
-  }
-  // tr&.in    { display: table-row; }
-  // tbody&.in { display: table-row-group; }
-}
-
-.collapsing {
-  position: relative;
-  height: 0;
-  overflow: hidden;
-  transition-timing-function: ease;
-  transition-duration: .35s;
-  transition-property: height;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_breadcrumb.scss b/demo/Angular2_Demo/scss/bootstrap/_breadcrumb.scss
deleted file mode 100755
index 1a09bba20a993cdb339d9329e21b83353ee9144b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_breadcrumb.scss
+++ /dev/null
@@ -1,38 +0,0 @@
-.breadcrumb {
-  padding: $breadcrumb-padding-y $breadcrumb-padding-x;
-  margin-bottom: $spacer-y;
-  list-style: none;
-  background-color: $breadcrumb-bg;
-  @include border-radius($border-radius);
-  @include clearfix;
-}
-
-.breadcrumb-item {
-  float: left;
-
-  // The separator between breadcrumbs (by default, a forward-slash: "/")
-  + .breadcrumb-item::before {
-    display: inline-block; // Suppress underlining of the separator in modern browsers
-    padding-right: $breadcrumb-item-padding;
-    padding-left: $breadcrumb-item-padding;
-    color: $breadcrumb-divider-color;
-    content: "#{$breadcrumb-divider}";
-  }
-
-  // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built
-  // without `<ul>`s. The `::before` pseudo-element generates an element
-  // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.
-  //
-  // To trick IE into suppressing the underline, we give the pseudo-element an
-  // underline and then immediately remove it.
-  + .breadcrumb-item:hover::before {
-    text-decoration: underline;
-  }
-  + .breadcrumb-item:hover::before {
-    text-decoration: none;
-  }
-
-  &.active {
-    color: $breadcrumb-active-color;
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_button-group.scss b/demo/Angular2_Demo/scss/bootstrap/_button-group.scss
deleted file mode 100755
index 60e9f7a7441fb2f6184bfb84d84dc663f32cad75..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_button-group.scss
+++ /dev/null
@@ -1,234 +0,0 @@
-// scss-lint:disable QualifyingElement
-
-// Make the div behave like a button
-.btn-group,
-.btn-group-vertical {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle; // match .btn alignment given font-size hack above
-
-  > .btn {
-    position: relative;
-    float: left;
-
-    // Bring the "active" button to the front
-    &:focus,
-    &:active,
-    &.active {
-      z-index: 2;
-    }
-    @include hover {
-      z-index: 2;
-    }
-  }
-}
-
-// Prevent double borders when buttons are next to each other
-.btn-group {
-  .btn + .btn,
-  .btn + .btn-group,
-  .btn-group + .btn,
-  .btn-group + .btn-group {
-    margin-left: -$input-btn-border-width;
-  }
-}
-
-// Optional: Group multiple button groups together for a toolbar
-.btn-toolbar {
-  margin-left: -$btn-toolbar-margin; // Offset the first child's margin
-  @include clearfix();
-
-  .btn-group,
-  .input-group {
-    float: left;
-  }
-
-  > .btn,
-  > .btn-group,
-  > .input-group {
-    margin-left: $btn-toolbar-margin;
-  }
-}
-
-.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
-  border-radius: 0;
-}
-
-// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
-.btn-group > .btn:first-child {
-  margin-left: 0;
-
-  &:not(:last-child):not(.dropdown-toggle) {
-    @include border-right-radius(0);
-  }
-}
-// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
-.btn-group > .btn:last-child:not(:first-child),
-.btn-group > .dropdown-toggle:not(:first-child) {
-  @include border-left-radius(0);
-}
-
-// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
-.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,
-  > .dropdown-toggle {
-    @include border-right-radius(0);
-  }
-}
-.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
-  @include border-left-radius(0);
-}
-
-// On active and open, don't show outline
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
-  outline: 0;
-}
-
-
-// Sizing
-//
-// Remix the default button sizing classes into new ones for easier manipulation.
-
-.btn-group-sm > .btn { @extend .btn-sm; }
-.btn-group-lg > .btn { @extend .btn-lg; }
-
-
-//
-// Split button dropdowns
-//
-
-.btn + .dropdown-toggle-split {
-  padding-right: $btn-padding-x * .75;
-  padding-left: $btn-padding-x * .75;
-
-  &::after {
-    margin-left: 0;
-  }
-}
-
-.btn-sm + .dropdown-toggle-split {
-  padding-right: $btn-padding-x-sm * .75;
-  padding-left: $btn-padding-x-sm * .75;
-}
-
-.btn-lg + .dropdown-toggle-split {
-  padding-right: $btn-padding-x-lg * .75;
-  padding-left: $btn-padding-x-lg * .75;
-}
-
-
-// The clickable button for toggling the menu
-// Remove the gradient and set the same inset shadow as the :active state
-.btn-group.open .dropdown-toggle {
-  @include box-shadow($btn-active-box-shadow);
-
-  // Show no shadow for `.btn-link` since it has no other button styles.
-  &.btn-link {
-    @include box-shadow(none);
-  }
-}
-
-
-// Reposition the caret
-.btn .caret {
-  margin-left: 0;
-}
-// Carets in other button sizes
-.btn-lg .caret {
-  border-width: $caret-width-lg $caret-width-lg 0;
-  border-bottom-width: 0;
-}
-// Upside down carets for .dropup
-.dropup .btn-lg .caret {
-  border-width: 0 $caret-width-lg $caret-width-lg;
-}
-
-
-
-//
-// Vertical button groups
-//
-
-.btn-group-vertical {
-  > .btn,
-  > .btn-group,
-  > .btn-group > .btn {
-    display: block;
-    float: none;
-    width: 100%;
-    max-width: 100%;
-  }
-
-  // Clear floats so dropdown menus can be properly placed
-  > .btn-group {
-    @include clearfix();
-
-    > .btn {
-      float: none;
-    }
-  }
-
-  > .btn + .btn,
-  > .btn + .btn-group,
-  > .btn-group + .btn,
-  > .btn-group + .btn-group {
-    margin-top: -$input-btn-border-width;
-    margin-left: 0;
-  }
-}
-
-.btn-group-vertical > .btn {
-  &:not(:first-child):not(:last-child) {
-    border-radius: 0;
-  }
-  &:first-child:not(:last-child) {
-    @include border-bottom-radius(0);
-  }
-  &:last-child:not(:first-child) {
-    @include border-top-radius(0);
-  }
-}
-.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,
-  > .dropdown-toggle {
-    @include border-bottom-radius(0);
-  }
-}
-.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
-  @include border-top-radius(0);
-}
-
-
-// Checkbox and radio options
-//
-// In order to support the browser's form validation feedback, powered by the
-// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
-// `display: none;` or `visibility: hidden;` as that also hides the popover.
-// Simply visually hiding the inputs via `opacity` would leave them clickable in
-// certain cases which is prevented by using `clip` and `pointer-events`.
-// This way, we ensure a DOM element is visible to position the popover from.
-//
-// See https://github.com/twbs/bootstrap/pull/12794 and
-// https://github.com/twbs/bootstrap/pull/14559 for more information.
-
-[data-toggle="buttons"] {
-  > .btn,
-  > .btn-group > .btn {
-    input[type="radio"],
-    input[type="checkbox"] {
-      position: absolute;
-      clip: rect(0,0,0,0);
-      pointer-events: none;
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_buttons.scss b/demo/Angular2_Demo/scss/bootstrap/_buttons.scss
deleted file mode 100755
index 119cf1c0505fc5fea54c78d521b4027bc81b060c..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_buttons.scss
+++ /dev/null
@@ -1,176 +0,0 @@
-// scss-lint:disable QualifyingElement
-
-//
-// Base styles
-//
-
-.btn {
-  display: inline-block;
-  font-weight: $btn-font-weight;
-  line-height: $btn-line-height;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: middle;
-  cursor: pointer;
-  user-select: none;
-  border: $input-btn-border-width solid transparent;
-  @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-border-radius);
-  @include transition(all .2s ease-in-out);
-
-  &,
-  &:active,
-  &.active {
-    &:focus,
-    &.focus {
-      @include tab-focus();
-    }
-  }
-
-  @include hover-focus {
-    text-decoration: none;
-  }
-  &.focus {
-    text-decoration: none;
-  }
-
-  &:active,
-  &.active {
-    background-image: none;
-    outline: 0;
-    @include box-shadow($btn-active-box-shadow);
-  }
-
-  &.disabled,
-  &:disabled {
-    cursor: $cursor-disabled;
-    opacity: .65;
-    @include box-shadow(none);
-  }
-}
-
-// Future-proof disabling of clicks on `<a>` elements
-a.btn.disabled,
-fieldset[disabled] a.btn {
-  pointer-events: none;
-}
-
-
-//
-// Alternate buttons
-//
-
-.btn-primary {
-  @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
-}
-.btn-secondary {
-  @include button-variant($btn-secondary-color, $btn-secondary-bg, $btn-secondary-border);
-}
-.btn-info {
-  @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
-}
-.btn-success {
-  @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
-}
-.btn-warning {
-  @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
-}
-.btn-danger {
-  @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
-}
-
-// Remove all backgrounds
-.btn-outline-primary {
-  @include button-outline-variant($btn-primary-bg);
-}
-.btn-outline-secondary {
-  @include button-outline-variant($btn-secondary-border);
-}
-.btn-outline-info {
-  @include button-outline-variant($btn-info-bg);
-}
-.btn-outline-success {
-  @include button-outline-variant($btn-success-bg);
-}
-.btn-outline-warning {
-  @include button-outline-variant($btn-warning-bg);
-}
-.btn-outline-danger {
-  @include button-outline-variant($btn-danger-bg);
-}
-
-
-//
-// Link buttons
-//
-
-// Make a button look and behave like a link
-.btn-link {
-  font-weight: normal;
-  color: $link-color;
-  border-radius: 0;
-
-  &,
-  &:active,
-  &.active,
-  &:disabled {
-    background-color: transparent;
-    @include box-shadow(none);
-  }
-  &,
-  &:focus,
-  &:active {
-    border-color: transparent;
-  }
-  @include hover {
-    border-color: transparent;
-  }
-  @include hover-focus {
-    color: $link-hover-color;
-    text-decoration: $link-hover-decoration;
-    background-color: transparent;
-  }
-  &:disabled {
-    @include hover-focus {
-      color: $btn-link-disabled-color;
-      text-decoration: none;
-    }
-  }
-}
-
-
-//
-// Button Sizes
-//
-
-.btn-lg {
-  // line-height: ensure even-numbered height of button next to large input
-  @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-border-radius-lg);
-}
-.btn-sm {
-  // line-height: ensure proper height of button next to small input
-  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-border-radius-sm);
-}
-
-
-//
-// Block button
-//
-
-.btn-block {
-  display: block;
-  width: 100%;
-}
-
-// Vertically space out multiple block buttons
-.btn-block + .btn-block {
-  margin-top: $btn-block-spacing-y;
-}
-
-// Specificity overrides
-input[type="submit"],
-input[type="reset"],
-input[type="button"] {
-  &.btn-block {
-    width: 100%;
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_card.scss b/demo/Angular2_Demo/scss/bootstrap/_card.scss
deleted file mode 100755
index a419d4d08d4b7766da98b0a89cfab782a5659165..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_card.scss
+++ /dev/null
@@ -1,321 +0,0 @@
-//
-// Base styles
-//
-
-.card {
-  position: relative;
-  display: block;
-  margin-bottom: $card-spacer-y;
-  background-color: $card-bg;
-  // border: $card-border-width solid $card-border-color;
-  @include border-radius($card-border-radius);
-  border: $card-border-width solid $card-border-color;
-}
-
-.card-block {
-  @include clearfix;
-  padding: $card-spacer-x;
-}
-
-.card-title {
-  margin-bottom: $card-spacer-y;
-}
-
-.card-subtitle {
-  margin-top: -($card-spacer-y / 2);
-  margin-bottom: 0;
-}
-
-.card-text:last-child {
-  margin-bottom: 0;
-}
-
-// .card-actions {
-//   padding: $card-spacer-y $card-spacer-x;
-
-//   .card-link + .card-link {
-//     margin-left: $card-spacer-x;
-//   }
-// }
-
-.card-link {
-  @include hover {
-    text-decoration: none;
-  }
-
-  + .card-link {
-    margin-left: $card-spacer-x;
-  }
-}
-
-.card {
-  > .list-group:first-child {
-    .list-group-item:first-child {
-      @include border-top-radius($card-border-radius);
-    }
-  }
-
-  > .list-group:last-child {
-    .list-group-item:last-child {
-      @include border-bottom-radius($card-border-radius);
-    }
-  }
-}
-
-
-//
-// Optional textual caps
-//
-
-.card-header {
-  @include clearfix;
-  padding: $card-spacer-y $card-spacer-x;
-  background-color: $card-cap-bg;
-  border-bottom: $card-border-width solid $card-border-color;
-
-  &:first-child {
-    @include border-radius($card-border-radius-inner $card-border-radius-inner 0 0);
-  }
-}
-
-.card-footer {
-  @include clearfix;
-  padding: $card-spacer-y $card-spacer-x;
-  background-color: $card-cap-bg;
-  border-top: $card-border-width solid $card-border-color;
-
-  &:last-child {
-    @include border-radius(0 0 $card-border-radius-inner $card-border-radius-inner);
-  }
-}
-
-
-//
-// Header navs
-//
-
-.card-header-tabs {
-  margin-right: -($card-spacer-x / 2);
-  margin-bottom: -$card-spacer-y;
-  margin-left: -($card-spacer-x / 2);
-  border-bottom: 0;
-}
-
-.card-header-pills {
-  margin-right: -($card-spacer-x / 2);
-  margin-left: -($card-spacer-x / 2);
-}
-
-
-//
-// Background variations
-//
-
-.card-primary {
-  @include card-variant($brand-primary, $brand-primary);
-}
-.card-success {
-  @include card-variant($brand-success, $brand-success);
-}
-.card-info {
-  @include card-variant($brand-info, $brand-info);
-}
-.card-warning {
-  @include card-variant($brand-warning, $brand-warning);
-}
-.card-danger {
-  @include card-variant($brand-danger, $brand-danger);
-}
-
-// Remove all backgrounds
-.card-outline-primary {
-  @include card-outline-variant($btn-primary-bg);
-}
-.card-outline-secondary {
-  @include card-outline-variant($btn-secondary-border);
-}
-.card-outline-info {
-  @include card-outline-variant($btn-info-bg);
-}
-.card-outline-success {
-  @include card-outline-variant($btn-success-bg);
-}
-.card-outline-warning {
-  @include card-outline-variant($btn-warning-bg);
-}
-.card-outline-danger {
-  @include card-outline-variant($btn-danger-bg);
-}
-
-//
-// Inverse text within a card for use with dark backgrounds
-//
-
-.card-inverse {
-  @include card-inverse;
-}
-
-//
-// Blockquote
-//
-
-.card-blockquote {
-  padding: 0;
-  margin-bottom: 0;
-  border-left: 0;
-}
-
-// Card image
-.card-img {
-  // margin: -1.325rem;
-  @include border-radius(.25rem);
-}
-.card-img-overlay {
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  padding: $card-img-overlay-padding;
-}
-
-
-
-// Card image caps
-.card-img-top {
-  @include border-top-radius($card-border-radius-inner);
-}
-.card-img-bottom {
-  @include border-bottom-radius($card-border-radius-inner);
-}
-
-
-// Card set
-//
-// Heads up! We do some funky style resetting here for margins across our two
-// variations (one flex, one table). Individual cards have margin-bottom by
-// default, but they're ignored due to table styles. For a consistent design,
-// we've done the same to the flex variation.
-//
-// Those changes are noted by `// Margin balancing`.
-
-@if $enable-flex {
-  @include media-breakpoint-up(sm) {
-    .card-deck {
-      display: flex;
-      flex-flow: row wrap;
-      margin-right: -$card-deck-margin;
-      margin-bottom: $card-spacer-y; // Margin balancing
-      margin-left: -$card-deck-margin;
-
-      .card {
-        flex: 1 0 0;
-        margin-right: $card-deck-margin;
-        margin-bottom: 0; // Margin balancing
-        margin-left: $card-deck-margin;
-      }
-    }
-  }
-} @else {
-  @include media-breakpoint-up(sm) {
-    $space-between-cards: (2 * $card-deck-margin);
-    .card-deck {
-      display: table;
-      width: 100%;
-      margin-bottom: $card-spacer-y; // Margin balancing
-      table-layout: fixed;
-      border-spacing: $space-between-cards 0;
-
-      .card {
-        display: table-cell;
-        margin-bottom: 0; // Margin balancing
-        vertical-align: top;
-      }
-    }
-    .card-deck-wrapper {
-      margin-right: (-$space-between-cards);
-      margin-left: (-$space-between-cards);
-    }
-  }
-}
-
-//
-// Card groups
-//
-
-@include media-breakpoint-up(sm) {
-  .card-group {
-    @if $enable-flex {
-      display: flex;
-      flex-flow: row wrap;
-    } @else {
-      display: table;
-      width: 100%;
-      table-layout: fixed;
-    }
-
-    .card {
-      @if $enable-flex {
-        flex: 1 0 0;
-      } @else {
-        display: table-cell;
-        vertical-align: top;
-      }
-
-      + .card {
-        margin-left: 0;
-        border-left: 0;
-      }
-
-      // Handle rounded corners
-      @if $enable-rounded {
-        &:first-child {
-          @include border-right-radius(0);
-
-          .card-img-top {
-            border-top-right-radius: 0;
-          }
-          .card-img-bottom {
-            border-bottom-right-radius: 0;
-          }
-        }
-        &:last-child {
-          @include border-left-radius(0);
-
-          .card-img-top {
-            border-top-left-radius: 0;
-          }
-          .card-img-bottom {
-            border-bottom-left-radius: 0;
-          }
-        }
-
-        &:not(:first-child):not(:last-child) {
-          border-radius: 0;
-
-          .card-img-top,
-          .card-img-bottom {
-            border-radius: 0;
-          }
-        }
-      }
-    }
-  }
-}
-
-
-//
-// Card
-//
-
-@include media-breakpoint-up(sm) {
-  .card-columns {
-    column-count: 3;
-    column-gap: $card-columns-sm-up-column-gap;
-
-    .card {
-      display: inline-block;
-      width: 100%; // Don't let them exceed the column width
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_carousel.scss b/demo/Angular2_Demo/scss/bootstrap/_carousel.scss
deleted file mode 100755
index 9386983d177d404b4f3810e2a3f074b49e0ef694..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_carousel.scss
+++ /dev/null
@@ -1,253 +0,0 @@
-// Wrapper for the slide container and indicators
-.carousel {
-  position: relative;
-}
-
-.carousel-inner {
-  position: relative;
-  width: 100%;
-  overflow: hidden;
-
-  > .carousel-item {
-    position: relative;
-    display: none;
-    transition: .6s ease-in-out left;
-
-    // Account for jankitude on images
-    > img,
-    > a > img {
-      @extend .img-fluid;
-      line-height: 1;
-    }
-
-    // WebKit CSS3 transforms for supported devices
-    @media all and (transform-3d), (-webkit-transform-3d) {
-      transition: transform .6s ease-in-out;
-      backface-visibility: hidden;
-      perspective: 1000px;
-
-      &.next,
-      &.active.right {
-        left: 0;
-        transform: translate3d(100%, 0, 0);
-      }
-      &.prev,
-      &.active.left {
-        left: 0;
-        transform: translate3d(-100%, 0, 0);
-      }
-      &.next.left,
-      &.prev.right,
-      &.active {
-        left: 0;
-        transform: translate3d(0, 0, 0);
-      }
-    }
-  }
-
-  > .active,
-  > .next,
-  > .prev {
-    display: block;
-  }
-
-  > .active {
-    left: 0;
-  }
-
-  > .next,
-  > .prev {
-    position: absolute;
-    top: 0;
-    width: 100%;
-  }
-
-  > .next {
-    left: 100%;
-  }
-  > .prev {
-    left: -100%;
-  }
-  > .next.left,
-  > .prev.right {
-    left: 0;
-  }
-
-  > .active.left {
-    left: -100%;
-  }
-  > .active.right {
-    left: 100%;
-  }
-}
-
-
-//
-// Left/right controls for nav
-//
-
-.carousel-control {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  width: $carousel-control-width;
-  font-size: $carousel-control-font-size;
-  color: $carousel-control-color;
-  text-align: center;
-  text-shadow: $carousel-text-shadow;
-  opacity: $carousel-control-opacity;
-  // We can't have this transition here because WebKit cancels the carousel
-  // animation if you trip this while in the middle of another animation.
-
-  // Set gradients for backgrounds
-  &.left {
-    @include gradient-x($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001));
-  }
-  &.right {
-    right: 0;
-    left: auto;
-    @include gradient-x($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5));
-  }
-
-  // Hover/focus state
-  @include hover-focus {
-    color: $carousel-control-color;
-    text-decoration: none;
-    outline: 0;
-    opacity: .9;
-  }
-
-  // Toggles
-  .icon-prev,
-  .icon-next {
-    position: absolute;
-    top: 50%;
-    z-index: 5;
-    display: inline-block;
-    width: $carousel-icon-width;
-    height: $carousel-icon-width;
-    margin-top: -($carousel-icon-width / 2);
-    font-family: serif;
-    line-height: 1;
-  }
-  .icon-prev {
-    left: 50%;
-    margin-left: -($carousel-icon-width / 2);
-  }
-  .icon-next {
-    right: 50%;
-    margin-right: -($carousel-icon-width / 2);
-  }
-
-  .icon-prev {
-    &::before {
-      content: "\2039";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
-    }
-  }
-  .icon-next {
-    &::before {
-      content: "\203a";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
-    }
-  }
-}
-
-
-// Optional indicator pips
-//
-// Add an unordered list with the following class and add a list item for each
-// slide your carousel holds.
-
-.carousel-indicators {
-  position: absolute;
-  bottom: 10px;
-  left: 50%;
-  z-index: 15;
-  width: $carousel-indicators-width;
-  padding-left: 0;
-  margin-left: -($carousel-indicators-width / 2);
-  text-align: center;
-  list-style: none;
-
-  li {
-    display: inline-block;
-    width: $carousel-indicator-size;
-    height: $carousel-indicator-size;
-    margin: 1px;
-    text-indent: -999px;
-    cursor: pointer;
-    // IE9 hack for event handling
-    //
-    // Internet Explorer 9 does not properly handle clicks on elements with a `background-color` of `transparent`,
-    // so we use `rgba(0,0,0,0)` instead since it's a non-buggy equivalent.
-    // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer
-    background-color: rgba(0,0,0,0); // IE9
-    border: 1px solid $carousel-indicator-border-color;
-    border-radius: $carousel-indicator-size;
-  }
-
-  .active {
-    width: $carousel-indicator-active-size;
-    height: $carousel-indicator-active-size;
-    margin: 0;
-    background-color: $carousel-indicator-active-bg;
-  }
-}
-
-
-// Optional captions
-//
-// Hidden by default for smaller viewports.
-
-.carousel-caption {
-  position: absolute;
-  right: ((100% - $carousel-caption-width) / 2);
-  bottom: 20px;
-  left: ((100% - $carousel-caption-width) / 2);
-  z-index: 10;
-  padding-top: 20px;
-  padding-bottom: 20px;
-  color: $carousel-caption-color;
-  text-align: center;
-  text-shadow: $carousel-text-shadow;
-
-  .btn {
-    text-shadow: none; // No shadow for button elements in carousel-caption
-  }
-}
-
-
-//
-// Responsive variations
-//
-
-@include media-breakpoint-up(sm) {
-  // Scale up the controls a smidge
-  .carousel-control {
-    .icon-prev,
-    .icon-next {
-      width: $carousel-control-sm-up-size;
-      height: $carousel-control-sm-up-size;
-      margin-top: -($carousel-control-sm-up-size / 2);
-      font-size: $carousel-control-sm-up-size;
-    }
-    .icon-prev {
-      margin-left: -($carousel-control-sm-up-size / 2);
-    }
-    .icon-next {
-      margin-right: -($carousel-control-sm-up-size / 2);
-    }
-  }
-
-  // Show and left align the captions
-  .carousel-caption {
-    right: ((100% - $carousel-caption-sm-up-width) / 2);
-    left: ((100% - $carousel-caption-sm-up-width) / 2);
-    padding-bottom: 30px;
-  }
-
-  // Move up the indicators
-  .carousel-indicators {
-    bottom: 20px;
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_close.scss b/demo/Angular2_Demo/scss/bootstrap/_close.scss
deleted file mode 100755
index f98d4c1dc00351293a232a1c4fed1fdda23ae23f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_close.scss
+++ /dev/null
@@ -1,31 +0,0 @@
-.close {
-  float: right;
-  font-size: ($font-size-base * 1.5);
-  font-weight: $close-font-weight;
-  line-height: 1;
-  color: $close-color;
-  text-shadow: $close-text-shadow;
-  opacity: .2;
-
-  @include hover-focus {
-    color: $close-color;
-    text-decoration: none;
-    cursor: pointer;
-    opacity: .5;
-  }
-}
-
-// Additional properties for button version
-// iOS requires the button element instead of an anchor tag.
-// If you want the anchor version, it requires `href="#"`.
-// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
-
-// scss-lint:disable QualifyingElement
-button.close {
-  padding: 0;
-  cursor: pointer;
-  background: transparent;
-  border: 0;
-  -webkit-appearance: none;
-}
-// scss-lint:enable QualifyingElement
diff --git a/demo/Angular2_Demo/scss/bootstrap/_code.scss b/demo/Angular2_Demo/scss/bootstrap/_code.scss
deleted file mode 100755
index ea660bcdbfda17800f671558acdafc9816f5cebd..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_code.scss
+++ /dev/null
@@ -1,57 +0,0 @@
-// Inline and block code styles
-code,
-kbd,
-pre,
-samp {
-  font-family: $font-family-monospace;
-}
-
-// Inline code
-code {
-  padding: $code-padding-y $code-padding-x;
-  font-size: $code-font-size;
-  color: $code-color;
-  background-color: $code-bg;
-  @include border-radius($border-radius);
-}
-
-// User input typically entered via keyboard
-kbd {
-  padding: $code-padding-y $code-padding-x;
-  font-size: $code-font-size;
-  color: $kbd-color;
-  background-color: $kbd-bg;
-  @include border-radius($border-radius-sm);
-  @include box-shadow($kbd-box-shadow);
-
-  kbd {
-    padding: 0;
-    font-size: 100%;
-    font-weight: $nested-kbd-font-weight;
-    @include box-shadow(none);
-  }
-}
-
-// Blocks of code
-pre {
-  display: block;
-  margin-top: 0;
-  margin-bottom: 1rem;
-  font-size: $code-font-size;
-  color: $pre-color;
-
-  // Account for some code outputs that place code tags in pre tags
-  code {
-    padding: 0;
-    font-size: inherit;
-    color: inherit;
-    background-color: transparent;
-    border-radius: 0;
-  }
-}
-
-// Enable scrollable blocks of code
-.pre-scrollable {
-  max-height: $pre-scrollable-max-height;
-  overflow-y: scroll;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_custom-forms.scss b/demo/Angular2_Demo/scss/bootstrap/_custom-forms.scss
deleted file mode 100755
index a5f0bdfc48935f69ea4516eae4a62310723efef6..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_custom-forms.scss
+++ /dev/null
@@ -1,265 +0,0 @@
-// scss-lint:disable PropertyCount
-
-// Embedded icons from Open Iconic.
-// Released under MIT and copyright 2014 Waybury.
-// http://useiconic.com/open
-
-
-// Checkboxes and radios
-//
-// Base class takes care of all the key behavioral aspects.
-
-.custom-control {
-  position: relative;
-  display: inline;
-  padding-left: $custom-control-gutter;
-  cursor: pointer;
-
-  + .custom-control {
-    margin-left: $custom-control-spacer-x;
-  }
-}
-
-.custom-control-input {
-  position: absolute;
-  z-index: -1; // Put the input behind the label so it doesn't overlay text
-  opacity: 0;
-
-  &:checked ~ .custom-control-indicator {
-    color: $custom-control-checked-indicator-color;
-    background-color: $custom-control-checked-indicator-bg;
-    @include box-shadow($custom-control-checked-indicator-box-shadow);
-  }
-
-  &:focus ~ .custom-control-indicator {
-    // the mixin is not used here to make sure there is feedback
-    box-shadow: $custom-control-focus-indicator-box-shadow;
-  }
-
-  &:active ~ .custom-control-indicator {
-    color: $custom-control-active-indicator-color;
-    background-color: $custom-control-active-indicator-bg;
-    @include box-shadow($custom-control-active-indicator-box-shadow);
-  }
-
-  &:disabled {
-    ~ .custom-control-indicator {
-      cursor: $custom-control-disabled-cursor;
-      background-color: $custom-control-disabled-indicator-bg;
-    }
-
-    ~ .custom-control-description {
-      color: $custom-control-disabled-description-color;
-      cursor: $custom-control-disabled-cursor;
-    }
-  }
-}
-
-// Custom indicator
-//
-// Generates a shadow element to create our makeshift checkbox/radio background.
-
-.custom-control-indicator {
-  position: absolute;
-  top: .0625rem;
-  left: 0;
-  display: block;
-  width: $custom-control-indicator-size;
-  height: $custom-control-indicator-size;
-  pointer-events: none;
-  user-select: none;
-  background-color: $custom-control-indicator-bg;
-  background-repeat: no-repeat;
-  background-position: center center;
-  background-size: $custom-control-indicator-bg-size;
-  @include box-shadow($custom-control-indicator-box-shadow);
-}
-
-// Checkboxes
-//
-// Tweak just a few things for checkboxes.
-
-.custom-checkbox {
-  .custom-control-indicator {
-    @include border-radius($custom-checkbox-radius);
-  }
-
-  .custom-control-input:checked ~ .custom-control-indicator {
-    background-image: $custom-checkbox-checked-icon;
-  }
-
-  .custom-control-input:indeterminate ~ .custom-control-indicator {
-    background-color: $custom-checkbox-indeterminate-bg;
-    background-image: $custom-checkbox-indeterminate-icon;
-    @include box-shadow($custom-checkbox-indeterminate-box-shadow);
-  }
-}
-
-// Radios
-//
-// Tweak just a few things for radios.
-
-.custom-radio {
-  .custom-control-indicator {
-    border-radius: $custom-radio-radius;
-  }
-
-  .custom-control-input:checked ~ .custom-control-indicator {
-    background-image: $custom-radio-checked-icon;
-  }
-}
-
-
-// Layout options
-//
-// By default radios and checkboxes are `inline-block` with no additional spacing
-// set. Use these optional classes to tweak the layout.
-
-.custom-controls-stacked {
-  .custom-control {
-    display: inline;
-
-    &::after {
-      display: block;
-      margin-bottom: $custom-control-spacer-y;
-      content: "";
-    }
-
-    + .custom-control {
-      margin-left: 0;
-    }
-  }
-}
-
-
-// Select
-//
-// Replaces the browser default select with a custom one, mostly pulled from
-// http://primercss.io.
-//
-// Includes IE9-specific hacks (noted by ` \9`).
-
-.custom-select {
-  display: inline-block;
-  max-width: 100%;
-  padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;
-  padding-right: $custom-select-padding-x \9;
-  color: $custom-select-color;
-  vertical-align: middle;
-  background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center;
-  background-image: none \9;
-  background-size: $custom-select-bg-size;
-  border: $custom-select-border-width solid $custom-select-border-color;
-  @include border-radius($custom-select-border-radius);
-  // Use vendor prefixes as `appearance` isn't part of the CSS spec.
-  -moz-appearance: none;
-  -webkit-appearance: none;
-
-  &:focus {
-    border-color: $custom-select-focus-border-color;
-    outline: none;
-    @include box-shadow($custom-select-focus-box-shadow);
-
-    &::-ms-value {
-      // For visual consistency with other platforms/browsers,
-      // supress the default white text on blue background highlight given to
-      // the selected option text when the (still closed) <select> receives focus
-      // in IE and (under certain conditions) Edge.
-      // See https://github.com/twbs/bootstrap/issues/19398.
-      color: $input-color;
-      background-color: $input-bg;
-    }
-  }
-
-  &:disabled {
-    color: $custom-select-disabled-color;
-    cursor: $cursor-disabled;
-    background-color: $custom-select-disabled-bg;
-  }
-
-  // Hides the default caret in IE11
-  &::-ms-expand {
-    opacity: 0;
-  }
-}
-
-.custom-select-sm {
-  padding-top: $custom-select-padding-y;
-  padding-bottom: $custom-select-padding-y;
-  font-size: $custom-select-sm-font-size;
-
-  // &:not([multiple]) {
-  //   height: 26px;
-  //   min-height: 26px;
-  // }
-}
-
-
-// File
-//
-// Custom file input.
-
-.custom-file {
-  position: relative;
-  display: inline-block;
-  max-width: 100%;
-  height: $custom-file-height;
-  cursor: pointer;
-}
-
-.custom-file-input {
-  min-width: $custom-file-width;
-  max-width: 100%;
-  margin: 0;
-  filter: alpha(opacity = 0);
-  opacity: 0;
-
-  &:focus ~ .custom-file-control {
-    @include box-shadow($custom-file-focus-box-shadow);
-  }
-}
-
-.custom-file-control {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  z-index: 5;
-  height: $custom-file-height;
-  padding: $custom-file-padding-x $custom-file-padding-y;
-  line-height: $custom-file-line-height;
-  color: $custom-file-color;
-  user-select: none;
-  background-color: $custom-file-bg;
-  border: $custom-file-border-width solid $custom-file-border-color;
-  @include border-radius($custom-file-border-radius);
-  @include box-shadow($custom-file-box-shadow);
-
-  @each $lang, $text in map-get($custom-file-text, placeholder) {
-    &:lang(#{$lang})::after {
-      content: $text;
-    }
-  }
-
-  &::before {
-    position: absolute;
-    top: -$custom-file-border-width;
-    right: -$custom-file-border-width;
-    bottom: -$custom-file-border-width;
-    z-index: 6;
-    display: block;
-    height: $custom-file-height;
-    padding: $custom-file-padding-x $custom-file-padding-y;
-    line-height: $custom-file-line-height;
-    color: $custom-file-button-color;
-    background-color: $custom-file-button-bg;
-    border: $custom-file-border-width solid $custom-file-border-color;
-    @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);
-  }
-
-  @each $lang, $text in map-get($custom-file-text, button-label) {
-    &:lang(#{$lang})::before {
-      content: $text;
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_custom.scss b/demo/Angular2_Demo/scss/bootstrap/_custom.scss
deleted file mode 100755
index 88ccf202e4462a04df892f8558b127f083ae55a8..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_custom.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-// Bootstrap overrides
-//
-// Copy variables from `_variables.scss` to this file to override default values
-// without modifying source files.
diff --git a/demo/Angular2_Demo/scss/bootstrap/_dropdown.scss b/demo/Angular2_Demo/scss/bootstrap/_dropdown.scss
deleted file mode 100755
index e696d28bef6fcd4f90705c55282710a1ef6970d2..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_dropdown.scss
+++ /dev/null
@@ -1,179 +0,0 @@
-// The dropdown wrapper (`<div>`)
-.dropup,
-.dropdown {
-  position: relative;
-}
-
-.dropdown-toggle {
-  // Generate the caret automatically
-  &::after {
-    display: inline-block;
-    width: 0;
-    height: 0;
-    margin-left: $caret-width;
-    vertical-align: middle;
-    content: "";
-    border-top: $caret-width solid;
-    border-right: $caret-width solid transparent;
-    border-left: $caret-width solid transparent;
-  }
-
-  // Prevent the focus on the dropdown toggle when closing dropdowns
-  &:focus {
-    outline: 0;
-  }
-}
-
-.dropup {
-  .dropdown-toggle {
-    &::after {
-      border-top: 0;
-      border-bottom: $caret-width solid;
-    }
-  }
-}
-
-// The dropdown menu
-.dropdown-menu {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: $zindex-dropdown;
-  display: none; // none by default, but block on "open" of the menu
-  float: left;
-  min-width: $dropdown-min-width;
-  padding: $dropdown-padding-y 0;
-  margin: $dropdown-margin-top 0 0; // override default ul
-  font-size: $font-size-base;
-  color: $body-color;
-  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
-  list-style: none;
-  background-color: $dropdown-bg;
-  background-clip: padding-box;
-  border: $dropdown-border-width solid $dropdown-border-color;
-  @include border-radius($border-radius);
-  @include box-shadow($dropdown-box-shadow);
-}
-
-// Dividers (basically an `<hr>`) within the dropdown
-.dropdown-divider {
-  @include nav-divider($dropdown-divider-bg);
-}
-
-// Links, buttons, and more within the dropdown menu
-//
-// `<button>`-specific styles are denoted with `// For <button>s`
-.dropdown-item {
-  display: block;
-  width: 100%; // For `<button>`s
-  padding: 3px $dropdown-item-padding-x;
-  clear: both;
-  font-weight: normal;
-  color: $dropdown-link-color;
-  text-align: inherit; // For `<button>`s
-  white-space: nowrap; // prevent links from randomly breaking onto new lines
-  background: none; // For `<button>`s
-  border: 0; // For `<button>`s
-
-  @include hover-focus {
-    color: $dropdown-link-hover-color;
-    text-decoration: none;
-    background-color: $dropdown-link-hover-bg;
-  }
-
-  // Active state
-  &.active {
-    @include plain-hover-focus {
-      color: $dropdown-link-active-color;
-      text-decoration: none;
-      background-color: $dropdown-link-active-bg;
-      outline: 0;
-    }
-  }
-
-  // Disabled state
-  //
-  // Gray out text and ensure the hover/focus state remains gray
-  &.disabled {
-    @include plain-hover-focus {
-      color: $dropdown-link-disabled-color;
-    }
-
-    // Nuke hover/focus effects
-    @include hover-focus {
-      text-decoration: none;
-      cursor: $cursor-disabled;
-      background-color: transparent;
-      background-image: none; // Remove CSS gradient
-      @include reset-filter();
-    }
-  }
-}
-
-// Open state for the dropdown
-.open {
-  // Show the menu
-  > .dropdown-menu {
-    display: block;
-  }
-
-  // Remove the outline when :focus is triggered
-  > a {
-    outline: 0;
-  }
-}
-
-// Menu positioning
-//
-// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
-// menu with the parent.
-.dropdown-menu-right {
-  right: 0;
-  left: auto; // Reset the default from `.dropdown-menu`
-}
-
-.dropdown-menu-left {
-  right: auto;
-  left: 0;
-}
-
-// Dropdown section headers
-.dropdown-header {
-  display: block;
-  padding: $dropdown-padding-y $dropdown-item-padding-x;
-  font-size: $font-size-sm;
-  color: $dropdown-header-color;
-  white-space: nowrap; // as with > li > a
-}
-
-// Backdrop to catch body clicks on mobile, etc.
-.dropdown-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: $zindex-dropdown-backdrop;
-}
-
-// Allow for dropdowns to go bottom up (aka, dropup-menu)
-//
-// Just add .dropup after the standard .dropdown class and you're set.
-// TODO: abstract this so that the navbar fixed styles are not placed here?
-
-.dropup,
-.navbar-fixed-bottom .dropdown {
-  // Reverse the caret
-  .caret {
-    content: "";
-    border-top: 0;
-    border-bottom: $caret-width solid;
-  }
-
-  // Different positioning for bottom up menu
-  .dropdown-menu {
-    top: auto;
-    bottom: 100%;
-    margin-bottom: $dropdown-margin-top;
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_forms.scss b/demo/Angular2_Demo/scss/bootstrap/_forms.scss
deleted file mode 100755
index 263a8bc156358c88fbcb8da7454a706283bc23f4..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_forms.scss
+++ /dev/null
@@ -1,364 +0,0 @@
-// scss-lint:disable QualifyingElement
-
-//
-// Textual form controls
-//
-
-.form-control {
-  display: block;
-  width: 100%;
-  // // Make inputs at least the height of their button counterpart (base line-height + padding + border)
-  // height: $input-height;
-  padding: $input-padding-y $input-padding-x;
-  font-size: $font-size-base;
-  line-height: $input-line-height;
-  color: $input-color;
-  background-color: $input-bg;
-  // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214.
-  background-image: none;
-  background-clip: padding-box;
-  border: $input-btn-border-width solid $input-border-color;
-  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
-  @include border-radius($input-border-radius);
-  @include box-shadow($input-box-shadow);
-  @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);
-
-  // Unstyle the caret on `<select>`s in IE10+.
-  &::-ms-expand {
-    background-color: transparent;
-    border: 0;
-  }
-
-  // Customize the `:focus` state to imitate native WebKit styles.
-  @include form-control-focus();
-
-  // Placeholder
-  &::placeholder {
-    color: $input-color-placeholder;
-    // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
-    opacity: 1;
-  }
-
-  // Disabled and read-only inputs
-  //
-  // HTML5 says that controls under a fieldset > legend:first-child won't be
-  // disabled if the fieldset is disabled. Due to implementation difficulty, we
-  // don't honor that edge case; we style them as disabled anyway.
-  &:disabled,
-  &[readonly] {
-    background-color: $input-bg-disabled;
-    // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
-    opacity: 1;
-  }
-
-  &:disabled {
-    cursor: $cursor-disabled;
-  }
-}
-
-select.form-control {
-  &:not([size]):not([multiple]) {
-    height: $input-height;
-  }
-
-  &:focus::-ms-value {
-    // Suppress the nested default white text on blue background highlight given to
-    // the selected option text when the (still closed) <select> receives focus
-    // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to
-    // match the appearance of the native widget.
-    // See https://github.com/twbs/bootstrap/issues/19398.
-    color: $input-color;
-    background-color: $input-bg;
-  }
-}
-
-// Make file inputs better match text inputs by forcing them to new lines.
-.form-control-file,
-.form-control-range {
-  display: block;
-}
-
-
-//
-// Labels
-//
-
-// For use with horizontal and inline forms, when you need the label text to
-// align with the form controls.
-.col-form-label {
-  padding-top: $input-padding-y;
-  padding-bottom: $input-padding-y;
-  margin-bottom: 0; // Override the `<label>` default
-}
-
-.col-form-label-lg {
-  padding-top: $input-padding-y-lg;
-  padding-bottom: $input-padding-y-lg;
-  font-size: $font-size-lg;
-}
-
-.col-form-label-sm {
-  padding-top: $input-padding-y-sm;
-  padding-bottom: $input-padding-y-sm;
-  font-size: $font-size-sm;
-}
-
-
-//
-// Legends
-//
-
-// For use with horizontal and inline forms, when you need the legend text to
-// be the same size as regular labels, and to align with the form controls.
-.col-form-legend {
-  padding-top: $input-padding-y;
-  padding-bottom: $input-padding-y;
-  margin-bottom: 0;
-  font-size: $font-size-base;
-}
-
-
-// Static form control text
-//
-// Apply class to an element to make any string of text align with labels in a
-// horizontal form layout.
-
-.form-control-static {
-  min-height: $input-height;
-  // Size it appropriately next to real form controls
-  padding-top: $input-padding-y;
-  padding-bottom: $input-padding-y;
-  // Remove default margin from `p`
-  margin-bottom: 0;
-
-  &.form-control-sm,
-  &.form-control-lg {
-    padding-right: 0;
-    padding-left: 0;
-  }
-}
-
-
-// Form control sizing
-//
-// Build on `.form-control` with modifier classes to decrease or increase the
-// height and font-size of form controls.
-//
-// The `.form-group-* form-control` variations are sadly duplicated to avoid the
-// issue documented in https://github.com/twbs/bootstrap/issues/15074.
-
-.form-control-sm {
-  padding: $input-padding-y-sm $input-padding-x-sm;
-  font-size: $font-size-sm;
-  @include border-radius($input-border-radius-sm);
-}
-
-select.form-control-sm {
-  &:not([size]):not([multiple]) {
-    height: $input-height-sm;
-  }
-}
-
-.form-control-lg {
-  padding: $input-padding-y-lg $input-padding-x-lg;
-  font-size: $font-size-lg;
-  @include border-radius($input-border-radius-lg);
-}
-
-select.form-control-lg {
-  &:not([size]):not([multiple]) {
-    height: $input-height-lg;
-  }
-}
-
-
-// Form groups
-//
-// Designed to help with the organization and spacing of vertical forms. For
-// horizontal forms, use the predefined grid classes.
-
-.form-group {
-  margin-bottom: $form-group-margin-bottom;
-}
-
-.form-text {
-  display: block;
-  margin-top: ($spacer * .25);
-}
-
-
-// Checkboxes and radios
-//
-// Indent the labels to position radios/checkboxes as hanging controls.
-
-.form-check {
-  position: relative;
-  display: block;
-  margin-bottom: ($spacer * .75);
-
-  // Move up sibling radios or checkboxes for tighter spacing
-  + .form-check {
-    margin-top: -.25rem;
-  }
-
-  &.disabled {
-    .form-check-label {
-      color: $text-muted;
-      cursor: $cursor-disabled;
-    }
-  }
-}
-
-.form-check-label {
-  padding-left: 1.25rem;
-  margin-bottom: 0; // Override default `<label>` bottom margin
-  cursor: pointer;
-}
-
-.form-check-input {
-  position: absolute;
-  margin-top: .25rem;
-  margin-left: -1.25rem;
-
-  &:only-child {
-    position: static;
-  }
-}
-
-// Radios and checkboxes on same line
-.form-check-inline {
-  position: relative;
-  display: inline-block;
-  padding-left: 1.25rem;
-  margin-bottom: 0; // Override default `<label>` bottom margin
-  vertical-align: middle;
-  cursor: pointer;
-
-  + .form-check-inline {
-    margin-left: .75rem;
-  }
-
-  &.disabled {
-    cursor: $cursor-disabled;
-  }
-}
-
-
-// Form control feedback states
-//
-// Apply contextual and semantic states to individual form controls.
-
-.form-control-feedback {
-  margin-top: ($spacer * .25);
-}
-
-.form-control-success,
-.form-control-warning,
-.form-control-danger {
-  padding-right: ($input-padding-x * 3);
-  background-repeat: no-repeat;
-  background-position: center right ($input-height / 4);
-  background-size: ($input-height / 2) ($input-height / 2);
-}
-
-// Form validation states
-.has-success {
-  @include form-control-validation($brand-success);
-
-  .form-control-success {
-    background-image: $form-icon-success;
-  }
-}
-
-.has-warning {
-  @include form-control-validation($brand-warning);
-
-  .form-control-warning {
-    background-image: $form-icon-warning;
-  }
-}
-
-.has-danger {
-  @include form-control-validation($brand-danger);
-
-  .form-control-danger {
-    background-image: $form-icon-danger;
-  }
-}
-
-
-// Inline forms
-//
-// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
-// forms begin stacked on extra small (mobile) devices and then go inline when
-// viewports reach <768px.
-//
-// Requires wrapping inputs and labels with `.form-group` for proper display of
-// default HTML form controls and our custom form controls (e.g., input groups).
-
-.form-inline {
-
-  // Kick in the inline
-  @include media-breakpoint-up(sm) {
-    // Inline-block all the things for "inline"
-    .form-group {
-      display: inline-block;
-      margin-bottom: 0;
-      vertical-align: middle;
-    }
-
-    // Allow folks to *not* use `.form-group`
-    .form-control {
-      display: inline-block;
-      width: auto; // Prevent labels from stacking above inputs in `.form-group`
-      vertical-align: middle;
-    }
-
-    // Make static controls behave like regular ones
-    .form-control-static {
-      display: inline-block;
-    }
-
-    .input-group {
-      display: inline-table;
-      vertical-align: middle;
-
-      .input-group-addon,
-      .input-group-btn,
-      .form-control {
-        width: auto;
-      }
-    }
-
-    // Input groups need that 100% width though
-    .input-group > .form-control {
-      width: 100%;
-    }
-
-    .form-control-label {
-      margin-bottom: 0;
-      vertical-align: middle;
-    }
-
-    // Remove default margin on radios/checkboxes that were used for stacking, and
-    // then undo the floating of radios and checkboxes to match.
-    .form-check {
-      display: inline-block;
-      margin-top: 0;
-      margin-bottom: 0;
-      vertical-align: middle;
-    }
-    .form-check-label {
-      padding-left: 0;
-    }
-    .form-check-input {
-      position: relative;
-      margin-left: 0;
-    }
-
-    // Re-override the feedback icon.
-    .has-feedback .form-control-feedback {
-      top: 0;
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_grid.scss b/demo/Angular2_Demo/scss/bootstrap/_grid.scss
deleted file mode 100755
index 24cf74dda8037beedbabcdea49cc5349950cc97b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_grid.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-// Container widths
-//
-// Set the container width, and override it for fixed navbars in media queries.
-
-@if $enable-grid-classes {
-  .container {
-    @include make-container();
-    @include make-container-max-widths();
-  }
-}
-
-// Fluid container
-//
-// Utilizes the mixin meant for fixed width containers, but without any defined
-// width for fluid, full width layouts.
-
-@if $enable-grid-classes {
-  .container-fluid {
-    @include make-container();
-  }
-}
-
-// Row
-//
-// Rows contain and clear the floats of your columns.
-
-@if $enable-grid-classes {
-  .row {
-    @include make-row();
-  }
-}
-
-// Columns
-//
-// Common styles for small and large grid columns
-
-@if $enable-grid-classes {
-  @include make-grid-columns();
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_images.scss b/demo/Angular2_Demo/scss/bootstrap/_images.scss
deleted file mode 100755
index 989426999712f15d8193eae2609ecefede34c7e2..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_images.scss
+++ /dev/null
@@ -1,52 +0,0 @@
-// Responsive images (ensure images don't scale beyond their parents)
-//
-// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.
-// We previously tried the "images are responsive by default" approach in Bootstrap v2,
-// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
-// which weren't expecting the images within themselves to be involuntarily resized.
-// See also https://github.com/twbs/bootstrap/issues/18178
-.img-fluid {
-  @include img-fluid();
-}
-
-// Rounded corners
-.img-rounded {
-  @include border-radius($border-radius-lg);
-}
-
-// Image thumbnails
-.img-thumbnail {
-  padding: $thumbnail-padding;
-  background-color: $thumbnail-bg;
-  border: $thumbnail-border-width solid $thumbnail-border-color;
-  @include border-radius($thumbnail-border-radius);
-  transition: all .2s ease-in-out;
-  @include box-shadow($thumbnail-box-shadow);
-
-  // Keep them at most 100% wide
-  @include img-fluid(inline-block);
-}
-
-// Perfect circle
-.img-circle {
-  border-radius: 50%;
-}
-
-//
-// Figures
-//
-
-.figure {
-  // Ensures the caption's text aligns with the image.
-  display: inline-block;
-}
-
-.figure-img {
-  margin-bottom: ($spacer-y / 2);
-  line-height: 1;
-}
-
-.figure-caption {
-  font-size: $figure-caption-font-size;
-  color: $gray-light;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_input-group.scss b/demo/Angular2_Demo/scss/bootstrap/_input-group.scss
deleted file mode 100755
index fff9cb560f69cb66cc1e502716f60bb267db40cb..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_input-group.scss
+++ /dev/null
@@ -1,188 +0,0 @@
-//
-// Base styles
-//
-
-.input-group {
-  position: relative;
-  width: 100%;
-
-  @if $enable-flex {
-    display: flex;
-  } @else {
-    display: table;
-    // Prevent input groups from inheriting border styles from table cells when
-    // placed within a table.
-    border-collapse: separate;
-  }
-
-  .form-control {
-    // Ensure that the input is always above the *appended* addon button for
-    // proper border colors.
-    position: relative;
-    z-index: 2;
-    // Bring the "active" form control to the front
-    @include hover-focus-active {
-      z-index: 3;
-    }
-    @if $enable-flex {
-      flex: 1;
-    } @else {
-      // IE9 fubars the placeholder attribute in text inputs and the arrows on
-      // select elements in input groups. To fix it, we float the input. Details:
-      // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
-      float: left;
-      width: 100%;
-    }
-    margin-bottom: 0;
-  }
-}
-
-.input-group-addon,
-.input-group-btn,
-.input-group .form-control {
-  @if not $enable-flex {
-    display: table-cell;
-  }
-
-  &:not(:first-child):not(:last-child) {
-    @include border-radius(0);
-  }
-}
-
-.input-group-addon,
-.input-group-btn {
-  @if not $enable-flex {
-    width: 1%;
-  }
-  white-space: nowrap;
-  vertical-align: middle; // Match the inputs
-}
-
-
-// Sizing options
-//
-// Remix the default form control sizing classes into new ones for easier
-// manipulation.
-
-.input-group-lg > .form-control,
-.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn {
-  @extend .form-control-lg;
-}
-.input-group-sm > .form-control,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn {
-  @extend .form-control-sm;
-}
-
-
-//
-// Text input groups
-//
-
-.input-group-addon {
-  padding: $input-padding-y $input-padding-x;
-  margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom
-  font-size: $font-size-base;
-  font-weight: normal;
-  line-height: $input-line-height;
-  color: $input-color;
-  text-align: center;
-  background-color: $input-group-addon-bg;
-  border: $input-btn-border-width solid $input-group-addon-border-color;
-  @include border-radius($border-radius);
-
-  // Sizing
-  &.form-control-sm {
-    padding: $input-padding-y-sm $input-padding-x-sm;
-    font-size: $font-size-sm;
-    @include border-radius($border-radius-sm);
-  }
-  &.form-control-lg {
-    padding: $input-padding-y-lg $input-padding-x-lg;
-    font-size: $font-size-lg;
-    @include border-radius($border-radius-lg);
-  }
-
-  // scss-lint:disable QualifyingElement
-  // Nuke default margins from checkboxes and radios to vertically center within.
-  input[type="radio"],
-  input[type="checkbox"] {
-    margin-top: 0;
-  }
-  // scss-lint:enable QualifyingElement
-}
-
-
-//
-// Reset rounded corners
-//
-
-.input-group .form-control:not(:last-child),
-.input-group-addon:not(:last-child),
-.input-group-btn:not(:last-child) > .btn,
-.input-group-btn:not(:last-child) > .btn-group > .btn,
-.input-group-btn:not(:last-child) > .dropdown-toggle,
-.input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle),
-.input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {
-  @include border-right-radius(0);
-}
-.input-group-addon:not(:last-child) {
-  border-right: 0;
-}
-.input-group .form-control:not(:first-child),
-.input-group-addon:not(:first-child),
-.input-group-btn:not(:first-child) > .btn,
-.input-group-btn:not(:first-child) > .btn-group > .btn,
-.input-group-btn:not(:first-child) > .dropdown-toggle,
-.input-group-btn:not(:last-child) > .btn:not(:first-child),
-.input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {
-  @include border-left-radius(0);
-}
-.form-control + .input-group-addon:not(:first-child) {
-  border-left: 0;
-}
-
-//
-// Button input groups
-//
-
-.input-group-btn {
-  position: relative;
-  // Jankily prevent input button groups from wrapping with `white-space` and
-  // `font-size` in combination with `inline-block` on buttons.
-  font-size: 0;
-  white-space: nowrap;
-
-  // Negative margin for spacing, position for bringing hovered/focused/actived
-  // element above the siblings.
-  > .btn {
-    position: relative;
-    + .btn {
-      margin-left: (-$input-btn-border-width);
-    }
-    // Bring the "active" button to the front
-    @include hover-focus-active {
-      z-index: 3;
-    }
-  }
-
-  // Negative margin to only have a single, shared border between the two
-  &:not(:last-child) {
-    > .btn,
-    > .btn-group {
-      margin-right: (-$input-btn-border-width);
-    }
-  }
-  &:not(:first-child) {
-    > .btn,
-    > .btn-group {
-      z-index: 2;
-      margin-left: (-$input-btn-border-width);
-      // Because specificity
-      @include hover-focus-active {
-        z-index: 3;
-      }
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_jumbotron.scss b/demo/Angular2_Demo/scss/bootstrap/_jumbotron.scss
deleted file mode 100755
index b12d465d973790bfda1fc2ddc9512e21115fadc9..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_jumbotron.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-.jumbotron {
-  padding: $jumbotron-padding ($jumbotron-padding / 2);
-  margin-bottom: $jumbotron-padding;
-  background-color: $jumbotron-bg;
-  @include border-radius($border-radius-lg);
-
-  @include media-breakpoint-up(sm) {
-    padding: ($jumbotron-padding * 2) $jumbotron-padding;
-  }
-}
-
-.jumbotron-hr {
-  border-top-color: darken($jumbotron-bg, 10%);
-}
-
-.jumbotron-fluid {
-  padding-right: 0;
-  padding-left: 0;
-  @include border-radius(0);
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_list-group.scss b/demo/Angular2_Demo/scss/bootstrap/_list-group.scss
deleted file mode 100755
index d7e2ec5c168e03076078ae8bd1bad9456d771126..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_list-group.scss
+++ /dev/null
@@ -1,123 +0,0 @@
-// Base class
-//
-// Easily usable on <ul>, <ol>, or <div>.
-
-.list-group {
-  // No need to set list-style: none; since .list-group-item is block level
-  padding-left: 0; // reset padding because ul and ol
-  margin-bottom: 0;
-}
-
-
-// Individual list items
-//
-// Use on `li`s or `div`s within the `.list-group` parent.
-
-.list-group-item {
-  position: relative;
-  display: block;
-  padding: $list-group-item-padding-y $list-group-item-padding-x;
-  // Place the border on the list items and negative margin up for better styling
-  margin-bottom: -$list-group-border-width;
-  background-color: $list-group-bg;
-  border: $list-group-border-width solid $list-group-border-color;
-
-  &:first-child {
-    @include border-top-radius($list-group-border-radius);
-  }
-
-  &:last-child {
-    margin-bottom: 0;
-    @include border-bottom-radius($list-group-border-radius);
-  }
-
-  &.disabled {
-    @include plain-hover-focus {
-      color: $list-group-disabled-color;
-      cursor: $cursor-disabled;
-      background-color: $list-group-disabled-bg;
-
-      // Force color to inherit for custom content
-      .list-group-item-heading {
-        color: inherit;
-      }
-      .list-group-item-text {
-        color: $list-group-disabled-text-color;
-      }
-    }
-  }
-
-  &.active {
-    @include plain-hover-focus {
-      z-index: 2; // Place active items above their siblings for proper border styling
-      color: $list-group-active-color;
-      text-decoration: none; // Repeat here because it inherits global a:hover otherwise
-      background-color: $list-group-active-bg;
-      border-color: $list-group-active-border;
-
-      // Force color to inherit for custom content
-      .list-group-item-heading,
-      .list-group-item-heading > small,
-      .list-group-item-heading > .small {
-        color: inherit;
-      }
-      .list-group-item-text {
-        color: $list-group-active-text-color;
-      }
-    }
-  }
-}
-
-.list-group-flush {
-  .list-group-item {
-    border-radius: 0;
-  }
-}
-
-
-// Interactive list items
-//
-// Use anchor or button elements instead of `li`s or `div`s to create interactive
-// list items. Includes an extra `.active` modifier class for selected items.
-
-.list-group-item-action {
-  width: 100%; // For `<button>`s (anchors become 100% by default though)
-  color: $list-group-link-color;
-  text-align: inherit; // For `<button>`s (anchors inherit)
-
-  .list-group-item-heading {
-    color: $list-group-link-heading-color;
-  }
-
-  // Hover state
-  @include hover-focus {
-    color: $list-group-link-hover-color;
-    text-decoration: none;
-    background-color: $list-group-hover-bg;
-  }
-}
-
-
-// Contextual variants
-//
-// Add modifier classes to change text and background color on individual items.
-// Organizationally, this must come after the `:hover` states.
-
-@include list-group-item-variant(success, $state-success-bg, $state-success-text);
-@include list-group-item-variant(info, $state-info-bg, $state-info-text);
-@include list-group-item-variant(warning, $state-warning-bg, $state-warning-text);
-@include list-group-item-variant(danger, $state-danger-bg, $state-danger-text);
-
-
-// Custom content options
-//
-// Extra classes for creating well-formatted content within `.list-group-item`s.
-
-.list-group-item-heading {
-  margin-top: 0;
-  margin-bottom: $list-group-item-heading-margin-bottom;
-}
-.list-group-item-text {
-  margin-bottom: 0;
-  line-height: 1.3;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_media.scss b/demo/Angular2_Demo/scss/bootstrap/_media.scss
deleted file mode 100755
index d970c946a0f40b77b4a718466d2ca6b879a91d6f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_media.scss
+++ /dev/null
@@ -1,89 +0,0 @@
-@if $enable-flex {
-  .media {
-    display: flex;
-    margin-bottom: $spacer;
-  }
-  .media-body {
-    flex: 1;
-  }
-  .media-middle {
-    align-self: center;
-  }
-  .media-bottom {
-    align-self: flex-end;
-  }
-} @else {
-  .media {
-    margin-top: $media-margin-top;
-
-    &:first-child {
-      margin-top: 0;
-    }
-  }
-  .media,
-  .media-body {
-    overflow: hidden;
-  }
-  .media-body {
-    width: 10000px;
-  }
-  .media-left,
-  .media-right,
-  .media-body {
-    display: table-cell;
-    vertical-align: top;
-  }
-  .media-middle {
-    vertical-align: middle;
-  }
-  .media-bottom {
-    vertical-align: bottom;
-  }
-}
-
-
-//
-// Images/elements as the media anchor
-//
-
-.media-object {
-  display: block;
-
-  // Fix collapse in webkit from max-width: 100% and display: table-cell.
-  &.img-thumbnail {
-    max-width: none;
-  }
-}
-
-
-//
-// Alignment
-//
-
-.media-right {
-  padding-left: $media-alignment-padding-x;
-}
-
-.media-left {
-  padding-right: $media-alignment-padding-x;
-}
-
-
-//
-// Headings
-//
-
-.media-heading {
-  margin-top: 0;
-  margin-bottom: $media-heading-margin-bottom;
-}
-
-
-//
-// Media list variation
-//
-
-.media-list {
-  padding-left: 0;
-  list-style: none;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_mixins.scss b/demo/Angular2_Demo/scss/bootstrap/_mixins.scss
deleted file mode 100755
index 1b5bf0fae6252eca3f4fafad15c89fbc0b6db5bc..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_mixins.scss
+++ /dev/null
@@ -1,54 +0,0 @@
-// Toggles
-//
-// Used in conjunction with global variables to enable certain theme features.
-
-@mixin box-shadow($shadow...) {
-  @if $enable-shadows {
-    box-shadow: $shadow;
-  }
-}
-
-@mixin transition($transition...) {
-  @if $enable-transitions {
-    transition: $transition;
-  }
-}
-
-// Utilities
-@import "mixins/breakpoints";
-@import "mixins/hover";
-@import "mixins/image";
-@import "mixins/tag";
-@import "mixins/reset-filter";
-@import "mixins/resize";
-@import "mixins/screen-reader";
-@import "mixins/size";
-@import "mixins/tab-focus";
-@import "mixins/reset-text";
-@import "mixins/text-emphasis";
-@import "mixins/text-hide";
-@import "mixins/text-truncate";
-
-// // Components
-@import "mixins/alert";
-@import "mixins/buttons";
-@import "mixins/cards";
-@import "mixins/pagination";
-@import "mixins/lists";
-@import "mixins/list-group";
-@import "mixins/nav-divider";
-@import "mixins/forms";
-@import "mixins/progress";
-@import "mixins/table-row";
-
-// // Skins
-@import "mixins/background-variant";
-@import "mixins/border-radius";
-@import "mixins/gradients";
-
-// // Layout
-@import "mixins/clearfix";
-// @import "mixins/navbar-align";
-@import "mixins/grid-framework";
-@import "mixins/grid";
-@import "mixins/pulls";
diff --git a/demo/Angular2_Demo/scss/bootstrap/_modal.scss b/demo/Angular2_Demo/scss/bootstrap/_modal.scss
deleted file mode 100755
index 83a1335319b256ff12a0fde343379e7404f83ea0..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_modal.scss
+++ /dev/null
@@ -1,132 +0,0 @@
-// .modal-open      - body class for killing the scroll
-// .modal           - container to scroll within
-// .modal-dialog    - positioning shell for the actual modal
-// .modal-content   - actual modal w/ bg and corners and shit
-
-
-// Kill the scroll on the body
-.modal-open {
-  overflow: hidden;
-}
-
-// Container that the modal scrolls within
-.modal {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: $zindex-modal;
-  display: none;
-  overflow: hidden;
-  // Prevent Chrome on Windows from adding a focus outline. For details, see
-  // https://github.com/twbs/bootstrap/pull/10951.
-  outline: 0;
-  -webkit-overflow-scrolling: touch;
-
-  // When fading in the modal, animate it to slide down
-  &.fade .modal-dialog {
-    transition: transform .3s ease-out;
-    transform: translate(0, -25%);
-  }
-  &.in .modal-dialog { transform: translate(0, 0); }
-}
-.modal-open .modal {
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-
-// Shell div to position the modal with bottom padding
-.modal-dialog {
-  position: relative;
-  width: auto;
-  margin: $modal-dialog-margin;
-}
-
-// Actual modal
-.modal-content {
-  position: relative;
-  background-color: $modal-content-bg;
-  background-clip: padding-box;
-  border: $modal-content-border-width solid $modal-content-border-color;
-  @include border-radius($border-radius-lg);
-  @include box-shadow($modal-content-xs-box-shadow);
-  // Remove focus outline from opened modal
-  outline: 0;
-}
-
-// Modal background
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: $zindex-modal-bg;
-  background-color: $modal-backdrop-bg;
-
-  // Fade for backdrop
-  &.fade { opacity: 0; }
-  &.in { opacity: $modal-backdrop-opacity; }
-}
-
-// Modal header
-// Top section of the modal w/ title and dismiss
-.modal-header {
-  padding: $modal-title-padding;
-  border-bottom: $modal-header-border-width solid $modal-header-border-color;
-  @include clearfix;
-}
-// Close icon
-.modal-header .close {
-  margin-top: -2px;
-}
-
-// Title text within header
-.modal-title {
-  margin: 0;
-  line-height: $modal-title-line-height;
-}
-
-// Modal body
-// Where all modal content resides (sibling of .modal-header and .modal-footer)
-.modal-body {
-  position: relative;
-  padding: $modal-inner-padding;
-}
-
-// Footer (for actions)
-.modal-footer {
-  padding: $modal-inner-padding;
-  text-align: right; // right align buttons
-  border-top: $modal-footer-border-width solid $modal-footer-border-color;
-  @include clearfix(); // clear it in case folks use .pull-* classes on buttons
-}
-
-// Measure scrollbar width for padding body during modal show/hide
-.modal-scrollbar-measure {
-  position: absolute;
-  top: -9999px;
-  width: 50px;
-  height: 50px;
-  overflow: scroll;
-}
-
-// Scale up the modal
-@include media-breakpoint-up(sm) {
-  // Automatically set modal's width for larger viewports
-  .modal-dialog {
-    max-width: $modal-md;
-    margin: $modal-dialog-sm-up-margin-y auto;
-  }
-
-  .modal-content {
-    @include box-shadow($modal-content-sm-up-box-shadow);
-  }
-
-  .modal-sm { max-width: $modal-sm; }
-}
-
-@include media-breakpoint-up(lg) {
-  .modal-lg { max-width: $modal-lg; }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_nav.scss b/demo/Angular2_Demo/scss/bootstrap/_nav.scss
deleted file mode 100755
index 640956ca2f16f6aa23311110d8d53f3cb19e6960..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_nav.scss
+++ /dev/null
@@ -1,157 +0,0 @@
-// Base class
-//
-// Kickstart any navigation component with a set of style resets. Works with
-// `<nav>`s or `<ul>`s.
-
-.nav {
-  padding-left: 0;
-  margin-bottom: 0;
-  list-style: none;
-}
-
-.nav-link {
-  display: inline-block;
-
-  @include hover-focus {
-    text-decoration: none;
-  }
-
-  // Disabled state lightens text and removes hover/tab effects
-  &.disabled {
-    color: $nav-disabled-link-color;
-
-    @include plain-hover-focus {
-      color: $nav-disabled-link-hover-color;
-      cursor: $cursor-disabled;
-      background-color: $nav-disabled-link-hover-bg;
-    }
-  }
-}
-
-
-// Nav inline
-
-.nav-inline {
-  .nav-item {
-    display: inline-block;
-  }
-
-  .nav-item + .nav-item,
-  .nav-link + .nav-link {
-    margin-left: $nav-item-inline-spacer;
-  }
-}
-
-
-//
-// Tabs
-//
-
-.nav-tabs {
-  border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
-  @include clearfix();
-
-  .nav-item {
-    float: left;
-    // Make the list-items overlay the bottom border
-    margin-bottom: -$nav-tabs-border-width;
-
-    + .nav-item {
-      margin-left: $nav-item-margin;
-    }
-  }
-
-  .nav-link {
-    display: block;
-    padding: $nav-link-padding;
-    border: $nav-tabs-border-width solid transparent;
-    @include border-top-radius($nav-tabs-border-radius);
-
-    @include hover-focus {
-      border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
-    }
-
-    &.disabled {
-      @include plain-hover-focus {
-        color: $nav-disabled-link-color;
-        background-color: transparent;
-        border-color: transparent;
-      }
-    }
-  }
-
-  .nav-link.active,
-  .nav-item.open .nav-link {
-    @include plain-hover-focus {
-      color: $nav-tabs-active-link-hover-color;
-      background-color: $nav-tabs-active-link-hover-bg;
-      border-color: $nav-tabs-active-link-hover-border-color $nav-tabs-active-link-hover-border-color transparent;
-    }
-  }
-
-  .dropdown-menu {
-    // Make dropdown border overlap tab border
-    margin-top: -$nav-tabs-border-width;
-    // Remove the top rounded corners here since there is a hard edge above the menu
-    @include border-top-radius(0);
-  }
-}
-
-
-//
-// Pills
-//
-
-.nav-pills {
-  @include clearfix();
-
-  .nav-item {
-    float: left;
-
-    + .nav-item {
-      margin-left: $nav-item-margin;
-    }
-  }
-
-  .nav-link {
-    display: block;
-    padding: $nav-link-padding;
-    @include border-radius($nav-pills-border-radius);
-  }
-
-  .nav-link.active,
-  .nav-item.open .nav-link {
-    @include plain-hover-focus {
-      color: $nav-pills-active-link-color;
-      cursor: default;
-      background-color: $nav-pills-active-link-bg;
-    }
-  }
-}
-
-.nav-stacked {
-  .nav-item {
-    display: block;
-    float: none;
-
-    + .nav-item {
-      margin-top: $nav-item-margin;
-      margin-left: 0;
-    }
-  }
-}
-
-
-//
-// Tabbable tabs
-//
-
-// Hide tabbable panes to start, show them when `.active`
-.tab-content {
-  > .tab-pane {
-    display: none;
-  }
-  > .active {
-    display: block;
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_navbar.scss b/demo/Angular2_Demo/scss/bootstrap/_navbar.scss
deleted file mode 100755
index 8d8352c73f91f51e791c2c95818e1f3f705a6218..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_navbar.scss
+++ /dev/null
@@ -1,258 +0,0 @@
-// Wrapper and base class
-//
-// Provide a static navbar from which we expand to create full-width, fixed, and
-// other navbar variations.
-
-.navbar {
-  position: relative;
-  padding: $navbar-padding-y $navbar-padding-x;
-  @include clearfix;
-
-  @include media-breakpoint-up(sm) {
-    @include border-radius($navbar-border-radius);
-  }
-}
-
-
-// Navbar alignment options
-//
-// Display the navbar across the entirety of the page or fixed it to the top or
-// bottom of the page.
-
-// A static, full width modifier with no rounded corners.
-.navbar-full {
-  z-index: $zindex-navbar;
-
-  @include media-breakpoint-up(sm) {
-    @include border-radius(0);
-  }
-}
-
-// Fix the top/bottom navbars when screen real estate supports it
-.navbar-fixed-top,
-.navbar-fixed-bottom {
-  position: fixed;
-  right: 0;
-  left: 0;
-  z-index: $zindex-navbar-fixed;
-
-  // Undo the rounded corners
-  @include media-breakpoint-up(sm) {
-    @include border-radius(0);
-  }
-}
-
-.navbar-fixed-top {
-  top: 0;
-}
-
-.navbar-fixed-bottom {
-  bottom: 0;
-}
-
-.navbar-sticky-top {
-  position: sticky;
-  top: 0;
-  z-index: $zindex-navbar-sticky;
-  width: 100%;
-
-  // Undo the rounded corners
-  @include media-breakpoint-up(sm) {
-    @include border-radius(0);
-  }
-}
-
-
-//
-// Brand/project name
-//
-
-.navbar-brand {
-  float: left;
-  padding-top:    $navbar-brand-padding-y;
-  padding-bottom: $navbar-brand-padding-y;
-  margin-right: 1rem;
-  font-size: $font-size-lg;
-
-  @include hover-focus {
-    text-decoration: none;
-  }
-
-  > img {
-    display: block;
-  }
-}
-
-
-.navbar-divider {
-  float: left;
-  width: $border-width;
-  padding-top: .425rem;
-  padding-bottom: .425rem;
-  margin-right: $navbar-padding-x;
-  margin-left:  $navbar-padding-x;
-  overflow: hidden;
-
-  &::before {
-    content: "\00a0";
-  }
-}
-
-
-// Navbar toggle
-//
-// Custom button for toggling the `.navbar-collapse`, powered by the collapse
-// Bootstrap JavaScript plugin.
-
-.navbar-toggler {
-  padding: .5rem .75rem;
-  font-size: $font-size-lg;
-  line-height: 1;
-  background: none;
-  border: $border-width solid transparent;
-  @include border-radius($btn-border-radius);
-
-  @include hover-focus {
-    text-decoration: none;
-  }
-}
-
-// Navigation
-//
-// Custom navbar navigation built on the base `.nav` styles.
-
-.navbar-nav {
-  .nav-item {
-    float: left;
-  }
-
-  .nav-link {
-    display: block;
-    padding-top:    .425rem;
-    padding-bottom: .425rem;
-
-    + .nav-link {
-      margin-left: 1rem;
-    }
-  }
-
-  .nav-item + .nav-item {
-    margin-left: 1rem;
-  }
-}
-
-// Dark links against a light background
-.navbar-light {
-  .navbar-brand {
-    color: $navbar-light-active-color;
-
-    @include hover-focus {
-      color: $navbar-light-active-color;
-    }
-  }
-
-  .navbar-nav {
-    .nav-link {
-      color: $navbar-light-color;
-
-      @include hover-focus {
-        color: $navbar-light-hover-color;
-      }
-    }
-
-    .open > .nav-link,
-    .active > .nav-link,
-    .nav-link.open,
-    .nav-link.active {
-      @include plain-hover-focus {
-        color: $navbar-light-active-color;
-      }
-    }
-  }
-
-  .navbar-divider {
-    background-color: rgba(0,0,0,.075);
-  }
-}
-
-// White links against a dark background
-.navbar-dark {
-  .navbar-brand {
-    color: $navbar-dark-active-color;
-
-    @include hover-focus {
-      color: $navbar-dark-active-color;
-    }
-  }
-
-  .navbar-nav {
-    .nav-link {
-      color: $navbar-dark-color;
-
-      @include hover-focus {
-        color: $navbar-dark-hover-color;
-      }
-    }
-
-    .open > .nav-link,
-    .active > .nav-link,
-    .nav-link.open,
-    .nav-link.active {
-      @include plain-hover-focus {
-        color: $navbar-dark-active-color;
-      }
-    }
-  }
-
-  .navbar-divider {
-    background-color: rgba(255,255,255,.075);
-  }
-}
-
-
-// Navbar toggleable
-//
-// Custom override for collapse plugin in navbar.
-
-// scss-lint:disable ImportantRule
-.navbar-toggleable {
-  &-xs {
-    @include clearfix;
-    @include media-breakpoint-down(xs) {
-      .navbar-nav .nav-item {
-        float: none;
-        margin-left: 0;
-      }
-    }
-    @include media-breakpoint-up(sm) {
-      display: block !important;
-    }
-  }
-
-  &-sm {
-    @include clearfix;
-    @include media-breakpoint-down(sm) {
-      .navbar-nav .nav-item {
-        float: none;
-        margin-left: 0;
-      }
-    }
-    @include media-breakpoint-up(md) {
-      display: block !important;
-    }
-  }
-
-  &-md {
-    @include clearfix;
-    @include media-breakpoint-down(md) {
-      .navbar-nav .nav-item {
-        float: none;
-        margin-left: 0;
-      }
-    }
-    @include media-breakpoint-up(lg) {
-      display: block !important;
-    }
-  }
-}
-// scss-lint:enable ImportantRule
diff --git a/demo/Angular2_Demo/scss/bootstrap/_normalize.scss b/demo/Angular2_Demo/scss/bootstrap/_normalize.scss
deleted file mode 100755
index 8a74836b09aa97a4f72b4773de84e211e6be17ba..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_normalize.scss
+++ /dev/null
@@ -1,424 +0,0 @@
-/*! normalize.css v4.0.0 | MIT License | github.com/necolas/normalize.css */
-
-//
-// 1. Change the default font family in all browsers (opinionated).
-// 2. Prevent adjustments of font size after orientation changes in IE and iOS.
-//
-
-html {
-  font-family: sans-serif; // 1
-  -ms-text-size-adjust: 100%; // 2
-  -webkit-text-size-adjust: 100%; // 2
-}
-
-//
-// Remove the margin in all browsers (opinionated).
-//
-
-body {
-  margin: 0;
-}
-
-// HTML5 display definitions
-// ==========================================================================
-
-//
-// Add the correct display in IE 9-.
-// 1. Add the correct display in Edge, IE, and Firefox.
-// 2. Add the correct display in IE.
-//
-
-article,
-aside,
-details, // 1
-figcaption,
-figure,
-footer,
-header,
-main, // 2
-menu,
-nav,
-section,
-summary { // 1
-  display: block;
-}
-
-//
-// Add the correct display in IE 9-.
-//
-
-audio,
-canvas,
-progress,
-video {
-  display: inline-block;
-}
-
-//
-// Add the correct display in iOS 4-7.
-//
-
-audio:not([controls]) {
-  display: none;
-  height: 0;
-}
-
-//
-// Add the correct vertical alignment in Chrome, Firefox, and Opera.
-//
-
-progress {
-  vertical-align: baseline;
-}
-
-//
-// Add the correct display in IE 10-.
-// 1. Add the correct display in IE.
-//
-
-template, // 2
-[hidden] {
-  display: none;
-}
-
-// Links
-// ==========================================================================
-
-//
-// Remove the gray background on active links in IE 10.
-//
-
-a {
-  background-color: transparent;
-}
-
-//
-// Remove the outline on focused links when they are also active or hovered
-// in all browsers (opinionated).
-//
-
-a:active,
-a:hover {
-  outline-width: 0;
-}
-
-// Text-level semantics
-// ==========================================================================
-
-//
-// 1. Remove the bottom border in Firefox 39-.
-// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
-//
-
-abbr[title] {
-  border-bottom: none; // 1
-  text-decoration: underline; // 2
-  text-decoration: underline dotted; // 2
-}
-
-//
-// Prevent the duplicate application of `bolder` by the next rule in Safari 6.
-//
-
-b,
-strong {
-  font-weight: inherit;
-}
-
-//
-// Add the correct font weight in Chrome, Edge, and Safari.
-//
-
-b,
-strong {
-  font-weight: bolder;
-}
-
-//
-// Add the correct font style in Android 4.3-.
-//
-
-dfn {
-  font-style: italic;
-}
-
-//
-// Correct the font size and margin on `h1` elements within `section` and
-// `article` contexts in Chrome, Firefox, and Safari.
-//
-
-h1 {
-  font-size: 2em;
-  margin: 0.67em 0;
-}
-
-//
-// Add the correct background and color in IE 9-.
-//
-
-mark {
-  background-color: #ff0;
-  color: #000;
-}
-
-//
-// Add the correct font size in all browsers.
-//
-
-small {
-  font-size: 80%;
-}
-
-//
-// Prevent `sub` and `sup` elements from affecting the line height in
-// all browsers.
-//
-
-sub,
-sup {
-  font-size: 75%;
-  line-height: 0;
-  position: relative;
-  vertical-align: baseline;
-}
-
-sub {
-  bottom: -0.25em;
-}
-
-sup {
-  top: -0.5em;
-}
-
-// Embedded content
-// ==========================================================================
-
-//
-// Remove the border on images inside links in IE 10-.
-//
-
-img {
-  border-style: none;
-}
-
-//
-// Hide the overflow in IE.
-//
-
-svg:not(:root) {
-  overflow: hidden;
-}
-
-// Grouping content
-// ==========================================================================
-
-//
-// 1. Correct the inheritance and scaling of font size in all browsers.
-// 2. Correct the odd `em` font sizing in all browsers.
-//
-
-code,
-kbd,
-pre,
-samp {
-  font-family: monospace, monospace; // 1
-  font-size: 1em; // 2
-}
-
-//
-// Add the correct margin in IE 8.
-//
-
-figure {
-  margin: 1em 40px;
-}
-
-//
-// 1. Add the correct box sizing in Firefox.
-// 2. Show the overflow in Edge and IE.
-//
-
-hr {
-  box-sizing: content-box; // 1
-  height: 0; // 1
-  overflow: visible; // 2
-}
-
-// Forms
-// ==========================================================================
-
-//
-// Change font properties to `inherit` in all browsers (opinionated).
-//
-
-button,
-input,
-select,
-textarea {
-  font: inherit;
-}
-
-//
-// Restore the font weight unset by the previous rule.
-//
-
-optgroup {
-  font-weight: bold;
-}
-
-//
-// Show the overflow in IE.
-// 1. Show the overflow in Edge.
-// 2. Show the overflow in Edge, Firefox, and IE.
-//
-
-button,
-input, // 1
-select { // 2
-  overflow: visible;
-}
-
-//
-// Remove the margin in Safari.
-// 1. Remove the margin in Firefox and Safari.
-//
-
-button,
-input,
-select,
-textarea { // 1
-  margin: 0;
-}
-
-//
-// Remove the inheritence of text transform in Edge, Firefox, and IE.
-// 1. Remove the inheritence of text transform in Firefox.
-//
-
-button,
-select { // 1
-  text-transform: none;
-}
-
-//
-// Change the cursor in all browsers (opinionated).
-//
-
-button,
-[type="button"],
-[type="reset"],
-[type="submit"] {
-  cursor: pointer;
-}
-
-//
-// Restore the default cursor to disabled elements unset by the previous rule.
-//
-
-[disabled] {
-  cursor: default;
-}
-
-//
-// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
-//    controls in Android 4.
-// 2. Correct the inability to style clickable types in iOS.
-//
-
-button,
-html [type="button"], // 1
-[type="reset"],
-[type="submit"] {
-  -webkit-appearance: button; // 2
-}
-
-//
-// Remove the inner border and padding in Firefox.
-//
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-  border: 0;
-  padding: 0;
-}
-
-//
-// Restore the focus styles unset by the previous rule.
-//
-
-button:-moz-focusring,
-input:-moz-focusring {
-  outline: 1px dotted ButtonText;
-}
-
-//
-// Change the border, margin, and padding in all browsers (opinionated).
-//
-
-fieldset {
-  border: 1px solid #c0c0c0;
-  margin: 0 2px;
-  padding: 0.35em 0.625em 0.75em;
-}
-
-//
-// 1. Correct the text wrapping in Edge and IE.
-// 2. Correct the color inheritance from `fieldset` elements in IE.
-// 3. Remove the padding so developers are not caught out when they zero out
-//    `fieldset` elements in all browsers.
-//
-
-legend {
-  box-sizing: border-box; // 1
-  color: inherit; // 2
-  display: table; // 1
-  max-width: 100%; // 1
-  padding: 0; // 3
-  white-space: normal; // 1
-}
-
-//
-// Remove the default vertical scrollbar in IE.
-//
-
-textarea {
-  overflow: auto;
-}
-
-//
-// 1. Add the correct box sizing in IE 10-.
-// 2. Remove the padding in IE 10-.
-//
-
-[type="checkbox"],
-[type="radio"] {
-  box-sizing: border-box; // 1
-  padding: 0; // 2
-}
-
-//
-// Correct the cursor style of increment and decrement buttons in Chrome.
-//
-
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
-  height: auto;
-}
-
-//
-// Correct the odd appearance of search inputs in Chrome and Safari.
-//
-
-[type="search"] {
-  -webkit-appearance: textfield;
-}
-
-//
-// Remove the inner padding and cancel buttons in Chrome on OS X and
-// Safari on OS X.
-//
-
-[type="search"]::-webkit-search-cancel-button,
-[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_pagination.scss b/demo/Angular2_Demo/scss/bootstrap/_pagination.scss
deleted file mode 100755
index 5f40a7fd4cbece14cc2ed066d62b53b3947cadb8..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_pagination.scss
+++ /dev/null
@@ -1,73 +0,0 @@
-.pagination {
-  display: inline-block;
-  padding-left: 0;
-  margin-top: $spacer-y;
-  margin-bottom: $spacer-y;
-  @include border-radius();
-}
-
-.page-item {
-  display: inline; // Remove list-style and block-level defaults
-
-  &:first-child {
-    .page-link {
-      margin-left: 0;
-      @include border-left-radius($border-radius);
-    }
-  }
-  &:last-child {
-    .page-link {
-      @include border-right-radius($border-radius);
-    }
-  }
-
-  &.active .page-link {
-    @include plain-hover-focus {
-      z-index: 2;
-      color: $pagination-active-color;
-      cursor: default;
-      background-color: $pagination-active-bg;
-      border-color: $pagination-active-border;
-    }
-  }
-
-  &.disabled .page-link {
-    @include plain-hover-focus {
-      color: $pagination-disabled-color;
-      pointer-events: none;
-      cursor: $cursor-disabled;
-      background-color: $pagination-disabled-bg;
-      border-color: $pagination-disabled-border;
-    }
-  }
-}
-
-.page-link {
-  position: relative;
-  float: left; // Collapse white-space
-  padding: $pagination-padding-y $pagination-padding-x;
-  margin-left: -1px;
-  color: $pagination-color;
-  text-decoration: none;
-  background-color: $pagination-bg;
-  border: $pagination-border-width solid $pagination-border-color;
-
-  @include hover-focus {
-    color: $pagination-hover-color;
-    background-color: $pagination-hover-bg;
-    border-color: $pagination-hover-border;
-  }
-}
-
-
-//
-// Sizing
-//
-
-.pagination-lg {
-  @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);
-}
-
-.pagination-sm {
-  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_popover.scss b/demo/Angular2_Demo/scss/bootstrap/_popover.scss
deleted file mode 100755
index 6e6fe3c9cb15921f5a56fb652582ff4c5340b43f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_popover.scss
+++ /dev/null
@@ -1,147 +0,0 @@
-.popover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: $zindex-popover;
-  display: block;
-  max-width: $popover-max-width;
-  padding: $popover-inner-padding;
-  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
-  // So reset our font and text properties to avoid inheriting weird values.
-  @include reset-text();
-  font-size: $font-size-sm;
-  // Allow breaking very long words so they don't overflow the popover's bounds
-  word-wrap: break-word;
-  background-color: $popover-bg;
-  background-clip: padding-box;
-  border: $popover-border-width solid $popover-border-color;
-  @include border-radius($border-radius-lg);
-  @include box-shadow($popover-box-shadow);
-
-
-  // Popover directions
-
-  &.popover-top,
-  &.bs-tether-element-attached-bottom {
-    margin-top: -$popover-arrow-width;
-
-    .popover-arrow {
-      bottom: -$popover-arrow-outer-width;
-      left: 50%;
-      margin-left: -$popover-arrow-outer-width;
-      border-top-color: $popover-arrow-outer-color;
-      border-bottom-width: 0;
-      &::after {
-        bottom: 1px;
-        margin-left: -$popover-arrow-width;
-        content: "";
-        border-top-color: $popover-arrow-color;
-        border-bottom-width: 0;
-      }
-    }
-  }
-
-  &.popover-right,
-  &.bs-tether-element-attached-left {
-    margin-left: $popover-arrow-width;
-
-    .popover-arrow {
-      top: 50%;
-      left: -$popover-arrow-outer-width;
-      margin-top: -$popover-arrow-outer-width;
-      border-right-color: $popover-arrow-outer-color;
-      border-left-width: 0;
-      &::after {
-        bottom: -$popover-arrow-width;
-        left: 1px;
-        content: "";
-        border-right-color: $popover-arrow-color;
-        border-left-width: 0;
-      }
-    }
-  }
-
-  &.popover-bottom,
-  &.bs-tether-element-attached-top {
-    margin-top: $popover-arrow-width;
-
-    .popover-arrow {
-      top: -$popover-arrow-outer-width;
-      left: 50%;
-      margin-left: -$popover-arrow-outer-width;
-      border-top-width: 0;
-      border-bottom-color: $popover-arrow-outer-color;
-      &::after {
-        top: 1px;
-        margin-left: -$popover-arrow-width;
-        content: "";
-        border-top-width: 0;
-        border-bottom-color: $popover-arrow-color;
-      }
-    }
-  }
-
-  &.popover-left,
-  &.bs-tether-element-attached-right {
-    margin-left: -$popover-arrow-width;
-
-    .popover-arrow {
-      top: 50%;
-      right: -$popover-arrow-outer-width;
-      margin-top: -$popover-arrow-outer-width;
-      border-right-width: 0;
-      border-left-color: $popover-arrow-outer-color;
-      &::after {
-        right: 1px;
-        bottom: -$popover-arrow-width;
-        content: "";
-        border-right-width: 0;
-        border-left-color: $popover-arrow-color;
-      }
-    }
-  }
-}
-
-
-// Offset the popover to account for the popover arrow
-.popover-title {
-  padding: $popover-title-padding-y $popover-title-padding-x;
-  margin: 0; // reset heading margin
-  font-size: $font-size-base;
-  background-color: $popover-title-bg;
-  border-bottom: $popover-border-width solid darken($popover-title-bg, 5%);
-  $offset-border-width: ($border-width / $font-size-root);
-  @include border-radius(($border-radius-lg - $offset-border-width) ($border-radius-lg - $offset-border-width) 0 0);
-
-  &:empty {
-    display: none;
-  }
-}
-
-.popover-content {
-  padding: $popover-content-padding-y $popover-content-padding-x;
-}
-
-
-// Arrows
-//
-// .popover-arrow is outer, .popover-arrow::after is inner
-
-.popover-arrow {
-  &,
-  &::after {
-    position: absolute;
-    display: block;
-    width: 0;
-    height: 0;
-    border-color: transparent;
-    border-style: solid;
-  }
-}
-.popover-arrow {
-  border-width: $popover-arrow-outer-width;
-}
-.popover-arrow::after {
-  content: "";
-  border-width: $popover-arrow-width;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_print.scss b/demo/Angular2_Demo/scss/bootstrap/_print.scss
deleted file mode 100755
index b2c93735c71c375b6a858c0455417a8f9bb56c62..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_print.scss
+++ /dev/null
@@ -1,116 +0,0 @@
-// scss-lint:disable ImportantRule, QualifyingElement
-
-// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css
-
-// ==========================================================================
-// Print styles.
-// Inlined to avoid the additional HTTP request:
-// http://www.phpied.com/delay-loading-your-print-css/
-// ==========================================================================
-
-@if $enable-print-styles {
-  @media print {
-    *,
-    *::before,
-    *::after,
-    *::first-letter,
-    *::first-line {
-      // Bootstrap specific; comment out `color` and `background`
-      //color: #000 !important; // Black prints faster:
-                                //   http://www.sanbeiji.com/archives/953
-      text-shadow: none !important;
-      //background: transparent !important;
-      box-shadow: none !important;
-    }
-
-    a,
-    a:visited {
-      text-decoration: underline;
-    }
-
-    // Bootstrap specific; comment the following selector out
-    //a[href]::after {
-    //  content: " (" attr(href) ")";
-    //}
-
-    abbr[title]::after {
-      content: " (" attr(title) ")";
-    }
-
-    // Bootstrap specific; comment the following selector out
-    //
-    // Don't show links that are fragment identifiers,
-    // or use the `javascript:` pseudo protocol
-    //
-
-    //a[href^="#"]::after,
-    //a[href^="javascript:"]::after {
-    //  content: "";
-    //}
-
-    pre,
-    blockquote {
-      border: $border-width solid #999;   // Bootstrap custom code; using `$border-width` instead of 1px
-      page-break-inside: avoid;
-    }
-
-    //
-    // Printing Tables:
-    // http://css-discuss.incutio.com/wiki/Printing_Tables
-    //
-
-    thead {
-      display: table-header-group;
-    }
-
-    tr,
-    img {
-      page-break-inside: avoid;
-    }
-
-    p,
-    h2,
-    h3 {
-      orphans: 3;
-      widows: 3;
-    }
-
-    h2,
-    h3 {
-      page-break-after: avoid;
-    }
-
-    // Bootstrap specific changes start
-
-    // Bootstrap components
-    .navbar {
-      display: none;
-    }
-    .btn,
-    .dropup > .btn {
-      > .caret {
-        border-top-color: #000 !important;
-      }
-    }
-    .tag {
-      border: $border-width solid #000;
-    }
-
-    .table {
-      border-collapse: collapse !important;
-
-      td,
-      th {
-        background-color: #fff !important;
-      }
-    }
-    .table-bordered {
-      th,
-      td {
-        border: 1px solid #ddd !important;
-      }
-    }
-
-    // Bootstrap specific changes end
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_progress.scss b/demo/Angular2_Demo/scss/bootstrap/_progress.scss
deleted file mode 100755
index b2bcb30568ae05fa1232cf7f430db0be07e1517d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_progress.scss
+++ /dev/null
@@ -1,145 +0,0 @@
-//
-// Progress animations
-//
-
-@keyframes progress-bar-stripes {
-  from { background-position: $spacer-y 0; }
-  to { background-position: 0 0; }
-}
-
-
-//
-// Basic progress bar
-//
-
-.progress {
-  display: block;
-  width: 100%;
-  height: $spacer-y; // todo: make a new var for this
-  margin-bottom: $spacer-y;
-}
-.progress[value] {
-  // Set overall background
-  background-color: $progress-bg;
-  // Remove Firefox and Opera border
-  border: 0;
-  // Reset the default appearance
-  appearance: none;
-  // Set overall border radius
-  @include border-radius($border-radius);
-}
-
-// Filled-in portion of the bar
-.progress[value]::-ms-fill {
-  background-color: $progress-bar-color;
-  // Remove right-hand border of value bar from IE10+/Edge
-  border: 0;
-}
-.progress[value]::-moz-progress-bar {
-  background-color: $progress-bar-color;
-  @include border-left-radius($border-radius);
-}
-.progress[value]::-webkit-progress-value {
-  background-color: $progress-bar-color;
-  @include border-left-radius($border-radius);
-}
-// Tweaks for full progress bar
-.progress[value="100"]::-moz-progress-bar {
-  @include border-right-radius($border-radius);
-}
-.progress[value="100"]::-webkit-progress-value {
-  @include border-right-radius($border-radius);
-}
-
-// Unfilled portion of the bar
-.progress[value]::-webkit-progress-bar {
-  background-color: $progress-bg;
-  @include border-radius($border-radius);
-  @include box-shadow($progress-box-shadow);
-}
-base::-moz-progress-bar, // Absurd-but-syntactically-valid selector to make these styles Firefox-only
-.progress[value] {
-  background-color: $progress-bg;
-  @include border-radius($border-radius);
-  @include box-shadow($progress-box-shadow);
-}
-
-// IE9 hacks to accompany custom markup. We don't need to scope this via media queries, but I feel better doing it anyway.
-@media screen and (min-width:0\0) {
-  .progress {
-    background-color: $progress-bg;
-    @include border-radius($border-radius);
-    @include box-shadow($progress-box-shadow);
-  }
-  .progress-bar {
-    display: inline-block;
-    height: $spacer-y;
-    text-indent: -999rem; // Simulate hiding of value as in native `<progress>`
-    background-color: $progress-bar-color;
-    @include border-left-radius($border-radius);
-  }
-  .progress[width="100%"] {
-    @include border-right-radius($border-radius);
-  }
-}
-
-
-//
-// Striped
-//
-
-.progress-striped[value]::-webkit-progress-value {
-  @include gradient-striped();
-  background-size: $spacer-y $spacer-y;
-}
-.progress-striped[value]::-moz-progress-bar {
-  @include gradient-striped();
-  background-size: $spacer-y $spacer-y;
-}
-.progress-striped[value]::-ms-fill {
-  @include gradient-striped();
-  background-size: $spacer-y $spacer-y;
-}
-// IE9
-@media screen and (min-width:0\0) {
-  .progress-bar-striped {
-    @include gradient-striped();
-    background-size: $spacer-y $spacer-y;
-  }
-}
-
-
-//
-// Animated
-//
-
-.progress-animated[value]::-webkit-progress-value {
-  animation: progress-bar-stripes 2s linear infinite;
-}
-.progress-animated[value]::-moz-progress-bar {
-  animation: progress-bar-stripes 2s linear infinite;
-}
-// IE9
-@media screen and (min-width:0\0) {
-  .progress-animated .progress-bar-striped {
-    animation: progress-bar-stripes 2s linear infinite;
-  }
-}
-
-
-//
-// Variations
-//
-
-.progress-success {
-  @include progress-variant($progress-bar-success-bg);
-}
-.progress-info {
-  @include progress-variant($progress-bar-info-bg);
-}
-.progress-warning {
-  @include progress-variant($progress-bar-warning-bg);
-}
-.progress-danger {
-  @include progress-variant($progress-bar-danger-bg);
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_reboot.scss b/demo/Angular2_Demo/scss/bootstrap/_reboot.scss
deleted file mode 100755
index 02c579d32cb8bafa1660e2d38a81576c0824e56d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_reboot.scss
+++ /dev/null
@@ -1,393 +0,0 @@
-// scss-lint:disable ImportantRule, QualifyingElement, DuplicateProperty
-
-// Reboot
-//
-// Global resets to common HTML elements and more for easier usage by Bootstrap.
-// Adds additional rules on top of Normalize.css, including several overrides.
-
-
-// Reset the box-sizing
-//
-// Change from `box-sizing: content-box` to `border-box` so that when you add
-// `padding` or `border`s to an element, the overall declared `width` does not
-// change. For example, `width: 100px;` will always be `100px` despite the
-// `border: 10px solid red;` and `padding: 20px;`.
-//
-// Heads up! This reset may cause conflicts with some third-party widgets. For
-// recommendations on resolving such conflicts, see
-// http://getbootstrap.com/getting-started/#third-box-sizing.
-//
-// Credit: https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
-
-html {
-  box-sizing: border-box;
-}
-
-*,
-*::before,
-*::after {
-  box-sizing: inherit;
-}
-
-
-// Make viewport responsive
-//
-// @viewport is needed because IE 10+ doesn't honor <meta name="viewport"> in
-// some cases. See http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/.
-// Eventually @viewport will replace <meta name="viewport">.
-//
-// However, `device-width` is broken on IE 10 on Windows (Phone) 8,
-// (see http://timkadlec.com/2013/01/windows-phone-8-and-device-width/ and https://github.com/twbs/bootstrap/issues/10497)
-// and the fix for that involves a snippet of JavaScript to sniff the user agent
-// and apply some conditional CSS.
-//
-// See http://getbootstrap.com/getting-started/#support-ie10-width for the relevant hack.
-//
-// Wrap `@viewport` with `@at-root` for when folks do a nested import (e.g.,
-// `.class-name { @import "bootstrap"; }`).
-@at-root {
-  @-ms-viewport { width: device-width; }
-}
-
-
-//
-// Reset HTML, body, and more
-//
-
-html {
-  // Sets a specific default `font-size` for user with `rem` type scales.
-  font-size: $font-size-root;
-  // As a side-effect of setting the @viewport above,
-  // IE11 & Edge make the scrollbar overlap the content and automatically hide itself when not in use.
-  // Unfortunately, the auto-showing of the scrollbar is sometimes too sensitive,
-  // thus making it hard to click on stuff near the right edge of the page.
-  // So we add this style to force IE11 & Edge to use a "normal", non-overlapping, non-auto-hiding scrollbar.
-  // See https://github.com/twbs/bootstrap/issues/18543
-  -ms-overflow-style: scrollbar;
-  // Changes the default tap highlight to be completely transparent in iOS.
-  -webkit-tap-highlight-color: rgba(0,0,0,0);
-}
-
-body {
-  // Make the `body` use the `font-size-root`
-  font-family: $font-family-base;
-  font-size: $font-size-base;
-  line-height: $line-height-base;
-  // Go easy on the eyes and use something other than `#000` for text
-  color: $body-color;
-  // By default, `<body>` has no `background-color` so we set one as a best practice.
-  background-color: $body-bg;
-}
-
-// Suppress the focus outline on elements that cannot be accessed via keyboard.
-// This prevents an unwanted focus outline from appearing around elements that
-// might still respond to pointer events.
-//
-// Credit: https://github.com/suitcss/base
-[tabindex="-1"]:focus {
-  outline: none !important;
-}
-
-
-//
-// Typography
-//
-
-// Remove top margins from headings
-//
-// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top
-// margin for easier control within type scales as it avoids margin collapsing.
-h1, h2, h3, h4, h5, h6 {
-  margin-top: 0;
-  margin-bottom: .5rem;
-}
-
-// Reset margins on paragraphs
-//
-// Similarly, the top margin on `<p>`s get reset. However, we also reset the
-// bottom margin to use `rem` units instead of `em`.
-p {
-  margin-top: 0;
-  margin-bottom: 1rem;
-}
-
-// Abbreviations and acronyms
-abbr[title],
-// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
-abbr[data-original-title] {
-  cursor: help;
-  border-bottom: 1px dotted $abbr-border-color;
-}
-
-address {
-  margin-bottom: 1rem;
-  font-style: normal;
-  line-height: inherit;
-}
-
-ol,
-ul,
-dl {
-  margin-top: 0;
-  margin-bottom: 1rem;
-}
-
-ol ol,
-ul ul,
-ol ul,
-ul ol {
-  margin-bottom: 0;
-}
-
-dt {
-  font-weight: $dt-font-weight;
-}
-
-dd {
-  margin-bottom: .5rem;
-  margin-left: 0; // Undo browser default
-}
-
-blockquote {
-  margin: 0 0 1rem;
-}
-
-
-//
-// Links
-//
-
-a {
-  color: $link-color;
-  text-decoration: $link-decoration;
-
-  @include hover-focus {
-    color: $link-hover-color;
-    text-decoration: $link-hover-decoration;
-  }
-
-  &:focus {
-    @include tab-focus();
-  }
-}
-
-// And undo these styles for placeholder links/named anchors (without href)
-// which have not been made explicitly keyboard-focusable (without tabindex).
-// It would be more straightforward to just use a[href] in previous block, but that
-// causes specificity issues in many other styles that are too complex to fix.
-// See https://github.com/twbs/bootstrap/issues/19402
-
-a:not([href]):not([tabindex]) {
-  color: inherit;
-  text-decoration: none;
-
-  @include hover-focus {
-    color: inherit;
-    text-decoration: none;
-  }
-
-  &:focus {
-    outline: none;
-  }
-}
-
-
-//
-// Code
-//
-
-pre {
-  // Remove browser default top margin
-  margin-top: 0;
-  // Reset browser default of `1em` to use `rem`s
-  margin-bottom: 1rem;
-  // Normalize v4 removed this property, causing `<pre>` content to break out of wrapping code snippets
-  overflow: auto;
-}
-
-
-//
-// Figures
-//
-
-figure {
-  // Normalize adds `margin` to `figure`s as browsers apply it inconsistently.
-  // We reset that to create a better flow in-page.
-  margin: 0 0 1rem;
-}
-
-
-//
-// Images
-//
-
-img {
-  // By default, `<img>`s are `inline-block`. This assumes that, and vertically
-  // centers them. This won't apply should you reset them to `block` level.
-  vertical-align: middle;
-  // Note: `<img>`s are deliberately not made responsive by default.
-  // For the rationale behind this, see the comments on the `.img-fluid` class.
-}
-
-
-// iOS "clickable elements" fix for role="button"
-//
-// Fixes "clickability" issue (and more generally, the firing of events such as focus as well)
-// for traditionally non-focusable elements with role="button"
-// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
-
-[role="button"] {
-  cursor: pointer;
-}
-
-
-// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.
-//
-// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11
-// DON'T remove the click delay when `<meta name="viewport" content="width=device-width">` is present.
-// However, they DO support removing the click delay via `touch-action: manipulation`.
-// See:
-// * http://v4-alpha.getbootstrap.com/content/reboot/#click-delay-optimization-for-touch
-// * http://caniuse.com/#feat=css-touch-action
-// * http://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay
-
-a,
-area,
-button,
-[role="button"],
-input,
-label,
-select,
-summary,
-textarea {
-  touch-action: manipulation;
-}
-
-
-//
-// Tables
-//
-
-table {
-  // No longer part of Normalize since v4
-  border-collapse: collapse;
-  // Reset for nesting within parents with `background-color`.
-  background-color: $table-bg;
-}
-
-caption {
-  padding-top: $table-cell-padding;
-  padding-bottom: $table-cell-padding;
-  color: $text-muted;
-  text-align: left;
-  caption-side: bottom;
-}
-
-th {
-  // Centered by default, but left-align-ed to match the `td`s below.
-  text-align: left;
-}
-
-
-//
-// Forms
-//
-
-label {
-  // Allow labels to use `margin` for spacing.
-  display: inline-block;
-  margin-bottom: .5rem;
-}
-
-// Work around a Firefox/IE bug where the transparent `button` background
-// results in a loss of the default `button` focus styles.
-//
-// Credit: https://github.com/suitcss/base/
-button:focus {
-  outline: 1px dotted;
-  outline: 5px auto -webkit-focus-ring-color;
-}
-
-input,
-button,
-select,
-textarea {
-  // Remove all `margin`s so our classes don't have to do it themselves.
-  margin: 0;
-  // Normalize includes `font: inherit;`, so `font-family`. `font-size`, etc are
-  // properly inherited. However, `line-height` isn't addressed there. Using this
-  // ensures we don't need to unnecessarily redeclare the global font stack.
-  line-height: inherit;
-  // iOS adds rounded borders by default
-  border-radius: 0;
-}
-
-input[type="radio"],
-input[type="checkbox"] {
-  // Apply a disabled cursor for radios and checkboxes.
-  //
-  // Note: Neither radios nor checkboxes can be readonly.
-  &:disabled {
-    cursor: $cursor-disabled;
-  }
-}
-
-
-input[type="date"],
-input[type="time"],
-input[type="datetime-local"],
-input[type="month"] {
-  // Remove the default appearance of temporal inputs to avoid a Mobile Safari
-  // bug where setting a custom line-height prevents text from being vertically
-  // centered within the input.
-  //
-  // Bug report: https://github.com/twbs/bootstrap/issues/11266
-  -webkit-appearance: listbox;
-}
-
-textarea {
-  // Textareas should really only resize vertically so they don't break their (horizontal) containers.
-  resize: vertical;
-}
-
-fieldset {
-  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
-  // so we reset that to ensure it behaves more like a standard block element.
-  // See https://github.com/twbs/bootstrap/issues/12359.
-  min-width: 0;
-  // Reset the default outline behavior of fieldsets so they don't affect page layout.
-  padding: 0;
-  margin: 0;
-  border: 0;
-}
-
-legend {
-  // Reset the entire legend element to match the `fieldset`
-  display: block;
-  width: 100%;
-  padding: 0;
-  margin-bottom: .5rem;
-  font-size: 1.5rem;
-  line-height: inherit;
-}
-
-input[type="search"] {
-  // This overrides the extra rounded corners on search inputs in iOS so that our
-  // `.form-control` class can properly style them. Note that this cannot simply
-  // be added to `.form-control` as it's not specific enough. For details, see
-  // https://github.com/twbs/bootstrap/issues/11586.
-  -webkit-appearance: none;
-}
-
-// todo: needed?
-output {
-  display: inline-block;
-//  font-size: $font-size-base;
-//  line-height: $line-height;
-//  color: $input-color;
-}
-
-// Always hide an element with the `hidden` HTML attribute (from PureCSS).
-[hidden] {
-  display: none !important;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_responsive-embed.scss b/demo/Angular2_Demo/scss/bootstrap/_responsive-embed.scss
deleted file mode 100755
index 2443219591219ebe7c3205778f905de55eb3873c..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_responsive-embed.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-// Credit: Nicolas Gallagher and SUIT CSS.
-
-.embed-responsive {
-  position: relative;
-  display: block;
-  height: 0;
-  padding: 0;
-  overflow: hidden;
-
-  .embed-responsive-item,
-  iframe,
-  embed,
-  object,
-  video {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    border: 0;
-  }
-}
-
-.embed-responsive-21by9 {
-  padding-bottom: percentage(9 / 21);
-}
-
-.embed-responsive-16by9 {
-  padding-bottom: percentage(9 / 16);
-}
-
-.embed-responsive-4by3 {
-  padding-bottom: percentage(3 / 4);
-}
-
-.embed-responsive-1by1 {
-  padding-bottom: percentage(1 / 1);
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_tables.scss b/demo/Angular2_Demo/scss/bootstrap/_tables.scss
deleted file mode 100755
index d865884ec011b828e607baad423263d5fb8591c1..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_tables.scss
+++ /dev/null
@@ -1,198 +0,0 @@
-//
-// Basic Bootstrap table
-//
-
-.table {
-  width: 100%;
-  max-width: 100%;
-  margin-bottom: $spacer;
-
-  th,
-  td {
-    padding: $table-cell-padding;
-    vertical-align: top;
-    border-top: $table-border-width solid $table-border-color;
-  }
-
-  thead th {
-    vertical-align: bottom;
-    border-bottom: (2 * $table-border-width) solid $table-border-color;
-  }
-
-  tbody + tbody {
-    border-top: (2 * $table-border-width) solid $table-border-color;
-  }
-
-  .table {
-    background-color: $body-bg;
-  }
-}
-
-
-//
-// Condensed table w/ half padding
-//
-
-.table-sm {
-  th,
-  td {
-    padding: $table-sm-cell-padding;
-  }
-}
-
-
-// Bordered version
-//
-// Add borders all around the table and between all the columns.
-
-.table-bordered {
-  border: $table-border-width solid $table-border-color;
-
-  th,
-  td {
-    border: $table-border-width solid $table-border-color;
-  }
-
-  thead {
-    th,
-    td {
-      border-bottom-width: (2 * $table-border-width);
-    }
-  }
-}
-
-
-// Zebra-striping
-//
-// Default zebra-stripe styles (alternating gray and transparent backgrounds)
-
-.table-striped {
-  tbody tr:nth-of-type(odd) {
-    background-color: $table-bg-accent;
-  }
-}
-
-
-// Hover effect
-//
-// Placed here since it has to come after the potential zebra striping
-
-.table-hover {
-  tbody tr {
-    @include hover {
-      background-color: $table-bg-hover;
-    }
-  }
-}
-
-
-// Table backgrounds
-//
-// Exact selectors below required to override `.table-striped` and prevent
-// inheritance to nested tables.
-
-// Generate the contextual variants
-@include table-row-variant(active, $table-bg-active);
-@include table-row-variant(success, $state-success-bg);
-@include table-row-variant(info, $state-info-bg);
-@include table-row-variant(warning, $state-warning-bg);
-@include table-row-variant(danger, $state-danger-bg);
-
-
-// Inverse styles
-//
-// Same table markup, but inverted color scheme—dark background and light text.
-
-.thead-inverse {
-  th {
-    color: #fff;
-    background-color: $gray-dark;
-  }
-}
-
-.thead-default {
-  th {
-    color: $gray;
-    background-color: $gray-lighter;
-  }
-}
-
-.table-inverse {
-  color: $gray-lighter;
-  background-color: $gray-dark;
-
-  th,
-  td,
-  thead th {
-    border-color: $gray;
-  }
-
-  &.table-bordered {
-    border: 0;
-  }
-}
-
-
-
-// Responsive tables
-//
-// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
-// by enabling horizontal scrolling. Only applies <768px. Everything above that
-// will display normally.
-
-.table-responsive {
-  display: block;
-  width: 100%;
-  min-height: .01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)
-  overflow-x: auto;
-
-  // TODO: find out if we need this still.
-  //
-  // border: $table-border-width solid $table-border-color;
-  // -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057
-}
-
-
-.table-reflow {
-  thead {
-    float: left;
-  }
-
-  tbody {
-    display: block;
-    white-space: nowrap;
-  }
-
-  th,
-  td {
-    border-top: $table-border-width solid $table-border-color;
-    border-left: $table-border-width solid $table-border-color;
-
-    &:last-child {
-      border-right: $table-border-width solid $table-border-color;
-    }
-  }
-
-  thead,
-  tbody,
-  tfoot {
-    &:last-child {
-      tr:last-child th,
-      tr:last-child td {
-        border-bottom: $table-border-width solid $table-border-color;
-      }
-    }
-  }
-
-  // scss-lint:disable ImportantRule
-  tr {
-    float: left;
-
-    th,
-    td {
-      display: block !important;
-      border: $table-border-width solid $table-border-color;
-    }
-  }
-  // scss-lint:enable ImportantRule
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_tags.scss b/demo/Angular2_Demo/scss/bootstrap/_tags.scss
deleted file mode 100755
index dee9ed95d23a925a1c5db65be29c0217275443c5..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_tags.scss
+++ /dev/null
@@ -1,77 +0,0 @@
-// Base class
-//
-// Requires one of the contextual, color modifier classes for `color` and
-// `background-color`.
-
-.tag {
-  display: inline-block;
-  padding: $tag-padding-y $tag-padding-x;
-  font-size: $tag-font-size;
-  font-weight: $tag-font-weight;
-  line-height: 1;
-  color: $tag-color;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  @include border-radius();
-
-  // Empty tags collapse automatically
-  &:empty {
-    display: none;
-  }
-}
-
-// Quick fix for tags in buttons
-.btn .tag {
-  position: relative;
-  top: -1px;
-}
-
-// scss-lint:disable QualifyingElement
-// Add hover effects, but only for links
-a.tag {
-  @include hover-focus {
-    color: $tag-link-hover-color;
-    text-decoration: none;
-    cursor: pointer;
-  }
-}
-// scss-lint:enable QualifyingElement
-
-// Pill tags
-//
-// Make them extra rounded with a modifier to replace v3's badges.
-
-.tag-pill {
-  padding-right: $tag-pill-padding-x;
-  padding-left: $tag-pill-padding-x;
-  @include border-radius($tag-pill-border-radius);
-}
-
-// Colors
-//
-// Contextual variations (linked tags get darker on :hover).
-
-.tag-default {
-  @include tag-variant($tag-default-bg);
-}
-
-.tag-primary {
-  @include tag-variant($tag-primary-bg);
-}
-
-.tag-success {
-  @include tag-variant($tag-success-bg);
-}
-
-.tag-info {
-  @include tag-variant($tag-info-bg);
-}
-
-.tag-warning {
-  @include tag-variant($tag-warning-bg);
-}
-
-.tag-danger {
-  @include tag-variant($tag-danger-bg);
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_tooltip.scss b/demo/Angular2_Demo/scss/bootstrap/_tooltip.scss
deleted file mode 100755
index e8151af07db98e0994bad19a2906e0a9ee415849..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_tooltip.scss
+++ /dev/null
@@ -1,87 +0,0 @@
-// Base class
-.tooltip {
-  position: absolute;
-  z-index: $zindex-tooltip;
-  display: block;
-  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
-  // So reset our font and text properties to avoid inheriting weird values.
-  @include reset-text();
-  font-size: $font-size-sm;
-  // Allow breaking very long words so they don't overflow the tooltip's bounds
-  word-wrap: break-word;
-  opacity: 0;
-
-  &.in { opacity: $tooltip-opacity; }
-
-  &.tooltip-top,
-  &.bs-tether-element-attached-bottom {
-    padding: $tooltip-arrow-width 0;
-    margin-top: -$tooltip-margin;
-
-    .tooltip-arrow {
-      bottom: 0;
-      left: 50%;
-      margin-left: -$tooltip-arrow-width;
-      border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
-      border-top-color: $tooltip-arrow-color;
-    }
-  }
-  &.tooltip-right,
-  &.bs-tether-element-attached-left {
-    padding: 0 $tooltip-arrow-width;
-    margin-left: $tooltip-margin;
-
-    .tooltip-arrow {
-      top: 50%;
-      left: 0;
-      margin-top: -$tooltip-arrow-width;
-      border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
-      border-right-color: $tooltip-arrow-color;
-    }
-  }
-  &.tooltip-bottom,
-  &.bs-tether-element-attached-top {
-    padding: $tooltip-arrow-width 0;
-    margin-top: $tooltip-margin;
-
-    .tooltip-arrow {
-      top: 0;
-      left: 50%;
-      margin-left: -$tooltip-arrow-width;
-      border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
-      border-bottom-color: $tooltip-arrow-color;
-    }
-  }
-  &.tooltip-left,
-  &.bs-tether-element-attached-right {
-    padding: 0 $tooltip-arrow-width;
-    margin-left: -$tooltip-margin;
-
-    .tooltip-arrow {
-      top: 50%;
-      right: 0;
-      margin-top: -$tooltip-arrow-width;
-      border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
-      border-left-color: $tooltip-arrow-color;
-    }
-  }
-}
-
-// Wrapper for the tooltip content
-.tooltip-inner {
-  max-width: $tooltip-max-width;
-  padding: $tooltip-padding-y $tooltip-padding-x;
-  color: $tooltip-color;
-  text-align: center;
-  background-color: $tooltip-bg;
-  @include border-radius($border-radius);
-}
-
-// Arrows
-.tooltip-arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-color: transparent;
-  border-style: solid;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_type.scss b/demo/Angular2_Demo/scss/bootstrap/_type.scss
deleted file mode 100755
index ff7114074db490c1eb5007a1cdda977884d58a54..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_type.scss
+++ /dev/null
@@ -1,150 +0,0 @@
-//
-// Headings
-//
-
-h1, h2, h3, h4, h5, h6,
-.h1, .h2, .h3, .h4, .h5, .h6 {
-  margin-bottom: $headings-margin-bottom;
-  font-family: $headings-font-family;
-  font-weight: $headings-font-weight;
-  line-height: $headings-line-height;
-  color: $headings-color;
-}
-
-h1, .h1 { font-size: $font-size-h1; }
-h2, .h2 { font-size: $font-size-h2; }
-h3, .h3 { font-size: $font-size-h3; }
-h4, .h4 { font-size: $font-size-h4; }
-h5, .h5 { font-size: $font-size-h5; }
-h6, .h6 { font-size: $font-size-h6; }
-
-.lead {
-  font-size: $lead-font-size;
-  font-weight: $lead-font-weight;
-}
-
-// Type display classes
-.display-1 {
-  font-size: $display1-size;
-  font-weight: $display1-weight;
-}
-.display-2 {
-  font-size: $display2-size;
-  font-weight: $display2-weight;
-}
-.display-3 {
-  font-size: $display3-size;
-  font-weight: $display3-weight;
-}
-.display-4 {
-  font-size: $display4-size;
-  font-weight: $display4-weight;
-}
-
-
-//
-// Horizontal rules
-//
-
-hr {
-  margin-top: $spacer-y;
-  margin-bottom: $spacer-y;
-  border: 0;
-  border-top: $hr-border-width solid $hr-border-color;
-}
-
-
-//
-// Emphasis
-//
-
-small,
-.small {
-  font-size: $small-font-size;
-  font-weight: normal;
-}
-
-mark,
-.mark {
-  padding: $mark-padding;
-  background-color: $mark-bg;
-}
-
-
-//
-// Lists
-//
-
-.list-unstyled {
-  @include list-unstyled;
-}
-
-// Inline turns list items into inline-block
-.list-inline {
-  @include list-unstyled;
-}
-.list-inline-item {
-  display: inline-block;
-
-  &:not(:last-child) {
-    margin-right: $list-inline-padding;
-  }
-}
-
-
-//
-// Misc
-//
-
-// Builds on `abbr`
-.initialism {
-  font-size: 90%;
-  text-transform: uppercase;
-}
-
-// Blockquotes
-.blockquote {
-  padding: ($spacer / 2) $spacer;
-  margin-bottom: $spacer;
-  font-size: $blockquote-font-size;
-  border-left: $blockquote-border-width solid $blockquote-border-color;
-}
-
-.blockquote-footer {
-  display: block;
-  font-size: 80%; // back to default font-size
-  color: $blockquote-small-color;
-
-  &::before {
-    content: "\2014 \00A0"; // em dash, nbsp
-  }
-}
-
-// Opposite alignment of blockquote
-.blockquote-reverse {
-  padding-right: $spacer;
-  padding-left: 0;
-  text-align: right;
-  border-right: $blockquote-border-width solid $blockquote-border-color;
-  border-left: 0;
-}
-
-.blockquote-reverse .blockquote-footer {
-  &::before {
-    content: "";
-  }
-  &::after {
-    content: "\00A0 \2014"; // nbsp, em dash
-  }
-}
-
-@if not $enable-flex {
-  // Clean up some horizontal `<dl>`s built with grids
-  // scss-lint:disable QualifyingElement
-  dl.row {
-    > dd + dt {
-      clear: left;
-    }
-  }
-  // scss-lint:enable QualifyingElement
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/_utilities.scss b/demo/Angular2_Demo/scss/bootstrap/_utilities.scss
deleted file mode 100755
index 87b8ba6da7ee34725099407327827ac56f470067..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_utilities.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-@import "utilities/background";
-@import "utilities/clearfix";
-@import "utilities/display";
-@import "utilities/flex";
-@import "utilities/pulls";
-@import "utilities/screenreaders";
-@import "utilities/spacing";
-@import "utilities/text";
-@import "utilities/visibility";
diff --git a/demo/Angular2_Demo/scss/bootstrap/_variables.scss b/demo/Angular2_Demo/scss/bootstrap/_variables.scss
deleted file mode 100755
index da9f5ef5bf196a3c018f6f729265e9168f0597a2..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/_variables.scss
+++ /dev/null
@@ -1,829 +0,0 @@
-// Variables
-//
-// Copy settings from this file into the provided `_custom.scss` to override
-// the Bootstrap defaults without modifying key, versioned files.
-
-
-// Table of Contents
-//
-// Colors
-// Options
-// Spacing
-// Body
-// Links
-// Grid breakpoints
-// Grid containers
-// Grid columns
-// Fonts
-// Components
-
-@mixin _assert-ascending($map, $map-name) {
-  $prev-key: null;
-  $prev-num: null;
-  @each $key, $num in $map {
-    @if $prev-num == null {
-      // Do nothing
-    } @else if not comparable($prev-num, $num) {
-      @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
-    } @else if $prev-num >= $num {
-      @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
-    }
-    $prev-key: $key;
-    $prev-num: $num;
-  }
-}
-
-// General variable structure
-//
-// Variable format should follow the `$component-modifier-state-property` order.
-
-
-// Colors
-//
-// Grayscale and brand colors for use across Bootstrap.
-
-$gray-dark:                 #373a3c !default;
-$gray:                      #55595c !default;
-$gray-light:                #818a91 !default;
-$gray-lighter:              #eceeef !default;
-$gray-lightest:             #f7f7f9 !default;
-
-$brand-primary:             #0275d8 !default;
-$brand-success:             #5cb85c !default;
-$brand-info:                #5bc0de !default;
-$brand-warning:             #f0ad4e !default;
-$brand-danger:              #d9534f !default;
-$brand-inverse:             $gray-dark !default;
-
-
-// Options
-//
-// Quickly modify global styling by enabling or disabling optional features.
-
-$enable-flex:               false !default;
-$enable-rounded:            true !default;
-$enable-shadows:            false !default;
-$enable-gradients:          false !default;
-$enable-transitions:        false !default;
-$enable-hover-media-query:  false !default;
-$enable-grid-classes:       true !default;
-$enable-print-styles:       true !default;
-
-
-// Spacing
-//
-// Control the default styling of most Bootstrap elements by modifying these
-// variables. Mostly focused on spacing.
-// You can add more entries to the $spacers map, should you need more variation.
-
-$spacer:   1rem !default;
-$spacer-x: $spacer !default;
-$spacer-y: $spacer !default;
-$spacers: (
-  0: (
-    x: 0,
-    y: 0
-  ),
-  1: (
-    x: $spacer-x,
-    y: $spacer-y
-  ),
-  2: (
-    x: ($spacer-x * 1.5),
-    y: ($spacer-y * 1.5)
-  ),
-  3: (
-    x: ($spacer-x * 3),
-    y: ($spacer-y * 3)
-  )
-) !default;
-$border-width: 1px !default;
-
-
-// Body
-//
-// Settings for the `<body>` element.
-
-$body-bg:    #fff !default;
-$body-color: $gray-dark !default;
-
-
-// Links
-//
-// Style anchor elements.
-
-$link-color:            $brand-primary !default;
-$link-decoration:       none !default;
-$link-hover-color:      darken($link-color, 15%) !default;
-$link-hover-decoration: underline !default;
-
-
-// Grid breakpoints
-//
-// Define the minimum dimensions at which your layout will change,
-// adapting to different screen sizes, for use in media queries.
-
-$grid-breakpoints: (
-  xs: 0,
-  sm: 544px,
-  md: 768px,
-  lg: 992px,
-  xl: 1200px
-) !default;
-@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
-
-
-// Grid containers
-//
-// Define the maximum width of `.container` for different screen sizes.
-
-$container-max-widths: (
-  sm: 576px,
-  md: 720px,
-  lg: 940px,
-  xl: 1140px
-) !default;
-@include _assert-ascending($container-max-widths, "$container-max-widths");
-
-
-// Grid columns
-//
-// Set the number of columns and specify the width of the gutters.
-
-$grid-columns:      12 !default;
-$grid-gutter-width: 30px !default;
-
-
-// Typography
-//
-// Font, line-height, and color for body text, headings, and more.
-
-$font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default;
-$font-family-serif:      Georgia, "Times New Roman", Times, serif !default;
-$font-family-monospace:  Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
-$font-family-base:       $font-family-sans-serif !default;
-
-// Pixel value used to responsively scale all typography. Applied to the `<html>` element.
-$font-size-root: 16px !default;
-
-$font-size-base: 1rem !default;
-$font-size-lg:   1.25rem !default;
-$font-size-sm:   .875rem !default;
-$font-size-xs:   .75rem !default;
-
-$line-height-base: 1.5 !default;
-
-$font-size-h1: 2.5rem !default;
-$font-size-h2: 2rem !default;
-$font-size-h3: 1.75rem !default;
-$font-size-h4: 1.5rem !default;
-$font-size-h5: 1.25rem !default;
-$font-size-h6: 1rem !default;
-
-$display1-size: 6rem !default;
-$display2-size: 5.5rem !default;
-$display3-size: 4.5rem !default;
-$display4-size: 3.5rem !default;
-
-$display1-weight: 300 !default;
-$display2-weight: 300 !default;
-$display3-weight: 300 !default;
-$display4-weight: 300 !default;
-
-$headings-margin-bottom: ($spacer / 2) !default;
-$headings-font-family:   inherit !default;
-$headings-font-weight:   500 !default;
-$headings-line-height:   1.1 !default;
-$headings-color:         inherit !default;
-
-$lead-font-size:   1.25rem !default;
-$lead-font-weight: 300 !default;
-
-$small-font-size: 80% !default;
-
-$text-muted: $gray-light !default;
-
-$abbr-border-color: $gray-light !default;
-
-$blockquote-small-color:  $gray-light !default;
-$blockquote-font-size:    ($font-size-base * 1.25) !default;
-$blockquote-border-color: $gray-lighter !default;
-$blockquote-border-width: .25rem !default;
-
-$hr-border-color: rgba(0,0,0,.1) !default;
-$hr-border-width: $border-width !default;
-
-$mark-padding: .2em !default;
-
-$dt-font-weight: bold !default;
-
-$kbd-box-shadow:         inset 0 -.1rem 0 rgba(0,0,0,.25) !default;
-$nested-kbd-font-weight: bold !default;
-
-$list-inline-padding: 5px !default;
-
-
-// Components
-//
-// Define common padding and border radius sizes and more.
-
-$line-height-lg:         (4 / 3) !default;
-$line-height-sm:         1.5 !default;
-
-$border-radius:          .25rem !default;
-$border-radius-lg:       .3rem !default;
-$border-radius-sm:       .2rem !default;
-
-$component-active-color: #fff !default;
-$component-active-bg:    $brand-primary !default;
-
-$caret-width:            .3em !default;
-$caret-width-lg:         $caret-width !default;
-
-
-// Tables
-//
-// Customizes the `.table` component with basic values, each used across all table variations.
-
-$table-cell-padding:            .75rem !default;
-$table-sm-cell-padding:         .3rem !default;
-
-$table-bg:                      transparent !default;
-$table-bg-accent:               rgba(0,0,0,.05) !default;
-$table-bg-hover:                rgba(0,0,0,.075) !default;
-$table-bg-active:               $table-bg-hover !default;
-
-$table-border-width:            $border-width !default;
-$table-border-color:            $gray-lighter !default;
-
-
-// Buttons
-//
-// For each of Bootstrap's buttons, define text, background and border color.
-
-$btn-padding-x:                  1rem !default;
-$btn-padding-y:                  .5rem !default;
-$btn-line-height:                1.25 !default;
-$btn-font-weight:                normal !default;
-$btn-box-shadow:                 inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075) !default;
-$btn-active-box-shadow:          inset 0 3px 5px rgba(0,0,0,.125) !default;
-
-$btn-primary-color:              #fff !default;
-$btn-primary-bg:                 $brand-primary !default;
-$btn-primary-border:             $btn-primary-bg !default;
-
-$btn-secondary-color:            $gray-dark !default;
-$btn-secondary-bg:               #fff !default;
-$btn-secondary-border:           #ccc !default;
-
-$btn-info-color:                 #fff !default;
-$btn-info-bg:                    $brand-info !default;
-$btn-info-border:                $btn-info-bg !default;
-
-$btn-success-color:              #fff !default;
-$btn-success-bg:                 $brand-success !default;
-$btn-success-border:             $btn-success-bg !default;
-
-$btn-warning-color:              #fff !default;
-$btn-warning-bg:                 $brand-warning !default;
-$btn-warning-border:             $btn-warning-bg !default;
-
-$btn-danger-color:               #fff !default;
-$btn-danger-bg:                  $brand-danger !default;
-$btn-danger-border:              $btn-danger-bg !default;
-
-$btn-link-disabled-color:        $gray-light !default;
-
-$btn-padding-x-sm:               .5rem !default;
-$btn-padding-y-sm:               .25rem !default;
-
-$btn-padding-x-lg:               1.5rem !default;
-$btn-padding-y-lg:               .75rem !default;
-
-$btn-block-spacing-y:            .5rem !default;
-$btn-toolbar-margin:             .5rem !default;
-
-// Allows for customizing button radius independently from global border radius
-$btn-border-radius:              $border-radius !default;
-$btn-border-radius-lg:           $border-radius-lg !default;
-$btn-border-radius-sm:           $border-radius-sm !default;
-
-
-// Forms
-
-$input-padding-x:                .75rem !default;
-$input-padding-y:                .5rem !default;
-$input-line-height:              1.25 !default;
-
-$input-bg:                       #fff !default;
-$input-bg-disabled:              $gray-lighter !default;
-
-$input-color:                    $gray !default;
-$input-border-color:             rgba(0,0,0,.15) !default;
-$input-btn-border-width:         $border-width !default; // For form controls and buttons
-$input-box-shadow:               inset 0 1px 1px rgba(0,0,0,.075) !default;
-
-$input-border-radius:            $border-radius !default;
-$input-border-radius-lg:         $border-radius-lg !default;
-$input-border-radius-sm:         $border-radius-sm !default;
-
-$input-bg-focus:                 $input-bg;
-$input-border-focus:             #66afe9 !default;
-$input-box-shadow-focus:         rgba(102,175,233,.6) !default;
-$input-color-focus:              $input-color;
-
-$input-color-placeholder:        #999 !default;
-
-$input-padding-x-sm:             .5rem !default;
-$input-padding-y-sm:             .25rem !default;
-
-$input-padding-x-lg:             1.5rem !default;
-$input-padding-y-lg:             .75rem !default;
-
-$input-height:                   (($font-size-base * $line-height-base) + ($input-padding-y * 2)) !default;
-$input-height-lg:                (($font-size-lg * $line-height-lg) + ($input-padding-y-lg * 2)) !default;
-$input-height-sm:                (($font-size-sm * $line-height-sm) + ($input-padding-y-sm * 2)) !default;
-
-$form-group-margin-bottom:       $spacer-y !default;
-
-$input-group-addon-bg:           $gray-lighter !default;
-$input-group-addon-border-color: $input-border-color !default;
-
-$cursor-disabled:                not-allowed !default;
-
-$custom-control-gutter:   1.5rem !default;
-$custom-control-spacer-x: 1rem !default;
-$custom-control-spacer-y: .25rem !default;
-
-$custom-control-indicator-size:       1rem !default;
-$custom-control-indicator-bg:         #ddd !default;
-$custom-control-indicator-bg-size:    50% 50% !default;
-$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba(0,0,0,.1) !default;
-
-$custom-control-disabled-cursor:             $cursor-disabled !default;
-$custom-control-disabled-indicator-bg:       #eee !default;
-$custom-control-disabled-description-color:  #767676 !default;
-
-$custom-control-checked-indicator-color:      #fff !default;
-$custom-control-checked-indicator-bg:         #0074d9 !default;
-$custom-control-checked-indicator-box-shadow: none !default;
-
-$custom-control-focus-indicator-box-shadow: 0 0 0 .075rem #fff, 0 0 0 .2rem #0074d9 !default;
-
-$custom-control-active-indicator-color:      #fff !default;
-$custom-control-active-indicator-bg:         #84c6ff !default;
-$custom-control-active-indicator-box-shadow: none !default;
-
-$custom-checkbox-radius: $border-radius !default;
-$custom-checkbox-checked-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E") !default;
-$custom-checkbox-indeterminate-bg: #0074d9 !default;
-$custom-checkbox-indeterminate-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E") !default;
-$custom-checkbox-indeterminate-box-shadow: none !default;
-
-$custom-radio-radius: 50% !default;
-$custom-radio-checked-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E") !default;
-
-$custom-select-padding-x:          .75rem  !default;
-$custom-select-padding-y:          .375rem !default;
-$custom-select-indicator-padding:  1rem !default; // Extra padding to account for the presence of the background-image based indicator
-$custom-select-color:          $input-color !default;
-$custom-select-disabled-color: $gray-light !default;
-$custom-select-bg:            #fff !default;
-$custom-select-disabled-bg:   $gray-lighter !default;
-$custom-select-bg-size:       8px 10px !default; // In pixels because image dimensions
-$custom-select-indicator:     url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") !default;
-$custom-select-border-width:  $input-btn-border-width !default;
-$custom-select-border-color:  $input-border-color !default;
-$custom-select-border-radius: $border-radius !default;
-
-$custom-select-focus-border-color: #51a7e8 !default;
-$custom-select-focus-box-shadow:   inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 5px rgba(81, 167, 232, .5) !default;
-
-$custom-select-sm-padding-y: .2rem !default;
-$custom-select-sm-font-size: 75% !default;
-
-$custom-file-height:           2.5rem !default;
-$custom-file-width:            14rem !default;
-$custom-file-focus-box-shadow: 0 0 0 .075rem #fff, 0 0 0 .2rem #0074d9 !default;
-
-$custom-file-padding-x:     .5rem !default;
-$custom-file-padding-y:     1rem !default;
-$custom-file-line-height:   1.5 !default;
-$custom-file-color:         #555 !default;
-$custom-file-bg:            #fff !default;
-$custom-file-border-width:  $border-width !default;
-$custom-file-border-color:  #ddd !default;
-$custom-file-border-radius: $border-radius !default;
-$custom-file-box-shadow:    inset 0 .2rem .4rem rgba(0,0,0,.05) !default;
-$custom-file-button-color:  $custom-file-color !default;
-$custom-file-button-bg:     #eee !default;
-$custom-file-text: (
-  placeholder: (
-    en: "Choose file..."
-  ),
-  button-label: (
-    en: "Browse"
-  )
-) !default;
-
-
-// Form validation icons
-$form-icon-success: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") !default;
-$form-icon-warning: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f0ad4e' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E") !default;
-$form-icon-danger: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E") !default;
-
-
-// Dropdowns
-//
-// Dropdown menu container and contents.
-
-$dropdown-min-width:             160px !default;
-$dropdown-padding-y:             5px !default;
-$dropdown-margin-top:            2px !default;
-$dropdown-bg:                    #fff !default;
-$dropdown-border-color:          rgba(0,0,0,.15) !default;
-$dropdown-border-width:          $border-width !default;
-$dropdown-divider-bg:            #e5e5e5 !default;
-$dropdown-box-shadow:            0 6px 12px rgba(0,0,0,.175) !default;
-
-$dropdown-link-color:            $gray-dark !default;
-$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
-$dropdown-link-hover-bg:         #f5f5f5 !default;
-
-$dropdown-link-active-color:     $component-active-color !default;
-$dropdown-link-active-bg:        $component-active-bg !default;
-
-$dropdown-link-disabled-color:   $gray-light !default;
-
-$dropdown-item-padding-x:        20px !default;
-
-$dropdown-header-color:          $gray-light !default;
-
-
-// Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-
-$zindex-dropdown-backdrop:  990 !default;
-$zindex-navbar:            1000 !default;
-$zindex-dropdown:          1000 !default;
-$zindex-popover:           1060 !default;
-$zindex-tooltip:           1070 !default;
-$zindex-navbar-fixed:      1030 !default;
-$zindex-navbar-sticky:     1030 !default;
-$zindex-modal-bg:          1040 !default;
-$zindex-modal:             1050 !default;
-
-
-// Navbar
-
-$navbar-border-radius:              $border-radius !default;
-$navbar-padding-x:                  $spacer !default;
-$navbar-padding-y:                  ($spacer / 2) !default;
-$navbar-brand-padding-y:            .25rem !default;
-
-$navbar-dark-color:                 rgba(255,255,255,.5) !default;
-$navbar-dark-hover-color:           rgba(255,255,255,.75) !default;
-$navbar-dark-active-color:          rgba(255,255,255,1) !default;
-$navbar-dark-disabled-color:        rgba(255,255,255,.25) !default;
-
-$navbar-light-color:                rgba(0,0,0,.3) !default;
-$navbar-light-hover-color:          rgba(0,0,0,.6) !default;
-$navbar-light-active-color:         rgba(0,0,0,.8) !default;
-$navbar-light-disabled-color:       rgba(0,0,0,.15) !default;
-
-
-// Navs
-
-$nav-item-margin:               .2rem !default;
-$nav-item-inline-spacer:        1rem !default;
-$nav-link-padding:              .5em 1em !default;
-$nav-link-hover-bg:             $gray-lighter !default;
-$nav-disabled-link-color:       $gray-light !default;
-$nav-disabled-link-hover-color: $gray-light !default;
-$nav-disabled-link-hover-bg:    transparent !default;
-
-$nav-tabs-border-color:                       #ddd !default;
-$nav-tabs-border-width:                       $border-width !default;
-$nav-tabs-border-radius:                      $border-radius !default;
-$nav-tabs-link-hover-border-color:            $gray-lighter !default;
-$nav-tabs-active-link-hover-color:            $gray !default;
-$nav-tabs-active-link-hover-bg:               $body-bg !default;
-$nav-tabs-active-link-hover-border-color:     #ddd !default;
-$nav-tabs-justified-link-border-color:        #ddd !default;
-$nav-tabs-justified-active-link-border-color: $body-bg !default;
-
-$nav-pills-border-radius:     $border-radius !default;
-$nav-pills-active-link-color: $component-active-color !default;
-$nav-pills-active-link-bg:    $component-active-bg !default;
-
-
-// Pagination
-
-$pagination-padding-x:                .75rem !default;
-$pagination-padding-y:                .5rem !default;
-$pagination-padding-x-sm:             .75rem !default;
-$pagination-padding-y-sm:             .275rem !default;
-$pagination-padding-x-lg:             1.5rem !default;
-$pagination-padding-y-lg:             .75rem !default;
-
-
-$pagination-color:                     $link-color !default;
-$pagination-bg:                        #fff !default;
-$pagination-border-width:              $border-width !default;
-$pagination-border-color:              #ddd !default;
-
-$pagination-hover-color:               $link-hover-color !default;
-$pagination-hover-bg:                  $gray-lighter !default;
-$pagination-hover-border:              #ddd !default;
-
-$pagination-active-color:              #fff !default;
-$pagination-active-bg:                 $brand-primary !default;
-$pagination-active-border:             $brand-primary !default;
-
-$pagination-disabled-color:            $gray-light !default;
-$pagination-disabled-bg:               #fff !default;
-$pagination-disabled-border:           #ddd !default;
-
-
-// Jumbotron
-
-$jumbotron-padding:              2rem !default;
-$jumbotron-bg:                   $gray-lighter !default;
-
-
-// Form states and alerts
-//
-// Define colors for form feedback states and, by default, alerts.
-
-$state-success-text:             #3c763d !default;
-$state-success-bg:               #dff0d8 !default;
-$state-success-border:           darken($state-success-bg, 5%) !default;
-
-$state-info-text:                #31708f !default;
-$state-info-bg:                  #d9edf7 !default;
-$state-info-border:              darken($state-info-bg, 7%) !default;
-
-$state-warning-text:             #8a6d3b !default;
-$state-warning-bg:               #fcf8e3 !default;
-$mark-bg:                        $state-warning-bg !default;
-$state-warning-border:           darken($state-warning-bg, 5%) !default;
-
-$state-danger-text:              #a94442 !default;
-$state-danger-bg:                #f2dede !default;
-$state-danger-border:            darken($state-danger-bg, 5%) !default;
-
-
-// Cards
-$card-spacer-x:            1.25rem !default;
-$card-spacer-y:            .75rem !default;
-$card-border-width:        1px !default;
-$card-border-radius:       $border-radius !default;
-$card-border-color:        rgba(0,0,0,.125) !default;
-$card-border-radius-inner: $card-border-radius !default;
-$card-cap-bg:              #f5f5f5 !default;
-$card-bg:                  #fff !default;
-
-$card-link-hover-color:    #fff !default;
-
-$card-img-overlay-padding: 1.25rem !default;
-
-$card-deck-margin:         .625rem !default;
-
-$card-columns-sm-up-column-gap: 1.25rem !default;
-
-
-// Tooltips
-
-$tooltip-max-width:           200px !default;
-$tooltip-color:               #fff !default;
-$tooltip-bg:                  #000 !default;
-$tooltip-opacity:             .9 !default;
-$tooltip-padding-y:           3px !default;
-$tooltip-padding-x:           8px !default;
-$tooltip-margin:              3px !default;
-
-$tooltip-arrow-width:         5px !default;
-$tooltip-arrow-color:         $tooltip-bg !default;
-
-
-// Popovers
-
-$popover-inner-padding:               1px !default;
-$popover-bg:                          #fff !default;
-$popover-max-width:                   276px !default;
-$popover-border-width:                $border-width !default;
-$popover-border-color:                rgba(0,0,0,.2) !default;
-$popover-box-shadow:                  0 5px 10px rgba(0,0,0,.2) !default;
-
-$popover-title-bg:                    darken($popover-bg, 3%) !default;
-$popover-title-padding-x:             14px !default;
-$popover-title-padding-y:             8px !default;
-
-$popover-content-padding-x:           14px !default;
-$popover-content-padding-y:           9px !default;
-
-$popover-arrow-width:                 10px !default;
-$popover-arrow-color:                 $popover-bg !default;
-
-$popover-arrow-outer-width:           ($popover-arrow-width + 1px) !default;
-$popover-arrow-outer-color:           fade-in($popover-border-color, .05) !default;
-
-
-// Tags
-
-$tag-default-bg:            $gray-light !default;
-$tag-primary-bg:            $brand-primary !default;
-$tag-success-bg:            $brand-success !default;
-$tag-info-bg:               $brand-info !default;
-$tag-warning-bg:            $brand-warning !default;
-$tag-danger-bg:             $brand-danger !default;
-
-$tag-color:                 #fff !default;
-$tag-link-hover-color:      #fff !default;
-$tag-font-size:             75% !default;
-$tag-font-weight:           bold !default;
-$tag-padding-x:             .4em !default;
-$tag-padding-y:             .25em !default;
-
-$tag-pill-padding-x:        .6em !default;
-// Use a higher than normal value to ensure completely rounded edges when
-// customizing padding or font-size on labels.
-$tag-pill-border-radius:    10rem !default;
-
-// Modals
-
-// Padding applied to the modal body
-$modal-inner-padding:         15px !default;
-
-$modal-dialog-margin:         10px !default;
-$modal-dialog-sm-up-margin-y: 30px !default;
-
-$modal-title-padding:         15px !default;
-$modal-title-line-height:     $line-height-base !default;
-
-$modal-content-bg:               #fff !default;
-$modal-content-border-color:     rgba(0,0,0,.2) !default;
-$modal-content-border-width:     $border-width !default;
-$modal-content-xs-box-shadow:    0 3px 9px rgba(0,0,0,.5) !default;
-$modal-content-sm-up-box-shadow: 0 5px 15px rgba(0,0,0,.5) !default;
-
-$modal-backdrop-bg:           #000 !default;
-$modal-backdrop-opacity:      .5 !default;
-$modal-header-border-color:   #e5e5e5 !default;
-$modal-footer-border-color:   $modal-header-border-color !default;
-$modal-header-border-width:   $modal-content-border-width !default;
-$modal-footer-border-width:   $modal-header-border-width !default;
-
-$modal-lg:                    900px !default;
-$modal-md:                    600px !default;
-$modal-sm:                    300px !default;
-
-
-// Alerts
-//
-// Define alert colors, border radius, and padding.
-
-$alert-padding:               15px !default;
-$alert-border-radius:         $border-radius !default;
-$alert-link-font-weight:      bold !default;
-$alert-border-width:          $border-width !default;
-
-$alert-success-bg:            $state-success-bg !default;
-$alert-success-text:          $state-success-text !default;
-$alert-success-border:        $state-success-border !default;
-
-$alert-info-bg:               $state-info-bg !default;
-$alert-info-text:             $state-info-text !default;
-$alert-info-border:           $state-info-border !default;
-
-$alert-warning-bg:            $state-warning-bg !default;
-$alert-warning-text:          $state-warning-text !default;
-$alert-warning-border:        $state-warning-border !default;
-
-$alert-danger-bg:             $state-danger-bg !default;
-$alert-danger-text:           $state-danger-text !default;
-$alert-danger-border:         $state-danger-border !default;
-
-
-// Progress bars
-
-$progress-bg:                 #eee !default;
-$progress-bar-color:          #0074d9 !default;
-$progress-border-radius:      $border-radius !default;
-$progress-box-shadow:         inset 0 .1rem .1rem rgba(0,0,0,.1) !default;
-
-$progress-bar-bg:             $brand-primary !default;
-$progress-bar-success-bg:     $brand-success !default;
-$progress-bar-warning-bg:     $brand-warning !default;
-$progress-bar-danger-bg:      $brand-danger !default;
-$progress-bar-info-bg:        $brand-info !default;
-
-
-// List group
-
-$list-group-bg:                 #fff !default;
-$list-group-border-color:       #ddd !default;
-$list-group-border-width:       $border-width !default;
-$list-group-border-radius:      $border-radius !default;
-
-$list-group-hover-bg:           #f5f5f5 !default;
-$list-group-active-color:       $component-active-color !default;
-$list-group-active-bg:          $component-active-bg !default;
-$list-group-active-border:      $list-group-active-bg !default;
-$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
-
-$list-group-disabled-color:      $gray-light !default;
-$list-group-disabled-bg:         $gray-lighter !default;
-$list-group-disabled-text-color: $list-group-disabled-color !default;
-
-$list-group-link-color:         #555 !default;
-$list-group-link-hover-color:   $list-group-link-color !default;
-$list-group-link-heading-color: #333 !default;
-
-$list-group-item-padding-x:             1.25rem !default;
-$list-group-item-padding-y:             .75rem !default;
-$list-group-item-heading-margin-bottom: 5px !default;
-
-
-// Image thumbnails
-
-$thumbnail-padding:           .25rem !default;
-$thumbnail-bg:                $body-bg !default;
-$thumbnail-border-width:      $border-width !default;
-$thumbnail-border-color:      #ddd !default;
-$thumbnail-border-radius:     $border-radius !default;
-$thumbnail-box-shadow:        0 1px 2px rgba(0,0,0,.075) !default;
-
-
-// Figures
-
-$figure-caption-font-size: 90% !default;
-
-
-// Breadcrumbs
-
-$breadcrumb-padding-y:          .75rem !default;
-$breadcrumb-padding-x:          1rem !default;
-$breadcrumb-item-padding:       .5rem !default;
-
-$breadcrumb-bg:                 $gray-lighter !default;
-$breadcrumb-divider-color:      $gray-light !default;
-$breadcrumb-active-color:       $gray-light !default;
-$breadcrumb-divider:            "/" !default;
-
-
-// Media objects
-
-$media-margin-top:            15px !default;
-$media-heading-margin-bottom:  5px !default;
-$media-alignment-padding-x:   10px !default;
-
-
-// Carousel
-
-$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
-
-$carousel-control-color:                      #fff !default;
-$carousel-control-width:                      15% !default;
-$carousel-control-sm-up-size:                 30px !default;
-$carousel-control-opacity:                    .5 !default;
-$carousel-control-font-size:                  20px !default;
-
-$carousel-indicators-width:                   60% !default;
-
-$carousel-indicator-size:                     10px !default;
-$carousel-indicator-active-size:              12px !default;
-$carousel-indicator-active-bg:                #fff !default;
-$carousel-indicator-border-color:             #fff !default;
-
-$carousel-caption-width:                      70% !default;
-$carousel-caption-sm-up-width:                60% !default;
-$carousel-caption-color:                      #fff !default;
-
-$carousel-icon-width:                         20px !default;
-
-
-// Close
-
-$close-font-weight:           bold !default;
-$close-color:                 #000 !default;
-$close-text-shadow:           0 1px 0 #fff !default;
-
-
-// Code
-
-$code-font-size:              90% !default;
-$code-padding-x:              .4rem !default;
-$code-padding-y:              .2rem !default;
-$code-color:                  #bd4147 !default;
-$code-bg:                     #f7f7f9 !default;
-
-$kbd-color:                   #fff !default;
-$kbd-bg:                      #333 !default;
-
-$pre-bg:                      #f7f7f9 !default;
-$pre-color:                   $gray-dark !default;
-$pre-border-color:            #ccc !default;
-$pre-scrollable-max-height:   340px !default;
diff --git a/demo/Angular2_Demo/scss/bootstrap/bootstrap-flex.scss b/demo/Angular2_Demo/scss/bootstrap/bootstrap-flex.scss
deleted file mode 100755
index 60dd03a686101e44edb356d69ad02ad7f8ac64d8..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/bootstrap-flex.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// Bootstrap with Flexbox enabled
-//
-// Includes all the imports from the standard Bootstrap project, but enables
-// the flexbox variable.
-
-$enable-flex: true;
-
-@import "bootstrap";
diff --git a/demo/Angular2_Demo/scss/bootstrap/bootstrap-grid.scss b/demo/Angular2_Demo/scss/bootstrap/bootstrap-grid.scss
deleted file mode 100755
index 40680ca96576ddff0970b283376d83d0bf1364ea..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/bootstrap-grid.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-// Bootstrap Grid only
-//
-// Includes relevant variables and mixins for the regular (non-flexbox) grid
-// system, as well as the generated predefined classes (e.g., `.col-4-sm`).
-
-
-//
-// Variables
-//
-
-@import "custom";
-@import "variables";
-
-//
-// Grid mixins
-//
-
-@import "mixins/clearfix";
-@import "mixins/breakpoints";
-@import "mixins/grid-framework";
-@import "mixins/grid";
-
-@import "grid";
diff --git a/demo/Angular2_Demo/scss/bootstrap/bootstrap-reboot.scss b/demo/Angular2_Demo/scss/bootstrap/bootstrap-reboot.scss
deleted file mode 100755
index eeff5166c69ffd35db0350066f1549ef195c5bbd..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/bootstrap-reboot.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-// Bootstrap Reboot only
-//
-// Includes only Normalize and our custom Reboot reset.
-
-@import "custom";
-@import "variables";
-@import "mixins/hover";
-@import "mixins/tab-focus";
-
-@import "normalize";
-@import "reboot";
diff --git a/demo/Angular2_Demo/scss/bootstrap/bootstrap.scss b/demo/Angular2_Demo/scss/bootstrap/bootstrap.scss
deleted file mode 100755
index 798bee8f3bf3fb5b811a8596d57261b3c9d100b9..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/bootstrap.scss
+++ /dev/null
@@ -1,52 +0,0 @@
-// Core variables and mixins
-@import "../coreui/bootstrap-variables";
-@import "variables";
-@import "../coreui/coreui-variables";
-@import "mixins";
-@import "../coreui/mixins";
-
-// Reset and dependencies
-@import "normalize";
-@import "print";
-
-// Core CSS
-@import "reboot";
-@import "type";
-@import "images";
-@import "code";
-@import "grid";
-@import "tables";
-@import "forms";
-@import "buttons";
-
-// Components
-@import "animation";
-@import "dropdown";
-@import "button-group";
-@import "input-group";
-//@import "custom-forms";
-@import "nav";
-@import "navbar";
-@import "card";
-@import "breadcrumb";
-@import "pagination";
-@import "tags";
-//@import "jumbotron";
-@import "alert";
-@import "progress";
-@import "media";
-@import "list-group";
-@import "responsive-embed";
-@import "close";
-
-// Components w/ JavaScript
-@import "modal";
-@import "tooltip";
-@import "popover";
-//@import "carousel";
-
-// Utility classes
-@import "utilities";
-
-// CoreUI Styles
-@import "../coreui/coreui";
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_alert.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_alert.scss
deleted file mode 100755
index 6ed3a81ab1d015aaaf2074fe6d028fdb88b105a4..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_alert.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-// Alerts
-
-@mixin alert-variant($background, $border, $body-color) {
-  background-color: $background;
-  border-color: $border;
-  color: $body-color;
-
-  hr {
-    border-top-color: darken($border, 5%);
-  }
-  .alert-link {
-    color: darken($body-color, 10%);
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_background-variant.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_background-variant.scss
deleted file mode 100755
index ff21ad958f70a00c4243d34d64768ed6fce78d3a..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_background-variant.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-// Contextual backgrounds
-
-@mixin bg-variant($parent, $color) {
-  #{$parent} {
-    color: #fff !important;
-    background-color: $color !important;
-  }
-  a#{$parent} {
-    @include hover-focus {
-      background-color: darken($color, 10%) !important;
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_border-radius.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_border-radius.scss
deleted file mode 100755
index 54f29f41da40170873dca54b089a60a41e123f98..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_border-radius.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-// Single side border-radius
-
-@mixin border-radius($radius: $border-radius) {
-  @if $enable-rounded {
-    border-radius: $radius;
-  }
-}
-
-@mixin border-top-radius($radius) {
-  @if $enable-rounded {
-    border-top-right-radius: $radius;
-    border-top-left-radius: $radius;
-  }
-}
-
-@mixin border-right-radius($radius) {
-  @if $enable-rounded {
-    border-bottom-right-radius: $radius;
-    border-top-right-radius: $radius;
-  }
-}
-
-@mixin border-bottom-radius($radius) {
-  @if $enable-rounded {
-    border-bottom-right-radius: $radius;
-    border-bottom-left-radius: $radius;
-  }
-}
-
-@mixin border-left-radius($radius) {
-  @if $enable-rounded {
-    border-bottom-left-radius: $radius;
-    border-top-left-radius: $radius;
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_breakpoints.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_breakpoints.scss
deleted file mode 100755
index a868833b45eba156ed36a498eb5a5597c5f1a546..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_breakpoints.scss
+++ /dev/null
@@ -1,86 +0,0 @@
-// Breakpoint viewport sizes and media queries.
-//
-// Breakpoints are defined as a map of (name: minimum width), order from small to large:
-//
-//    (xs: 0, sm: 544px, md: 768px)
-//
-// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.
-
-// Name of the next breakpoint, or null for the last breakpoint.
-//
-//    >> breakpoint-next(sm)
-//    md
-//    >> breakpoint-next(sm, (xs: 0, sm: 544px, md: 768px))
-//    md
-//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md))
-//    md
-@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
-  $n: index($breakpoint-names, $name);
-  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
-}
-
-// Minimum breakpoint width. Null for the smallest (first) breakpoint.
-//
-//    >> breakpoint-min(sm, (xs: 0, sm: 544px, md: 768px))
-//    544px
-@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
-  $min: map-get($breakpoints, $name);
-  @return if($min != 0, $min, null);
-}
-
-// Maximum breakpoint width. Null for the largest (last) breakpoint.
-// The maximum value is calculated as the minimum of the next one less 0.1.
-//
-//    >> breakpoint-max(sm, (xs: 0, sm: 544px, md: 768px))
-//    767px
-@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
-  $next: breakpoint-next($name, $breakpoints);
-  @return if($next, breakpoint-min($next, $breakpoints) - 1px, null);
-}
-
-// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
-// Makes the @content apply to the given breakpoint and wider.
-@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
-  $min: breakpoint-min($name, $breakpoints);
-  @if $min {
-    @media (min-width: $min) {
-      @content;
-    }
-  } @else {
-    @content;
-  }
-}
-
-// Media of at most the maximum breakpoint width. No query for the largest breakpoint.
-// Makes the @content apply to the given breakpoint and narrower.
-@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
-  $max: breakpoint-max($name, $breakpoints);
-  @if $max {
-    @media (max-width: $max) {
-      @content;
-    }
-  } @else {
-    @content;
-  }
-}
-
-// Media between the breakpoint's minimum and maximum widths.
-// No minimum for the smallest breakpoint, and no maximum for the largest one.
-// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
-@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
-  @include media-breakpoint-up($name, $breakpoints) {
-    @include media-breakpoint-down($name, $breakpoints) {
-      @content;
-    }
-  }
-}
-
-// Media that spans multiple breakpoint widths.
-// Makes the @content apply between the min and max breakpoints
-@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
-  @include media-breakpoint-up($lower, $breakpoints) {
-    @include media-breakpoint-down($upper, $breakpoints) {
-      @content;
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_buttons.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_buttons.scss
deleted file mode 100755
index 5196ab65e19646aa4a054918b97543db096d127b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_buttons.scss
+++ /dev/null
@@ -1,113 +0,0 @@
-// Button variants
-//
-// Easily pump out default styles, as well as :hover, :focus, :active,
-// and disabled options for all buttons
-
-@mixin button-variant($color, $background, $border) {
-  $active-background: darken($background, 10%);
-  $active-border: darken($border, 12%);
-
-  color: $color;
-  background-color: $background;
-  border-color: $border;
-  @include box-shadow($btn-box-shadow);
-
-  @include hover {
-    color: $color;
-    background-color: $active-background;
-        border-color: $active-border;
-  }
-
-  &:focus,
-  &.focus {
-    color: $color;
-    background-color: $active-background;
-        border-color: $active-border;
-  }
-
-  &:active,
-  &.active,
-  .open > &.dropdown-toggle {
-    color: $color;
-    background-color: $active-background;
-        border-color: $active-border;
-    // Remove the gradient for the pressed/active state
-    background-image: none;
-    @include box-shadow($btn-active-box-shadow);
-
-    &:hover,
-    &:focus,
-    &.focus {
-      color: $color;
-      background-color: darken($background, 17%);
-          border-color: darken($border, 25%);
-    }
-  }
-
-  &.disabled,
-  &:disabled {
-    &:focus,
-    &.focus {
-      background-color: $background;
-          border-color: $border;
-    }
-    @include hover {
-      background-color: $background;
-          border-color: $border;
-    }
-  }
-}
-
-@mixin button-outline-variant($color) {
-  color: $color;
-  background-image: none;
-  background-color: transparent;
-  border-color: $color;
-
-  @include hover {
-    color: #fff;
-    background-color: $color;
-        border-color: $color;
-  }
-
-  &:focus,
-  &.focus {
-    color: #fff;
-    background-color: $color;
-        border-color: $color;
-  }
-
-  &:active,
-  &.active,
-  .open > &.dropdown-toggle {
-    color: #fff;
-    background-color: $color;
-        border-color: $color;
-
-    &:hover,
-    &:focus,
-    &.focus {
-      color: #fff;
-      background-color: darken($color, 17%);
-          border-color: darken($color, 25%);
-    }
-  }
-
-  &.disabled,
-  &:disabled {
-    &:focus,
-    &.focus {
-      border-color: lighten($color, 20%);
-    }
-    @include hover {
-      border-color: lighten($color, 20%);
-    }
-  }
-}
-
-// Button sizes
-@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {
-  padding: $padding-y $padding-x;
-  font-size: $font-size;
-  @include border-radius($border-radius);
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_cards.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_cards.scss
deleted file mode 100755
index 574349abad8270f44899cff6dfb9113ea16f7305..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_cards.scss
+++ /dev/null
@@ -1,44 +0,0 @@
-// Card variants
-
-@mixin card-variant($background, $border) {
-  background-color: $background;
-  border-color: $border;
-
-  .card-header,
-  .card-footer {
-    background-color: transparent;
-  }
-}
-
-@mixin card-outline-variant($color) {
-  background-color: transparent;
-  border-color: $color;
-}
-
-//
-// Inverse text within a card for use with dark backgrounds
-//
-
-@mixin card-inverse {
-  .card-header,
-  .card-footer {
-    border-color: rgba(255,255,255,.2);
-  }
-  .card-header,
-  .card-footer,
-  .card-title,
-  .card-blockquote {
-    color: #fff;
-  }
-  .card-link,
-  .card-text,
-  .card-subtitle,
-  .card-blockquote .blockquote-footer {
-    color: rgba(255,255,255,.65);
-  }
-  .card-link {
-    @include hover-focus {
-      color: $card-link-hover-color;
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_clearfix.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_clearfix.scss
deleted file mode 100755
index d0ae125f3d46a618f031df27a2db57ffe9f778d3..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_clearfix.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-@mixin clearfix() {
-  &::after {
-    content: "";
-    display: table;
-    clear: both;
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_forms.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_forms.scss
deleted file mode 100755
index 026e41e23d8b24ca2a98c9fce6482b85744f7fe6..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_forms.scss
+++ /dev/null
@@ -1,92 +0,0 @@
-// Form validation states
-//
-// Used in _forms.scss to generate the form validation CSS for warnings, errors,
-// and successes.
-
-@mixin form-control-validation($color) {
-  // Color the label and help text
-  .form-control-feedback,
-  .form-control-label,
-  .radio,
-  .checkbox,
-  .radio-inline,
-  .checkbox-inline,
-  &.radio label,
-  &.checkbox label,
-  &.radio-inline label,
-  &.checkbox-inline label,
-  .custom-control {
-    color: $color;
-  }
-  // Set the border and box shadow on specific inputs to match
-  .form-control {
-    border-color: $color;
-    // @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
-
-    &:focus {
-      // border-color: darken($border-color, 10%);
-      // $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
-      // @include box-shadow($shadow);
-    }
-  }
-
-  // Set validation states also for addons
-  .input-group-addon {
-    color: $color;
-    border-color: $color;
-    background-color: lighten($color, 40%);
-  }
-  // Optional feedback icon
-  .form-control-feedback {
-    color: $color;
-  }
-}
-
-// Form control focus state
-//
-// Generate a customized focus state and for any input with the specified color,
-// which defaults to the `@input-border-focus` variable.
-//
-// We highly encourage you to not customize the default value, but instead use
-// this to tweak colors on an as-needed basis. This aesthetic change is based on
-// WebKit's default styles, but applicable to a wider range of browsers. Its
-// usability and accessibility should be taken into account with any change.
-//
-// Example usage: change the default blue border and shadow to white for better
-// contrast against a dark gray background.
-@mixin form-control-focus() {
-  &:focus {
-    color: $input-color-focus;
-    background-color: $input-bg-focus;
-    border-color: $input-border-focus;
-    outline: none;
-    $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $input-box-shadow-focus;
-    @include box-shadow($shadow);
-  }
-}
-
-// Form control sizing
-//
-// Relative text size, padding, and border-radii changes for form controls. For
-// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
-// element gets special love because it's special, and that's a fact!
-
-@mixin input-size($parent, $input-height, $padding-y, $padding-x, $font-size, $line-height, $border-radius) {
-  #{$parent} {
-    height: $input-height;
-    padding: $padding-y $padding-x;
-    font-size: $font-size;
-    line-height: $line-height;
-    @include border-radius($border-radius);
-  }
-
-  select#{$parent} {
-    height: $input-height;
-    line-height: $input-height;
-  }
-
-  textarea#{$parent},
-  select[multiple]#{$parent} {
-    height: auto;
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_gradients.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_gradients.scss
deleted file mode 100755
index ac96efe2d2a98a4641c7f9ff4d1fd3bb17ab728e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_gradients.scss
+++ /dev/null
@@ -1,43 +0,0 @@
-// Gradients
-
-// Horizontal gradient, from left to right
-//
-// Creates two color stops, start and end, by specifying a color and position for each color stop.
-// Color stops are not available in IE9.
-@mixin gradient-x($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
-  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9
-}
-
-// Vertical gradient, from top to bottom
-//
-// Creates two color stops, start and end, by specifying a color and position for each color stop.
-// Color stops are not available in IE9.
-@mixin gradient-y($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
-  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9
-}
-
-@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
-  background-repeat: repeat-x;
-  background-image: linear-gradient($deg, $start-color, $end-color);
-}
-@mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
-  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
-  background-repeat: no-repeat;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 gets no color-stop at all for proper fallback
-}
-@mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
-  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
-  background-repeat: no-repeat;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 gets no color-stop at all for proper fallback
-}
-@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
-  background-image: radial-gradient(circle, $inner-color, $outer-color);
-  background-repeat: no-repeat;
-}
-@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
-  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
-}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_grid-framework.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_grid-framework.scss
deleted file mode 100755
index efe923a1c3be5d2b60934aeb6f5f526577bbbee5..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_grid-framework.scss
+++ /dev/null
@@ -1,70 +0,0 @@
-// Framework grid generation
-//
-// Used only by Bootstrap to generate the correct number of grid classes given
-// any value of `$grid-columns`.
-
-@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
-
-  // Common properties for all breakpoints
-  %grid-column {
-    position: relative;
-    // Prevent columns from collapsing when empty
-    min-height: 1px;
-    // Inner gutter via padding
-    padding-right: ($gutter / 2);
-    padding-left: ($gutter / 2);
-
-    @if $enable-flex {
-      width: 100%;
-    }
-  }
-
-  $breakpoint-counter: 0;
-  @each $breakpoint in map-keys($breakpoints) {
-    $breakpoint-counter: ($breakpoint-counter + 1);
-
-    @for $i from 1 through $columns {
-      .col-#{$breakpoint}-#{$i} {
-        @extend %grid-column;
-      }
-    }
-
-    @include media-breakpoint-up($breakpoint, $breakpoints) {
-      // Provide basic `.col-{bp}` classes for equal-width flexbox columns
-      @if $enable-flex {
-        .col-#{$breakpoint} {
-          position: relative;
-          flex-basis: 0;
-          flex-grow: 1;
-          max-width: 100%;
-          min-height: 1px;
-          padding-right: ($grid-gutter-width / 2);
-          padding-left:  ($grid-gutter-width / 2);
-        }
-      }
-
-      @for $i from 1 through $columns {
-        .col-#{$breakpoint}-#{$i} {
-          @include make-col($i, $columns, $gutter);
-        }
-      }
-
-      @each $modifier in (pull, push) {
-        @for $i from 0 through $columns {
-          .#{$modifier}-#{$breakpoint}-#{$i} {
-            @include make-col-modifier($modifier, $i, $columns)
-          }
-        }
-      }
-
-      // `$columns - 1` because offsetting by the width of an entire row isn't possible
-      @for $i from 0 through ($columns - 1) {
-        @if $breakpoint-counter != 1 or $i != 0 { // Avoid emitting useless .offset-xs-0
-          .offset-#{$breakpoint}-#{$i} {
-            @include make-col-modifier(offset, $i, $columns)
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_grid.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_grid.scss
deleted file mode 100755
index 87f112278b3d858845c64df721613900acbc4074..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_grid.scss
+++ /dev/null
@@ -1,84 +0,0 @@
-/// Grid system
-//
-// Generate semantic grid columns with these mixins.
-
-@mixin make-container($gutter: $grid-gutter-width) {
-  margin-left: auto;
-  margin-right: auto;
-  padding-left:  ($gutter / 2);
-  padding-right: ($gutter / 2);
-  @if not $enable-flex {
-    @include clearfix();
-  }
-}
-
-
-// For each breakpoint, define the maximum width of the container in a media query
-@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {
-  @each $breakpoint, $container-max-width in $max-widths {
-    @include media-breakpoint-up($breakpoint, $breakpoints) {
-      max-width: $container-max-width;
-    }
-  }
-}
-
-@mixin make-row($gutter: $grid-gutter-width) {
-  @if $enable-flex {
-    display: flex;
-    flex-wrap: wrap;
-  } @else {
-    @include clearfix();
-  }
-  margin-left:  ($gutter / -2);
-  margin-right: ($gutter / -2);
-}
-
-@mixin make-col-ready($size, $columns: $grid-columns, $gutter: $grid-gutter-width) {
-  position: relative;
-  min-height: 1px; // Prevent collapsing
-  padding-right: ($gutter / 2);
-  padding-left:  ($gutter / 2);
-
-  // Prevent columns from becoming too narrow when at smaller grid tiers by
-  // always setting `width: 100%;`. This works because we use `flex` values
-  // later on to override this initial width.
-  @if $enable-flex {
-    width: 100%;
-  }
-}
-
-@mixin make-col($size, $columns: $grid-columns, $gutter: $grid-gutter-width) {
-  @if $enable-flex {
-    flex: 0 0 percentage($size / $columns);
-    // Add a `max-width` to ensure content within each column does not blow out
-    // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
-    // do not appear to require this.
-    max-width: percentage($size / $columns);
-  } @else {
-    float: left;
-    width: percentage($size / $columns);
-  }
-}
-
-@mixin make-col-offset($size, $columns: $grid-columns) {
-  margin-left: percentage($size / $columns);
-}
-
-@mixin make-col-push($size, $columns: $grid-columns) {
-  left: if($size > 0, percentage($size / $columns), auto);
-}
-
-@mixin make-col-pull($size, $columns: $grid-columns) {
-  right: if($size > 0, percentage($size / $columns), auto);
-}
-
-@mixin make-col-modifier($type, $size, $columns) {
-  // Work around the lack of dynamic mixin @include support (https://github.com/sass/sass/issues/626)
-  @if $type == push {
-    @include make-col-push($size, $columns);
-  } @else if $type == pull {
-    @include make-col-pull($size, $columns);
-  } @else if $type == offset {
-    @include make-col-offset($size, $columns);
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_hover.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_hover.scss
deleted file mode 100755
index 4a648a54d3c5e399e5ba2c46c0f80b2fba248f33..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_hover.scss
+++ /dev/null
@@ -1,60 +0,0 @@
-@mixin hover {
-  // TODO: re-enable along with mq4-hover-shim
-//  @if $enable-hover-media-query {
-//    // See Media Queries Level 4: http://drafts.csswg.org/mediaqueries/#hover
-//    // Currently shimmed by https://github.com/twbs/mq4-hover-shim
-//    @media (hover: hover) {
-//      &:hover { @content }
-//    }
-//  }
-//  @else {
-    &:hover { @content }
-//  }
-}
-
-@mixin hover-focus {
-  @if $enable-hover-media-query {
-    &:focus { @content }
-    @include hover { @content }
-  }
-  @else {
-    &:focus,
-    &:hover {
-      @content
-    }
-  }
-}
-
-@mixin plain-hover-focus {
-  @if $enable-hover-media-query {
-    &,
-    &:focus {
-      @content
-    }
-    @include hover { @content }
-  }
-  @else {
-    &,
-    &:focus,
-    &:hover {
-      @content
-    }
-  }
-}
-
-@mixin hover-focus-active {
-  @if $enable-hover-media-query {
-    &:focus,
-    &:active {
-      @content
-    }
-    @include hover { @content }
-  }
-  @else {
-    &:focus,
-    &:active,
-    &:hover {
-      @content
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_image.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_image.scss
deleted file mode 100755
index 91d2f59eea5815a2910cba1d24c8eed3264c274e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_image.scss
+++ /dev/null
@@ -1,34 +0,0 @@
-// Image Mixins
-// - Responsive image
-// - Retina image
-
-
-// Responsive image
-//
-// Keep images from scaling beyond the width of their parents.
-
-@mixin img-fluid($display: block) {
-  display: $display;
-  max-width: 100%; // Part 1: Set a maximum relative to the parent
-  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
-}
-
-
-// Retina image
-//
-// Short retina mixin for setting background-image and -size.
-
-@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
-  background-image: url($file-1x);
-
-  // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
-  // but doesn't convert dppx=>dpi.
-  // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
-  // Compatibility info: http://caniuse.com/#feat=css-media-resolution
-  @media
-  only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
-  only screen and (min-resolution: 2dppx) { // Standardized
-    background-image: url($file-2x);
-    background-size: $width-1x $height-1x;
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_list-group.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_list-group.scss
deleted file mode 100755
index 81b0f16343e6286b8de70f900ad5e352fca42384..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_list-group.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-// List Groups
-
-@mixin list-group-item-variant($state, $background, $color) {
-  .list-group-item-#{$state} {
-    color: $color;
-    background-color: $background;
-  }
-
-  a.list-group-item-#{$state},
-  button.list-group-item-#{$state} {
-    color: $color;
-
-    .list-group-item-heading {
-      color: inherit;
-    }
-
-    @include hover-focus {
-      color: $color;
-      background-color: darken($background, 5%);
-    }
-
-    &.active {
-      @include plain-hover-focus {
-        color: #fff;
-        background-color: $color;
-        border-color: $color;
-      }
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_lists.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_lists.scss
deleted file mode 100755
index 25185626698393b1365199f93aadd8d3350dc9d5..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_lists.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-// Lists
-
-// Unstyled keeps list items block level, just removes default browser padding and list-style
-@mixin list-unstyled {
-  padding-left: 0;
-  list-style: none;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_nav-divider.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_nav-divider.scss
deleted file mode 100755
index fb3d12e9f69253bb53e35d69688c6cbf6cc153ac..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_nav-divider.scss
+++ /dev/null
@@ -1,10 +0,0 @@
-// Horizontal dividers
-//
-// Dividers (basically an hr) within dropdowns and nav lists
-
-@mixin nav-divider($color: #e5e5e5) {
-  height: 1px;
-  margin: ($spacer-y / 2) 0;
-  overflow: hidden;
-  background-color: $color;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_navbar-align.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_navbar-align.scss
deleted file mode 100755
index c454a4ffe9a477bcee78b107eb83ce9c375a8e75..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_navbar-align.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-// Navbar vertical align
-//
-// Vertically center elements in the navbar.
-// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
-
-// @mixin navbar-vertical-align($element-height) {
-//   margin-top: (($navbar-height - $element-height) / 2);
-//   margin-bottom: (($navbar-height - $element-height) / 2);
-// }
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_pagination.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_pagination.scss
deleted file mode 100755
index 8cd9317cf5226e2f35d19cefa637feb73cfe4a8b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_pagination.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-// Pagination
-
-@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
-  .page-link {
-    padding: $padding-y $padding-x;
-    font-size: $font-size;
-  }
-
-  .page-item {
-    &:first-child {
-      .page-link {
-        @include border-left-radius($border-radius);
-      }
-    }
-    &:last-child {
-      .page-link {
-        @include border-right-radius($border-radius);
-      }
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_progress.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_progress.scss
deleted file mode 100755
index 9622d790b2521d3fc3cc32117b4a1fd6393cfd30..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_progress.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-// Progress bars
-
-@mixin progress-variant($color) {
-  &[value]::-webkit-progress-value {
-    background-color: $color;
-  }
-
-  &[value]::-moz-progress-bar {
-    background-color: $color;
-  }
-
-  // IE10+, Microsoft Edge
-  &[value]::-ms-fill {
-    background-color: $color;
-  }
-
-  // IE9
-  @media screen and (min-width:0\0) {
-    .progress-bar {
-      background-color: $color;
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_pulls.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_pulls.scss
deleted file mode 100755
index 6bdff025d43cf858086b0eefb99f8febce118c8e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_pulls.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-@mixin pull-left {
-  float: left !important;
-}
-@mixin pull-right {
-  float: right !important;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_reset-filter.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_reset-filter.scss
deleted file mode 100755
index 044b349c0ca02d230791c1480587036c0f8d340b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_reset-filter.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// Reset filters for IE
-//
-// When you need to remove a gradient background, do not forget to use this to reset
-// the IE filter for IE9.
-
-@mixin reset-filter() {
-  filter: "progid:DXImageTransform.Microsoft.gradient(enabled = false)";
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_reset-text.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_reset-text.scss
deleted file mode 100755
index bb882f2ac0f8494d6b82d67418a71bc89ed8fbf0..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_reset-text.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-@mixin reset-text {
-  font-family: $font-family-base;
-  // We deliberately do NOT reset font-size or word-wrap.
-  font-style: normal;
-  font-weight: normal;
-  letter-spacing: normal;
-  line-break: auto;
-  line-height: $line-height-base;
-  text-align: left; // Fallback for where `start` is not supported
-  text-align: start;
-  text-decoration: none;
-  text-shadow: none;
-  text-transform: none;
-  white-space: normal;
-  word-break: normal;
-  word-spacing: normal;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_resize.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_resize.scss
deleted file mode 100755
index 83fa6379179cba67dbd3b3fb1b1d167380f361d4..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_resize.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// Resize anything
-
-@mixin resizable($direction) {
-  resize: $direction; // Options: horizontal, vertical, both
-  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_screen-reader.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_screen-reader.scss
deleted file mode 100755
index 6ae65516aa271dcef868cea223a407289876c579..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_screen-reader.scss
+++ /dev/null
@@ -1,32 +0,0 @@
-// Only display content to screen readers
-//
-// See: http://a11yproject.com/posts/how-to-hide-content
-
-@mixin sr-only {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  padding: 0;
-  margin: -1px;
-  overflow: hidden;
-  clip: rect(0,0,0,0);
-  border: 0;
-}
-
-// Use in conjunction with .sr-only to only display content when it's focused.
-//
-// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
-//
-// Credit: HTML5 Boilerplate
-
-@mixin sr-only-focusable {
-  &:active,
-  &:focus {
-    position: static;
-    width: auto;
-    height: auto;
-    margin: 0;
-    overflow: visible;
-    clip: auto;
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_size.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_size.scss
deleted file mode 100755
index b9dd48e8dfdacc6104c2cf360ea30bb65970a32b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_size.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// Sizing shortcuts
-
-@mixin size($width, $height: $width) {
-  width: $width;
-  height: $height;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_tab-focus.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_tab-focus.scss
deleted file mode 100755
index f16ed6428aac35b4bc86d9c18501f651632d2adf..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_tab-focus.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-// WebKit-style focus
-
-@mixin tab-focus() {
-  // WebKit-specific. Other browsers will keep their default outline style.
-  // (Initially tried to also force default via `outline: initial`,
-  // but that seems to erroneously remove the outline in Firefox altogether.)
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_table-row.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_table-row.scss
deleted file mode 100755
index 84f1d305aaf5287dbdf5baea2ff561ff57e425ec..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_table-row.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-// Tables
-
-@mixin table-row-variant($state, $background) {
-  // Exact selectors below required to override `.table-striped` and prevent
-  // inheritance to nested tables.
-  .table-#{$state} {
-    &,
-    > th,
-    > td {
-      background-color: $background;
-    }
-  }
-
-  // Hover states for `.table-hover`
-  // Note: this is not available for cells or rows within `thead` or `tfoot`.
-  .table-hover {
-    $hover-background: darken($background, 5%);
-
-    .table-#{$state} {
-      @include hover {
-        background-color: $hover-background;
-
-        > td,
-        > th {
-          background-color: $hover-background;
-        }
-      }
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_tag.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_tag.scss
deleted file mode 100755
index 900c54e3668620152dcb5db2aa1a3fc8d5cd026d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_tag.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-// Tags
-
-@mixin tag-variant($color) {
-  background-color: $color;
-
-  &[href] {
-    @include hover-focus {
-      background-color: darken($color, 10%);
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_text-emphasis.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_text-emphasis.scss
deleted file mode 100755
index 27a4f454e200d1f816954ffdc50981bf10f4d600..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_text-emphasis.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-// Typography
-
-@mixin text-emphasis-variant($parent, $color) {
-  #{$parent} {
-    color: $color !important;
-  }
-  a#{$parent} {
-    @include hover-focus {
-      color: darken($color, 10%);
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_text-hide.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_text-hide.scss
deleted file mode 100755
index 52a38a906989ed0e4e7b19933c36a73209956056..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_text-hide.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// CSS image replacement
-@mixin text-hide() {
-  font: 0/0 a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/mixins/_text-truncate.scss b/demo/Angular2_Demo/scss/bootstrap/mixins/_text-truncate.scss
deleted file mode 100755
index 5a40bf533a9281f5ef015fdadc4a98ce169d9c2e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/mixins/_text-truncate.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// Text truncate
-// Requires inline-block or block for proper styling
-
-@mixin text-truncate() {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
\ No newline at end of file
diff --git a/demo/Angular2_Demo/scss/bootstrap/utilities/_background.scss b/demo/Angular2_Demo/scss/bootstrap/utilities/_background.scss
deleted file mode 100755
index b1589792f313537c32d30df7afcab12ecd46bb54..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/utilities/_background.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Contextual backgrounds
-//
-
-.bg-inverse {
-  background-color: $brand-inverse;
-}
-
-.bg-faded {
-  background-color: $gray-lightest;
-}
-
-@include bg-variant('.bg-primary', $brand-primary);
-
-@include bg-variant('.bg-success', $brand-success);
-
-@include bg-variant('.bg-info', $brand-info);
-
-@include bg-variant('.bg-warning', $brand-warning);
-
-@include bg-variant('.bg-danger', $brand-danger);
diff --git a/demo/Angular2_Demo/scss/bootstrap/utilities/_clearfix.scss b/demo/Angular2_Demo/scss/bootstrap/utilities/_clearfix.scss
deleted file mode 100755
index e92522a94d82a571b84ac1de470bcb70b176023c..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/utilities/_clearfix.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.clearfix {
-  @include clearfix();
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/utilities/_display.scss b/demo/Angular2_Demo/scss/bootstrap/utilities/_display.scss
deleted file mode 100755
index d74049be8b2fddacd0f43164fefdca94c39abe67..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/utilities/_display.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-//
-// Display utilities
-//
-
-.d-block {
-  display: block !important;
-}
-.d-inline-block {
-  display: inline-block !important;
-}
-.d-inline {
-  display: inline !important;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/utilities/_flex.scss b/demo/Angular2_Demo/scss/bootstrap/utilities/_flex.scss
deleted file mode 100755
index 502885a81e267b30450b8f48a46fd6348882ea31..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/utilities/_flex.scss
+++ /dev/null
@@ -1,37 +0,0 @@
-// Flex variation
-//
-// Custom styles for additional flex alignment options.
-
-@if $enable-flex {
-  @each $breakpoint in map-keys($grid-breakpoints) {
-    // Flex column reordering
-    @include media-breakpoint-up($breakpoint) {
-      .flex-#{$breakpoint}-first { order: -1; }
-      .flex-#{$breakpoint}-last { order: 1; }
-      .flex-#{$breakpoint}-unordered { order: 0; }
-    }
-
-    // Alignment for every item
-    @include media-breakpoint-up($breakpoint) {
-      .flex-items-#{$breakpoint}-top { align-items: flex-start; }
-      .flex-items-#{$breakpoint}-middle { align-items: center; }
-      .flex-items-#{$breakpoint}-bottom { align-items: flex-end; }
-    }
-
-    // Alignment per item
-    @include media-breakpoint-up($breakpoint) {
-      .flex-#{$breakpoint}-top   { align-self: flex-start; }
-      .flex-#{$breakpoint}-middle { align-self: center; }
-      .flex-#{$breakpoint}-bottom { align-self: flex-end; }
-    }
-
-    // Horizontal alignment of item
-    @include media-breakpoint-up($breakpoint) {
-      .flex-items-#{$breakpoint}-left { justify-content: flex-start; }
-      .flex-items-#{$breakpoint}-center { justify-content: center; }
-      .flex-items-#{$breakpoint}-right { justify-content: flex-end; }
-      .flex-items-#{$breakpoint}-around { justify-content: space-around; }
-      .flex-items-#{$breakpoint}-between { justify-content: space-between; }
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/utilities/_pulls.scss b/demo/Angular2_Demo/scss/bootstrap/utilities/_pulls.scss
deleted file mode 100755
index 7fec56c9a37885efcb8a27a1abf3968316495f97..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/utilities/_pulls.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-@each $breakpoint in map-keys($grid-breakpoints) {
-  @include media-breakpoint-up($breakpoint) {
-    .pull-#{$breakpoint}-left {
-      @include pull-left();
-    }
-    .pull-#{$breakpoint}-right {
-      @include pull-right();
-    }
-    .pull-#{$breakpoint}-none {
-      float: none !important;
-    }
-  }
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/utilities/_screenreaders.scss b/demo/Angular2_Demo/scss/bootstrap/utilities/_screenreaders.scss
deleted file mode 100755
index 9f26fde03538350e750a76cf2415a62f960976af..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/utilities/_screenreaders.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-//
-// Screenreaders
-//
-
-.sr-only {
-  @include sr-only();
-}
-
-.sr-only-focusable {
-  @include sr-only-focusable();
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/utilities/_spacing.scss b/demo/Angular2_Demo/scss/bootstrap/utilities/_spacing.scss
deleted file mode 100755
index b7ff044b6dba2dd2e9534f1a074800dbbdb677f2..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/utilities/_spacing.scss
+++ /dev/null
@@ -1,43 +0,0 @@
-// Width
-
-.w-100 { width: 100% !important; }
-
-// Margin and Padding
-
-.m-x-auto {
-  margin-right: auto !important;
-  margin-left:  auto !important;
-}
-
-@each $prop, $abbrev in (margin: m, padding: p) {
-  @each $size, $lengths in $spacers {
-    $length-x:   map-get($lengths, x);
-    $length-y:   map-get($lengths, y);
-
-    .#{$abbrev}-a-#{$size} { #{$prop}:        $length-y $length-x !important; } // a = All sides
-    .#{$abbrev}-t-#{$size} { #{$prop}-top:    $length-y !important; }
-    .#{$abbrev}-r-#{$size} { #{$prop}-right:  $length-x !important; }
-    .#{$abbrev}-b-#{$size} { #{$prop}-bottom: $length-y !important; }
-    .#{$abbrev}-l-#{$size} { #{$prop}-left:   $length-x !important; }
-
-    // Axes
-    .#{$abbrev}-x-#{$size} {
-      #{$prop}-right:  $length-x !important;
-      #{$prop}-left:   $length-x !important;
-    }
-    .#{$abbrev}-y-#{$size} {
-      #{$prop}-top:    $length-y !important;
-      #{$prop}-bottom: $length-y !important;
-    }
-  }
-}
-
-// Positioning
-
-.pos-f-t {
-  position: fixed;
-  top: 0;
-  right: 0;
-  left: 0;
-  z-index: $zindex-navbar-fixed;
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/utilities/_text.scss b/demo/Angular2_Demo/scss/bootstrap/utilities/_text.scss
deleted file mode 100755
index 901f771442bc3cbb33c9a89aa442f4206f138c2d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/utilities/_text.scss
+++ /dev/null
@@ -1,51 +0,0 @@
-//
-// Text
-//
-
-// Alignment
-
-.text-justify        { text-align: justify !important; }
-.text-nowrap         { white-space: nowrap !important; }
-.text-truncate       { @include text-truncate; }
-
-// Responsive alignment
-
-@each $breakpoint in map-keys($grid-breakpoints) {
-  @include media-breakpoint-up($breakpoint) {
-    .text-#{$breakpoint}-left   { text-align: left !important; }
-    .text-#{$breakpoint}-right  { text-align: right !important; }
-    .text-#{$breakpoint}-center { text-align: center !important; }
-  }
-}
-
-// Transformation
-
-.text-lowercase      { text-transform: lowercase !important; }
-.text-uppercase      { text-transform: uppercase !important; }
-.text-capitalize     { text-transform: capitalize !important; }
-
-// Weight and italics
-
-.font-weight-normal  { font-weight: normal; }
-.font-weight-bold    { font-weight: bold; }
-.font-italic         { font-style: italic; }
-
-// Contextual colors
-
-@include text-emphasis-variant('.text-muted', $text-muted);
-
-@include text-emphasis-variant('.text-primary', $brand-primary);
-
-@include text-emphasis-variant('.text-success', $brand-success);
-
-@include text-emphasis-variant('.text-info', $brand-info);
-
-@include text-emphasis-variant('.text-warning', $brand-warning);
-
-@include text-emphasis-variant('.text-danger', $brand-danger);
-
-// Misc
-
-.text-hide {
-  @include text-hide();
-}
diff --git a/demo/Angular2_Demo/scss/bootstrap/utilities/_visibility.scss b/demo/Angular2_Demo/scss/bootstrap/utilities/_visibility.scss
deleted file mode 100755
index 63891677e4fc0f2626db87bf26f02f99639ee830..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/bootstrap/utilities/_visibility.scss
+++ /dev/null
@@ -1,57 +0,0 @@
-// scss-lint:disable ImportantRule
-
-//
-// Visibility utilities
-//
-
-.invisible {
-  visibility: hidden !important;
-}
-
-// Responsive visibility utilities
-
-@each $bp in map-keys($grid-breakpoints) {
-  .hidden-#{$bp}-up {
-    @include media-breakpoint-up($bp) {
-      display: none !important;
-    }
-  }
-  .hidden-#{$bp}-down {
-    @include media-breakpoint-down($bp) {
-      display: none !important;
-    }
-  }
-}
-
-
-// Print utilities
-//
-// Media queries are placed on the inside to be mixin-friendly.
-
-.visible-print-block {
-  display: none !important;
-
-  @media print {
-    display: block !important;
-  }
-}
-.visible-print-inline {
-  display: none !important;
-
-  @media print {
-    display: inline !important;
-  }
-}
-.visible-print-inline-block {
-  display: none !important;
-
-  @media print {
-    display: inline-block !important;
-  }
-}
-
-.hidden-print {
-  @media print {
-    display: none !important;
-  }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/_bootstrap.scss b/demo/Angular2_Demo/scss/coreui/_bootstrap.scss
deleted file mode 100644
index d72acbf3c01d9e24446bf79d7cc50f971a74fe1b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/_bootstrap.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-// Bootstrap
-
-@import "bootstrap/breadcrumb";
-@import "bootstrap/buttons";
-@import "bootstrap/card";
-@import "bootstrap/dropdown";
-@import "bootstrap/input-group";
-@import "bootstrap/navbar";
-@import "bootstrap/progress";
-@import "bootstrap/tables";
-@import "bootstrap/tags";
diff --git a/demo/Angular2_Demo/scss/coreui/_coreui-variables.scss b/demo/Angular2_Demo/scss/coreui/_coreui-variables.scss
deleted file mode 100644
index b6efcca16c434db4f3e4f6224ac086f85ff9e33d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/_coreui-variables.scss
+++ /dev/null
@@ -1,173 +0,0 @@
-// Core Admin Variables
-
-$enable-sidebar-nav-rounded: false;
-
-$border-color: $gray-lighter;
-$layout-transition-speed: .25s;
-
-
-// Social Colors
-
-$facebook: #3b5998;
-$twitter: #00aced;
-$linkedin: #4875b4;
-$google-plus: #d34836;
-$flickr: #ff0084;
-$tumblr: #32506d;
-$xing: #026466;
-$github: #4183c4;
-$html5: #e34f26;
-$openid: #f78c40;
-$stack-overflow: #fe7a15;
-$youtube: #b00;
-$css3: #0170ba;
-$dribbble: #ea4c89;
-$google-plus: #bb4b39;
-$instagram: #517fa4;
-$pinterest: #cb2027;
-$vk: #45668e;
-$yahoo: #400191;
-$behance: #1769ff;
-$dropbox: #007ee5;
-$reddit: #ff4500;
-$spotify: #7ab800;
-$vine: #00bf8f;
-$foursquare: #1073af;
-$vimeo: #aad450;
-
-// Navbar
-
-$navbar-height:                     55px;
-$navbar-bg:                         #fff;
-$navbar-border: (
-    bottom: (
-        size:                       1px,
-        style:                      solid,
-        color:                      $border-color
-    )
-);
-$navbar-brand-width:                155px;
-$navbar-brand-bg:                   #fff;
-$navbar-brand-logo:                 url('../img/coreui-logotyp.png');
-$navbar-brand-logo-size:            70px auto;
-$navbar-brand-border: (
-    bottom: (
-        size:                       1px,
-        style:                      solid,
-        color:                      $border-color
-    )
-);
-
-$navbar-color:                      rgba(0,0,0,.3);
-$navbar-hover-color:                rgba(0,0,0,.6);
-$navbar-active-color:               rgba(0,0,0,.8);
-$navbar-disabled-color:             rgba(0,0,0,.15);
-
-// Sidebar
-
-$sidebar-width:                     200px;
-$sidebar-padding:                   0;
-$sidebar-compact-width:             50px;
-$sidebar-compact-height:            $sidebar-compact-width;
-$sidebar-color:                     #fff;
-$sidebar-bg:                        $gray-dark;
-$sidebar-header-bg:                 rgba(0,0,0,.2);
-$sidebar-footer-bg:                 rgba(0,0,0,.2);
-$sidebar-borders:                   none;
-
-// Sidebar Navigation
-
-$sidebar-nav-color:                 #fff;
-$sidebar-nav-title-padding-y:       .75rem;
-$sidebar-nav-title-padding-x:       1rem;
-$sidebar-nav-title-color:           $gray-lighter;
-$sidebar-nav-link-padding-y:        .75rem;
-$sidebar-nav-link-padding-x:        1rem;
-$sidebar-nav-link-color:            #fff;
-$sidebar-nav-link-bg:               transparent;
-$sidebar-nav-link-icon-color:       $text-muted;
-
-$sidebar-nav-link-borders:          0;
-$sidebar-nav-link-hover-color:      #fff;
-$sidebar-nav-link-hover-bg:         $brand-primary;
-$sidebar-nav-link-hover-icon-color: #fff !important;
-
-$sidebar-nav-link-hover-borders:    0;
-$sidebar-nav-link-active-color:     #fff;
-$sidebar-nav-link-active-bg:        lighten($sidebar-bg, 5%);
-$sidebar-nav-link-active-icon-color: $brand-primary;
-
-$sidebar-nav-link-active-borders:   0;
-
-$sidebar-nav-dropdown-color:        #fff;
-$sidebar-nav-dropdown-bg:           rgba(0,0,0,.2);
-$sidebar-nav-dropdown-borders:      0;
-
-// Top Navigation
-
-$top-nav-bg:                        #fff;
-$top-nav-color:                     $body-color;
-$top-nav-borders: (
-  bottom: (
-    size:                           1px,
-    style:                          solid,
-    color:                          $border-color
-  )
-);
-$top-nav-ul-borders: (
-  all: (
-    size:                           1px,
-    style:                          solid,
-    color:                          $border-color
-  )
-);
-
-$top-nav-hover-color:               #fff;
-$top-nav-hover-bg:                  $brand-primary;
-$top-nav-active-color:              #fff;
-$top-nav-active-bg:                 $brand-primary;
-$top-nav-height:                    $navbar-height - 15px;
-
-// Breadcrumb
-
-$breadcrumb-borders: (
-  bottom: (
-    size:                           1px,
-    style:                          solid,
-    color:                          $border-color
-  )
-);
-
-// Aside
-
-$aside-menu-width:                  250px;
-$aside-menu-color:                  $gray-dark;
-$aside-menu-bg:                     #fff;
-$aside-menu-borders: (
-  left: (
-    size:                           1px,
-    style:                          solid,
-    color:                          $border-color
-  )
-);
-
-$aside-menu-nav-padding-y:          .75rem;
-$aside-menu-nav-padding-x:          1rem;
-
-// Footer
-
-$footer-height: 50px;
-$footer-bg:     $gray-lightest;
-$footer-color:  $body-color;
-$footer-borders: (
-  top: (
-    size:                           1px,
-    style:                          solid,
-    color:                          $border-color
-  )
-);
-
-// Cards
-
-$card-icon-bg:                      transparent;
-$card-icon-color:                   $body-color;
diff --git a/demo/Angular2_Demo/scss/coreui/_main.scss b/demo/Angular2_Demo/scss/coreui/_main.scss
deleted file mode 100644
index 608a47a3bb87cec59392d867d401635a966ad43b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/_main.scss
+++ /dev/null
@@ -1,25 +0,0 @@
-// Additional typography
-@import "main/typography";
-
-// Animations
-@import "main/animate";
-
-// Core files
-@import "main/grid";
-@import "main/layout";
-@import "main/navigation";
-@import "main/aside";
-@import "main/loading";
-@import "main/widgets";
-@import "main/footer";
-@import "main/buttons";
-@import "main/others";
-@import "main/breadcrumb-menu";
-@import "main/avatars";
-@import "main/callout";
-@import "main/switches";
-@import "main/charts";
-@import "main/utilities-border";
-
-// Temporary fixes
-@import "main/temp";
diff --git a/demo/Angular2_Demo/scss/coreui/_mixins.scss b/demo/Angular2_Demo/scss/coreui/_mixins.scss
deleted file mode 100644
index b05116de229e75316b73200a6b41d764ea4f3c56..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/_mixins.scss
+++ /dev/null
@@ -1,92 +0,0 @@
-@mixin button-social-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
-    padding: $padding-y $padding-x;
-    font-size: $font-size;
-    line-height: $line-height;
-    border: 0;
-    @include border-radius($border-radius);
-
-    &:before {
-        width: ($padding-y * 2) + ($font-size * $line-height);
-        height: ($padding-y * 2) + ($font-size * $line-height);
-        padding: $padding-y 0;
-        font-size: $font-size;
-        line-height: $line-height;
-        @include border-radius($border-radius);
-    }
-
-    span {
-        margin-left: ($padding-y * 2) + ($font-size * $line-height);
-    }
-
-    &.icon {
-        width: ($padding-y * 2) + ($font-size * $line-height);
-        height: ($padding-y * 2) + ($font-size * $line-height);
-    }
-}
-
-@mixin avatar($width, $status-width) {
-    position: relative;
-    display: inline-block;
-    width: $width;
-
-    .img-avatar {
-        width: $width;
-        height: $width;
-    }
-
-    .avatar-status {
-        position: absolute;
-        right: 0;
-        bottom: 0;
-        display: block;
-        width: $status-width;
-        height: $status-width;
-        border: 1px solid #fff;
-        border-radius: 50em;
-    }
-}
-
-@mixin borders($borders) {
-    @each $border in $borders {
-        $direction: nth($border, 1);
-        @if $direction == 'all' {
-            $size: map-get(map-get($borders, $direction), size);
-            $style: map-get(map-get($borders, $direction), style);
-            $color: map-get(map-get($borders, $direction), color);
-            border: $size $style $color;
-        } @else if $direction == 'top' {
-            $size: map-get(map-get($borders, $direction), size);
-            $style: map-get(map-get($borders, $direction), style);
-            $color: map-get(map-get($borders, $direction), color);
-            border-top: $size $style $color;
-        } @else if $direction == 'right' {
-            $size: map-get(map-get($borders, $direction), size);
-            $style: map-get(map-get($borders, $direction), style);
-            $color: map-get(map-get($borders, $direction), color);
-            border-right: $size $style $color;
-        } @else if $direction == 'bottom' {
-            $size: map-get(map-get($borders, $direction), size);
-            $style: map-get(map-get($borders, $direction), style);
-            $color: map-get(map-get($borders, $direction), color);
-            border-bottom: $size $style $color;
-        } @else if $direction == 'left' {
-            $size: map-get(map-get($borders, $direction), size);
-            $style: map-get(map-get($borders, $direction), style);
-            $color: map-get(map-get($borders, $direction), color);
-            border-left: $size $style $color;
-        }
-    }
-}
-
-@mixin bg-variant($parent, $color) {
-    #{$parent} {
-        @include border-radius($card-border-radius-inner $card-border-radius-inner $card-border-radius-inner $card-border-radius-inner);
-        color: #fff !important;
-        background-color: $color !important;
-    }
-    a#{$parent} {
-        @include hover-focus {
-            background-color: darken($color, 10%);
-        }
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/_vendors.scss b/demo/Angular2_Demo/scss/coreui/_vendors.scss
deleted file mode 100644
index cc997e2711c6f27257843ecf544cb56c02fe330e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/_vendors.scss
+++ /dev/null
@@ -1 +0,0 @@
-@import "vendors/chart.js/chart";
diff --git a/demo/Angular2_Demo/scss/coreui/bootstrap-variables.scss b/demo/Angular2_Demo/scss/coreui/bootstrap-variables.scss
deleted file mode 100644
index fb2400c05c23cf044d1ee9a8c7eaa8b8bbdea4c2..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/bootstrap-variables.scss
+++ /dev/null
@@ -1,86 +0,0 @@
-// Bootstrap overrides
-
-// Colors
-//
-// Grayscale and brand colors for use across Bootstrap.
-
-$gray-dark:                 #263238;
-$gray:                      #607d8b;
-$gray-light:                #b0bec5;
-$gray-lighter:              #cfd8dc;
-$gray-lightest:             #eceff1;
-
-$brand-primary:             #20a8d8;
-$brand-success:             #4dbd74;
-$brand-info:                #63c2de;
-$brand-warning:             #f8cb00;
-$brand-danger:              #f86c6b;
-
-// Options
-//
-// Quickly modify global styling by enabling or disabling optional features.
-
-$enable-transitions:        true;
-$enable-rounded:            false;
-
-// Spacing
-//
-// Control the default styling of most Bootstrap elements by modifying these
-// variables. Mostly focused on spacing.
-
-$spacer:   1rem !default;
-$spacer-x: $spacer !default;
-$spacer-y: $spacer !default;
-$spacers: (
-  q: (
-    x:   ($spacer-x * 0.25),
-    y:   ($spacer-y * 0.25)
-  ),
-  h: (
-    x:   ($spacer-x * 0.5),
-    y:   ($spacer-y * 0.5)
-  ),
-  0: (
-    x:   0,
-    y:   0
-  ),
-  1: (
-    x:   $spacer-x,
-    y:   $spacer-y
-  ),
-  2: (
-    x:   ($spacer-x * 1.5),
-    y:   ($spacer-y * 1.5)
-  ),
-  3: (
-    x:   ($spacer-x * 3),
-    y:   ($spacer-y * 3)
-  )
-);
-
-// Body
-//
-// Settings for the `<body>` element.
-
-$body-bg:                    #e4e5e6;
-
-// Typography
-//
-// Font, line-height, and color for body text, headings, and more.
-
-$font-size-base:             0.875rem;
-
-// Breadcrumbs
-
-$breadcrumb-bg:                 #fff;
-
-// Cards
-
-$card-border-color:        $gray-lighter;
-$card-cap-bg:              $gray-lightest;
-
-// Dropdowns
-
-$dropdown-padding-y:             0;
-$dropdown-border-color:          $gray-lighter;
-$dropdown-divider-bg:            $gray-lightest;
diff --git a/demo/Angular2_Demo/scss/coreui/bootstrap/_breadcrumb.scss b/demo/Angular2_Demo/scss/coreui/bootstrap/_breadcrumb.scss
deleted file mode 100644
index f81645e737cd6334f2925084ade6e379c811caba..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/bootstrap/_breadcrumb.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-.breadcrumb {
-    position: relative;
-    margin-bottom: 20px;
-
-    @include borders($breadcrumb-borders);
-}
diff --git a/demo/Angular2_Demo/scss/coreui/bootstrap/_buttons.scss b/demo/Angular2_Demo/scss/coreui/bootstrap/_buttons.scss
deleted file mode 100644
index a225bb4135d05f921d99936a06ec4ef6390daa24..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/bootstrap/_buttons.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-.btn {
-
-    .tag {
-        position: absolute;
-        top: 2px;
-        right: 6px;
-        font-size: 9px;
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/bootstrap/_card.scss b/demo/Angular2_Demo/scss/coreui/bootstrap/_card.scss
deleted file mode 100644
index bcde134cd0d749cfe7fecdc58f309e53f66d399c..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/bootstrap/_card.scss
+++ /dev/null
@@ -1,224 +0,0 @@
-.card {
-
-    margin-bottom: 20px;
-
-}
-
-.card-header {
-
-    i.icon-bg {
-        display: inline-block;
-        padding: $card-spacer-y $card-spacer-x !important;
-        margin-top: -$card-spacer-y;
-        margin-right: $card-spacer-x;
-        margin-bottom: -$card-spacer-y;
-        margin-left: -$card-spacer-x;
-        line-height: inherit;
-        color: $card-icon-color;
-        vertical-align: bottom;
-        background: $card-icon-bg;
-        border-right: $card-border-width solid $card-border-color;
-    }
-
-    ul.nav.nav-tabs {
-        margin-top: -$card-spacer-y;
-        margin-bottom: -$card-spacer-y;
-        border-bottom: 0;
-
-        li.nav-item {
-            border-top: 0;
-            a.nav-link {
-                padding: $card-spacer-y $card-spacer-x/2;
-                color: $text-muted;
-                border-top: 0;
-
-                &.active {
-                    color: $body-color;
-                    background: #fff;
-                }
-            }
-        }
-    }
-
-    &.card-header-inverse {
-        color: #fff;
-    }
-
-    @each $variant, $color in (primary: $brand-primary, secondary: $gray-lighter, success: $brand-success, info: $brand-info, warning: $brand-warning, danger: $brand-danger) {
-        &.card-header-#{$variant} {
-            margin: -1px -1px 0;
-            background: $color;
-            border-bottom: 1px solid $color;
-        }
-    }
-
-    .btn {
-        margin-top: - $btn-padding-y;
-    }
-    .btn-sm {
-        margin-top: - $btn-padding-y-sm;
-    }
-    .btn-lg {
-        margin-top: - $btn-padding-y-lg;
-    }
-}
-//
-.card-footer {
-
-    ul {
-        display: table;
-        width: 100%;
-        padding: 0;
-        margin: 0;
-        table-layout: fixed;
-
-        li {
-            display: table-cell;
-            padding: 0 $card-spacer-x;
-            text-align: center;
-
-            progress {
-                margin-top: $card-spacer-y;
-                margin-bottom: 0;
-            }
-        }
-    }
-}
-
-
-//
-// Background variations
-//
-
-@mixin card-variant($color) {
-    background-color: $color;
-
-    .card-header {
-        border-color: darken($color,5%);
-    }
-
-    .card-header, .card-footer {
-        background-color: darken($color,5%);
-        //border: 0;
-    }
-}
-
-@each $variant, $color in (primary: $brand-primary, secondary: $gray-lighter, success: $brand-success, info: $brand-info, warning: $brand-warning, danger: $brand-danger) {
-    .card-#{$variant} {
-        @include card-variant($color)
-    }
-}
-
-.card-inverse {
-    color: #fff;
-
-    .text-muted {
-        color: rgba(255,255,255,.6) !important;
-    }
-
-    .progress[value] {
-        background-color: rgba(255,255,255,.2) !important;
-    }
-
-    // Unfilled portion of the bar
-    .progress[value]::-webkit-progress-bar {
-        background-color: rgba(255,255,255,.2) !important;
-    }
-    base::-moz-progress-bar, // Absurd-but-syntactically-valid selector to make these styles Firefox-only
-    .progress[value] {
-        background-color: rgba(255,255,255,.2) !important;
-    }
-
-    .progress {
-        @include progress-variant(#fff !important);
-    }
-}
-
-// Card Actions
-.card-header {
-    > i {
-        margin-right: $spacer-x/2;
-    }
-    .card-actions {
-        position: absolute;
-        top: 0;
-        right: 0;
-        //height: inherit;
-
-        a, button {
-            display: block;
-            float: left;
-            width: 50px;
-            padding: $card-spacer-y 0;
-            margin: 0 !important;
-            color: $body-color;
-            text-align: center;
-            background: transparent;
-            border: 0;
-            border-left: 1px solid $border-color;
-            box-shadow: 0;
-
-            &:hover {
-                text-decoration: none;
-            }
-
-            [class^="icon-"], [class*=" icon-"] {
-                display: inline-block;
-                vertical-align: middle;
-            }
-
-            i {
-                display: inline-block;
-                transition: .4s;
-            }
-
-            i.r180 {
-                -webkit-transform: rotate(180deg);
-                transform: rotate(180deg);
-            }
-        }
-
-        .input-group {
-            width: 230px;
-            margin: 6px;
-
-            .input-group-addon {
-                background: #fff;
-            }
-
-            input {
-                border-left: 0;
-            }
-        }
-    }
-}
-
-.card-full {
-    margin-top: - $spacer-y;
-    margin-right: - $grid-gutter-width / 2;
-    margin-left: - $grid-gutter-width / 2;
-    border: 0;
-    border-bottom: $card-border-width solid $border-color;
-}
-
-@include media-breakpoint-up(sm) {
-    .card-columns {
-        -moz-column-count: 3;
-        //-moz-column-count: 1.25rem;
-        -webkit-column-count: 3;
-        column-gap: 1.25rem;
-        //-webkit-column-count: 1.25rem;
-        column-count: 3;
-
-        .card {
-            display: inline-block;
-            width: 100%; // Don't let them exceed the column width
-        }
-
-        &.col-2 {
-            -moz-column-count: 2;
-            -webkit-column-count: 2;
-            column-count: 2;
-        }
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/bootstrap/_dropdown.scss b/demo/Angular2_Demo/scss/coreui/bootstrap/_dropdown.scss
deleted file mode 100644
index 68a0c9e1f6c05f62ae766a3080768da636c5a383..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/bootstrap/_dropdown.scss
+++ /dev/null
@@ -1,45 +0,0 @@
-// Links, buttons, and more within the dropdown menu
-.dropdown-item {
-    position: relative;
-    padding: 10px 20px;
-    border-bottom: 1px solid $dropdown-border-color;
-
-    &:last-child {
-        border-bottom: 0;
-    }
-
-    i {
-        display: inline-block;
-        width: 20px;
-        margin-right: 10px;
-        margin-left: -10px;
-        color: $dropdown-border-color;
-        text-align: center;
-    }
-
-    .tag {
-        position: absolute;
-        right: 10px;
-        margin-top: 2px;
-    }
-}
-
-// Dropdown section headers
-.dropdown-header {
-    padding: 8px 20px;
-    background: $dropdown-divider-bg;
-    border-bottom: 1px solid $dropdown-border-color;
-
-    .btn {
-        margin-top: -7px;
-        color: $dropdown-header-color;
-
-        &:hover {
-            color: $body-color;
-        }
-
-        &.pull-right {
-            margin-right: -20px;
-        }
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/bootstrap/_input-group.scss b/demo/Angular2_Demo/scss/coreui/bootstrap/_input-group.scss
deleted file mode 100644
index 536efe0cb9bc802c80e2cc5ed0365cb5406bb721..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/bootstrap/_input-group.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-
-.input-group-addon,
-.input-group-btn {
-    min-width: 40px;
-    white-space: nowrap;
-    vertical-align: middle; // Match the inputs
-}
diff --git a/demo/Angular2_Demo/scss/coreui/bootstrap/_navbar.scss b/demo/Angular2_Demo/scss/coreui/bootstrap/_navbar.scss
deleted file mode 100644
index d272d41e2b48c871de5c4bec54ec25b42c060b0e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/bootstrap/_navbar.scss
+++ /dev/null
@@ -1,109 +0,0 @@
-header.navbar {
-    position: relative;
-    height: $navbar-height;
-    padding: 0;
-    line-height: $navbar-height;
-    background-color: $navbar-bg;
-    @include borders($navbar-border);
-
-    .container-fluid {
-        padding: 0;
-    }
-
-    .nav-item {
-        position: relative;
-        min-width: 50px;
-        margin: 0 !important;
-        text-align: center;
-
-        .nav-link {
-            i {
-                vertical-align: middle;
-            }
-
-            .tag {
-                position: absolute;
-                top: 9px;
-                right: 7px;
-            }
-        }
-    }
-
-    .img-avatar {
-        height: $navbar-height - 20px;
-        margin: 0 10px;
-    }
-
-    .dropdown-menu {
-        padding-bottom: 0;
-        line-height: $line-height-base;
-    }
-
-    .dropdown-item {
-        min-width: 180px;
-    }
-
-    a.navbar-brand {
-        display: inline-block;
-        width: $navbar-brand-width;
-        height: $navbar-height;
-        padding: $navbar-padding-y $navbar-padding-x;
-        background-color: $navbar-brand-bg;
-        background-image: $navbar-brand-logo;
-        background-repeat: no-repeat;
-        background-position: center center;
-        background-size: $navbar-brand-logo-size;
-        @include borders($navbar-brand-border);
-    }
-}
-
-header.navbar {
-    .navbar-brand {
-        margin-right: 0;
-    }
-}
-
-.navbar-toggler {
-    padding: 0 .75em;
-    line-height: $navbar-height - 4px;
-}
-
-header.navbar {
-    .navbar-nav {
-        .nav-link {
-            padding-top: 0;
-            padding-bottom: 0;
-        }
-    }
-}
-
-.navbar-brand {
-    color: $navbar-active-color;
-
-    @include hover-focus {
-        color: $navbar-active-color;
-    }
-}
-
-.navbar-nav {
-    .nav-link {
-        color: $navbar-color;
-
-        @include hover-focus {
-            color: $navbar-hover-color;
-        }
-    }
-
-    .open > .nav-link,
-    .active > .nav-link,
-    .nav-link.open,
-    .nav-link.active {
-        @include plain-hover-focus {
-            color: $navbar-active-color;
-        }
-    }
-}
-
-.navbar-divider {
-    background-color: rgba(0,0,0,.075);
-}
diff --git a/demo/Angular2_Demo/scss/coreui/bootstrap/_progress.scss b/demo/Angular2_Demo/scss/coreui/bootstrap/_progress.scss
deleted file mode 100644
index 9c10c23236989ecc03c1ef845dfd81c41102323e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/bootstrap/_progress.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-.progress {
-    &.progress-sm {
-        height: 8px;
-    }
-    &.progress-xs {
-        height: 4px;
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/bootstrap/_tables.scss b/demo/Angular2_Demo/scss/coreui/bootstrap/_tables.scss
deleted file mode 100644
index 5bc2649097da7df041e03436a2da68afb8a1325f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/bootstrap/_tables.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-.table-outline {
-    border: 1px solid $table-border-color;
-
-    td {
-        vertical-align: middle;
-    }
-}
-
-.table-align-middle {
-
-    td {
-        vertical-align: middle;
-    }
-}
-
-.table-clear {
-    td {
-        border: 0;
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/bootstrap/_tags.scss b/demo/Angular2_Demo/scss/coreui/bootstrap/_tags.scss
deleted file mode 100644
index 1aafa21d11cfcd117a752e66f04767c19d7810b6..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/bootstrap/_tags.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.tag-pill {
-    border-radius: $tag-pill-border-radius;
-}
diff --git a/demo/Angular2_Demo/scss/coreui/coreui.scss b/demo/Angular2_Demo/scss/coreui/coreui.scss
deleted file mode 100644
index 370be12ee1b96fe00ba9579a273688e69c9cfa08..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/coreui.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-// Bootstrap Elements
-@import "bootstrap";
-
-// Vendors
-@import "vendors";
-
-// Main files
-@import "main";
-
-// Mobile View
-@import "main/mobile";
diff --git a/demo/Angular2_Demo/scss/coreui/main/_animate.scss b/demo/Angular2_Demo/scss/coreui/main/_animate.scss
deleted file mode 100644
index 3621deecf87db3665e6d0c8e2d00a24ee63caa04..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_animate.scss
+++ /dev/null
@@ -1,43 +0,0 @@
-@charset "UTF-8";
-
-.animated {
-    -webkit-animation-duration: 1s;
-    animation-duration: 1s;
-    -webkit-animation-fill-mode: both;
-    animation-fill-mode: both;
-}
-
-.animated.infinite {
-    -webkit-animation-iteration-count: infinite;
-    animation-iteration-count: infinite;
-}
-
-.animated.hinge {
-    -webkit-animation-duration: 2s;
-    animation-duration: 2s;
-}
-
-@-webkit-keyframes fadeIn {
-    from {
-        opacity: 0;
-    }
-
-    to {
-        opacity: 1;
-    }
-}
-
-@keyframes fadeIn {
-    from {
-        opacity: 0;
-    }
-
-    to {
-        opacity: 1;
-    }
-}
-
-.fadeIn {
-    -webkit-animation-name: fadeIn;
-    animation-name: fadeIn;
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_aside.scss b/demo/Angular2_Demo/scss/coreui/main/_aside.scss
deleted file mode 100644
index c894be8a17d06577f9cbfb26456dbd51c2fabdd6..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_aside.scss
+++ /dev/null
@@ -1,58 +0,0 @@
-.aside-menu {
-    position: fixed;
-    top: 0;
-    right: -$aside-menu-width;
-    z-index: $zindex-navbar-fixed - 1;
-    width: $aside-menu-width;
-    height: 100%;
-    padding-top: $navbar-height;
-    color: $aside-menu-color;
-    background: $aside-menu-bg;
-    @include borders($aside-menu-borders);
-
-    .nav-tabs {
-        .nav-link {
-            padding: $aside-menu-nav-padding-y $aside-menu-nav-padding-x;
-            color: $body-color;
-            border-top: 0;
-        }
-        .nav-item:first-child {
-            .nav-link {
-                border-left: 0;
-            }
-        }
-    }
-
-    .tab-content {
-        position: relative;
-        height: calc(100vh - #{$aside-menu-nav-padding-y * 2 + $font-size-base} - #{$navbar-height});
-        overflow-x: hidden;
-        overflow-y: auto;
-        -ms-overflow-style: -ms-autohiding-scrollbar;
-
-        &::-webkit-scrollbar {
-            width: 10px;
-            margin-left: -10px;
-            -webkit-appearance: none;
-        }
-
-        // &::-webkit-scrollbar-button {    }
-
-        &::-webkit-scrollbar-track {
-            background-color: lighten($aside-menu-bg, 5%);
-            border-right: 1px solid darken($aside-menu-bg, 5%);
-            border-left: 1px solid darken($aside-menu-bg, 5%);
-        }
-
-        // &::-webkit-scrollbar-track-piece {    }
-
-        &::-webkit-scrollbar-thumb {
-            height: 50px;
-            background-color: darken($aside-menu-bg, 10%);
-            background-clip: content-box;
-            border-color: transparent;
-            border-style: solid;
-            border-width: 1px 2px;
-        }
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_avatars.scss b/demo/Angular2_Demo/scss/coreui/main/_avatars.scss
deleted file mode 100644
index 07f0c1273ee32924903fcb8b86b56d3a42ef8651..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_avatars.scss
+++ /dev/null
@@ -1,52 +0,0 @@
-.img-avatar {
-    border-radius: 50em;
-}
-
-.avatar {
-    $width: 36px;
-    $status-width: 10px;
-    @include avatar($width,$status-width);
-}
-
-.avatar.avatar-xs {
-    $width: 20px;
-    $status-width: 8px;
-    @include avatar($width,$status-width);
-}
-
-.avatar.avatar-sm {
-    $width: 24px;
-    $status-width: 8px;
-    @include avatar($width,$status-width);
-}
-
-.avatar.avatar-lg {
-    $width: 72px;
-    $status-width: 12px;
-    @include avatar($width,$status-width);
-}
-
-.avatars-stack {
-    .avatar.avatar-xs {
-        margin-right: -10px;
-    }
-
-    // .avatar.avatar-sm {
-    //
-    // }
-
-    .avatar {
-        margin-right: -15px;
-        transition-duration: $layout-transition-speed, $layout-transition-speed;
-        transition-property: margin-left, margin-right;
-
-        &:hover {
-            margin-right: 0 !important;
-        }
-    }
-
-    // .avatar.avatar-lg {
-    //
-    // }
-
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_breadcrumb-menu.scss b/demo/Angular2_Demo/scss/coreui/main/_breadcrumb-menu.scss
deleted file mode 100644
index 0d0fb1b0ba8e7a7bd98434accb070f99ffa1d41f..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_breadcrumb-menu.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-.breadcrumb-menu {
-    position: absolute;
-    top: 0;
-    right: $breadcrumb-padding-x;
-    line-height: 43px;
-
-    &:before {
-        display: none;
-    }
-
-    .btn-group {
-        margin-top: -2px;
-    }
-
-    .btn.btn-secondary {
-        color: $text-muted;
-        border: 0;
-
-        &:hover, &.active {
-            color: $body-color;
-            background: transparent;
-        }
-    }
-
-    .open {
-        .btn.btn-secondary {
-            color: $body-color;
-            background: transparent;
-        }
-    }
-
-    .dropdown-menu {
-        min-width: 180px;
-        line-height: $line-height-base;
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_buttons.scss b/demo/Angular2_Demo/scss/coreui/main/_buttons.scss
deleted file mode 100644
index 330e9731f4a97a8793d103468db7d147b3d8c29e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_buttons.scss
+++ /dev/null
@@ -1,565 +0,0 @@
-.btn-transparent {
-    $color: #fff;
-    $background: transparent;
-    $border: transparent;
-
-    @include button-variant($color, $background, $border)
-}
-
-
-.btn {
-    [class^="icon-"], [class*=" icon-"] {
-        display: inline-block;
-        margin-top: -2px;
-        vertical-align: middle;
-    }
-}
-
-.btn-facebook,
-.btn-twitter,
-.btn-linkedin,
-.btn-flickr,
-.btn-tumblr,
-.btn-xing,
-.btn-github,
-.btn-html5,
-.btn-openid,
-.btn-stack-overflow,
-.btn-youtube,
-.btn-css3,
-.btn-dribbble,
-.btn-google-plus,
-.btn-instagram,
-.btn-pinterest,
-.btn-vk,
-.btn-yahoo,
-.btn-behance,
-.btn-dropbox,
-.btn-reddit,
-.btn-spotify,
-.btn-vine,
-.btn-foursquare,
-.btn-vimeo {
-    position: relative;
-    overflow: hidden;
-    color: #fff !important;
-    text-align: center;
-
-    &:before {
-        position: absolute;
-        top: 0;
-        left: 0;
-        display: block;
-        font-family: 'FontAwesome';
-        font-style: normal;
-        font-weight: normal;
-        -moz-osx-font-smoothing: grayscale;
-        -webkit-font-smoothing: antialiased;
-    }
-
-    &:hover {
-        color: #fff;
-    }
-
-    &.icon {
-
-        span {
-            display: none;
-        }
-    }
-
-    &.text {
-        &:before {
-            display: none;
-        }
-
-        span {
-            margin-left: 0 !important;
-        }
-    }
-    @include button-social-size($btn-padding-y, $btn-padding-x, $font-size-base, $line-height-base, $btn-border-radius);
-
-    &.btn-lg {
-        @include button-social-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $line-height-lg, $btn-border-radius-lg);
-    }
-
-    &.btn-sm {
-        @include button-social-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $line-height-sm, $btn-border-radius-sm);
-    }
-
-}
-
-.btn-facebook {
-    $color: $facebook;
-
-    background: $color;
-    &:before {
-        content: "\f09a";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-twitter {
-    $color: $twitter;
-
-    background: $color;
-    &:before {
-        content: "\f099";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-linkedin {
-    $color: $linkedin;
-
-    background: $color;
-    &:before {
-        content: "\f0e1";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-flickr {
-    $color: $flickr;
-
-    background: $color;
-    &:before {
-        content: "\f16e";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-tumblr {
-    $color: $tumblr;
-
-    background: $color;
-    &:before {
-        content: "\f173";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-xing {
-    $color: $xing;
-
-    background: $color;
-    &:before {
-        content: "\f168";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-github {
-    $color: $github;
-
-    background: $color;
-    &:before {
-        content: "\f09b";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-html5 {
-    $color: $html5;
-
-    background: $color;
-    &:before {
-        content: "\f13b";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-openid {
-    $color: $openid;
-
-    background: $color;
-    &:before {
-        content: "\f19b";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-stack-overflow {
-    $color: $stack-overflow;
-
-    background: $color;
-    &:before {
-        content: "\f16c";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-css3 {
-    $color: $css3;
-
-    background: $color;
-    &:before {
-        content: "\f13c";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-youtube {
-    $color: $youtube;
-
-    background: $color;
-    &:before {
-        content: "\f167";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-dribbble {
-    $color: $dribbble;
-
-    background: $color;
-    &:before {
-        content: "\f17d";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-google-plus {
-    $color: $google-plus;
-
-    background: $color;
-    &:before {
-        content: "\f0d5";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-instagram {
-    $color: $instagram;
-
-    background: $color;
-    &:before {
-        content: "\f16d";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-pinterest {
-    $color: $pinterest;
-
-    background: $color;
-    &:before {
-        content: "\f0d2";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-vk {
-    $color: $vk;
-
-    background: $color;
-    &:before {
-        content: "\f189";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-yahoo {
-    $color: $yahoo;
-
-    background: $color;
-    &:before {
-        content: "\f19e";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-behance {
-    $color: $behance;
-
-    background: $color;
-    &:before {
-        content: "\f1b4";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-dropbox {
-    $color: $dropbox;
-
-    background: $color;
-    &:before {
-        content: "\f16b";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-reddit {
-    $color: $reddit;
-
-    background: $color;
-    &:before {
-        content: "\f1a1";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-spotify {
-    $color: $spotify;
-
-    background: $color;
-    &:before {
-        content: "\f1bc";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-vine {
-    $color: $vine;
-
-    background: $color;
-    &:before {
-        content: "\f1ca";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-foursquare {
-    $color: $foursquare;
-
-    background: $color;
-    &:before {
-        content: "\f180";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
-
-.btn-vimeo {
-    $color: $vimeo;
-
-    background: $color;
-    &:before {
-        content: "\f194";
-        background: darken($color, 5%);
-
-    }
-
-    &:hover {
-        background: darken($color, 5%);
-
-        &:before {
-            background: darken($color, 10%);
-        }
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_callout.scss b/demo/Angular2_Demo/scss/coreui/main/_callout.scss
deleted file mode 100644
index fe9e6bf33a392d609d996a929d74c9fb7dcfc948..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_callout.scss
+++ /dev/null
@@ -1,85 +0,0 @@
-.callout {
-    position: relative;
-    padding: 0 $spacer-y;
-    margin: $spacer-x 0;
-    border: 0 solid $border-color;
-    border-left-width: .25rem;
-
-    @if $enable-rounded {
-        border-radius: .25rem;
-    }
-
-    .chart-wrapper {
-        position: absolute;
-        top: 18px;
-        left: 45%;
-        float: right;
-        width: 100px;
-    }
-}
-
-.callout-bordered {
-    border: 1px solid $border-color;
-    border-left-width: .25rem;
-}
-.callout code {
-    border-radius: .25rem;
-}
-.callout h4 {
-    margin-top: 0;
-    margin-bottom: .25rem;
-}
-.callout p:last-child {
-    margin-bottom: 0;
-}
-.callout + .callout {
-    margin-top: - .25rem;
-}
-
-.callout-default {
-    border-left-color: $text-muted;
-
-    h4 {
-        color: $text-muted;
-    }
-}
-
-.callout-primary {
-    border-left-color: $brand-primary;
-
-    h4 {
-        color: $brand-primary;
-    }
-}
-
-.callout-info {
-    border-left-color: $brand-info;
-
-    h4 {
-        color: $brand-info;
-    }
-}
-
-.callout-warning {
-    border-left-color: $brand-warning;
-
-    h4 {
-        color: $brand-warning;
-    }
-}
-
-.callout-danger {
-    border-left-color: $brand-danger;
-
-    h4 {
-        color: $brand-danger;
-    }
-}
-
-.callout-success {
-    border-left-color: $brand-success;
-
-    h4 {
-        color: $brand-success;
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_charts.scss b/demo/Angular2_Demo/scss/coreui/main/_charts.scss
deleted file mode 100644
index 7432f1648763e635a956f3ea939e6a5ea615f445..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_charts.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-canvas.chart {
-    display: inline-block !important;
-}
-base-chart.chart {
-    display: block !important;
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_footer.scss b/demo/Angular2_Demo/scss/coreui/main/_footer.scss
deleted file mode 100644
index 71b3cd2e7802e935a6941dc1437080070fda3962..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_footer.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-footer.footer {
-    position: absolute;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    height: $footer-height;
-    padding: 0 $spacer-x;
-    line-height: $footer-height;
-    color: $footer-color;
-    background: $footer-bg;
-    @include borders($footer-borders);
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_grid.scss b/demo/Angular2_Demo/scss/coreui/main/_grid.scss
deleted file mode 100644
index bca7bdb59e80b7547e47d9b3df015eba0857b424..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_grid.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-.row.row-equal {
-    padding-right: ($grid-gutter-width / 4);
-    padding-left:  ($grid-gutter-width / 4);
-    margin-right: ($grid-gutter-width / -2);
-    margin-left:  ($grid-gutter-width / -2);
-
-    [class*="col-"] {
-        padding-right: ($grid-gutter-width / 4);
-        padding-left:  ($grid-gutter-width / 4);
-    }
-}
-
-.main .container-fluid {
-    padding: 0 30px;
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_layout.scss b/demo/Angular2_Demo/scss/coreui/main/_layout.scss
deleted file mode 100644
index 521d234ade2250b37a71f1eab36b51fc1899fd63..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_layout.scss
+++ /dev/null
@@ -1,238 +0,0 @@
-html.sidebar-opened {
-    max-width: 100% !important;
-    overflow-x: hidden !important;
-}
-
-body {
-    position: relative;
-    min-height: 100vh;
-    padding: 0;
-    margin: 0;
-
-
-    .bd-title.main {
-        padding: 0 !important;
-    }
-}
-
-.sidebar {
-    left: - $sidebar-width;
-    transition-duration: $layout-transition-speed, $layout-transition-speed, $layout-transition-speed, $layout-transition-speed, $layout-transition-speed, $layout-transition-speed;
-    transition-property: left, right, padding-left, padding-right, margin-left, margin-right;
-
-}
-
-.main {
-    padding-bottom: $footer-height;
-    transition-duration: $layout-transition-speed, $layout-transition-speed, $layout-transition-speed, $layout-transition-speed;
-    transition-property: padding-left, padding-right, margin-left, margin-right;
-}
-
-.aside-menu {
-    transition-duration: $layout-transition-speed, $layout-transition-speed;
-    transition-property: left, right;
-}
-
-.footer {
-    transition-duration: $layout-transition-speed, $layout-transition-speed, $layout-transition-speed, $layout-transition-speed, $layout-transition-speed, $layout-transition-speed;
-    transition-property: padding-left, padding-right, margin-left, margin-right, left, right;
-}
-
-body.std {
-    position: relative;
-
-    header.navbar {
-        z-index: $zindex-navbar-fixed;
-    }
-
-    .sidebar {
-        padding-top: $navbar-height;
-    }
-
-    .main {
-        padding-left: $sidebar-width;
-    }
-}
-
-body.navbar-fixed {
-
-    header.navbar {
-        @extend .navbar-fixed-top;
-    }
-
-    .main {
-        padding-top: $navbar-height;
-    }
-
-    &.top-nav {
-        &.fixed-nav {
-
-            nav.top-nav {
-                position: fixed;
-            }
-
-            .main {
-                padding-top: $navbar-height + $top-nav-height;
-            }
-        }
-    }
-}
-
-body:not(.top-nav) {
-    header.navbar {
-        z-index: $zindex-navbar-fixed;
-    }
-
-    .sidebar {
-        //left: 0;
-        display: inline;
-        padding-top: $navbar-height !important;
-    }
-
-    &.compact-nav {
-
-        .main {
-            padding-left: $sidebar-compact-width;
-        }
-
-        .footer {
-            left: $sidebar-compact-width;
-        }
-    }
-
-    &.fixed-nav {
-
-        .sidebar {
-            position: fixed;
-
-            .sidebar-nav {
-                height: calc(100vh - #{$navbar-height});
-            }
-        }
-
-        .sidebar-footer {
-            position: fixed;
-            bottom: 0;
-            left: 0;
-        }
-    }
-
-    &.sidebar-off-canvas {
-
-        header.navbar {
-            z-index: $zindex-navbar-fixed + 2;
-        }
-
-        .sidebar {
-            left: -$sidebar-width;
-            z-index: $zindex-navbar-fixed + 1;
-            padding-top: 0;
-
-            .sidebar-close {
-                display: inline;
-            }
-
-            .sidebar-nav {
-                height: 100vh;
-            }
-        }
-
-        .main {
-            padding-left: 0;
-        }
-
-        .footer {
-            left: 0;
-        }
-    }
-
-    &.sidebar-opened {
-
-        .sidebar {
-            left: 0;
-        }
-
-        &.sidebar-off-canvas-push {
-
-            .main {
-                margin-right: -$sidebar-width;
-                margin-left: $sidebar-width;
-            }
-
-            .footer {
-                margin-right: -$sidebar-width;
-                margin-left: $sidebar-width;
-            }
-        }
-
-        &.sidebar-off-canvas-with-shadow {
-            position: relative;
-            max-width: 100% !important;
-            overflow-x: hidden !important;
-
-
-            &:after {
-                position: absolute;
-                top: 0;
-                left: 0;
-                z-index: $zindex-navbar-fixed;
-                width: 100%;
-                height: 100%;
-                content: '';
-                background: rgba(0,0,0,.7);
-            }
-        }
-    }
-}
-
-body.sidebar-nav {
-    .sidebar {
-        left: 0;
-    }
-    .main {
-        padding-left: $sidebar-width;
-    }
-
-    .footer {
-        left: $sidebar-width;
-    }
-}
-
-body.top-nav {
-
-    .layout-toggler {
-        display: none !important;
-    }
-
-    .main {
-        padding-top: $navbar-height + $top-nav-height;
-    }
-}
-
-body.aside-menu-open {
-    .main {
-        padding-right: $aside-menu-width;
-    }
-
-    .aside-menu {
-        right: 0;
-    }
-
-    .footer {
-        right: $aside-menu-width;
-    }
-
-    &.aside-menu-off-canvas {
-        .main {
-            right: 0;
-            padding-right: 0;
-        }
-    }
-}
-
-body.footer-fixed {
-    .footer {
-        position: fixed;
-        bottom: 0;
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_loading.scss b/demo/Angular2_Demo/scss/coreui/main/_loading.scss
deleted file mode 100644
index 1732064f56c1ba1a29a173a1713f272fd732c1b4..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_loading.scss
+++ /dev/null
@@ -1,127 +0,0 @@
-// Angular Version
-// Make clicks pass-through
-#loading-bar,
-#loading-bar-spinner {
-    -webkit-pointer-events: none;
-    pointer-events: none;
-    -moz-transition: 350ms linear all;
-    -o-transition: 350ms linear all;
-    -webkit-transition: 350ms linear all;
-    transition: 350ms linear all;
-}
-
-#loading-bar.ng-enter,
-#loading-bar.ng-leave.ng-leave-active,
-#loading-bar-spinner.ng-enter,
-#loading-bar-spinner.ng-leave.ng-leave-active {
-    opacity: 0;
-}
-
-#loading-bar.ng-enter.ng-enter-active,
-#loading-bar.ng-leave,
-#loading-bar-spinner.ng-enter.ng-enter-active,
-#loading-bar-spinner.ng-leave {
-    opacity: 1;
-}
-
-#loading-bar .bar {
-    position: fixed;
-    top: 0;
-    left: 0;
-    z-index: 20002;
-    width: 100%;
-    height: 2px;
-    background: $brand-primary;
-    border-top-right-radius: 1px;
-    border-bottom-right-radius: 1px;
-    -moz-transition: width 350ms;
-    -o-transition: width 350ms;
-    -webkit-transition: width 350ms;
-    transition: width 350ms;
-}
-
-// Fancy blur effect
-#loading-bar .peg {
-    position: absolute;
-    top: 0;
-    right: 0;
-    width: 70px;
-    height: 2px;
-    -moz-border-radius: 100%;
-    -webkit-border-radius: 100%;
-    border-radius: 100%;
-    -moz-box-shadow: #29d 1px 0 6px 1px;
-    -ms-box-shadow: #29d 1px 0 6px 1px;
-    -webkit-box-shadow: #29d 1px 0 6px 1px;
-    box-shadow: #29d 1px 0 6px 1px;
-    opacity: .45;
-}
-
-#loading-bar-spinner {
-    position: fixed;
-    top: 10px;
-    left: 10px;
-    z-index: 10002;
-    display: block;
-}
-
-#loading-bar-spinner .spinner-icon {
-    width: 14px;
-    height: 14px;
-
-    border:  solid 2px transparent;
-    border-top-color:  #29d;
-    border-left-color: #29d;
-    border-radius: 50%;
-
-    -moz-animation:    loading-bar-spinner 400ms linear infinite;
-    -ms-animation:     loading-bar-spinner 400ms linear infinite;
-    -o-animation:      loading-bar-spinner 400ms linear infinite;
-    -webkit-animation: loading-bar-spinner 400ms linear infinite;
-    animation:         loading-bar-spinner 400ms linear infinite;
-}
-
-@-webkit-keyframes loading-bar-spinner {
-    0%   { -webkit-transform: rotate(0deg);   transform: rotate(0deg); }
-    100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
-}
-@-moz-keyframes loading-bar-spinner {
-    0%   { -moz-transform: rotate(0deg);   transform: rotate(0deg); }
-    100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }
-}
-@-o-keyframes loading-bar-spinner {
-    0%   { -o-transform: rotate(0deg);   transform: rotate(0deg); }
-    100% { -o-transform: rotate(360deg); transform: rotate(360deg); }
-}
-@-ms-keyframes loading-bar-spinner {
-    0%   { -ms-transform: rotate(0deg);   transform: rotate(0deg); }
-    100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }
-}
-@keyframes loading-bar-spinner {
-    0%   { transform: rotate(0deg);   transform: rotate(0deg); }
-    100% { transform: rotate(360deg); transform: rotate(360deg); }
-}
-
-//Ajax & Static Version
-.pace {
-    -webkit-pointer-events: none;
-    pointer-events: none;
-
-    -moz-user-select: none;
-    -webkit-user-select: none;
-    user-select: none;
-}
-
-.pace-inactive {
-    display: none;
-}
-
-.pace .pace-progress {
-    position: fixed;
-    top: 0;
-    right: 100%;
-    z-index: 2000;
-    width: 100%;
-    height: 2px;
-    background: $brand-primary;
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_mobile.scss b/demo/Angular2_Demo/scss/coreui/main/_mobile.scss
deleted file mode 100644
index 4b723fbbc4537dcaf54fb9b7f2206d0c1a19f546..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_mobile.scss
+++ /dev/null
@@ -1,75 +0,0 @@
-@include media-breakpoint-down(md) {
-
-    $mobile-nav-width: 200px;
-
-    body {
-        padding: 0 !important;
-        margin: 0 !important;
-    }
-
-    header.navbar {
-        position: fixed !important;
-        top: 0 !important;
-        right: 0 !important;
-        left: 0 !important;
-
-        .navbar-toggler {
-            position: absolute;
-            top: 0;
-            left: 0;
-            width: 70px;
-            height: inherit;
-        }
-
-        .navbar-brand {
-            width: 100% !important;
-            margin: 0 auto !important;
-        }
-    }
-
-    .sidebar {
-        width: $mobile-nav-width;
-        margin-left: -$mobile-nav-width;
-
-        .sidebar-footer {
-            margin-left: -$mobile-nav-width;
-        }
-    }
-
-    .breadcrumb-menu {
-        display: none;
-    }
-
-    .main {
-        width: 100% !important;
-        padding: 0 !important;
-        padding-top: $navbar-height !important;
-        margin: 0 !important;
-        overflow: hidden;
-    }
-
-    .footer {
-        display: none;
-    }
-
-    html {
-        max-width: 100%;
-        overflow-x: hidden;
-    }
-
-    body.mobile-open {
-        max-width: 100%;
-        overflow-x: hidden;
-        .sidebar {
-            margin-left: 0;
-
-            .sidebar-footer {
-                margin-left: 0;
-            }
-        }
-
-        .main {
-            margin-left: $mobile-nav-width !important;
-        }
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_navigation.scss b/demo/Angular2_Demo/scss/coreui/main/_navigation.scss
deleted file mode 100644
index ff5aee9afc4dcc232df035ba2a3835ea4a8574fc..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_navigation.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-@mixin hover-state() {
-    background: $brand-primary !important;
-    color: #fff !important;
-}
-
-@mixin active-state() {
-    background: transparent;
-}
-
-// Disabled Navigation
-@import "navigation/disabled";
-
-// Sidebar Navigation
-@import "navigation/sidebar";
-
-// Top Navigation
-@import "navigation/top";
diff --git a/demo/Angular2_Demo/scss/coreui/main/_others.scss b/demo/Angular2_Demo/scss/coreui/main/_others.scss
deleted file mode 100644
index 062afb2f86d72c99393918bbc230d5a4614c2d70..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_others.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-hr.transparent {
-    border-top: 1px solid transparent;
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_switches.scss b/demo/Angular2_Demo/scss/coreui/main/_switches.scss
deleted file mode 100644
index 7aa38ffae1a676945ce1d19003591ff25a484e0b..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_switches.scss
+++ /dev/null
@@ -1,314 +0,0 @@
-@mixin switch-size($width, $height, $font-size, $handle-margin) {
-    width: $width;
-    height: $height;
-
-    .switch-label {
-        font-size: $font-size;
-    }
-
-    .switch-handle {
-        width: $height - $handle-margin * 2;
-        height: $height - $handle-margin * 2;
-    }
-
-    .switch-input:checked ~ .switch-handle {
-        left: $width - $height + $handle-margin;
-    }
-}
-
-@mixin switch($type, $width, $height, $font-size, $handle-margin) {
-    position: relative;
-    display: inline-block;
-    vertical-align: top;
-    width: $width;
-    height: $height;
-    background-color: transparent;
-    cursor: pointer;
-
-    .switch-input {
-        position: absolute;
-        top: 0;
-        left: 0;
-        opacity: 0;
-    }
-
-    .switch-label {
-        position: relative;
-        display: block;
-        height: inherit;
-        @if $type == icon {
-            font-family: FontAwesome;
-        }
-        font-size: $font-size;
-        font-weight: 600;
-        text-transform: uppercase;
-        @if $type == ddd {
-            background-color: $gray-lightest;
-        } @else {
-            background-color: #fff;
-        }
-        border: 1px solid $border-color;
-        border-radius: 2px;
-        -moz-transition: 0.15s ease-out;
-        -o-transition: 0.15s ease-out;
-        -webkit-transition: 0.15s ease-out;
-        transition: 0.15s ease-out;
-        -moz-transition-property: opacity background;
-        -o-transition-property: opacity background;
-        -webkit-transition-property: opacity background;
-        transition-property: opacity background;
-    }
-    @if $type == text or $type == icon {
-        .switch-label:before,
-        .switch-label:after {
-            position: absolute;
-            top: 50%;
-            width: 50%;
-            margin-top: -.5em;
-            line-height: 1;
-            text-align: center;
-            -moz-transition: inherit;
-            -o-transition: inherit;
-            -webkit-transition: inherit;
-            transition: inherit;
-        }
-        .switch-label:before {
-            right: 1px;
-            color: $gray-lighter;
-            content: attr(data-off);
-        }
-        .switch-label:after {
-            left: 1px;
-            color: #fff;
-            content: attr(data-on);
-            opacity: 0;
-        }
-    }
-    .switch-input:checked ~ .switch-label {
-        //background: $gray-lightest;
-    }
-    .switch-input:checked ~ .switch-label:before {
-        opacity: 0;
-    }
-    .switch-input:checked ~ .switch-label:after {
-        opacity: 1;
-    }
-
-    .switch-handle {
-        position: absolute;
-        top: $handle-margin;
-        left: $handle-margin;
-        width: $height - $handle-margin * 2;
-        height: $height - $handle-margin * 2;
-        background: #fff;
-        border: 1px solid $border-color;
-        border-radius: 1px;
-        -moz-transition: left 0.15s ease-out;
-        -o-transition: left 0.15s ease-out;
-        -webkit-transition: left 0.15s ease-out;
-        transition: left 0.15s ease-out;
-        @if $type == ddd {
-            border: 0;
-            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
-        }
-    }
-
-    .switch-input:checked ~ .switch-handle {
-        left: $width - $height + $handle-margin;
-    }
-
-
-    @if $type == ddd {
-        @extend .switch-pill;
-    }
-
-    //size variations
-    @if $type == default {
-
-        &.switch-lg {
-            @include switch-size($switch-lg-width, $switch-lg-height, $switch-lg-font-size, $handle-margin);
-        }
-        &.switch-sm {
-            @include switch-size($switch-sm-width, $switch-sm-height, $switch-sm-font-size, $handle-margin);
-        }
-        &.switch-xs {
-            @include switch-size($switch-xs-width, $switch-xs-height, $switch-xs-font-size, $handle-margin);
-        }
-
-    } @else if $type == text {
-
-        &.switch-lg {
-            @include switch-size($switch-text-lg-width, $switch-text-lg-height, $switch-text-lg-font-size, $handle-margin);
-        }
-        &.switch-sm {
-            @include switch-size($switch-text-sm-width, $switch-text-sm-height, $switch-text-sm-font-size, $handle-margin);
-        }
-        &.switch-xs {
-            @include switch-size($switch-text-xs-width, $switch-text-xs-height, $switch-text-xs-font-size, $handle-margin);
-        }
-
-    } @else if $type == icon {
-
-        &.switch-lg {
-            @include switch-size($switch-icon-lg-width, $switch-icon-lg-height, $switch-icon-lg-font-size, $handle-margin);
-        }
-        &.switch-sm {
-            @include switch-size($switch-icon-sm-width, $switch-icon-sm-height, $switch-icon-sm-font-size, $handle-margin);
-        }
-        &.switch-xs {
-            @include switch-size($switch-icon-xs-width, $switch-icon-xs-height, $switch-icon-xs-font-size, $handle-margin);
-        }
-
-    } @else if $type == ddd {
-
-        &.switch-lg {
-            @include switch-size($switch-lg-width, $switch-lg-height, $switch-lg-font-size, 0);
-        }
-        &.switch-sm {
-            @include switch-size($switch-sm-width, $switch-sm-height, $switch-sm-font-size, 0);
-        }
-        &.switch-xs {
-            @include switch-size($switch-xs-width, $switch-xs-height, $switch-xs-font-size, 0);
-        }
-    }
-}
-
-@mixin switch-variant($color) {
-    > .switch-input:checked ~ .switch-label {
-        background: $color !important;
-        border-color: darken($color,10%);
-    }
-
-    > .switch-input:checked ~ .switch-handle {
-        border-color: darken($color,10%);
-    }
-}
-
-@mixin switch-outline-variant($color) {
-    > .switch-input:checked ~ .switch-label {
-        background: #fff !important;
-        border-color: $color;
-
-        &:after {
-            color: $color;
-        }
-    }
-
-    > .switch-input:checked ~ .switch-handle {
-        border-color: $color;
-    }
-}
-
-@mixin switch-outline-alt-variant($color) {
-    > .switch-input:checked ~ .switch-label {
-        background: #fff !important;
-        border-color: $color;
-
-        &:after {
-            color: $color;
-        }
-    }
-
-    > .switch-input:checked ~ .switch-handle {
-        background: $color !important;
-        border-color: $color;
-    }
-}
-
-$switch-lg-width: 48px;
-$switch-lg-height: 28px;
-$switch-lg-font-size: 12px;
-
-$switch-width: 40px;
-$switch-height: 24px;
-$switch-font-size: 10px;
-
-$handle-margin: 2px;
-
-$switch-sm-width: 32px;
-$switch-sm-height: 20px;
-$switch-sm-font-size: 8px;
-
-$switch-xs-width: 24px;
-$switch-xs-height: 16px;
-$switch-xs-font-size: 7px;
-
-
-$switch-text-lg-width: 56px;
-$switch-text-lg-height: 28px;
-$switch-text-lg-font-size: 12px;
-
-$switch-text-width: 48px;
-$switch-text-height: 24px;
-$switch-text-font-size: 10px;
-
-$switch-text-sm-width: 40px;
-$switch-text-sm-height: 20px;
-$switch-text-sm-font-size: 8px;
-
-$switch-text-xs-width: 32px;
-$switch-text-xs-height: 16px;
-$switch-text-xs-font-size: 7px;
-
-
-$switch-icon-lg-width: 56px;
-$switch-icon-lg-height: 28px;
-$switch-icon-lg-font-size: 12px;
-
-$switch-icon-width: 48px;
-$switch-icon-height: 24px;
-$switch-icon-font-size: 10px;
-
-$switch-icon-sm-width: 40px;
-$switch-icon-sm-height: 20px;
-$switch-icon-sm-font-size: 8px;
-
-$switch-icon-xs-width: 32px;
-$switch-icon-xs-height: 16px;
-$switch-icon-xs-font-size: 7px;
-
-.switch.switch-default {
-    @include switch('default', $switch-width, $switch-height, $switch-font-size, $handle-margin);
-}
-
-.switch.switch-text {
-    @include switch('text', $switch-text-width, $switch-text-height, $switch-text-font-size, $handle-margin);
-}
-
-.switch.switch-icon {
-    @include switch('icon', $switch-icon-width, $switch-icon-height, $switch-icon-font-size, $handle-margin);
-}
-
-.switch.switch-3d {
-    @include switch('ddd', $switch-width, $switch-height, $switch-font-size, 0);
-}
-
-//pills style
-.switch-pill {
-    .switch-label,
-    .switch-handle {
-        border-radius: 50em !important;
-    }
-
-    .switch-label:before {
-        right: 2px !important;
-    }
-    .switch-label:after {
-        left: 2px !important;
-    }
-}
-
-@each $variant, $color in (primary: $brand-primary, secondary: $gray-lighter, success: $brand-success, info: $brand-info, warning: $brand-warning, danger: $brand-danger) {
-    //normal style
-    .switch-#{$variant} {
-        @include switch-variant($color);
-    }
-    //outline style
-    .switch-#{$variant}-outline {
-        @include switch-outline-variant($color);
-    }
-    //outline alternative style
-    .switch-#{$variant}-outline-alt {
-        @include switch-outline-alt-variant($color);
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_temp.scss b/demo/Angular2_Demo/scss/coreui/main/_temp.scss
deleted file mode 100644
index f75a94780027e30569b4e234bda0d2d4a6c72ec8..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_temp.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-.pagination-datatables, .pagination {
-    li {
-        @extend .page-item;
-
-        a {
-            @extend .page-link;
-        }
-    }
-}
-
-.label-pill {
-    border-radius: 1rem !important;
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_typography.scss b/demo/Angular2_Demo/scss/coreui/main/_typography.scss
deleted file mode 100644
index 7740fbc67a9c312cd8e62f025181b9e3431ddc34..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_typography.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-body {
-    -moz-osx-font-smoothing: grayscale;
-    -webkit-font-smoothing: antialiased;
-}
-
-.font-xs {
-    font-size: .75rem !important;
-}
-
-.font-sm {
-    font-size: .85rem !important;
-}
-
-.font-lg {
-    font-size: 1rem !important;
-}
-
-.font-xl {
-    font-size: 1.25rem !important;
-}
-
-.font-2xl {
-    font-size: 1.5rem !important;
-}
-
-.font-3xl {
-    font-size: 1.75rem !important;
-}
-
-.font-4xl {
-    font-size: 2rem !important;
-}
-
-.font-5xl {
-    font-size: 2.5rem !important;
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_utilities-border.scss b/demo/Angular2_Demo/scss/coreui/main/_utilities-border.scss
deleted file mode 100644
index 3c2a540a7e3e510895c58f593cbc1886a9621815..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_utilities-border.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-//border
-@each $prop, $abbrev in (border: b) {
-    @each $size in (0,1,2) {
-        @if $size == 0 {
-            .#{$abbrev}-a-#{$size} { #{$prop}:        0 !important; } // a = All sides
-            .#{$abbrev}-t-#{$size} { #{$prop}-top:    0 !important; }
-            .#{$abbrev}-r-#{$size} { #{$prop}-right:  0 !important; }
-            .#{$abbrev}-b-#{$size} { #{$prop}-bottom: 0 !important; }
-            .#{$abbrev}-l-#{$size} { #{$prop}-left:   0 !important; }
-        } @else {
-            .#{$abbrev}-a-#{$size} { #{$prop}:        $size * $border-width solid $border-color !important; } // a = All sides
-            .#{$abbrev}-t-#{$size} { #{$prop}-top:    $size * $border-width solid $border-color !important; }
-            .#{$abbrev}-r-#{$size} { #{$prop}-right:  $size * $border-width solid $border-color !important; }
-            .#{$abbrev}-b-#{$size} { #{$prop}-bottom: $size * $border-width solid $border-color !important; }
-            .#{$abbrev}-l-#{$size} { #{$prop}-left:   $size * $border-width solid $border-color !important; }
-        }
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/_widgets.scss b/demo/Angular2_Demo/scss/coreui/main/_widgets.scss
deleted file mode 100644
index b59fe4c8c0094ec1df23bc9472be8434463b8d5e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/_widgets.scss
+++ /dev/null
@@ -1,249 +0,0 @@
-// .social-box
-.social-box {
-    min-height: 160px;
-    margin-bottom: 20px;
-    text-align: center;
-    background: #fff;
-    border: $card-border-width solid $card-border-color;
-    @include border-radius($card-border-radius);
-
-    i {
-        display: block;
-        margin: -1px -1px 0;
-        font-size: 40px;
-        line-height: 90px;
-        background: $gray-lighter;
-
-        @include border-radius($card-border-radius-inner $card-border-radius-inner 0 0);
-    }
-
-    .chart-wrapper {
-        height: 90px;
-        margin: -90px 0 0;
-
-        canvas {
-            width: 100% !important;
-            height: 90px !important;
-        }
-    }
-
-    ul {
-        padding: 10px 0;
-        list-style: none;
-
-
-        li {
-            display: block;
-            float: left;
-            width: 50%;
-
-            &:first-child {
-                border-right: 1px solid $border-color;
-            }
-
-            strong {
-                display: block;
-                font-size: 20px;
-            }
-
-            span {
-                font-size: 10px;
-                font-weight: 500;
-                color: $border-color;
-                text-transform: uppercase;
-            }
-        }
-    }
-
-    &.facebook {
-        i {
-            color: #fff;
-            background: $facebook;
-        }
-    }
-
-    &.twitter {
-        i {
-            color: #fff;
-            background: $twitter;
-        }
-    }
-
-    &.linkedin {
-        i {
-            color: #fff;
-            background: $linkedin;
-        }
-    }
-
-    &.google-plus {
-        i {
-            color: #fff;
-            background: $google-plus;
-        }
-    }
-}
-
-.horizontal-bars {
-    padding: 0;
-    margin: 0;
-    list-style: none;
-
-    li {
-        position: relative;
-        height: 40px;
-        line-height: 40px;
-        vertical-align: middle;
-
-        .title {
-            width: 100px;
-            font-size: 12px;
-            font-weight: 600;
-            color: $text-muted;
-            vertical-align: middle;
-        }
-
-        .bars {
-            position: absolute;
-            top: 15px;
-            width: 100%;
-            padding-left: 100px;
-        }
-
-        &.legend {
-            text-align: center;
-
-            .tag {
-                display: inline-block;
-                width: 8px;
-                height: 8px;
-                padding: 0;
-            }
-        }
-
-        &.divider {
-            height: 40px;
-
-            i {
-                margin: 0 !important;
-            }
-        }
-    }
-
-    &.type-2 {
-
-        li {
-            overflow: hidden;
-
-            i {
-                display: inline-block;
-                margin-right: $spacer-x;
-                margin-left: 5px;
-                font-size: 18px;
-                line-height: 40px;
-            }
-
-            .title {
-                display: inline-block;
-                width: auto;
-                margin-top: -9px;
-                font-size: $font-size-base;
-                font-weight: normal;
-                line-height: 40px;
-                color: $body-color;
-            }
-
-            .value {
-                float: right;
-                font-weight: 600;
-            }
-
-            .bars {
-                position: absolute;
-                top: auto;
-                bottom: 0;
-                padding: 0;
-            }
-        }
-    }
-}
-
-ul.icons-list {
-    padding: 0;
-    margin: 0;
-    list-style: none;
-
-    li {
-        position: relative;
-        height: 40px;
-        vertical-align: middle;
-
-        i {
-            display: block;
-            float: left;
-            width: 35px !important;
-            height: 35px !important;
-            margin: 2px;
-            line-height: 35px !important;
-            text-align: center;
-        }
-
-        .desc {
-            height: 40px;
-            margin-left: 50px;
-            border-bottom: 1px solid $border-color;
-
-            .title {
-                padding: 2px 0 0;
-                margin: 0;
-            }
-            small {
-                display: block;
-                margin-top: -4px;
-                color: $text-muted;
-            }
-        }
-
-        .value {
-            position: absolute;
-            top: 2px;
-            right: 45px;
-            text-align: right;
-
-            strong {
-                display: block;
-                margin-top: -3px;
-            }
-        }
-
-        .actions {
-            position: absolute;
-            top: -4px;
-            right: 10px;
-            width: 40px;
-            height: 40px;
-            line-height: 40px;
-            text-align: center;
-
-            i {
-                float: none;
-                width: auto;
-                height: auto;
-                padding: 0;
-                margin: 0;
-                line-height: normal;
-            }
-        }
-
-        &.divider {
-            height: 40px;
-
-            i {
-                width: auto;
-                height: auto;
-                margin: 2px 0 0;
-                font-size: 18px;
-            }
-        }
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/navigation/_disabled.scss b/demo/Angular2_Demo/scss/coreui/main/navigation/_disabled.scss
deleted file mode 100644
index b54db056a428d60477a408d9f857428ad09002bf..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/navigation/_disabled.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// body {
-//     #navigation {
-//         left: -
-//         display: none !important;
-//     }
-// }
diff --git a/demo/Angular2_Demo/scss/coreui/main/navigation/_sidebar.scss b/demo/Angular2_Demo/scss/coreui/main/navigation/_sidebar.scss
deleted file mode 100644
index 839502d1518b82d83f3738ae6727d42f957f6be3..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/navigation/_sidebar.scss
+++ /dev/null
@@ -1,486 +0,0 @@
-body:not(.top-nav) {
-
-    .sidebar {
-        position: absolute;
-        top: 0;
-        //left: 0;
-        z-index: 1;
-        display: inline !important;
-        width: $sidebar-width;
-        height: 100%;
-        padding: $sidebar-padding;
-        color: $sidebar-color;
-        background: $sidebar-bg;
-        @include borders($sidebar-borders);
-
-        .sidebar-close {
-            position: absolute;
-            right: 0;
-            display: none;
-            padding: 0 $spacer-x;
-            font-size: 24px;
-            font-weight: 800;
-            line-height: $navbar-height;
-            color: $sidebar-color;
-            background: 0;
-            border: 0;
-            opacity: .8;
-
-            &:hover {
-                opacity: 1;
-            }
-        }
-
-        .sidebar-header {
-            padding-bottom: 10px;
-            text-align: center;
-            background: $sidebar-header-bg;
-
-            .img-avatar {
-                width: 80px;
-                margin: 20px auto 10px;
-                border-radius: 50em;
-            }
-
-            .text-muted {
-                margin-top: -5px;
-            }
-
-            > .btn-group {
-                margin-top: 10px;
-            }
-
-            .btn-link {
-                color: $text-muted;
-
-                &:hover {
-                    color: $sidebar-color;
-                    text-decoration: none;
-                }
-            }
-
-        }
-
-        .sidebar-nav {
-            position: relative;
-            overflow-x: hidden;
-            overflow-y: auto;
-            -ms-overflow-style: -ms-autohiding-scrollbar;
-
-            &::-webkit-scrollbar {
-                width: 10px;
-                margin-left: -10px;
-                -webkit-appearance: none;
-            }
-
-            // &::-webkit-scrollbar-button {    }
-
-            &::-webkit-scrollbar-track {
-                background-color: lighten($sidebar-bg, 5%);
-                border-right: 1px solid darken($sidebar-bg, 5%);
-                border-left: 1px solid darken($sidebar-bg, 5%);
-            }
-
-            // &::-webkit-scrollbar-track-piece {    }
-
-            &::-webkit-scrollbar-thumb {
-                height: 50px;
-                background-color: darken($sidebar-bg, 10%);
-                background-clip: content-box;
-                border-color: transparent;
-                border-style: solid;
-                border-width: 1px 2px;
-            }
-
-            // &::-webkit-scrollbar-corner {    }
-
-            //&::-webkit-resizer {    }
-        }
-
-        ul.nav {
-            width: $sidebar-width;
-
-            li.nav-title {
-                padding: $sidebar-nav-title-padding-y $sidebar-nav-title-padding-x;
-                font-size: 11px;
-                font-weight: 600;
-                color: $sidebar-nav-title-color;
-                text-transform: uppercase;
-            }
-
-            li.divider {
-                height: 10px;
-            }
-
-            li.nav-item {
-                position: relative;
-                margin: 0;
-
-                ul {
-                    display: none;
-                    padding: 0;
-                    margin: 0;
-
-                    li {
-                        padding: 0;
-                        list-style: none;
-                    }
-                }
-
-                a.nav-link {
-                    display: block;
-                    padding: $sidebar-nav-link-padding-y $sidebar-nav-link-padding-x;
-                    color: $sidebar-nav-link-color;
-                    text-decoration: none;
-                    background: $sidebar-nav-link-bg;
-                    @include borders($sidebar-nav-link-borders);
-                    @if $enable-sidebar-nav-rounded {
-                        border-radius: $border-radius;
-                    }
-
-                    &:hover {
-                        color: $sidebar-nav-link-hover-color !important;
-                        background: $sidebar-nav-link-hover-bg !important;
-                        @include borders($sidebar-nav-link-hover-borders);
-
-                        i {
-                            color: $sidebar-nav-link-hover-icon-color;
-                        }
-                    }
-
-                    &.active {
-                        color: $sidebar-nav-link-active-color;
-                        background: $sidebar-nav-link-active-bg;
-                        @include borders($sidebar-nav-link-active-borders);
-
-                        i {
-                            color: $sidebar-nav-link-active-icon-color;
-                        }
-                    }
-
-                    [class^="icon-"], [class*=" icon-"] {
-                        display: inline-block;
-                        margin-top: -4px;
-                        vertical-align: middle;
-                    }
-
-                    i {
-                        width: 20px;
-                        margin: 0 ($sidebar-nav-link-padding-x / 2) 0 0;
-                        font-size: 14px;
-                        color: $sidebar-nav-link-icon-color;
-                        text-align: center;
-                    }
-
-                    .tag {
-                        float: right;
-                        margin-top: 2px;
-                        // margin-left: 10px;
-                    }
-
-                    &.nav-dropdown-toggle {
-
-                        &:before {
-                            position: absolute;
-                            top: ($sidebar-nav-link-padding-y + ($font-size-base / 4));
-                            right: $sidebar-nav-link-padding-x;
-                            display: block;
-                            width: ($font-size-base);
-                            height: ($font-size-base);
-                            padding: 0;
-                            font-size: $font-size-base;
-                            line-height: ($font-size-base * 3/4);
-                            text-align: center;
-                            content: "\2039";
-                            transition: .3s;
-                        }
-                    }
-                }
-
-                &.nav-dropdown {
-                    &.open {
-                        background: $sidebar-nav-dropdown-bg;
-                        @include borders($sidebar-nav-dropdown-borders);
-                        @if $enable-sidebar-nav-rounded {
-                            border-radius: $border-radius;
-                        }
-                        > ul, > ol {
-                            display: inline;
-                        }
-
-                        a.nav-link {
-                            color: $sidebar-nav-dropdown-color;
-                            border-left: 0 !important;
-                        }
-
-                        > a.nav-link.nav-dropdown-toggle:before {
-                            -webkit-transform: rotate(-90deg);
-                            transform: rotate(-90deg);
-                        }
-
-                        .nav-dropdown.open {
-                            border-left: 0;
-                        }
-                    }
-                }
-            }
-        }
-
-        .sidebar-footer {
-            position: absolute;
-            bottom: 0;
-            left: 0;
-            width: $sidebar-width;
-            height: 86px;
-            padding: 10px 0 0;
-            overflow: visible;
-            background: $sidebar-footer-bg;
-
-            ul.sidebar-footer-menu {
-                position: relative;
-                display: table;
-                width: 100%;
-                padding: 0;
-                margin: 0;
-                table-layout: fixed;
-
-                li {
-                    display: table-cell;
-                    text-align: center;
-
-                    button {
-                        color: #fff;
-                        background: none;
-                        border: 0;
-
-                        i {
-                            display: block;
-                            font-size: 20px;
-                        }
-
-                        span {
-                            font-size: 10px;
-                        }
-                    }
-                }
-
-                .dropdown-menu {
-                    position: fixed;
-                    bottom: 85px;
-                    left: 5px;
-                    width: $sidebar-width - 10;
-                    overflow: hidden;
-                    background: #fff;
-                    border: 0;
-
-                    div {
-
-                        .title {
-                            font-size: 12px;
-
-                            span {
-                                float: right;
-                                font-weight: 600;
-                            }
-                        }
-                    }
-                }
-
-                .btn-group .dropdown-toggle:active,
-                .btn-group.open .dropdown-toggle {
-
-                    &:before {
-                        position: absolute;
-                        top: -8px;
-                        margin-left: -8px;
-                        content: '';
-                        border-top: 8px solid #fff;
-                        border-right: 8px solid transparent;
-                        border-left: 8px solid transparent;
-                    }
-                }
-            }
-
-            ul.terms {
-                position: relative;
-                display: table;
-                width: 100%;
-                padding: 0;
-                line-height: 30px;
-                table-layout: fixed;
-                background: $sidebar-footer-bg;
-
-                li {
-                    display: table-cell;
-                    padding: 0;
-                    font-size: 12px;
-                    text-align: center;
-
-                    a {
-                        color: $text-muted;
-                        text-decoration: none;
-
-                        &:hover {
-                            color: #fff;
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
-
-@include media-breakpoint-up(sm) {
-
-    body.sidebar-nav.compact-nav {
-        .sidebar {
-            z-index: $zindex-navbar-fixed - 1;
-            width: $sidebar-compact-width;
-
-            .sidebar-header {
-                padding: 0;
-
-                .img-avatar {
-                    width: $sidebar-compact-width - 10px;
-                    margin: 5px auto;
-                }
-                div {
-                    display: none;
-                }
-            }
-
-            .sidebar-items {
-                overflow: visible;
-            }
-
-            .sidebar-footer {
-                display: none;
-            }
-
-            ul.nav {
-
-                li.nav-title, li.divider {
-                    display: none;
-                }
-
-                li.nav-item {
-                    border-left: 0 !important;
-
-                    ul {
-                        background: $sidebar-bg;
-                    }
-
-                    a.nav-link {
-                        position: relative;
-                        width: $sidebar-compact-width;
-                        padding: 0 15px 0 0;
-                        margin: 0;
-                        overflow: hidden;
-                        line-height: $sidebar-compact-height;
-                        white-space: nowrap;
-                        border-left: 0 !important;
-
-                        &.nav-dropdown-toggle {
-
-                            &:before {
-                                display: none;
-                            }
-                        }
-
-                        i {
-                            display: block;
-                            float: left;
-                            width: $sidebar-compact-height;
-                            height: $sidebar-compact-height;
-                            padding: 0;
-                            margin: 0;
-                            font-size: 18px;
-                            line-height: $sidebar-compact-height;
-                        }
-
-                        .tag {
-                            position: absolute;
-                            top: 6px;
-                            right: 15px;
-                            display: none;
-                        }
-
-                        &:hover {
-                            width: $sidebar-width;
-                            @include hover-state();
-
-                            &.nav-dropdown-toggle, &.nav-dropdown-toggle.active {
-                                @include hover-state();
-                            }
-
-                            .tag {
-                                display: inline;
-                            }
-                        }
-                    }
-
-                    ul {
-                        position: absolute;
-                        top: $sidebar-compact-width;
-                        left: $sidebar-compact-width;
-
-                        li {
-                            position: relative;
-                            padding: 0;
-
-                            a.nav-link {
-                                width: $sidebar-width - $sidebar-compact-width;
-                            }
-
-                            ul, ol {
-                                position: absolute;
-                                top: 0;
-                                left: 100%;
-                            }
-                        }
-                    }
-
-                    &.nav-dropdown {
-                        &.open {
-                            @include hover-state();
-                            > ul, > ol {
-                                display: none;
-                            }
-                        }
-                    }
-
-                    &:hover {
-                        > a.nav-link {
-                            @if $sidebar-width < 249 {
-                                width: $sidebar-width + $sidebar-compact-width;
-                            } @else {
-                                width: $sidebar-width;
-                            }
-                            @include hover-state();
-                        }
-
-                        > ul, > ol {
-                            display: inline;
-
-                            a.nav-link {
-                                @if $sidebar-width < 249 {
-                                    width: $sidebar-width;
-                                } @else {
-                                    width: $sidebar-width - $sidebar-compact-width;
-                                }
-                            }
-                        }
-
-                        &.nav-dropdown {
-                            &.open {
-                                > ul, > ol {
-                                    display: inline;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/main/navigation/_top.scss b/demo/Angular2_Demo/scss/coreui/main/navigation/_top.scss
deleted file mode 100644
index 164c602521a0ff29ec7cef96760da70a84505cee..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/main/navigation/_top.scss
+++ /dev/null
@@ -1,116 +0,0 @@
-nav.top-nav {
-    position: absolute;
-    top: $navbar-height;
-    left: 0;
-    z-index: $zindex-navbar-fixed - 1;
-    display: inline !important;
-    width: 100%;
-    height: $top-nav-height;
-    background: $top-nav-bg;
-    @include borders($top-nav-borders);
-
-    ul.nav {
-        white-space: nowrap;
-
-        li.nav-item {
-            position: relative;
-            display: inline-block;
-            margin: 0;
-
-            ul {
-                display: none;
-                padding: 0;
-                margin: 0;
-                white-space: normal;
-                background: $top-nav-bg;
-                @include borders($top-nav-ul-borders);
-
-
-                li {
-                    padding: 0;
-                    list-style: none;
-                }
-            }
-
-            a.nav-link {
-                display: block;
-                padding: 0 15px;
-                font-size: 12px;
-                font-weight: 400;
-                line-height: $top-nav-height;
-                color: $top-nav-color;
-                text-decoration: none;
-                text-transform: uppercase;
-
-                i {
-                    display: block;
-                    float: left;
-                    width: 20px;
-                    margin: 0 10px 0 0;
-                    font-size: 14px;
-                    line-height: $top-nav-height - 1px;
-                    text-align: center;
-                }
-
-                .tag {
-                    float: right;
-                    margin-top: 13px;
-                    margin-left: 10px;
-                }
-
-                &:hover {
-                    color: $top-nav-hover-color;
-                    background: $top-nav-hover-bg;
-
-                }
-
-                &.active {
-                    color: $top-nav-active-color;
-                    background: $top-nav-active-bg;
-                }
-            }
-
-            ul {
-                position: absolute;
-                top: $top-nav-height - 1px;
-                left: 0;
-
-                li {
-                    position: relative;
-                    padding: 0;
-
-                    a.nav-link {
-                        min-width: 200px;
-                    }
-
-                    ul {
-                        position: absolute;
-                        top: 0;
-                        left: 100%;
-                    }
-                }
-            }
-
-            &.nav-more {
-                ul {
-                    right: 0;
-                    left: auto;
-
-                    li {
-
-                        ul {
-                            right: 100%;
-                            left: auto;
-                        }
-                    }
-                }
-            }
-
-            &:hover {
-                > ul {
-                    display: inline;
-                }
-            }
-        }
-    }
-}
diff --git a/demo/Angular2_Demo/scss/coreui/vendors/chart.js/chart.scss b/demo/Angular2_Demo/scss/coreui/vendors/chart.js/chart.scss
deleted file mode 100644
index 2983048368049ca8a8999c5ab80b9d52859dfae9..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/scss/coreui/vendors/chart.js/chart.scss
+++ /dev/null
@@ -1,45 +0,0 @@
-.chart-legend,
-.bar-legend,
-.line-legend,
-.pie-legend,
-.radar-legend,
-.polararea-legend,
-.doughnut-legend {
-    list-style-type: none;
-    margin-top: 5px;
-    text-align: center;
-    -webkit-padding-start: 0;
-    -moz-padding-start: 0;
-    padding-left: 0;
-}
-.chart-legend li,
-.bar-legend li,
-.line-legend li,
-.pie-legend li,
-.radar-legend li,
-.polararea-legend li,
-.doughnut-legend li {
-    display: inline-block;
-    white-space: nowrap;
-    position: relative;
-    margin-bottom: 4px;
-    @include border-radius($border-radius);
-    padding: 2px 8px 2px 28px;
-    font-size: smaller;
-    cursor: default;
-}
-.chart-legend li span,
-.bar-legend li span,
-.line-legend li span,
-.pie-legend li span,
-.radar-legend li span,
-.polararea-legend li span,
-.doughnut-legend li span {
-    display: block;
-    position: absolute;
-    left: 0;
-    top: 0;
-    width: 20px;
-    height: 20px;
-    @include border-radius($border-radius);
-}
diff --git a/demo/Angular2_Demo/styles.css b/demo/Angular2_Demo/styles.css
deleted file mode 100644
index 054b417f6fdbf8d0c7a95379ef7a599e5d83745e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/styles.css
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Master Styles */
-h1 {
-  color: #369; 
-  font-family: Arial, Helvetica, sans-serif;   
-  font-size: 250%;
-}
-h2, h3 { 
-  color: #444;
-  font-family: Arial, Helvetica, sans-serif;   
-  font-weight: lighter;
-}
-body { 
-  margin: 2em; 
-}
-body, input[text], button { 
-  color: #888; 
-  font-family: Cambria, Georgia; 
-}
-a {
-  cursor: pointer;
-  cursor: hand;
-}
-button {
-  font-family: Arial;
-  background-color: #eee;
-  border: none;
-  padding: 5px 10px;
-  border-radius: 4px;
-  cursor: pointer;
-  cursor: hand;
-}
-button:hover {
-  background-color: #cfd8dc;
-}
-button:disabled {
-  background-color: #eee;
-  color: #aaa; 
-  cursor: auto;
-}
-
-/* Navigation link styles */
-nav a {
-  padding: 5px 10px;
-  text-decoration: none;
-  margin-top: 10px;
-  display: inline-block;
-  background-color: #eee;
-  border-radius: 4px;
-}
-nav a:visited, a:link {
-  color: #607D8B;
-}
-nav a:hover {
-  color: #039be5;
-  background-color: #CFD8DC;
-}
-nav a.router-link-active {
-  color: #039be5;
-}
-
-/* items class */
-.items {
-  margin: 0 0 2em 0;
-  list-style-type: none;
-  padding: 0;
-  width: 24em;
-}
-.items li {
-  cursor: pointer;
-  position: relative;
-  left: 0;
-  background-color: #EEE;
-  margin: .5em;
-  padding: .3em 0;
-  height: 1.6em;
-  border-radius: 4px;
-}
-.items li:hover {
-  color: #607D8B;
-  background-color: #DDD;
-  left: .1em;
-}
-.items li.selected:hover {
-  background-color: #BBD8DC;
-  color: white;
-}
-.items .text {
-  position: relative;
-  top: -3px;
-}
-.items {
-  margin: 0 0 2em 0;
-  list-style-type: none;
-  padding: 0;
-  width: 24em;
-}
-.items li {
-  cursor: pointer;
-  position: relative;
-  left: 0;
-  background-color: #EEE;
-  margin: .5em;
-  padding: .3em 0;
-  height: 1.6em;
-  border-radius: 4px;
-}
-.items li:hover {
-  color: #607D8B;
-  background-color: #DDD;
-  left: .1em;
-}
-.items li.selected {
-  background-color: #CFD8DC;
-  color: white;
-}
-
-.items li.selected:hover {
-  background-color: #BBD8DC;
-}
-.items .text {
-  position: relative;
-  top: -3px;
-}
-.items .badge {
-  display: inline-block;
-  font-size: small;
-  color: white;
-  padding: 0.8em 0.7em 0 0.7em;
-  background-color: #607D8B;
-  line-height: 1em;
-  position: relative;
-  left: -1px;
-  top: -4px;
-  height: 1.8em;
-  margin-right: .8em;
-  border-radius: 4px 0 0 4px;
-}
-
-/* everywhere else */
-* { 
-  font-family: Arial, Helvetica, sans-serif; 
-}
diff --git a/demo/Angular2_Demo/systemjs.config.js b/demo/Angular2_Demo/systemjs.config.js
deleted file mode 100644
index 8cff2f459436ee91cf0200116648f326dff1b45a..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/systemjs.config.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * System configuration for Angular 2 samples
- * Adjust as necessary for your application needs.
- */
-(function(global) {
-
-  // map tells the System loader where to look for things
-  var map = {
-    'app':                        'app', // 'dist',
-
-    '@angular':                   'node_modules/@angular',
-    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
-    'rxjs':                       'node_modules/rxjs',
-    'moment':                     'node_modules/moment/moment.js',
-    'ng2-charts':                 'node_modules/ng2-charts'
-  };
-
-  // packages tells the System loader how to load when no filename and/or no extension
-  var packages = {
-    'app':                        { main: 'main.js',  defaultExtension: 'js' },
-    'rxjs':                       { defaultExtension: 'js' },
-    'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
-    'ng2-charts':                 { defaultExtension: 'js' }
-  };
-
-  var ngPackageNames = [
-    'common',
-    'compiler',
-    'core',
-    'forms',
-    'http',
-    'platform-browser',
-    'platform-browser-dynamic',
-    'router',
-    'router-deprecated',
-    'upgrade',
-  ];
-
-  // Individual files (~300 requests):
-  function packIndex(pkgName) {
-    packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' };
-  }
-
-  // Bundled (~40 requests):
-  function packUmd(pkgName) {
-    packages['@angular/'+pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
-  }
-
-  // Most environments should use UMD; some (Karma) need the individual index files
-  var setPackageConfig = System.packageWithIndex ? packIndex : packUmd;
-
-  // Add package entries for angular packages
-  ngPackageNames.forEach(setPackageConfig);
-
-  // No umd for router yet
-  packages['@angular/router'] = { main: 'index.js', defaultExtension: 'js' };
-
-  var config = {
-    map: map,
-    packages: packages
-  };
-
-  System.config(config);
-
-})(this);
diff --git a/demo/Angular2_Demo/tsconfig.json b/demo/Angular2_Demo/tsconfig.json
deleted file mode 100644
index fd1d10190d11b32e437120445fc356636c53bfe4..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/tsconfig.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "compilerOptions": {
-    "target": "es5",
-    "module": "commonjs",
-    "moduleResolution": "node",
-    "sourceMap": true,
-    "emitDecoratorMetadata": true,
-    "experimentalDecorators": true,
-    "removeComments": false,
-    "noImplicitAny": true,
-    "suppressImplicitAnyIndexErrors": true
-  }
-}
diff --git a/demo/Angular2_Demo/tslint.json b/demo/Angular2_Demo/tslint.json
deleted file mode 100644
index 276453f4f5b2e84e395e06e841ea592f22ffead6..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/tslint.json
+++ /dev/null
@@ -1,93 +0,0 @@
-{
-  "rules": {
-    "class-name": true,
-    "comment-format": [
-      true,
-      "check-space"
-    ],
-    "curly": true,
-    "eofline": true,
-    "forin": true,
-    "indent": [
-      true,
-      "spaces"
-    ],
-    "label-position": true,
-    "label-undefined": true,
-    "max-line-length": [
-      true,
-      140
-    ],
-    "member-access": false,
-    "member-ordering": [
-      true,
-      "static-before-instance",
-      "variables-before-functions"
-    ],
-    "no-arg": true,
-    "no-bitwise": true,
-    "no-console": [
-      true,
-      "debug",
-      "info",
-      "time",
-      "timeEnd",
-      "trace"
-    ],
-    "no-construct": true,
-    "no-debugger": true,
-    "no-duplicate-key": true,
-    "no-duplicate-variable": true,
-    "no-empty": false,
-    "no-eval": true,
-    "no-inferrable-types": true,
-    "no-shadowed-variable": true,
-    "no-string-literal": false,
-    "no-switch-case-fall-through": true,
-    "no-trailing-whitespace": true,
-    "no-unused-expression": true,
-    "no-unused-variable": true,
-    "no-unreachable": true,
-    "no-use-before-declare": true,
-    "no-var-keyword": true,
-    "object-literal-sort-keys": false,
-    "one-line": [
-      true,
-      "check-open-brace",
-      "check-catch",
-      "check-else",
-      "check-whitespace"
-    ],
-    "quotemark": [
-      true,
-      "single"
-    ],
-    "radix": true,
-    "semicolon": [
-      "always"
-    ],
-    "triple-equals": [
-      true,
-      "allow-null-check"
-    ],
-    "typedef-whitespace": [
-      true,
-      {
-        "call-signature": "nospace",
-        "index-signature": "nospace",
-        "parameter": "nospace",
-        "property-declaration": "nospace",
-        "variable-declaration": "nospace"
-      }
-    ],
-    "variable-name": false,
-    "whitespace": [
-      true,
-      "check-branch",
-      "check-decl",
-      "check-operator",
-      "check-separator",
-      "check-type"
-    ]
-  }
-}
diff --git a/demo/Angular2_Demo/typings.json b/demo/Angular2_Demo/typings.json
deleted file mode 100644
index 57266b144a97f070e2cf993d467cc893b3cd06a7..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "globalDependencies": {
-    "angular-protractor": "registry:dt/angular-protractor#1.5.0+20160425143459",
-    "core-js": "registry:dt/core-js#0.0.0+20160602141332",
-    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
-    "node": "registry:dt/node#6.0.0+20160807145350",
-    "selenium-webdriver": "registry:dt/selenium-webdriver#2.44.0+20160317120654"
-  }
-}
diff --git a/demo/Angular2_Demo/typings/globals/angular-protractor/index.d.ts b/demo/Angular2_Demo/typings/globals/angular-protractor/index.d.ts
deleted file mode 100644
index 154e8e83ec128ca9cabfb9392b5fc3c7d353339a..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings/globals/angular-protractor/index.d.ts
+++ /dev/null
@@ -1,1844 +0,0 @@
-// Generated by typings
-// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/f9c44651705f574f6d4258fe5e1c335462bdcc19/angular-protractor/angular-protractor.d.ts
-declare namespace protractor {
-    //region Wrapped webdriver Items
-
-    class ActionSequence extends webdriver.ActionSequence {}
-    class Builder extends webdriver.Builder {}
-    class Capabilities extends webdriver.Capabilities {}
-    class Command extends webdriver.Command {}
-    class EventEmitter extends webdriver.EventEmitter {}
-    class Session extends webdriver.Session {}
-    class WebDriver extends webdriver.WebDriver {}
-    class WebElement extends webdriver.WebElement {}
-    class WebElementPromise extends webdriver.WebElementPromise { }
-
-    var Browser: webdriver.IBrowser;
-    var Button: webdriver.IButton;
-    var Capability: webdriver.ICapability;
-    var CommandName: webdriver.ICommandName;
-    var Key: webdriver.IKey;
-
-    namespace error {
-        class Error extends webdriver.error.Error {}
-        var ErrorCode: webdriver.error.IErrorCode;
-    }
-
-    namespace logging {
-        class Preferences extends webdriver.logging.Preferences { }
-        class Entry extends webdriver.logging.Entry { }
-
-        var Type: webdriver.logging.IType;
-        var Level: webdriver.logging.ILevelValues;
-
-        function getLevel(nameOrValue: string): webdriver.logging.ILevel;
-        function getLevel(nameOrValue: number): webdriver.logging.ILevel;
-    }
-
-    namespace promise {
-        class Thenable<T> extends webdriver.promise.Thenable<T> { }
-        class Promise<T> extends webdriver.promise.Promise<T> { }
-        class Deferred<T> extends webdriver.promise.Deferred<T> { }
-        class ControlFlow extends webdriver.promise.ControlFlow { }
-        class CancellationError extends webdriver.promise.CancellationError { }
-
-        /**
-         * Given an array of promises, will return a promise that will be fulfilled
-         * with the fulfillment values of the input array's values. If any of the
-         * input array's promises are rejected, the returned promise will be rejected
-         * with the same reason.
-         *
-         * @param {!Array.<(T|!webdriver.promise.Promise.<T>)>} arr An array of
-         *     promises to wait on.
-         * @return {!webdriver.promise.Promise.<!Array.<T>>} A promise that is
-         *     fulfilled with an array containing the fulfilled values of the
-         *     input array, or rejected with the same reason as the first
-         *     rejected value.
-         * @template T
-         */
-        function all(arr: webdriver.promise.Promise<any>[]): webdriver.promise.Promise<any[]>;
-
-        /**
-         * Invokes the appropriate callback function as soon as a promised
-         * {@code value} is resolved. This function is similar to
-         * {@link webdriver.promise.when}, except it does not return a new promise.
-         * @param {*} value The value to observe.
-         * @param {Function} callback The function to call when the value is
-         *     resolved successfully.
-         * @param {Function=} opt_errback The function to call when the value is
-         *     rejected.
-         */
-        function asap(value: any, callback: Function, opt_errback?: Function): void;
-
-        /**
-         * @return {!webdriver.promise.ControlFlow} The currently active control flow.
-         */
-        function controlFlow(): webdriver.promise.ControlFlow;
-
-        /**
-         * Creates a new control flow. The provided callback will be invoked as the
-         * first task within the new flow, with the flow as its sole argument. Returns
-         * a promise that resolves to the callback result.
-         * @param {function(!webdriver.promise.ControlFlow)} callback The entry point
-         *     to the newly created flow.
-         * @return {!webdriver.promise.Promise} A promise that resolves to the callback
-         *     result.
-         */
-        function createFlow<R>(callback: (flow: webdriver.promise.ControlFlow) => R): webdriver.promise.Promise<R>;
-
-        /**
-         * Determines whether a {@code value} should be treated as a promise.
-         * Any object whose "then" property is a function will be considered a promise.
-         *
-         * @param {*} value The value to test.
-         * @return {boolean} Whether the value is a promise.
-         */
-        function isPromise(value: any): boolean;
-
-        /**
-         * Tests is a function is a generator.
-         * @param {!Function} fn The function to test.
-         * @return {boolean} Whether the function is a generator.
-         */
-        function isGenerator(fn: Function): boolean;
-
-        /**
-         * Creates a promise that will be resolved at a set time in the future.
-         * @param {number} ms The amount of time, in milliseconds, to wait before
-         *     resolving the promise.
-         * @return {!webdriver.promise.Promise} The promise.
-         */
-        function delayed(ms: number): webdriver.promise.Promise<void>;
-
-        /**
-         * Calls a function for each element in an array, and if the function returns
-         * true adds the element to a new array.
-         *
-         * <p>If the return value of the filter function is a promise, this function
-         * will wait for it to be fulfilled before determining whether to insert the
-         * element into the new array.
-         *
-         * <p>If the filter function throws or returns a rejected promise, the promise
-         * returned by this function will be rejected with the same reason. Only the
-         * first failure will be reported; all subsequent errors will be silently
-         * ignored.
-         *
-         * @param {!(Array.<TYPE>|webdriver.promise.Promise.<!Array.<TYPE>>)} arr The
-         *     array to iterator over, or a promise that will resolve to said array.
-         * @param {function(this: SELF, TYPE, number, !Array.<TYPE>): (
-         *             boolean|webdriver.promise.Promise.<boolean>)} fn The function
-         *     to call for each element in the array.
-         * @param {SELF=} opt_self The object to be used as the value of 'this' within
-         *     {@code fn}.
-         * @template TYPE, SELF
-         */
-        function filter<T>(arr: T[], fn: (element: T, index: number, array: T[]) => any, opt_self?: any): webdriver.promise.Promise<T[]>;
-        function filter<T>(arr: webdriver.promise.Promise<T[]>, fn: (element: T, index: number, array: T[]) => any, opt_self?: any): webdriver.promise.Promise<T[]>
-
-        /**
-         * Creates a new deferred object.
-         * @return {!webdriver.promise.Deferred} The new deferred object.
-         */
-        function defer<T>(): webdriver.promise.Deferred<T>;
-
-        /**
-         * Creates a promise that has been resolved with the given value.
-         * @param {*=} opt_value The resolved value.
-         * @return {!webdriver.promise.Promise} The resolved promise.
-         */
-        function fulfilled<T>(opt_value?: T): webdriver.promise.Promise<T>;
-
-        /**
-         * Calls a function for each element in an array and inserts the result into a
-         * new array, which is used as the fulfillment value of the promise returned
-         * by this function.
-         *
-         * <p>If the return value of the mapping function is a promise, this function
-         * will wait for it to be fulfilled before inserting it into the new array.
-         *
-         * <p>If the mapping function throws or returns a rejected promise, the
-         * promise returned by this function will be rejected with the same reason.
-         * Only the first failure will be reported; all subsequent errors will be
-         * silently ignored.
-         *
-         * @param {!(Array.<TYPE>|webdriver.promise.Promise.<!Array.<TYPE>>)} arr The
-         *     array to iterator over, or a promise that will resolve to said array.
-         * @param {function(this: SELF, TYPE, number, !Array.<TYPE>): ?} fn The
-         *     function to call for each element in the array. This function should
-         *     expect three arguments (the element, the index, and the array itself.
-         * @param {SELF=} opt_self The object to be used as the value of 'this' within
-         *     {@code fn}.
-         * @template TYPE, SELF
-         */
-        function map<T>(arr: T[], fn: (element: T, index: number, array: T[]) => any, opt_self?: any): webdriver.promise.Promise<T[]>
-        function map<T>(arr: webdriver.promise.Promise<T[]>, fn: (element: T, index: number, array: T[]) => any, opt_self?: any): webdriver.promise.Promise<T[]>
-
-        /**
-         * Creates a promise that has been rejected with the given reason.
-         * @param {*=} opt_reason The rejection reason; may be any value, but is
-         *     usually an Error or a string.
-         * @return {!webdriver.promise.Promise} The rejected promise.
-         */
-        function rejected(opt_reason?: any): webdriver.promise.Promise<void>;
-
-        /**
-         * Wraps a function that is assumed to be a node-style callback as its final
-         * argument. This callback takes two arguments: an error value (which will be
-         * null if the call succeeded), and the success value as the second argument.
-         * If the call fails, the returned promise will be rejected, otherwise it will
-         * be resolved with the result.
-         * @param {!Function} fn The function to wrap.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     result of the provided function's callback.
-         */
-        function checkedNodeCall<T>(fn: Function, ...var_args: any[]): webdriver.promise.Promise<T>;
-
-        /**
-         * Consumes a {@code GeneratorFunction}. Each time the generator yields a
-         * promise, this function will wait for it to be fulfilled before feeding the
-         * fulfilled value back into {@code next}. Likewise, if a yielded promise is
-         * rejected, the rejection error will be passed to {@code throw}.
-         *
-         * <p>Example 1: the Fibonacci Sequence.
-         * <pre><code>
-         * webdriver.promise.consume(function* fibonacci() {
-         *   var n1 = 1, n2 = 1;
-         *   for (var i = 0; i < 4; ++i) {
-         *     var tmp = yield n1 + n2;
-         *     n1 = n2;
-         *     n2 = tmp;
-         *   }
-         *   return n1 + n2;
-         * }).then(function(result) {
-         *   console.log(result);  // 13
-         * });
-         * </code></pre>
-         *
-         * <p>Example 2: a generator that throws.
-         * <pre><code>
-         * webdriver.promise.consume(function* () {
-         *   yield webdriver.promise.delayed(250).then(function() {
-         *     throw Error('boom');
-         *   });
-         * }).thenCatch(function(e) {
-         *   console.log(e.toString());  // Error: boom
-         * });
-         * </code></pre>
-         *
-         * @param {!Function} generatorFn The generator function to execute.
-         * @param {Object=} opt_self The object to use as "this" when invoking the
-         *     initial generator.
-         * @param {...*} var_args Any arguments to pass to the initial generator.
-         * @return {!webdriver.promise.Promise.<?>} A promise that will resolve to the
-         *     generator's final result.
-         * @throws {TypeError} If the given function is not a generator.
-         */
-        function consume<T>(generatorFn: Function, opt_self?: any, ...var_args: any[]): webdriver.promise.Promise<T>;
-
-        /**
-         * Registers an observer on a promised {@code value}, returning a new promise
-         * that will be resolved when the value is. If {@code value} is not a promise,
-         * then the return promise will be immediately resolved.
-         * @param {*} value The value to observe.
-         * @param {Function=} opt_callback The function to call when the value is
-         *     resolved successfully.
-         * @param {Function=} opt_errback The function to call when the value is
-         *     rejected.
-         * @return {!webdriver.promise.Promise} A new promise.
-         */
-        function when<T, R>(value: T, opt_callback?: (value: T) => any, opt_errback?: (error: any) => any): webdriver.promise.Promise<R>;
-        function when<T, R>(value: webdriver.promise.Promise<T>, opt_callback?: (value: T) => any, opt_errback?: (error: any) => any): webdriver.promise.Promise<R>;
-
-        /**
-         * Returns a promise that will be resolved with the input value in a
-         * fully-resolved state. If the value is an array, each element will be fully
-         * resolved. Likewise, if the value is an object, all keys will be fully
-         * resolved. In both cases, all nested arrays and objects will also be
-         * fully resolved.  All fields are resolved in place; the returned promise will
-         * resolve on {@code value} and not a copy.
-         *
-         * Warning: This function makes no checks against objects that contain
-         * cyclical references:
-         *
-         *   var value = {};
-         *   value['self'] = value;
-         *   webdriver.promise.fullyResolved(value);  // Stack overflow.
-         *
-         * @param {*} value The value to fully resolve.
-         * @return {!webdriver.promise.Promise} A promise for a fully resolved version
-         *     of the input value.
-         */
-        function fullyResolved<T>(value: any): webdriver.promise.Promise<T>;
-
-        /**
-         * Changes the default flow to use when no others are active.
-         * @param {!webdriver.promise.ControlFlow} flow The new default flow.
-         * @throws {Error} If the default flow is not currently active.
-         */
-        function setDefaultFlow(flow: webdriver.promise.ControlFlow): void;
-    }
-
-    namespace stacktrace {
-        class Frame extends webdriver.stacktrace.Frame { }
-        class Snapshot extends webdriver.stacktrace.Snapshot { }
-
-        /**
-         * Formats an error's stack trace.
-         * @param {!(Error|goog.testing.JsUnitException)} error The error to format.
-         * @return {!(Error|goog.testing.JsUnitException)} The formatted error.
-         */
-        function format(error: any): any;
-
-        /**
-         * Gets the native stack trace if available otherwise follows the call chain.
-         * The generated trace will exclude all frames up to and including the call to
-         * this function.
-         * @return {!Array.<!webdriver.stacktrace.Frame>} The frames of the stack trace.
-         */
-        function get(): webdriver.stacktrace.Frame[];
-
-        /**
-         * Whether the current browser supports stack traces.
-         *
-         * @type {boolean}
-         * @const
-         */
-        var BROWSER_SUPPORTED: boolean;
-    }
-
-    namespace until {
-        class Condition<T> extends webdriver.until.Condition<T> { }
-
-        /**
-         * Creates a condition that will wait until the input driver is able to switch
-         * to the designated frame. The target frame may be specified as:
-         * <ol>
-         *   <li>A numeric index into {@code window.frames} for the currently selected
-         *       frame.
-         *   <li>A {@link webdriver.WebElement}, which must reference a FRAME or IFRAME
-         *       element on the current page.
-         *   <li>A locator which may be used to first locate a FRAME or IFRAME on the
-         *       current page before attempting to switch to it.
-         * </ol>
-         *
-         * <p>Upon successful resolution of this condition, the driver will be left
-         * focused on the new frame.
-         *
-         * @param {!(number|webdriver.WebElement|
-         *           webdriver.Locator|webdriver.By.Hash|
-         *           function(!webdriver.WebDriver): !webdriver.WebElement)} frame
-         *     The frame identifier.
-         * @return {!until.Condition.<boolean>} A new condition.
-         */
-        function ableToSwitchToFrame(frame: number): webdriver.until.Condition<boolean>;
-        function ableToSwitchToFrame(frame: webdriver.IWebElement): webdriver.until.Condition<boolean>;
-        function ableToSwitchToFrame(frame: webdriver.Locator): webdriver.until.Condition<boolean>;
-        function ableToSwitchToFrame(frame: (webdriver: webdriver.WebDriver) => webdriver.IWebElement): webdriver.until.Condition<boolean>;
-        function ableToSwitchToFrame(frame: any): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that waits for an alert to be opened. Upon success, the
-         * returned promise will be fulfilled with the handle for the opened alert.
-         *
-         * @return {!until.Condition.<!webdriver.Alert>} The new condition.
-         */
-        function alertIsPresent(): webdriver.until.Condition<webdriver.Alert>;
-
-        /**
-         * Creates a condition that will wait for the given element to be disabled.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isEnabled
-         */
-        function elementIsDisabled(element: webdriver.IWebElement): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element to be enabled.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isEnabled
-         */
-        function elementIsEnabled(element: webdriver.IWebElement): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element to be deselected.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isSelected
-         */
-        function elementIsNotSelected(element: webdriver.IWebElement): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element to be in the DOM,
-         * yet not visible to the user.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isDisplayed
-         */
-        function elementIsNotVisible(element: webdriver.IWebElement): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element to be selected.
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isSelected
-         */
-        function elementIsSelected(element: webdriver.IWebElement): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element to become visible.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isDisplayed
-         */
-        function elementIsVisible(element: webdriver.IWebElement): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will loop until an element is
-         * {@link webdriver.WebDriver#findElement found} with the given locator.
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Function)} locator The locator
-         *     to use.
-         * @return {!until.Condition.<!webdriver.WebElement>} The new condition.
-         */
-        function elementLocated(locator: webdriver.Locator): webdriver.until.Condition<webdriver.IWebElement>;
-        function elementLocated(locator: any): webdriver.until.Condition<webdriver.IWebElement>;
-
-        /**
-         * Creates a condition that will wait for the given element's
-         * {@link webdriver.WebDriver#getText visible text} to contain the given
-         * substring.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @param {string} substr The substring to search for.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#getText
-         */
-        function elementTextContains(element: webdriver.IWebElement, substr: string): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element's
-         * {@link webdriver.WebDriver#getText visible text} to match the given
-         * {@code text} exactly.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @param {string} text The expected text.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#getText
-         */
-        function elementTextIs(element: webdriver.IWebElement, text: string): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element's
-         * {@link webdriver.WebDriver#getText visible text} to match a regular
-         * expression.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @param {!RegExp} regex The regular expression to test against.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#getText
-         */
-        function elementTextMatches(element: webdriver.IWebElement, regex: RegExp): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will loop until at least one element is
-         * {@link webdriver.WebDriver#findElement found} with the given locator.
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Function)} locator The locator
-         *     to use.
-         * @return {!until.Condition.<!Array.<!webdriver.WebElement>>} The new
-         *     condition.
-         */
-        function elementsLocated(locator: webdriver.Locator): webdriver.until.Condition<webdriver.IWebElement[]>;
-        function elementsLocated(locator: any): webdriver.until.Condition<webdriver.IWebElement[]>;
-
-        /**
-         * Creates a condition that will wait for the given element to become stale. An
-         * element is considered stale once it is removed from the DOM, or a new page
-         * has loaded.
-         *
-         * @param {!webdriver.WebElement} element The element that should become stale.
-         * @return {!until.Condition.<boolean>} The new condition.
-         */
-        function stalenessOf(element: webdriver.IWebElement): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the current page's title to contain
-         * the given substring.
-         *
-         * @param {string} substr The substring that should be present in the page
-         *     title.
-         * @return {!until.Condition.<boolean>} The new condition.
-         */
-        function titleContains(substr: string): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the current page's title to match the
-         * given value.
-         *
-         * @param {string} title The expected page title.
-         * @return {!until.Condition.<boolean>} The new condition.
-         */
-        function titleIs(title: string): webdriver.until.Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the current page's title to match the
-         * given regular expression.
-         *
-         * @param {!RegExp} regex The regular expression to test against.
-         * @return {!until.Condition.<boolean>} The new condition.
-         */
-        function titleMatches(regex: RegExp): webdriver.until.Condition<boolean>;
-    }
-
-    namespace ExpectedConditions {
-        /**
-         * Negates the result of a promise.
-         *
-         * @param {webdriver.until.Condition<boolean>} expectedCondition
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns the negated value.
-         */
-        function not<T>(expectedCondition: webdriver.until.Condition<T>): webdriver.until.Condition<T>;
-
-        /**
-         * Chain a number of expected conditions using logical_and, short circuiting at the
-         * first expected condition that evaluates to false.
-         *
-         * @param {...webdriver.until.Condition<boolean>[]} fns An array of expected conditions to 'and' together.
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise which evaluates
-         * to the result of the logical and.
-         */
-        function and<T>(...fns: webdriver.until.Condition<T>[]): webdriver.until.Condition<T>;
-
-        /**
-         * Chain a number of expected conditions using logical_or, short circuiting at the
-         * first expected condition that evaluates to true.
-         *
-         * @param {...webdriver.until.Condition<boolean>[]} fns An array of expected conditions to 'or' together.
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise which
-         * evaluates to the result of the logical or.
-         */
-        function or<T>(...fns: webdriver.until.Condition<T>[]): webdriver.until.Condition<T>;
-
-        /**
-         * Expect an alert to be present.
-         *
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise representing
-         * whether an alert is present.
-         */
-        function alertIsPresent<T>(): webdriver.until.Condition<T>;
-
-        /**
-         * An Expectation for checking an element is visible and enabled such that you can click it.
-         *
-         * @param {ElementFinder} element The element to check
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise representing
-         * whether the element is clickable.
-         */
-        function elementToBeClickable<T>(element: ElementFinder): webdriver.until.Condition<T>;
-
-        /**
-         * An expectation for checking if the given text is present in the element.
-         * Returns false if the elementFinder does not find an element.
-         *
-         * @param {ElementFinder} element The element to check
-         * @param {string} text The text to verify against
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise representing
-         * whether the text is present in the element.
-         */
-        function textToBePresentInElement<T>(element: ElementFinder, text: string): webdriver.until.Condition<T>;
-
-        /**
-         * An expectation for checking if the given text is present in the element’s value.
-         * Returns false if the elementFinder does not find an element.
-         *
-         * @param {ElementFinder} element The element to check
-         * @param {string} text The text to verify against
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise representing
-         * whether the text is present in the element's value.
-         */
-        function textToBePresentInElementValue<T>(
-          element: ElementFinder, text: string
-        ): webdriver.until.Condition<T>;
-
-        /**
-         * An expectation for checking that the title contains a case-sensitive substring.
-         *
-         * @param {string} title The fragment of title expected
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise representing
-         * whether the title contains the string.
-         */
-        function titleContains<T>(title: string): webdriver.until.Condition<T>;
-
-        /**
-         * An expectation for checking the title of a page.
-         *
-         * @param {string} title The expected title, which must be an exact match.
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise representing
-         * whether the title equals the string.
-         */
-        function titleIs<T>(title: string): webdriver.until.Condition<T>;
-
-        /**
-         * An expectation for checking that an element is present on the DOM of a page. This does not necessarily
-         * mean that the element is visible. This is the opposite of 'stalenessOf'.
-         *
-         * @param {ElementFinder} elementFinder The element to check
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise
-         * representing whether the element is present.
-         */
-        function presenceOf<T>(element: ElementFinder): webdriver.until.Condition<T>;
-
-        /**
-         * An expectation for checking that an element is not attached to the DOM of a page.
-         * This is the opposite of 'presenceOf'.
-         *
-         * @param {ElementFinder} elementFinder The element to check
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise representing
-         * whether the element is stale.
-         */
-        function stalenessOf<T>(element: ElementFinder): webdriver.until.Condition<T>;
-
-        /**
-         * An expectation for checking that an element is present on the DOM of a page and visible.
-         * Visibility means that the element is not only displayed but also has a height and width that is
-         * greater than 0. This is the opposite of 'invisibilityOf'.
-         *
-         * @param {ElementFinder} elementFinder The element to check
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise representing
-         * whether the element is visible.
-         */
-        function visibilityOf<T>(element: ElementFinder): webdriver.until.Condition<T>;
-
-        /**
-         * An expectation for checking that an element is present on the DOM of a page. This does not necessarily
-         * mean that the element is visible. This is the opposite of 'stalenessOf'.
-         *
-         * @param {ElementFinder} elementFinder The element to check
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise representing
-         * whether the element is invisible.
-         */
-        function invisibilityOf<T>(element: ElementFinder): webdriver.until.Condition<T>;
-
-        /**
-         * An expectation for checking the selection is selected.
-         *
-         * @param {ElementFinder} elementFinder The element to check
-         * @return {!webdriver.until.Condition<boolean>} An expected condition that returns a promise representing
-         * whether the element is selected.
-         */
-        function elementToBeSelected<T>(element: ElementFinder): webdriver.until.Condition<T>;
-    }
-
-    //endregion
-
-    /**
-    * Use as: element(locator)
-    *
-    * The ElementFinder can be treated as a WebElement for most purposes, in
-    * particular, you may perform actions (i.e. click, getText) on them as you
-    * would a WebElement. ElementFinders extend Promise, and once an action
-    * is performed on an ElementFinder, the latest result from the chain can be
-    * accessed using then. Unlike a WebElement, an ElementFinder will wait for
-    * angular to settle before performing finds or actions.
-    *
-    * ElementFinder can be used to build a chain of locators that is used to find
-    * an element. An ElementFinder does not actually attempt to find the element
-    * until an action is called, which means they can be set up in helper files
-    * before the page is available.
-    *
-    * @param {webdriver.Locator} locator An element locator.
-    * @return {ElementFinder}
-    */
-    interface Element {
-        (locator: webdriver.Locator): ElementFinder;
-
-         /**
-          * ElementArrayFinder is used for operations on an array of elements (as opposed
-          * to a single element).
-          *
-          * @param {webdriver.Locator} locator An element locator.
-          * @return {ElementArrayFinder}
-          */
-        all(locator: webdriver.Locator): ElementArrayFinder;
-    }
-
-    interface ElementFinder extends webdriver.IWebElement, webdriver.promise.IThenable<any> {
-        /**
-        * Calls to element may be chained to find elements within a parent.
-        *
-        * @alias element(locator).element(locator)
-        * @view
-        * <div class="parent">
-        *   <div class="child">
-        *     Child text
-        *     <div>{{person.phone}}</div>
-        *   </div>
-        * </div>
-        *
-        * @example
-        * // Chain 2 element calls.
-        * var child = element(by.css('.parent')).
-        *     element(by.css('.child'));
-        * expect(child.getText()).toBe('Child text\n555-123-4567');
-        *
-        * // Chain 3 element calls.
-        * var triple = element(by.css('.parent')).
-        *     element(by.css('.child')).
-        *     element(by.binding('person.phone'));
-        * expect(triple.getText()).toBe('555-123-4567');
-        *
-        * @param {webdriver.Locator} subLocator
-        * @return {ElementFinder}
-        */
-        element(subLocator: webdriver.Locator): ElementFinder;
-
-        /**
-        * Calls to element may be chained to find an array of elements within a parent.
-        *
-        * @alias element(locator).all(locator)
-        * @view
-        * <div class="parent">
-        *   <ul>
-        *     <li class="one">First</li>
-        *     <li class="two">Second</li>
-        *     <li class="three">Third</li>
-        *   </ul>
-        * </div>
-        *
-        * @example
-        * var items = element(by.css('.parent')).all(by.tagName('li'))
-        *
-        * @param {webdriver.Locator} subLocator
-        * @return {ElementArrayFinder}
-        */
-        all(subLocator: webdriver.Locator): ElementArrayFinder;
-
-        /**
-        * Shortcut for querying the document directly with css.
-        *
-        * @alias $(cssSelector)
-        * @view
-        * <div class="count">
-        *   <span class="one">First</span>
-        *   <span class="two">Second</span>
-        * </div>
-        *
-        * @example
-        * var item = $('.count .two');
-        * expect(item.getText()).toBe('Second');
-        *
-        * @param {string} selector A css selector
-        * @return {ElementFinder} which identifies the located
-        *     {@link webdriver.WebElement}
-        */
-        $(selector: string): ElementFinder;
-
-        /**
-        * Shortcut for querying the document directly with css.
-        *
-        * @alias $$(cssSelector)
-        * @view
-        * <div class="count">
-        *   <span class="one">First</span>
-        *   <span class="two">Second</span>
-        * </div>
-        *
-        * @example
-        * // The following protractor expressions are equivalent.
-        * var list = element.all(by.css('.count span'));
-        * expect(list.count()).toBe(2);
-        *
-        * list = $$('.count span');
-        * expect(list.count()).toBe(2);
-        * expect(list.get(0).getText()).toBe('First');
-        * expect(list.get(1).getText()).toBe('Second');
-        *
-        * @param {string} selector a css selector
-        * @return {ElementArrayFinder} which identifies the
-        *     array of the located {@link webdriver.WebElement}s.
-        */
-        $$(selector: string): ElementArrayFinder;
-
-        /**
-        * Determine whether the element is present on the page.
-        *
-        * @view
-        * <span>{{person.name}}</span>
-        *
-        * @example
-        * // Element exists.
-        * expect(element(by.binding('person.name')).isPresent()).toBe(true);
-        *
-        * // Element not present.
-        * expect(element(by.binding('notPresent')).isPresent()).toBe(false);
-        *
-        * @return {ElementFinder} which resolves to whether
-        *     the element is present on the page.
-        */
-        isPresent(): webdriver.promise.Promise<boolean>;
-
-        /**
-        * Override for WebElement.prototype.isElementPresent so that protractor waits
-        * for Angular to settle before making the check.
-        *
-        * @see ElementFinder.isPresent
-        *
-        * @param {webdriver.Locator} subLocator Locator for element to look for.
-        * @return {ElementFinder} which resolves to whether
-        *     the element is present on the page.
-        */
-        isElementPresent(subLocator: webdriver.Locator): webdriver.promise.Promise<boolean>;
-
-        /**
-        * @see ElementArrayFinder.prototype.locator
-        *
-        * @return {webdriver.Locator}
-        */
-        locator(): webdriver.Locator;
-
-        /**
-        * Returns the WebElement represented by this ElementFinder.
-        * Throws the WebDriver error if the element doesn't exist.
-        *
-        * @example
-        *  The following three expressions are equivalent.
-        *  element(by.css('.parent')).getWebElement();
-        *  browser.waitForAngular(); browser.driver.findElement(by.css('.parent'));
-        *  browser.findElement(by.css('.parent'));
-        *
-        * @alias element(locator).getWebElement()
-        * @return {webdriver.WebElement}
-        */
-        getWebElement(): webdriver.WebElement;
-
-        /**
-        * Evaluates the input as if it were on the scope of the current element.
-        * @see ElementArrayFinder.evaluate
-        *
-        * @param {string} expression
-        *
-        * @return {ElementFinder} which resolves to the evaluated expression.
-        */
-        evaluate(expression: string): ElementFinder;
-
-        /**
-        * @see ElementArrayFinder.prototype.allowAnimations.
-        * @param {string} value
-        *
-        * @return {ElementFinder} which resolves to whether animation is allowed.
-        */
-        allowAnimations(value: string): ElementFinder;
-
-        /**
-        * Create a shallow copy of ElementFinder.
-        *
-        * @return {!ElementFinder} A shallow copy of this.
-        */
-        clone(): ElementFinder;
-    }
-
-    interface ElementArrayFinder extends webdriver.promise.IThenable<ElementFinder[]> {
-        /**
-         * Returns the elements as an array of WebElements.
-         */
-        getWebElements(): webdriver.WebElement[];
-
-
-        /**
-        * Get an element within the ElementArrayFinder by index. The index starts at 0.
-        * Negative indices are wrapped (i.e. -i means ith element from last)
-        * This does not actually retrieve the underlying element.
-        *
-        * @alias element.all(locator).get(index)
-        * @view
-        * <ul class="items">
-        *   <li>First</li>
-        *   <li>Second</li>
-        *   <li>Third</li>
-        * </ul>
-        *
-        * @example
-        * var list = element.all(by.css('.items li'));
-        * expect(list.get(0).getText()).toBe('First');
-        * expect(list.get(1).getText()).toBe('Second');
-        *
-        * @param {number} index Element index.
-        * @return {ElementFinder} finder representing element at the given index.
-        */
-        get(index: number): ElementFinder;
-
-        /**
-        * Get the first matching element for the ElementArrayFinder. This does not
-        * actually retrieve the underlying element.
-        *
-        * @alias element.all(locator).first()
-        * @view
-        * <ul class="items">
-        *   <li>First</li>
-        *   <li>Second</li>
-        *   <li>Third</li>
-        * </ul>
-        *
-        * @example
-        * var first = element.all(by.css('.items li')).first();
-        * expect(first.getText()).toBe('First');
-        *
-        * @return {ElementFinder} finder representing the first matching element
-        */
-        first(): ElementFinder;
-
-        /**
-        * Get the last matching element for the ElementArrayFinder. This does not
-        * actually retrieve the underlying element.
-        *
-        * @alias element.all(locator).last()
-        * @view
-        * <ul class="items">
-        *   <li>First</li>
-        *   <li>Second</li>
-        *   <li>Third</li>
-        * </ul>
-        *
-        * @example
-        * var last = element.all(by.css('.items li')).last();
-        * expect(last.getText()).toBe('Third');
-        *
-        * @return {ElementFinder} finder representing the last matching element
-        */
-        last(): ElementFinder;
-
-        /**
-        * Count the number of elements represented by the ElementArrayFinder.
-        *
-        * @alias element.all(locator).count()
-        * @view
-        * <ul class="items">
-        *   <li>First</li>
-        *   <li>Second</li>
-        *   <li>Third</li>
-        * </ul>
-        *
-        * @example
-        * var list = element.all(by.css('.items li'));
-        * expect(list.count()).toBe(3);
-        *
-        * @return {!webdriver.promise.Promise} A promise which resolves to the
-        *     number of elements matching the locator.
-        */
-        count(): webdriver.promise.Promise<number>;
-
-        /**
-        * Calls the input function on each ElementFinder represented by the ElementArrayFinder.
-        *
-        * @alias element.all(locator).each(eachFunction)
-        * @view
-        * <ul class="items">
-        *   <li>First</li>
-        *   <li>Second</li>
-        *   <li>Third</li>
-        * </ul>
-        *
-        * @example
-        * element.all(by.css('.items li')).each(function(element) {
-        *   // Will print First, Second, Third.
-        *   element.getText().then(console.log);
-        * });
-        *
-        * @param {function(ElementFinder)} fn Input function
-        */
-        each(fn: (element: ElementFinder, index: number) => void): void;
-
-        /**
-        * Apply a map function to each element within the ElementArrayFinder. The
-        * callback receives the ElementFinder as the first argument and the index as
-        * a second arg.
-        *
-        * @alias element.all(locator).map(mapFunction)
-        * @view
-        * <ul class="items">
-        *   <li class="one">First</li>
-        *   <li class="two">Second</li>
-        *   <li class="three">Third</li>
-        * </ul>
-        *
-        * @example
-        * var items = element.all(by.css('.items li')).map(function(elm, index) {
-        *   return {
-        *     index: index,
-        *     text: elm.getText(),
-        *     class: elm.getAttribute('class')
-        *   };
-        * });
-        * expect(items).toEqual([
-        *   {index: 0, text: 'First', class: 'one'},
-        *   {index: 1, text: 'Second', class: 'two'},
-        *   {index: 2, text: 'Third', class: 'three'}
-        * ]);
-        *
-        * @param {function(ElementFinder, number)} mapFn Map function that
-        *     will be applied to each element.
-        * @return {!webdriver.promise.Promise} A promise that resolves to an array
-        *     of values returned by the map function.
-        */
-        map<T>(mapFn: (element: ElementFinder, index: number) => T): webdriver.promise.Promise<T[]>;
-        map<T, T2>(mapFn: (element: ElementFinder, index: number) => T2): webdriver.promise.Promise<T[]>;
-
-        /**
-        * Apply a filter function to each element within the ElementArrayFinder. Returns
-        * a new ElementArrayFinder with all elements that pass the filter function. The
-        * filter function receives the ElementFinder as the first argument
-        * and the index as a second arg.
-        * This does not actually retrieve the underlying list of elements, so it can
-        * be used in page objects.
-        *
-        * @alias element.all(locator).filter(filterFn)
-        * @view
-        * <ul class="items">
-        *   <li class="one">First</li>
-        *   <li class="two">Second</li>
-        *   <li class="three">Third</li>
-        * </ul>
-        *
-        * @example
-        * element.all(by.css('.items li')).filter(function(elem, index) {
-        *   return elem.getText().then(function(text) {
-        *     return text === 'Third';
-        *   });
-        * }).then(function(filteredElements) {
-        *   filteredElements[0].click();
-        * });
-        *
-        * @param {function(ElementFinder, number): webdriver.WebElement.Promise} filterFn
-        *     Filter function that will test if an element should be returned.
-        *     filterFn can either return a boolean or a promise that resolves to a boolean.
-        * @return {!ElementArrayFinder} A ElementArrayFinder that represents an array
-        *     of element that satisfy the filter function.
-        */
-        filter(filterFn: (element: ElementFinder, index: number) => any): ElementArrayFinder;
-
-        /**
-        * Apply a reduce function against an accumulator and every element found
-        * using the locator (from left-to-right). The reduce function has to reduce
-        * every element into a single value (the accumulator). Returns promise of
-        * the accumulator. The reduce function receives the accumulator, current
-        * ElementFinder, the index, and the entire array of ElementFinders,
-        * respectively.
-        *
-        * @alias element.all(locator).reduce(reduceFn)
-        * @view
-        * <ul class="items">
-        *   <li class="one">First</li>
-        *   <li class="two">Second</li>
-        *   <li class="three">Third</li>
-        * </ul>
-        *
-        * @example
-        * var value = element.all(by.css('.items li')).reduce(function(acc, elem) {
-        *   return elem.getText().then(function(text) {
-        *     return acc + text + ' ';
-        *   });
-        * });
-        *
-        * expect(value).toEqual('First Second Third ');
-        *
-        * @param {function(number, ElementFinder, number, Array.<ElementFinder>)}
-        *     reduceFn Reduce function that reduces every element into a single value.
-        * @param {*} initialValue Initial value of the accumulator.
-        * @return {!webdriver.promise.Promise} A promise that resolves to the final
-        *     value of the accumulator.
-        */
-        reduce<T>(reduceFn: (acc: T, element: ElementFinder, index: number, arr: ElementFinder[]) => webdriver.promise.Promise<T>, initialValue: T): webdriver.promise.Promise<T>;
-        reduce<T>(reduceFn: (acc: T, element: ElementFinder, index: number, arr: ElementFinder[]) => T, initialValue: T): webdriver.promise.Promise<T>;
-
-        /**
-        * Represents the ElementArrayFinder as an array of ElementFinders.
-        *
-        * @return {Array.<ElementFinder>} Return a promise, which resolves to a list
-        *     of ElementFinders specified by the locator.
-        */
-        asElementFinders_(): webdriver.promise.Promise<ElementFinder[]>;
-
-        /**
-        * Create a shallow copy of ElementArrayFinder.
-        *
-        * @return {!ElementArrayFinder} A shallow copy of this.
-        */
-        clone(): ElementArrayFinder;
-
-        /**
-        * Calls to ElementArrayFinder may be chained to find an array of elements
-        * using the current elements in this ElementArrayFinder as the starting point.
-        * This function returns a new ElementArrayFinder which would contain the
-        * children elements found (and could also be empty).
-        *
-        * @alias element.all(locator).all(locator)
-        * @view
-        * <div id='id1' class="parent">
-        *   <ul>
-        *     <li class="foo">1a</li>
-        *     <li class="baz">1b</li>
-        *   </ul>
-        * </div>
-        * <div id='id2' class="parent">
-        *   <ul>
-        *     <li class="foo">2a</li>
-        *     <li class="bar">2b</li>
-        *   </ul>
-        * </div>
-        *
-        * @example
-        * var foo = element.all(by.css('.parent')).all(by.css('.foo'))
-        * expect(foo.getText()).toEqual(['1a', '2a'])
-        * var baz = element.all(by.css('.parent')).all(by.css('.baz'))
-        * expect(baz.getText()).toEqual(['1b'])
-        * var nonexistent = element.all(by.css('.parent')).all(by.css('.NONEXISTENT'))
-        * expect(nonexistent.getText()).toEqual([''])
-        *
-        * @param {webdriver.Locator} subLocator
-        * @return {ElementArrayFinder}
-        */
-        all(locator: webdriver.Locator): ElementArrayFinder;
-
-        /**
-        * Shorthand function for finding arrays of elements by css.
-        *
-        * @type {function(string): ElementArrayFinder}
-        */
-        $$(selector: string): ElementArrayFinder;
-
-        /**
-        * Returns an ElementFinder representation of ElementArrayFinder. It ensures
-        * that the ElementArrayFinder resolves to one and only one underlying element.
-        *
-        * @return {ElementFinder} An ElementFinder representation
-        * @private
-        */
-        toElementFinder_(): ElementFinder;
-
-        /**
-        * Returns the most relevant locator.
-        *
-        * @example
-        * $('#ID1').locator() // returns by.css('#ID1')
-        * $('#ID1').$('#ID2').locator() // returns by.css('#ID2')
-        * $$('#ID1').filter(filterFn).get(0).click().locator() // returns by.css('#ID1')
-        *
-        * @return {webdriver.Locator}
-        */
-        locator(): webdriver.Locator;
-
-        /**
-         * Evaluates the input as if it were on the scope of the current underlying
-         * elements.
-         *
-         * @view
-         * <span id="foo">{{variableInScope}}</span>
-         *
-         * @example
-         * var value = element(by.id('foo')).evaluate('variableInScope');
-         *
-         * @param {string} expression
-         *
-         * @return {ElementArrayFinder} which resolves to the
-         *     evaluated expression for each underlying element.
-         *     The result will be resolved as in
-         *     {@link webdriver.WebDriver.executeScript}. In summary - primitives will
-         *     be resolved as is, functions will be converted to string, and elements
-         *     will be returned as a WebElement.
-         */
-        evaluate(expression: string): ElementArrayFinder;
-
-        /**
-         * Determine if animation is allowed on the current underlying elements.
-         * @param {string} value
-         *
-         * @example
-         * // Turns off ng-animate animations for all elements in the <body>
-         * element(by.css('body')).allowAnimations(false);
-         *
-         * @return {ElementArrayFinder} which resolves to whether animation is allowed.
-         */
-        allowAnimations(value: boolean): ElementArrayFinder;
-
-        /**
-         * Schedules a command to click on this element.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when
-         *     the click command has completed.
-         */
-        click(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to type a sequence on the DOM element represented by this
-         * instance.
-         * <p/>
-         * Modifier keys (SHIFT, CONTROL, ALT, META) are stateful; once a modifier is
-         * processed in the keysequence, that key state is toggled until one of the
-         * following occurs:
-         * <ul>
-         * <li>The modifier key is encountered again in the sequence. At this point the
-         * state of the key is toggled (along with the appropriate keyup/down events).
-         * </li>
-         * <li>The {@code webdriver.Key.NULL} key is encountered in the sequence. When
-         * this key is encountered, all modifier keys current in the down state are
-         * released (with accompanying keyup events). The NULL key can be used to
-         * simulate common keyboard shortcuts:
-         * <code>
-         *     element.sendKeys("text was",
-         *                      webdriver.Key.CONTROL, "a", webdriver.Key.NULL,
-         *                      "now text is");
-         *     // Alternatively:
-         *     element.sendKeys("text was",
-         *                      webdriver.Key.chord(webdriver.Key.CONTROL, "a"),
-         *                      "now text is");
-         * </code></li>
-         * <li>The end of the keysequence is encountered. When there are no more keys
-         * to type, all depressed modifier keys are released (with accompanying keyup
-         * events).
-         * </li>
-         * </ul>
-         * <strong>Note:</strong> On browsers where native keyboard events are not yet
-         * supported (e.g. Firefox on OS X), key events will be synthesized. Special
-         * punctionation keys will be synthesized according to a standard QWERTY en-us
-         * keyboard layout.
-         *
-         * @param {...string} var_args The sequence of keys to
-         *     type. All arguments will be joined into a single sequence (var_args is
-         *     permitted for convenience).
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when all
-         *     keys have been typed.
-         */
-        sendKeys(...var_args: string[]): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to query for the tag/node name of this element.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     element's tag name.
-         */
-        getTagName(): webdriver.promise.Promise<string[]>;
-
-        /**
-         * Schedules a command to query for the computed style of the element
-         * represented by this instance. If the element inherits the named style from
-         * its parent, the parent will be queried for its value.  Where possible, color
-         * values will be converted to their hex representation (e.g. #00ff00 instead of
-         * rgb(0, 255, 0)).
-         * <p/>
-         * <em>Warning:</em> the value returned will be as the browser interprets it, so
-         * it may be tricky to form a proper assertion.
-         *
-         * @param {string} cssStyleProperty The name of the CSS style property to look
-         *     up.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     requested CSS value.
-         */
-        getCssValue(cssStyleProperty: string): webdriver.promise.Promise<string[]>;
-
-        /**
-         * Schedules a command to query for the value of the given attribute of the
-         * element. Will return the current value even if it has been modified after the
-         * page has been loaded. More exactly, this method will return the value of the
-         * given attribute, unless that attribute is not present, in which case the
-         * value of the property with the same name is returned. If neither value is
-         * set, null is returned. The "style" attribute is converted as best can be to a
-         * text representation with a trailing semi-colon. The following are deemed to
-         * be "boolean" attributes and will be returned as thus:
-         *
-         * <p>async, autofocus, autoplay, checked, compact, complete, controls, declare,
-         * defaultchecked, defaultselected, defer, disabled, draggable, ended,
-         * formnovalidate, hidden, indeterminate, iscontenteditable, ismap, itemscope,
-         * loop, multiple, muted, nohref, noresize, noshade, novalidate, nowrap, open,
-         * paused, pubdate, readonly, required, reversed, scoped, seamless, seeking,
-         * selected, spellcheck, truespeed, willvalidate
-         *
-         * <p>Finally, the following commonly mis-capitalized attribute/property names
-         * are evaluated as expected:
-         * <ul>
-         *   <li>"class"
-         *   <li>"readonly"
-         * </ul>
-         * @param {string} attributeName The name of the attribute to query.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     attribute's value.
-         */
-        getAttribute(attributeName: string): webdriver.promise.Promise<string[]>;
-
-        /**
-         * Get the visible (i.e. not hidden by CSS) innerText of this element, including
-         * sub-elements, without any leading or trailing whitespace.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     element's visible text.
-         */
-        getText(): webdriver.promise.Promise<string[]>;
-
-        /**
-         * Schedules a command to compute the size of this element's bounding box, in
-         * pixels.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     element's size as a {@code {width:number, height:number}} object.
-         */
-        getSize(): webdriver.promise.Promise<webdriver.ISize[]>;
-
-        /**
-         * Schedules a command to compute the location of this element in page space.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved to the
-         *     element's location as a {@code {x:number, y:number}} object.
-         */
-        getLocation(): webdriver.promise.Promise<webdriver.ILocation[]>;
-
-        /**
-         * Schedules a command to query whether the DOM element represented by this
-         * instance is enabled, as dicted by the {@code disabled} attribute.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with
-         *     whether this element is currently enabled.
-         */
-        isEnabled(): webdriver.promise.Promise<boolean[]>;
-
-        /**
-         * Schedules a command to query whether this element is selected.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with
-         *     whether this element is currently selected.
-         */
-        isSelected(): webdriver.promise.Promise<boolean[]>;
-
-        /**
-         * Schedules a command to submit the form containing this element (or this
-         * element if it is a FORM element). This command is a no-op if the element is
-         * not contained in a form.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when
-         *     the form has been submitted.
-         */
-        submit(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to clear the {@code value} of this element. This command
-         * has no effect if the underlying DOM element is neither a text INPUT element
-         * nor a TEXTAREA element.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when
-         *     the element has been cleared.
-         */
-        clear(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to test whether this element is currently displayed.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with
-         *     whether this element is currently visible on the page.
-         */
-        isDisplayed(): webdriver.promise.Promise<boolean[]>;
-
-        /**
-         * Schedules a command to retrieve the outer HTML of this element.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with
-         *     the element's outer HTML.
-         */
-        getOuterHtml(): webdriver.promise.Promise<string[]>;
-
-        /**
-         * @return {!webdriver.promise.Promise.<webdriver.WebElement.Id>} A promise
-         *     that resolves to this element's JSON representation as defined by the
-         *     WebDriver wire protocol.
-         * @see http://code.google.com/p/selenium/wiki/JsonWireProtocol
-         */
-        getId(): webdriver.promise.Promise<webdriver.IWebElementId[]>
-
-        /**
-         * Schedules a command to retrieve the inner HTML of this element.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     element's inner HTML.
-         */
-        getInnerHtml(): webdriver.promise.Promise<string[]>;
-    }
-
-    interface LocatorWithColumn extends webdriver.Locator {
-        column(index: number): webdriver.Locator;
-        column(name: string): webdriver.Locator;
-    }
-
-    interface RepeaterLocator extends LocatorWithColumn {
-        row(index: number): LocatorWithColumn;
-    }
-
-    interface IProtractorLocatorStrategy {
-        /**
-         * webdriver's By is an enum of locator functions, so we must set it to
-         * a prototype before inheriting from it.
-         */
-        className: typeof webdriver.By.className;
-        css: typeof webdriver.By.css;
-        id: typeof webdriver.By.id;
-        linkText: typeof webdriver.By.linkText;
-        js: typeof webdriver.By.js;
-        name: typeof webdriver.By.name;
-        partialLinkText: typeof webdriver.By.partialLinkText;
-        tagName: typeof webdriver.By.tagName;
-        xpath: typeof webdriver.By.xpath;
-
-        /**
-         * Add a locator to this instance of ProtractorBy. This locator can then be
-         * used with element(by.locatorName(args)).
-         *
-         * @view
-         * <button ng-click="doAddition()">Go!</button>
-         *
-         * @example
-         * // Add the custom locator.
-         * by.addLocator('buttonTextSimple',
-         *     function(buttonText, opt_parentElement, opt_rootSelector) {
-         *   // This function will be serialized as a string and will execute in the
-         *   // browser. The first argument is the text for the button. The second
-         *   // argument is the parent element, if any.
-         *   var using = opt_parentElement,
-         *       buttons = using.querySelectorAll('button');
-         *
-         *   // Return an array of buttons with the text.
-         *   return Array.prototype.filter.call(buttons, function(button) {
-         *     return button.textContent === buttonText;
-         *   });
-         * });
-         *
-         * // Use the custom locator.
-         * element(by.buttonTextSimple('Go!')).click();
-         *
-         * @alias by.addLocator(locatorName, functionOrScript)
-         * @param {string} name The name of the new locator.
-         * @param {Function|string} script A script to be run in the context of
-         *     the browser. This script will be passed an array of arguments
-         *     that contains any args passed into the locator followed by the
-         *     element scoping the search and the css selector for the root angular
-         *     element. It should return an array of elements.
-         */
-        addLocator(name: string, script: string): void;
-        addLocator(name: string, script: Function): void;
-
-        /**
-         * Find an element by binding.
-         *
-         * @view
-         * <span>{{person.name}}</span>
-         * <span ng-bind="person.email"></span>
-         *
-         * @example
-         * var span1 = element(by.binding('person.name'));
-         * expect(span1.getText()).toBe('Foo');
-         *
-         * var span2 = element(by.binding('person.email'));
-         * expect(span2.getText()).toBe('foo@bar.com');
-         *
-         * @param {string} bindingDescriptor
-         * @return {{findElementsOverride: findElementsOverride, toString: Function|string}}
-         */
-        binding(bindingDescriptor: string): webdriver.Locator;
-
-        /**
-         * Find an element by exact binding.
-         *
-         * @view
-         * <span>{{ person.name }}</span>
-         * <span ng-bind="person-email"></span>
-         * <span>{{person_phone|uppercase}}</span>
-         *
-         * @example
-         * expect(element(by.exactBinding('person.name')).isPresent()).toBe(true);
-         * expect(element(by.exactBinding('person-email')).isPresent()).toBe(true);
-         * expect(element(by.exactBinding('person')).isPresent()).toBe(false);
-         * expect(element(by.exactBinding('person_phone')).isPresent()).toBe(true);
-         * expect(element(by.exactBinding('person_phone|uppercase')).isPresent()).toBe(true);
-         * expect(element(by.exactBinding('phone')).isPresent()).toBe(false);
-         *
-         * @param {string} bindingDescriptor
-         * @return {{findElementsOverride: findElementsOverride, toString: Function|string}}
-         */
-        exactBinding(bindingDescriptor: string): webdriver.Locator;
-
-        /**
-         * Find an element by ng-model expression.
-         *
-         * @alias by.model(modelName)
-         * @view
-         * <input type="text" ng-model="person.name"/>
-         *
-         * @example
-         * var input = element(by.model('person.name'));
-         * input.sendKeys('123');
-         * expect(input.getAttribute('value')).toBe('Foo123');
-         *
-         * @param {string} model ng-model expression.
-         */
-        model(model: string): webdriver.Locator;
-
-        /**
-         * Find a button by text.
-         *
-         * @view
-         * <button>Save</button>
-         *
-         * @example
-         * element(by.buttonText('Save'));
-         *
-         * @param {string} searchText
-         * @return {{findElementsOverride: findElementsOverride, toString: Function|string}}
-         */
-        buttonText(searchText: string): webdriver.Locator;
-
-        /**
-         * Find a button by partial text.
-         *
-         * @view
-         * <button>Save my file</button>
-         *
-         * @example
-         * element(by.partialButtonText('Save'));
-         *
-         * @param {string} searchText
-         * @return {{findElementsOverride: findElementsOverride, toString: Function|string}}
-         */
-        partialButtonText(searchText: string): webdriver.Locator;
-
-
-        /**
-         * Find elements inside an ng-repeat.
-         *
-         * @view
-         * <div ng-repeat="cat in pets">
-         *   <span>{{cat.name}}</span>
-         *   <span>{{cat.age}}</span>
-         * </div>
-         *
-         * <div class="book-img" ng-repeat-start="book in library">
-         *   <span>{{$index}}</span>
-         * </div>
-         * <div class="book-info" ng-repeat-end>
-         *   <h4>{{book.name}}</h4>
-         *   <p>{{book.blurb}}</p>
-         * </div>
-         *
-         * @example
-         * // Returns the DIV for the second cat.
-         * var secondCat = element(by.repeater('cat in pets').row(1));
-         *
-         * // Returns the SPAN for the first cat's name.
-         * var firstCatName = element(by.repeater('cat in pets').
-         *     row(0).column('{{cat.name}}'));
-         *
-         * // Returns a promise that resolves to an array of WebElements from a column
-         * var ages = element.all(
-         *     by.repeater('cat in pets').column('{{cat.age}}'));
-         *
-         * // Returns a promise that resolves to an array of WebElements containing
-         * // all top level elements repeated by the repeater. For 2 pets rows resolves
-         * // to an array of 2 elements.
-         * var rows = element.all(by.repeater('cat in pets'));
-         *
-         * // Returns a promise that resolves to an array of WebElements containing all
-         * // the elements with a binding to the book's name.
-         * var divs = element.all(by.repeater('book in library').column('book.name'));
-         *
-         * // Returns a promise that resolves to an array of WebElements containing
-         * // the DIVs for the second book.
-         * var bookInfo = element.all(by.repeater('book in library').row(1));
-         *
-         * // Returns the H4 for the first book's name.
-         * var firstBookName = element(by.repeater('book in library').
-         *     row(0).column('{{book.name}}'));
-         *
-         * // Returns a promise that resolves to an array of WebElements containing
-         * // all top level elements repeated by the repeater. For 2 books divs
-         * // resolves to an array of 4 elements.
-         * var divs = element.all(by.repeater('book in library'));
-         */
-        repeater(repeatDescriptor: string): RepeaterLocator;
-
-        /**
-         * Find elements by CSS which contain a certain string.
-         *
-         * @view
-         * <ul>
-         *   <li class="pet">Dog</li>
-         *   <li class="pet">Cat</li>
-         * </ul>
-         *
-         * @example
-         * // Returns the DIV for the dog, but not cat.
-         * var dog = element(by.cssContainingText('.pet', 'Dog'));
-         */
-        cssContainingText(cssSelector: string, searchText: string): webdriver.Locator;
-
-        /**
-         * Find an element by ng-options expression.
-         *
-         * @alias by.options(optionsDescriptor)
-         * @view
-         * <select ng-model="color" ng-options="c for c in colors">
-         *   <option value="0" selected="selected">red</option>
-         *   <option value="1">green</option>
-         * </select>
-         *
-         * @example
-         * var allOptions = element.all(by.options('c for c in colors'));
-         * expect(allOptions.count()).toEqual(2);
-         * var firstOption = allOptions.first();
-         * expect(firstOption.getText()).toEqual('red');
-         *
-         * @param {string} optionsDescriptor ng-options expression.
-         */
-        options(optionsDescriptor: string): webdriver.Locator;
-    }
-
-    var By: IProtractorLocatorStrategy;
-
-    interface Protractor extends webdriver.WebDriver {
-
-        /**
-        * The wrapped webdriver instance. Use this to interact with pages that do
-        * not contain Angular (such as a log-in screen).
-        *
-        * @type {webdriver.WebDriver}
-        */
-        driver: webdriver.WebDriver;
-
-        /**
-        * Helper function for finding elements.
-        *
-        * @type {function(webdriver.Locator): ElementFinder}
-        */
-        element(locator: webdriver.Locator): ElementFinder;
-
-        /**
-        * Shorthand function for finding elements by css.
-        *
-        * @type {function(string): ElementFinder}
-        */
-        $(selector: string): ElementFinder;
-
-        /**
-        * Shorthand function for finding arrays of elements by css.
-        *
-        * @type {function(string): ElementArrayFinder}
-        */
-        $$(selector: string): ElementArrayFinder;
-
-        /**
-        * All get methods will be resolved against this base URL. Relative URLs are =
-        * resolved the way anchor tags resolve.
-        *
-        * @type {string}
-        */
-        baseUrl: string;
-
-        /**
-        * The css selector for an element on which to find Angular. This is usually
-        * 'body' but if your ng-app is on a subsection of the page it may be
-        * a subelement.
-        *
-        * @type {string}
-        */
-        rootEl: string;
-
-        /**
-        * If true, Protractor will not attempt to synchronize with the page before
-        * performing actions. This can be harmful because Protractor will not wait
-        * until $timeouts and $http calls have been processed, which can cause
-        * tests to become flaky. This should be used only when necessary, such as
-        * when a page continuously polls an API using $timeout.
-        *
-        * @type {boolean}
-        */
-        ignoreSynchronization: boolean;
-
-        /**
-        * Timeout in milliseconds to wait for pages to load when calling `get`.
-        *
-        * @type {number}
-        */
-        getPageTimeout: number;
-
-        /**
-        * An object that holds custom test parameters.
-        *
-        * @type {Object}
-        */
-        params: any;
-
-        /**
-        * The reset URL to use between page loads.
-        *
-        * @type {string}
-        */
-        resetUrl: string;
-
-        /**
-         * Instruct webdriver to wait until Angular has finished rendering and has
-         * no outstanding $http calls before continuing.
-         *
-         * @return {!webdriver.promise.Promise} A promise that will resolve to the
-         *    scripts return value.
-         */
-        waitForAngular(): webdriver.promise.Promise<any>;
-
-        /**
-         * Add a module to load before Angular whenever Protractor.get is called.
-         * Modules will be registered after existing modules already on the page,
-         * so any module registered here will override preexisting modules with the same
-         * name.
-         *
-         * @example
-         * browser.addMockModule('modName', function() {
-         *   angular.module('modName', []).value('foo', 'bar');
-         * });
-         *
-         * @param {!string} name The name of the module to load or override.
-         * @param {!string|Function} script The JavaScript to load the module.
-         * @param {...*} varArgs Any additional arguments will be provided to
-         *     the script and may be referenced using the `arguments` object.
-         */
-        addMockModule(name: string, script: string, ...varArgs: any[]): void;
-        addMockModule(name: string, script: Function, ...varArgs: any[]): void;
-
-        /**
-         * Clear the list of registered mock modules.
-         */
-        clearMockModules(): void;
-
-        /**
-         * Remove a registered mock module.
-         *
-         * @example
-         * browser.removeMockModule('modName');
-         *
-         * @param {!string} name The name of the module to remove.
-         */
-        removeMockModule(name: string): void;
-
-        /**
-         * @see webdriver.WebDriver.get
-         *
-         * Navigate to the given destination and loads mock modules before
-         * Angular. Assumes that the page being loaded uses Angular.
-         * If you need to access a page which does not have Angular on load, use
-         * the wrapped webdriver directly.
-         *
-         * @param {string} destination Destination URL.
-         * @param {number=} opt_timeout Number of milliseconds to wait for Angular to
-         *     start.
-         */
-        get(destination: string, opt_timeout?: number): webdriver.promise.Promise<void>;
-
-        /**
-         * See webdriver.WebDriver.refresh
-         *
-         * Makes a full reload of the current page and loads mock modules before
-         * Angular. Assumes that the page being loaded uses Angular.
-         * If you need to access a page which does not have Angular on load, use
-         * the wrapped webdriver directly.
-         *
-         * @param {number=} opt_timeout Number of seconds to wait for Angular to start.
-         */
-        refresh(opt_timeout?: number): webdriver.promise.Promise<void>;
-
-        /**
-         * Browse to another page using in-page navigation.
-         *
-         * @param {string} url In page URL using the same syntax as $location.url()
-         * @returns {!webdriver.promise.Promise} A promise that will resolve once
-         *    page has been changed.
-         */
-        setLocation(url: string): webdriver.promise.Promise<void>;
-
-        /**
-         * Returns the current absolute url from AngularJS.
-         */
-        getLocationAbsUrl(): webdriver.promise.Promise<string>;
-
-        /**
-         * Pauses the test and injects some helper functions into the browser, so that
-         * debugging may be done in the browser console.
-         *
-         * This should be used under node in debug mode, i.e. with
-         * protractor debug <configuration.js>
-         *
-         * @example
-         * While in the debugger, commands can be scheduled through webdriver by
-         * entering the repl:
-         *   debug> repl
-         *   Press Ctrl + C to leave rdebug repl
-         *   > ptor.findElement(protractor.By.input('user').sendKeys('Laura'));
-         *   > ptor.debugger();
-         *   debug> c
-         *
-         * This will run the sendKeys command as the next task, then re-enter the
-         * debugger.
-         */
-        debugger(): void;
-
-        /**
-         * Beta (unstable) pause function for debugging webdriver tests. Use
-         * browser.pause() in your test to enter the protractor debugger from that
-         * point in the control flow.
-         * Does not require changes to the command line (no need to add 'debug').
-         *
-         * @example
-         * element(by.id('foo')).click();
-         * browser.pause();
-         * // Execution will stop before the next click action.
-         * element(by.id('bar')).click();
-         *
-         * @param {number=} opt_debugPort Optional port to use for the debugging process
-         */
-        pause(opt_debugPort?: number): void;
-    }
-
-    // Interface for the global browser object.
-    interface IBrowser extends Protractor {
-        /**
-        * Fork another instance of protractor for use in interactive tests.
-        *
-        * @param {boolean} opt_useSameUrl Whether to navigate to current url on creation
-        * @param {boolean} opt_copyMockModules Whether to apply same mock modules on creation
-        * @return {Protractor} a protractor instance.
-        */
-        forkNewDriverInstance(opt_useSameUrl?: boolean, opt_copyMockModules?: boolean): Protractor;
-
-        /**
-        * Get the processed configuration object that is currently being run. This will contain
-        * the specs and capabilities properties of the current runner instance.
-        *
-        * Set by the runner.
-        *
-        * @return {webdriver.promise.Promise<any>} A promise which resolves to the capabilities object.
-        */
-        getProcessedConfig(): webdriver.promise.Promise<any>;
-    }
-
-    /**
-     * Create a new instance of Protractor by wrapping a webdriver instance.
-     *
-     * @param {webdriver.WebDriver} webdriver The configured webdriver instance.
-     * @param {string=} opt_baseUrl A URL to prepend to relative gets.
-     * @return {Protractor}
-     */
-    function wrapDriver(webdriver: webdriver.WebDriver, opt_baseUrl?: string, opt_rootElement?: string): Protractor;
-}
-
-interface cssSelectorHelper {
-    (cssLocator: string): protractor.ElementFinder;
-}
-
-interface cssArraySelectorHelper {
-    (cssLocator: string): protractor.ElementArrayFinder;
-}
-
-declare var browser: protractor.IBrowser;
-declare var by: protractor.IProtractorLocatorStrategy;
-declare var By: protractor.IProtractorLocatorStrategy;
-declare var element: protractor.Element;
-declare var $: cssSelectorHelper;
-declare var $$: cssArraySelectorHelper;
-
-declare module 'protractor' {
-    export = protractor;
-}
diff --git a/demo/Angular2_Demo/typings/globals/angular-protractor/typings.json b/demo/Angular2_Demo/typings/globals/angular-protractor/typings.json
deleted file mode 100644
index de9fff3248686cfd681e841a98a02ca43ecb7056..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings/globals/angular-protractor/typings.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "resolution": "main",
-  "tree": {
-    "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/f9c44651705f574f6d4258fe5e1c335462bdcc19/angular-protractor/angular-protractor.d.ts",
-    "raw": "registry:dt/angular-protractor#1.5.0+20160425143459",
-    "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/f9c44651705f574f6d4258fe5e1c335462bdcc19/angular-protractor/angular-protractor.d.ts"
-  }
-}
diff --git a/demo/Angular2_Demo/typings/globals/core-js/index.d.ts b/demo/Angular2_Demo/typings/globals/core-js/index.d.ts
deleted file mode 100644
index fde9a61dde7c0e9dbb92ebaba2b909e35de8a38d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings/globals/core-js/index.d.ts
+++ /dev/null
@@ -1,3025 +0,0 @@
-// Generated by typings
-// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/95e782233e8e203a0b9283c3a7031faee428a530/core-js/core-js.d.ts
-declare type PropertyKey = string | number | symbol;
-
-// #############################################################################################
-// ECMAScript 6: Object & Function
-// Modules: es6.object.assign, es6.object.is, es6.object.set-prototype-of,
-//          es6.object.to-string, es6.function.name and es6.function.has-instance.
-// #############################################################################################
-
-interface ObjectConstructor {
-    /**
-      * Copy the values of all of the enumerable own properties from one or more source objects to a
-      * target object. Returns the target object.
-      * @param target The target object to copy to.
-      * @param sources One or more source objects to copy properties from.
-      */
-    assign(target: any, ...sources: any[]): any;
-
-    /**
-      * Returns true if the values are the same value, false otherwise.
-      * @param value1 The first value.
-      * @param value2 The second value.
-      */
-    is(value1: any, value2: any): boolean;
-
-    /**
-      * Sets the prototype of a specified object o to  object proto or null. Returns the object o.
-      * @param o The object to change its prototype.
-      * @param proto The value of the new prototype or null.
-      * @remarks Requires `__proto__` support.
-      */
-    setPrototypeOf(o: any, proto: any): any;
-}
-
-interface Function {
-    /**
-      * Returns the name of the function. Function names are read-only and can not be changed.
-      */
-    name: string;
-
-    /**
-      * Determines if a constructor object recognizes an object as one of the
-      * constructor’s instances.
-      * @param value The object to test.
-      */
-    [Symbol.hasInstance](value: any): boolean;
-}
-
-// #############################################################################################
-// ECMAScript 6: Array
-// Modules: es6.array.from, es6.array.of, es6.array.copy-within, es6.array.fill, es6.array.find,
-//          and es6.array.find-index
-// #############################################################################################
-
-interface Array<T> {
-    /**
-      * Returns the value of the first element in the array where predicate is true, and undefined
-      * otherwise.
-      * @param predicate find calls predicate once for each element of the array, in ascending
-      * order, until it finds one where predicate returns true. If such an element is found, find
-      * immediately returns that element value. Otherwise, find returns undefined.
-      * @param thisArg If provided, it will be used as the this value for each invocation of
-      * predicate. If it is not provided, undefined is used instead.
-      */
-    find(predicate: (value: T, index: number, obj: Array<T>) => boolean, thisArg?: any): T;
-
-    /**
-      * Returns the index of the first element in the array where predicate is true, and undefined
-      * otherwise.
-      * @param predicate find calls predicate once for each element of the array, in ascending
-      * order, until it finds one where predicate returns true. If such an element is found, find
-      * immediately returns that element value. Otherwise, find returns undefined.
-      * @param thisArg If provided, it will be used as the this value for each invocation of
-      * predicate. If it is not provided, undefined is used instead.
-      */
-    findIndex(predicate: (value: T) => boolean, thisArg?: any): number;
-
-    /**
-      * Returns the this object after filling the section identified by start and end with value
-      * @param value value to fill array section with
-      * @param start index to start filling the array at. If start is negative, it is treated as
-      * length+start where length is the length of the array.
-      * @param end index to stop filling the array at. If end is negative, it is treated as
-      * length+end.
-      */
-    fill(value: T, start?: number, end?: number): T[];
-
-    /**
-      * Returns the this object after copying a section of the array identified by start and end
-      * to the same array starting at position target
-      * @param target If target is negative, it is treated as length+target where length is the
-      * length of the array.
-      * @param start If start is negative, it is treated as length+start. If end is negative, it
-      * is treated as length+end.
-      * @param end If not specified, length of the this object is used as its default value.
-      */
-    copyWithin(target: number, start: number, end?: number): T[];
-
-    [Symbol.unscopables]: any;
-}
-
-interface ArrayConstructor {
-    /**
-      * Creates an array from an array-like object.
-      * @param arrayLike An array-like object to convert to an array.
-      * @param mapfn A mapping function to call on every element of the array.
-      * @param thisArg Value of 'this' used to invoke the mapfn.
-      */
-    from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): Array<U>;
-
-    /**
-      * Creates an array from an iterable object.
-      * @param iterable An iterable object to convert to an array.
-      * @param mapfn A mapping function to call on every element of the array.
-      * @param thisArg Value of 'this' used to invoke the mapfn.
-      */
-    from<T, U>(iterable: Iterable<T>, mapfn: (v: T, k: number) => U, thisArg?: any): Array<U>;
-
-    /**
-      * Creates an array from an array-like object.
-      * @param arrayLike An array-like object to convert to an array.
-      */
-    from<T>(arrayLike: ArrayLike<T>): Array<T>;
-
-    /**
-      * Creates an array from an iterable object.
-      * @param iterable An iterable object to convert to an array.
-      */
-    from<T>(iterable: Iterable<T>): Array<T>;
-
-    /**
-      * Returns a new array from a set of elements.
-      * @param items A set of elements to include in the new array object.
-      */
-    of<T>(...items: T[]): Array<T>;
-}
-
-// #############################################################################################
-// ECMAScript 6: String & RegExp
-// Modules: es6.string.from-code-point, es6.string.raw, es6.string.code-point-at,
-//          es6.string.ends-with, es6.string.includes, es6.string.repeat,
-//          es6.string.starts-with, and es6.regexp
-// #############################################################################################
-
-interface String {
-    /**
-      * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point
-      * value of the UTF-16 encoded code point starting at the string element at position pos in
-      * the String resulting from converting this object to a String.
-      * If there is no element at that position, the result is undefined.
-      * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.
-      */
-    codePointAt(pos: number): number;
-
-    /**
-      * Returns true if searchString appears as a substring of the result of converting this
-      * object to a String, at one or more positions that are
-      * greater than or equal to position; otherwise, returns false.
-      * @param searchString search string
-      * @param position If position is undefined, 0 is assumed, so as to search all of the String.
-      */
-    includes(searchString: string, position?: number): boolean;
-
-    /**
-      * Returns true if the sequence of elements of searchString converted to a String is the
-      * same as the corresponding elements of this object (converted to a String) starting at
-      * endPosition – length(this). Otherwise returns false.
-      */
-    endsWith(searchString: string, endPosition?: number): boolean;
-
-    /**
-      * Returns a String value that is made from count copies appended together. If count is 0,
-      * T is the empty String is returned.
-      * @param count number of copies to append
-      */
-    repeat(count: number): string;
-
-    /**
-      * Returns true if the sequence of elements of searchString converted to a String is the
-      * same as the corresponding elements of this object (converted to a String) starting at
-      * position. Otherwise returns false.
-      */
-    startsWith(searchString: string, position?: number): boolean;
-}
-
-interface StringConstructor {
-    /**
-      * Return the String value whose elements are, in order, the elements in the List elements.
-      * If length is 0, the empty string is returned.
-      */
-    fromCodePoint(...codePoints: number[]): string;
-
-    /**
-      * String.raw is intended for use as a tag function of a Tagged Template String. When called
-      * as such the first argument will be a well formed template call site object and the rest
-      * parameter will contain the substitution values.
-      * @param template A well-formed template string call site representation.
-      * @param substitutions A set of substitution values.
-      */
-    raw(template: TemplateStringsArray, ...substitutions: any[]): string;
-}
-
-interface RegExp {
-    /**
-      * Returns a string indicating the flags of the regular expression in question. This field is read-only.
-      * The characters in this string are sequenced and concatenated in the following order:
-      *
-      *    - "g" for global
-      *    - "i" for ignoreCase
-      *    - "m" for multiline
-      *    - "u" for unicode
-      *    - "y" for sticky
-      *
-      * If no flags are set, the value is the empty string.
-      */
-    flags: string;
-}
-
-// #############################################################################################
-// ECMAScript 6: Number & Math
-// Modules: es6.number.constructor, es6.number.statics, and es6.math
-// #############################################################################################
-
-interface NumberConstructor {
-    /**
-      * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1
-      * that is representable as a Number value, which is approximately:
-      * 2.2204460492503130808472633361816 x 10‍−‍16.
-      */
-    EPSILON: number;
-
-    /**
-      * Returns true if passed value is finite.
-      * Unlike the global isFininte, Number.isFinite doesn't forcibly convert the parameter to a
-      * number. Only finite values of the type number, result in true.
-      * @param number A numeric value.
-      */
-    isFinite(number: number): boolean;
-
-    /**
-      * Returns true if the value passed is an integer, false otherwise.
-      * @param number A numeric value.
-      */
-    isInteger(number: number): boolean;
-
-    /**
-      * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a
-      * number). Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter
-      * to a number. Only values of the type number, that are also NaN, result in true.
-      * @param number A numeric value.
-      */
-    isNaN(number: number): boolean;
-
-    /**
-      * Returns true if the value passed is a safe integer.
-      * @param number A numeric value.
-      */
-    isSafeInteger(number: number): boolean;
-
-    /**
-      * The value of the largest integer n such that n and n + 1 are both exactly representable as
-      * a Number value.
-      * The value of Number.MIN_SAFE_INTEGER is 9007199254740991 2^53 − 1.
-      */
-    MAX_SAFE_INTEGER: number;
-
-    /**
-      * The value of the smallest integer n such that n and n − 1 are both exactly representable as
-      * a Number value.
-      * The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)).
-      */
-    MIN_SAFE_INTEGER: number;
-
-    /**
-      * Converts a string to a floating-point number.
-      * @param string A string that contains a floating-point number.
-      */
-    parseFloat(string: string): number;
-
-    /**
-      * Converts A string to an integer.
-      * @param s A string to convert into a number.
-      * @param radix A value between 2 and 36 that specifies the base of the number in numString.
-      * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.
-      * All other strings are considered decimal.
-      */
-    parseInt(string: string, radix?: number): number;
-}
-
-interface Math {
-    /**
-      * Returns the number of leading zero bits in the 32-bit binary representation of a number.
-      * @param x A numeric expression.
-      */
-    clz32(x: number): number;
-
-    /**
-      * Returns the result of 32-bit multiplication of two numbers.
-      * @param x First number
-      * @param y Second number
-      */
-    imul(x: number, y: number): number;
-
-    /**
-      * Returns the sign of the x, indicating whether x is positive, negative or zero.
-      * @param x The numeric expression to test
-      */
-    sign(x: number): number;
-
-    /**
-      * Returns the base 10 logarithm of a number.
-      * @param x A numeric expression.
-      */
-    log10(x: number): number;
-
-    /**
-      * Returns the base 2 logarithm of a number.
-      * @param x A numeric expression.
-      */
-    log2(x: number): number;
-
-    /**
-      * Returns the natural logarithm of 1 + x.
-      * @param x A numeric expression.
-      */
-    log1p(x: number): number;
-
-    /**
-      * Returns the result of (e^x - 1) of x (e raised to the power of x, where e is the base of
-      * the natural logarithms).
-      * @param x A numeric expression.
-      */
-    expm1(x: number): number;
-
-    /**
-      * Returns the hyperbolic cosine of a number.
-      * @param x A numeric expression that contains an angle measured in radians.
-      */
-    cosh(x: number): number;
-
-    /**
-      * Returns the hyperbolic sine of a number.
-      * @param x A numeric expression that contains an angle measured in radians.
-      */
-    sinh(x: number): number;
-
-    /**
-      * Returns the hyperbolic tangent of a number.
-      * @param x A numeric expression that contains an angle measured in radians.
-      */
-    tanh(x: number): number;
-
-    /**
-      * Returns the inverse hyperbolic cosine of a number.
-      * @param x A numeric expression that contains an angle measured in radians.
-      */
-    acosh(x: number): number;
-
-    /**
-      * Returns the inverse hyperbolic sine of a number.
-      * @param x A numeric expression that contains an angle measured in radians.
-      */
-    asinh(x: number): number;
-
-    /**
-      * Returns the inverse hyperbolic tangent of a number.
-      * @param x A numeric expression that contains an angle measured in radians.
-      */
-    atanh(x: number): number;
-
-    /**
-      * Returns the square root of the sum of squares of its arguments.
-      * @param values Values to compute the square root for.
-      *     If no arguments are passed, the result is +0.
-      *     If there is only one argument, the result is the absolute value.
-      *     If any argument is +Infinity or -Infinity, the result is +Infinity.
-      *     If any argument is NaN, the result is NaN.
-      *     If all arguments are either +0 or −0, the result is +0.
-      */
-    hypot(...values: number[]): number;
-
-    /**
-      * Returns the integral part of the a numeric expression, x, removing any fractional digits.
-      * If x is already an integer, the result is x.
-      * @param x A numeric expression.
-      */
-    trunc(x: number): number;
-
-    /**
-      * Returns the nearest single precision float representation of a number.
-      * @param x A numeric expression.
-      */
-    fround(x: number): number;
-
-    /**
-      * Returns an implementation-dependent approximation to the cube root of number.
-      * @param x A numeric expression.
-      */
-    cbrt(x: number): number;
-}
-
-// #############################################################################################
-// ECMAScript 6: Symbols
-// Modules: es6.symbol
-// #############################################################################################
-
-interface Symbol {
-    /** Returns a string representation of an object. */
-    toString(): string;
-
-    [Symbol.toStringTag]: string;
-}
-
-interface SymbolConstructor {
-    /**
-      * A reference to the prototype.
-      */
-    prototype: Symbol;
-
-    /**
-      * Returns a new unique Symbol value.
-      * @param  description Description of the new Symbol object.
-      */
-    (description?: string|number): symbol;
-
-    /**
-      * Returns a Symbol object from the global symbol registry matching the given key if found.
-      * Otherwise, returns a new symbol with this key.
-      * @param key key to search for.
-      */
-    for(key: string): symbol;
-
-    /**
-      * Returns a key from the global symbol registry matching the given Symbol if found.
-      * Otherwise, returns a undefined.
-      * @param sym Symbol to find the key for.
-      */
-    keyFor(sym: symbol): string;
-
-    // Well-known Symbols
-
-    /**
-      * A method that determines if a constructor object recognizes an object as one of the
-      * constructor’s instances. Called by the semantics of the instanceof operator.
-      */
-    hasInstance: symbol;
-
-    /**
-      * A Boolean value that if true indicates that an object should flatten to its array elements
-      * by Array.prototype.concat.
-      */
-    isConcatSpreadable: symbol;
-
-    /**
-      * A method that returns the default iterator for an object. Called by the semantics of the
-      * for-of statement.
-      */
-    iterator: symbol;
-
-    /**
-      * A regular expression method that matches the regular expression against a string. Called
-      * by the String.prototype.match method.
-      */
-    match: symbol;
-
-    /**
-      * A regular expression method that replaces matched substrings of a string. Called by the
-      * String.prototype.replace method.
-      */
-    replace: symbol;
-
-    /**
-      * A regular expression method that returns the index within a string that matches the
-      * regular expression. Called by the String.prototype.search method.
-      */
-    search: symbol;
-
-    /**
-      * A function valued property that is the constructor function that is used to create
-      * derived objects.
-      */
-    species: symbol;
-
-    /**
-      * A regular expression method that splits a string at the indices that match the regular
-      * expression. Called by the String.prototype.split method.
-      */
-    split: symbol;
-
-    /**
-      * A method that converts an object to a corresponding primitive value.Called by the ToPrimitive
-      * abstract operation.
-      */
-    toPrimitive: symbol;
-
-    /**
-      * A String value that is used in the creation of the default string description of an object.
-      * Called by the built-in method Object.prototype.toString.
-      */
-    toStringTag: symbol;
-
-    /**
-      * An Object whose own property names are property names that are excluded from the with
-      * environment bindings of the associated objects.
-      */
-    unscopables: symbol;
-
-    /**
-      * Non-standard. Use simple mode for core-js symbols. See https://github.com/zloirock/core-js/#caveats-when-using-symbol-polyfill
-      */
-    useSimple(): void;
-
-    /**
-      * Non-standard. Use setter mode for core-js symbols. See https://github.com/zloirock/core-js/#caveats-when-using-symbol-polyfill
-      */
-    userSetter(): void;
-}
-
-declare var Symbol: SymbolConstructor;
-
-interface Object {
-    /**
-      * Determines whether an object has a property with the specified name.
-      * @param v A property name.
-      */
-    hasOwnProperty(v: PropertyKey): boolean;
-
-    /**
-      * Determines whether a specified property is enumerable.
-      * @param v A property name.
-      */
-    propertyIsEnumerable(v: PropertyKey): boolean;
-}
-
-interface ObjectConstructor {
-    /**
-      * Returns an array of all symbol properties found directly on object o.
-      * @param o Object to retrieve the symbols from.
-      */
-    getOwnPropertySymbols(o: any): symbol[];
-
-    /**
-      * Gets the own property descriptor of the specified object.
-      * An own property descriptor is one that is defined directly on the object and is not
-      * inherited from the object's prototype.
-      * @param o Object that contains the property.
-      * @param p Name of the property.
-    */
-    getOwnPropertyDescriptor(o: any, propertyKey: PropertyKey): PropertyDescriptor;
-
-    /**
-      * Adds a property to an object, or modifies attributes of an existing property.
-      * @param o Object on which to add or modify the property. This can be a native JavaScript
-      * object (that is, a user-defined object or a built in object) or a DOM object.
-      * @param p The property name.
-      * @param attributes Descriptor for the property. It can be for a data property or an accessor
-      *  property.
-      */
-    defineProperty(o: any, propertyKey: PropertyKey, attributes: PropertyDescriptor): any;
-}
-
-interface Math {
-    [Symbol.toStringTag]: string;
-}
-
-interface JSON {
-    [Symbol.toStringTag]: string;
-}
-
-// #############################################################################################
-// ECMAScript 6: Collections
-// Modules: es6.map, es6.set, es6.weak-map, and es6.weak-set
-// #############################################################################################
-
-interface Map<K, V> {
-    clear(): void;
-    delete(key: K): boolean;
-    forEach(callbackfn: (value: V, index: K, map: Map<K, V>) => void, thisArg?: any): void;
-    get(key: K): V;
-    has(key: K): boolean;
-    set(key: K, value?: V): Map<K, V>;
-    size: number;
-}
-
-interface MapConstructor {
-    new <K, V>(): Map<K, V>;
-    new <K, V>(iterable: Iterable<[K, V]>): Map<K, V>;
-    prototype: Map<any, any>;
-}
-
-declare var Map: MapConstructor;
-
-interface Set<T> {
-    add(value: T): Set<T>;
-    clear(): void;
-    delete(value: T): boolean;
-    forEach(callbackfn: (value: T, index: T, set: Set<T>) => void, thisArg?: any): void;
-    has(value: T): boolean;
-    size: number;
-}
-
-interface SetConstructor {
-    new <T>(): Set<T>;
-    new <T>(iterable: Iterable<T>): Set<T>;
-    prototype: Set<any>;
-}
-
-declare var Set: SetConstructor;
-
-interface WeakMap<K, V> {
-    delete(key: K): boolean;
-    get(key: K): V;
-    has(key: K): boolean;
-    set(key: K, value?: V): WeakMap<K, V>;
-}
-
-interface WeakMapConstructor {
-    new <K, V>(): WeakMap<K, V>;
-    new <K, V>(iterable: Iterable<[K, V]>): WeakMap<K, V>;
-    prototype: WeakMap<any, any>;
-}
-
-declare var WeakMap: WeakMapConstructor;
-
-interface WeakSet<T> {
-    add(value: T): WeakSet<T>;
-    delete(value: T): boolean;
-    has(value: T): boolean;
-}
-
-interface WeakSetConstructor {
-    new <T>(): WeakSet<T>;
-    new <T>(iterable: Iterable<T>): WeakSet<T>;
-    prototype: WeakSet<any>;
-}
-
-declare var WeakSet: WeakSetConstructor;
-
-// #############################################################################################
-// ECMAScript 6: Iterators
-// Modules: es6.string.iterator, es6.array.iterator, es6.map, es6.set, web.dom.iterable
-// #############################################################################################
-
-interface IteratorResult<T> {
-    done: boolean;
-    value?: T;
-}
-
-interface Iterator<T> {
-    next(value?: any): IteratorResult<T>;
-    return?(value?: any): IteratorResult<T>;
-    throw?(e?: any): IteratorResult<T>;
-}
-
-interface Iterable<T> {
-    [Symbol.iterator](): Iterator<T>;
-}
-
-interface IterableIterator<T> extends Iterator<T> {
-    [Symbol.iterator](): IterableIterator<T>;
-}
-
-interface String {
-    /** Iterator */
-    [Symbol.iterator](): IterableIterator<string>;
-}
-
-interface Array<T> {
-    /** Iterator */
-    [Symbol.iterator](): IterableIterator<T>;
-
-    /**
-      * Returns an array of key, value pairs for every entry in the array
-      */
-    entries(): IterableIterator<[number, T]>;
-
-    /**
-      * Returns an list of keys in the array
-      */
-    keys(): IterableIterator<number>;
-
-    /**
-      * Returns an list of values in the array
-      */
-    values(): IterableIterator<T>;
-}
-
-interface Map<K, V> {
-    entries(): IterableIterator<[K, V]>;
-    keys(): IterableIterator<K>;
-    values(): IterableIterator<V>;
-    [Symbol.iterator](): IterableIterator<[K, V]>;
-}
-
-interface Set<T> {
-    entries(): IterableIterator<[T, T]>;
-    keys(): IterableIterator<T>;
-    values(): IterableIterator<T>;
-    [Symbol.iterator](): IterableIterator<T>;
-}
-
-interface NodeList {
-    [Symbol.iterator](): IterableIterator<Node>;
-}
-
-interface $for<T> extends IterableIterator<T> {
-    of(callbackfn: (value: T, key: any) => void, thisArg?: any): void;
-    array(): T[];
-    array<U>(callbackfn: (value: T, key: any) => U, thisArg?: any): U[];
-    filter(callbackfn: (value: T, key: any) => boolean, thisArg?: any): $for<T>;
-    map<U>(callbackfn: (value: T, key: any) => U, thisArg?: any): $for<U>;
-}
-
-declare function $for<T>(iterable: Iterable<T>): $for<T>;
-
-// #############################################################################################
-// ECMAScript 6: Promises
-// Modules: es6.promise
-// #############################################################################################
-
-interface PromiseLike<T> {
-    /**
-    * Attaches callbacks for the resolution and/or rejection of the Promise.
-    * @param onfulfilled The callback to execute when the Promise is resolved.
-    * @param onrejected The callback to execute when the Promise is rejected.
-    * @returns A Promise for the completion of which ever callback is executed.
-    */
-    then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<TResult>;
-    then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): PromiseLike<TResult>;
-}
-
-/**
- * Represents the completion of an asynchronous operation
- */
-interface Promise<T> {
-    /**
-    * Attaches callbacks for the resolution and/or rejection of the Promise.
-    * @param onfulfilled The callback to execute when the Promise is resolved.
-    * @param onrejected The callback to execute when the Promise is rejected.
-    * @returns A Promise for the completion of which ever callback is executed.
-    */
-    then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>;
-    then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): Promise<TResult>;
-
-    /**
-     * Attaches a callback for only the rejection of the Promise.
-     * @param onrejected The callback to execute when the Promise is rejected.
-     * @returns A Promise for the completion of the callback.
-     */
-    catch(onrejected?: (reason: any) => T | PromiseLike<T>): Promise<T>;
-    catch(onrejected?: (reason: any) => void): Promise<T>;
-}
-
-interface PromiseConstructor {
-    /**
-      * A reference to the prototype.
-      */
-    prototype: Promise<any>;
-
-    /**
-     * Creates a new Promise.
-     * @param executor A callback used to initialize the promise. This callback is passed two arguments:
-     * a resolve callback used resolve the promise with a value or the result of another promise,
-     * and a reject callback used to reject the promise with a provided reason or error.
-     */
-    new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
-
-    /**
-     * Creates a Promise that is resolved with an array of results when all of the provided Promises
-     * resolve, or rejected when any Promise is rejected.
-     * @param values An array of Promises.
-     * @returns A new Promise.
-     */
-    all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
-    all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
-    all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
-    all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
-    all<T1, T2, T3, T4, T5, T6>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
-    all<T1, T2, T3, T4, T5>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>;
-    all<T1, T2, T3, T4>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>]): Promise<[T1, T2, T3, T4]>;
-    all<T1, T2, T3>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>;
-    all<T1, T2>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>;
-    all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>;
-    
-    /**
-     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
-     * or rejected.
-     * @param values An array of Promises.
-     * @returns A new Promise.
-     */
-    race<T>(values: Iterable<T | PromiseLike<T>>): Promise<T>;
-
-    /**
-     * Creates a new rejected promise for the provided reason.
-     * @param reason The reason the promise was rejected.
-     * @returns A new rejected Promise.
-     */
-    reject(reason: any): Promise<void>;
-
-    /**
-     * Creates a new rejected promise for the provided reason.
-     * @param reason The reason the promise was rejected.
-     * @returns A new rejected Promise.
-     */
-    reject<T>(reason: any): Promise<T>;
-
-    /**
-      * Creates a new resolved promise for the provided value.
-      * @param value A promise.
-      * @returns A promise whose internal state matches the provided promise.
-      */
-    resolve<T>(value: T | PromiseLike<T>): Promise<T>;
-
-    /**
-     * Creates a new resolved promise .
-     * @returns A resolved promise.
-     */
-    resolve(): Promise<void>;
-}
-
-declare var Promise: PromiseConstructor;
-
-// #############################################################################################
-// ECMAScript 6: Reflect
-// Modules: es6.reflect
-// #############################################################################################
-
-declare namespace Reflect {
-    function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;
-    function construct(target: Function, argumentsList: ArrayLike<any>, newTarget?: any): any;
-    function defineProperty(target: any, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;
-    function deleteProperty(target: any, propertyKey: PropertyKey): boolean;
-    function enumerate(target: any): IterableIterator<any>;
-    function get(target: any, propertyKey: PropertyKey, receiver?: any): any;
-    function getOwnPropertyDescriptor(target: any, propertyKey: PropertyKey): PropertyDescriptor;
-    function getPrototypeOf(target: any): any;
-    function has(target: any, propertyKey: PropertyKey): boolean;
-    function isExtensible(target: any): boolean;
-    function ownKeys(target: any): Array<PropertyKey>;
-    function preventExtensions(target: any): boolean;
-    function set(target: any, propertyKey: PropertyKey, value: any, receiver?: any): boolean;
-    function setPrototypeOf(target: any, proto: any): boolean;
-}
-
-// #############################################################################################
-// ECMAScript 7
-// Modules: es7.array.includes, es7.string.at, es7.string.lpad, es7.string.rpad,
-//          es7.object.to-array, es7.object.get-own-property-descriptors, es7.regexp.escape,
-//          es7.map.to-json, and es7.set.to-json
-// #############################################################################################
-
-interface Array<T> {
-    includes(value: T, fromIndex?: number): boolean;
-}
-
-interface String {
-    at(index: number): string;
-    lpad(length: number, fillStr?: string): string;
-    rpad(length: number, fillStr?: string): string;
-}
-
-interface ObjectConstructor {
-    values(object: any): any[];
-    entries(object: any): [string, any][];
-    getOwnPropertyDescriptors(object: any): PropertyDescriptorMap;
-}
-
-interface RegExpConstructor {
-    escape(str: string): string;
-}
-
-interface Map<K, V> {
-    toJSON(): any;
-}
-
-interface Set<T> {
-    toJSON(): any;
-}
-
-// #############################################################################################
-// Mozilla JavaScript: Array generics
-// Modules: js.array.statics
-// #############################################################################################
-
-interface ArrayConstructor {
-    /**
-      * Appends new elements to an array, and returns the new length of the array.
-      * @param items New elements of the Array.
-      */
-    push<T>(array: ArrayLike<T>, ...items: T[]): number;
-    /**
-      * Removes the last element from an array and returns it.
-      */
-    pop<T>(array: ArrayLike<T>): T;
-    /**
-      * Combines two or more arrays.
-      * @param items Additional items to add to the end of array1.
-      */
-    concat<T>(array: ArrayLike<T>, ...items: (T[]| T)[]): T[];
-    /**
-      * Adds all the elements of an array separated by the specified separator string.
-      * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.
-      */
-    join<T>(array: ArrayLike<T>, separator?: string): string;
-    /**
-      * Reverses the elements in an Array.
-      */
-    reverse<T>(array: ArrayLike<T>): T[];
-    /**
-      * Removes the first element from an array and returns it.
-      */
-    shift<T>(array: ArrayLike<T>): T;
-    /**
-      * Returns a section of an array.
-      * @param start The beginning of the specified portion of the array.
-      * @param end The end of the specified portion of the array.
-      */
-    slice<T>(array: ArrayLike<T>, start?: number, end?: number): T[];
-
-    /**
-      * Sorts an array.
-      * @param compareFn The name of the function used to determine the order of the elements. If omitted, the elements are sorted in ascending, ASCII character order.
-      */
-    sort<T>(array: ArrayLike<T>, compareFn?: (a: T, b: T) => number): T[];
-
-    /**
-      * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
-      * @param start The zero-based location in the array from which to start removing elements.
-      */
-    splice<T>(array: ArrayLike<T>, start: number): T[];
-
-    /**
-      * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
-      * @param start The zero-based location in the array from which to start removing elements.
-      * @param deleteCount The number of elements to remove.
-      * @param items Elements to insert into the array in place of the deleted elements.
-      */
-    splice<T>(array: ArrayLike<T>, start: number, deleteCount: number, ...items: T[]): T[];
-
-    /**
-      * Inserts new elements at the start of an array.
-      * @param items  Elements to insert at the start of the Array.
-      */
-    unshift<T>(array: ArrayLike<T>, ...items: T[]): number;
-
-    /**
-      * Returns the index of the first occurrence of a value in an array.
-      * @param searchElement The value to locate in the array.
-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.
-      */
-    indexOf<T>(array: ArrayLike<T>, searchElement: T, fromIndex?: number): number;
-
-    /**
-      * Returns the index of the last occurrence of a specified value in an array.
-      * @param searchElement The value to locate in the array.
-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.
-      */
-    lastIndexOf<T>(array: ArrayLike<T>, earchElement: T, fromIndex?: number): number;
-
-    /**
-      * Determines whether all the members of an array satisfy the specified test.
-      * @param callbackfn A function that accepts up to three arguments. The every method calls the callbackfn function for each element in array1 until the callbackfn returns false, or until the end of the array.
-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
-      */
-    every<T>(array: ArrayLike<T>, callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean;
-
-    /**
-      * Determines whether the specified callback function returns true for any element of an array.
-      * @param callbackfn A function that accepts up to three arguments. The some method calls the callbackfn function for each element in array1 until the callbackfn returns true, or until the end of the array.
-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
-      */
-    some<T>(array: ArrayLike<T>, callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean;
-
-    /**
-      * Performs the specified action for each element in an array.
-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.
-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
-      */
-    forEach<T>(array: ArrayLike<T>, callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
-
-    /**
-      * Calls a defined callback function on each element of an array, and returns an array that contains the results.
-      * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.
-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
-      */
-    map<T, U>(array: ArrayLike<T>, callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];
-
-    /**
-      * Returns the elements of an array that meet the condition specified in a callback function.
-      * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.
-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
-      */
-    filter<T>(array: ArrayLike<T>, callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): T[];
-
-    /**
-      * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
-      */
-    reduce<T, U>(array: ArrayLike<T>, callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
-
-    /**
-      * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
-      */
-    reduce<T>(array: ArrayLike<T>, callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T;
-
-    /**
-      * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
-      */
-    reduceRight<T, U>(array: ArrayLike<T>, callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
-
-    /**
-      * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
-      */
-    reduceRight<T>(array: ArrayLike<T>, callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T;
-
-    /**
-      * Returns an array of key, value pairs for every entry in the array
-      */
-    entries<T>(array: ArrayLike<T>): IterableIterator<[number, T]>;
-
-    /**
-      * Returns an list of keys in the array
-      */
-    keys<T>(array: ArrayLike<T>): IterableIterator<number>;
-
-    /**
-      * Returns an list of values in the array
-      */
-    values<T>(array: ArrayLike<T>): IterableIterator<T>;
-
-    /**
-      * Returns the value of the first element in the array where predicate is true, and undefined
-      * otherwise.
-      * @param predicate find calls predicate once for each element of the array, in ascending
-      * order, until it finds one where predicate returns true. If such an element is found, find
-      * immediately returns that element value. Otherwise, find returns undefined.
-      * @param thisArg If provided, it will be used as the this value for each invocation of
-      * predicate. If it is not provided, undefined is used instead.
-      */
-    find<T>(array: ArrayLike<T>, predicate: (value: T, index: number, obj: Array<T>) => boolean, thisArg?: any): T;
-
-    /**
-      * Returns the index of the first element in the array where predicate is true, and undefined
-      * otherwise.
-      * @param predicate find calls predicate once for each element of the array, in ascending
-      * order, until it finds one where predicate returns true. If such an element is found, find
-      * immediately returns that element value. Otherwise, find returns undefined.
-      * @param thisArg If provided, it will be used as the this value for each invocation of
-      * predicate. If it is not provided, undefined is used instead.
-      */
-    findIndex<T>(array: ArrayLike<T>, predicate: (value: T) => boolean, thisArg?: any): number;
-
-    /**
-      * Returns the this object after filling the section identified by start and end with value
-      * @param value value to fill array section with
-      * @param start index to start filling the array at. If start is negative, it is treated as
-      * length+start where length is the length of the array.
-      * @param end index to stop filling the array at. If end is negative, it is treated as
-      * length+end.
-      */
-    fill<T>(array: ArrayLike<T>, value: T, start?: number, end?: number): T[];
-
-    /**
-      * Returns the this object after copying a section of the array identified by start and end
-      * to the same array starting at position target
-      * @param target If target is negative, it is treated as length+target where length is the
-      * length of the array.
-      * @param start If start is negative, it is treated as length+start. If end is negative, it
-      * is treated as length+end.
-      * @param end If not specified, length of the this object is used as its default value.
-      */
-    copyWithin<T>(array: ArrayLike<T>, target: number, start: number, end?: number): T[];
-
-    includes<T>(array: ArrayLike<T>, value: T, fromIndex?: number): boolean;
-    turn<T, U>(array: ArrayLike<T>, callbackfn: (memo: U, value: T, index: number, array: Array<T>) => void, memo?: U): U;
-    turn<T>(array: ArrayLike<T>, callbackfn: (memo: Array<T>, value: T, index: number, array: Array<T>) => void, memo?: Array<T>): Array<T>;
-}
-
-// #############################################################################################
-// Object - https://github.com/zloirock/core-js/#object
-// Modules: core.object
-// #############################################################################################
-
-interface ObjectConstructor {
-    /**
-      * Non-standard.
-      */
-    isObject(value: any): boolean;
-
-    /**
-      * Non-standard.
-      */
-    classof(value: any): string;
-
-    /**
-      * Non-standard.
-      */
-    define<T>(target: T, mixin: any): T;
-
-    /**
-      * Non-standard.
-      */
-    make<T>(proto: T, mixin?: any): T;
-}
-
-// #############################################################################################
-// Console - https://github.com/zloirock/core-js/#console
-// Modules: core.log
-// #############################################################################################
-
-interface Log extends Console {
-    (message?: any, ...optionalParams: any[]): void;
-    enable(): void;
-    disable(): void;
-}
-
-/**
-  * Non-standard.
-  */
-declare var log: Log;
-
-// #############################################################################################
-// Dict - https://github.com/zloirock/core-js/#dict
-// Modules: core.dict
-// #############################################################################################
-
-interface Dict<T> {
-    [key: string]: T;
-    [key: number]: T;
-    //[key: symbol]: T;
-}
-
-interface DictConstructor {
-    prototype: Dict<any>;
-
-    new <T>(value?: Dict<T>): Dict<T>;
-    new (value?: any): Dict<any>;
-    <T>(value?: Dict<T>): Dict<T>;
-    (value?: any): Dict<any>;
-
-    isDict(value: any): boolean;
-    values<T>(object: Dict<T>): IterableIterator<T>;
-    keys<T>(object: Dict<T>): IterableIterator<PropertyKey>;
-    entries<T>(object: Dict<T>): IterableIterator<[PropertyKey, T]>;
-    has<T>(object: Dict<T>, key: PropertyKey): boolean;
-    get<T>(object: Dict<T>, key: PropertyKey): T;
-    set<T>(object: Dict<T>, key: PropertyKey, value: T): Dict<T>;
-    forEach<T>(object: Dict<T>, callbackfn: (value: T, key: PropertyKey, dict: Dict<T>) => void, thisArg?: any): void;
-    map<T, U>(object: Dict<T>, callbackfn: (value: T, key: PropertyKey, dict: Dict<T>) => U, thisArg?: any): Dict<U>;
-    mapPairs<T, U>(object: Dict<T>, callbackfn: (value: T, key: PropertyKey, dict: Dict<T>) => [PropertyKey, U], thisArg?: any): Dict<U>;
-    filter<T>(object: Dict<T>, callbackfn: (value: T, key: PropertyKey, dict: Dict<T>) => boolean, thisArg?: any): Dict<T>;
-    some<T>(object: Dict<T>, callbackfn: (value: T, key: PropertyKey, dict: Dict<T>) => boolean, thisArg?: any): boolean;
-    every<T>(object: Dict<T>, callbackfn: (value: T, key: PropertyKey, dict: Dict<T>) => boolean, thisArg?: any): boolean;
-    find<T>(object: Dict<T>, callbackfn: (value: T, key: PropertyKey, dict: Dict<T>) => boolean, thisArg?: any): T;
-    findKey<T>(object: Dict<T>, callbackfn: (value: T, key: PropertyKey, dict: Dict<T>) => boolean, thisArg?: any): PropertyKey;
-    keyOf<T>(object: Dict<T>, value: T): PropertyKey;
-    includes<T>(object: Dict<T>, value: T): boolean;
-    reduce<T, U>(object: Dict<T>, callbackfn: (previousValue: U, value: T, key: PropertyKey, dict: Dict<T>) => U, initialValue: U): U;
-    reduce<T>(object: Dict<T>, callbackfn: (previousValue: T, value: T, key: PropertyKey, dict: Dict<T>) => T, initialValue?: T): T;
-    turn<T, U>(object: Dict<T>, callbackfn: (memo: Dict<U>, value: T, key: PropertyKey, dict: Dict<T>) => void, memo: Dict<U>): Dict<U>;
-    turn<T>(object: Dict<T>, callbackfn: (memo: Dict<T>, value: T, key: PropertyKey, dict: Dict<T>) => void, memo?: Dict<T>): Dict<T>;
-}
-
-/**
-  * Non-standard.
-  */
-declare var Dict: DictConstructor;
-
-// #############################################################################################
-// Partial application - https://github.com/zloirock/core-js/#partial-application
-// Modules: core.function.part
-// #############################################################################################
-
-interface Function {
-    /**
-      * Non-standard.
-      */
-    part(...args: any[]): any;
-}
-
-// #############################################################################################
-// Date formatting - https://github.com/zloirock/core-js/#date-formatting
-// Modules: core.date
-// #############################################################################################
-
-interface Date {
-    /**
-      * Non-standard.
-      */
-    format(template: string, locale?: string): string;
-
-    /**
-      * Non-standard.
-      */
-    formatUTC(template: string, locale?: string): string;
-}
-
-// #############################################################################################
-// Array - https://github.com/zloirock/core-js/#array
-// Modules: core.array.turn
-// #############################################################################################
-
-interface Array<T> {
-    /**
-      * Non-standard.
-      */
-    turn<U>(callbackfn: (memo: U, value: T, index: number, array: Array<T>) => void, memo?: U): U;
-
-    /**
-      * Non-standard.
-      */
-    turn(callbackfn: (memo: Array<T>, value: T, index: number, array: Array<T>) => void, memo?: Array<T>): Array<T>;
-}
-
-// #############################################################################################
-// Number - https://github.com/zloirock/core-js/#number
-// Modules: core.number.iterator
-// #############################################################################################
-
-interface Number {
-    /**
-      * Non-standard.
-      */
-    [Symbol.iterator](): IterableIterator<number>;
-}
-
-// #############################################################################################
-// Escaping characters - https://github.com/zloirock/core-js/#escaping-characters
-// Modules: core.string.escape-html
-// #############################################################################################
-
-interface String {
-    /**
-      * Non-standard.
-      */
-    escapeHTML(): string;
-
-    /**
-      * Non-standard.
-      */
-    unescapeHTML(): string;
-}
-
-// #############################################################################################
-// delay - https://github.com/zloirock/core-js/#delay
-// Modules: core.delay
-// #############################################################################################
-
-declare function delay(msec: number): Promise<void>;
-
-declare namespace core {
-    var version: string;
-
-    namespace Reflect {
-        function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;
-        function construct(target: Function, argumentsList: ArrayLike<any>): any;
-        function defineProperty(target: any, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;
-        function deleteProperty(target: any, propertyKey: PropertyKey): boolean;
-        function enumerate(target: any): IterableIterator<any>;
-        function get(target: any, propertyKey: PropertyKey, receiver?: any): any;
-        function getOwnPropertyDescriptor(target: any, propertyKey: PropertyKey): PropertyDescriptor;
-        function getPrototypeOf(target: any): any;
-        function has(target: any, propertyKey: string): boolean;
-        function has(target: any, propertyKey: symbol): boolean;
-        function isExtensible(target: any): boolean;
-        function ownKeys(target: any): Array<PropertyKey>;
-        function preventExtensions(target: any): boolean;
-        function set(target: any, propertyKey: PropertyKey, value: any, receiver?: any): boolean;
-        function setPrototypeOf(target: any, proto: any): boolean;
-    }
-
-    var Object: {
-        getPrototypeOf(o: any): any;
-        getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor;
-        getOwnPropertyNames(o: any): string[];
-        create(o: any, properties?: PropertyDescriptorMap): any;
-        defineProperty(o: any, p: string, attributes: PropertyDescriptor): any;
-        defineProperties(o: any, properties: PropertyDescriptorMap): any;
-        seal<T>(o: T): T;
-        freeze<T>(o: T): T;
-        preventExtensions<T>(o: T): T;
-        isSealed(o: any): boolean;
-        isFrozen(o: any): boolean;
-        isExtensible(o: any): boolean;
-        keys(o: any): string[];
-        assign(target: any, ...sources: any[]): any;
-        is(value1: any, value2: any): boolean;
-        setPrototypeOf(o: any, proto: any): any;
-        getOwnPropertySymbols(o: any): symbol[];
-        getOwnPropertyDescriptor(o: any, propertyKey: PropertyKey): PropertyDescriptor;
-        defineProperty(o: any, propertyKey: PropertyKey, attributes: PropertyDescriptor): any;
-        values(object: any): any[];
-        entries(object: any): any[];
-        getOwnPropertyDescriptors(object: any): PropertyDescriptorMap;
-        isObject(value: any): boolean;
-        classof(value: any): string;
-        define<T>(target: T, mixin: any): T;
-        make<T>(proto: T, mixin?: any): T;
-    };
-
-    var Function: {
-        bind(target: Function, thisArg: any, ...argArray: any[]): any;
-        part(target: Function, ...args: any[]): any;
-    };
-
-    var Array: {
-        from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): Array<U>;
-        from<T, U>(iterable: Iterable<T>, mapfn: (v: T, k: number) => U, thisArg?: any): Array<U>;
-        from<T>(arrayLike: ArrayLike<T>): Array<T>;
-        from<T>(iterable: Iterable<T>): Array<T>;
-        of<T>(...items: T[]): Array<T>;
-        push<T>(array: ArrayLike<T>, ...items: T[]): number;
-        pop<T>(array: ArrayLike<T>): T;
-        concat<T>(array: ArrayLike<T>, ...items: (T[]| T)[]): T[];
-        join<T>(array: ArrayLike<T>, separator?: string): string;
-        reverse<T>(array: ArrayLike<T>): T[];
-        shift<T>(array: ArrayLike<T>): T;
-        slice<T>(array: ArrayLike<T>, start?: number, end?: number): T[];
-        sort<T>(array: ArrayLike<T>, compareFn?: (a: T, b: T) => number): T[];
-        splice<T>(array: ArrayLike<T>, start: number): T[];
-        splice<T>(array: ArrayLike<T>, start: number, deleteCount: number, ...items: T[]): T[];
-        unshift<T>(array: ArrayLike<T>, ...items: T[]): number;
-        indexOf<T>(array: ArrayLike<T>, searchElement: T, fromIndex?: number): number;
-        lastIndexOf<T>(array: ArrayLike<T>, earchElement: T, fromIndex?: number): number;
-        every<T>(array: ArrayLike<T>, callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean;
-        some<T>(array: ArrayLike<T>, callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean;
-        forEach<T>(array: ArrayLike<T>, callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
-        map<T, U>(array: ArrayLike<T>, callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];
-        filter<T>(array: ArrayLike<T>, callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): T[];
-        reduce<T>(array: ArrayLike<T>, callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T;
-        reduce<T, U>(array: ArrayLike<T>, callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
-        reduceRight<T>(array: ArrayLike<T>, callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T;
-        reduceRight<T, U>(array: ArrayLike<T>, callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
-        entries<T>(array: ArrayLike<T>): IterableIterator<[number, T]>;
-        keys<T>(array: ArrayLike<T>): IterableIterator<number>;
-        values<T>(array: ArrayLike<T>): IterableIterator<T>;
-        find<T>(array: ArrayLike<T>, predicate: (value: T, index: number, obj: Array<T>) => boolean, thisArg?: any): T;
-        findIndex<T>(array: ArrayLike<T>, predicate: (value: T) => boolean, thisArg?: any): number;
-        fill<T>(array: ArrayLike<T>, value: T, start?: number, end?: number): T[];
-        copyWithin<T>(array: ArrayLike<T>, target: number, start: number, end?: number): T[];
-        includes<T>(array: ArrayLike<T>, value: T, fromIndex?: number): boolean;
-        turn<T>(array: ArrayLike<T>, callbackfn: (memo: Array<T>, value: T, index: number, array: Array<T>) => void, memo?: Array<T>): Array<T>;
-        turn<T, U>(array: ArrayLike<T>, callbackfn: (memo: U, value: T, index: number, array: Array<T>) => void, memo?: U): U;
-    };
-
-    var String: {
-        codePointAt(text: string, pos: number): number;
-        includes(text: string, searchString: string, position?: number): boolean;
-        endsWith(text: string, searchString: string, endPosition?: number): boolean;
-        repeat(text: string, count: number): string;
-        fromCodePoint(...codePoints: number[]): string;
-        raw(template: TemplateStringsArray, ...substitutions: any[]): string;
-        startsWith(text: string, searchString: string, position?: number): boolean;
-        at(text: string, index: number): string;
-        lpad(text: string, length: number, fillStr?: string): string;
-        rpad(text: string, length: number, fillStr?: string): string;
-        escapeHTML(text: string): string;
-        unescapeHTML(text: string): string;
-    };
-
-    var Date: {
-        now(): number;
-        toISOString(date: Date): string;
-        format(date: Date, template: string, locale?: string): string;
-        formatUTC(date: Date, template: string, locale?: string): string;
-    };
-
-    var Number: {
-        EPSILON: number;
-        isFinite(number: number): boolean;
-        isInteger(number: number): boolean;
-        isNaN(number: number): boolean;
-        isSafeInteger(number: number): boolean;
-        MAX_SAFE_INTEGER: number;
-        MIN_SAFE_INTEGER: number;
-        parseFloat(string: string): number;
-        parseInt(string: string, radix?: number): number;
-        clz32(x: number): number;
-        imul(x: number, y: number): number;
-        sign(x: number): number;
-        log10(x: number): number;
-        log2(x: number): number;
-        log1p(x: number): number;
-        expm1(x: number): number;
-        cosh(x: number): number;
-        sinh(x: number): number;
-        tanh(x: number): number;
-        acosh(x: number): number;
-        asinh(x: number): number;
-        atanh(x: number): number;
-        hypot(...values: number[]): number;
-        trunc(x: number): number;
-        fround(x: number): number;
-        cbrt(x: number): number;
-        random(lim?: number): number;
-    };
-
-    var Math: {
-        clz32(x: number): number;
-        imul(x: number, y: number): number;
-        sign(x: number): number;
-        log10(x: number): number;
-        log2(x: number): number;
-        log1p(x: number): number;
-        expm1(x: number): number;
-        cosh(x: number): number;
-        sinh(x: number): number;
-        tanh(x: number): number;
-        acosh(x: number): number;
-        asinh(x: number): number;
-        atanh(x: number): number;
-        hypot(...values: number[]): number;
-        trunc(x: number): number;
-        fround(x: number): number;
-        cbrt(x: number): number;
-    };
-
-    var RegExp: {
-        escape(str: string): string;
-    };
-
-    var Map: MapConstructor;
-    var Set: SetConstructor;
-    var WeakMap: WeakMapConstructor;
-    var WeakSet: WeakSetConstructor;
-    var Promise: PromiseConstructor;
-    var Symbol: SymbolConstructor;
-    var Dict: DictConstructor;
-    var global: any;
-    var log: Log;
-    var _: boolean;
-
-    function setTimeout(handler: any, timeout?: any, ...args: any[]): number;
-
-    function setInterval(handler: any, timeout?: any, ...args: any[]): number;
-
-    function setImmediate(expression: any, ...args: any[]): number;
-
-    function clearImmediate(handle: number): void;
-
-    function $for<T>(iterable: Iterable<T>): $for<T>;
-
-    function isIterable(value: any): boolean;
-
-    function getIterator<T>(iterable: Iterable<T>): Iterator<T>;
-
-    interface Locale {
-        weekdays: string;
-        months: string;
-    }
-
-    function addLocale(lang: string, locale: Locale): typeof core;
-
-    function locale(lang?: string): string;
-
-    function delay(msec: number): Promise<void>;
-}
-
-declare module "core-js" {
-    export = core;
-}
-declare module "core-js/shim" {
-    export = core;
-}
-declare module "core-js/core" {
-    export = core;
-}
-declare module "core-js/core/$for" {
-    import $for = core.$for;
-    export = $for;
-}
-declare module "core-js/core/_" {
-    var _: typeof core._;
-    export = _;
-}
-declare module "core-js/core/array" {
-    var Array: typeof core.Array;
-    export = Array;
-}
-declare module "core-js/core/date" {
-    var Date: typeof core.Date;
-    export = Date;
-}
-declare module "core-js/core/delay" {
-    var delay: typeof core.delay;
-    export = delay;
-}
-declare module "core-js/core/dict" {
-    var Dict: typeof core.Dict;
-    export = Dict;
-}
-declare module "core-js/core/function" {
-    var Function: typeof core.Function;
-    export = Function;
-}
-declare module "core-js/core/global" {
-    var global: typeof core.global;
-    export = global;
-}
-declare module "core-js/core/log" {
-    var log: typeof core.log;
-    export = log;
-}
-declare module "core-js/core/number" {
-    var Number: typeof core.Number;
-    export = Number;
-}
-declare module "core-js/core/object" {
-    var Object: typeof core.Object;
-    export = Object;
-}
-declare module "core-js/core/string" {
-    var String: typeof core.String;
-    export = String;
-}
-declare module "core-js/fn/$for" {
-    import $for = core.$for;
-    export = $for;
-}
-declare module "core-js/fn/_" {
-    var _: typeof core._;
-    export = _;
-}
-declare module "core-js/fn/clear-immediate" {
-    var clearImmediate: typeof core.clearImmediate;
-    export = clearImmediate;
-}
-declare module "core-js/fn/delay" {
-    var delay: typeof core.delay;
-    export = delay;
-}
-declare module "core-js/fn/dict" {
-    var Dict: typeof core.Dict;
-    export = Dict;
-}
-declare module "core-js/fn/get-iterator" {
-    var getIterator: typeof core.getIterator;
-    export = getIterator;
-}
-declare module "core-js/fn/global" {
-    var global: typeof core.global;
-    export = global;
-}
-declare module "core-js/fn/is-iterable" {
-    var isIterable: typeof core.isIterable;
-    export = isIterable;
-}
-declare module "core-js/fn/log" {
-    var log: typeof core.log;
-    export = log;
-}
-declare module "core-js/fn/map" {
-    var Map: typeof core.Map;
-    export = Map;
-}
-declare module "core-js/fn/promise" {
-    var Promise: typeof core.Promise;
-    export = Promise;
-}
-declare module "core-js/fn/set" {
-    var Set: typeof core.Set;
-    export = Set;
-}
-declare module "core-js/fn/set-immediate" {
-    var setImmediate: typeof core.setImmediate;
-    export = setImmediate;
-}
-declare module "core-js/fn/set-interval" {
-    var setInterval: typeof core.setInterval;
-    export = setInterval;
-}
-declare module "core-js/fn/set-timeout" {
-    var setTimeout: typeof core.setTimeout;
-    export = setTimeout;
-}
-declare module "core-js/fn/weak-map" {
-    var WeakMap: typeof core.WeakMap;
-    export = WeakMap;
-}
-declare module "core-js/fn/weak-set" {
-    var WeakSet: typeof core.WeakSet;
-    export = WeakSet;
-}
-declare module "core-js/fn/array" {
-    var Array: typeof core.Array;
-    export = Array;
-}
-declare module "core-js/fn/array/concat" {
-    var concat: typeof core.Array.concat;
-    export = concat;
-}
-declare module "core-js/fn/array/copy-within" {
-    var copyWithin: typeof core.Array.copyWithin;
-    export = copyWithin;
-}
-declare module "core-js/fn/array/entries" {
-    var entries: typeof core.Array.entries;
-    export = entries;
-}
-declare module "core-js/fn/array/every" {
-    var every: typeof core.Array.every;
-    export = every;
-}
-declare module "core-js/fn/array/fill" {
-    var fill: typeof core.Array.fill;
-    export = fill;
-}
-declare module "core-js/fn/array/filter" {
-    var filter: typeof core.Array.filter;
-    export = filter;
-}
-declare module "core-js/fn/array/find" {
-    var find: typeof core.Array.find;
-    export = find;
-}
-declare module "core-js/fn/array/find-index" {
-    var findIndex: typeof core.Array.findIndex;
-    export = findIndex;
-}
-declare module "core-js/fn/array/for-each" {
-    var forEach: typeof core.Array.forEach;
-    export = forEach;
-}
-declare module "core-js/fn/array/from" {
-    var from: typeof core.Array.from;
-    export = from;
-}
-declare module "core-js/fn/array/includes" {
-    var includes: typeof core.Array.includes;
-    export = includes;
-}
-declare module "core-js/fn/array/index-of" {
-    var indexOf: typeof core.Array.indexOf;
-    export = indexOf;
-}
-declare module "core-js/fn/array/join" {
-    var join: typeof core.Array.join;
-    export = join;
-}
-declare module "core-js/fn/array/keys" {
-    var keys: typeof core.Array.keys;
-    export = keys;
-}
-declare module "core-js/fn/array/last-index-of" {
-    var lastIndexOf: typeof core.Array.lastIndexOf;
-    export = lastIndexOf;
-}
-declare module "core-js/fn/array/map" {
-    var map: typeof core.Array.map;
-    export = map;
-}
-declare module "core-js/fn/array/of" {
-    var of: typeof core.Array.of;
-    export = of;
-}
-declare module "core-js/fn/array/pop" {
-    var pop: typeof core.Array.pop;
-    export = pop;
-}
-declare module "core-js/fn/array/push" {
-    var push: typeof core.Array.push;
-    export = push;
-}
-declare module "core-js/fn/array/reduce" {
-    var reduce: typeof core.Array.reduce;
-    export = reduce;
-}
-declare module "core-js/fn/array/reduce-right" {
-    var reduceRight: typeof core.Array.reduceRight;
-    export = reduceRight;
-}
-declare module "core-js/fn/array/reverse" {
-    var reverse: typeof core.Array.reverse;
-    export = reverse;
-}
-declare module "core-js/fn/array/shift" {
-    var shift: typeof core.Array.shift;
-    export = shift;
-}
-declare module "core-js/fn/array/slice" {
-    var slice: typeof core.Array.slice;
-    export = slice;
-}
-declare module "core-js/fn/array/some" {
-    var some: typeof core.Array.some;
-    export = some;
-}
-declare module "core-js/fn/array/sort" {
-    var sort: typeof core.Array.sort;
-    export = sort;
-}
-declare module "core-js/fn/array/splice" {
-    var splice: typeof core.Array.splice;
-    export = splice;
-}
-declare module "core-js/fn/array/turn" {
-    var turn: typeof core.Array.turn;
-    export = turn;
-}
-declare module "core-js/fn/array/unshift" {
-    var unshift: typeof core.Array.unshift;
-    export = unshift;
-}
-declare module "core-js/fn/array/values" {
-    var values: typeof core.Array.values;
-    export = values;
-}
-declare module "core-js/fn/date" {
-    var Date: typeof core.Date;
-    export = Date;
-}
-declare module "core-js/fn/date/add-locale" {
-    var addLocale: typeof core.addLocale;
-    export = addLocale;
-}
-declare module "core-js/fn/date/format" {
-    var format: typeof core.Date.format;
-    export = format;
-}
-declare module "core-js/fn/date/formatUTC" {
-    var formatUTC: typeof core.Date.formatUTC;
-    export = formatUTC;
-}
-declare module "core-js/fn/function" {
-    var Function: typeof core.Function;
-    export = Function;
-}
-declare module "core-js/fn/function/has-instance" {
-    var hasInstance: (value: any) => boolean;
-    export = hasInstance;
-}
-declare module "core-js/fn/function/name"
-{
-}
-declare module "core-js/fn/function/part" {
-    var part: typeof core.Function.part;
-    export = part;
-}
-declare module "core-js/fn/math" {
-    var Math: typeof core.Math;
-    export = Math;
-}
-declare module "core-js/fn/math/acosh" {
-    var acosh: typeof core.Math.acosh;
-    export = acosh;
-}
-declare module "core-js/fn/math/asinh" {
-    var asinh: typeof core.Math.asinh;
-    export = asinh;
-}
-declare module "core-js/fn/math/atanh" {
-    var atanh: typeof core.Math.atanh;
-    export = atanh;
-}
-declare module "core-js/fn/math/cbrt" {
-    var cbrt: typeof core.Math.cbrt;
-    export = cbrt;
-}
-declare module "core-js/fn/math/clz32" {
-    var clz32: typeof core.Math.clz32;
-    export = clz32;
-}
-declare module "core-js/fn/math/cosh" {
-    var cosh: typeof core.Math.cosh;
-    export = cosh;
-}
-declare module "core-js/fn/math/expm1" {
-    var expm1: typeof core.Math.expm1;
-    export = expm1;
-}
-declare module "core-js/fn/math/fround" {
-    var fround: typeof core.Math.fround;
-    export = fround;
-}
-declare module "core-js/fn/math/hypot" {
-    var hypot: typeof core.Math.hypot;
-    export = hypot;
-}
-declare module "core-js/fn/math/imul" {
-    var imul: typeof core.Math.imul;
-    export = imul;
-}
-declare module "core-js/fn/math/log10" {
-    var log10: typeof core.Math.log10;
-    export = log10;
-}
-declare module "core-js/fn/math/log1p" {
-    var log1p: typeof core.Math.log1p;
-    export = log1p;
-}
-declare module "core-js/fn/math/log2" {
-    var log2: typeof core.Math.log2;
-    export = log2;
-}
-declare module "core-js/fn/math/sign" {
-    var sign: typeof core.Math.sign;
-    export = sign;
-}
-declare module "core-js/fn/math/sinh" {
-    var sinh: typeof core.Math.sinh;
-    export = sinh;
-}
-declare module "core-js/fn/math/tanh" {
-    var tanh: typeof core.Math.tanh;
-    export = tanh;
-}
-declare module "core-js/fn/math/trunc" {
-    var trunc: typeof core.Math.trunc;
-    export = trunc;
-}
-declare module "core-js/fn/number" {
-    var Number: typeof core.Number;
-    export = Number;
-}
-declare module "core-js/fn/number/epsilon" {
-    var EPSILON: typeof core.Number.EPSILON;
-    export = EPSILON;
-}
-declare module "core-js/fn/number/is-finite" {
-    var isFinite: typeof core.Number.isFinite;
-    export = isFinite;
-}
-declare module "core-js/fn/number/is-integer" {
-    var isInteger: typeof core.Number.isInteger;
-    export = isInteger;
-}
-declare module "core-js/fn/number/is-nan" {
-    var isNaN: typeof core.Number.isNaN;
-    export = isNaN;
-}
-declare module "core-js/fn/number/is-safe-integer" {
-    var isSafeInteger: typeof core.Number.isSafeInteger;
-    export = isSafeInteger;
-}
-declare module "core-js/fn/number/max-safe-integer" {
-    var MAX_SAFE_INTEGER: typeof core.Number.MAX_SAFE_INTEGER;
-    export = MAX_SAFE_INTEGER;
-}
-declare module "core-js/fn/number/min-safe-interger" {
-    var MIN_SAFE_INTEGER: typeof core.Number.MIN_SAFE_INTEGER;
-    export = MIN_SAFE_INTEGER;
-}
-declare module "core-js/fn/number/parse-float" {
-    var parseFloat: typeof core.Number.parseFloat;
-    export = parseFloat;
-}
-declare module "core-js/fn/number/parse-int" {
-    var parseInt: typeof core.Number.parseInt;
-    export = parseInt;
-}
-declare module "core-js/fn/number/random" {
-    var random: typeof core.Number.random;
-    export = random;
-}
-declare module "core-js/fn/object" {
-    var Object: typeof core.Object;
-    export = Object;
-}
-declare module "core-js/fn/object/assign" {
-    var assign: typeof core.Object.assign;
-    export = assign;
-}
-declare module "core-js/fn/object/classof" {
-    var classof: typeof core.Object.classof;
-    export = classof;
-}
-declare module "core-js/fn/object/create" {
-    var create: typeof core.Object.create;
-    export = create;
-}
-declare module "core-js/fn/object/define" {
-    var define: typeof core.Object.define;
-    export = define;
-}
-declare module "core-js/fn/object/define-properties" {
-    var defineProperties: typeof core.Object.defineProperties;
-    export = defineProperties;
-}
-declare module "core-js/fn/object/define-property" {
-    var defineProperty: typeof core.Object.defineProperty;
-    export = defineProperty;
-}
-declare module "core-js/fn/object/entries" {
-    var entries: typeof core.Object.entries;
-    export = entries;
-}
-declare module "core-js/fn/object/freeze" {
-    var freeze: typeof core.Object.freeze;
-    export = freeze;
-}
-declare module "core-js/fn/object/get-own-property-descriptor" {
-    var getOwnPropertyDescriptor: typeof core.Object.getOwnPropertyDescriptor;
-    export = getOwnPropertyDescriptor;
-}
-declare module "core-js/fn/object/get-own-property-descriptors" {
-    var getOwnPropertyDescriptors: typeof core.Object.getOwnPropertyDescriptors;
-    export = getOwnPropertyDescriptors;
-}
-declare module "core-js/fn/object/get-own-property-names" {
-    var getOwnPropertyNames: typeof core.Object.getOwnPropertyNames;
-    export = getOwnPropertyNames;
-}
-declare module "core-js/fn/object/get-own-property-symbols" {
-    var getOwnPropertySymbols: typeof core.Object.getOwnPropertySymbols;
-    export = getOwnPropertySymbols;
-}
-declare module "core-js/fn/object/get-prototype-of" {
-    var getPrototypeOf: typeof core.Object.getPrototypeOf;
-    export = getPrototypeOf;
-}
-declare module "core-js/fn/object/is" {
-    var is: typeof core.Object.is;
-    export = is;
-}
-declare module "core-js/fn/object/is-extensible" {
-    var isExtensible: typeof core.Object.isExtensible;
-    export = isExtensible;
-}
-declare module "core-js/fn/object/is-frozen" {
-    var isFrozen: typeof core.Object.isFrozen;
-    export = isFrozen;
-}
-declare module "core-js/fn/object/is-object" {
-    var isObject: typeof core.Object.isObject;
-    export = isObject;
-}
-declare module "core-js/fn/object/is-sealed" {
-    var isSealed: typeof core.Object.isSealed;
-    export = isSealed;
-}
-declare module "core-js/fn/object/keys" {
-    var keys: typeof core.Object.keys;
-    export = keys;
-}
-declare module "core-js/fn/object/make" {
-    var make: typeof core.Object.make;
-    export = make;
-}
-declare module "core-js/fn/object/prevent-extensions" {
-    var preventExtensions: typeof core.Object.preventExtensions;
-    export = preventExtensions;
-}
-declare module "core-js/fn/object/seal" {
-    var seal: typeof core.Object.seal;
-    export = seal;
-}
-declare module "core-js/fn/object/set-prototype-of" {
-    var setPrototypeOf: typeof core.Object.setPrototypeOf;
-    export = setPrototypeOf;
-}
-declare module "core-js/fn/object/values" {
-    var values: typeof core.Object.values;
-    export = values;
-}
-declare module "core-js/fn/reflect" {
-    var Reflect: typeof core.Reflect;
-    export = Reflect;
-}
-declare module "core-js/fn/reflect/apply" {
-    var apply: typeof core.Reflect.apply;
-    export = apply;
-}
-declare module "core-js/fn/reflect/construct" {
-    var construct: typeof core.Reflect.construct;
-    export = construct;
-}
-declare module "core-js/fn/reflect/define-property" {
-    var defineProperty: typeof core.Reflect.defineProperty;
-    export = defineProperty;
-}
-declare module "core-js/fn/reflect/delete-property" {
-    var deleteProperty: typeof core.Reflect.deleteProperty;
-    export = deleteProperty;
-}
-declare module "core-js/fn/reflect/enumerate" {
-    var enumerate: typeof core.Reflect.enumerate;
-    export = enumerate;
-}
-declare module "core-js/fn/reflect/get" {
-    var get: typeof core.Reflect.get;
-    export = get;
-}
-declare module "core-js/fn/reflect/get-own-property-descriptor" {
-    var getOwnPropertyDescriptor: typeof core.Reflect.getOwnPropertyDescriptor;
-    export = getOwnPropertyDescriptor;
-}
-declare module "core-js/fn/reflect/get-prototype-of" {
-    var getPrototypeOf: typeof core.Reflect.getPrototypeOf;
-    export = getPrototypeOf;
-}
-declare module "core-js/fn/reflect/has" {
-    var has: typeof core.Reflect.has;
-    export = has;
-}
-declare module "core-js/fn/reflect/is-extensible" {
-    var isExtensible: typeof core.Reflect.isExtensible;
-    export = isExtensible;
-}
-declare module "core-js/fn/reflect/own-keys" {
-    var ownKeys: typeof core.Reflect.ownKeys;
-    export = ownKeys;
-}
-declare module "core-js/fn/reflect/prevent-extensions" {
-    var preventExtensions: typeof core.Reflect.preventExtensions;
-    export = preventExtensions;
-}
-declare module "core-js/fn/reflect/set" {
-    var set: typeof core.Reflect.set;
-    export = set;
-}
-declare module "core-js/fn/reflect/set-prototype-of" {
-    var setPrototypeOf: typeof core.Reflect.setPrototypeOf;
-    export = setPrototypeOf;
-}
-declare module "core-js/fn/regexp" {
-    var RegExp: typeof core.RegExp;
-    export = RegExp;
-}
-declare module "core-js/fn/regexp/escape" {
-    var escape: typeof core.RegExp.escape;
-    export = escape;
-}
-declare module "core-js/fn/string" {
-    var String: typeof core.String;
-    export = String;
-}
-declare module "core-js/fn/string/at" {
-    var at: typeof core.String.at;
-    export = at;
-}
-declare module "core-js/fn/string/code-point-at" {
-    var codePointAt: typeof core.String.codePointAt;
-    export = codePointAt;
-}
-declare module "core-js/fn/string/ends-with" {
-    var endsWith: typeof core.String.endsWith;
-    export = endsWith;
-}
-declare module "core-js/fn/string/escape-html" {
-    var escapeHTML: typeof core.String.escapeHTML;
-    export = escapeHTML;
-}
-declare module "core-js/fn/string/from-code-point" {
-    var fromCodePoint: typeof core.String.fromCodePoint;
-    export = fromCodePoint;
-}
-declare module "core-js/fn/string/includes" {
-    var includes: typeof core.String.includes;
-    export = includes;
-}
-declare module "core-js/fn/string/lpad" {
-    var lpad: typeof core.String.lpad;
-    export = lpad;
-}
-declare module "core-js/fn/string/raw" {
-    var raw: typeof core.String.raw;
-    export = raw;
-}
-declare module "core-js/fn/string/repeat" {
-    var repeat: typeof core.String.repeat;
-    export = repeat;
-}
-declare module "core-js/fn/string/rpad" {
-    var rpad: typeof core.String.rpad;
-    export = rpad;
-}
-declare module "core-js/fn/string/starts-with" {
-    var startsWith: typeof core.String.startsWith;
-    export = startsWith;
-}
-declare module "core-js/fn/string/unescape-html" {
-    var unescapeHTML: typeof core.String.unescapeHTML;
-    export = unescapeHTML;
-}
-declare module "core-js/fn/symbol" {
-    var Symbol: typeof core.Symbol;
-    export = Symbol;
-}
-declare module "core-js/fn/symbol/for" {
-    var _for: typeof core.Symbol.for;
-    export = _for;
-}
-declare module "core-js/fn/symbol/has-instance" {
-    var hasInstance: typeof core.Symbol.hasInstance;
-    export = hasInstance;
-}
-declare module "core-js/fn/symbol/is-concat-spreadable" {
-    var isConcatSpreadable: typeof core.Symbol.isConcatSpreadable;
-    export = isConcatSpreadable;
-}
-declare module "core-js/fn/symbol/iterator" {
-    var iterator: typeof core.Symbol.iterator;
-    export = iterator;
-}
-declare module "core-js/fn/symbol/key-for" {
-    var keyFor: typeof core.Symbol.keyFor;
-    export = keyFor;
-}
-declare module "core-js/fn/symbol/match" {
-    var match: typeof core.Symbol.match;
-    export = match;
-}
-declare module "core-js/fn/symbol/replace" {
-    var replace: typeof core.Symbol.replace;
-    export = replace;
-}
-declare module "core-js/fn/symbol/search" {
-    var search: typeof core.Symbol.search;
-    export = search;
-}
-declare module "core-js/fn/symbol/species" {
-    var species: typeof core.Symbol.species;
-    export = species;
-}
-declare module "core-js/fn/symbol/split" {
-    var split: typeof core.Symbol.split;
-    export = split;
-}
-declare module "core-js/fn/symbol/to-primitive" {
-    var toPrimitive: typeof core.Symbol.toPrimitive;
-    export = toPrimitive;
-}
-declare module "core-js/fn/symbol/to-string-tag" {
-    var toStringTag: typeof core.Symbol.toStringTag;
-    export = toStringTag;
-}
-declare module "core-js/fn/symbol/unscopables" {
-    var unscopables: typeof core.Symbol.unscopables;
-    export = unscopables;
-}
-declare module "core-js/es5" {
-    export = core;
-}
-declare module "core-js/es6" {
-    export = core;
-}
-declare module "core-js/es6/array" {
-    var Array: typeof core.Array;
-    export = Array;
-}
-declare module "core-js/es6/function" {
-    var Function: typeof core.Function;
-    export = Function;
-}
-declare module "core-js/es6/map" {
-    var Map: typeof core.Map;
-    export = Map;
-}
-declare module "core-js/es6/math" {
-    var Math: typeof core.Math;
-    export = Math;
-}
-declare module "core-js/es6/number" {
-    var Number: typeof core.Number;
-    export = Number;
-}
-declare module "core-js/es6/object" {
-    var Object: typeof core.Object;
-    export = Object;
-}
-declare module "core-js/es6/promise" {
-    var Promise: typeof core.Promise;
-    export = Promise;
-}
-declare module "core-js/es6/reflect" {
-    var Reflect: typeof core.Reflect;
-    export = Reflect;
-}
-declare module "core-js/es6/regexp" {
-    var RegExp: typeof core.RegExp;
-    export = RegExp;
-}
-declare module "core-js/es6/set" {
-    var Set: typeof core.Set;
-    export = Set;
-}
-declare module "core-js/es6/string" {
-    var String: typeof core.String;
-    export = String;
-}
-declare module "core-js/es6/symbol" {
-    var Symbol: typeof core.Symbol;
-    export = Symbol;
-}
-declare module "core-js/es6/weak-map" {
-    var WeakMap: typeof core.WeakMap;
-    export = WeakMap;
-}
-declare module "core-js/es6/weak-set" {
-    var WeakSet: typeof core.WeakSet;
-    export = WeakSet;
-}
-declare module "core-js/es7" {
-    export = core;
-}
-declare module "core-js/es7/array" {
-    var Array: typeof core.Array;
-    export = Array;
-}
-declare module "core-js/es7/map" {
-    var Map: typeof core.Map;
-    export = Map;
-}
-declare module "core-js/es7/object" {
-    var Object: typeof core.Object;
-    export = Object;
-}
-declare module "core-js/es7/regexp" {
-    var RegExp: typeof core.RegExp;
-    export = RegExp;
-}
-declare module "core-js/es7/set" {
-    var Set: typeof core.Set;
-    export = Set;
-}
-declare module "core-js/es7/string" {
-    var String: typeof core.String;
-    export = String;
-}
-declare module "core-js/js" {
-    export = core;
-}
-declare module "core-js/js/array" {
-    var Array: typeof core.Array;
-    export = Array;
-}
-declare module "core-js/web" {
-    export = core;
-}
-declare module "core-js/web/dom" {
-    export = core;
-}
-declare module "core-js/web/immediate" {
-    export = core;
-}
-declare module "core-js/web/timers" {
-    export = core;
-}
-declare module "core-js/library" {
-    export = core;
-}
-declare module "core-js/library/shim" {
-    export = core;
-}
-declare module "core-js/library/core" {
-    export = core;
-}
-declare module "core-js/library/core/$for" {
-    import $for = core.$for;
-    export = $for;
-}
-declare module "core-js/library/core/_" {
-    var _: typeof core._;
-    export = _;
-}
-declare module "core-js/library/core/array" {
-    var Array: typeof core.Array;
-    export = Array;
-}
-declare module "core-js/library/core/date" {
-    var Date: typeof core.Date;
-    export = Date;
-}
-declare module "core-js/library/core/delay" {
-    var delay: typeof core.delay;
-    export = delay;
-}
-declare module "core-js/library/core/dict" {
-    var Dict: typeof core.Dict;
-    export = Dict;
-}
-declare module "core-js/library/core/function" {
-    var Function: typeof core.Function;
-    export = Function;
-}
-declare module "core-js/library/core/global" {
-    var global: typeof core.global;
-    export = global;
-}
-declare module "core-js/library/core/log" {
-    var log: typeof core.log;
-    export = log;
-}
-declare module "core-js/library/core/number" {
-    var Number: typeof core.Number;
-    export = Number;
-}
-declare module "core-js/library/core/object" {
-    var Object: typeof core.Object;
-    export = Object;
-}
-declare module "core-js/library/core/string" {
-    var String: typeof core.String;
-    export = String;
-}
-declare module "core-js/library/fn/$for" {
-    import $for = core.$for;
-    export = $for;
-}
-declare module "core-js/library/fn/_" {
-    var _: typeof core._;
-    export = _;
-}
-declare module "core-js/library/fn/clear-immediate" {
-    var clearImmediate: typeof core.clearImmediate;
-    export = clearImmediate;
-}
-declare module "core-js/library/fn/delay" {
-    var delay: typeof core.delay;
-    export = delay;
-}
-declare module "core-js/library/fn/dict" {
-    var Dict: typeof core.Dict;
-    export = Dict;
-}
-declare module "core-js/library/fn/get-iterator" {
-    var getIterator: typeof core.getIterator;
-    export = getIterator;
-}
-declare module "core-js/library/fn/global" {
-    var global: typeof core.global;
-    export = global;
-}
-declare module "core-js/library/fn/is-iterable" {
-    var isIterable: typeof core.isIterable;
-    export = isIterable;
-}
-declare module "core-js/library/fn/log" {
-    var log: typeof core.log;
-    export = log;
-}
-declare module "core-js/library/fn/map" {
-    var Map: typeof core.Map;
-    export = Map;
-}
-declare module "core-js/library/fn/promise" {
-    var Promise: typeof core.Promise;
-    export = Promise;
-}
-declare module "core-js/library/fn/set" {
-    var Set: typeof core.Set;
-    export = Set;
-}
-declare module "core-js/library/fn/set-immediate" {
-    var setImmediate: typeof core.setImmediate;
-    export = setImmediate;
-}
-declare module "core-js/library/fn/set-interval" {
-    var setInterval: typeof core.setInterval;
-    export = setInterval;
-}
-declare module "core-js/library/fn/set-timeout" {
-    var setTimeout: typeof core.setTimeout;
-    export = setTimeout;
-}
-declare module "core-js/library/fn/weak-map" {
-    var WeakMap: typeof core.WeakMap;
-    export = WeakMap;
-}
-declare module "core-js/library/fn/weak-set" {
-    var WeakSet: typeof core.WeakSet;
-    export = WeakSet;
-}
-declare module "core-js/library/fn/array" {
-    var Array: typeof core.Array;
-    export = Array;
-}
-declare module "core-js/library/fn/array/concat" {
-    var concat: typeof core.Array.concat;
-    export = concat;
-}
-declare module "core-js/library/fn/array/copy-within" {
-    var copyWithin: typeof core.Array.copyWithin;
-    export = copyWithin;
-}
-declare module "core-js/library/fn/array/entries" {
-    var entries: typeof core.Array.entries;
-    export = entries;
-}
-declare module "core-js/library/fn/array/every" {
-    var every: typeof core.Array.every;
-    export = every;
-}
-declare module "core-js/library/fn/array/fill" {
-    var fill: typeof core.Array.fill;
-    export = fill;
-}
-declare module "core-js/library/fn/array/filter" {
-    var filter: typeof core.Array.filter;
-    export = filter;
-}
-declare module "core-js/library/fn/array/find" {
-    var find: typeof core.Array.find;
-    export = find;
-}
-declare module "core-js/library/fn/array/find-index" {
-    var findIndex: typeof core.Array.findIndex;
-    export = findIndex;
-}
-declare module "core-js/library/fn/array/for-each" {
-    var forEach: typeof core.Array.forEach;
-    export = forEach;
-}
-declare module "core-js/library/fn/array/from" {
-    var from: typeof core.Array.from;
-    export = from;
-}
-declare module "core-js/library/fn/array/includes" {
-    var includes: typeof core.Array.includes;
-    export = includes;
-}
-declare module "core-js/library/fn/array/index-of" {
-    var indexOf: typeof core.Array.indexOf;
-    export = indexOf;
-}
-declare module "core-js/library/fn/array/join" {
-    var join: typeof core.Array.join;
-    export = join;
-}
-declare module "core-js/library/fn/array/keys" {
-    var keys: typeof core.Array.keys;
-    export = keys;
-}
-declare module "core-js/library/fn/array/last-index-of" {
-    var lastIndexOf: typeof core.Array.lastIndexOf;
-    export = lastIndexOf;
-}
-declare module "core-js/library/fn/array/map" {
-    var map: typeof core.Array.map;
-    export = map;
-}
-declare module "core-js/library/fn/array/of" {
-    var of: typeof core.Array.of;
-    export = of;
-}
-declare module "core-js/library/fn/array/pop" {
-    var pop: typeof core.Array.pop;
-    export = pop;
-}
-declare module "core-js/library/fn/array/push" {
-    var push: typeof core.Array.push;
-    export = push;
-}
-declare module "core-js/library/fn/array/reduce" {
-    var reduce: typeof core.Array.reduce;
-    export = reduce;
-}
-declare module "core-js/library/fn/array/reduce-right" {
-    var reduceRight: typeof core.Array.reduceRight;
-    export = reduceRight;
-}
-declare module "core-js/library/fn/array/reverse" {
-    var reverse: typeof core.Array.reverse;
-    export = reverse;
-}
-declare module "core-js/library/fn/array/shift" {
-    var shift: typeof core.Array.shift;
-    export = shift;
-}
-declare module "core-js/library/fn/array/slice" {
-    var slice: typeof core.Array.slice;
-    export = slice;
-}
-declare module "core-js/library/fn/array/some" {
-    var some: typeof core.Array.some;
-    export = some;
-}
-declare module "core-js/library/fn/array/sort" {
-    var sort: typeof core.Array.sort;
-    export = sort;
-}
-declare module "core-js/library/fn/array/splice" {
-    var splice: typeof core.Array.splice;
-    export = splice;
-}
-declare module "core-js/library/fn/array/turn" {
-    var turn: typeof core.Array.turn;
-    export = turn;
-}
-declare module "core-js/library/fn/array/unshift" {
-    var unshift: typeof core.Array.unshift;
-    export = unshift;
-}
-declare module "core-js/library/fn/array/values" {
-    var values: typeof core.Array.values;
-    export = values;
-}
-declare module "core-js/library/fn/date" {
-    var Date: typeof core.Date;
-    export = Date;
-}
-declare module "core-js/library/fn/date/add-locale" {
-    var addLocale: typeof core.addLocale;
-    export = addLocale;
-}
-declare module "core-js/library/fn/date/format" {
-    var format: typeof core.Date.format;
-    export = format;
-}
-declare module "core-js/library/fn/date/formatUTC" {
-    var formatUTC: typeof core.Date.formatUTC;
-    export = formatUTC;
-}
-declare module "core-js/library/fn/function" {
-    var Function: typeof core.Function;
-    export = Function;
-}
-declare module "core-js/library/fn/function/has-instance" {
-    var hasInstance: (value: any) => boolean;
-    export = hasInstance;
-}
-declare module "core-js/library/fn/function/name" {
-}
-declare module "core-js/library/fn/function/part" {
-    var part: typeof core.Function.part;
-    export = part;
-}
-declare module "core-js/library/fn/math" {
-    var Math: typeof core.Math;
-    export = Math;
-}
-declare module "core-js/library/fn/math/acosh" {
-    var acosh: typeof core.Math.acosh;
-    export = acosh;
-}
-declare module "core-js/library/fn/math/asinh" {
-    var asinh: typeof core.Math.asinh;
-    export = asinh;
-}
-declare module "core-js/library/fn/math/atanh" {
-    var atanh: typeof core.Math.atanh;
-    export = atanh;
-}
-declare module "core-js/library/fn/math/cbrt" {
-    var cbrt: typeof core.Math.cbrt;
-    export = cbrt;
-}
-declare module "core-js/library/fn/math/clz32" {
-    var clz32: typeof core.Math.clz32;
-    export = clz32;
-}
-declare module "core-js/library/fn/math/cosh" {
-    var cosh: typeof core.Math.cosh;
-    export = cosh;
-}
-declare module "core-js/library/fn/math/expm1" {
-    var expm1: typeof core.Math.expm1;
-    export = expm1;
-}
-declare module "core-js/library/fn/math/fround" {
-    var fround: typeof core.Math.fround;
-    export = fround;
-}
-declare module "core-js/library/fn/math/hypot" {
-    var hypot: typeof core.Math.hypot;
-    export = hypot;
-}
-declare module "core-js/library/fn/math/imul" {
-    var imul: typeof core.Math.imul;
-    export = imul;
-}
-declare module "core-js/library/fn/math/log10" {
-    var log10: typeof core.Math.log10;
-    export = log10;
-}
-declare module "core-js/library/fn/math/log1p" {
-    var log1p: typeof core.Math.log1p;
-    export = log1p;
-}
-declare module "core-js/library/fn/math/log2" {
-    var log2: typeof core.Math.log2;
-    export = log2;
-}
-declare module "core-js/library/fn/math/sign" {
-    var sign: typeof core.Math.sign;
-    export = sign;
-}
-declare module "core-js/library/fn/math/sinh" {
-    var sinh: typeof core.Math.sinh;
-    export = sinh;
-}
-declare module "core-js/library/fn/math/tanh" {
-    var tanh: typeof core.Math.tanh;
-    export = tanh;
-}
-declare module "core-js/library/fn/math/trunc" {
-    var trunc: typeof core.Math.trunc;
-    export = trunc;
-}
-declare module "core-js/library/fn/number" {
-    var Number: typeof core.Number;
-    export = Number;
-}
-declare module "core-js/library/fn/number/epsilon" {
-    var EPSILON: typeof core.Number.EPSILON;
-    export = EPSILON;
-}
-declare module "core-js/library/fn/number/is-finite" {
-    var isFinite: typeof core.Number.isFinite;
-    export = isFinite;
-}
-declare module "core-js/library/fn/number/is-integer" {
-    var isInteger: typeof core.Number.isInteger;
-    export = isInteger;
-}
-declare module "core-js/library/fn/number/is-nan" {
-    var isNaN: typeof core.Number.isNaN;
-    export = isNaN;
-}
-declare module "core-js/library/fn/number/is-safe-integer" {
-    var isSafeInteger: typeof core.Number.isSafeInteger;
-    export = isSafeInteger;
-}
-declare module "core-js/library/fn/number/max-safe-integer" {
-    var MAX_SAFE_INTEGER: typeof core.Number.MAX_SAFE_INTEGER;
-    export = MAX_SAFE_INTEGER;
-}
-declare module "core-js/library/fn/number/min-safe-interger" {
-    var MIN_SAFE_INTEGER: typeof core.Number.MIN_SAFE_INTEGER;
-    export = MIN_SAFE_INTEGER;
-}
-declare module "core-js/library/fn/number/parse-float" {
-    var parseFloat: typeof core.Number.parseFloat;
-    export = parseFloat;
-}
-declare module "core-js/library/fn/number/parse-int" {
-    var parseInt: typeof core.Number.parseInt;
-    export = parseInt;
-}
-declare module "core-js/library/fn/number/random" {
-    var random: typeof core.Number.random;
-    export = random;
-}
-declare module "core-js/library/fn/object" {
-    var Object: typeof core.Object;
-    export = Object;
-}
-declare module "core-js/library/fn/object/assign" {
-    var assign: typeof core.Object.assign;
-    export = assign;
-}
-declare module "core-js/library/fn/object/classof" {
-    var classof: typeof core.Object.classof;
-    export = classof;
-}
-declare module "core-js/library/fn/object/create" {
-    var create: typeof core.Object.create;
-    export = create;
-}
-declare module "core-js/library/fn/object/define" {
-    var define: typeof core.Object.define;
-    export = define;
-}
-declare module "core-js/library/fn/object/define-properties" {
-    var defineProperties: typeof core.Object.defineProperties;
-    export = defineProperties;
-}
-declare module "core-js/library/fn/object/define-property" {
-    var defineProperty: typeof core.Object.defineProperty;
-    export = defineProperty;
-}
-declare module "core-js/library/fn/object/entries" {
-    var entries: typeof core.Object.entries;
-    export = entries;
-}
-declare module "core-js/library/fn/object/freeze" {
-    var freeze: typeof core.Object.freeze;
-    export = freeze;
-}
-declare module "core-js/library/fn/object/get-own-property-descriptor" {
-    var getOwnPropertyDescriptor: typeof core.Object.getOwnPropertyDescriptor;
-    export = getOwnPropertyDescriptor;
-}
-declare module "core-js/library/fn/object/get-own-property-descriptors" {
-    var getOwnPropertyDescriptors: typeof core.Object.getOwnPropertyDescriptors;
-    export = getOwnPropertyDescriptors;
-}
-declare module "core-js/library/fn/object/get-own-property-names" {
-    var getOwnPropertyNames: typeof core.Object.getOwnPropertyNames;
-    export = getOwnPropertyNames;
-}
-declare module "core-js/library/fn/object/get-own-property-symbols" {
-    var getOwnPropertySymbols: typeof core.Object.getOwnPropertySymbols;
-    export = getOwnPropertySymbols;
-}
-declare module "core-js/library/fn/object/get-prototype-of" {
-    var getPrototypeOf: typeof core.Object.getPrototypeOf;
-    export = getPrototypeOf;
-}
-declare module "core-js/library/fn/object/is" {
-    var is: typeof core.Object.is;
-    export = is;
-}
-declare module "core-js/library/fn/object/is-extensible" {
-    var isExtensible: typeof core.Object.isExtensible;
-    export = isExtensible;
-}
-declare module "core-js/library/fn/object/is-frozen" {
-    var isFrozen: typeof core.Object.isFrozen;
-    export = isFrozen;
-}
-declare module "core-js/library/fn/object/is-object" {
-    var isObject: typeof core.Object.isObject;
-    export = isObject;
-}
-declare module "core-js/library/fn/object/is-sealed" {
-    var isSealed: typeof core.Object.isSealed;
-    export = isSealed;
-}
-declare module "core-js/library/fn/object/keys" {
-    var keys: typeof core.Object.keys;
-    export = keys;
-}
-declare module "core-js/library/fn/object/make" {
-    var make: typeof core.Object.make;
-    export = make;
-}
-declare module "core-js/library/fn/object/prevent-extensions" {
-    var preventExtensions: typeof core.Object.preventExtensions;
-    export = preventExtensions;
-}
-declare module "core-js/library/fn/object/seal" {
-    var seal: typeof core.Object.seal;
-    export = seal;
-}
-declare module "core-js/library/fn/object/set-prototype-of" {
-    var setPrototypeOf: typeof core.Object.setPrototypeOf;
-    export = setPrototypeOf;
-}
-declare module "core-js/library/fn/object/values" {
-    var values: typeof core.Object.values;
-    export = values;
-}
-declare module "core-js/library/fn/reflect" {
-    var Reflect: typeof core.Reflect;
-    export = Reflect;
-}
-declare module "core-js/library/fn/reflect/apply" {
-    var apply: typeof core.Reflect.apply;
-    export = apply;
-}
-declare module "core-js/library/fn/reflect/construct" {
-    var construct: typeof core.Reflect.construct;
-    export = construct;
-}
-declare module "core-js/library/fn/reflect/define-property" {
-    var defineProperty: typeof core.Reflect.defineProperty;
-    export = defineProperty;
-}
-declare module "core-js/library/fn/reflect/delete-property" {
-    var deleteProperty: typeof core.Reflect.deleteProperty;
-    export = deleteProperty;
-}
-declare module "core-js/library/fn/reflect/enumerate" {
-    var enumerate: typeof core.Reflect.enumerate;
-    export = enumerate;
-}
-declare module "core-js/library/fn/reflect/get" {
-    var get: typeof core.Reflect.get;
-    export = get;
-}
-declare module "core-js/library/fn/reflect/get-own-property-descriptor" {
-    var getOwnPropertyDescriptor: typeof core.Reflect.getOwnPropertyDescriptor;
-    export = getOwnPropertyDescriptor;
-}
-declare module "core-js/library/fn/reflect/get-prototype-of" {
-    var getPrototypeOf: typeof core.Reflect.getPrototypeOf;
-    export = getPrototypeOf;
-}
-declare module "core-js/library/fn/reflect/has" {
-    var has: typeof core.Reflect.has;
-    export = has;
-}
-declare module "core-js/library/fn/reflect/is-extensible" {
-    var isExtensible: typeof core.Reflect.isExtensible;
-    export = isExtensible;
-}
-declare module "core-js/library/fn/reflect/own-keys" {
-    var ownKeys: typeof core.Reflect.ownKeys;
-    export = ownKeys;
-}
-declare module "core-js/library/fn/reflect/prevent-extensions" {
-    var preventExtensions: typeof core.Reflect.preventExtensions;
-    export = preventExtensions;
-}
-declare module "core-js/library/fn/reflect/set" {
-    var set: typeof core.Reflect.set;
-    export = set;
-}
-declare module "core-js/library/fn/reflect/set-prototype-of" {
-    var setPrototypeOf: typeof core.Reflect.setPrototypeOf;
-    export = setPrototypeOf;
-}
-declare module "core-js/library/fn/regexp" {
-    var RegExp: typeof core.RegExp;
-    export = RegExp;
-}
-declare module "core-js/library/fn/regexp/escape" {
-    var escape: typeof core.RegExp.escape;
-    export = escape;
-}
-declare module "core-js/library/fn/string" {
-    var String: typeof core.String;
-    export = String;
-}
-declare module "core-js/library/fn/string/at" {
-    var at: typeof core.String.at;
-    export = at;
-}
-declare module "core-js/library/fn/string/code-point-at" {
-    var codePointAt: typeof core.String.codePointAt;
-    export = codePointAt;
-}
-declare module "core-js/library/fn/string/ends-with" {
-    var endsWith: typeof core.String.endsWith;
-    export = endsWith;
-}
-declare module "core-js/library/fn/string/escape-html" {
-    var escapeHTML: typeof core.String.escapeHTML;
-    export = escapeHTML;
-}
-declare module "core-js/library/fn/string/from-code-point" {
-    var fromCodePoint: typeof core.String.fromCodePoint;
-    export = fromCodePoint;
-}
-declare module "core-js/library/fn/string/includes" {
-    var includes: typeof core.String.includes;
-    export = includes;
-}
-declare module "core-js/library/fn/string/lpad" {
-    var lpad: typeof core.String.lpad;
-    export = lpad;
-}
-declare module "core-js/library/fn/string/raw" {
-    var raw: typeof core.String.raw;
-    export = raw;
-}
-declare module "core-js/library/fn/string/repeat" {
-    var repeat: typeof core.String.repeat;
-    export = repeat;
-}
-declare module "core-js/library/fn/string/rpad" {
-    var rpad: typeof core.String.rpad;
-    export = rpad;
-}
-declare module "core-js/library/fn/string/starts-with" {
-    var startsWith: typeof core.String.startsWith;
-    export = startsWith;
-}
-declare module "core-js/library/fn/string/unescape-html" {
-    var unescapeHTML: typeof core.String.unescapeHTML;
-    export = unescapeHTML;
-}
-declare module "core-js/library/fn/symbol" {
-    var Symbol: typeof core.Symbol;
-    export = Symbol;
-}
-declare module "core-js/library/fn/symbol/for" {
-    var _for: typeof core.Symbol.for;
-    export = _for;
-}
-declare module "core-js/library/fn/symbol/has-instance" {
-    var hasInstance: typeof core.Symbol.hasInstance;
-    export = hasInstance;
-}
-declare module "core-js/library/fn/symbol/is-concat-spreadable" {
-    var isConcatSpreadable: typeof core.Symbol.isConcatSpreadable;
-    export = isConcatSpreadable;
-}
-declare module "core-js/library/fn/symbol/iterator" {
-    var iterator: typeof core.Symbol.iterator;
-    export = iterator;
-}
-declare module "core-js/library/fn/symbol/key-for" {
-    var keyFor: typeof core.Symbol.keyFor;
-    export = keyFor;
-}
-declare module "core-js/library/fn/symbol/match" {
-    var match: typeof core.Symbol.match;
-    export = match;
-}
-declare module "core-js/library/fn/symbol/replace" {
-    var replace: typeof core.Symbol.replace;
-    export = replace;
-}
-declare module "core-js/library/fn/symbol/search" {
-    var search: typeof core.Symbol.search;
-    export = search;
-}
-declare module "core-js/library/fn/symbol/species" {
-    var species: typeof core.Symbol.species;
-    export = species;
-}
-declare module "core-js/library/fn/symbol/split" {
-    var split: typeof core.Symbol.split;
-    export = split;
-}
-declare module "core-js/library/fn/symbol/to-primitive" {
-    var toPrimitive: typeof core.Symbol.toPrimitive;
-    export = toPrimitive;
-}
-declare module "core-js/library/fn/symbol/to-string-tag" {
-    var toStringTag: typeof core.Symbol.toStringTag;
-    export = toStringTag;
-}
-declare module "core-js/library/fn/symbol/unscopables" {
-    var unscopables: typeof core.Symbol.unscopables;
-    export = unscopables;
-}
-declare module "core-js/library/es5" {
-    export = core;
-}
-declare module "core-js/library/es6" {
-    export = core;
-}
-declare module "core-js/library/es6/array" {
-    var Array: typeof core.Array;
-    export = Array;
-}
-declare module "core-js/library/es6/function" {
-    var Function: typeof core.Function;
-    export = Function;
-}
-declare module "core-js/library/es6/map" {
-    var Map: typeof core.Map;
-    export = Map;
-}
-declare module "core-js/library/es6/math" {
-    var Math: typeof core.Math;
-    export = Math;
-}
-declare module "core-js/library/es6/number" {
-    var Number: typeof core.Number;
-    export = Number;
-}
-declare module "core-js/library/es6/object" {
-    var Object: typeof core.Object;
-    export = Object;
-}
-declare module "core-js/library/es6/promise" {
-    var Promise: typeof core.Promise;
-    export = Promise;
-}
-declare module "core-js/library/es6/reflect" {
-    var Reflect: typeof core.Reflect;
-    export = Reflect;
-}
-declare module "core-js/library/es6/regexp" {
-    var RegExp: typeof core.RegExp;
-    export = RegExp;
-}
-declare module "core-js/library/es6/set" {
-    var Set: typeof core.Set;
-    export = Set;
-}
-declare module "core-js/library/es6/string" {
-    var String: typeof core.String;
-    export = String;
-}
-declare module "core-js/library/es6/symbol" {
-    var Symbol: typeof core.Symbol;
-    export = Symbol;
-}
-declare module "core-js/library/es6/weak-map" {
-    var WeakMap: typeof core.WeakMap;
-    export = WeakMap;
-}
-declare module "core-js/library/es6/weak-set" {
-    var WeakSet: typeof core.WeakSet;
-    export = WeakSet;
-}
-declare module "core-js/library/es7" {
-    export = core;
-}
-declare module "core-js/library/es7/array" {
-    var Array: typeof core.Array;
-    export = Array;
-}
-declare module "core-js/library/es7/map" {
-    var Map: typeof core.Map;
-    export = Map;
-}
-declare module "core-js/library/es7/object" {
-    var Object: typeof core.Object;
-    export = Object;
-}
-declare module "core-js/library/es7/regexp" {
-    var RegExp: typeof core.RegExp;
-    export = RegExp;
-}
-declare module "core-js/library/es7/set" {
-    var Set: typeof core.Set;
-    export = Set;
-}
-declare module "core-js/library/es7/string" {
-    var String: typeof core.String;
-    export = String;
-}
-declare module "core-js/library/js" {
-    export = core;
-}
-declare module "core-js/library/js/array" {
-    var Array: typeof core.Array;
-    export = Array;
-}
-declare module "core-js/library/web" {
-    export = core;
-}
-declare module "core-js/library/web/dom" {
-    export = core;
-}
-declare module "core-js/library/web/immediate" {
-    export = core;
-}
-declare module "core-js/library/web/timers" {
-    export = core;
-}
diff --git a/demo/Angular2_Demo/typings/globals/core-js/typings.json b/demo/Angular2_Demo/typings/globals/core-js/typings.json
deleted file mode 100644
index 1467bf2f6526ec1b1f7f8c84b035df1004758a5e..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings/globals/core-js/typings.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "resolution": "main",
-  "tree": {
-    "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/95e782233e8e203a0b9283c3a7031faee428a530/core-js/core-js.d.ts",
-    "raw": "registry:dt/core-js#0.0.0+20160602141332",
-    "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/95e782233e8e203a0b9283c3a7031faee428a530/core-js/core-js.d.ts"
-  }
-}
diff --git a/demo/Angular2_Demo/typings/globals/jasmine/index.d.ts b/demo/Angular2_Demo/typings/globals/jasmine/index.d.ts
deleted file mode 100644
index 31e2dd78f9f15a5bf7adf9b4a5d346420eebb484..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings/globals/jasmine/index.d.ts
+++ /dev/null
@@ -1,502 +0,0 @@
-// Generated by typings
-// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/c49913aa9ea419ea46c1c684e488cf2a10303b1a/jasmine/jasmine.d.ts
-declare function describe(description: string, specDefinitions: () => void): void;
-declare function fdescribe(description: string, specDefinitions: () => void): void;
-declare function xdescribe(description: string, specDefinitions: () => void): void;
-
-declare function it(expectation: string, assertion?: () => void, timeout?: number): void;
-declare function it(expectation: string, assertion?: (done: DoneFn) => void, timeout?: number): void;
-declare function fit(expectation: string, assertion?: () => void, timeout?: number): void;
-declare function fit(expectation: string, assertion?: (done: DoneFn) => void, timeout?: number): void;
-declare function xit(expectation: string, assertion?: () => void, timeout?: number): void;
-declare function xit(expectation: string, assertion?: (done: DoneFn) => void, timeout?: number): void;
-
-/** If you call the function pending anywhere in the spec body, no matter the expectations, the spec will be marked pending. */
-declare function pending(reason?: string): void;
-
-declare function beforeEach(action: () => void, timeout?: number): void;
-declare function beforeEach(action: (done: DoneFn) => void, timeout?: number): void;
-declare function afterEach(action: () => void, timeout?: number): void;
-declare function afterEach(action: (done: DoneFn) => void, timeout?: number): void;
-
-declare function beforeAll(action: () => void, timeout?: number): void;
-declare function beforeAll(action: (done: DoneFn) => void, timeout?: number): void;
-declare function afterAll(action: () => void, timeout?: number): void;
-declare function afterAll(action: (done: DoneFn) => void, timeout?: number): void;
-
-declare function expect(spy: Function): jasmine.Matchers;
-declare function expect(actual: any): jasmine.Matchers;
-
-declare function fail(e?: any): void;
-/** Action method that should be called when the async work is complete */
-interface DoneFn extends Function {
-    (): void;
-
-    /** fails the spec and indicates that it has completed. If the message is an Error, Error.message is used */
-    fail: (message?: Error|string) => void;
-}
-
-declare function spyOn(object: any, method: string): jasmine.Spy;
-
-declare function runs(asyncMethod: Function): void;
-declare function waitsFor(latchMethod: () => boolean, failureMessage?: string, timeout?: number): void;
-declare function waits(timeout?: number): void;
-
-declare namespace jasmine {
-
-    var clock: () => Clock;
-
-    function any(aclass: any): Any;
-    function anything(): Any;
-    function arrayContaining(sample: any[]): ArrayContaining;
-    function objectContaining(sample: any): ObjectContaining;
-    function createSpy(name: string, originalFn?: Function): Spy;
-    function createSpyObj(baseName: string, methodNames: any[]): any;
-    function createSpyObj<T>(baseName: string, methodNames: any[]): T;
-    function pp(value: any): string;
-    function getEnv(): Env;
-    function addCustomEqualityTester(equalityTester: CustomEqualityTester): void;
-    function addMatchers(matchers: CustomMatcherFactories): void;
-    function stringMatching(str: string): Any;
-    function stringMatching(str: RegExp): Any;
-
-    interface Any {
-
-        new (expectedClass: any): any;
-
-        jasmineMatches(other: any): boolean;
-        jasmineToString(): string;
-    }
-
-    // taken from TypeScript lib.core.es6.d.ts, applicable to CustomMatchers.contains()
-    interface ArrayLike<T> {
-        length: number;
-        [n: number]: T;
-    }
-
-    interface ArrayContaining {
-        new (sample: any[]): any;
-
-        asymmetricMatch(other: any): boolean;
-        jasmineToString(): string;
-    }
-
-    interface ObjectContaining {
-        new (sample: any): any;
-
-        jasmineMatches(other: any, mismatchKeys: any[], mismatchValues: any[]): boolean;
-        jasmineToString(): string;
-    }
-
-    interface Block {
-
-        new (env: Env, func: SpecFunction, spec: Spec): any;
-
-        execute(onComplete: () => void): void;
-    }
-
-    interface WaitsBlock extends Block {
-        new (env: Env, timeout: number, spec: Spec): any;
-    }
-
-    interface WaitsForBlock extends Block {
-        new (env: Env, timeout: number, latchFunction: SpecFunction, message: string, spec: Spec): any;
-    }
-
-    interface Clock {
-        install(): void;
-        uninstall(): void;
-        /** Calls to any registered callback are triggered when the clock is ticked forward via the jasmine.clock().tick function, which takes a number of milliseconds. */
-        tick(ms: number): void;
-        mockDate(date?: Date): void;
-    }
-
-    interface CustomEqualityTester {
-        (first: any, second: any): boolean;
-    }
-
-    interface CustomMatcher {
-        compare<T>(actual: T, expected: T): CustomMatcherResult;
-        compare(actual: any, expected: any): CustomMatcherResult;
-    }
-
-    interface CustomMatcherFactory {
-        (util: MatchersUtil, customEqualityTesters: Array<CustomEqualityTester>): CustomMatcher;
-    }
-
-    interface CustomMatcherFactories {
-        [index: string]: CustomMatcherFactory;
-    }
-
-    interface CustomMatcherResult {
-        pass: boolean;
-        message?: string;
-    }
-
-    interface MatchersUtil {
-        equals(a: any, b: any, customTesters?: Array<CustomEqualityTester>): boolean;
-        contains<T>(haystack: ArrayLike<T> | string, needle: any, customTesters?: Array<CustomEqualityTester>): boolean;
-        buildFailureMessage(matcherName: string, isNot: boolean, actual: any, ...expected: Array<any>): string;
-    }
-
-    interface Env {
-        setTimeout: any;
-        clearTimeout: void;
-        setInterval: any;
-        clearInterval: void;
-        updateInterval: number;
-
-        currentSpec: Spec;
-
-        matchersClass: Matchers;
-
-        version(): any;
-        versionString(): string;
-        nextSpecId(): number;
-        addReporter(reporter: Reporter): void;
-        execute(): void;
-        describe(description: string, specDefinitions: () => void): Suite;
-        // ddescribe(description: string, specDefinitions: () => void): Suite; Not a part of jasmine. Angular team adds these
-        beforeEach(beforeEachFunction: () => void): void;
-        beforeAll(beforeAllFunction: () => void): void;
-        currentRunner(): Runner;
-        afterEach(afterEachFunction: () => void): void;
-        afterAll(afterAllFunction: () => void): void;
-        xdescribe(desc: string, specDefinitions: () => void): XSuite;
-        it(description: string, func: () => void): Spec;
-        // iit(description: string, func: () => void): Spec; Not a part of jasmine. Angular team adds these
-        xit(desc: string, func: () => void): XSpec;
-        compareRegExps_(a: RegExp, b: RegExp, mismatchKeys: string[], mismatchValues: string[]): boolean;
-        compareObjects_(a: any, b: any, mismatchKeys: string[], mismatchValues: string[]): boolean;
-        equals_(a: any, b: any, mismatchKeys: string[], mismatchValues: string[]): boolean;
-        contains_(haystack: any, needle: any): boolean;
-        addCustomEqualityTester(equalityTester: CustomEqualityTester): void;
-        addMatchers(matchers: CustomMatcherFactories): void;
-        specFilter(spec: Spec): boolean;
-        throwOnExpectationFailure(value: boolean): void;
-    }
-
-    interface FakeTimer {
-
-        new (): any;
-
-        reset(): void;
-        tick(millis: number): void;
-        runFunctionsWithinRange(oldMillis: number, nowMillis: number): void;
-        scheduleFunction(timeoutKey: any, funcToCall: () => void, millis: number, recurring: boolean): void;
-    }
-
-    interface HtmlReporter {
-        new (): any;
-    }
-
-    interface HtmlSpecFilter {
-        new (): any;
-    }
-
-    interface Result {
-        type: string;
-    }
-
-    interface NestedResults extends Result {
-        description: string;
-
-        totalCount: number;
-        passedCount: number;
-        failedCount: number;
-
-        skipped: boolean;
-
-        rollupCounts(result: NestedResults): void;
-        log(values: any): void;
-        getItems(): Result[];
-        addResult(result: Result): void;
-        passed(): boolean;
-    }
-
-    interface MessageResult extends Result  {
-        values: any;
-        trace: Trace;
-    }
-
-    interface ExpectationResult extends Result  {
-        matcherName: string;
-        passed(): boolean;
-        expected: any;
-        actual: any;
-        message: string;
-        trace: Trace;
-    }
-
-    interface Trace {
-        name: string;
-        message: string;
-        stack: any;
-    }
-
-    interface PrettyPrinter {
-
-        new (): any;
-
-        format(value: any): void;
-        iterateObject(obj: any, fn: (property: string, isGetter: boolean) => void): void;
-        emitScalar(value: any): void;
-        emitString(value: string): void;
-        emitArray(array: any[]): void;
-        emitObject(obj: any): void;
-        append(value: any): void;
-    }
-
-    interface StringPrettyPrinter extends PrettyPrinter {
-    }
-
-    interface Queue {
-
-        new (env: any): any;
-
-        env: Env;
-        ensured: boolean[];
-        blocks: Block[];
-        running: boolean;
-        index: number;
-        offset: number;
-        abort: boolean;
-
-        addBefore(block: Block, ensure?: boolean): void;
-        add(block: any, ensure?: boolean): void;
-        insertNext(block: any, ensure?: boolean): void;
-        start(onComplete?: () => void): void;
-        isRunning(): boolean;
-        next_(): void;
-        results(): NestedResults;
-    }
-
-    interface Matchers {
-
-        new (env: Env, actual: any, spec: Env, isNot?: boolean): any;
-
-        env: Env;
-        actual: any;
-        spec: Env;
-        isNot?: boolean;
-        message(): any;
-
-        toBe(expected: any, expectationFailOutput?: any): boolean;
-        toEqual(expected: any, expectationFailOutput?: any): boolean;
-        toMatch(expected: string | RegExp, expectationFailOutput?: any): boolean;
-        toBeDefined(expectationFailOutput?: any): boolean;
-        toBeUndefined(expectationFailOutput?: any): boolean;
-        toBeNull(expectationFailOutput?: any): boolean;
-        toBeNaN(): boolean;
-        toBeTruthy(expectationFailOutput?: any): boolean;
-        toBeFalsy(expectationFailOutput?: any): boolean;
-        toHaveBeenCalled(): boolean;
-        toHaveBeenCalledWith(...params: any[]): boolean;
-        toHaveBeenCalledTimes(expected: number): boolean;
-        toContain(expected: any, expectationFailOutput?: any): boolean;
-        toBeLessThan(expected: number, expectationFailOutput?: any): boolean;
-        toBeGreaterThan(expected: number, expectationFailOutput?: any): boolean;
-        toBeCloseTo(expected: number, precision?: any, expectationFailOutput?: any): boolean;
-        toThrow(expected?: any): boolean;
-        toThrowError(message?: string | RegExp): boolean;
-        toThrowError(expected?: new (...args: any[]) => Error, message?: string | RegExp): boolean;
-        not: Matchers;
-
-        Any: Any;
-    }
-
-    interface Reporter {
-        reportRunnerStarting(runner: Runner): void;
-        reportRunnerResults(runner: Runner): void;
-        reportSuiteResults(suite: Suite): void;
-        reportSpecStarting(spec: Spec): void;
-        reportSpecResults(spec: Spec): void;
-        log(str: string): void;
-    }
-
-    interface MultiReporter extends Reporter {
-        addReporter(reporter: Reporter): void;
-    }
-
-    interface Runner {
-
-        new (env: Env): any;
-
-        execute(): void;
-        beforeEach(beforeEachFunction: SpecFunction): void;
-        afterEach(afterEachFunction: SpecFunction): void;
-        beforeAll(beforeAllFunction: SpecFunction): void;
-        afterAll(afterAllFunction: SpecFunction): void;
-        finishCallback(): void;
-        addSuite(suite: Suite): void;
-        add(block: Block): void;
-        specs(): Spec[];
-        suites(): Suite[];
-        topLevelSuites(): Suite[];
-        results(): NestedResults;
-    }
-
-    interface SpecFunction {
-        (spec?: Spec): void;
-    }
-
-    interface SuiteOrSpec {
-        id: number;
-        env: Env;
-        description: string;
-        queue: Queue;
-    }
-
-    interface Spec extends SuiteOrSpec {
-
-        new (env: Env, suite: Suite, description: string): any;
-
-        suite: Suite;
-
-        afterCallbacks: SpecFunction[];
-        spies_: Spy[];
-
-        results_: NestedResults;
-        matchersClass: Matchers;
-
-        getFullName(): string;
-        results(): NestedResults;
-        log(arguments: any): any;
-        runs(func: SpecFunction): Spec;
-        addToQueue(block: Block): void;
-        addMatcherResult(result: Result): void;
-        expect(actual: any): any;
-        waits(timeout: number): Spec;
-        waitsFor(latchFunction: SpecFunction, timeoutMessage?: string, timeout?: number): Spec;
-        fail(e?: any): void;
-        getMatchersClass_(): Matchers;
-        addMatchers(matchersPrototype: CustomMatcherFactories): void;
-        finishCallback(): void;
-        finish(onComplete?: () => void): void;
-        after(doAfter: SpecFunction): void;
-        execute(onComplete?: () => void): any;
-        addBeforesAndAftersToQueue(): void;
-        explodes(): void;
-        spyOn(obj: any, methodName: string, ignoreMethodDoesntExist: boolean): Spy;
-        removeAllSpies(): void;
-    }
-
-    interface XSpec {
-        id: number;
-        runs(): void;
-    }
-
-    interface Suite extends SuiteOrSpec {
-
-        new (env: Env, description: string, specDefinitions: () => void, parentSuite: Suite): any;
-
-        parentSuite: Suite;
-
-        getFullName(): string;
-        finish(onComplete?: () => void): void;
-        beforeEach(beforeEachFunction: SpecFunction): void;
-        afterEach(afterEachFunction: SpecFunction): void;
-        beforeAll(beforeAllFunction: SpecFunction): void;
-        afterAll(afterAllFunction: SpecFunction): void;
-        results(): NestedResults;
-        add(suiteOrSpec: SuiteOrSpec): void;
-        specs(): Spec[];
-        suites(): Suite[];
-        children(): any[];
-        execute(onComplete?: () => void): void;
-    }
-
-    interface XSuite {
-        execute(): void;
-    }
-
-    interface Spy {
-        (...params: any[]): any;
-
-        identity: string;
-        and: SpyAnd;
-        calls: Calls;
-        mostRecentCall: { args: any[]; };
-        argsForCall: any[];
-        wasCalled: boolean;
-    }
-
-    interface SpyAnd {
-        /** By chaining the spy with and.callThrough, the spy will still track all calls to it but in addition it will delegate to the actual implementation. */
-        callThrough(): Spy;
-        /** By chaining the spy with and.returnValue, all calls to the function will return a specific value. */
-        returnValue(val: any): Spy;
-        /** By chaining the spy with and.returnValues, all calls to the function will return specific values in order until it reaches the end of the return values list. */
-        returnValues(...values: any[]): Spy;
-        /** By chaining the spy with and.callFake, all calls to the spy will delegate to the supplied function. */
-        callFake(fn: Function): Spy;
-        /** By chaining the spy with and.throwError, all calls to the spy will throw the specified value. */
-        throwError(msg: string): Spy;
-        /** When a calling strategy is used for a spy, the original stubbing behavior can be returned at any time with and.stub. */
-        stub(): Spy;
-    }
-
-    interface Calls {
-        /** By chaining the spy with calls.any(), will return false if the spy has not been called at all, and then true once at least one call happens. **/
-        any(): boolean;
-        /** By chaining the spy with calls.count(), will return the number of times the spy was called **/
-        count(): number;
-        /** By chaining the spy with calls.argsFor(), will return the arguments passed to call number index **/
-        argsFor(index: number): any[];
-        /** By chaining the spy with calls.allArgs(), will return the arguments to all calls **/
-        allArgs(): any[];
-        /** By chaining the spy with calls.all(), will return the context (the this) and arguments passed all calls **/
-        all(): CallInfo[];
-        /** By chaining the spy with calls.mostRecent(), will return the context (the this) and arguments for the most recent call **/
-        mostRecent(): CallInfo;
-        /** By chaining the spy with calls.first(), will return the context (the this) and arguments for the first call **/
-        first(): CallInfo;
-        /** By chaining the spy with calls.reset(), will clears all tracking for a spy **/
-        reset(): void;
-    }
-
-    interface CallInfo {
-        /** The context (the this) for the call */
-        object: any;
-        /** All arguments passed to the call */
-        args: any[];
-        /** The return value of the call */
-        returnValue: any;
-    }
-
-    interface Util {
-        inherit(childClass: Function, parentClass: Function): any;
-        formatException(e: any): any;
-        htmlEscape(str: string): string;
-        argsToArray(args: any): any;
-        extend(destination: any, source: any): any;
-    }
-
-    interface JsApiReporter extends Reporter {
-
-        started: boolean;
-        finished: boolean;
-        result: any;
-        messages: any;
-
-        new (): any;
-
-        suites(): Suite[];
-        summarize_(suiteOrSpec: SuiteOrSpec): any;
-        results(): any;
-        resultsForSpec(specId: any): any;
-        log(str: any): any;
-        resultsForSpecs(specIds: any): any;
-        summarizeResult_(result: any): any;
-    }
-
-    interface Jasmine {
-        Spec: Spec;
-        clock: Clock;
-        util: Util;
-    }
-
-    export var HtmlReporter: HtmlReporter;
-    export var HtmlSpecFilter: HtmlSpecFilter;
-    export var DEFAULT_TIMEOUT_INTERVAL: number;
-}
diff --git a/demo/Angular2_Demo/typings/globals/jasmine/typings.json b/demo/Angular2_Demo/typings/globals/jasmine/typings.json
deleted file mode 100644
index 3fb336cf1c19adbb2ffaa51afa43f2dc140b1386..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings/globals/jasmine/typings.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "resolution": "main",
-  "tree": {
-    "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/c49913aa9ea419ea46c1c684e488cf2a10303b1a/jasmine/jasmine.d.ts",
-    "raw": "registry:dt/jasmine#2.2.0+20160621224255",
-    "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/c49913aa9ea419ea46c1c684e488cf2a10303b1a/jasmine/jasmine.d.ts"
-  }
-}
diff --git a/demo/Angular2_Demo/typings/globals/node/index.d.ts b/demo/Angular2_Demo/typings/globals/node/index.d.ts
deleted file mode 100644
index bf4b8ec4a6dcefe9a8c2ef2044f7ef4373eb6ea9..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings/globals/node/index.d.ts
+++ /dev/null
@@ -1,2602 +0,0 @@
-// Generated by typings
-// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/f1fe2148037bbd924235f49065ae5286b33a4ae4/node/node.d.ts
-interface Error {
-    stack?: string;
-}
-
-interface ErrorConstructor {
-    captureStackTrace(targetObject: Object, constructorOpt?: Function): void;
-    stackTraceLimit: number;
-}
-
-// compat for TypeScript 1.8
-// if you use with --target es3 or --target es5 and use below definitions,
-// use the lib.es6.d.ts that is bundled with TypeScript 1.8.
-interface MapConstructor { }
-interface WeakMapConstructor { }
-interface SetConstructor { }
-interface WeakSetConstructor { }
-
-/************************************************
-*                                               *
-*                   GLOBAL                      *
-*                                               *
-************************************************/
-declare var process: NodeJS.Process;
-declare var global: NodeJS.Global;
-
-declare var __filename: string;
-declare var __dirname: string;
-
-declare function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
-declare function clearTimeout(timeoutId: NodeJS.Timer): void;
-declare function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
-declare function clearInterval(intervalId: NodeJS.Timer): void;
-declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any;
-declare function clearImmediate(immediateId: any): void;
-
-interface NodeRequireFunction {
-    (id: string): any;
-}
-
-interface NodeRequire extends NodeRequireFunction {
-    resolve(id: string): string;
-    cache: any;
-    extensions: any;
-    main: any;
-}
-
-declare var require: NodeRequire;
-
-interface NodeModule {
-    exports: any;
-    require: NodeRequireFunction;
-    id: string;
-    filename: string;
-    loaded: boolean;
-    parent: any;
-    children: any[];
-}
-
-declare var module: NodeModule;
-
-// Same as module.exports
-declare var exports: any;
-declare var SlowBuffer: {
-    new (str: string, encoding?: string): Buffer;
-    new (size: number): Buffer;
-    new (size: Uint8Array): Buffer;
-    new (array: any[]): Buffer;
-    prototype: Buffer;
-    isBuffer(obj: any): boolean;
-    byteLength(string: string, encoding?: string): number;
-    concat(list: Buffer[], totalLength?: number): Buffer;
-};
-
-
-// Buffer class
-type BufferEncoding = "ascii" | "utf8" | "utf16le" | "ucs2" | "binary" | "hex";
-interface Buffer extends NodeBuffer { }
-
-/**
- * Raw data is stored in instances of the Buffer class.
- * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap.  A Buffer cannot be resized.
- * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex'
- */
-declare var Buffer: {
-    /**
-     * Allocates a new buffer containing the given {str}.
-     *
-     * @param str String to store in buffer.
-     * @param encoding encoding to use, optional.  Default is 'utf8'
-     */
-    new (str: string, encoding?: string): Buffer;
-    /**
-     * Allocates a new buffer of {size} octets.
-     *
-     * @param size count of octets to allocate.
-     */
-    new (size: number): Buffer;
-    /**
-     * Allocates a new buffer containing the given {array} of octets.
-     *
-     * @param array The octets to store.
-     */
-    new (array: Uint8Array): Buffer;
-    /**
-     * Produces a Buffer backed by the same allocated memory as
-     * the given {ArrayBuffer}.
-     *
-     *
-     * @param arrayBuffer The ArrayBuffer with which to share memory.
-     */
-    new (arrayBuffer: ArrayBuffer): Buffer;
-    /**
-     * Allocates a new buffer containing the given {array} of octets.
-     *
-     * @param array The octets to store.
-     */
-    new (array: any[]): Buffer;
-    /**
-     * Copies the passed {buffer} data onto a new {Buffer} instance.
-     *
-     * @param buffer The buffer to copy.
-     */
-    new (buffer: Buffer): Buffer;
-    prototype: Buffer;
-    /**
-     * Allocates a new Buffer using an {array} of octets.
-     *
-     * @param array
-     */
-    from(array: any[]): Buffer;
-    /**
-     * When passed a reference to the .buffer property of a TypedArray instance,
-     * the newly created Buffer will share the same allocated memory as the TypedArray.
-     * The optional {byteOffset} and {length} arguments specify a memory range
-     * within the {arrayBuffer} that will be shared by the Buffer.
-     *
-     * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer()
-     * @param byteOffset
-     * @param length
-     */
-    from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer;
-    /**
-     * Copies the passed {buffer} data onto a new Buffer instance.
-     *
-     * @param buffer
-     */
-    from(buffer: Buffer): Buffer;
-    /**
-     * Creates a new Buffer containing the given JavaScript string {str}.
-     * If provided, the {encoding} parameter identifies the character encoding.
-     * If not provided, {encoding} defaults to 'utf8'.
-     *
-     * @param str
-     */
-    from(str: string, encoding?: string): Buffer;
-    /**
-     * Returns true if {obj} is a Buffer
-     *
-     * @param obj object to test.
-     */
-    isBuffer(obj: any): obj is Buffer;
-    /**
-     * Returns true if {encoding} is a valid encoding argument.
-     * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex'
-     *
-     * @param encoding string to test.
-     */
-    isEncoding(encoding: string): boolean;
-    /**
-     * Gives the actual byte length of a string. encoding defaults to 'utf8'.
-     * This is not the same as String.prototype.length since that returns the number of characters in a string.
-     *
-     * @param string string to test.
-     * @param encoding encoding used to evaluate (defaults to 'utf8')
-     */
-    byteLength(string: string, encoding?: string): number;
-    /**
-     * Returns a buffer which is the result of concatenating all the buffers in the list together.
-     *
-     * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer.
-     * If the list has exactly one item, then the first item of the list is returned.
-     * If the list has more than one item, then a new Buffer is created.
-     *
-     * @param list An array of Buffer objects to concatenate
-     * @param totalLength Total length of the buffers when concatenated.
-     *   If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly.
-     */
-    concat(list: Buffer[], totalLength?: number): Buffer;
-    /**
-     * The same as buf1.compare(buf2).
-     */
-    compare(buf1: Buffer, buf2: Buffer): number;
-    /**
-     * Allocates a new buffer of {size} octets.
-     *
-     * @param size count of octets to allocate.
-     * @param fill if specified, buffer will be initialized by calling buf.fill(fill).
-     *    If parameter is omitted, buffer will be filled with zeros.
-     * @param encoding encoding used for call to buf.fill while initalizing
-     */
-    alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer;
-    /**
-     * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents
-     * of the newly created Buffer are unknown and may contain sensitive data.
-     *
-     * @param size count of octets to allocate
-     */
-    allocUnsafe(size: number): Buffer;
-    /**
-     * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents
-     * of the newly created Buffer are unknown and may contain sensitive data.
-     *
-     * @param size count of octets to allocate
-     */
-    allocUnsafeSlow(size: number): Buffer;
-};
-
-/************************************************
-*                                               *
-*               GLOBAL INTERFACES               *
-*                                               *
-************************************************/
-declare namespace NodeJS {
-    export interface ErrnoException extends Error {
-        errno?: number;
-        code?: string;
-        path?: string;
-        syscall?: string;
-        stack?: string;
-    }
-
-    export interface EventEmitter {
-        addListener(event: string, listener: Function): this;
-        on(event: string, listener: Function): this;
-        once(event: string, listener: Function): this;
-        removeListener(event: string, listener: Function): this;
-        removeAllListeners(event?: string): this;
-        setMaxListeners(n: number): this;
-        getMaxListeners(): number;
-        listeners(event: string): Function[];
-        emit(event: string, ...args: any[]): boolean;
-        listenerCount(type: string): number;
-    }
-
-    export interface ReadableStream extends EventEmitter {
-        readable: boolean;
-        read(size?: number): string | Buffer;
-        setEncoding(encoding: string): void;
-        pause(): void;
-        resume(): void;
-        pipe<T extends WritableStream>(destination: T, options?: { end?: boolean; }): T;
-        unpipe<T extends WritableStream>(destination?: T): void;
-        unshift(chunk: string): void;
-        unshift(chunk: Buffer): void;
-        wrap(oldStream: ReadableStream): ReadableStream;
-    }
-
-    export interface WritableStream extends EventEmitter {
-        writable: boolean;
-        write(buffer: Buffer | string, cb?: Function): boolean;
-        write(str: string, encoding?: string, cb?: Function): boolean;
-        end(): void;
-        end(buffer: Buffer, cb?: Function): void;
-        end(str: string, cb?: Function): void;
-        end(str: string, encoding?: string, cb?: Function): void;
-    }
-
-    export interface ReadWriteStream extends ReadableStream, WritableStream { }
-
-    export interface Events extends EventEmitter { }
-
-    export interface Domain extends Events {
-        run(fn: Function): void;
-        add(emitter: Events): void;
-        remove(emitter: Events): void;
-        bind(cb: (err: Error, data: any) => any): any;
-        intercept(cb: (data: any) => any): any;
-        dispose(): void;
-
-        addListener(event: string, listener: Function): this;
-        on(event: string, listener: Function): this;
-        once(event: string, listener: Function): this;
-        removeListener(event: string, listener: Function): this;
-        removeAllListeners(event?: string): this;
-    }
-
-    export interface MemoryUsage {
-        rss: number;
-        heapTotal: number;
-        heapUsed: number;
-    }
-
-    export interface ProcessVersions {
-        http_parser: string;
-        node: string;
-        v8: string;
-        ares: string;
-        uv: string;
-        zlib: string;
-        modules: string;
-        openssl: string;
-    }
-
-    export interface Process extends EventEmitter {
-        stdout: WritableStream;
-        stderr: WritableStream;
-        stdin: ReadableStream;
-        argv: string[];
-        execArgv: string[];
-        execPath: string;
-        abort(): void;
-        chdir(directory: string): void;
-        cwd(): string;
-        env: any;
-        exit(code?: number): void;
-        exitCode: number;
-        getgid(): number;
-        setgid(id: number): void;
-        setgid(id: string): void;
-        getuid(): number;
-        setuid(id: number): void;
-        setuid(id: string): void;
-        version: string;
-        versions: ProcessVersions;
-        config: {
-            target_defaults: {
-                cflags: any[];
-                default_configuration: string;
-                defines: string[];
-                include_dirs: string[];
-                libraries: string[];
-            };
-            variables: {
-                clang: number;
-                host_arch: string;
-                node_install_npm: boolean;
-                node_install_waf: boolean;
-                node_prefix: string;
-                node_shared_openssl: boolean;
-                node_shared_v8: boolean;
-                node_shared_zlib: boolean;
-                node_use_dtrace: boolean;
-                node_use_etw: boolean;
-                node_use_openssl: boolean;
-                target_arch: string;
-                v8_no_strict_aliasing: number;
-                v8_use_snapshot: boolean;
-                visibility: string;
-            };
-        };
-        kill(pid: number, signal?: string | number): void;
-        pid: number;
-        title: string;
-        arch: string;
-        platform: string;
-        memoryUsage(): MemoryUsage;
-        nextTick(callback: Function): void;
-        umask(mask?: number): number;
-        uptime(): number;
-        hrtime(time?: number[]): number[];
-        domain: Domain;
-
-        // Worker
-        send?(message: any, sendHandle?: any): void;
-        disconnect(): void;
-        connected: boolean;
-    }
-
-    export interface Global {
-        Array: typeof Array;
-        ArrayBuffer: typeof ArrayBuffer;
-        Boolean: typeof Boolean;
-        Buffer: typeof Buffer;
-        DataView: typeof DataView;
-        Date: typeof Date;
-        Error: typeof Error;
-        EvalError: typeof EvalError;
-        Float32Array: typeof Float32Array;
-        Float64Array: typeof Float64Array;
-        Function: typeof Function;
-        GLOBAL: Global;
-        Infinity: typeof Infinity;
-        Int16Array: typeof Int16Array;
-        Int32Array: typeof Int32Array;
-        Int8Array: typeof Int8Array;
-        Intl: typeof Intl;
-        JSON: typeof JSON;
-        Map: MapConstructor;
-        Math: typeof Math;
-        NaN: typeof NaN;
-        Number: typeof Number;
-        Object: typeof Object;
-        Promise: Function;
-        RangeError: typeof RangeError;
-        ReferenceError: typeof ReferenceError;
-        RegExp: typeof RegExp;
-        Set: SetConstructor;
-        String: typeof String;
-        Symbol: Function;
-        SyntaxError: typeof SyntaxError;
-        TypeError: typeof TypeError;
-        URIError: typeof URIError;
-        Uint16Array: typeof Uint16Array;
-        Uint32Array: typeof Uint32Array;
-        Uint8Array: typeof Uint8Array;
-        Uint8ClampedArray: Function;
-        WeakMap: WeakMapConstructor;
-        WeakSet: WeakSetConstructor;
-        clearImmediate: (immediateId: any) => void;
-        clearInterval: (intervalId: NodeJS.Timer) => void;
-        clearTimeout: (timeoutId: NodeJS.Timer) => void;
-        console: typeof console;
-        decodeURI: typeof decodeURI;
-        decodeURIComponent: typeof decodeURIComponent;
-        encodeURI: typeof encodeURI;
-        encodeURIComponent: typeof encodeURIComponent;
-        escape: (str: string) => string;
-        eval: typeof eval;
-        global: Global;
-        isFinite: typeof isFinite;
-        isNaN: typeof isNaN;
-        parseFloat: typeof parseFloat;
-        parseInt: typeof parseInt;
-        process: Process;
-        root: Global;
-        setImmediate: (callback: (...args: any[]) => void, ...args: any[]) => any;
-        setInterval: (callback: (...args: any[]) => void, ms: number, ...args: any[]) => NodeJS.Timer;
-        setTimeout: (callback: (...args: any[]) => void, ms: number, ...args: any[]) => NodeJS.Timer;
-        undefined: typeof undefined;
-        unescape: (str: string) => string;
-        gc: () => void;
-        v8debug?: any;
-    }
-
-    export interface Timer {
-        ref(): void;
-        unref(): void;
-    }
-}
-
-/**
- * @deprecated
- */
-interface NodeBuffer extends Uint8Array {
-    write(string: string, offset?: number, length?: number, encoding?: string): number;
-    toString(encoding?: string, start?: number, end?: number): string;
-    toJSON(): any;
-    equals(otherBuffer: Buffer): boolean;
-    compare(otherBuffer: Buffer): number;
-    copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
-    slice(start?: number, end?: number): Buffer;
-    writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
-    writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
-    writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
-    writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
-    readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
-    readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
-    readIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
-    readIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
-    readUInt8(offset: number, noAssert?: boolean): number;
-    readUInt16LE(offset: number, noAssert?: boolean): number;
-    readUInt16BE(offset: number, noAssert?: boolean): number;
-    readUInt32LE(offset: number, noAssert?: boolean): number;
-    readUInt32BE(offset: number, noAssert?: boolean): number;
-    readInt8(offset: number, noAssert?: boolean): number;
-    readInt16LE(offset: number, noAssert?: boolean): number;
-    readInt16BE(offset: number, noAssert?: boolean): number;
-    readInt32LE(offset: number, noAssert?: boolean): number;
-    readInt32BE(offset: number, noAssert?: boolean): number;
-    readFloatLE(offset: number, noAssert?: boolean): number;
-    readFloatBE(offset: number, noAssert?: boolean): number;
-    readDoubleLE(offset: number, noAssert?: boolean): number;
-    readDoubleBE(offset: number, noAssert?: boolean): number;
-    writeUInt8(value: number, offset: number, noAssert?: boolean): number;
-    writeUInt16LE(value: number, offset: number, noAssert?: boolean): number;
-    writeUInt16BE(value: number, offset: number, noAssert?: boolean): number;
-    writeUInt32LE(value: number, offset: number, noAssert?: boolean): number;
-    writeUInt32BE(value: number, offset: number, noAssert?: boolean): number;
-    writeInt8(value: number, offset: number, noAssert?: boolean): number;
-    writeInt16LE(value: number, offset: number, noAssert?: boolean): number;
-    writeInt16BE(value: number, offset: number, noAssert?: boolean): number;
-    writeInt32LE(value: number, offset: number, noAssert?: boolean): number;
-    writeInt32BE(value: number, offset: number, noAssert?: boolean): number;
-    writeFloatLE(value: number, offset: number, noAssert?: boolean): number;
-    writeFloatBE(value: number, offset: number, noAssert?: boolean): number;
-    writeDoubleLE(value: number, offset: number, noAssert?: boolean): number;
-    writeDoubleBE(value: number, offset: number, noAssert?: boolean): number;
-    fill(value: any, offset?: number, end?: number): this;
-    // TODO: encoding param
-    indexOf(value: string | number | Buffer, byteOffset?: number): number;
-    // TODO: entries
-    // TODO: includes
-    // TODO: keys
-    // TODO: values
-}
-
-/************************************************
-*                                               *
-*                   MODULES                     *
-*                                               *
-************************************************/
-declare module "buffer" {
-    export var INSPECT_MAX_BYTES: number;
-    var BuffType: typeof Buffer;
-    var SlowBuffType: typeof SlowBuffer;
-    export { BuffType as Buffer, SlowBuffType as SlowBuffer };
-}
-
-declare module "querystring" {
-    export interface StringifyOptions {
-        encodeURIComponent?: Function;
-    }
-
-    export interface ParseOptions {
-        maxKeys?: number;
-        decodeURIComponent?: Function;
-    }
-
-    export function stringify<T>(obj: T, sep?: string, eq?: string, options?: StringifyOptions): string;
-    export function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): any;
-    export function parse<T extends {}>(str: string, sep?: string, eq?: string, options?: ParseOptions): T;
-    export function escape(str: string): string;
-    export function unescape(str: string): string;
-}
-
-declare module "events" {
-    export class EventEmitter implements NodeJS.EventEmitter {
-        static EventEmitter: EventEmitter;
-        static listenerCount(emitter: EventEmitter, event: string): number; // deprecated
-        static defaultMaxListeners: number;
-
-        addListener(event: string, listener: Function): this;
-        on(event: string, listener: Function): this;
-        once(event: string, listener: Function): this;
-        prependListener(event: string, listener: Function): this;
-        prependOnceListener(event: string, listener: Function): this;
-        removeListener(event: string, listener: Function): this;
-        removeAllListeners(event?: string): this;
-        setMaxListeners(n: number): this;
-        getMaxListeners(): number;
-        listeners(event: string): Function[];
-        emit(event: string, ...args: any[]): boolean;
-        eventNames(): string[];
-        listenerCount(type: string): number;
-    }
-}
-
-declare module "http" {
-    import * as events from "events";
-    import * as net from "net";
-    import * as stream from "stream";
-
-    export interface RequestOptions {
-        protocol?: string;
-        host?: string;
-        hostname?: string;
-        family?: number;
-        port?: number;
-        localAddress?: string;
-        socketPath?: string;
-        method?: string;
-        path?: string;
-        headers?: { [key: string]: any };
-        auth?: string;
-        agent?: Agent | boolean;
-    }
-
-    export interface Server extends events.EventEmitter, net.Server {
-        setTimeout(msecs: number, callback: Function): void;
-        maxHeadersCount: number;
-        timeout: number;
-    }
-    /**
-     * @deprecated Use IncomingMessage
-     */
-    export interface ServerRequest extends IncomingMessage {
-        connection: net.Socket;
-    }
-    export interface ServerResponse extends events.EventEmitter, stream.Writable {
-        // Extended base methods
-        write(buffer: Buffer): boolean;
-        write(buffer: Buffer, cb?: Function): boolean;
-        write(str: string, cb?: Function): boolean;
-        write(str: string, encoding?: string, cb?: Function): boolean;
-        write(str: string, encoding?: string, fd?: string): boolean;
-
-        writeContinue(): void;
-        writeHead(statusCode: number, reasonPhrase?: string, headers?: any): void;
-        writeHead(statusCode: number, headers?: any): void;
-        statusCode: number;
-        statusMessage: string;
-        headersSent: boolean;
-        setHeader(name: string, value: string | string[]): void;
-        setTimeout(msecs: number, callback: Function): ServerResponse;
-        sendDate: boolean;
-        getHeader(name: string): string;
-        removeHeader(name: string): void;
-        write(chunk: any, encoding?: string): any;
-        addTrailers(headers: any): void;
-        finished: boolean;
-
-        // Extended base methods
-        end(): void;
-        end(buffer: Buffer, cb?: Function): void;
-        end(str: string, cb?: Function): void;
-        end(str: string, encoding?: string, cb?: Function): void;
-        end(data?: any, encoding?: string): void;
-    }
-    export interface ClientRequest extends events.EventEmitter, stream.Writable {
-        // Extended base methods
-        write(buffer: Buffer): boolean;
-        write(buffer: Buffer, cb?: Function): boolean;
-        write(str: string, cb?: Function): boolean;
-        write(str: string, encoding?: string, cb?: Function): boolean;
-        write(str: string, encoding?: string, fd?: string): boolean;
-
-        write(chunk: any, encoding?: string): void;
-        abort(): void;
-        setTimeout(timeout: number, callback?: Function): void;
-        setNoDelay(noDelay?: boolean): void;
-        setSocketKeepAlive(enable?: boolean, initialDelay?: number): void;
-
-        setHeader(name: string, value: string | string[]): void;
-        getHeader(name: string): string;
-        removeHeader(name: string): void;
-        addTrailers(headers: any): void;
-
-        // Extended base methods
-        end(): void;
-        end(buffer: Buffer, cb?: Function): void;
-        end(str: string, cb?: Function): void;
-        end(str: string, encoding?: string, cb?: Function): void;
-        end(data?: any, encoding?: string): void;
-    }
-    export interface IncomingMessage extends events.EventEmitter, stream.Readable {
-        httpVersion: string;
-        headers: any;
-        rawHeaders: string[];
-        trailers: any;
-        rawTrailers: any;
-        setTimeout(msecs: number, callback: Function): NodeJS.Timer;
-        /**
-         * Only valid for request obtained from http.Server.
-         */
-        method?: string;
-        /**
-         * Only valid for request obtained from http.Server.
-         */
-        url?: string;
-        /**
-         * Only valid for response obtained from http.ClientRequest.
-         */
-        statusCode?: number;
-        /**
-         * Only valid for response obtained from http.ClientRequest.
-         */
-        statusMessage?: string;
-        socket: net.Socket;
-    }
-    /**
-     * @deprecated Use IncomingMessage
-     */
-    export interface ClientResponse extends IncomingMessage { }
-
-    export interface AgentOptions {
-        /**
-         * Keep sockets around in a pool to be used by other requests in the future. Default = false
-         */
-        keepAlive?: boolean;
-        /**
-         * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000.
-         * Only relevant if keepAlive is set to true.
-         */
-        keepAliveMsecs?: number;
-        /**
-         * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity
-         */
-        maxSockets?: number;
-        /**
-         * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256.
-         */
-        maxFreeSockets?: number;
-    }
-
-    export class Agent {
-        maxSockets: number;
-        sockets: any;
-        requests: any;
-
-        constructor(opts?: AgentOptions);
-
-        /**
-         * Destroy any sockets that are currently in use by the agent.
-         * It is usually not necessary to do this. However, if you are using an agent with KeepAlive enabled,
-         * then it is best to explicitly shut down the agent when you know that it will no longer be used. Otherwise,
-         * sockets may hang open for quite a long time before the server terminates them.
-         */
-        destroy(): void;
-    }
-
-    export var METHODS: string[];
-
-    export var STATUS_CODES: {
-        [errorCode: number]: string;
-        [errorCode: string]: string;
-    };
-    export function createServer(requestListener?: (request: IncomingMessage, response: ServerResponse) => void): Server;
-    export function createClient(port?: number, host?: string): any;
-    export function request(options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest;
-    export function get(options: any, callback?: (res: IncomingMessage) => void): ClientRequest;
-    export var globalAgent: Agent;
-}
-
-declare module "cluster" {
-    import * as child from "child_process";
-    import * as events from "events";
-
-    export interface ClusterSettings {
-        exec?: string;
-        args?: string[];
-        silent?: boolean;
-    }
-
-    export interface Address {
-        address: string;
-        port: number;
-        addressType: string;
-    }
-
-    export class Worker extends events.EventEmitter {
-        id: string;
-        process: child.ChildProcess;
-        suicide: boolean;
-        send(message: any, sendHandle?: any): void;
-        kill(signal?: string): void;
-        destroy(signal?: string): void;
-        disconnect(): void;
-        isConnected(): boolean;
-        isDead(): boolean;
-    }
-
-    export var settings: ClusterSettings;
-    export var isMaster: boolean;
-    export var isWorker: boolean;
-    export function setupMaster(settings?: ClusterSettings): void;
-    export function fork(env?: any): Worker;
-    export function disconnect(callback?: Function): void;
-    export var worker: Worker;
-    export var workers: {
-        [index: string]: Worker
-    };
-
-    // Event emitter
-    export function addListener(event: string, listener: Function): void;
-    export function on(event: "disconnect", listener: (worker: Worker) => void): void;
-    export function on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): void;
-    export function on(event: "fork", listener: (worker: Worker) => void): void;
-    export function on(event: "listening", listener: (worker: Worker, address: any) => void): void;
-    export function on(event: "message", listener: (worker: Worker, message: any) => void): void;
-    export function on(event: "online", listener: (worker: Worker) => void): void;
-    export function on(event: "setup", listener: (settings: any) => void): void;
-    export function on(event: string, listener: Function): any;
-    export function once(event: string, listener: Function): void;
-    export function removeListener(event: string, listener: Function): void;
-    export function removeAllListeners(event?: string): void;
-    export function setMaxListeners(n: number): void;
-    export function listeners(event: string): Function[];
-    export function emit(event: string, ...args: any[]): boolean;
-}
-
-declare module "zlib" {
-    import * as stream from "stream";
-    export interface ZlibOptions { chunkSize?: number; windowBits?: number; level?: number; memLevel?: number; strategy?: number; dictionary?: any; }
-
-    export interface Gzip extends stream.Transform { }
-    export interface Gunzip extends stream.Transform { }
-    export interface Deflate extends stream.Transform { }
-    export interface Inflate extends stream.Transform { }
-    export interface DeflateRaw extends stream.Transform { }
-    export interface InflateRaw extends stream.Transform { }
-    export interface Unzip extends stream.Transform { }
-
-    export function createGzip(options?: ZlibOptions): Gzip;
-    export function createGunzip(options?: ZlibOptions): Gunzip;
-    export function createDeflate(options?: ZlibOptions): Deflate;
-    export function createInflate(options?: ZlibOptions): Inflate;
-    export function createDeflateRaw(options?: ZlibOptions): DeflateRaw;
-    export function createInflateRaw(options?: ZlibOptions): InflateRaw;
-    export function createUnzip(options?: ZlibOptions): Unzip;
-
-    export function deflate(buf: Buffer, callback: (error: Error, result: any) => void): void;
-    export function deflateSync(buf: Buffer, options?: ZlibOptions): any;
-    export function deflateRaw(buf: Buffer, callback: (error: Error, result: any) => void): void;
-    export function deflateRawSync(buf: Buffer, options?: ZlibOptions): any;
-    export function gzip(buf: Buffer, callback: (error: Error, result: any) => void): void;
-    export function gzipSync(buf: Buffer, options?: ZlibOptions): any;
-    export function gunzip(buf: Buffer, callback: (error: Error, result: any) => void): void;
-    export function gunzipSync(buf: Buffer, options?: ZlibOptions): any;
-    export function inflate(buf: Buffer, callback: (error: Error, result: any) => void): void;
-    export function inflateSync(buf: Buffer, options?: ZlibOptions): any;
-    export function inflateRaw(buf: Buffer, callback: (error: Error, result: any) => void): void;
-    export function inflateRawSync(buf: Buffer, options?: ZlibOptions): any;
-    export function unzip(buf: Buffer, callback: (error: Error, result: any) => void): void;
-    export function unzipSync(buf: Buffer, options?: ZlibOptions): any;
-
-    // Constants
-    export var Z_NO_FLUSH: number;
-    export var Z_PARTIAL_FLUSH: number;
-    export var Z_SYNC_FLUSH: number;
-    export var Z_FULL_FLUSH: number;
-    export var Z_FINISH: number;
-    export var Z_BLOCK: number;
-    export var Z_TREES: number;
-    export var Z_OK: number;
-    export var Z_STREAM_END: number;
-    export var Z_NEED_DICT: number;
-    export var Z_ERRNO: number;
-    export var Z_STREAM_ERROR: number;
-    export var Z_DATA_ERROR: number;
-    export var Z_MEM_ERROR: number;
-    export var Z_BUF_ERROR: number;
-    export var Z_VERSION_ERROR: number;
-    export var Z_NO_COMPRESSION: number;
-    export var Z_BEST_SPEED: number;
-    export var Z_BEST_COMPRESSION: number;
-    export var Z_DEFAULT_COMPRESSION: number;
-    export var Z_FILTERED: number;
-    export var Z_HUFFMAN_ONLY: number;
-    export var Z_RLE: number;
-    export var Z_FIXED: number;
-    export var Z_DEFAULT_STRATEGY: number;
-    export var Z_BINARY: number;
-    export var Z_TEXT: number;
-    export var Z_ASCII: number;
-    export var Z_UNKNOWN: number;
-    export var Z_DEFLATED: number;
-    export var Z_NULL: number;
-}
-
-declare module "os" {
-    export interface CpuInfo {
-        model: string;
-        speed: number;
-        times: {
-            user: number;
-            nice: number;
-            sys: number;
-            idle: number;
-            irq: number;
-        };
-    }
-
-    export interface NetworkInterfaceInfo {
-        address: string;
-        netmask: string;
-        family: string;
-        mac: string;
-        internal: boolean;
-    }
-
-    export function tmpdir(): string;
-    export function homedir(): string;
-    export function endianness(): "BE" | "LE";
-    export function hostname(): string;
-    export function type(): string;
-    export function platform(): string;
-    export function arch(): string;
-    export function release(): string;
-    export function uptime(): number;
-    export function loadavg(): number[];
-    export function totalmem(): number;
-    export function freemem(): number;
-    export function cpus(): CpuInfo[];
-    export function networkInterfaces(): { [index: string]: NetworkInterfaceInfo[] };
-    export var EOL: string;
-}
-
-declare module "https" {
-    import * as tls from "tls";
-    import * as events from "events";
-    import * as http from "http";
-
-    export interface ServerOptions {
-        pfx?: any;
-        key?: any;
-        passphrase?: string;
-        cert?: any;
-        ca?: any;
-        crl?: any;
-        ciphers?: string;
-        honorCipherOrder?: boolean;
-        requestCert?: boolean;
-        rejectUnauthorized?: boolean;
-        NPNProtocols?: any;
-        SNICallback?: (servername: string, cb:(err:Error,ctx:tls.SecureContext)=>any) => any;
-    }
-
-    export interface RequestOptions extends http.RequestOptions {
-        pfx?: any;
-        key?: any;
-        passphrase?: string;
-        cert?: any;
-        ca?: any;
-        ciphers?: string;
-        rejectUnauthorized?: boolean;
-        secureProtocol?: string;
-    }
-
-    export interface Agent extends http.Agent { }
-
-    export interface AgentOptions extends http.AgentOptions {
-        pfx?: any;
-        key?: any;
-        passphrase?: string;
-        cert?: any;
-        ca?: any;
-        ciphers?: string;
-        rejectUnauthorized?: boolean;
-        secureProtocol?: string;
-        maxCachedSessions?: number;
-    }
-
-    export var Agent: {
-        new (options?: AgentOptions): Agent;
-    };
-    export interface Server extends tls.Server { }
-    export function createServer(options: ServerOptions, requestListener?: Function): Server;
-    export function request(options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest;
-    export function get(options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest;
-    export var globalAgent: Agent;
-}
-
-declare module "punycode" {
-    export function decode(string: string): string;
-    export function encode(string: string): string;
-    export function toUnicode(domain: string): string;
-    export function toASCII(domain: string): string;
-    export var ucs2: ucs2;
-    interface ucs2 {
-        decode(string: string): number[];
-        encode(codePoints: number[]): string;
-    }
-    export var version: any;
-}
-
-declare module "repl" {
-    import * as stream from "stream";
-    import * as events from "events";
-
-    export interface ReplOptions {
-        prompt?: string;
-        input?: NodeJS.ReadableStream;
-        output?: NodeJS.WritableStream;
-        terminal?: boolean;
-        eval?: Function;
-        useColors?: boolean;
-        useGlobal?: boolean;
-        ignoreUndefined?: boolean;
-        writer?: Function;
-    }
-    export function start(options: ReplOptions): events.EventEmitter;
-}
-
-declare module "readline" {
-    import * as events from "events";
-    import * as stream from "stream";
-
-    export interface Key {
-        sequence?: string;
-        name?: string;
-        ctrl?: boolean;
-        meta?: boolean;
-        shift?: boolean;
-    }
-
-    export interface ReadLine extends events.EventEmitter {
-        setPrompt(prompt: string): void;
-        prompt(preserveCursor?: boolean): void;
-        question(query: string, callback: (answer: string) => void): void;
-        pause(): ReadLine;
-        resume(): ReadLine;
-        close(): void;
-        write(data: string | Buffer, key?: Key): void;
-    }
-
-    export interface Completer {
-        (line: string): CompleterResult;
-        (line: string, callback: (err: any, result: CompleterResult) => void): any;
-    }
-
-    export interface CompleterResult {
-        completions: string[];
-        line: string;
-    }
-
-    export interface ReadLineOptions {
-        input: NodeJS.ReadableStream;
-        output?: NodeJS.WritableStream;
-        completer?: Completer;
-        terminal?: boolean;
-        historySize?: number;
-    }
-
-    export function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer, terminal?: boolean): ReadLine;
-    export function createInterface(options: ReadLineOptions): ReadLine;
-
-    export function cursorTo(stream: NodeJS.WritableStream, x: number, y: number): void;
-    export function moveCursor(stream: NodeJS.WritableStream, dx: number | string, dy: number | string): void;
-    export function clearLine(stream: NodeJS.WritableStream, dir: number): void;
-    export function clearScreenDown(stream: NodeJS.WritableStream): void;
-}
-
-declare module "vm" {
-    export interface Context { }
-    export interface ScriptOptions {
-        filename?: string;
-        lineOffset?: number;
-        columnOffset?: number;
-        displayErrors?: boolean;
-        timeout?: number;
-        cachedData?: Buffer;
-        produceCachedData?: boolean;
-    }
-    export interface RunningScriptOptions {
-        filename?: string;
-        lineOffset?: number;
-        columnOffset?: number;
-        displayErrors?: boolean;
-        timeout?: number;
-    }
-    export class Script {
-        constructor(code: string, options?: ScriptOptions);
-        runInContext(contextifiedSandbox: Context, options?: RunningScriptOptions): any;
-        runInNewContext(sandbox?: Context, options?: RunningScriptOptions): any;
-        runInThisContext(options?: RunningScriptOptions): any;
-    }
-    export function createContext(sandbox?: Context): Context;
-    export function isContext(sandbox: Context): boolean;
-    export function runInContext(code: string, contextifiedSandbox: Context, options?: RunningScriptOptions): any;
-    export function runInDebugContext(code: string): any;
-    export function runInNewContext(code: string, sandbox?: Context, options?: RunningScriptOptions): any;
-    export function runInThisContext(code: string, options?: RunningScriptOptions): any;
-}
-
-declare module "child_process" {
-    import * as events from "events";
-    import * as stream from "stream";
-
-    export interface ChildProcess extends events.EventEmitter {
-        stdin: stream.Writable;
-        stdout: stream.Readable;
-        stderr: stream.Readable;
-        stdio: [stream.Writable, stream.Readable, stream.Readable];
-        pid: number;
-        kill(signal?: string): void;
-        send(message: any, sendHandle?: any): void;
-        connected: boolean;
-        disconnect(): void;
-        unref(): void;
-        ref(): void;
-    }
-
-    export interface SpawnOptions {
-        cwd?: string;
-        env?: any;
-        stdio?: any;
-        detached?: boolean;
-        uid?: number;
-        gid?: number;
-        shell?: boolean | string;
-    }
-    export function spawn(command: string, args?: string[], options?: SpawnOptions): ChildProcess;
-
-    export interface ExecOptions {
-        cwd?: string;
-        env?: any;
-        shell?: string;
-        timeout?: number;
-        maxBuffer?: number;
-        killSignal?: string;
-        uid?: number;
-        gid?: number;
-    }
-    export interface ExecOptionsWithStringEncoding extends ExecOptions {
-        encoding: BufferEncoding;
-    }
-    export interface ExecOptionsWithBufferEncoding extends ExecOptions {
-        encoding: string; // specify `null`.
-    }
-    export function exec(command: string, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;
-    export function exec(command: string, options: ExecOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;
-    // usage. child_process.exec("tsc", {encoding: null as string}, (err, stdout, stderr) => {});
-    export function exec(command: string, options: ExecOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) => void): ChildProcess;
-    export function exec(command: string, options: ExecOptions, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;
-
-    export interface ExecFileOptions {
-        cwd?: string;
-        env?: any;
-        timeout?: number;
-        maxBuffer?: number;
-        killSignal?: string;
-        uid?: number;
-        gid?: number;
-    }
-    export interface ExecFileOptionsWithStringEncoding extends ExecFileOptions {
-        encoding: BufferEncoding;
-    }
-    export interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions {
-        encoding: string; // specify `null`.
-    }
-    export function execFile(file: string, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;
-    export function execFile(file: string, options?: ExecFileOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;
-    // usage. child_process.execFile("file.sh", {encoding: null as string}, (err, stdout, stderr) => {});
-    export function execFile(file: string, options?: ExecFileOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) => void): ChildProcess;
-    export function execFile(file: string, options?: ExecFileOptions, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;
-    export function execFile(file: string, args?: string[], callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;
-    export function execFile(file: string, args?: string[], options?: ExecFileOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;
-    // usage. child_process.execFile("file.sh", ["foo"], {encoding: null as string}, (err, stdout, stderr) => {});
-    export function execFile(file: string, args?: string[], options?: ExecFileOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) => void): ChildProcess;
-    export function execFile(file: string, args?: string[], options?: ExecFileOptions, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;
-
-    export interface ForkOptions {
-        cwd?: string;
-        env?: any;
-        execPath?: string;
-        execArgv?: string[];
-        silent?: boolean;
-        uid?: number;
-        gid?: number;
-    }
-    export function fork(modulePath: string, args?: string[], options?: ForkOptions): ChildProcess;
-
-    export interface SpawnSyncOptions {
-        cwd?: string;
-        input?: string | Buffer;
-        stdio?: any;
-        env?: any;
-        uid?: number;
-        gid?: number;
-        timeout?: number;
-        killSignal?: string;
-        maxBuffer?: number;
-        encoding?: string;
-        shell?: boolean | string;
-    }
-    export interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions {
-        encoding: BufferEncoding;
-    }
-    export interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions {
-        encoding: string; // specify `null`.
-    }
-    export interface SpawnSyncReturns<T> {
-        pid: number;
-        output: string[];
-        stdout: T;
-        stderr: T;
-        status: number;
-        signal: string;
-        error: Error;
-    }
-    export function spawnSync(command: string): SpawnSyncReturns<Buffer>;
-    export function spawnSync(command: string, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns<string>;
-    export function spawnSync(command: string, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns<Buffer>;
-    export function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns<Buffer>;
-    export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns<string>;
-    export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns<Buffer>;
-    export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptions): SpawnSyncReturns<Buffer>;
-
-    export interface ExecSyncOptions {
-        cwd?: string;
-        input?: string | Buffer;
-        stdio?: any;
-        env?: any;
-        shell?: string;
-        uid?: number;
-        gid?: number;
-        timeout?: number;
-        killSignal?: string;
-        maxBuffer?: number;
-        encoding?: string;
-    }
-    export interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions {
-        encoding: BufferEncoding;
-    }
-    export interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions {
-        encoding: string; // specify `null`.
-    }
-    export function execSync(command: string): Buffer;
-    export function execSync(command: string, options?: ExecSyncOptionsWithStringEncoding): string;
-    export function execSync(command: string, options?: ExecSyncOptionsWithBufferEncoding): Buffer;
-    export function execSync(command: string, options?: ExecSyncOptions): Buffer;
-
-    export interface ExecFileSyncOptions {
-        cwd?: string;
-        input?: string | Buffer;
-        stdio?: any;
-        env?: any;
-        uid?: number;
-        gid?: number;
-        timeout?: number;
-        killSignal?: string;
-        maxBuffer?: number;
-        encoding?: string;
-    }
-    export interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions {
-        encoding: BufferEncoding;
-    }
-    export interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions {
-        encoding: string; // specify `null`.
-    }
-    export function execFileSync(command: string): Buffer;
-    export function execFileSync(command: string, options?: ExecFileSyncOptionsWithStringEncoding): string;
-    export function execFileSync(command: string, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer;
-    export function execFileSync(command: string, options?: ExecFileSyncOptions): Buffer;
-    export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptionsWithStringEncoding): string;
-    export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptionsWithBufferEncoding): Buffer;
-    export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptions): Buffer;
-}
-
-declare module "url" {
-    export interface Url {
-        href?: string;
-        protocol?: string;
-        auth?: string;
-        hostname?: string;
-        port?: string;
-        host?: string;
-        pathname?: string;
-        search?: string;
-        query?: string | any;
-        slashes?: boolean;
-        hash?: string;
-        path?: string;
-    }
-
-    export function parse(urlStr: string, parseQueryString?: boolean, slashesDenoteHost?: boolean): Url;
-    export function format(url: Url): string;
-    export function resolve(from: string, to: string): string;
-}
-
-declare module "dns" {
-    export function lookup(domain: string, family: number, callback: (err: Error, address: string, family: number) => void): string;
-    export function lookup(domain: string, callback: (err: Error, address: string, family: number) => void): string;
-    export function resolve(domain: string, rrtype: string, callback: (err: Error, addresses: string[]) => void): string[];
-    export function resolve(domain: string, callback: (err: Error, addresses: string[]) => void): string[];
-    export function resolve4(domain: string, callback: (err: Error, addresses: string[]) => void): string[];
-    export function resolve6(domain: string, callback: (err: Error, addresses: string[]) => void): string[];
-    export function resolveMx(domain: string, callback: (err: Error, addresses: string[]) => void): string[];
-    export function resolveTxt(domain: string, callback: (err: Error, addresses: string[]) => void): string[];
-    export function resolveSrv(domain: string, callback: (err: Error, addresses: string[]) => void): string[];
-    export function resolveNs(domain: string, callback: (err: Error, addresses: string[]) => void): string[];
-    export function resolveCname(domain: string, callback: (err: Error, addresses: string[]) => void): string[];
-    export function reverse(ip: string, callback: (err: Error, domains: string[]) => void): string[];
-}
-
-declare module "net" {
-    import * as stream from "stream";
-
-    export interface Socket extends stream.Duplex {
-        // Extended base methods
-        write(buffer: Buffer): boolean;
-        write(buffer: Buffer, cb?: Function): boolean;
-        write(str: string, cb?: Function): boolean;
-        write(str: string, encoding?: string, cb?: Function): boolean;
-        write(str: string, encoding?: string, fd?: string): boolean;
-
-        connect(port: number, host?: string, connectionListener?: Function): void;
-        connect(path: string, connectionListener?: Function): void;
-        bufferSize: number;
-        setEncoding(encoding?: string): void;
-        write(data: any, encoding?: string, callback?: Function): void;
-        destroy(): void;
-        pause(): void;
-        resume(): void;
-        setTimeout(timeout: number, callback?: Function): void;
-        setNoDelay(noDelay?: boolean): void;
-        setKeepAlive(enable?: boolean, initialDelay?: number): void;
-        address(): { port: number; family: string; address: string; };
-        unref(): void;
-        ref(): void;
-
-        remoteAddress: string;
-        remoteFamily: string;
-        remotePort: number;
-        localAddress: string;
-        localPort: number;
-        bytesRead: number;
-        bytesWritten: number;
-
-        // Extended base methods
-        end(): void;
-        end(buffer: Buffer, cb?: Function): void;
-        end(str: string, cb?: Function): void;
-        end(str: string, encoding?: string, cb?: Function): void;
-        end(data?: any, encoding?: string): void;
-    }
-
-    export var Socket: {
-        new (options?: { fd?: string; type?: string; allowHalfOpen?: boolean; }): Socket;
-    };
-
-    export interface ListenOptions {
-        port?: number;
-        host?: string;
-        backlog?: number;
-        path?: string;
-        exclusive?: boolean;
-    }
-
-    export interface Server extends Socket {
-        listen(port: number, hostname?: string, backlog?: number, listeningListener?: Function): Server;
-        listen(port: number, hostname?: string, listeningListener?: Function): Server;
-        listen(port: number, backlog?: number, listeningListener?: Function): Server;
-        listen(port: number, listeningListener?: Function): Server;
-        listen(path: string, backlog?: number, listeningListener?: Function): Server;
-        listen(path: string, listeningListener?: Function): Server;
-        listen(handle: any, backlog?: number, listeningListener?: Function): Server;
-        listen(handle: any, listeningListener?: Function): Server;
-        listen(options: ListenOptions, listeningListener?: Function): Server;
-        close(callback?: Function): Server;
-        address(): { port: number; family: string; address: string; };
-        getConnections(cb: (error: Error, count: number) => void): void;
-        ref(): Server;
-        unref(): Server;
-        maxConnections: number;
-        connections: number;
-    }
-    export function createServer(connectionListener?: (socket: Socket) => void): Server;
-    export function createServer(options?: { allowHalfOpen?: boolean; }, connectionListener?: (socket: Socket) => void): Server;
-    export function connect(options: { port: number, host?: string, localAddress?: string, localPort?: string, family?: number, allowHalfOpen?: boolean; }, connectionListener?: Function): Socket;
-    export function connect(port: number, host?: string, connectionListener?: Function): Socket;
-    export function connect(path: string, connectionListener?: Function): Socket;
-    export function createConnection(options: { port: number, host?: string, localAddress?: string, localPort?: string, family?: number, allowHalfOpen?: boolean; }, connectionListener?: Function): Socket;
-    export function createConnection(port: number, host?: string, connectionListener?: Function): Socket;
-    export function createConnection(path: string, connectionListener?: Function): Socket;
-    export function isIP(input: string): number;
-    export function isIPv4(input: string): boolean;
-    export function isIPv6(input: string): boolean;
-}
-
-declare module "dgram" {
-    import * as events from "events";
-
-    interface RemoteInfo {
-        address: string;
-        port: number;
-        size: number;
-    }
-
-    interface AddressInfo {
-        address: string;
-        family: string;
-        port: number;
-    }
-
-    export function createSocket(type: string, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;
-
-    interface Socket extends events.EventEmitter {
-        send(buf: Buffer, offset: number, length: number, port: number, address: string, callback?: (error: Error, bytes: number) => void): void;
-        bind(port: number, address?: string, callback?: () => void): void;
-        close(): void;
-        address(): AddressInfo;
-        setBroadcast(flag: boolean): void;
-        setMulticastTTL(ttl: number): void;
-        setMulticastLoopback(flag: boolean): void;
-        addMembership(multicastAddress: string, multicastInterface?: string): void;
-        dropMembership(multicastAddress: string, multicastInterface?: string): void;
-    }
-}
-
-declare module "fs" {
-    import * as stream from "stream";
-    import * as events from "events";
-
-    interface Stats {
-        isFile(): boolean;
-        isDirectory(): boolean;
-        isBlockDevice(): boolean;
-        isCharacterDevice(): boolean;
-        isSymbolicLink(): boolean;
-        isFIFO(): boolean;
-        isSocket(): boolean;
-        dev: number;
-        ino: number;
-        mode: number;
-        nlink: number;
-        uid: number;
-        gid: number;
-        rdev: number;
-        size: number;
-        blksize: number;
-        blocks: number;
-        atime: Date;
-        mtime: Date;
-        ctime: Date;
-        birthtime: Date;
-    }
-
-    interface FSWatcher extends events.EventEmitter {
-        close(): void;
-    }
-
-    export interface ReadStream extends stream.Readable {
-        close(): void;
-        destroy(): void;
-    }
-    export interface WriteStream extends stream.Writable {
-        close(): void;
-        bytesWritten: number;
-    }
-
-    /**
-     * Asynchronous rename.
-     * @param oldPath
-     * @param newPath
-     * @param callback No arguments other than a possible exception are given to the completion callback.
-     */
-    export function rename(oldPath: string, newPath: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    /**
-     * Synchronous rename
-     * @param oldPath
-     * @param newPath
-     */
-    export function renameSync(oldPath: string, newPath: string): void;
-    export function truncate(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function truncate(path: string | Buffer, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function truncateSync(path: string | Buffer, len?: number): void;
-    export function ftruncate(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function ftruncate(fd: number, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function ftruncateSync(fd: number, len?: number): void;
-    export function chown(path: string | Buffer, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function chownSync(path: string | Buffer, uid: number, gid: number): void;
-    export function fchown(fd: number, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function fchownSync(fd: number, uid: number, gid: number): void;
-    export function lchown(path: string | Buffer, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function lchownSync(path: string | Buffer, uid: number, gid: number): void;
-    export function chmod(path: string | Buffer, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function chmod(path: string | Buffer, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function chmodSync(path: string | Buffer, mode: number): void;
-    export function chmodSync(path: string | Buffer, mode: string): void;
-    export function fchmod(fd: number, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function fchmod(fd: number, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function fchmodSync(fd: number, mode: number): void;
-    export function fchmodSync(fd: number, mode: string): void;
-    export function lchmod(path: string | Buffer, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function lchmod(path: string | Buffer, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function lchmodSync(path: string | Buffer, mode: number): void;
-    export function lchmodSync(path: string | Buffer, mode: string): void;
-    export function stat(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;
-    export function lstat(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;
-    export function fstat(fd: number, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;
-    export function statSync(path: string | Buffer): Stats;
-    export function lstatSync(path: string | Buffer): Stats;
-    export function fstatSync(fd: number): Stats;
-    export function link(srcpath: string | Buffer, dstpath: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function linkSync(srcpath: string | Buffer, dstpath: string | Buffer): void;
-    export function symlink(srcpath: string | Buffer, dstpath: string | Buffer, type?: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function symlinkSync(srcpath: string | Buffer, dstpath: string | Buffer, type?: string): void;
-    export function readlink(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, linkString: string) => any): void;
-    export function readlinkSync(path: string | Buffer): string;
-    export function realpath(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void;
-    export function realpath(path: string | Buffer, cache: { [path: string]: string }, callback: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void;
-    export function realpathSync(path: string | Buffer, cache?: { [path: string]: string }): string;
-    /*
-     * Asynchronous unlink - deletes the file specified in {path}
-     *
-     * @param path
-     * @param callback No arguments other than a possible exception are given to the completion callback.
-     */
-    export function unlink(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    /*
-     * Synchronous unlink - deletes the file specified in {path}
-     *
-     * @param path
-     */
-    export function unlinkSync(path: string | Buffer): void;
-    /*
-     * Asynchronous rmdir - removes the directory specified in {path}
-     *
-     * @param path
-     * @param callback No arguments other than a possible exception are given to the completion callback.
-     */
-    export function rmdir(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    /*
-     * Synchronous rmdir - removes the directory specified in {path}
-     *
-     * @param path
-     */
-    export function rmdirSync(path: string | Buffer): void;
-    /*
-     * Asynchronous mkdir - creates the directory specified in {path}.  Parameter {mode} defaults to 0777.
-     *
-     * @param path
-     * @param callback No arguments other than a possible exception are given to the completion callback.
-     */
-    export function mkdir(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    /*
-     * Asynchronous mkdir - creates the directory specified in {path}.  Parameter {mode} defaults to 0777.
-     *
-     * @param path
-     * @param mode
-     * @param callback No arguments other than a possible exception are given to the completion callback.
-     */
-    export function mkdir(path: string | Buffer, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    /*
-     * Asynchronous mkdir - creates the directory specified in {path}.  Parameter {mode} defaults to 0777.
-     *
-     * @param path
-     * @param mode
-     * @param callback No arguments other than a possible exception are given to the completion callback.
-     */
-    export function mkdir(path: string | Buffer, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    /*
-     * Synchronous mkdir - creates the directory specified in {path}.  Parameter {mode} defaults to 0777.
-     *
-     * @param path
-     * @param mode
-     * @param callback No arguments other than a possible exception are given to the completion callback.
-     */
-    export function mkdirSync(path: string | Buffer, mode?: number): void;
-    /*
-     * Synchronous mkdir - creates the directory specified in {path}.  Parameter {mode} defaults to 0777.
-     *
-     * @param path
-     * @param mode
-     * @param callback No arguments other than a possible exception are given to the completion callback.
-     */
-    export function mkdirSync(path: string | Buffer, mode?: string): void;
-    /*
-     * Asynchronous mkdtemp - Creates a unique temporary directory. Generates six random characters to be appended behind a required prefix to create a unique temporary directory.
-     *
-     * @param prefix
-     * @param callback The created folder path is passed as a string to the callback's second parameter.
-     */
-    export function mkdtemp(prefix: string, callback?: (err: NodeJS.ErrnoException, folder: string) => void): void;
-    /*
-     * Synchronous mkdtemp - Creates a unique temporary directory. Generates six random characters to be appended behind a required prefix to create a unique temporary directory.
-     *
-     * @param prefix
-     * @returns Returns the created folder path.
-     */
-    export function mkdtempSync(prefix: string): string;
-    export function readdir(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, files: string[]) => void): void;
-    export function readdirSync(path: string | Buffer): string[];
-    export function close(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function closeSync(fd: number): void;
-    export function open(path: string | Buffer, flags: string | number, callback: (err: NodeJS.ErrnoException, fd: number) => void): void;
-    export function open(path: string | Buffer, flags: string | number, mode: number, callback: (err: NodeJS.ErrnoException, fd: number) => void): void;
-    export function openSync(path: string | Buffer, flags: string | number, mode?: number): number;
-    export function utimes(path: string | Buffer, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function utimes(path: string | Buffer, atime: Date, mtime: Date, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function utimesSync(path: string | Buffer, atime: number, mtime: number): void;
-    export function utimesSync(path: string | Buffer, atime: Date, mtime: Date): void;
-    export function futimes(fd: number, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function futimes(fd: number, atime: Date, mtime: Date, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function futimesSync(fd: number, atime: number, mtime: number): void;
-    export function futimesSync(fd: number, atime: Date, mtime: Date): void;
-    export function fsync(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
-    export function fsyncSync(fd: number): void;
-    export function write(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): void;
-    export function write(fd: number, buffer: Buffer, offset: number, length: number, callback?: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): void;
-    export function write(fd: number, data: any, callback?: (err: NodeJS.ErrnoException, written: number, str: string) => void): void;
-    export function write(fd: number, data: any, offset: number, callback?: (err: NodeJS.ErrnoException, written: number, str: string) => void): void;
-    export function write(fd: number, data: any, offset: number, encoding: string, callback?: (err: NodeJS.ErrnoException, written: number, str: string) => void): void;
-    export function writeSync(fd: number, buffer: Buffer, offset: number, length: number, position?: number): number;
-    export function writeSync(fd: number, data: any, position?: number, enconding?: string): number;
-    export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeJS.ErrnoException, bytesRead: number, buffer: Buffer) => void): void;
-    export function readSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number;
-    /*
-     * Asynchronous readFile - Asynchronously reads the entire contents of a file.
-     *
-     * @param fileName
-     * @param encoding
-     * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file.
-     */
-    export function readFile(filename: string, encoding: string, callback: (err: NodeJS.ErrnoException, data: string) => void): void;
-    /*
-     * Asynchronous readFile - Asynchronously reads the entire contents of a file.
-     *
-     * @param fileName
-     * @param options An object with optional {encoding} and {flag} properties.  If {encoding} is specified, readFile returns a string; otherwise it returns a Buffer.
-     * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file.
-     */
-    export function readFile(filename: string, options: { encoding: string; flag?: string; }, callback: (err: NodeJS.ErrnoException, data: string) => void): void;
-    /*
-     * Asynchronous readFile - Asynchronously reads the entire contents of a file.
-     *
-     * @param fileName
-     * @param options An object with optional {encoding} and {flag} properties.  If {encoding} is specified, readFile returns a string; otherwise it returns a Buffer.
-     * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file.
-     */
-    export function readFile(filename: string, options: { flag?: string; }, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void;
-    /*
-     * Asynchronous readFile - Asynchronously reads the entire contents of a file.
-     *
-     * @param fileName
-     * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file.
-     */
-    export function readFile(filename: string, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void;
-    /*
-     * Synchronous readFile - Synchronously reads the entire contents of a file.
-     *
-     * @param fileName
-     * @param encoding
-     */
-    export function readFileSync(filename: string, encoding: string): string;
-    /*
-     * Synchronous readFile - Synchronously reads the entire contents of a file.
-     *
-     * @param fileName
-     * @param options An object with optional {encoding} and {flag} properties.  If {encoding} is specified, readFileSync returns a string; otherwise it returns a Buffer.
-     */
-    export function readFileSync(filename: string, options: { encoding: string; flag?: string; }): string;
-    /*
-     * Synchronous readFile - Synchronously reads the entire contents of a file.
-     *
-     * @param fileName
-     * @param options An object with optional {encoding} and {flag} properties.  If {encoding} is specified, readFileSync returns a string; otherwise it returns a Buffer.
-     */
-    export function readFileSync(filename: string, options?: { flag?: string; }): Buffer;
-    export function writeFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void;
-    export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
-    export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
-    export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void;
-    export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void;
-    export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
-    export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
-    export function appendFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void;
-    export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void;
-    export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void;
-    export function watchFile(filename: string, listener: (curr: Stats, prev: Stats) => void): void;
-    export function watchFile(filename: string, options: { persistent?: boolean; interval?: number; }, listener: (curr: Stats, prev: Stats) => void): void;
-    export function unwatchFile(filename: string, listener?: (curr: Stats, prev: Stats) => void): void;
-    export function watch(filename: string, listener?: (event: string, filename: string) => any): FSWatcher;
-    export function watch(filename: string, encoding: string, listener?: (event: string, filename: string | Buffer) => any): FSWatcher;
-    export function watch(filename: string, options: { persistent?: boolean; recursive?: boolean; encoding?: string }, listener?: (event: string, filename: string | Buffer) => any): FSWatcher;
-    export function exists(path: string | Buffer, callback?: (exists: boolean) => void): void;
-    export function existsSync(path: string | Buffer): boolean;
-    /** Constant for fs.access(). File is visible to the calling process. */
-    export var F_OK: number;
-    /** Constant for fs.access(). File can be read by the calling process. */
-    export var R_OK: number;
-    /** Constant for fs.access(). File can be written by the calling process. */
-    export var W_OK: number;
-    /** Constant for fs.access(). File can be executed by the calling process. */
-    export var X_OK: number;
-    /** Tests a user's permissions for the file specified by path. */
-    export function access(path: string | Buffer, callback: (err: NodeJS.ErrnoException) => void): void;
-    export function access(path: string | Buffer, mode: number, callback: (err: NodeJS.ErrnoException) => void): void;
-    /** Synchronous version of fs.access. This throws if any accessibility checks fail, and does nothing otherwise. */
-    export function accessSync(path: string | Buffer, mode?: number): void;
-    export function createReadStream(path: string | Buffer, options?: {
-        flags?: string;
-        encoding?: string;
-        fd?: number;
-        mode?: number;
-        autoClose?: boolean;
-        start?: number;
-        end?: number;
-    }): ReadStream;
-    export function createWriteStream(path: string | Buffer, options?: {
-        flags?: string;
-        encoding?: string;
-        fd?: number;
-        mode?: number;
-    }): WriteStream;
-}
-
-declare module "path" {
-
-    /**
-     * A parsed path object generated by path.parse() or consumed by path.format().
-     */
-    export interface ParsedPath {
-        /**
-         * The root of the path such as '/' or 'c:\'
-         */
-        root: string;
-        /**
-         * The full directory path such as '/home/user/dir' or 'c:\path\dir'
-         */
-        dir: string;
-        /**
-         * The file name including extension (if any) such as 'index.html'
-         */
-        base: string;
-        /**
-         * The file extension (if any) such as '.html'
-         */
-        ext: string;
-        /**
-         * The file name without extension (if any) such as 'index'
-         */
-        name: string;
-    }
-
-    /**
-     * Normalize a string path, reducing '..' and '.' parts.
-     * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used.
-     *
-     * @param p string path to normalize.
-     */
-    export function normalize(p: string): string;
-    /**
-     * Join all arguments together and normalize the resulting path.
-     * Arguments must be strings. In v0.8, non-string arguments were silently ignored. In v0.10 and up, an exception is thrown.
-     *
-     * @param paths string paths to join.
-     */
-    export function join(...paths: any[]): string;
-    /**
-     * Join all arguments together and normalize the resulting path.
-     * Arguments must be strings. In v0.8, non-string arguments were silently ignored. In v0.10 and up, an exception is thrown.
-     *
-     * @param paths string paths to join.
-     */
-    export function join(...paths: string[]): string;
-    /**
-     * The right-most parameter is considered {to}.  Other parameters are considered an array of {from}.
-     *
-     * Starting from leftmost {from} paramter, resolves {to} to an absolute path.
-     *
-     * If {to} isn't already absolute, {from} arguments are prepended in right to left order, until an absolute path is found. If after using all {from} paths still no absolute path is found, the current working directory is used as well. The resulting path is normalized, and trailing slashes are removed unless the path gets resolved to the root directory.
-     *
-     * @param pathSegments string paths to join.  Non-string arguments are ignored.
-     */
-    export function resolve(...pathSegments: any[]): string;
-    /**
-     * Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory.
-     *
-     * @param path path to test.
-     */
-    export function isAbsolute(path: string): boolean;
-    /**
-     * Solve the relative path from {from} to {to}.
-     * At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve.
-     *
-     * @param from
-     * @param to
-     */
-    export function relative(from: string, to: string): string;
-    /**
-     * Return the directory name of a path. Similar to the Unix dirname command.
-     *
-     * @param p the path to evaluate.
-     */
-    export function dirname(p: string): string;
-    /**
-     * Return the last portion of a path. Similar to the Unix basename command.
-     * Often used to extract the file name from a fully qualified path.
-     *
-     * @param p the path to evaluate.
-     * @param ext optionally, an extension to remove from the result.
-     */
-    export function basename(p: string, ext?: string): string;
-    /**
-     * Return the extension of the path, from the last '.' to end of string in the last portion of the path.
-     * If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string
-     *
-     * @param p the path to evaluate.
-     */
-    export function extname(p: string): string;
-    /**
-     * The platform-specific file separator. '\\' or '/'.
-     */
-    export var sep: string;
-    /**
-     * The platform-specific file delimiter. ';' or ':'.
-     */
-    export var delimiter: string;
-    /**
-     * Returns an object from a path string - the opposite of format().
-     *
-     * @param pathString path to evaluate.
-     */
-    export function parse(pathString: string): ParsedPath;
-    /**
-     * Returns a path string from an object - the opposite of parse().
-     *
-     * @param pathString path to evaluate.
-     */
-    export function format(pathObject: ParsedPath): string;
-
-    export module posix {
-        export function normalize(p: string): string;
-        export function join(...paths: any[]): string;
-        export function resolve(...pathSegments: any[]): string;
-        export function isAbsolute(p: string): boolean;
-        export function relative(from: string, to: string): string;
-        export function dirname(p: string): string;
-        export function basename(p: string, ext?: string): string;
-        export function extname(p: string): string;
-        export var sep: string;
-        export var delimiter: string;
-        export function parse(p: string): ParsedPath;
-        export function format(pP: ParsedPath): string;
-    }
-
-    export module win32 {
-        export function normalize(p: string): string;
-        export function join(...paths: any[]): string;
-        export function resolve(...pathSegments: any[]): string;
-        export function isAbsolute(p: string): boolean;
-        export function relative(from: string, to: string): string;
-        export function dirname(p: string): string;
-        export function basename(p: string, ext?: string): string;
-        export function extname(p: string): string;
-        export var sep: string;
-        export var delimiter: string;
-        export function parse(p: string): ParsedPath;
-        export function format(pP: ParsedPath): string;
-    }
-}
-
-declare module "string_decoder" {
-    export interface NodeStringDecoder {
-        write(buffer: Buffer): string;
-        end(buffer?: Buffer): string;
-    }
-    export var StringDecoder: {
-        new (encoding?: string): NodeStringDecoder;
-    };
-}
-
-declare module "tls" {
-    import * as crypto from "crypto";
-    import * as net from "net";
-    import * as stream from "stream";
-
-    var CLIENT_RENEG_LIMIT: number;
-    var CLIENT_RENEG_WINDOW: number;
-
-    export interface Certificate {
-        /**
-         * Country code.
-         */
-        C: string;
-        /**
-         * Street.
-         */
-        ST: string;
-        /**
-         * Locality.
-         */
-        L: string;
-        /**
-         * Organization.
-         */
-        O: string;
-        /**
-         * Organizational unit.
-         */
-        OU: string;
-        /**
-         * Common name.
-         */
-        CN: string;
-    }
-
-    export interface CipherNameAndProtocol {
-        /**
-         * The cipher name.
-         */
-        name: string;
-        /**
-         * SSL/TLS protocol version.
-         */
-        version: string;
-    }
-
-    export class TLSSocket extends stream.Duplex {
-        /**
-         * Returns the bound address, the address family name and port of the underlying socket as reported by
-         * the operating system.
-         * @returns {any} - An object with three properties, e.g. { port: 12346, family: 'IPv4', address: '127.0.0.1' }.
-         */
-        address(): { port: number; family: string; address: string };
-        /**
-         * A boolean that is true if the peer certificate was signed by one of the specified CAs, otherwise false.
-         */
-        authorized: boolean;
-        /**
-         * The reason why the peer's certificate has not been verified.
-         * This property becomes available only when tlsSocket.authorized === false.
-         */
-        authorizationError: Error;
-        /**
-         * Static boolean value, always true.
-         * May be used to distinguish TLS sockets from regular ones.
-         */
-        encrypted: boolean;
-        /**
-         * Returns an object representing the cipher name and the SSL/TLS protocol version of the current connection.
-         * @returns {CipherNameAndProtocol} - Returns an object representing the cipher name
-         * and the SSL/TLS protocol version of the current connection.
-         */
-        getCipher(): CipherNameAndProtocol;
-        /**
-         * Returns an object representing the peer's certificate.
-         * The returned object has some properties corresponding to the field of the certificate.
-         * If detailed argument is true the full chain with issuer property will be returned,
-         * if false only the top certificate without issuer property.
-         * If the peer does not provide a certificate, it returns null or an empty object.
-         * @param {boolean} detailed - If true; the full chain with issuer property will be returned.
-         * @returns {any} - An object representing the peer's certificate.
-         */
-        getPeerCertificate(detailed?: boolean): {
-            subject: Certificate;
-            issuerInfo: Certificate;
-            issuer: Certificate;
-            raw: any;
-            valid_from: string;
-            valid_to: string;
-            fingerprint: string;
-            serialNumber: string;
-        };
-        /**
-         * Could be used to speed up handshake establishment when reconnecting to the server.
-         * @returns {any} - ASN.1 encoded TLS session or undefined if none was negotiated.
-         */
-        getSession(): any;
-        /**
-         * NOTE: Works only with client TLS sockets.
-         * Useful only for debugging, for session reuse provide session option to tls.connect().
-         * @returns {any} - TLS session ticket or undefined if none was negotiated.
-         */
-        getTLSTicket(): any;
-        /**
-         * The string representation of the local IP address.
-         */
-        localAddress: string;
-        /**
-         * The numeric representation of the local port.
-         */
-        localPort: string;
-        /**
-         * The string representation of the remote IP address.
-         * For example, '74.125.127.100' or '2001:4860:a005::68'.
-         */
-        remoteAddress: string;
-        /**
-         * The string representation of the remote IP family. 'IPv4' or 'IPv6'.
-         */
-        remoteFamily: string;
-        /**
-         * The numeric representation of the remote port. For example, 443.
-         */
-        remotePort: number;
-        /**
-         * Initiate TLS renegotiation process.
-         *
-         * NOTE: Can be used to request peer's certificate after the secure connection has been established.
-         * ANOTHER NOTE: When running as the server, socket will be destroyed with an error after handshakeTimeout timeout.
-         * @param {TlsOptions} options - The options may contain the following fields: rejectUnauthorized,
-         * requestCert (See tls.createServer() for details).
-         * @param {Function} callback - callback(err) will be executed with null as err, once the renegotiation
-         * is successfully completed.
-         */
-        renegotiate(options: TlsOptions, callback: (err: Error) => any): any;
-        /**
-         * Set maximum TLS fragment size (default and maximum value is: 16384, minimum is: 512).
-         * Smaller fragment size decreases buffering latency on the client: large fragments are buffered by
-         * the TLS layer until the entire fragment is received and its integrity is verified;
-         * large fragments can span multiple roundtrips, and their processing can be delayed due to packet
-         * loss or reordering. However, smaller fragments add extra TLS framing bytes and CPU overhead,
-         * which may decrease overall server throughput.
-         * @param {number} size - TLS fragment size (default and maximum value is: 16384, minimum is: 512).
-         * @returns {boolean} - Returns true on success, false otherwise.
-         */
-        setMaxSendFragment(size: number): boolean;
-    }
-
-    export interface TlsOptions {
-        host?: string;
-        port?: number;
-        pfx?: any;   //string or buffer
-        key?: any;   //string or buffer
-        passphrase?: string;
-        cert?: any;
-        ca?: any;    //string or buffer
-        crl?: any;   //string or string array
-        ciphers?: string;
-        honorCipherOrder?: any;
-        requestCert?: boolean;
-        rejectUnauthorized?: boolean;
-        NPNProtocols?: any;  //array or Buffer;
-        SNICallback?: (servername: string, cb:(err:Error,ctx:SecureContext)=>any) => any;
-    }
-
-    export interface ConnectionOptions {
-        host?: string;
-        port?: number;
-        socket?: net.Socket;
-        pfx?: string | Buffer
-        key?: string | Buffer
-        passphrase?: string;
-        cert?: string | Buffer
-        ca?: (string | Buffer)[];
-        rejectUnauthorized?: boolean;
-        NPNProtocols?: (string | Buffer)[];
-        servername?: string;
-    }
-
-    export interface Server extends net.Server {
-        close(): Server;
-        address(): { port: number; family: string; address: string; };
-        addContext(hostName: string, credentials: {
-            key: string;
-            cert: string;
-            ca: string;
-        }): void;
-        maxConnections: number;
-        connections: number;
-    }
-
-    export interface ClearTextStream extends stream.Duplex {
-        authorized: boolean;
-        authorizationError: Error;
-        getPeerCertificate(): any;
-        getCipher: {
-            name: string;
-            version: string;
-        };
-        address: {
-            port: number;
-            family: string;
-            address: string;
-        };
-        remoteAddress: string;
-        remotePort: number;
-    }
-
-    export interface SecurePair {
-        encrypted: any;
-        cleartext: any;
-    }
-
-    export interface SecureContextOptions {
-        pfx?: string | Buffer;
-        key?: string | Buffer;
-        passphrase?: string;
-        cert?: string | Buffer;
-        ca?: string | Buffer;
-        crl?: string | string[]
-        ciphers?: string;
-        honorCipherOrder?: boolean;
-    }
-
-    export interface SecureContext {
-        context: any;
-    }
-
-    export function createServer(options: TlsOptions, secureConnectionListener?: (cleartextStream: ClearTextStream) => void): Server;
-    export function connect(options: TlsOptions, secureConnectionListener?: () => void): ClearTextStream;
-    export function connect(port: number, host?: string, options?: ConnectionOptions, secureConnectListener?: () => void): ClearTextStream;
-    export function connect(port: number, options?: ConnectionOptions, secureConnectListener?: () => void): ClearTextStream;
-    export function createSecurePair(credentials?: crypto.Credentials, isServer?: boolean, requestCert?: boolean, rejectUnauthorized?: boolean): SecurePair;
-    export function createSecureContext(details: SecureContextOptions): SecureContext;
-}
-
-declare module "crypto" {
-    export interface CredentialDetails {
-        pfx: string;
-        key: string;
-        passphrase: string;
-        cert: string;
-        ca: string | string[];
-        crl: string | string[];
-        ciphers: string;
-    }
-    export interface Credentials { context?: any; }
-    export function createCredentials(details: CredentialDetails): Credentials;
-    export function createHash(algorithm: string): Hash;
-    export function createHmac(algorithm: string, key: string): Hmac;
-    export function createHmac(algorithm: string, key: Buffer): Hmac;
-    export interface Hash {
-        update(data: any, input_encoding?: string): Hash;
-        digest(encoding: 'buffer'): Buffer;
-        digest(encoding: string): any;
-        digest(): Buffer;
-    }
-    export interface Hmac extends NodeJS.ReadWriteStream {
-        update(data: any, input_encoding?: string): Hmac;
-        digest(encoding: 'buffer'): Buffer;
-        digest(encoding: string): any;
-        digest(): Buffer;
-    }
-    export function createCipher(algorithm: string, password: any): Cipher;
-    export function createCipheriv(algorithm: string, key: any, iv: any): Cipher;
-    export interface Cipher extends NodeJS.ReadWriteStream {
-        update(data: Buffer): Buffer;
-        update(data: string, input_encoding: "utf8" | "ascii" | "binary"): Buffer;
-        update(data: Buffer, input_encoding: any, output_encoding: "binary" | "base64" | "hex"): string;
-        update(data: string, input_encoding: "utf8" | "ascii" | "binary", output_encoding: "binary" | "base64" | "hex"): string;
-        final(): Buffer;
-        final(output_encoding: string): string;
-        setAutoPadding(auto_padding: boolean): void;
-        getAuthTag(): Buffer;
-    }
-    export function createDecipher(algorithm: string, password: any): Decipher;
-    export function createDecipheriv(algorithm: string, key: any, iv: any): Decipher;
-    export interface Decipher extends NodeJS.ReadWriteStream {
-        update(data: Buffer): Buffer;
-        update(data: string, input_encoding: "binary" | "base64" | "hex"): Buffer;
-        update(data: Buffer, input_encoding: any, output_encoding: "utf8" | "ascii" | "binary"): string;
-        update(data: string, input_encoding: "binary" | "base64" | "hex", output_encoding: "utf8" | "ascii" | "binary"): string;
-        final(): Buffer;
-        final(output_encoding: string): string;
-        setAutoPadding(auto_padding: boolean): void;
-        setAuthTag(tag: Buffer): void;
-    }
-    export function createSign(algorithm: string): Signer;
-    export interface Signer extends NodeJS.WritableStream {
-        update(data: any): void;
-        sign(private_key: string, output_format: string): string;
-    }
-    export function createVerify(algorith: string): Verify;
-    export interface Verify extends NodeJS.WritableStream {
-        update(data: any): void;
-        verify(object: string, signature: string, signature_format?: string): boolean;
-    }
-    export function createDiffieHellman(prime_length: number): DiffieHellman;
-    export function createDiffieHellman(prime: number, encoding?: string): DiffieHellman;
-    export interface DiffieHellman {
-        generateKeys(encoding?: string): string;
-        computeSecret(other_public_key: string, input_encoding?: string, output_encoding?: string): string;
-        getPrime(encoding?: string): string;
-        getGenerator(encoding: string): string;
-        getPublicKey(encoding?: string): string;
-        getPrivateKey(encoding?: string): string;
-        setPublicKey(public_key: string, encoding?: string): void;
-        setPrivateKey(public_key: string, encoding?: string): void;
-    }
-    export function getDiffieHellman(group_name: string): DiffieHellman;
-    export function pbkdf2(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number, callback: (err: Error, derivedKey: Buffer) => any): void;
-    export function pbkdf2(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number, digest: string, callback: (err: Error, derivedKey: Buffer) => any): void;
-    export function pbkdf2Sync(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number): Buffer;
-    export function pbkdf2Sync(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number, digest: string): Buffer;
-    export function randomBytes(size: number): Buffer;
-    export function randomBytes(size: number, callback: (err: Error, buf: Buffer) => void): void;
-    export function pseudoRandomBytes(size: number): Buffer;
-    export function pseudoRandomBytes(size: number, callback: (err: Error, buf: Buffer) => void): void;
-    export interface RsaPublicKey {
-        key: string;
-        padding?: any;
-    }
-    export interface RsaPrivateKey {
-        key: string;
-        passphrase?: string,
-        padding?: any;
-    }
-    export function publicEncrypt(public_key: string | RsaPublicKey, buffer: Buffer): Buffer
-    export function privateDecrypt(private_key: string | RsaPrivateKey, buffer: Buffer): Buffer
-}
-
-declare module "stream" {
-    import * as events from "events";
-
-    export class Stream extends events.EventEmitter {
-        pipe<T extends NodeJS.WritableStream>(destination: T, options?: { end?: boolean; }): T;
-    }
-
-    export interface ReadableOptions {
-        highWaterMark?: number;
-        encoding?: string;
-        objectMode?: boolean;
-        read?: (size?: number) => any;
-    }
-
-    export class Readable extends events.EventEmitter implements NodeJS.ReadableStream {
-        readable: boolean;
-        constructor(opts?: ReadableOptions);
-        _read(size: number): void;
-        read(size?: number): any;
-        setEncoding(encoding: string): void;
-        pause(): void;
-        resume(): void;
-        pipe<T extends NodeJS.WritableStream>(destination: T, options?: { end?: boolean; }): T;
-        unpipe<T extends NodeJS.WritableStream>(destination?: T): void;
-        unshift(chunk: any): void;
-        wrap(oldStream: NodeJS.ReadableStream): NodeJS.ReadableStream;
-        push(chunk: any, encoding?: string): boolean;
-    }
-
-    export interface WritableOptions {
-        highWaterMark?: number;
-        decodeStrings?: boolean;
-        objectMode?: boolean;
-        write?: (chunk: string|Buffer, encoding: string, callback: Function) => any;
-        writev?: (chunks: {chunk: string|Buffer, encoding: string}[], callback: Function) => any;
-    }
-
-    export class Writable extends events.EventEmitter implements NodeJS.WritableStream {
-        writable: boolean;
-        constructor(opts?: WritableOptions);
-        _write(chunk: any, encoding: string, callback: Function): void;
-        write(chunk: any, cb?: Function): boolean;
-        write(chunk: any, encoding?: string, cb?: Function): boolean;
-        end(): void;
-        end(chunk: any, cb?: Function): void;
-        end(chunk: any, encoding?: string, cb?: Function): void;
-    }
-
-    export interface DuplexOptions extends ReadableOptions, WritableOptions {
-        allowHalfOpen?: boolean;
-        readableObjectMode?: boolean;
-        writableObjectMode?: boolean;
-    }
-
-    // Note: Duplex extends both Readable and Writable.
-    export class Duplex extends Readable implements NodeJS.ReadWriteStream {
-        writable: boolean;
-        constructor(opts?: DuplexOptions);
-        _write(chunk: any, encoding: string, callback: Function): void;
-        write(chunk: any, cb?: Function): boolean;
-        write(chunk: any, encoding?: string, cb?: Function): boolean;
-        end(): void;
-        end(chunk: any, cb?: Function): void;
-        end(chunk: any, encoding?: string, cb?: Function): void;
-    }
-
-    export interface TransformOptions extends ReadableOptions, WritableOptions {
-        transform?: (chunk: string|Buffer, encoding: string, callback: Function) => any;
-        flush?: (callback: Function) => any;
-    }
-
-    // Note: Transform lacks the _read and _write methods of Readable/Writable.
-    export class Transform extends events.EventEmitter implements NodeJS.ReadWriteStream {
-        readable: boolean;
-        writable: boolean;
-        constructor(opts?: TransformOptions);
-        _transform(chunk: any, encoding: string, callback: Function): void;
-        _flush(callback: Function): void;
-        read(size?: number): any;
-        setEncoding(encoding: string): void;
-        pause(): void;
-        resume(): void;
-        pipe<T extends NodeJS.WritableStream>(destination: T, options?: { end?: boolean; }): T;
-        unpipe<T extends NodeJS.WritableStream>(destination?: T): void;
-        unshift(chunk: any): void;
-        wrap(oldStream: NodeJS.ReadableStream): NodeJS.ReadableStream;
-        push(chunk: any, encoding?: string): boolean;
-        write(chunk: any, cb?: Function): boolean;
-        write(chunk: any, encoding?: string, cb?: Function): boolean;
-        end(): void;
-        end(chunk: any, cb?: Function): void;
-        end(chunk: any, encoding?: string, cb?: Function): void;
-    }
-
-    export class PassThrough extends Transform { }
-}
-
-declare module "util" {
-    export interface InspectOptions {
-        showHidden?: boolean;
-        depth?: number;
-        colors?: boolean;
-        customInspect?: boolean;
-    }
-
-    export function format(format: any, ...param: any[]): string;
-    export function debug(string: string): void;
-    export function error(...param: any[]): void;
-    export function puts(...param: any[]): void;
-    export function print(...param: any[]): void;
-    export function log(string: string): void;
-    export function inspect(object: any, showHidden?: boolean, depth?: number, color?: boolean): string;
-    export function inspect(object: any, options: InspectOptions): string;
-    export function isArray(object: any): boolean;
-    export function isRegExp(object: any): boolean;
-    export function isDate(object: any): boolean;
-    export function isError(object: any): boolean;
-    export function inherits(constructor: any, superConstructor: any): void;
-    export function debuglog(key: string): (msg: string, ...param: any[]) => void;
-}
-
-declare module "assert" {
-    function internal(value: any, message?: string): void;
-    namespace internal {
-        export class AssertionError implements Error {
-            name: string;
-            message: string;
-            actual: any;
-            expected: any;
-            operator: string;
-            generatedMessage: boolean;
-
-            constructor(options?: {
-                message?: string; actual?: any; expected?: any;
-                operator?: string; stackStartFunction?: Function
-            });
-        }
-
-        export function fail(actual?: any, expected?: any, message?: string, operator?: string): void;
-        export function ok(value: any, message?: string): void;
-        export function equal(actual: any, expected: any, message?: string): void;
-        export function notEqual(actual: any, expected: any, message?: string): void;
-        export function deepEqual(actual: any, expected: any, message?: string): void;
-        export function notDeepEqual(acutal: any, expected: any, message?: string): void;
-        export function strictEqual(actual: any, expected: any, message?: string): void;
-        export function notStrictEqual(actual: any, expected: any, message?: string): void;
-        export function deepStrictEqual(actual: any, expected: any, message?: string): void;
-        export function notDeepStrictEqual(actual: any, expected: any, message?: string): void;
-        export var throws: {
-            (block: Function, message?: string): void;
-            (block: Function, error: Function, message?: string): void;
-            (block: Function, error: RegExp, message?: string): void;
-            (block: Function, error: (err: any) => boolean, message?: string): void;
-        };
-
-        export var doesNotThrow: {
-            (block: Function, message?: string): void;
-            (block: Function, error: Function, message?: string): void;
-            (block: Function, error: RegExp, message?: string): void;
-            (block: Function, error: (err: any) => boolean, message?: string): void;
-        };
-
-        export function ifError(value: any): void;
-    }
-
-    export = internal;
-}
-
-declare module "tty" {
-    import * as net from "net";
-
-    export function isatty(fd: number): boolean;
-    export interface ReadStream extends net.Socket {
-        isRaw: boolean;
-        setRawMode(mode: boolean): void;
-        isTTY: boolean;
-    }
-    export interface WriteStream extends net.Socket {
-        columns: number;
-        rows: number;
-        isTTY: boolean;
-    }
-}
-
-declare module "domain" {
-    import * as events from "events";
-
-    export class Domain extends events.EventEmitter implements NodeJS.Domain {
-        run(fn: Function): void;
-        add(emitter: events.EventEmitter): void;
-        remove(emitter: events.EventEmitter): void;
-        bind(cb: (err: Error, data: any) => any): any;
-        intercept(cb: (data: any) => any): any;
-        dispose(): void;
-    }
-
-    export function create(): Domain;
-}
-
-declare module "constants" {
-    export var E2BIG: number;
-    export var EACCES: number;
-    export var EADDRINUSE: number;
-    export var EADDRNOTAVAIL: number;
-    export var EAFNOSUPPORT: number;
-    export var EAGAIN: number;
-    export var EALREADY: number;
-    export var EBADF: number;
-    export var EBADMSG: number;
-    export var EBUSY: number;
-    export var ECANCELED: number;
-    export var ECHILD: number;
-    export var ECONNABORTED: number;
-    export var ECONNREFUSED: number;
-    export var ECONNRESET: number;
-    export var EDEADLK: number;
-    export var EDESTADDRREQ: number;
-    export var EDOM: number;
-    export var EEXIST: number;
-    export var EFAULT: number;
-    export var EFBIG: number;
-    export var EHOSTUNREACH: number;
-    export var EIDRM: number;
-    export var EILSEQ: number;
-    export var EINPROGRESS: number;
-    export var EINTR: number;
-    export var EINVAL: number;
-    export var EIO: number;
-    export var EISCONN: number;
-    export var EISDIR: number;
-    export var ELOOP: number;
-    export var EMFILE: number;
-    export var EMLINK: number;
-    export var EMSGSIZE: number;
-    export var ENAMETOOLONG: number;
-    export var ENETDOWN: number;
-    export var ENETRESET: number;
-    export var ENETUNREACH: number;
-    export var ENFILE: number;
-    export var ENOBUFS: number;
-    export var ENODATA: number;
-    export var ENODEV: number;
-    export var ENOENT: number;
-    export var ENOEXEC: number;
-    export var ENOLCK: number;
-    export var ENOLINK: number;
-    export var ENOMEM: number;
-    export var ENOMSG: number;
-    export var ENOPROTOOPT: number;
-    export var ENOSPC: number;
-    export var ENOSR: number;
-    export var ENOSTR: number;
-    export var ENOSYS: number;
-    export var ENOTCONN: number;
-    export var ENOTDIR: number;
-    export var ENOTEMPTY: number;
-    export var ENOTSOCK: number;
-    export var ENOTSUP: number;
-    export var ENOTTY: number;
-    export var ENXIO: number;
-    export var EOPNOTSUPP: number;
-    export var EOVERFLOW: number;
-    export var EPERM: number;
-    export var EPIPE: number;
-    export var EPROTO: number;
-    export var EPROTONOSUPPORT: number;
-    export var EPROTOTYPE: number;
-    export var ERANGE: number;
-    export var EROFS: number;
-    export var ESPIPE: number;
-    export var ESRCH: number;
-    export var ETIME: number;
-    export var ETIMEDOUT: number;
-    export var ETXTBSY: number;
-    export var EWOULDBLOCK: number;
-    export var EXDEV: number;
-    export var WSAEINTR: number;
-    export var WSAEBADF: number;
-    export var WSAEACCES: number;
-    export var WSAEFAULT: number;
-    export var WSAEINVAL: number;
-    export var WSAEMFILE: number;
-    export var WSAEWOULDBLOCK: number;
-    export var WSAEINPROGRESS: number;
-    export var WSAEALREADY: number;
-    export var WSAENOTSOCK: number;
-    export var WSAEDESTADDRREQ: number;
-    export var WSAEMSGSIZE: number;
-    export var WSAEPROTOTYPE: number;
-    export var WSAENOPROTOOPT: number;
-    export var WSAEPROTONOSUPPORT: number;
-    export var WSAESOCKTNOSUPPORT: number;
-    export var WSAEOPNOTSUPP: number;
-    export var WSAEPFNOSUPPORT: number;
-    export var WSAEAFNOSUPPORT: number;
-    export var WSAEADDRINUSE: number;
-    export var WSAEADDRNOTAVAIL: number;
-    export var WSAENETDOWN: number;
-    export var WSAENETUNREACH: number;
-    export var WSAENETRESET: number;
-    export var WSAECONNABORTED: number;
-    export var WSAECONNRESET: number;
-    export var WSAENOBUFS: number;
-    export var WSAEISCONN: number;
-    export var WSAENOTCONN: number;
-    export var WSAESHUTDOWN: number;
-    export var WSAETOOMANYREFS: number;
-    export var WSAETIMEDOUT: number;
-    export var WSAECONNREFUSED: number;
-    export var WSAELOOP: number;
-    export var WSAENAMETOOLONG: number;
-    export var WSAEHOSTDOWN: number;
-    export var WSAEHOSTUNREACH: number;
-    export var WSAENOTEMPTY: number;
-    export var WSAEPROCLIM: number;
-    export var WSAEUSERS: number;
-    export var WSAEDQUOT: number;
-    export var WSAESTALE: number;
-    export var WSAEREMOTE: number;
-    export var WSASYSNOTREADY: number;
-    export var WSAVERNOTSUPPORTED: number;
-    export var WSANOTINITIALISED: number;
-    export var WSAEDISCON: number;
-    export var WSAENOMORE: number;
-    export var WSAECANCELLED: number;
-    export var WSAEINVALIDPROCTABLE: number;
-    export var WSAEINVALIDPROVIDER: number;
-    export var WSAEPROVIDERFAILEDINIT: number;
-    export var WSASYSCALLFAILURE: number;
-    export var WSASERVICE_NOT_FOUND: number;
-    export var WSATYPE_NOT_FOUND: number;
-    export var WSA_E_NO_MORE: number;
-    export var WSA_E_CANCELLED: number;
-    export var WSAEREFUSED: number;
-    export var SIGHUP: number;
-    export var SIGINT: number;
-    export var SIGILL: number;
-    export var SIGABRT: number;
-    export var SIGFPE: number;
-    export var SIGKILL: number;
-    export var SIGSEGV: number;
-    export var SIGTERM: number;
-    export var SIGBREAK: number;
-    export var SIGWINCH: number;
-    export var SSL_OP_ALL: number;
-    export var SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number;
-    export var SSL_OP_CIPHER_SERVER_PREFERENCE: number;
-    export var SSL_OP_CISCO_ANYCONNECT: number;
-    export var SSL_OP_COOKIE_EXCHANGE: number;
-    export var SSL_OP_CRYPTOPRO_TLSEXT_BUG: number;
-    export var SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number;
-    export var SSL_OP_EPHEMERAL_RSA: number;
-    export var SSL_OP_LEGACY_SERVER_CONNECT: number;
-    export var SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number;
-    export var SSL_OP_MICROSOFT_SESS_ID_BUG: number;
-    export var SSL_OP_MSIE_SSLV2_RSA_PADDING: number;
-    export var SSL_OP_NETSCAPE_CA_DN_BUG: number;
-    export var SSL_OP_NETSCAPE_CHALLENGE_BUG: number;
-    export var SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number;
-    export var SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number;
-    export var SSL_OP_NO_COMPRESSION: number;
-    export var SSL_OP_NO_QUERY_MTU: number;
-    export var SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number;
-    export var SSL_OP_NO_SSLv2: number;
-    export var SSL_OP_NO_SSLv3: number;
-    export var SSL_OP_NO_TICKET: number;
-    export var SSL_OP_NO_TLSv1: number;
-    export var SSL_OP_NO_TLSv1_1: number;
-    export var SSL_OP_NO_TLSv1_2: number;
-    export var SSL_OP_PKCS1_CHECK_1: number;
-    export var SSL_OP_PKCS1_CHECK_2: number;
-    export var SSL_OP_SINGLE_DH_USE: number;
-    export var SSL_OP_SINGLE_ECDH_USE: number;
-    export var SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number;
-    export var SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number;
-    export var SSL_OP_TLS_BLOCK_PADDING_BUG: number;
-    export var SSL_OP_TLS_D5_BUG: number;
-    export var SSL_OP_TLS_ROLLBACK_BUG: number;
-    export var ENGINE_METHOD_DSA: number;
-    export var ENGINE_METHOD_DH: number;
-    export var ENGINE_METHOD_RAND: number;
-    export var ENGINE_METHOD_ECDH: number;
-    export var ENGINE_METHOD_ECDSA: number;
-    export var ENGINE_METHOD_CIPHERS: number;
-    export var ENGINE_METHOD_DIGESTS: number;
-    export var ENGINE_METHOD_STORE: number;
-    export var ENGINE_METHOD_PKEY_METHS: number;
-    export var ENGINE_METHOD_PKEY_ASN1_METHS: number;
-    export var ENGINE_METHOD_ALL: number;
-    export var ENGINE_METHOD_NONE: number;
-    export var DH_CHECK_P_NOT_SAFE_PRIME: number;
-    export var DH_CHECK_P_NOT_PRIME: number;
-    export var DH_UNABLE_TO_CHECK_GENERATOR: number;
-    export var DH_NOT_SUITABLE_GENERATOR: number;
-    export var NPN_ENABLED: number;
-    export var RSA_PKCS1_PADDING: number;
-    export var RSA_SSLV23_PADDING: number;
-    export var RSA_NO_PADDING: number;
-    export var RSA_PKCS1_OAEP_PADDING: number;
-    export var RSA_X931_PADDING: number;
-    export var RSA_PKCS1_PSS_PADDING: number;
-    export var POINT_CONVERSION_COMPRESSED: number;
-    export var POINT_CONVERSION_UNCOMPRESSED: number;
-    export var POINT_CONVERSION_HYBRID: number;
-    export var O_RDONLY: number;
-    export var O_WRONLY: number;
-    export var O_RDWR: number;
-    export var S_IFMT: number;
-    export var S_IFREG: number;
-    export var S_IFDIR: number;
-    export var S_IFCHR: number;
-    export var S_IFBLK: number;
-    export var S_IFIFO: number;
-    export var S_IFSOCK: number;
-    export var S_IRWXU: number;
-    export var S_IRUSR: number;
-    export var S_IWUSR: number;
-    export var S_IXUSR: number;
-    export var S_IRWXG: number;
-    export var S_IRGRP: number;
-    export var S_IWGRP: number;
-    export var S_IXGRP: number;
-    export var S_IRWXO: number;
-    export var S_IROTH: number;
-    export var S_IWOTH: number;
-    export var S_IXOTH: number;
-    export var S_IFLNK: number;
-    export var O_CREAT: number;
-    export var O_EXCL: number;
-    export var O_NOCTTY: number;
-    export var O_DIRECTORY: number;
-    export var O_NOATIME: number;
-    export var O_NOFOLLOW: number;
-    export var O_SYNC: number;
-    export var O_SYMLINK: number;
-    export var O_DIRECT: number;
-    export var O_NONBLOCK: number;
-    export var O_TRUNC: number;
-    export var O_APPEND: number;
-    export var F_OK: number;
-    export var R_OK: number;
-    export var W_OK: number;
-    export var X_OK: number;
-    export var UV_UDP_REUSEADDR: number;
-}
diff --git a/demo/Angular2_Demo/typings/globals/node/typings.json b/demo/Angular2_Demo/typings/globals/node/typings.json
deleted file mode 100644
index 17d95f84b0b129dfc9064e0ac109b3ad953bfe0d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings/globals/node/typings.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "resolution": "main",
-  "tree": {
-    "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/f1fe2148037bbd924235f49065ae5286b33a4ae4/node/node.d.ts",
-    "raw": "registry:dt/node#6.0.0+20160807145350",
-    "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/f1fe2148037bbd924235f49065ae5286b33a4ae4/node/node.d.ts"
-  }
-}
diff --git a/demo/Angular2_Demo/typings/globals/selenium-webdriver/index.d.ts b/demo/Angular2_Demo/typings/globals/selenium-webdriver/index.d.ts
deleted file mode 100644
index f442239a873826c7ed01cf54b5bdd8ddb55d4b00..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings/globals/selenium-webdriver/index.d.ts
+++ /dev/null
@@ -1,5390 +0,0 @@
-// Generated by typings
-// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/7de6c3dd94feaeb21f20054b9f30d5dabc5efabd/selenium-webdriver/selenium-webdriver.d.ts
-declare namespace chrome {
-    /**
-     * Creates a new WebDriver client for Chrome.
-     *
-     * @extends {webdriver.WebDriver}
-     */
-    class Driver extends webdriver.WebDriver {
-        /**
-         * @param {(webdriver.Capabilities|Options)=} opt_config The configuration
-         *     options.
-         * @param {remote.DriverService=} opt_service The session to use; will use
-         *     the {@link getDefaultService default service} by default.
-         * @param {webdriver.promise.ControlFlow=} opt_flow The control flow to use, or
-         *     {@code null} to use the currently active flow.
-         * @constructor
-         */
-        constructor(opt_config?: webdriver.Capabilities, opt_service?: any, opt_flow?: webdriver.promise.ControlFlow);
-        constructor(opt_config?: Options, opt_service?: any, opt_flow?: webdriver.promise.ControlFlow);
-    }
-
-    interface IOptionsValues {
-        args: string[];
-        binary?: string;
-        detach: boolean;
-        extensions: string[];
-        localState?: any;
-        logFile?: string;
-        prefs?: any;
-    }
-
-    interface IPerfLoggingPrefs {
-      enableNetwork: boolean;
-      enablePage: boolean;
-      enableTimeline: boolean;
-      tracingCategories: string;
-      bufferUsageReportingInterval: number;
-    }
-
-    /**
-     * Class for managing ChromeDriver specific options.
-     */
-    class Options {
-        /**
-         * @constructor
-         */
-        constructor();
-
-        /**
-         * Extracts the ChromeDriver specific options from the given capabilities
-         * object.
-         * @param {!webdriver.Capabilities} capabilities The capabilities object.
-         * @return {!Options} The ChromeDriver options.
-         */
-        static fromCapabilities(capabilities: webdriver.Capabilities): Options;
-
-
-        /**
-         * Add additional command line arguments to use when launching the Chrome
-         * browser.  Each argument may be specified with or without the "--" prefix
-         * (e.g. "--foo" and "foo"). Arguments with an associated value should be
-         * delimited by an "=": "foo=bar".
-         * @param {...(string|!Array.<string>)} var_args The arguments to add.
-         * @return {!Options} A self reference.
-         */
-        addArguments(...var_args: string[]): Options;
-
-
-        /**
-         * List of Chrome command line switches to exclude that ChromeDriver by default
-         * passes when starting Chrome.  Do not prefix switches with "--".
-         *
-         * @param {...(string|!Array<string>)} var_args The switches to exclude.
-         * @return {!Options} A self reference.
-         */
-        excludeSwitches(...var_args: string[]): Options;
-
-
-        /**
-         * Add additional extensions to install when launching Chrome. Each extension
-         * should be specified as the path to the packed CRX file, or a Buffer for an
-         * extension.
-         * @param {...(string|!Buffer|!Array.<(string|!Buffer)>)} var_args The
-         *     extensions to add.
-         * @return {!Options} A self reference.
-         */
-        addExtensions(...var_args: any[]): Options;
-
-
-        /**
-         * Sets the path to the Chrome binary to use. On Mac OS X, this path should
-         * reference the actual Chrome executable, not just the application binary
-         * (e.g. "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome").
-         *
-         * The binary path be absolute or relative to the chromedriver server
-         * executable, but it must exist on the machine that will launch Chrome.
-         *
-         * @param {string} path The path to the Chrome binary to use.
-         * @return {!Options} A self reference.
-         */
-        setChromeBinaryPath(path: string): Options;
-
-
-        /**
-         * Sets whether to leave the started Chrome browser running if the controlling
-         * ChromeDriver service is killed before {@link webdriver.WebDriver#quit()} is
-         * called.
-         * @param {boolean} detach Whether to leave the browser running if the
-         *     chromedriver service is killed before the session.
-         * @return {!Options} A self reference.
-         */
-        detachDriver(detach: boolean): Options;
-
-
-        /**
-         * Sets the user preferences for Chrome's user profile. See the "Preferences"
-         * file in Chrome's user data directory for examples.
-         * @param {!Object} prefs Dictionary of user preferences to use.
-         * @return {!Options} A self reference.
-         */
-        setUserPreferences(prefs: any): Options;
-
-
-        /**
-         * Sets the logging preferences for the new session.
-         * @param {!webdriver.logging.Preferences} prefs The logging preferences.
-         * @return {!Options} A self reference.
-         */
-        setLoggingPrefs(prefs: webdriver.logging.Preferences): Options;
-
-        /**
-         * Sets the performance logging preferences. Options include:
-         *
-         * - `enableNetwork`: Whether or not to collect events from Network domain.
-         * - `enablePage`: Whether or not to collect events from Page domain.
-         * - `enableTimeline`: Whether or not to collect events from Timeline domain.
-         *     Note: when tracing is enabled, Timeline domain is implicitly disabled,
-         *     unless `enableTimeline` is explicitly set to true.
-         * - `tracingCategories`: A comma-separated string of Chrome tracing categories
-         *     for which trace events should be collected. An unspecified or empty
-         *     string disables tracing.
-         * - `bufferUsageReportingInterval`: The requested number of milliseconds
-         *     between DevTools trace buffer usage events. For example, if 1000, then
-         *     once per second, DevTools will report how full the trace buffer is. If a
-         *     report indicates the buffer usage is 100%, a warning will be issued.
-         *
-         * @param {{enableNetwork: boolean,
-         *          enablePage: boolean,
-         *          enableTimeline: boolean,
-         *          tracingCategories: string,
-         *          bufferUsageReportingInterval: number}} prefs The performance
-         *     logging preferences.
-         * @return {!Options} A self reference.
-         */
-        setPerfLoggingPrefs(prefs: IPerfLoggingPrefs): Options;
-
-
-        /**
-         * Sets preferences for the "Local State" file in Chrome's user data
-         * directory.
-         * @param {!Object} state Dictionary of local state preferences.
-         * @return {!Options} A self reference.
-         */
-        setLocalState(state: any): Options;
-
-
-        /**
-         * Sets the name of the activity hosting a Chrome-based Android WebView. This
-         * option must be set to connect to an [Android WebView](
-         * https://sites.google.com/a/chromium.org/chromedriver/getting-started/getting-started---android)
-         *
-         * @param {string} name The activity name.
-         * @return {!Options} A self reference.
-         */
-        androidActivity(name: string): Options;
-
-
-        /**
-         * Sets the device serial number to connect to via ADB. If not specified, the
-         * ChromeDriver will select an unused device at random. An error will be
-         * returned if all devices already have active sessions.
-         *
-         * @param {string} serial The device serial number to connect to.
-         * @return {!Options} A self reference.
-         */
-        androidDeviceSerial(serial: string): Options;
-
-
-        /**
-         * Configures the ChromeDriver to launch Chrome on Android via adb. This
-         * function is shorthand for
-         * {@link #androidPackage options.androidPackage('com.android.chrome')}.
-         * @return {!Options} A self reference.
-         */
-        androidChrome(): Options;
-
-
-        /**
-         * Sets the package name of the Chrome or WebView app.
-         *
-         * @param {?string} pkg The package to connect to, or `null` to disable Android
-         *     and switch back to using desktop Chrome.
-         * @return {!Options} A self reference.
-         */
-        androidPackage(pkg: string): Options;
-
-
-        /**
-         * Sets the process name of the Activity hosting the WebView (as given by `ps`).
-         * If not specified, the process name is assumed to be the same as
-         * {@link #androidPackage}.
-         *
-         * @param {string} processName The main activity name.
-         * @return {!Options} A self reference.
-         */
-        androidProcess(processName: string): Options;
-
-
-        /**
-         * Sets whether to connect to an already-running instead of the specified
-         * {@linkplain #androidProcess app} instead of launching the app with a clean
-         * data directory.
-         *
-         * @param {boolean} useRunning Whether to connect to a running instance.
-         * @return {!Options} A self reference.
-         */
-        androidUseRunningApp(useRunning: boolean): Options;
-
-
-        /**
-         * Sets the path to Chrome's log file. This path should exist on the machine
-         * that will launch Chrome.
-         * @param {string} path Path to the log file to use.
-         * @return {!Options} A self reference.
-         */
-        setChromeLogFile(path: string): Options;
-
-
-        /**
-         * Sets the proxy settings for the new session.
-         * @param {webdriver.ProxyConfig} proxy The proxy configuration to use.
-         * @return {!Options} A self reference.
-         */
-        setProxy(proxy: webdriver.ProxyConfig): Options;
-
-
-        /**
-         * Converts this options instance to a {@link webdriver.Capabilities} object.
-         * @param {webdriver.Capabilities=} opt_capabilities The capabilities to merge
-         *     these options into, if any.
-         * @return {!webdriver.Capabilities} The capabilities.
-         */
-        toCapabilities(opt_capabilities?: webdriver.Capabilities): webdriver.Capabilities;
-
-
-        /**
-         * Converts this instance to its JSON wire protocol representation. Note this
-         * function is an implementation not intended for general use.
-         * @return {{args: !Array.<string>,
-         *           binary: (string|undefined),
-         *           detach: boolean,
-         *           extensions: !Array.<string>,
-         *           localState: (Object|undefined),
-         *           logFile: (string|undefined),
-         *           prefs: (Object|undefined)}} The JSON wire protocol representation
-         *     of this instance.
-         */
-        toJSON(): IOptionsValues;
-    }
-
-    /**
-     * Creates {@link remote.DriverService} instances that manage a ChromeDriver
-     * server.
-     */
-    class ServiceBuilder {
-        /**
-         * @param {string=} opt_exe Path to the server executable to use. If omitted,
-         *     the builder will attempt to locate the chromedriver on the current
-         *     PATH.
-         * @throws {Error} If provided executable does not exist, or the chromedriver
-         *     cannot be found on the PATH.
-         * @constructor
-         */
-        constructor(opt_exe?: string);
-
-        /**
-         * Sets the port to start the ChromeDriver on.
-         * @param {number} port The port to use, or 0 for any free port.
-         * @return {!ServiceBuilder} A self reference.
-         * @throws {Error} If the port is invalid.
-         */
-        usingPort(port: number): ServiceBuilder;
-
-
-        /**
-         * Sets which port adb is listening to. _The ChromeDriver will connect to adb
-         * if an {@linkplain Options#androidPackage Android session} is requested, but
-         * adb **must** be started beforehand._
-         *
-         * @param {number} port Which port adb is running on.
-         * @return {!ServiceBuilder} A self reference.
-         */
-        setAdbPort(port: number): ServiceBuilder;
-
-
-        /**
-         * Sets the path of the log file the driver should log to. If a log file is
-         * not specified, the driver will log to stderr.
-         * @param {string} path Path of the log file to use.
-         * @return {!ServiceBuilder} A self reference.
-         */
-        loggingTo(path: string): ServiceBuilder;
-
-
-        /**
-         * Enables verbose logging.
-         * @return {!ServiceBuilder} A self reference.
-         */
-        enableVerboseLogging(): ServiceBuilder;
-
-
-        /**
-         * Sets the number of threads the driver should use to manage HTTP requests.
-         * By default, the driver will use 4 threads.
-         * @param {number} n The number of threads to use.
-         * @return {!ServiceBuilder} A self reference.
-         */
-        setNumHttpThreads(n: number): ServiceBuilder;
-
-
-        /**
-         * Sets the base path for WebDriver REST commands (e.g. "/wd/hub").
-         * By default, the driver will accept commands relative to "/".
-         * @param {string} path The base path to use.
-         * @return {!ServiceBuilder} A self reference.
-         */
-        setUrlBasePath(path: string): ServiceBuilder;
-
-
-        /**
-         * Defines the stdio configuration for the driver service. See
-         * {@code child_process.spawn} for more information.
-         * @param {(string|!Array.<string|number|!Stream|null|undefined>)} config The
-         *     configuration to use.
-         * @return {!ServiceBuilder} A self reference.
-         */
-        setStdio(config: string): ServiceBuilder;
-        setStdio(config: any[]): ServiceBuilder;
-
-
-        /**
-         * Defines the environment to start the server under. This settings will be
-         * inherited by every browser session started by the server.
-         * @param {!Object.<string, string>} env The environment to use.
-         * @return {!ServiceBuilder} A self reference.
-         */
-        withEnvironment(env: { [key: string]: string }): ServiceBuilder;
-
-
-        /**
-         * Creates a new DriverService using this instance's current configuration.
-         * @return {remote.DriverService} A new driver service using this instance's
-         *     current configuration.
-         * @throws {Error} If the driver exectuable was not specified and a default
-         *     could not be found on the current PATH.
-         */
-        build(): any;
-    }
-
-    /**
-     * Returns the default ChromeDriver service. If such a service has not been
-     * configured, one will be constructed using the default configuration for
-     * a ChromeDriver executable found on the system PATH.
-     * @return {!remote.DriverService} The default ChromeDriver service.
-     */
-    function getDefaultService(): any;
-
-    /**
-     * Sets the default service to use for new ChromeDriver instances.
-     * @param {!remote.DriverService} service The service to use.
-     * @throws {Error} If the default service is currently running.
-     */
-    function setDefaultService(service: any): void;
-}
-
-declare namespace firefox {
-    /**
-     * Manages a Firefox subprocess configured for use with WebDriver.
-     */
-    class Binary {
-        /**
-         * @param {string=} opt_exe Path to the Firefox binary to use. If not
-         *     specified, will attempt to locate Firefox on the current system.
-         * @constructor
-         */
-        constructor(opt_exe?: string);
-
-        /**
-         * Add arguments to the command line used to start Firefox.
-         * @param {...(string|!Array.<string>)} var_args Either the arguments to add as
-         *     varargs, or the arguments as an array.
-         */
-        addArguments(...var_args: string[]): void;
-
-
-        /**
-         * Launches Firefox and eturns a promise that will be fulfilled when the process
-         * terminates.
-         * @param {string} profile Path to the profile directory to use.
-         * @return {!promise.Promise.<!exec.Result>} A promise for the process result.
-         * @throws {Error} If this instance has already been started.
-         */
-        launch(profile: string): webdriver.promise.Promise<any>;
-
-
-        /**
-         * Kills the managed Firefox process.
-         * @return {!promise.Promise} A promise for when the process has terminated.
-         */
-        kill(): webdriver.promise.Promise<void>;
-    }
-
-    /**
-     * A WebDriver client for Firefox.
-     *
-     * @extends {webdriver.WebDriver}
-     */
-    class Driver extends webdriver.WebDriver {
-        /**
-         * @param {(Options|webdriver.Capabilities|Object)=} opt_config The
-         *    configuration options for this driver, specified as either an
-         *    {@link Options} or {@link webdriver.Capabilities}, or as a raw hash
-         *    object.
-         * @param {webdriver.promise.ControlFlow=} opt_flow The flow to
-         *     schedule commands through. Defaults to the active flow object.
-         * @constructor
-         */
-        constructor(opt_config?: webdriver.Capabilities, opt_flow?: webdriver.promise.ControlFlow);
-        constructor(opt_config?: any, opt_flow?: webdriver.promise.ControlFlow);
-    }
-
-    /**
-     * Configuration options for the FirefoxDriver.
-     */
-    class Options {
-        /**
-         * @constructor
-         */
-        constructor();
-
-        /**
-         * Sets the profile to use. The profile may be specified as a
-         * {@link Profile} object or as the path to an existing Firefox profile to use
-         * as a template.
-         *
-         * @param {(string|!Profile)} profile The profile to use.
-         * @return {!Options} A self reference.
-         */
-        setProfile(profile: string): Options;
-        setProfile(profile: Profile): Options;
-
-
-        /**
-         * Sets the binary to use. The binary may be specified as the path to a Firefox
-         * executable, or as a {@link Binary} object.
-         *
-         * @param {(string|!Binary)} binary The binary to use.
-         * @return {!Options} A self reference.
-         */
-        setBinary(binary: string): Options;
-        setBinary(binary: Binary): Options;
-
-
-        /**
-         * Sets the logging preferences for the new session.
-         * @param {webdriver.logging.Preferences} prefs The logging preferences.
-         * @return {!Options} A self reference.
-         */
-        setLoggingPreferences(prefs: webdriver.logging.Preferences): Options;
-
-
-        /**
-         * Sets the proxy to use.
-         *
-         * @param {webdriver.ProxyConfig} proxy The proxy configuration to use.
-         * @return {!Options} A self reference.
-         */
-        setProxy(proxy: webdriver.ProxyConfig): Options;
-
-
-        /**
-         * Converts these options to a {@link webdriver.Capabilities} instance.
-         *
-         * @return {!webdriver.Capabilities} A new capabilities object.
-         */
-        toCapabilities(opt_remote?: any): webdriver.Capabilities;
-    }
-
-    /**
-     * Models a Firefox proifle directory for use with the FirefoxDriver. The
-     * {@code Proifle} directory uses an in-memory model until {@link #writeToDisk}
-     * is called.
-     */
-    class Profile {
-        /**
-         * @param {string=} opt_dir Path to an existing Firefox profile directory to
-         *     use a template for this profile. If not specified, a blank profile will
-         *     be used.
-         * @constructor
-         */
-        constructor(opt_dir?: string);
-
-        /**
-         * Registers an extension to be included with this profile.
-         * @param {string} extension Path to the extension to include, as either an
-         *     unpacked extension directory or the path to a xpi file.
-         */
-        addExtension(extension: string): void;
-
-
-        /**
-         * Sets a desired preference for this profile.
-         * @param {string} key The preference key.
-         * @param {(string|number|boolean)} value The preference value.
-         * @throws {Error} If attempting to set a frozen preference.
-         */
-        setPreference(key: string, value: string): void;
-        setPreference(key: string, value: number): void;
-        setPreference(key: string, value: boolean): void;
-
-
-        /**
-         * Returns the currently configured value of a profile preference. This does
-         * not include any defaults defined in the profile's template directory user.js
-         * file (if a template were specified on construction).
-         * @param {string} key The desired preference.
-         * @return {(string|number|boolean|undefined)} The current value of the
-         *     requested preference.
-         */
-        getPreference(key: string): any;
-
-
-        /**
-         * @return {number} The port this profile is currently configured to use, or
-         *     0 if the port will be selected at random when the profile is written
-         *     to disk.
-         */
-        getPort(): number;
-
-
-        /**
-         * Sets the port to use for the WebDriver extension loaded by this profile.
-         * @param {number} port The desired port, or 0 to use any free port.
-         */
-        setPort(port: number): void;
-
-
-        /**
-         * @return {boolean} Whether the FirefoxDriver is configured to automatically
-         *     accept untrusted SSL certificates.
-         */
-        acceptUntrustedCerts(): boolean;
-
-
-        /**
-         * Sets whether the FirefoxDriver should automatically accept untrusted SSL
-         * certificates.
-         * @param {boolean} value .
-         */
-        setAcceptUntrustedCerts(value: boolean): void;
-
-
-        /**
-         * Sets whether to assume untrusted certificates come from untrusted issuers.
-         * @param {boolean} value .
-         */
-        setAssumeUntrustedCertIssuer(value: boolean): void;
-
-
-        /**
-         * @return {boolean} Whether to assume untrusted certs come from untrusted
-         *     issuers.
-         */
-        assumeUntrustedCertIssuer(): boolean;
-
-
-        /**
-         * Sets whether to use native events with this profile.
-         * @param {boolean} enabled .
-         */
-        setNativeEventsEnabled(enabled: boolean): void;
-
-
-        /**
-         * Returns whether native events are enabled in this profile.
-         * @return {boolean} .
-         */
-        nativeEventsEnabled(): boolean;
-
-
-        /**
-         * Writes this profile to disk.
-         * @param {boolean=} opt_excludeWebDriverExt Whether to exclude the WebDriver
-         *     extension from the generated profile. Used to reduce the size of an
-         *     {@link #encode() encoded profile} since the server will always install
-         *     the extension itself.
-         * @return {!promise.Promise.<string>} A promise for the path to the new
-         *     profile directory.
-         */
-        writeToDisk(opt_excludeWebDriverExt?: boolean): webdriver.promise.Promise<string>;
-
-
-        /**
-         * Encodes this profile as a zipped, base64 encoded directory.
-         * @return {!promise.Promise.<string>} A promise for the encoded profile.
-         */
-        encode(): webdriver.promise.Promise<string>;
-    }
-}
-
-declare namespace executors {
-    /**
-     * Creates a command executor that uses WebDriver's JSON wire protocol.
-     * @param url The server's URL, or a promise that will resolve to that URL.
-     * @returns {!webdriver.CommandExecutor} The new command executor.
-     */
-    function createExecutor(url: string): webdriver.CommandExecutor;
-    function createExecutor(url: webdriver.promise.Promise<string>): webdriver.CommandExecutor;
-}
-
-declare namespace webdriver {
-
-    namespace error {
-        interface IErrorCode {
-            SUCCESS: number;
-
-            NO_SUCH_ELEMENT: number;
-            NO_SUCH_FRAME: number;
-            UNKNOWN_COMMAND: number;
-            UNSUPPORTED_OPERATION: number;  // Alias for UNKNOWN_COMMAND.
-            STALE_ELEMENT_REFERENCE: number;
-            ELEMENT_NOT_VISIBLE: number;
-            INVALID_ELEMENT_STATE: number;
-            UNKNOWN_ERROR: number;
-            ELEMENT_NOT_SELECTABLE: number;
-            JAVASCRIPT_ERROR: number;
-            XPATH_LOOKUP_ERROR: number;
-            TIMEOUT: number;
-            NO_SUCH_WINDOW: number;
-            INVALID_COOKIE_DOMAIN: number;
-            UNABLE_TO_SET_COOKIE: number;
-            MODAL_DIALOG_OPENED: number;
-            UNEXPECTED_ALERT_OPEN: number;
-            NO_SUCH_ALERT: number;
-            NO_MODAL_DIALOG_OPEN: number;
-            SCRIPT_TIMEOUT: number;
-            INVALID_ELEMENT_COORDINATES: number;
-            IME_NOT_AVAILABLE: number;
-            IME_ENGINE_ACTIVATION_FAILED: number;
-            INVALID_SELECTOR_ERROR: number;
-            SESSION_NOT_CREATED: number;
-            MOVE_TARGET_OUT_OF_BOUNDS: number;
-            SQL_DATABASE_ERROR: number;
-            INVALID_XPATH_SELECTOR: number;
-            INVALID_XPATH_SELECTOR_RETURN_TYPE: number;
-            // The following error codes are derived straight from HTTP return codes.
-            METHOD_NOT_ALLOWED: number;
-        }
-
-        var ErrorCode: IErrorCode;
-
-        /**
-         * Error extension that includes error status codes from the WebDriver wire
-         * protocol:
-         * http://code.google.com/p/selenium/wiki/JsonWireProtocol#Response_Status_Codes
-         *
-         * @extends {Error}
-         */
-        class Error {
-
-            //region Constructors
-
-            /**
-             * @param {!bot.ErrorCode} code The error's status code.
-             * @param {string=} opt_message Optional error message.
-             * @constructor
-             */
-            constructor(code: number, opt_message?: string);
-
-            //endregion
-
-            //region Static Properties
-
-            /**
-             * Status strings enumerated in the W3C WebDriver working draft.
-             * @enum {string}
-             * @see http://www.w3.org/TR/webdriver/#status-codes
-             */
-            static State: {
-                ELEMENT_NOT_SELECTABLE: string;
-                ELEMENT_NOT_VISIBLE: string;
-                IME_ENGINE_ACTIVATION_FAILED: string;
-                IME_NOT_AVAILABLE: string;
-                INVALID_COOKIE_DOMAIN: string;
-                INVALID_ELEMENT_COORDINATES: string;
-                INVALID_ELEMENT_STATE: string;
-                INVALID_SELECTOR: string;
-                JAVASCRIPT_ERROR: string;
-                MOVE_TARGET_OUT_OF_BOUNDS: string;
-                NO_SUCH_ALERT: string;
-                NO_SUCH_DOM: string;
-                NO_SUCH_ELEMENT: string;
-                NO_SUCH_FRAME: string;
-                NO_SUCH_WINDOW: string;
-                SCRIPT_TIMEOUT: string;
-                SESSION_NOT_CREATED: string;
-                STALE_ELEMENT_REFERENCE: string;
-                SUCCESS: string;
-                TIMEOUT: string;
-                UNABLE_TO_SET_COOKIE: string;
-                UNEXPECTED_ALERT_OPEN: string;
-                UNKNOWN_COMMAND: string;
-                UNKNOWN_ERROR: string;
-                UNSUPPORTED_OPERATION: string;
-            };
-
-            //endregion
-
-            //region Properties
-
-            /**
-             * This error's status code.
-             * @type {!bot.ErrorCode}
-             */
-            code: number;
-
-            /** @type {string} */
-            state: string;
-
-            /** @override */
-            message: string;
-
-            /** @override */
-            name: string;
-
-            /** @override */
-            stack: string;
-
-            /**
-             * Flag used for duck-typing when this code is embedded in a Firefox extension.
-             * This is required since an Error thrown in one component and then reported
-             * to another will fail instanceof checks in the second component.
-             * @type {boolean}
-             */
-            isAutomationError: boolean;
-
-            //endregion
-
-            //region Methods
-
-            /** @return {string} The string representation of this error. */
-            toString(): string;
-
-            //endregion
-        }
-    }
-
-    namespace logging {
-
-        /**
-         * A hash describing log preferences.
-         * @typedef {Object.<webdriver.logging.Type, webdriver.logging.LevelName>}
-         */
-        class Preferences {
-            setLevel(type: string, level: ILevel): void;
-            toJSON(): { [key: string]: string };
-        }
-
-        interface IType {
-            /** Logs originating from the browser. */
-            BROWSER: string;
-            /** Logs from a WebDriver client. */
-            CLIENT: string;
-            /** Logs from a WebDriver implementation. */
-            DRIVER: string;
-            /** Logs related to performance. */
-            PERFORMANCE: string;
-            /** Logs from the remote server. */
-            SERVER: string;
-        }
-
-        /**
-         * Common log types.
-         * @enum {string}
-         */
-        var Type: IType;
-
-        /**
-         * Logging levels.
-         * @enum {{value: number, name: webdriver.logging.LevelName}}
-         */
-        interface ILevel {
-            value: number;
-            name: string;
-        }
-
-        interface ILevelValues {
-            ALL: ILevel;
-            DEBUG: ILevel;
-            INFO: ILevel;
-            WARNING: ILevel;
-            SEVERE: ILevel;
-            OFF: ILevel;
-        }
-
-        var Level: ILevelValues;
-
-        /**
-         * Converts a level name or value to a {@link webdriver.logging.Level} value.
-         * If the name/value is not recognized, {@link webdriver.logging.Level.ALL}
-         * will be returned.
-         * @param {(number|string)} nameOrValue The log level name, or value, to
-         *     convert .
-         * @return {!webdriver.logging.Level} The converted level.
-         */
-        function getLevel(nameOrValue: string): ILevel;
-        function getLevel(nameOrValue: number): ILevel;
-
-        interface IEntryJSON {
-            level: string;
-            message: string;
-            timestamp: number;
-            type: string;
-        }
-
-        /**
-         * A single log entry.
-         */
-        class Entry {
-
-            //region Constructors
-
-            /**
-             * @param {(!webdriver.logging.Level|string)} level The entry level.
-             * @param {string} message The log message.
-             * @param {number=} opt_timestamp The time this entry was generated, in
-             *     milliseconds since 0:00:00, January 1, 1970 UTC. If omitted, the
-             *     current time will be used.
-             * @param {string=} opt_type The log type, if known.
-             * @constructor
-             */
-            constructor(level: ILevel, message: string, opt_timestamp?:number, opt_type?:string);
-            constructor(level: string, message: string, opt_timestamp?:number, opt_type?:string);
-
-            //endregion
-
-            //region Public Properties
-
-            /** @type {!webdriver.logging.Level} */
-            level: ILevel;
-
-            /** @type {string} */
-            message: string;
-
-            /** @type {number} */
-            timestamp: number;
-
-            /** @type {string} */
-            type: string;
-
-            //endregion
-
-            //region Static Methods
-
-            /**
-             * Converts a {@link goog.debug.LogRecord} into a
-             * {@link webdriver.logging.Entry}.
-             * @param {!goog.debug.LogRecord} logRecord The record to convert.
-             * @param {string=} opt_type The log type.
-             * @return {!webdriver.logging.Entry} The converted entry.
-             */
-            static fromClosureLogRecord(logRecord: any, opt_type?:string): Entry;
-
-            //endregion
-
-            //region Methods
-
-            /**
-             * @return {{level: string, message: string, timestamp: number,
-             *           type: string}} The JSON representation of this entry.
-             */
-            toJSON(): IEntryJSON;
-
-            //endregion
-        }
-    }
-
-    namespace promise {
-        //region Functions
-
-        /**
-         * Given an array of promises, will return a promise that will be fulfilled
-         * with the fulfillment values of the input array's values. If any of the
-         * input array's promises are rejected, the returned promise will be rejected
-         * with the same reason.
-         *
-         * @param {!Array.<(T|!webdriver.promise.Promise.<T>)>} arr An array of
-         *     promises to wait on.
-         * @return {!webdriver.promise.Promise.<!Array.<T>>} A promise that is
-         *     fulfilled with an array containing the fulfilled values of the
-         *     input array, or rejected with the same reason as the first
-         *     rejected value.
-         * @template T
-         */
-        function all(arr: Promise<any>[]): Promise<any[]>;
-
-        /**
-         * Invokes the appropriate callback function as soon as a promised
-         * {@code value} is resolved. This function is similar to
-         * {@link webdriver.promise.when}, except it does not return a new promise.
-         * @param {*} value The value to observe.
-         * @param {Function} callback The function to call when the value is
-         *     resolved successfully.
-         * @param {Function=} opt_errback The function to call when the value is
-         *     rejected.
-         */
-        function asap(value: any, callback: Function, opt_errback?: Function): void;
-
-        /**
-         * @return {!webdriver.promise.ControlFlow} The currently active control flow.
-         */
-        function controlFlow(): ControlFlow;
-
-        /**
-         * Creates a new control flow. The provided callback will be invoked as the
-         * first task within the new flow, with the flow as its sole argument. Returns
-         * a promise that resolves to the callback result.
-         * @param {function(!webdriver.promise.ControlFlow)} callback The entry point
-         *     to the newly created flow.
-         * @return {!webdriver.promise.Promise} A promise that resolves to the callback
-         *     result.
-         */
-        function createFlow<R>(callback: (flow: ControlFlow) => R): Promise<R>;
-
-        /**
-         * Determines whether a {@code value} should be treated as a promise.
-         * Any object whose "then" property is a function will be considered a promise.
-         *
-         * @param {*} value The value to test.
-         * @return {boolean} Whether the value is a promise.
-         */
-        function isPromise(value: any): boolean;
-
-        /**
-         * Tests is a function is a generator.
-         * @param {!Function} fn The function to test.
-         * @return {boolean} Whether the function is a generator.
-         */
-        function isGenerator(fn: Function): boolean;
-
-        /**
-         * Creates a promise that will be resolved at a set time in the future.
-         * @param {number} ms The amount of time, in milliseconds, to wait before
-         *     resolving the promise.
-         * @return {!webdriver.promise.Promise} The promise.
-         */
-        function delayed(ms: number): Promise<void>;
-
-        /**
-         * Calls a function for each element in an array, and if the function returns
-         * true adds the element to a new array.
-         *
-         * <p>If the return value of the filter function is a promise, this function
-         * will wait for it to be fulfilled before determining whether to insert the
-         * element into the new array.
-         *
-         * <p>If the filter function throws or returns a rejected promise, the promise
-         * returned by this function will be rejected with the same reason. Only the
-         * first failure will be reported; all subsequent errors will be silently
-         * ignored.
-         *
-         * @param {!(Array.<TYPE>|webdriver.promise.Promise.<!Array.<TYPE>>)} arr The
-         *     array to iterator over, or a promise that will resolve to said array.
-         * @param {function(this: SELF, TYPE, number, !Array.<TYPE>): (
-         *             boolean|webdriver.promise.Promise.<boolean>)} fn The function
-         *     to call for each element in the array.
-         * @param {SELF=} opt_self The object to be used as the value of 'this' within
-         *     {@code fn}.
-         * @template TYPE, SELF
-         */
-        function filter<T>(arr: T[], fn: (element: T, index: number, array: T[]) => any, opt_self?: any): Promise<T[]>;
-        function filter<T>(arr: Promise<T[]>, fn: (element: T, index: number, array: T[]) => any, opt_self?: any): Promise<T[]>
-
-        /**
-         * Creates a new deferred object.
-         * @return {!webdriver.promise.Deferred} The new deferred object.
-         */
-        function defer<T>(): Deferred<T>;
-
-        /**
-         * Creates a promise that has been resolved with the given value.
-         * @param {*=} opt_value The resolved value.
-         * @return {!webdriver.promise.Promise} The resolved promise.
-         */
-        function fulfilled<T>(opt_value?: T): Promise<T>;
-
-        /**
-         * Calls a function for each element in an array and inserts the result into a
-         * new array, which is used as the fulfillment value of the promise returned
-         * by this function.
-         *
-         * <p>If the return value of the mapping function is a promise, this function
-         * will wait for it to be fulfilled before inserting it into the new array.
-         *
-         * <p>If the mapping function throws or returns a rejected promise, the
-         * promise returned by this function will be rejected with the same reason.
-         * Only the first failure will be reported; all subsequent errors will be
-         * silently ignored.
-         *
-         * @param {!(Array.<TYPE>|webdriver.promise.Promise.<!Array.<TYPE>>)} arr The
-         *     array to iterator over, or a promise that will resolve to said array.
-         * @param {function(this: SELF, TYPE, number, !Array.<TYPE>): ?} fn The
-         *     function to call for each element in the array. This function should
-         *     expect three arguments (the element, the index, and the array itself.
-         * @param {SELF=} opt_self The object to be used as the value of 'this' within
-         *     {@code fn}.
-         * @template TYPE, SELF
-         */
-        function map<T>(arr: T[], fn: (element: T, index: number, array: T[]) => any, opt_self?: any): Promise<T[]>
-        function map<T>(arr: Promise<T[]>, fn: (element: T, index: number, array: T[]) => any, opt_self?: any): Promise<T[]>
-
-        /**
-         * Creates a promise that has been rejected with the given reason.
-         * @param {*=} opt_reason The rejection reason; may be any value, but is
-         *     usually an Error or a string.
-         * @return {!webdriver.promise.Promise} The rejected promise.
-         */
-        function rejected(opt_reason?: any): Promise<void>;
-
-        /**
-         * Wraps a function that is assumed to be a node-style callback as its final
-         * argument. This callback takes two arguments: an error value (which will be
-         * null if the call succeeded), and the success value as the second argument.
-         * If the call fails, the returned promise will be rejected, otherwise it will
-         * be resolved with the result.
-         * @param {!Function} fn The function to wrap.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     result of the provided function's callback.
-         */
-        function checkedNodeCall<T>(fn: Function, ...var_args: any[]): Promise<T>;
-
-        /**
-         * Consumes a {@code GeneratorFunction}. Each time the generator yields a
-         * promise, this function will wait for it to be fulfilled before feeding the
-         * fulfilled value back into {@code next}. Likewise, if a yielded promise is
-         * rejected, the rejection error will be passed to {@code throw}.
-         *
-         * <p>Example 1: the Fibonacci Sequence.
-         * <pre><code>
-         * webdriver.promise.consume(function* fibonacci() {
-         *   var n1 = 1, n2 = 1;
-         *   for (var i = 0; i < 4; ++i) {
-         *     var tmp = yield n1 + n2;
-         *     n1 = n2;
-         *     n2 = tmp;
-         *   }
-         *   return n1 + n2;
-         * }).then(function(result) {
-         *   console.log(result);  // 13
-         * });
-         * </code></pre>
-         *
-         * <p>Example 2: a generator that throws.
-         * <pre><code>
-         * webdriver.promise.consume(function* () {
-         *   yield webdriver.promise.delayed(250).then(function() {
-         *     throw Error('boom');
-         *   });
-         * }).thenCatch(function(e) {
-         *   console.log(e.toString());  // Error: boom
-         * });
-         * </code></pre>
-         *
-         * @param {!Function} generatorFn The generator function to execute.
-         * @param {Object=} opt_self The object to use as "this" when invoking the
-         *     initial generator.
-         * @param {...*} var_args Any arguments to pass to the initial generator.
-         * @return {!webdriver.promise.Promise.<?>} A promise that will resolve to the
-         *     generator's final result.
-         * @throws {TypeError} If the given function is not a generator.
-         */
-        function consume<T>(generatorFn: Function, opt_self?: any, ...var_args: any[]): Promise<T>;
-
-        /**
-         * Registers an observer on a promised {@code value}, returning a new promise
-         * that will be resolved when the value is. If {@code value} is not a promise,
-         * then the return promise will be immediately resolved.
-         * @param {*} value The value to observe.
-         * @param {Function=} opt_callback The function to call when the value is
-         *     resolved successfully.
-         * @param {Function=} opt_errback The function to call when the value is
-         *     rejected.
-         * @return {!webdriver.promise.Promise} A new promise.
-         */
-        function when<T,R>(value: T, opt_callback?: (value: T) => any, opt_errback?: (error: any) => any): Promise<R>;
-        function when<T,R>(value: Promise<T>, opt_callback?: (value: T) => any, opt_errback?: (error: any) => any): Promise<R>;
-
-        /**
-         * Returns a promise that will be resolved with the input value in a
-         * fully-resolved state. If the value is an array, each element will be fully
-         * resolved. Likewise, if the value is an object, all keys will be fully
-         * resolved. In both cases, all nested arrays and objects will also be
-         * fully resolved.  All fields are resolved in place; the returned promise will
-         * resolve on {@code value} and not a copy.
-         *
-         * Warning: This function makes no checks against objects that contain
-         * cyclical references:
-         *
-         *   var value = {};
-         *   value['self'] = value;
-         *   webdriver.promise.fullyResolved(value);  // Stack overflow.
-         *
-         * @param {*} value The value to fully resolve.
-         * @return {!webdriver.promise.Promise} A promise for a fully resolved version
-         *     of the input value.
-         */
-        function fullyResolved<T>(value: any): Promise<T>;
-
-        /**
-         * Changes the default flow to use when no others are active.
-         * @param {!webdriver.promise.ControlFlow} flow The new default flow.
-         * @throws {Error} If the default flow is not currently active.
-         */
-        function setDefaultFlow(flow: ControlFlow): void;
-
-        //endregion
-
-        /**
-         * Error used when the computation of a promise is cancelled.
-         *
-         * @extends {goog.debug.Error}
-         * @final
-         */
-        class CancellationError {
-            /**
-             * @param {string=} opt_msg The cancellation message.
-             * @constructor
-             */
-            constructor(opt_msg?: string);
-
-            name: string;
-            message: string;
-        }
-
-        interface IThenable<T> {
-            /**
-             * Cancels the computation of this promise's value, rejecting the promise in the
-             * process. This method is a no-op if the promise has alreayd been resolved.
-             *
-             * @param {string=} opt_reason The reason this promise is being cancelled.
-             */
-            cancel(opt_reason?: string): void;
-
-
-            /** @return {boolean} Whether this promise's value is still being computed. */
-            isPending(): boolean;
-
-
-            /**
-             * Registers listeners for when this instance is resolved.
-             *
-             * @param opt_callback The
-             *     function to call if this promise is successfully resolved. The function
-             *     should expect a single argument: the promise's resolved value.
-             * @param opt_errback The
-             *     function to call if this promise is rejected. The function should expect
-             *     a single argument: the rejection reason.
-             * @return A new promise which will be
-             *     resolved with the result of the invoked callback.
-             */
-            then<R>(opt_callback?: (value: T) => Promise<R>, opt_errback?: (error: any) => any): Promise<R>;
-
-            /**
-             * Registers listeners for when this instance is resolved.
-             *
-             * @param opt_callback The
-             *     function to call if this promise is successfully resolved. The function
-             *     should expect a single argument: the promise's resolved value.
-             * @param opt_errback The
-             *     function to call if this promise is rejected. The function should expect
-             *     a single argument: the rejection reason.
-             * @return A new promise which will be
-             *     resolved with the result of the invoked callback.
-             */
-            then<R>(opt_callback?: (value: T) => R, opt_errback?: (error: any) => any): Promise<R>;
-
-
-            /**
-             * Registers a listener for when this promise is rejected. This is synonymous
-             * with the {@code catch} clause in a synchronous API:
-             * <pre><code>
-             *   // Synchronous API:
-             *   try {
-             *     doSynchronousWork();
-             *   } catch (ex) {
-             *     console.error(ex);
-             *   }
-             *
-             *   // Asynchronous promise API:
-             *   doAsynchronousWork().thenCatch(function(ex) {
-             *     console.error(ex);
-             *   });
-             * </code></pre>
-             *
-             * @param {function(*): (R|webdriver.promise.Promise.<R>)} errback The function
-             *     to call if this promise is rejected. The function should expect a single
-             *     argument: the rejection reason.
-             * @return {!webdriver.promise.Promise.<R>} A new promise which will be
-             *     resolved with the result of the invoked callback.
-             * @template R
-             */
-            thenCatch<R>(errback: (error: any) => any): Promise<R>;
-
-
-            /**
-             * Registers a listener to invoke when this promise is resolved, regardless
-             * of whether the promise's value was successfully computed. This function
-             * is synonymous with the {@code finally} clause in a synchronous API:
-             * <pre><code>
-             *   // Synchronous API:
-             *   try {
-             *     doSynchronousWork();
-             *   } finally {
-             *     cleanUp();
-             *   }
-             *
-             *   // Asynchronous promise API:
-             *   doAsynchronousWork().thenFinally(cleanUp);
-             * </code></pre>
-             *
-             * <b>Note:</b> similar to the {@code finally} clause, if the registered
-             * callback returns a rejected promise or throws an error, it will silently
-             * replace the rejection error (if any) from this promise:
-             * <pre><code>
-             *   try {
-             *     throw Error('one');
-             *   } finally {
-             *     throw Error('two');  // Hides Error: one
-             *   }
-             *
-             *   webdriver.promise.rejected(Error('one'))
-             *       .thenFinally(function() {
-             *         throw Error('two');  // Hides Error: one
-             *       });
-             * </code></pre>
-             *
-             *
-             * @param {function(): (R|webdriver.promise.Promise.<R>)} callback The function
-             *     to call when this promise is resolved.
-             * @return {!webdriver.promise.Promise.<R>} A promise that will be fulfilled
-             *     with the callback result.
-             * @template R
-             */
-            thenFinally<R>(callback: () => any): Promise<R>;
-        }
-
-        /**
-        * Thenable is a promise-like object with a {@code then} method which may be
-        * used to schedule callbacks on a promised value.
-        *
-        * @interface
-        * @template T
-        */
-        class Thenable<T> implements IThenable<T> {
-            /**
-             * Cancels the computation of this promise's value, rejecting the promise in the
-             * process. This method is a no-op if the promise has alreayd been resolved.
-             *
-             * @param {string=} opt_reason The reason this promise is being cancelled.
-             */
-            cancel(opt_reason?: string): void;
-
-
-            /** @return {boolean} Whether this promise's value is still being computed. */
-            isPending(): boolean;
-
-
-            /**
-             * Registers listeners for when this instance is resolved.
-             *
-             * @param opt_callback The
-             *     function to call if this promise is successfully resolved. The function
-             *     should expect a single argument: the promise's resolved value.
-             * @param opt_errback The
-             *     function to call if this promise is rejected. The function should expect
-             *     a single argument: the rejection reason.
-             * @return A new promise which will be
-             *     resolved with the result of the invoked callback.
-             */
-            then<R>(opt_callback?: (value: T) => Promise<R>, opt_errback?: (error: any) => any): Promise<R>;
-
-            /**
-             * Registers listeners for when this instance is resolved.
-             *
-             * @param opt_callback The
-             *     function to call if this promise is successfully resolved. The function
-             *     should expect a single argument: the promise's resolved value.
-             * @param opt_errback The
-             *     function to call if this promise is rejected. The function should expect
-             *     a single argument: the rejection reason.
-             * @return A new promise which will be
-             *     resolved with the result of the invoked callback.
-             */
-            then<R>(opt_callback?: (value: T) => R, opt_errback?: (error: any) => any): Promise<R>;
-
-
-            /**
-             * Registers a listener for when this promise is rejected. This is synonymous
-             * with the {@code catch} clause in a synchronous API:
-             * <pre><code>
-             *   // Synchronous API:
-             *   try {
-             *     doSynchronousWork();
-             *   } catch (ex) {
-             *     console.error(ex);
-             *   }
-             *
-             *   // Asynchronous promise API:
-             *   doAsynchronousWork().thenCatch(function(ex) {
-             *     console.error(ex);
-             *   });
-             * </code></pre>
-             *
-             * @param {function(*): (R|webdriver.promise.Promise.<R>)} errback The function
-             *     to call if this promise is rejected. The function should expect a single
-             *     argument: the rejection reason.
-             * @return {!webdriver.promise.Promise.<R>} A new promise which will be
-             *     resolved with the result of the invoked callback.
-             * @template R
-             */
-            thenCatch<R>(errback: (error: any) => any): Promise<R>;
-
-
-            /**
-             * Registers a listener to invoke when this promise is resolved, regardless
-             * of whether the promise's value was successfully computed. This function
-             * is synonymous with the {@code finally} clause in a synchronous API:
-             * <pre><code>
-             *   // Synchronous API:
-             *   try {
-             *     doSynchronousWork();
-             *   } finally {
-             *     cleanUp();
-             *   }
-             *
-             *   // Asynchronous promise API:
-             *   doAsynchronousWork().thenFinally(cleanUp);
-             * </code></pre>
-             *
-             * <b>Note:</b> similar to the {@code finally} clause, if the registered
-             * callback returns a rejected promise or throws an error, it will silently
-             * replace the rejection error (if any) from this promise:
-             * <pre><code>
-             *   try {
-             *     throw Error('one');
-             *   } finally {
-             *     throw Error('two');  // Hides Error: one
-             *   }
-             *
-             *   webdriver.promise.rejected(Error('one'))
-             *       .thenFinally(function() {
-             *         throw Error('two');  // Hides Error: one
-             *       });
-             * </code></pre>
-             *
-             *
-             * @param {function(): (R|webdriver.promise.Promise.<R>)} callback The function
-             *     to call when this promise is resolved.
-             * @return {!webdriver.promise.Promise.<R>} A promise that will be fulfilled
-             *     with the callback result.
-             * @template R
-             */
-            thenFinally<R>(callback: () => any): Promise<R>;
-
-            /**
-             * Adds a property to a class prototype to allow runtime checks of whether
-             * instances of that class implement the Thenable interface. This function will
-             * also ensure the prototype's {@code then} function is exported from compiled
-             * code.
-             * @param {function(new: webdriver.promise.Thenable, ...[?])} ctor The
-             *     constructor whose prototype to modify.
-             */
-            static addImplementation(ctor: Function): void;
-
-
-            /**
-             * Checks if an object has been tagged for implementing the Thenable interface
-             * as defined by {@link webdriver.promise.Thenable.addImplementation}.
-             * @param {*} object The object to test.
-             * @return {boolean} Whether the object is an implementation of the Thenable
-             *     interface.
-             */
-            static isImplementation(object: any): boolean;
-        }
-
-        interface IFulfilledCallback<T> {
-          (value: T|IThenable<T>|Thenable<T>|void): void;
-        }
-
-        interface IRejectedCallback {
-          (reason: any): void;
-        }
-
-        /**
-         * Represents the eventual value of a completed operation. Each promise may be
-         * in one of three states: pending, fulfilled, or rejected. Each promise starts
-         * in the pending state and may make a single transition to either a
-         * fulfilled or rejected state, at which point the promise is considered
-         * resolved.
-         *
-         * @implements {promise.Thenable<T>}
-         * @template T
-         * @see http://promises-aplus.github.io/promises-spec/
-         */
-        class Promise<T> implements IThenable<T> {
-            /**
-             * @param {function(
-             *           function((T|IThenable<T>|Thenable)=),
-             *           function(*=))} resolver
-             *     Function that is invoked immediately to begin computation of this
-             *     promise's value. The function should accept a pair of callback functions,
-             *     one for fulfilling the promise and another for rejecting it.
-             * @param {promise.ControlFlow=} opt_flow The control flow
-             *     this instance was created under. Defaults to the currently active flow.
-             * @constructor
-            */
-            constructor(resolver: (onFulfilled: IFulfilledCallback<T>, onRejected: IRejectedCallback)=>void, opt_flow?: ControlFlow);
-            constructor(); // For angular-protractor/angular-protractor-tests.ts
-
-            //region Methods
-
-            /**
-             * Cancels the computation of this promise's value, rejecting the promise in the
-             * process.
-             * @param {*} reason The reason this promise is being cancelled. If not an
-             *     {@code Error}, one will be created using the value's string
-             *     representation.
-             */
-            cancel(reason: any): void;
-
-            /** @return {boolean} Whether this promise's value is still being computed. */
-            isPending(): boolean;
-
-            /**
-             * Registers listeners for when this instance is resolved. This function most
-             * overridden by subtypes.
-             *
-             * @param opt_callback The function to call if this promise is
-             *     successfully resolved. The function should expect a single argument: the
-             *     promise's resolved value.
-             * @param opt_errback The function to call if this promise is
-             *     rejected. The function should expect a single argument: the rejection
-             *     reason.
-             * @return A new promise which will be resolved
-             *     with the result of the invoked callback.
-             */
-            then<R>(opt_callback?: (value: T) => Promise<R>, opt_errback?: (error: any) => any): Promise<R>;
-
-            /**
-             * Registers listeners for when this instance is resolved. This function most
-             * overridden by subtypes.
-             *
-             * @param opt_callback The function to call if this promise is
-             *     successfully resolved. The function should expect a single argument: the
-             *     promise's resolved value.
-             * @param opt_errback The function to call if this promise is
-             *     rejected. The function should expect a single argument: the rejection
-             *     reason.
-             * @return A new promise which will be resolved
-             *     with the result of the invoked callback.
-             */
-            then<R>(opt_callback?: (value: T) => R, opt_errback?: (error: any) => any): Promise<R>;
-
-
-            /**
-             * Registers a listener for when this promise is rejected. This is synonymous
-             * with the {@code catch} clause in a synchronous API:
-             * <pre><code>
-             *   // Synchronous API:
-             *   try {
-             *     doSynchronousWork();
-             *   } catch (ex) {
-             *     console.error(ex);
-             *   }
-             *
-             *   // Asynchronous promise API:
-             *   doAsynchronousWork().thenCatch(function(ex) {
-             *     console.error(ex);
-             *   });
-             * </code></pre>
-             *
-             * @param {function(*): (R|webdriver.promise.Promise.<R>)} errback The function
-             *     to call if this promise is rejected. The function should expect a single
-             *     argument: the rejection reason.
-             * @return {!webdriver.promise.Promise.<R>} A new promise which will be
-             *     resolved with the result of the invoked callback.
-             * @template R
-             */
-            thenCatch<R>(errback: (error: any) => any): Promise<R>;
-
-
-            /**
-             * Registers a listener to invoke when this promise is resolved, regardless
-             * of whether the promise's value was successfully computed. This function
-             * is synonymous with the {@code finally} clause in a synchronous API:
-             * <pre><code>
-             *   // Synchronous API:
-             *   try {
-             *     doSynchronousWork();
-             *   } finally {
-             *     cleanUp();
-             *   }
-             *
-             *   // Asynchronous promise API:
-             *   doAsynchronousWork().thenFinally(cleanUp);
-             * </code></pre>
-             *
-             * <b>Note:</b> similar to the {@code finally} clause, if the registered
-             * callback returns a rejected promise or throws an error, it will silently
-             * replace the rejection error (if any) from this promise:
-             * <pre><code>
-             *   try {
-             *     throw Error('one');
-             *   } finally {
-             *     throw Error('two');  // Hides Error: one
-             *   }
-             *
-             *   webdriver.promise.rejected(Error('one'))
-             *       .thenFinally(function() {
-             *         throw Error('two');  // Hides Error: one
-             *       });
-             * </code></pre>
-             *
-             *
-             * @param {function(): (R|webdriver.promise.Promise.<R>)} callback The function
-             *     to call when this promise is resolved.
-             * @return {!webdriver.promise.Promise.<R>} A promise that will be fulfilled
-             *     with the callback result.
-             * @template R
-             */
-            thenFinally<R>(callback: () => any): Promise<R>;
-
-            //endregion
-        }
-
-        /**
-         * Represents a value that will be resolved at some point in the future. This
-         * class represents the protected "producer" half of a Promise - each Deferred
-         * has a {@code promise} property that may be returned to consumers for
-         * registering callbacks, reserving the ability to resolve the deferred to the
-         * producer.
-         *
-         * <p>If this Deferred is rejected and there are no listeners registered before
-         * the next turn of the event loop, the rejection will be passed to the
-         * {@link webdriver.promise.ControlFlow} as an unhandled failure.
-         *
-         * <p>If this Deferred is cancelled, the cancellation reason will be forward to
-         * the Deferred's canceller function (if provided). The canceller may return a
-         * truth-y value to override the reason provided for rejection.
-         *
-         * @extends {webdriver.promise.Promise}
-         */
-        class Deferred<T> extends Promise<T> {
-            //region Constructors
-
-            /**
-             *
-             * @param {webdriver.promise.ControlFlow=} opt_flow The control flow
-             *     this instance was created under. This should only be provided during
-             *     unit tests.
-             * @constructor
-             */
-            constructor(opt_flow?: ControlFlow);
-
-            //endregion
-
-            static State_: {
-                BLOCKED: number;
-                PENDING: number;
-                REJECTED: number;
-                RESOLVED: number;
-            };
-
-            //region Properties
-
-            /**
-             * The consumer promise for this instance. Provides protected access to the
-             * callback registering functions.
-             * @type {!webdriver.promise.Promise}
-             */
-            promise: Promise<T>;
-
-            //endregion
-
-            //region Methods
-
-            /**
-             * Rejects this promise. If the error is itself a promise, this instance will
-             * be chained to it and be rejected with the error's resolved value.
-             * @param {*=} opt_error The rejection reason, typically either a
-             *     {@code Error} or a {@code string}.
-             */
-            reject(opt_error?: any): void;
-            errback(opt_error?: any): void;
-
-            /**
-             * Resolves this promise with the given value. If the value is itself a
-             * promise and not a reference to this deferred, this instance will wait for
-             * it before resolving.
-             * @param {*=} opt_value The resolved value.
-             */
-            fulfill(opt_value?: T): void;
-
-            /**
-             * Removes all of the listeners previously registered on this deferred.
-             * @throws {Error} If this deferred has already been resolved.
-             */
-            removeAll(): void;
-
-            //endregion
-        }
-
-        interface IControlFlowTimer {
-            clearInterval: (ms: number) => void;
-            clearTimeout: (ms: number) => void;
-            setInterval: (fn: Function, ms: number) => number;
-            setTimeout: (fn: Function, ms: number) => number;
-        }
-
-        /**
-         * Handles the execution of scheduled tasks, each of which may be an
-         * asynchronous operation. The control flow will ensure tasks are executed in
-         * the ordered scheduled, starting each task only once those before it have
-         * completed.
-         *
-         * Each task scheduled within this flow may return a
-         * {@link webdriver.promise.Promise} to indicate it is an asynchronous
-         * operation. The ControlFlow will wait for such promises to be resolved before
-         * marking the task as completed.
-         *
-         * Tasks and each callback registered on a {@link webdriver.promise.Promise}
-         * will be run in their own ControlFlow frame.  Any tasks scheduled within a
-         * frame will take priority over previously scheduled tasks. Furthermore, if any
-         * of the tasks in the frame fail, the remainder of the tasks in that frame will
-         * be discarded and the failure will be propagated to the user through the
-         * callback/task's promised result.
-         *
-         * Each time a ControlFlow empties its task queue, it will fire an
-         * {@link webdriver.promise.ControlFlow.EventType.IDLE IDLE} event. Conversely,
-         * whenever the flow terminates due to an unhandled error, it will remove all
-         * remaining tasks in its queue and fire an
-         * {@link webdriver.promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION
-         * UNCAUGHT_EXCEPTION} event. If there are no listeners registered with the
-         * flow, the error will be rethrown to the global error handler.
-         *
-         * @extends {EventEmitter}
-         * @final
-         */
-        class ControlFlow extends EventEmitter {
-            /**
-             * @constructor
-             */
-            constructor();
-
-            /**
-             * Events that may be emitted by an {@link webdriver.promise.ControlFlow}.
-             * @enum {string}
-             */
-            static EventType: {
-                /** Emitted when all tasks have been successfully executed. */
-                    IDLE: string;
-
-                /** Emitted when a ControlFlow has been reset. */
-                    RESET: string;
-
-                /** Emitted whenever a new task has been scheduled. */
-                    SCHEDULE_TASK: string;
-
-                /**
-                 * Emitted whenever a control flow aborts due to an unhandled promise
-                 * rejection. This event will be emitted along with the offending rejection
-                 * reason. Upon emitting this event, the control flow will empty its task
-                 * queue and revert to its initial state.
-                 */
-                    UNCAUGHT_EXCEPTION: string;
-            };
-
-            /**
-             * Returns a string representation of this control flow, which is its current
-             * {@link #getSchedule() schedule}, sans task stack traces.
-             * @return {string} The string representation of this contorl flow.
-             * @override
-             */
-            toString(): string;
-
-            /**
-             * Resets this instance, clearing its queue and removing all event listeners.
-             */
-            reset(): void;
-
-            /**
-             * Generates an annotated string describing the internal state of this control
-             * flow, including the currently executing as well as pending tasks. If
-             * {@code opt_includeStackTraces === true}, the string will include the
-             * stack trace from when each task was scheduled.
-             * @param {string=} opt_includeStackTraces Whether to include the stack traces
-             *     from when each task was scheduled. Defaults to false.
-             * @return {string} String representation of this flow's internal state.
-             */
-            getSchedule(opt_includeStackTraces?: boolean): string;
-
-            /**
-             * Schedules a task for execution. If there is nothing currently in the
-             * queue, the task will be executed in the next turn of the event loop. If
-             * the task function is a generator, the task will be executed using
-             * {@link webdriver.promise.consume}.
-             *
-             * @param {function(): (T|promise.Promise<T>)} fn The function to
-             *     call to start the task. If the function returns a
-             *     {@link webdriver.promise.Promise}, this instance will wait for it to be
-             *     resolved before starting the next task.
-             * @param {string=} opt_description A description of the task.
-             * @return {!promise.Promise<T>} A promise that will be resolved
-             *     with the result of the action.
-             * @template T
-             */
-            execute<T>(fn: ()=>(T|Promise<T>), opt_description?: string): Promise<T>;
-
-            /**
-             * Inserts a {@code setTimeout} into the command queue. This is equivalent to
-             * a thread sleep in a synchronous programming language.
-             *
-             * @param {number} ms The timeout delay, in milliseconds.
-             * @param {string=} opt_description A description to accompany the timeout.
-             * @return {!webdriver.promise.Promise} A promise that will be resolved with
-             *     the result of the action.
-             */
-            timeout(ms: number, opt_description?: string): Promise<void>;
-
-            /**
-             * Schedules a task that shall wait for a condition to hold. Each condition
-             * function may return any value, but it will always be evaluated as a boolean.
-             *
-             * Condition functions may schedule sub-tasks with this instance, however,
-             * their execution time will be factored into whether a wait has timed out.
-             *
-             * In the event a condition returns a Promise, the polling loop will wait for
-             * it to be resolved before evaluating whether the condition has been satisfied.
-             * The resolution time for a promise is factored into whether a wait has timed
-             * out.
-             *
-             * If the condition function throws, or returns a rejected promise, the
-             * wait task will fail.
-             *
-             * If the condition is defined as a promise, the flow will wait for it to
-             * settle. If the timeout expires before the promise settles, the promise
-             * returned by this function will be rejected.
-             *
-             * If this function is invoked with `timeout === 0`, or the timeout is omitted,
-             * the flow will wait indefinitely for the condition to be satisfied.
-             *
-             * @param {(!promise.Promise<T>|function())} condition The condition to poll,
-             *     or a promise to wait on.
-             * @param {number=} opt_timeout How long to wait, in milliseconds, for the
-             *     condition to hold before timing out. If omitted, the flow will wait
-             *     indefinitely.
-             * @param {string=} opt_message An optional error message to include if the
-             *     wait times out; defaults to the empty string.
-             * @return {!promise.Promise<T>} A promise that will be fulfilled
-             *     when the condition has been satisified. The promise shall be rejected if
-             *     the wait times out waiting for the condition.
-             * @throws {TypeError} If condition is not a function or promise or if timeout
-             *     is not a number >= 0.
-             * @template T
-             */
-            wait<T>(condition: Promise<T>|Function, opt_timeout?: number, opt_message?: string): Promise<T>;
-        }
-    }
-
-    namespace stacktrace {
-        /**
-         * Class representing one stack frame.
-         */
-        class Frame {
-            /**
-             * @param {(string|undefined)} context Context object, empty in case of global
-             *     functions or if the browser doesn't provide this information.
-             * @param {(string|undefined)} name Function name, empty in case of anonymous
-             *     functions.
-             * @param {(string|undefined)} alias Alias of the function if available. For
-             *     example the function name will be 'c' and the alias will be 'b' if the
-             *     function is defined as <code>a.b = function c() {};</code>.
-             * @param {(string|undefined)} path File path or URL including line number and
-             *     optionally column number separated by colons.
-             * @constructor
-             */
-            constructor(context?: string, name?: string, alias?: string, path?: string);
-
-            /**
-             * @return {string} The function name or empty string if the function is
-             *     anonymous and the object field which it's assigned to is unknown.
-             */
-            getName(): string;
-
-
-            /**
-             * @return {string} The url or empty string if it is unknown.
-             */
-            getUrl(): string;
-
-
-            /**
-             * @return {number} The line number if known or -1 if it is unknown.
-             */
-            getLine(): number;
-
-
-            /**
-             * @return {number} The column number if known and -1 if it is unknown.
-             */
-            getColumn(): number;
-
-
-            /**
-             * @return {boolean} Whether the stack frame contains an anonymous function.
-             */
-            isAnonymous(): boolean;
-
-
-            /**
-             * Converts this frame to its string representation using V8's stack trace
-             * format: http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
-             * @return {string} The string representation of this frame.
-             * @override
-             */
-            toString(): string;
-        }
-
-        /**
-         * Stores a snapshot of the stack trace at the time this instance was created.
-         * The stack trace will always be adjusted to exclude this function call.
-         */
-        class Snapshot {
-            /**
-             * @param {number=} opt_slice The number of frames to remove from the top of
-             *     the generated stack trace.
-             * @constructor
-             */
-            constructor(opt_slice?: number);
-
-            /**
-             * @return {!Array.<!webdriver.stacktrace.Frame>} The parsed stack trace.
-             */
-            getStacktrace(): Frame[];
-        }
-
-        /**
-         * Formats an error's stack trace.
-         * @param {!(Error|goog.testing.JsUnitException)} error The error to format.
-         * @return {!(Error|goog.testing.JsUnitException)} The formatted error.
-         */
-        function format(error: any): any;
-
-        /**
-         * Gets the native stack trace if available otherwise follows the call chain.
-         * The generated trace will exclude all frames up to and including the call to
-         * this function.
-         * @return {!Array.<!webdriver.stacktrace.Frame>} The frames of the stack trace.
-         */
-        function get(): Frame[];
-
-        /**
-         * Whether the current browser supports stack traces.
-         *
-         * @type {boolean}
-         * @const
-         */
-        var BROWSER_SUPPORTED: boolean;
-    }
-
-    namespace until {
-        /**
-         * Defines a condition to
-         */
-        class Condition<T> {
-            /**
-             * @param {string} message A descriptive error message. Should complete the
-             *     sentence "Waiting [...]"
-             * @param {function(!webdriver.WebDriver): OUT} fn The condition function to
-             *     evaluate on each iteration of the wait loop.
-             * @constructor
-             */
-            constructor(message: string, fn: (webdriver: WebDriver) => any);
-
-            /** @return {string} A description of this condition. */
-            description(): string;
-
-            /** @type {function(!webdriver.WebDriver): OUT} */
-            fn(webdriver: WebDriver): any;
-        }
-
-        /**
-         * Creates a condition that will wait until the input driver is able to switch
-         * to the designated frame. The target frame may be specified as:
-         * <ol>
-         *   <li>A numeric index into {@code window.frames} for the currently selected
-         *       frame.
-         *   <li>A {@link webdriver.WebElement}, which must reference a FRAME or IFRAME
-         *       element on the current page.
-         *   <li>A locator which may be used to first locate a FRAME or IFRAME on the
-         *       current page before attempting to switch to it.
-         * </ol>
-         *
-         * <p>Upon successful resolution of this condition, the driver will be left
-         * focused on the new frame.
-         *
-         * @param {!(number|webdriver.WebElement|
-         *           webdriver.Locator|webdriver.By.Hash|
-         *           function(!webdriver.WebDriver): !webdriver.WebElement)} frame
-         *     The frame identifier.
-         * @return {!until.Condition.<boolean>} A new condition.
-         */
-        function ableToSwitchToFrame(frame: number|WebElement|Locator|By.Hash|((webdriver: WebDriver)=>WebElement)): Condition<boolean>;
-
-        /**
-         * Creates a condition that waits for an alert to be opened. Upon success, the
-         * returned promise will be fulfilled with the handle for the opened alert.
-         *
-         * @return {!until.Condition.<!webdriver.Alert>} The new condition.
-         */
-        function alertIsPresent(): Condition<Alert>;
-
-        /**
-         * Creates a condition that will wait for the given element to be disabled.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isEnabled
-         */
-        function elementIsDisabled(element: WebElement): Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element to be enabled.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isEnabled
-         */
-        function elementIsEnabled(element: WebElement): Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element to be deselected.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isSelected
-         */
-        function elementIsNotSelected(element: WebElement): Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element to be in the DOM,
-         * yet not visible to the user.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isDisplayed
-         */
-        function elementIsNotVisible(element: WebElement): Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element to be selected.
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isSelected
-         */
-        function elementIsSelected(element: WebElement): Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element to become visible.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#isDisplayed
-         */
-        function elementIsVisible(element: WebElement): Condition<boolean>;
-
-        /**
-         * Creates a condition that will loop until an element is
-         * {@link webdriver.WebDriver#findElement found} with the given locator.
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Function)} locator The locator
-         *     to use.
-         * @return {!until.Condition.<!webdriver.WebElement>} The new condition.
-         */
-        function elementLocated(locator: Locator|By.Hash|Function): Condition<WebElement>;
-
-        /**
-         * Creates a condition that will wait for the given element's
-         * {@link webdriver.WebDriver#getText visible text} to contain the given
-         * substring.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @param {string} substr The substring to search for.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#getText
-         */
-        function elementTextContains(element: WebElement, substr: string): Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element's
-         * {@link webdriver.WebDriver#getText visible text} to match the given
-         * {@code text} exactly.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @param {string} text The expected text.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#getText
-         */
-        function elementTextIs(element: WebElement, text: string): Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the given element's
-         * {@link webdriver.WebDriver#getText visible text} to match a regular
-         * expression.
-         *
-         * @param {!webdriver.WebElement} element The element to test.
-         * @param {!RegExp} regex The regular expression to test against.
-         * @return {!until.Condition.<boolean>} The new condition.
-         * @see webdriver.WebDriver#getText
-         */
-        function elementTextMatches(element: WebElement, regex: RegExp): Condition<boolean>;
-
-        /**
-         * Creates a condition that will loop until at least one element is
-         * {@link webdriver.WebDriver#findElement found} with the given locator.
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Function)} locator The locator
-         *     to use.
-         * @return {!until.Condition.<!Array.<!webdriver.WebElement>>} The new
-         *     condition.
-         */
-        function elementsLocated(locator: Locator|By.Hash|Function): Condition<WebElement[]>;
-
-        /**
-         * Creates a condition that will wait for the given element to become stale. An
-         * element is considered stale once it is removed from the DOM, or a new page
-         * has loaded.
-         *
-         * @param {!webdriver.WebElement} element The element that should become stale.
-         * @return {!until.Condition.<boolean>} The new condition.
-         */
-        function stalenessOf(element: WebElement): Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the current page's title to contain
-         * the given substring.
-         *
-         * @param {string} substr The substring that should be present in the page
-         *     title.
-         * @return {!until.Condition.<boolean>} The new condition.
-         */
-        function titleContains(substr: string): Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the current page's title to match the
-         * given value.
-         *
-         * @param {string} title The expected page title.
-         * @return {!until.Condition.<boolean>} The new condition.
-         */
-        function titleIs(title: string): Condition<boolean>;
-
-        /**
-         * Creates a condition that will wait for the current page's title to match the
-         * given regular expression.
-         *
-         * @param {!RegExp} regex The regular expression to test against.
-         * @return {!until.Condition.<boolean>} The new condition.
-         */
-        function titleMatches(regex: RegExp): Condition<boolean>;
-    }
-
-    interface ILocation {
-        x: number;
-        y: number;
-    }
-
-    interface ISize {
-        width: number;
-        height: number;
-    }
-
-    /**
-     * Enumeration of the buttons used in the advanced interactions API.
-     * NOTE: A TypeScript enum was not used so that this class could be extended in Protractor.
-     * @enum {number}
-     */
-    interface IButton {
-        LEFT: number;
-        MIDDLE: number;
-        RIGHT: number;
-    }
-
-    var Button: IButton;
-
-    /**
-     * Representations of pressable keys that aren't text.  These are stored in
-     * the Unicode PUA (Private Use Area) code points, 0xE000-0xF8FF.  Refer to
-     * http://www.google.com.au/search?&q=unicode+pua&btnG=Search
-     *
-     * @enum {string}
-     */
-    interface IKey {
-        NULL: string;
-        CANCEL: string;  // ^break
-        HELP: string;
-        BACK_SPACE: string;
-        TAB: string;
-        CLEAR: string;
-        RETURN: string;
-        ENTER: string;
-        SHIFT: string;
-        CONTROL: string;
-        ALT: string;
-        PAUSE: string;
-        ESCAPE: string;
-        SPACE: string;
-        PAGE_UP: string;
-        PAGE_DOWN: string;
-        END: string;
-        HOME: string;
-        ARROW_LEFT: string;
-        LEFT: string;
-        ARROW_UP: string;
-        UP: string;
-        ARROW_RIGHT: string;
-        RIGHT: string;
-        ARROW_DOWN: string;
-        DOWN: string;
-        INSERT: string;
-        DELETE: string;
-        SEMICOLON: string;
-        EQUALS: string;
-
-        NUMPAD0: string;  // number pad keys
-        NUMPAD1: string;
-        NUMPAD2: string;
-        NUMPAD3: string;
-        NUMPAD4: string;
-        NUMPAD5: string;
-        NUMPAD6: string;
-        NUMPAD7: string;
-        NUMPAD8: string;
-        NUMPAD9: string;
-        MULTIPLY: string;
-        ADD: string;
-        SEPARATOR: string;
-        SUBTRACT: string;
-        DECIMAL: string;
-        DIVIDE: string;
-
-        F1: string;  // function keys
-        F2: string;
-        F3: string;
-        F4: string;
-        F5: string;
-        F6: string;
-        F7: string;
-        F8: string;
-        F9: string;
-        F10: string;
-        F11: string;
-        F12: string;
-
-        COMMAND: string;  // Apple command key
-        META: string;   // alias for Windows key
-
-        /**
-         * Simulate pressing many keys at once in a "chord". Takes a sequence of
-         * {@link webdriver.Key}s or strings, appends each of the values to a string,
-         * and adds the chord termination key ({@link webdriver.Key.NULL}) and returns
-         * the resultant string.
-         *
-         * Note: when the low-level webdriver key handlers see Keys.NULL, active
-         * modifier keys (CTRL/ALT/SHIFT/etc) release via a keyup event.
-         *
-         * @param {...string} var_args The key sequence to concatenate.
-         * @return {string} The null-terminated key sequence.
-         * @see http://code.google.com/p/webdriver/issues/detail?id=79
-         */
-        chord: (...var_args: string[]) => string;
-    }
-
-    var Key: IKey;
-
-    /**
-     * Class for defining sequences of complex user interactions. Each sequence
-     * will not be executed until {@link #perform} is called.
-     *
-     * <p>Example:<pre><code>
-     *   new webdriver.ActionSequence(driver).
-     *       keyDown(webdriver.Key.SHIFT).
-     *       click(element1).
-     *       click(element2).
-     *       dragAndDrop(element3, element4).
-     *       keyUp(webdriver.Key.SHIFT).
-     *       perform();
-     * </pre></code>
-     *
-     */
-    class ActionSequence {
-
-        //region Constructors
-
-        /**
-         * @param {!webdriver.WebDriver} driver The driver instance to use.
-         * @constructor
-         */
-        constructor(driver: WebDriver);
-
-        //endregion
-
-        //region Methods
-
-        /**
-         * Executes this action sequence.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved once
-         *     this sequence has completed.
-         */
-        perform(): webdriver.promise.Promise<void>;
-
-        /**
-         * Moves the mouse.  The location to move to may be specified in terms of the
-         * mouse's current location, an offset relative to the top-left corner of an
-         * element, or an element (in which case the middle of the element is used).
-         * @param {(!webdriver.WebElement|{x: number, y: number})} location The
-         *     location to drag to, as either another WebElement or an offset in pixels.
-         * @param {{x: number, y: number}=} opt_offset An optional offset, in pixels.
-         *     Defaults to (0, 0).
-         * @return {!webdriver.ActionSequence} A self reference.
-         */
-        mouseMove(location: WebElement, opt_offset?: ILocation): ActionSequence;
-        mouseMove(location: ILocation): ActionSequence;
-
-        /**
-         * Presses a mouse button. The mouse button will not be released until
-         * {@link #mouseUp} is called, regardless of whether that call is made in this
-         * sequence or another. The behavior for out-of-order events (e.g. mouseDown,
-         * click) is undefined.
-         *
-         * <p>If an element is provided, the mouse will first be moved to the center
-         * of that element. This is equivalent to:
-         * <pre><code>sequence.mouseMove(element).mouseDown()</code></pre>
-         *
-         * <p>Warning: this method currently only supports the left mouse button. See
-         * http://code.google.com/p/selenium/issues/detail?id=4047
-         *
-         * @param {(webdriver.WebElement|webdriver.Button)=} opt_elementOrButton Either
-         *     the element to interact with or the button to click with.
-         *     Defaults to {@link webdriver.Button.LEFT} if neither an element nor
-         *     button is specified.
-         * @param {webdriver.Button=} opt_button The button to use. Defaults to
-         *     {@link webdriver.Button.LEFT}. Ignored if a button is provided as the
-         *     first argument.
-         * @return {!webdriver.ActionSequence} A self reference.
-         */
-        mouseDown(opt_elementOrButton?: WebElement, opt_button?: number): ActionSequence;
-        mouseDown(opt_elementOrButton?: number): ActionSequence;
-
-        /**
-         * Releases a mouse button. Behavior is undefined for calling this function
-         * without a previous call to {@link #mouseDown}.
-         *
-         * <p>If an element is provided, the mouse will first be moved to the center
-         * of that element. This is equivalent to:
-         * <pre><code>sequence.mouseMove(element).mouseUp()</code></pre>
-         *
-         * <p>Warning: this method currently only supports the left mouse button. See
-         * http://code.google.com/p/selenium/issues/detail?id=4047
-         *
-         * @param {(webdriver.WebElement|webdriver.Button)=} opt_elementOrButton Either
-         *     the element to interact with or the button to click with.
-         *     Defaults to {@link webdriver.Button.LEFT} if neither an element nor
-         *     button is specified.
-         * @param {webdriver.Button=} opt_button The button to use. Defaults to
-         *     {@link webdriver.Button.LEFT}. Ignored if a button is provided as the
-         *     first argument.
-         * @return {!webdriver.ActionSequence} A self reference.
-         */
-        mouseUp(opt_elementOrButton?: WebElement, opt_button?: number): ActionSequence;
-        mouseUp(opt_elementOrButton?: number): ActionSequence;
-
-        /**
-         * Convenience function for performing a "drag and drop" manuever. The target
-         * element may be moved to the location of another element, or by an offset (in
-         * pixels).
-         * @param {!webdriver.WebElement} element The element to drag.
-         * @param {(!webdriver.WebElement|{x: number, y: number})} location The
-         *     location to drag to, either as another WebElement or an offset in pixels.
-         * @return {!webdriver.ActionSequence} A self reference.
-         */
-        dragAndDrop(element: WebElement, location: WebElement): ActionSequence;
-        dragAndDrop(element: WebElement, location: ILocation): ActionSequence;
-
-        /**
-         * Clicks a mouse button.
-         *
-         * <p>If an element is provided, the mouse will first be moved to the center
-         * of that element. This is equivalent to:
-         * <pre><code>sequence.mouseMove(element).click()</code></pre>
-         *
-         * @param {(webdriver.WebElement|webdriver.Button)=} opt_elementOrButton Either
-         *     the element to interact with or the button to click with.
-         *     Defaults to {@link webdriver.Button.LEFT} if neither an element nor
-         *     button is specified.
-         * @param {webdriver.Button=} opt_button The button to use. Defaults to
-         *     {@link webdriver.Button.LEFT}. Ignored if a button is provided as the
-         *     first argument.
-         * @return {!webdriver.ActionSequence} A self reference.
-         */
-        click(opt_elementOrButton?: WebElement, opt_button?: number): ActionSequence;
-        click(opt_elementOrButton?: number): ActionSequence;
-
-        /**
-         * Double-clicks a mouse button.
-         *
-         * <p>If an element is provided, the mouse will first be moved to the center of
-         * that element. This is equivalent to:
-         * <pre><code>sequence.mouseMove(element).doubleClick()</code></pre>
-         *
-         * <p>Warning: this method currently only supports the left mouse button. See
-         * http://code.google.com/p/selenium/issues/detail?id=4047
-         *
-         * @param {(webdriver.WebElement|webdriver.Button)=} opt_elementOrButton Either
-         *     the element to interact with or the button to click with.
-         *     Defaults to {@link webdriver.Button.LEFT} if neither an element nor
-         *     button is specified.
-         * @param {webdriver.Button=} opt_button The button to use. Defaults to
-         *     {@link webdriver.Button.LEFT}. Ignored if a button is provided as the
-         *     first argument.
-         * @return {!webdriver.ActionSequence} A self reference.
-         */
-        doubleClick(opt_elementOrButton?: WebElement, opt_button?: number): ActionSequence;
-        doubleClick(opt_elementOrButton?: number): ActionSequence;
-
-        /**
-         * Performs a modifier key press. The modifier key is <em>not released</em>
-         * until {@link #keyUp} or {@link #sendKeys} is called. The key press will be
-         * targetted at the currently focused element.
-         * @param {!webdriver.Key} key The modifier key to push. Must be one of
-         *     {ALT, CONTROL, SHIFT, COMMAND, META}.
-         * @return {!webdriver.ActionSequence} A self reference.
-         * @throws {Error} If the key is not a valid modifier key.
-         */
-        keyDown(key: string): ActionSequence;
-
-        /**
-         * Performs a modifier key release. The release is targetted at the currently
-         * focused element.
-         * @param {!webdriver.Key} key The modifier key to release. Must be one of
-         *     {ALT, CONTROL, SHIFT, COMMAND, META}.
-         * @return {!webdriver.ActionSequence} A self reference.
-         * @throws {Error} If the key is not a valid modifier key.
-         */
-        keyUp(key: string): ActionSequence;
-
-        /**
-         * Simulates typing multiple keys. Each modifier key encountered in the
-         * sequence will not be released until it is encountered again. All key events
-         * will be targetted at the currently focused element.
-         * @param {...(string|!webdriver.Key|!Array.<(string|!webdriver.Key)>)} var_args
-         *     The keys to type.
-         * @return {!webdriver.ActionSequence} A self reference.
-         * @throws {Error} If the key is not a valid modifier key.
-         */
-        sendKeys(...var_args: any[]): ActionSequence;
-
-        //endregion
-    }
-
-
-    /**
-     * Class for defining sequences of user touch interactions. Each sequence
-     * will not be executed until {@link #perform} is called.
-     *
-     * Example:
-     *
-     *     new webdriver.TouchSequence(driver).
-     *         tapAndHold({x: 0, y: 0}).
-     *         move({x: 3, y: 4}).
-     *         release({x: 10, y: 10}).
-     *         perform();
-     */
-    class TouchSequence {
-      /*
-       * @param {!webdriver.WebDriver} driver The driver instance to use.
-       * @constructor
-       */
-      constructor(driver: WebDriver);
-
-
-      /**
-       * Executes this action sequence.
-       * @return {!webdriver.promise.Promise} A promise that will be resolved once
-       *     this sequence has completed.
-       */
-      perform(): webdriver.promise.Promise<void>;
-
-
-      /**
-       * Taps an element.
-       *
-       * @param {!webdriver.WebElement} elem The element to tap.
-       * @return {!webdriver.TouchSequence} A self reference.
-       */
-      tap(elem: WebElement): TouchSequence;
-
-
-      /**
-       * Double taps an element.
-       *
-       * @param {!webdriver.WebElement} elem The element to double tap.
-       * @return {!webdriver.TouchSequence} A self reference.
-       */
-      doubleTap(elem: WebElement): TouchSequence;
-
-
-      /**
-       * Long press on an element.
-       *
-       * @param {!webdriver.WebElement} elem The element to long press.
-       * @return {!webdriver.TouchSequence} A self reference.
-       */
-      longPress(elem: WebElement): TouchSequence;
-
-
-      /**
-       * Touch down at the given location.
-       *
-       * @param {{ x: number, y: number }} location The location to touch down at.
-       * @return {!webdriver.TouchSequence} A self reference.
-       */
-      tapAndHold(location: ILocation): TouchSequence;
-
-
-      /**
-       * Move a held {@linkplain #tapAndHold touch} to the specified location.
-       *
-       * @param {{x: number, y: number}} location The location to move to.
-       * @return {!webdriver.TouchSequence} A self reference.
-       */
-      move(location: ILocation): TouchSequence;
-
-
-      /**
-       * Release a held {@linkplain #tapAndHold touch} at the specified location.
-       *
-       * @param {{x: number, y: number}} location The location to release at.
-       * @return {!webdriver.TouchSequence} A self reference.
-       */
-      release(location: ILocation): TouchSequence;
-
-
-      /**
-       * Scrolls the touch screen by the given offset.
-       *
-       * @param {{x: number, y: number}} offset The offset to scroll to.
-       * @return {!webdriver.TouchSequence} A self reference.
-       */
-      scroll(offset: IOffset): TouchSequence;
-
-
-      /**
-       * Scrolls the touch screen, starting on `elem` and moving by the specified
-       * offset.
-       *
-       * @param {!webdriver.WebElement} elem The element where scroll starts.
-       * @param {{x: number, y: number}} offset The offset to scroll to.
-       * @return {!webdriver.TouchSequence} A self reference.
-       */
-      scrollFromElement(elem: WebElement, offset: IOffset): TouchSequence;
-
-
-      /**
-       * Flick, starting anywhere on the screen, at speed xspeed and yspeed.
-       *
-       * @param {{xspeed: number, yspeed: number}} speed The speed to flick in each
-       direction, in pixels per second.
-       * @return {!webdriver.TouchSequence} A self reference.
-       */
-      flick(speed: ISpeed): TouchSequence;
-
-
-      /**
-       * Flick starting at elem and moving by x and y at specified speed.
-       *
-       * @param {!webdriver.WebElement} elem The element where flick starts.
-       * @param {{x: number, y: number}} offset The offset to flick to.
-       * @param {number} speed The speed to flick at in pixels per second.
-       * @return {!webdriver.TouchSequence} A self reference.
-       */
-      flickElement(elem: WebElement, offset: IOffset, speed: number): TouchSequence;
-    }
-
-
-    interface IOffset {
-      x: number;
-      y: number;
-    }
-
-
-    interface ISpeed {
-      xspeed: number;
-      yspeed: number;
-    }
-
-
-    /**
-     * Represents a modal dialog such as {@code alert}, {@code confirm}, or
-     * {@code prompt}. Provides functions to retrieve the message displayed with
-     * the alert, accept or dismiss the alert, and set the response text (in the
-     * case of {@code prompt}).
-     */
-    interface Alert {
-
-        //region Methods
-
-        /**
-         * Retrieves the message text displayed with this alert. For instance, if the
-         * alert were opened with alert("hello"), then this would return "hello".
-         * @return {!webdriver.promise.Promise} A promise that will be resolved to the
-         *     text displayed with this alert.
-         */
-        getText(): webdriver.promise.Promise<string>;
-
-        /**
-         * Accepts this alert.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when
-         *     this command has completed.
-         */
-        accept(): webdriver.promise.Promise<void>;
-
-        /**
-         * Dismisses this alert.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when
-         *     this command has completed.
-         */
-        dismiss(): webdriver.promise.Promise<void>;
-
-        /**
-         * Sets the response text on this alert. This command will return an error if
-         * the underlying alert does not support response text (e.g. window.alert and
-         * window.confirm).
-         * @param {string} text The text to set.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when
-         *     this command has completed.
-         */
-        sendKeys(text: string): webdriver.promise.Promise<void>;
-
-        //endregion
-
-    }
-
-    /**
-     * AlertPromise is a promise that will be fulfilled with an Alert. This promise
-     * serves as a forward proxy on an Alert, allowing calls to be scheduled
-     * directly on this instance before the underlying Alert has been fulfilled. In
-     * other words, the following two statements are equivalent:
-     * <pre><code>
-     *     driver.switchTo().alert().dismiss();
-     *     driver.switchTo().alert().then(function(alert) {
-     *       return alert.dismiss();
-     *     });
-     * </code></pre>
-     *
-     * @param {!webdriver.WebDriver} driver The driver controlling the browser this
-     *     alert is attached to.
-     * @param {!webdriver.promise.Thenable.<!webdriver.Alert>} alert A thenable
-     *     that will be fulfilled with the promised alert.
-     * @constructor
-     * @extends {webdriver.Alert}
-     * @implements {webdriver.promise.Thenable.<!webdriver.Alert>}
-     * @final
-     */
-    interface AlertPromise extends Alert, webdriver.promise.IThenable<Alert> {
-    }
-
-    /**
-     * An error returned to indicate that there is an unhandled modal dialog on the
-     * current page.
-     * @extends {bot.Error}
-     */
-    interface UnhandledAlertError extends webdriver.error.Error {
-        //region Methods
-
-        /**
-         * @return {string} The text displayed with the unhandled alert.
-         */
-        getAlertText(): string;
-
-        /**
-         * @return {!webdriver.Alert} The open alert.
-         * @deprecated Use {@link #getAlertText}. This method will be removed in
-         *     2.45.0.
-         */
-        getAlert(): Alert;
-
-
-        //endregion
-    }
-
-    /**
-     * Recognized browser names.
-     * @enum {string}
-     */
-    interface IBrowser {
-        ANDROID: string;
-        CHROME: string;
-        FIREFOX: string;
-        INTERNET_EXPLORER: string;
-        IPAD: string;
-        IPHONE: string;
-        OPERA: string;
-        PHANTOM_JS: string;
-        SAFARI: string;
-        HTMLUNIT: string;
-    }
-
-    var Browser: IBrowser;
-
-    interface ProxyConfig {
-        proxyType: string;
-        proxyAutoconfigUrl?: string;
-        ftpProxy?: string;
-        httpProxy?: string;
-        sslProxy?: string;
-        noProxy?: string;
-    }
-
-    class Builder {
-
-        //region Constructors
-
-        /**
-         * @constructor
-         */
-        constructor();
-
-        //endregion
-
-        //region Methods
-
-        /**
-         * Creates a new WebDriver client based on this builder's current
-         * configuration.
-         *
-         * @return {!webdriver.WebDriver} A new WebDriver instance.
-         * @throws {Error} If the current configuration is invalid.
-         */
-        build(): WebDriver;
-
-        /**
-         * Configures the target browser for clients created by this instance.
-         * Any calls to {@link #withCapabilities} after this function will
-         * overwrite these settings.
-         *
-         * <p>You may also define the target browser using the {@code SELENIUM_BROWSER}
-         * environment variable. If set, this environment variable should be of the
-         * form {@code browser[:[version][:platform]]}.
-         *
-         * @param {(string|webdriver.Browser)} name The name of the target browser;
-         *     common defaults are available on the {@link webdriver.Browser} enum.
-         * @param {string=} opt_version A desired version; may be omitted if any
-         *     version should be used.
-         * @param {string=} opt_platform The desired platform; may be omitted if any
-         *     version may be used.
-         * @return {!Builder} A self reference.
-         */
-        forBrowser(name: string, opt_version?: string, opt_platform?: string): Builder;
-
-        /**
-         * Returns the base set of capabilities this instance is currently configured
-         * to use.
-         * @return {!webdriver.Capabilities} The current capabilities for this builder.
-         */
-        getCapabilities(): Capabilities;
-
-        /**
-         * @return {string} The URL of the WebDriver server this instance is configured
-         *     to use.
-         */
-        getServerUrl(): string;
-
-        /**
-         * Sets the default action to take with an unexpected alert before returning
-         * an error.
-         * @param {string} beahvior The desired behavior; should be "accept", "dismiss",
-         *     or "ignore". Defaults to "dismiss".
-         * @return {!Builder} A self reference.
-         */
-        setAlertBehavior(behavior: string): Builder;
-
-        /**
-         * Sets Chrome-specific options for drivers created by this builder. Any
-         * logging or proxy settings defined on the given options will take precedence
-         * over those set through {@link #setLoggingPrefs} and {@link #setProxy},
-         * respectively.
-         *
-         * @param {!chrome.Options} options The ChromeDriver options to use.
-         * @return {!Builder} A self reference.
-         */
-        setChromeOptions(options: chrome.Options): Builder;
-
-        /**
-         * Sets the control flow that created drivers should execute actions in. If
-         * the flow is never set, or is set to {@code null}, it will use the active
-         * flow at the time {@link #build()} is called.
-         * @param {webdriver.promise.ControlFlow} flow The control flow to use, or
-         *     {@code null} to
-         * @return {!Builder} A self reference.
-         */
-        setControlFlow(flow: webdriver.promise.ControlFlow): Builder;
-
-        /**
-         * Sets whether native events should be used.
-         * @param {boolean} enabled Whether to enable native events.
-         * @return {!Builder} A self reference.
-         */
-        setEnableNativeEvents(enabled: boolean): Builder;
-
-        /**
-         * Sets Firefox-specific options for drivers created by this builder. Any
-         * logging or proxy settings defined on the given options will take precedence
-         * over those set through {@link #setLoggingPrefs} and {@link #setProxy},
-         * respectively.
-         *
-         * @param {!firefox.Options} options The FirefoxDriver options to use.
-         * @return {!Builder} A self reference.
-         */
-        setFirefoxOptions(options: firefox.Options): Builder;
-
-        /**
-         * Sets the logging preferences for the created session. Preferences may be
-         * changed by repeated calls, or by calling {@link #withCapabilities}.
-         * @param {!(webdriver.logging.Preferences|Object.<string, string>)} prefs The
-         *     desired logging preferences.
-         * @return {!Builder} A self reference.
-         */
-        setLoggingPrefs(prefs: webdriver.logging.Preferences): Builder;
-        setLoggingPrefs(prefs: { [key: string]: string }): Builder;
-
-        /**
-         * Sets the proxy configuration to use for WebDriver clients created by this
-         * builder. Any calls to {@link #withCapabilities} after this function will
-         * overwrite these settings.
-         * @param {!webdriver.ProxyConfig} config The configuration to use.
-         * @return {!Builder} A self reference.
-         */
-        setProxy(config: ProxyConfig): Builder;
-
-        /**
-         * Sets how elements should be scrolled into view for interaction.
-         * @param {number} behavior The desired scroll behavior: either 0 to align with
-         *     the top of the viewport or 1 to align with the bottom.
-         * @return {!Builder} A self reference.
-         */
-        setScrollBehavior(behavior: number): Builder;
-
-        /**
-         * Sets the URL of a remote WebDriver server to use. Once a remote URL has been
-         * specified, the builder direct all new clients to that server. If this method
-         * is never called, the Builder will attempt to create all clients locally.
-         *
-         * <p>As an alternative to this method, you may also set the
-         * {@code SELENIUM_REMOTE_URL} environment variable.
-         *
-         * @param {string} url The URL of a remote server to use.
-         * @return {!Builder} A self reference.
-         */
-        usingServer(url: string): Builder;
-
-        /**
-         * Sets the desired capabilities when requesting a new session. This will
-         * overwrite any previously set capabilities.
-         * @param {!(Object|webdriver.Capabilities)} capabilities The desired
-         *     capabilities for a new session.
-         * @return {!Builder} A self reference.
-         */
-        withCapabilities(capabilities: Capabilities): Builder;
-        withCapabilities(capabilities: any): Builder;
-
-        //endregion
-    }
-
-    /**
-     * Common webdriver capability keys.
-     * @enum {string}
-     */
-    interface ICapability {
-
-        /**
-         * Indicates whether a driver should accept all SSL certs by default. This
-         * capability only applies when requesting a new session. To query whether
-         * a driver can handle insecure SSL certs, see
-         * {@link webdriver.Capability.SECURE_SSL}.
-         */
-        ACCEPT_SSL_CERTS: string;
-
-
-        /**
-         * The browser name. Common browser names are defined in the
-         * {@link webdriver.Browser} enum.
-         */
-        BROWSER_NAME: string;
-
-        /**
-         * Defines how elements should be scrolled into the viewport for interaction.
-         * This capability will be set to zero (0) if elements are aligned with the
-         * top of the viewport, or one (1) if aligned with the bottom. The default
-         * behavior is to align with the top of the viewport.
-         */
-        ELEMENT_SCROLL_BEHAVIOR: string;
-
-        /**
-         * Whether the driver is capable of handling modal alerts (e.g. alert,
-         * confirm, prompt). To define how a driver <i>should</i> handle alerts,
-         * use {@link webdriver.Capability.UNEXPECTED_ALERT_BEHAVIOR}.
-         */
-        HANDLES_ALERTS: string;
-
-        /**
-         * Key for the logging driver logging preferences.
-         */
-        LOGGING_PREFS: string;
-
-        /**
-	     * Whether this session generates native events when simulating user input.
-         */
-        NATIVE_EVENTS: string;
-
-        /**
-         * Describes the platform the browser is running on. Will be one of
-         * ANDROID, IOS, LINUX, MAC, UNIX, or WINDOWS. When <i>requesting</i> a
-         * session, ANY may be used to indicate no platform preference (this is
-         * semantically equivalent to omitting the platform capability).
-         */
-        PLATFORM: string;
-
-        /**
-         * Describes the proxy configuration to use for a new WebDriver session.
-         */
-        PROXY: string;
-
-        /** Whether the driver supports changing the brower's orientation. */
-        ROTATABLE: string;
-
-        /**
-         * Whether a driver is only capable of handling secure SSL certs. To request
-         * that a driver accept insecure SSL certs by default, use
-         * {@link webdriver.Capability.ACCEPT_SSL_CERTS}.
-         */
-        SECURE_SSL: string;
-
-        /** Whether the driver supports manipulating the app cache. */
-       SUPPORTS_APPLICATION_CACHE: string;
-
-        /** Whether the driver supports locating elements with CSS selectors. */
-        SUPPORTS_CSS_SELECTORS: string;
-
-        /** Whether the browser supports JavaScript. */
-        SUPPORTS_JAVASCRIPT: string;
-
-        /** Whether the driver supports controlling the browser's location info. */
-        SUPPORTS_LOCATION_CONTEXT: string;
-
-        /** Whether the driver supports taking screenshots. */
-        TAKES_SCREENSHOT: string;
-
-        /**
-         * Defines how the driver should handle unexpected alerts. The value should
-         * be one of "accept", "dismiss", or "ignore.
-         */
-        UNEXPECTED_ALERT_BEHAVIOR: string;
-
-        /** Defines the browser version. */
-        VERSION: string;
-    }
-
-    var Capability: ICapability;
-
-    class Capabilities {
-        //region Constructors
-
-        /**
-         * @param {(webdriver.Capabilities|Object)=} opt_other Another set of
-         *     capabilities to merge into this instance.
-         * @constructor
-         */
-        constructor(opt_other?: Capabilities);
-        constructor(opt_other?: any);
-
-        //endregion
-
-        //region Methods
-
-        /** @return {!Object} The JSON representation of this instance. */
-        toJSON(): any;
-
-        /**
-         * Merges another set of capabilities into this instance. Any duplicates in
-         * the provided set will override those already set on this instance.
-         * @param {!(webdriver.Capabilities|Object)} other The capabilities to
-         *     merge into this instance.
-         * @return {!webdriver.Capabilities} A self reference.
-         */
-        merge(other: Capabilities): Capabilities;
-        merge(other: any): Capabilities;
-
-        /**
-         * @param {string} key The capability to set.
-         * @param {*} value The capability value.  Capability values must be JSON
-         *     serializable. Pass {@code null} to unset the capability.
-         * @return {!webdriver.Capabilities} A self reference.
-         */
-        set(key: string, value: any): Capabilities;
-
-        /**
-         * Sets the logging preferences. Preferences may be specified as a
-         * {@link webdriver.logging.Preferences} instance, or a as a map of log-type to
-         * log-level.
-         * @param {!(webdriver.logging.Preferences|Object.<string, string>)} prefs The
-         *     logging preferences.
-         * @return {!webdriver.Capabilities} A self reference.
-         */
-        setLoggingPrefs(prefs: webdriver.logging.Preferences): Capabilities;
-        setLoggingPrefs(prefs: { [key: string]: string }): Capabilities;
-
-
-        /**
-         * Sets the proxy configuration for this instance.
-         * @param {webdriver.ProxyConfig} proxy The desired proxy configuration.
-         * @return {!webdriver.Capabilities} A self reference.
-         */
-        setProxy(proxy: ProxyConfig): Capabilities;
-
-
-        /**
-         * Sets whether native events should be used.
-         * @param {boolean} enabled Whether to enable native events.
-         * @return {!webdriver.Capabilities} A self reference.
-         */
-        setEnableNativeEvents(enabled: boolean): Capabilities;
-
-
-        /**
-         * Sets how elements should be scrolled into view for interaction.
-         * @param {number} behavior The desired scroll behavior: either 0 to align with
-         *     the top of the viewport or 1 to align with the bottom.
-         * @return {!webdriver.Capabilities} A self reference.
-         */
-        setScrollBehavior(behavior: number): Capabilities;
-
-        /**
-         * Sets the default action to take with an unexpected alert before returning
-         * an error.
-         * @param {string} behavior The desired behavior; should be "accept", "dismiss",
-         *     or "ignore". Defaults to "dismiss".
-         * @return {!webdriver.Capabilities} A self reference.
-         */
-        setAlertBehavior(behavior: string): Capabilities;
-
-        /**
-         * @param {string} key The capability to return.
-         * @return {*} The capability with the given key, or {@code null} if it has
-         *     not been set.
-         */
-        get(key: string): any;
-
-        /**
-         * @param {string} key The capability to check.
-         * @return {boolean} Whether the specified capability is set.
-         */
-        has(key: string): boolean;
-
-        //endregion
-
-        //region Static Methods
-
-        /**
-         * @return {!webdriver.Capabilities} A basic set of capabilities for Android.
-         */
-        static android(): Capabilities;
-
-        /**
-         * @return {!webdriver.Capabilities} A basic set of capabilities for Chrome.
-         */
-        static chrome(): Capabilities;
-
-        /**
-         * @return {!webdriver.Capabilities} A basic set of capabilities for Firefox.
-         */
-        static firefox(): Capabilities;
-
-        /**
-         * @return {!webdriver.Capabilities} A basic set of capabilities for
-         *     Internet Explorer.
-         */
-        static ie(): Capabilities;
-
-        /**
-         * @return {!webdriver.Capabilities} A basic set of capabilities for iPad.
-         */
-        static ipad(): Capabilities;
-
-        /**
-         * @return {!webdriver.Capabilities} A basic set of capabilities for iPhone.
-         */
-        static iphone(): Capabilities;
-
-        /**
-         * @return {!webdriver.Capabilities} A basic set of capabilities for Opera.
-         */
-        static opera(): Capabilities;
-
-        /**
-         * @return {!webdriver.Capabilities} A basic set of capabilities for
-         *     PhantomJS.
-         */
-        static phantomjs(): Capabilities;
-
-        /**
-         * @return {!webdriver.Capabilities} A basic set of capabilities for Safari.
-         */
-        static safari(): Capabilities;
-
-        /**
-         * @return {!webdriver.Capabilities} A basic set of capabilities for HTMLUnit.
-         */
-        static htmlunit(): Capabilities;
-
-        /**
-         * @return {!webdriver.Capabilities} A basic set of capabilities for HTMLUnit
-         *                                   with enabled Javascript.
-         */
-        static htmlunitwithjs(): Capabilities;
-
-        //endregion
-    }
-
-    /**
-     * An enumeration of valid command string.
-     */
-    interface ICommandName {
-        GET_SERVER_STATUS: string;
-
-        NEW_SESSION: string;
-        GET_SESSIONS: string;
-        DESCRIBE_SESSION: string;
-
-        CLOSE: string;
-        QUIT: string;
-
-        GET_CURRENT_URL: string;
-        GET: string;
-        GO_BACK: string;
-        GO_FORWARD: string;
-        REFRESH: string;
-
-        ADD_COOKIE: string;
-        GET_COOKIE: string;
-        GET_ALL_COOKIES: string;
-        DELETE_COOKIE: string;
-        DELETE_ALL_COOKIES: string;
-
-        GET_ACTIVE_ELEMENT: string;
-        FIND_ELEMENT: string;
-        FIND_ELEMENTS: string;
-        FIND_CHILD_ELEMENT: string;
-        FIND_CHILD_ELEMENTS: string;
-
-        CLEAR_ELEMENT: string;
-        CLICK_ELEMENT: string;
-        SEND_KEYS_TO_ELEMENT: string;
-        SUBMIT_ELEMENT: string;
-
-        GET_CURRENT_WINDOW_HANDLE: string;
-        GET_WINDOW_HANDLES: string;
-        GET_WINDOW_POSITION: string;
-        SET_WINDOW_POSITION: string;
-        GET_WINDOW_SIZE: string;
-        SET_WINDOW_SIZE: string;
-        MAXIMIZE_WINDOW: string;
-
-        SWITCH_TO_WINDOW: string;
-        SWITCH_TO_FRAME: string;
-        GET_PAGE_SOURCE: string;
-        GET_TITLE: string;
-
-        EXECUTE_SCRIPT: string;
-        EXECUTE_ASYNC_SCRIPT: string;
-
-        GET_ELEMENT_TEXT: string;
-        GET_ELEMENT_TAG_NAME: string;
-        IS_ELEMENT_SELECTED: string;
-        IS_ELEMENT_ENABLED: string;
-        IS_ELEMENT_DISPLAYED: string;
-        GET_ELEMENT_LOCATION: string;
-        GET_ELEMENT_LOCATION_IN_VIEW: string;
-        GET_ELEMENT_SIZE: string;
-        GET_ELEMENT_ATTRIBUTE: string;
-        GET_ELEMENT_VALUE_OF_CSS_PROPERTY: string;
-        ELEMENT_EQUALS: string;
-
-        SCREENSHOT: string;
-        IMPLICITLY_WAIT: string;
-        SET_SCRIPT_TIMEOUT: string;
-        SET_TIMEOUT: string;
-
-        ACCEPT_ALERT: string;
-        DISMISS_ALERT: string;
-        GET_ALERT_TEXT: string;
-        SET_ALERT_TEXT: string;
-
-        EXECUTE_SQL: string;
-        GET_LOCATION: string;
-        SET_LOCATION: string;
-        GET_APP_CACHE: string;
-        GET_APP_CACHE_STATUS: string;
-        CLEAR_APP_CACHE: string;
-        IS_BROWSER_ONLINE: string;
-        SET_BROWSER_ONLINE: string;
-
-        GET_LOCAL_STORAGE_ITEM: string;
-        GET_LOCAL_STORAGE_KEYS: string;
-        SET_LOCAL_STORAGE_ITEM: string;
-        REMOVE_LOCAL_STORAGE_ITEM: string;
-        CLEAR_LOCAL_STORAGE: string;
-        GET_LOCAL_STORAGE_SIZE: string;
-
-        GET_SESSION_STORAGE_ITEM: string;
-        GET_SESSION_STORAGE_KEYS: string;
-        SET_SESSION_STORAGE_ITEM: string;
-        REMOVE_SESSION_STORAGE_ITEM: string;
-        CLEAR_SESSION_STORAGE: string;
-        GET_SESSION_STORAGE_SIZE: string;
-
-        SET_SCREEN_ORIENTATION: string;
-        GET_SCREEN_ORIENTATION: string;
-
-        // These belong to the Advanced user interactions - an element is
-        // optional for these commands.
-        CLICK: string;
-        DOUBLE_CLICK: string;
-        MOUSE_DOWN: string;
-        MOUSE_UP: string;
-        MOVE_TO: string;
-        SEND_KEYS_TO_ACTIVE_ELEMENT: string;
-
-        // These belong to the Advanced Touch API
-        TOUCH_SINGLE_TAP: string;
-        TOUCH_DOWN: string;
-        TOUCH_UP: string;
-        TOUCH_MOVE: string;
-        TOUCH_SCROLL: string;
-        TOUCH_DOUBLE_TAP: string;
-        TOUCH_LONG_PRESS: string;
-        TOUCH_FLICK: string;
-
-        GET_AVAILABLE_LOG_TYPES: string;
-        GET_LOG: string;
-        GET_SESSION_LOGS: string;
-    }
-
-    var CommandName: ICommandName;
-
-    /**
-     * Describes a command to be executed by the WebDriverJS framework.
-     * @param {!webdriver.CommandName} name The name of this command.
-     * @constructor
-     */
-    class Command {
-        //region Constructors
-
-        /**
-         * @param {!webdriver.CommandName} name The name of this command.
-         * @constructor
-         */
-        constructor(name: string);
-
-        //endregion
-
-        //region Methods
-
-        /**
-         * @return {!webdriver.CommandName} This command's name.
-         */
-        getName(): string;
-
-        /**
-         * Sets a parameter to send with this command.
-         * @param {string} name The parameter name.
-         * @param {*} value The parameter value.
-         * @return {!webdriver.Command} A self reference.
-         */
-        setParameter(name: string, value: any): Command;
-
-        /**
-         * Sets the parameters for this command.
-         * @param {!Object.<*>} parameters The command parameters.
-         * @return {!webdriver.Command} A self reference.
-         */
-        setParameters(parameters: any): Command;
-
-        /**
-         * Returns a named command parameter.
-         * @param {string} key The parameter key to look up.
-         * @return {*} The parameter value, or undefined if it has not been set.
-         */
-        getParameter(key: string): any;
-
-        /**
-         * @return {!Object.<*>} The parameters to send with this command.
-         */
-        getParameters(): any;
-
-        //endregion
-    }
-
-    /**
-     * Handles the execution of {@code webdriver.Command} objects.
-     */
-    interface CommandExecutor {
-        /**
-         * Executes the given {@code command}. If there is an error executing the
-         * command, the provided callback will be invoked with the offending error.
-         * Otherwise, the callback will be invoked with a null Error and non-null
-         * {@link bot.response.ResponseObject} object.
-         * @param {!webdriver.Command} command The command to execute.
-         * @param {function(Error, !bot.response.ResponseObject=)} callback the function
-         *     to invoke when the command response is ready.
-         */
-        execute(command: Command, callback: (error: Error, responseObject: any) => any ): void;
-    }
-
-    /**
-     * Object that can emit events for others to listen for. This is used instead
-     * of Closure's event system because it is much more light weight. The API is
-     * based on Node's EventEmitters.
-     */
-    class EventEmitter {
-        //region Constructors
-
-        /**
-         * @constructor
-         */
-        constructor();
-
-        //endregion
-
-        //region Methods
-
-        /**
-         * Fires an event and calls all listeners.
-         * @param {string} type The type of event to emit.
-         * @param {...*} var_args Any arguments to pass to each listener.
-         */
-        emit(type: string, ...var_args: any[]): void;
-
-        /**
-         * Returns a mutable list of listeners for a specific type of event.
-         * @param {string} type The type of event to retrieve the listeners for.
-         * @return {!Array.<{fn: !Function, oneshot: boolean,
-         *                   scope: (Object|undefined)}>} The registered listeners for
-         *     the given event type.
-         */
-        listeners(type: string): Array<{fn: Function; oneshot: boolean; scope: any;}>;
-
-        /**
-         * Registers a listener.
-         * @param {string} type The type of event to listen for.
-         * @param {!Function} listenerFn The function to invoke when the event is fired.
-         * @param {Object=} opt_scope The object in whose scope to invoke the listener.
-         * @return {!webdriver.EventEmitter} A self reference.
-         */
-        addListener(type: string, listenerFn: Function, opt_scope?:any): EventEmitter;
-
-        /**
-         * Registers a one-time listener which will be called only the first time an
-         * event is emitted, after which it will be removed.
-         * @param {string} type The type of event to listen for.
-         * @param {!Function} listenerFn The function to invoke when the event is fired.
-         * @param {Object=} opt_scope The object in whose scope to invoke the listener.
-         * @return {!webdriver.EventEmitter} A self reference.
-         */
-        once(type: string, listenerFn: any, opt_scope?: any): EventEmitter;
-
-        /**
-         * An alias for {@code #addListener()}.
-         * @param {string} type The type of event to listen for.
-         * @param {!Function} listenerFn The function to invoke when the event is fired.
-         * @param {Object=} opt_scope The object in whose scope to invoke the listener.
-         * @return {!webdriver.EventEmitter} A self reference.
-         */
-        on(type: string, listenerFn: Function, opt_scope?:any): EventEmitter;
-
-        /**
-         * Removes a previously registered event listener.
-         * @param {string} type The type of event to unregister.
-         * @param {!Function} listenerFn The handler function to remove.
-         * @return {!webdriver.EventEmitter} A self reference.
-         */
-        removeListener(type: string, listenerFn: Function): EventEmitter;
-
-        /**
-         * Removes all listeners for a specific type of event. If no event is
-         * specified, all listeners across all types will be removed.
-         * @param {string=} opt_type The type of event to remove listeners from.
-         * @return {!webdriver.EventEmitter} A self reference.
-         */
-        removeAllListeners(opt_type?: string): EventEmitter;
-
-        //endregion
-    }
-
-
-    /**
-     * Interface for navigating back and forth in the browser history.
-     */
-    interface WebDriverNavigation {
-        //region Constructors
-
-        /**
-         * @param {!webdriver.WebDriver} driver The parent driver.
-         * @constructor
-         */
-        new (driver: WebDriver): WebDriverNavigation;
-
-        //endregion
-
-        //region Methods
-
-        /**
-         * Schedules a command to navigate to a new URL.
-         * @param {string} url The URL to navigate to.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when the URL has been loaded.
-         */
-        to(url: string): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to move backwards in the browser history.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when the navigation event has completed.
-         */
-        back(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to move forwards in the browser history.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when the navigation event has completed.
-         */
-        forward(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to refresh the current page.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when the navigation event has completed.
-         */
-        refresh(): webdriver.promise.Promise<void>;
-
-        //endregion
-    }
-
-    interface IWebDriverOptionsCookie {
-        name: string;
-        value: string;
-        path?: string;
-        domain?: string;
-        secure?: boolean;
-        expiry?: number;
-    }
-
-    /**
-     * Provides methods for managing browser and driver state.
-     */
-    interface WebDriverOptions {
-        //region Constructors
-
-        /**
-         * @param {!webdriver.WebDriver} driver The parent driver.
-         * @constructor
-         */
-        new (driver: webdriver.WebDriver): WebDriverOptions;
-
-        //endregion
-
-        //region Methods
-
-        /**
-         * Schedules a command to add a cookie.
-         * @param {string} name The cookie name.
-         * @param {string} value The cookie value.
-         * @param {string=} opt_path The cookie path.
-         * @param {string=} opt_domain The cookie domain.
-         * @param {boolean=} opt_isSecure Whether the cookie is secure.
-         * @param {(number|!Date)=} opt_expiry When the cookie expires. If specified as
-         *     a number, should be in milliseconds since midnight, January 1, 1970 UTC.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when the
-         *     cookie has been added to the page.
-         */
-        addCookie(name: string, value: string, opt_path?: string, opt_domain?: string, opt_isSecure?: boolean, opt_expiry?: number): webdriver.promise.Promise<void>;
-        addCookie(name: string, value: string, opt_path?: string, opt_domain?: string, opt_isSecure?: boolean, opt_expiry?: Date): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to delete all cookies visible to the current page.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when all
-         *     cookies have been deleted.
-         */
-        deleteAllCookies(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to delete the cookie with the given name. This command is
-         * a no-op if there is no cookie with the given name visible to the current
-         * page.
-         * @param {string} name The name of the cookie to delete.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when the
-         *     cookie has been deleted.
-         */
-        deleteCookie(name: string): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to retrieve all cookies visible to the current page.
-         * Each cookie will be returned as a JSON object as described by the WebDriver
-         * wire protocol.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     cookies visible to the current page.
-         * @see http://code.google.com/p/selenium/wiki/JsonWireProtocol#Cookie_JSON_Object
-         */
-        getCookies(): webdriver.promise.Promise<IWebDriverOptionsCookie[]>;
-
-        /**
-         * Schedules a command to retrieve the cookie with the given name. Returns null
-         * if there is no such cookie. The cookie will be returned as a JSON object as
-         * described by the WebDriver wire protocol.
-         * @param {string} name The name of the cookie to retrieve.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     named cookie, or {@code null} if there is no such cookie.
-         * @see http://code.google.com/p/selenium/wiki/JsonWireProtocol#Cookie_JSON_Object
-         */
-        getCookie(name: string): webdriver.promise.Promise<IWebDriverOptionsCookie>;
-
-        /**
-         * @return {!webdriver.WebDriver.Logs} The interface for managing driver
-         *     logs.
-         */
-        logs(): WebDriverLogs;
-
-        /**
-         * @return {!webdriver.WebDriver.Timeouts} The interface for managing driver
-         *     timeouts.
-         */
-        timeouts(): WebDriverTimeouts;
-
-        /**
-         * @return {!webdriver.WebDriver.Window} The interface for managing the
-         *     current window.
-         */
-        window(): WebDriverWindow;
-
-        //endregion
-    }
-
-    /**
-     * An interface for managing timeout behavior for WebDriver instances.
-     */
-    interface WebDriverTimeouts {
-        //region Constructors
-
-        /**
-         * @param {!webdriver.WebDriver} driver The parent driver.
-         * @constructor
-         */
-        new (driver: WebDriver): WebDriverTimeouts;
-
-        //endregion
-
-        //region Methods
-
-        /**
-         * Specifies the amount of time the driver should wait when searching for an
-         * element if it is not immediately present.
-         * <p/>
-         * When searching for a single element, the driver should poll the page
-         * until the element has been found, or this timeout expires before failing
-         * with a {@code bot.ErrorCode.NO_SUCH_ELEMENT} error. When searching
-         * for multiple elements, the driver should poll the page until at least one
-         * element has been found or this timeout has expired.
-         * <p/>
-         * Setting the wait timeout to 0 (its default value), disables implicit
-         * waiting.
-         * <p/>
-         * Increasing the implicit wait timeout should be used judiciously as it
-         * will have an adverse effect on test run time, especially when used with
-         * slower location strategies like XPath.
-         *
-         * @param {number} ms The amount of time to wait, in milliseconds.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when the
-         *     implicit wait timeout has been set.
-         */
-        implicitlyWait(ms: number): webdriver.promise.Promise<void>;
-
-        /**
-         * Sets the amount of time to wait, in milliseconds, for an asynchronous script
-         * to finish execution before returning an error. If the timeout is less than or
-         * equal to 0, the script will be allowed to run indefinitely.
-         *
-         * @param {number} ms The amount of time to wait, in milliseconds.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when the
-         *     script timeout has been set.
-         */
-        setScriptTimeout(ms: number): webdriver.promise.Promise<void>;
-
-        /**
-         * Sets the amount of time to wait for a page load to complete before returning
-         * an error.  If the timeout is negative, page loads may be indefinite.
-         * @param {number} ms The amount of time to wait, in milliseconds.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when
-         *     the timeout has been set.
-         */
-        pageLoadTimeout(ms: number): webdriver.promise.Promise<void>;
-
-        //endregion
-    }
-
-    /**
-     * An interface for managing the current window.
-     */
-    interface WebDriverWindow {
-
-        //region Constructors
-
-        /**
-         * @param {!webdriver.WebDriver} driver The parent driver.
-         * @constructor
-         */
-        new (driver: WebDriver): WebDriverWindow;
-
-        //endregion
-
-        //region Methods
-
-        /**
-         * Retrieves the window's current position, relative to the top left corner of
-         * the screen.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     window's position in the form of a {x:number, y:number} object literal.
-         */
-        getPosition(): webdriver.promise.Promise<ILocation>;
-
-        /**
-         * Repositions the current window.
-         * @param {number} x The desired horizontal position, relative to the left side
-         *     of the screen.
-         * @param {number} y The desired vertical position, relative to the top of the
-         *     of the screen.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when the
-         *     command has completed.
-         */
-        setPosition(x: number, y: number): webdriver.promise.Promise<void>;
-
-        /**
-         * Retrieves the window's current size.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     window's size in the form of a {width:number, height:number} object
-         *     literal.
-         */
-        getSize(): webdriver.promise.Promise<ISize>;
-
-        /**
-         * Resizes the current window.
-         * @param {number} width The desired window width.
-         * @param {number} height The desired window height.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when the
-         *     command has completed.
-         */
-        setSize(width: number, height: number): webdriver.promise.Promise<void>;
-
-        /**
-         * Maximizes the current window.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when the
-         *     command has completed.
-         */
-        maximize(): webdriver.promise.Promise<void>;
-
-        //endregion
-    }
-
-    /**
-     * Interface for managing WebDriver log records.
-     */
-    interface WebDriverLogs {
-
-        //region Constructors
-
-        /**
-         * @param {!webdriver.WebDriver} driver The parent driver.
-         * @constructor
-         */
-        new (driver: WebDriver): WebDriverLogs;
-
-        //endregion
-
-        //region
-
-        /**
-         * Fetches available log entries for the given type.
-         *
-         * <p/>Note that log buffers are reset after each call, meaning that
-         * available log entries correspond to those entries not yet returned for a
-         * given log type. In practice, this means that this call will return the
-         * available log entries since the last call, or from the start of the
-         * session.
-         *
-         * @param {!webdriver.logging.Type} type The desired log type.
-         * @return {!webdriver.promise.Promise.<!Array.<!webdriver.logging.Entry>>} A
-         *   promise that will resolve to a list of log entries for the specified
-         *   type.
-         */
-        get(type: string): webdriver.promise.Promise<webdriver.logging.Entry[]>;
-
-        /**
-         * Retrieves the log types available to this driver.
-         * @return {!webdriver.promise.Promise.<!Array.<!webdriver.logging.Type>>} A
-         *     promise that will resolve to a list of available log types.
-         */
-        getAvailableLogTypes(): webdriver.promise.Promise<string[]>;
-
-        //endregion
-    }
-
-    /**
-     * An interface for changing the focus of the driver to another frame or window.
-     */
-    interface WebDriverTargetLocator {
-
-        //region Constructors
-
-        /**
-         * @param {!webdriver.WebDriver} driver The parent driver.
-         * @constructor
-         */
-        new (driver: WebDriver): WebDriverTargetLocator;
-
-        //endregion
-
-        //region Methods
-
-        /**
-         * Schedules a command retrieve the {@code document.activeElement} element on
-         * the current document, or {@code document.body} if activeElement is not
-         * available.
-         * @return {!webdriver.WebElement} The active element.
-         */
-        activeElement(): WebElementPromise;
-
-        /**
-         * Schedules a command to switch focus of all future commands to the first frame
-         * on the page.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when the
-         *     driver has changed focus to the default content.
-         */
-        defaultContent(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to switch the focus of all future commands to another
-         * frame on the page.
-         * <p/>
-         * If the frame is specified by a number, the command will switch to the frame
-         * by its (zero-based) index into the {@code window.frames} collection.
-         * <p/>
-         * If the frame is specified by a string, the command will select the frame by
-         * its name or ID. To select sub-frames, simply separate the frame names/IDs by
-         * dots. As an example, "main.child" will select the frame with the name "main"
-         * and then its child "child".
-         * <p/>
-         * If the specified frame can not be found, the deferred result will errback
-         * with a {@code bot.ErrorCode.NO_SUCH_FRAME} error.
-         * @param {string|number} nameOrIndex The frame locator.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when the
-         *     driver has changed focus to the specified frame.
-         */
-        frame(nameOrIndex: string): webdriver.promise.Promise<void>;
-        frame(nameOrIndex: number): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to switch the focus of all future commands to another
-         * window. Windows may be specified by their {@code window.name} attribute or
-         * by its handle (as returned by {@code webdriver.WebDriver#getWindowHandles}).
-         * <p/>
-         * If the specificed window can not be found, the deferred result will errback
-         * with a {@code bot.ErrorCode.NO_SUCH_WINDOW} error.
-         * @param {string} nameOrHandle The name or window handle of the window to
-         *     switch focus to.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when the
-         *     driver has changed focus to the specified window.
-         */
-        window(nameOrHandle: string): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to change focus to the active alert dialog. This command
-         * will return a {@link bot.ErrorCode.NO_MODAL_DIALOG_OPEN} error if a modal
-         * dialog is not currently open.
-         * @return {!webdriver.Alert} The open alert.
-         */
-        alert(): AlertPromise;
-
-        //endregion
-    }
-
-    /**
-     * Used with {@link webdriver.WebElement#sendKeys WebElement#sendKeys} on file
-     * input elements ({@code <input type="file">}) to detect when the entered key
-     * sequence defines the path to a file.
-     *
-     * By default, {@linkplain webdriver.WebElement WebElement's} will enter all
-     * key sequences exactly as entered. You may set a
-     * {@linkplain webdriver.WebDriver#setFileDetector file detector} on the parent
-     * WebDriver instance to define custom behavior for handling file elements. Of
-     * particular note is the {@link selenium-webdriver/remote.FileDetector}, which
-     * should be used when running against a remote
-     * [Selenium Server](http://docs.seleniumhq.org/download/).
-     */
-    class FileDetector {
-      /** @constructor */
-      constructor();
-
-      /**
-       * Handles the file specified by the given path, preparing it for use with
-       * the current browser. If the path does not refer to a valid file, it will
-       * be returned unchanged, otherwisee a path suitable for use with the current
-       * browser will be returned.
-       *
-       * This default implementation is a no-op. Subtypes may override this
-       * function for custom tailored file handling.
-       *
-       * @param {!webdriver.WebDriver} driver The driver for the current browser.
-       * @param {string} path The path to process.
-       * @return {!webdriver.promise.Promise<string>} A promise for the processed
-       *     file path.
-       * @package
-       */
-      handleFile(driver: webdriver.WebDriver, path: string): webdriver.promise.Promise<string>;
-    }
-
-    /**
-     * Creates a new WebDriver client, which provides control over a browser.
-     *
-     * Every WebDriver command returns a {@code webdriver.promise.Promise} that
-     * represents the result of that command. Callbacks may be registered on this
-     * object to manipulate the command result or catch an expected error. Any
-     * commands scheduled with a callback are considered sub-commands and will
-     * execute before the next command in the current frame. For example:
-     *
-     *   var message = [];
-     *   driver.call(message.push, message, 'a').then(function() {
-     *     driver.call(message.push, message, 'b');
-     *   });
-     *   driver.call(message.push, message, 'c');
-     *   driver.call(function() {
-     *     alert('message is abc? ' + (message.join('') == 'abc'));
-     *   });
-     *
-     */
-    class WebDriver {
-        //region Constructors
-
-        /**
-         * @param {!(webdriver.Session|webdriver.promise.Promise)} session Either a
-         *     known session or a promise that will be resolved to a session.
-         * @param {!webdriver.CommandExecutor} executor The executor to use when
-         *     sending commands to the browser.
-         * @param {webdriver.promise.ControlFlow=} opt_flow The flow to
-         *     schedule commands through. Defaults to the active flow object.
-         * @constructor
-         */
-         constructor(session: Session, executor: CommandExecutor, opt_flow?: webdriver.promise.ControlFlow);
-         constructor(session: webdriver.promise.Promise<Session>, executor: CommandExecutor, opt_flow?: webdriver.promise.ControlFlow);
-
-        //endregion
-
-        //region Static Properties
-
-        static Navigation: WebDriverNavigation;
-        static Options: WebDriverOptions;
-        static Timeouts: WebDriverTimeouts;
-        static Window: WebDriverWindow;
-        static Logs: WebDriverLogs;
-        static TargetLocator: WebDriverTargetLocator;
-
-        //endregion
-
-        //region StaticMethods
-
-        /**
-         * Creates a new WebDriver client for an existing session.
-         * @param {!webdriver.CommandExecutor} executor Command executor to use when
-         *     querying for session details.
-         * @param {string} sessionId ID of the session to attach to.
-         * @param {webdriver.promise.ControlFlow=} opt_flow The control flow all driver
-         *     commands should execute under. Defaults to the
-         *     {@link webdriver.promise.controlFlow() currently active}  control flow.
-         * @return {!webdriver.WebDriver} A new client for the specified session.
-         */
-        static attachToSession(executor: CommandExecutor, sessionId: string, opt_flow?: webdriver.promise.ControlFlow): WebDriver;
-
-        /**
-         * Creates a new WebDriver session.
-         * @param {!webdriver.CommandExecutor} executor The executor to create the new
-         *     session with.
-         * @param {!webdriver.Capabilities} desiredCapabilities The desired
-         *     capabilities for the new session.
-         * @param {webdriver.promise.ControlFlow=} opt_flow The control flow all driver
-         *     commands should execute under, including the initial session creation.
-         *     Defaults to the {@link webdriver.promise.controlFlow() currently active}
-         *     control flow.
-         * @return {!webdriver.WebDriver} The driver for the newly created session.
-         */
-        static createSession(executor: CommandExecutor, desiredCapabilities: Capabilities, opt_flow?: webdriver.promise.ControlFlow): WebDriver;
-
-        //endregion
-
-        //region Methods
-
-        /**
-         * @return {!webdriver.promise.ControlFlow} The control flow used by this
-         *     instance.
-         */
-        controlFlow(): webdriver.promise.ControlFlow;
-
-        /**
-         * Schedules a {@code webdriver.Command} to be executed by this driver's
-         * {@code webdriver.CommandExecutor}.
-         * @param {!webdriver.Command} command The command to schedule.
-         * @param {string} description A description of the command for debugging.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with
-         *     the command result.
-         */
-        schedule<T>(command: Command, description: string): webdriver.promise.Promise<T>;
-
-
-        /**
-         * Sets the {@linkplain webdriver.FileDetector file detector} that should be
-         * used with this instance.
-         * @param {webdriver.FileDetector} detector The detector to use or {@code null}.
-         */
-        setFileDetector(detector: FileDetector): void;
-
-
-        /**
-         * @return {!webdriver.promise.Promise.<!webdriver.Session>} A promise for this
-         *     client's session.
-         */
-        getSession(): webdriver.promise.Promise<Session>;
-
-
-        /**
-         * @return {!webdriver.promise.Promise.<!webdriver.Capabilities>} A promise
-         *     that will resolve with the this instance's capabilities.
-         */
-        getCapabilities(): webdriver.promise.Promise<Capabilities>;
-
-
-        /**
-         * Schedules a command to quit the current session. After calling quit, this
-         * instance will be invalidated and may no longer be used to issue commands
-         * against the browser.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when the command has completed.
-         */
-        quit(): webdriver.promise.Promise<void>;
-
-        /**
-         * Creates a new action sequence using this driver. The sequence will not be
-         * scheduled for execution until {@link webdriver.ActionSequence#perform} is
-         * called. Example:
-         * <pre><code>
-         *   driver.actions().
-         *       mouseDown(element1).
-         *       mouseMove(element2).
-         *       mouseUp().
-         *       perform();
-         * </code></pre>
-         * @return {!webdriver.ActionSequence} A new action sequence for this instance.
-         */
-        actions(): ActionSequence;
-
-
-        /**
-         * Creates a new touch sequence using this driver. The sequence will not be
-         * scheduled for execution until {@link webdriver.TouchSequence#perform} is
-         * called. Example:
-         *
-         *     driver.touchActions().
-         *         tap(element1).
-         *         doubleTap(element2).
-         *         perform();
-         *
-         * @return {!webdriver.TouchSequence} A new touch sequence for this instance.
-         */
-        touchActions(): TouchSequence;
-
-
-        /**
-         * Schedules a command to execute JavaScript in the context of the currently
-         * selected frame or window. The script fragment will be executed as the body
-         * of an anonymous function. If the script is provided as a function object,
-         * that function will be converted to a string for injection into the target
-         * window.
-         *
-         * Any arguments provided in addition to the script will be included as script
-         * arguments and may be referenced using the {@code arguments} object.
-         * Arguments may be a boolean, number, string, or {@code webdriver.WebElement}.
-         * Arrays and objects may also be used as script arguments as long as each item
-         * adheres to the types previously mentioned.
-         *
-         * The script may refer to any variables accessible from the current window.
-         * Furthermore, the script will execute in the window's context, thus
-         * {@code document} may be used to refer to the current document. Any local
-         * variables will not be available once the script has finished executing,
-         * though global variables will persist.
-         *
-         * If the script has a return value (i.e. if the script contains a return
-         * statement), then the following steps will be taken for resolving this
-         * functions return value:
-         *
-         * - For a HTML element, the value will resolve to a
-         *     {@link webdriver.WebElement}
-         * - Null and undefined return values will resolve to null</li>
-         * - Booleans, numbers, and strings will resolve as is</li>
-         * - Functions will resolve to their string representation</li>
-         * - For arrays and objects, each member item will be converted according to
-         *     the rules above
-         *
-         * @param {!(string|Function)} script The script to execute.
-         * @param {...*} var_args The arguments to pass to the script.
-         * @return {!webdriver.promise.Promise.<T>} A promise that will resolve to the
-         *    scripts return value.
-         * @template T
-         */
-        executeScript<T>(script: string, ...var_args: any[]): webdriver.promise.Promise<T>;
-        executeScript<T>(script: Function, ...var_args: any[]): webdriver.promise.Promise<T>;
-
-        /**
-         * Schedules a command to execute asynchronous JavaScript in the context of the
-         * currently selected frame or window. The script fragment will be executed as
-         * the body of an anonymous function. If the script is provided as a function
-         * object, that function will be converted to a string for injection into the
-         * target window.
-         *
-         * Any arguments provided in addition to the script will be included as script
-         * arguments and may be referenced using the {@code arguments} object.
-         * Arguments may be a boolean, number, string, or {@code webdriver.WebElement}.
-         * Arrays and objects may also be used as script arguments as long as each item
-         * adheres to the types previously mentioned.
-         *
-         * Unlike executing synchronous JavaScript with {@link #executeScript},
-         * scripts executed with this function must explicitly signal they are finished
-         * by invoking the provided callback. This callback will always be injected
-         * into the executed function as the last argument, and thus may be referenced
-         * with {@code arguments[arguments.length - 1]}. The following steps will be
-         * taken for resolving this functions return value against the first argument
-         * to the script's callback function:
-         *
-         * - For a HTML element, the value will resolve to a
-         *     {@link webdriver.WebElement}
-         * - Null and undefined return values will resolve to null
-         * - Booleans, numbers, and strings will resolve as is
-         * - Functions will resolve to their string representation
-         * - For arrays and objects, each member item will be converted according to
-         *     the rules above
-         *
-         * __Example #1:__ Performing a sleep that is synchronized with the currently
-         * selected window:
-         *
-         *     var start = new Date().getTime();
-         *     driver.executeAsyncScript(
-         *         'window.setTimeout(arguments[arguments.length - 1], 500);').
-         *         then(function() {
-         *           console.log(
-         *               'Elapsed time: ' + (new Date().getTime() - start) + ' ms');
-         *         });
-         *
-         * __Example #2:__ Synchronizing a test with an AJAX application:
-         *
-         *     var button = driver.findElement(By.id('compose-button'));
-         *     button.click();
-         *     driver.executeAsyncScript(
-         *         'var callback = arguments[arguments.length - 1];' +
-         *         'mailClient.getComposeWindowWidget().onload(callback);');
-         *     driver.switchTo().frame('composeWidget');
-         *     driver.findElement(By.id('to')).sendKeys('dog@example.com');
-         *
-         * __Example #3:__ Injecting a XMLHttpRequest and waiting for the result. In
-         * this example, the inject script is specified with a function literal. When
-         * using this format, the function is converted to a string for injection, so it
-         * should not reference any symbols not defined in the scope of the page under
-         * test.
-         *
-         *     driver.executeAsyncScript(function() {
-         *       var callback = arguments[arguments.length - 1];
-         *       var xhr = new XMLHttpRequest();
-         *       xhr.open("GET", "/resource/data.json", true);
-         *       xhr.onreadystatechange = function() {
-         *         if (xhr.readyState == 4) {
-         *           callback(xhr.responseText);
-         *         }
-         *       }
-         *       xhr.send('');
-         *     }).then(function(str) {
-         *       console.log(JSON.parse(str)['food']);
-         *     });
-         *
-         * @param {!(string|Function)} script The script to execute.
-         * @param {...*} var_args The arguments to pass to the script.
-         * @return {!webdriver.promise.Promise.<T>} A promise that will resolve to the
-         *    scripts return value.
-         * @template T
-         */
-        executeAsyncScript<T>(script: string|Function, ...var_args: any[]): webdriver.promise.Promise<T>;
-
-        /**
-         * Schedules a command to execute a custom function.
-         * @param {function(...): (T|webdriver.promise.Promise.<T>)} fn The function to
-         *     execute.
-         * @param {Object=} opt_scope The object in whose scope to execute the function.
-         * @param {...*} var_args Any arguments to pass to the function.
-         * @return {!webdriver.promise.Promise.<T>} A promise that will be resolved'
-         *     with the function's result.
-         * @template T
-         */
-        call<T>(fn: (...var_args: any[])=>(T|webdriver.promise.Promise<T>), opt_scope?: any, ...var_args: any[]): webdriver.promise.Promise<T>;
-
-        /**
-         * Schedules a command to wait for a condition to hold. The condition may be
-         * specified by a {@link webdriver.until.Condition}, as a custom function, or
-         * as a {@link webdriver.promise.Promise}.
-         *
-         * For a {@link webdriver.until.Condition} or function, the wait will repeatedly
-         * evaluate the condition until it returns a truthy value. If any errors occur
-         * while evaluating the condition, they will be allowed to propagate. In the
-         * event a condition returns a {@link webdriver.promise.Promise promise}, the
-         * polling loop will wait for it to be resolved and use the resolved value for
-         * whether the condition has been satisified. Note the resolution time for
-         * a promise is factored into whether a wait has timed out.
-         *
-         * *Example:* waiting up to 10 seconds for an element to be present and visible
-         * on the page.
-         *
-         *     var button = driver.wait(until.elementLocated(By.id('foo'), 10000);
-         *     button.click();
-         *
-         * This function may also be used to block the command flow on the resolution
-         * of a {@link webdriver.promise.Promise promise}. When given a promise, the
-         * command will simply wait for its resolution before completing. A timeout may
-         * be provided to fail the command if the promise does not resolve before the
-         * timeout expires.
-         *
-         * *Example:* Suppose you have a function, `startTestServer`, that returns a
-         * promise for when a server is ready for requests. You can block a `WebDriver`
-         * client on this promise with:
-         *
-         *     var started = startTestServer();
-         *     driver.wait(started, 5 * 1000, 'Server should start within 5 seconds');
-         *     driver.get(getServerUrl());
-         *
-         * @param {!(webdriver.promise.Promise<T>|
-         *           webdriver.until.Condition<T>|
-         *           function(!webdriver.WebDriver): T)} condition The condition to
-         *     wait on, defined as a promise, condition object, or  a function to
-         *     evaluate as a condition.
-         * @param {number=} opt_timeout How long to wait for the condition to be true.
-         * @param {string=} opt_message An optional message to use if the wait times
-         *     out.
-         * @return {!webdriver.promise.Promise<T>} A promise that will be fulfilled
-         *     with the first truthy value returned by the condition function, or
-         *     rejected if the condition times out.
-         * @template T
-         */
-        wait<T>(condition: webdriver.promise.Promise<T>|webdriver.until.Condition<T>|((driver: WebDriver)=>T), timeout?: number, opt_message?: string): webdriver.promise.Promise<T>;
-
-        /**
-         * Schedules a command to make the driver sleep for the given amount of time.
-         * @param {number} ms The amount of time, in milliseconds, to sleep.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when the sleep has finished.
-         */
-        sleep(ms: number): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to retrieve they current window handle.
-         * @return {!webdriver.promise.Promise.<string>} A promise that will be
-         *     resolved with the current window handle.
-         */
-        getWindowHandle(): webdriver.promise.Promise<string>;
-
-        /**
-         * Schedules a command to retrieve the current list of available window handles.
-         * @return {!webdriver.promise.Promise.<!Array.<string>>} A promise that will
-         *     be resolved with an array of window handles.
-         */
-        getAllWindowHandles(): webdriver.promise.Promise<string[]>;
-
-        /**
-         * Schedules a command to retrieve the current page's source. The page source
-         * returned is a representation of the underlying DOM: do not expect it to be
-         * formatted or escaped in the same way as the response sent from the web
-         * server.
-         * @return {!webdriver.promise.Promise.<string>} A promise that will be
-         *     resolved with the current page source.
-         */
-        getPageSource(): webdriver.promise.Promise<string>;
-
-        /**
-         * Schedules a command to close the current window.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when this command has completed.
-         */
-        close(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to navigate to the given URL.
-         * @param {string} url The fully qualified URL to open.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when the document has finished loading.
-         */
-        get(url: string): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to retrieve the URL of the current page.
-         * @return {!webdriver.promise.Promise.<string>} A promise that will be
-         *     resolved with the current URL.
-         */
-        getCurrentUrl(): webdriver.promise.Promise<string>;
-
-        /**
-         * Schedules a command to retrieve the current page's title.
-         * @return {!webdriver.promise.Promise.<string>} A promise that will be
-         *     resolved with the current page's title.
-         */
-        getTitle(): webdriver.promise.Promise<string>;
-
-        /**
-         * Schedule a command to find an element on the page. If the element cannot be
-         * found, a {@link bot.ErrorCode.NO_SUCH_ELEMENT} result will be returned
-         * by the driver. Unlike other commands, this error cannot be suppressed. In
-         * other words, scheduling a command to find an element doubles as an assert
-         * that the element is present on the page. To test whether an element is
-         * present on the page, use {@link #isElementPresent} instead.
-         *
-         * The search criteria for an element may be defined using one of the
-         * factories in the {@link webdriver.By} namespace, or as a short-hand
-         * {@link webdriver.By.Hash} object. For example, the following two statements
-         * are equivalent:
-         *
-         *     var e1 = driver.findElement(By.id('foo'));
-         *     var e2 = driver.findElement({id:'foo'});
-         *
-         * You may also provide a custom locator function, which takes as input
-         * this WebDriver instance and returns a {@link webdriver.WebElement}, or a
-         * promise that will resolve to a WebElement. For example, to find the first
-         * visible link on a page, you could write:
-         *
-         *     var link = driver.findElement(firstVisibleLink);
-         *
-         *     function firstVisibleLink(driver) {
-         *       var links = driver.findElements(By.tagName('a'));
-         *       return webdriver.promise.filter(links, function(link) {
-         *         return links.isDisplayed();
-         *       }).then(function(visibleLinks) {
-         *         return visibleLinks[0];
-         *       });
-         *     }
-         *
-         * When running in the browser, a WebDriver cannot manipulate DOM elements
-         * directly; it may do so only through a {@link webdriver.WebElement} reference.
-         * This function may be used to generate a WebElement from a DOM element. A
-         * reference to the DOM element will be stored in a known location and this
-         * driver will attempt to retrieve it through {@link #executeScript}. If the
-         * element cannot be found (eg, it belongs to a different document than the
-         * one this instance is currently focused on), a
-         * {@link bot.ErrorCode.NO_SUCH_ELEMENT} error will be returned.
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Element|Function)} locator The
-         *     locator to use.
-         * @return {!webdriver.WebElement} A WebElement that can be used to issue
-         *     commands against the located element. If the element is not found, the
-         *     element will be invalidated and all scheduled commands aborted.
-         */
-        findElement(locatorOrElement: Locator|By.Hash|WebElement|Function): WebElementPromise;
-
-        /**
-         * Schedules a command to test if an element is present on the page.
-         *
-         * If given a DOM element, this function will check if it belongs to the
-         * document the driver is currently focused on. Otherwise, the function will
-         * test if at least one element can be found with the given search criteria.
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Element|
-         *           Function)} locatorOrElement The locator to use, or the actual
-         *     DOM element to be located by the server.
-         * @return {!webdriver.promise.Promise.<boolean>} A promise that will resolve
-         *     with whether the element is present on the page.
-         */
-        isElementPresent(locatorOrElement: Locator|By.Hash|WebElement|Function): webdriver.promise.Promise<boolean>;
-
-        /**
-         * Schedule a command to search for multiple elements on the page.
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Function)} locator The locator
-         *     strategy to use when searching for the element.
-         * @return {!webdriver.promise.Promise.<!Array.<!webdriver.WebElement>>} A
-         *     promise that will resolve to an array of WebElements.
-         */
-        findElements(locator: Locator|By.Hash|Function): webdriver.promise.Promise<WebElement[]>;
-
-        /**
-         * Schedule a command to take a screenshot. The driver makes a best effort to
-         * return a screenshot of the following, in order of preference:
-         * <ol>
-         *   <li>Entire page
-         *   <li>Current window
-         *   <li>Visible portion of the current frame
-         *   <li>The screenshot of the entire display containing the browser
-         * </ol>
-         *
-         * @return {!webdriver.promise.Promise.<string>} A promise that will be
-         *     resolved to the screenshot as a base-64 encoded PNG.
-         */
-        takeScreenshot(): webdriver.promise.Promise<string>;
-
-        /**
-         * @return {!webdriver.WebDriver.Options} The options interface for this
-         *     instance.
-         */
-        manage(): WebDriverOptions;
-
-        /**
-         * @return {!webdriver.WebDriver.Navigation} The navigation interface for this
-         *     instance.
-         */
-        navigate(): WebDriverNavigation;
-
-        /**
-         * @return {!webdriver.WebDriver.TargetLocator} The target locator interface for
-         *     this instance.
-         */
-        switchTo(): WebDriverTargetLocator;
-
-        //endregion
-    }
-
-    interface IWebElementId {
-        ELEMENT: string;
-    }
-
-    /**
-     * Defines an object that can be asynchronously serialized to its WebDriver
-     * wire representation.
-     *
-     * @constructor
-     * @template T
-     */
-    interface Serializable<T> {
-        /**
-         * Returns either this instance's serialized represention, if immediately
-         * available, or a promise for its serialized representation. This function is
-         * conceptually equivalent to objects that have a {@code toJSON()} property,
-         * except the serialize() result may be a promise or an object containing a
-         * promise (which are not directly JSON friendly).
-         *
-         * @return {!(T|IThenable.<!T>)} This instance's serialized wire format.
-         */
-        serialize(): T|webdriver.promise.IThenable<T>;
-    }
-
-    /**
-     * Represents a DOM element. WebElements can be found by searching from the
-     * document root using a {@code webdriver.WebDriver} instance, or by searching
-     * under another {@code webdriver.WebElement}:
-     * <pre><code>
-     *   driver.get('http://www.google.com');
-     *   var searchForm = driver.findElement(By.tagName('form'));
-     *   var searchBox = searchForm.findElement(By.name('q'));
-     *   searchBox.sendKeys('webdriver');
-     * </code></pre>
-     *
-     * The WebElement is implemented as a promise for compatibility with the promise
-     * API. It will always resolve itself when its internal state has been fully
-     * resolved and commands may be issued against the element. This can be used to
-     * catch errors when an element cannot be located on the page:
-     * <pre><code>
-     *   driver.findElement(By.id('not-there')).then(function(element) {
-     *     alert('Found an element that was not expected to be there!');
-     *   }, function(error) {
-     *     alert('The element was not found, as expected');
-     *   });
-     * </code></pre>
-     */
-    interface IWebElement {
-        //region Methods
-
-        /**
-         * Schedules a command to click on this element.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when
-         *     the click command has completed.
-         */
-        click(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to type a sequence on the DOM element represented by this
-         * instance.
-         * <p/>
-         * Modifier keys (SHIFT, CONTROL, ALT, META) are stateful; once a modifier is
-         * processed in the keysequence, that key state is toggled until one of the
-         * following occurs:
-         * <ul>
-         * <li>The modifier key is encountered again in the sequence. At this point the
-         * state of the key is toggled (along with the appropriate keyup/down events).
-         * </li>
-         * <li>The {@code webdriver.Key.NULL} key is encountered in the sequence. When
-         * this key is encountered, all modifier keys current in the down state are
-         * released (with accompanying keyup events). The NULL key can be used to
-         * simulate common keyboard shortcuts:
-         * <code>
-         *     element.sendKeys("text was",
-         *                      webdriver.Key.CONTROL, "a", webdriver.Key.NULL,
-         *                      "now text is");
-         *     // Alternatively:
-         *     element.sendKeys("text was",
-         *                      webdriver.Key.chord(webdriver.Key.CONTROL, "a"),
-         *                      "now text is");
-         * </code></li>
-         * <li>The end of the keysequence is encountered. When there are no more keys
-         * to type, all depressed modifier keys are released (with accompanying keyup
-         * events).
-         * </li>
-         * </ul>
-         * <strong>Note:</strong> On browsers where native keyboard events are not yet
-         * supported (e.g. Firefox on OS X), key events will be synthesized. Special
-         * punctionation keys will be synthesized according to a standard QWERTY en-us
-         * keyboard layout.
-         *
-         * @param {...string} var_args The sequence of keys to
-         *     type. All arguments will be joined into a single sequence (var_args is
-         *     permitted for convenience).
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when all
-         *     keys have been typed.
-         */
-        sendKeys(...var_args: string[]): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to query for the tag/node name of this element.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     element's tag name.
-         */
-        getTagName(): webdriver.promise.Promise<string>;
-
-        /**
-         * Schedules a command to query for the computed style of the element
-         * represented by this instance. If the element inherits the named style from
-         * its parent, the parent will be queried for its value.  Where possible, color
-         * values will be converted to their hex representation (e.g. #00ff00 instead of
-         * rgb(0, 255, 0)).
-         * <p/>
-         * <em>Warning:</em> the value returned will be as the browser interprets it, so
-         * it may be tricky to form a proper assertion.
-         *
-         * @param {string} cssStyleProperty The name of the CSS style property to look
-         *     up.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     requested CSS value.
-         */
-        getCssValue(cssStyleProperty: string): webdriver.promise.Promise<string>;
-
-        /**
-         * Schedules a command to query for the value of the given attribute of the
-         * element. Will return the current value even if it has been modified after the
-         * page has been loaded. More exactly, this method will return the value of the
-         * given attribute, unless that attribute is not present, in which case the
-         * value of the property with the same name is returned. If neither value is
-         * set, null is returned. The "style" attribute is converted as best can be to a
-         * text representation with a trailing semi-colon. The following are deemed to
-         * be "boolean" attributes and will be returned as thus:
-         *
-         * <p>async, autofocus, autoplay, checked, compact, complete, controls, declare,
-         * defaultchecked, defaultselected, defer, disabled, draggable, ended,
-         * formnovalidate, hidden, indeterminate, iscontenteditable, ismap, itemscope,
-         * loop, multiple, muted, nohref, noresize, noshade, novalidate, nowrap, open,
-         * paused, pubdate, readonly, required, reversed, scoped, seamless, seeking,
-         * selected, spellcheck, truespeed, willvalidate
-         *
-         * <p>Finally, the following commonly mis-capitalized attribute/property names
-         * are evaluated as expected:
-         * <ul>
-         *   <li>"class"
-         *   <li>"readonly"
-         * </ul>
-         * @param {string} attributeName The name of the attribute to query.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     attribute's value.
-         */
-        getAttribute(attributeName: string): webdriver.promise.Promise<string>;
-
-        /**
-         * Get the visible (i.e. not hidden by CSS) innerText of this element, including
-         * sub-elements, without any leading or trailing whitespace.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     element's visible text.
-         */
-        getText(): webdriver.promise.Promise<string>;
-
-        /**
-         * Schedules a command to compute the size of this element's bounding box, in
-         * pixels.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     element's size as a {@code {width:number, height:number}} object.
-         */
-        getSize(): webdriver.promise.Promise<ISize>;
-
-        /**
-         * Schedules a command to compute the location of this element in page space.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved to the
-         *     element's location as a {@code {x:number, y:number}} object.
-         */
-        getLocation(): webdriver.promise.Promise<ILocation>;
-
-        /**
-         * Schedules a command to query whether the DOM element represented by this
-         * instance is enabled, as dicted by the {@code disabled} attribute.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with
-         *     whether this element is currently enabled.
-         */
-        isEnabled(): webdriver.promise.Promise<boolean>;
-
-        /**
-         * Schedules a command to query whether this element is selected.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with
-         *     whether this element is currently selected.
-         */
-        isSelected(): webdriver.promise.Promise<boolean>;
-
-        /**
-         * Schedules a command to submit the form containing this element (or this
-         * element if it is a FORM element). This command is a no-op if the element is
-         * not contained in a form.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when
-         *     the form has been submitted.
-         */
-        submit(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to clear the {@code value} of this element. This command
-         * has no effect if the underlying DOM element is neither a text INPUT element
-         * nor a TEXTAREA element.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved when
-         *     the element has been cleared.
-         */
-        clear(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to test whether this element is currently displayed.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with
-         *     whether this element is currently visible on the page.
-         */
-        isDisplayed(): webdriver.promise.Promise<boolean>;
-
-        /**
-         * Schedules a command to retrieve the outer HTML of this element.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with
-         *     the element's outer HTML.
-         */
-        getOuterHtml(): webdriver.promise.Promise<string>;
-
-        /**
-         * @return {!webdriver.promise.Promise.<webdriver.WebElement.Id>} A promise
-         *     that resolves to this element's JSON representation as defined by the
-         *     WebDriver wire protocol.
-         * @see http://code.google.com/p/selenium/wiki/JsonWireProtocol
-         */
-        getId(): webdriver.promise.Promise<IWebElementId>;
-
-        /**
-         * Schedules a command to retrieve the inner HTML of this element.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     element's inner HTML.
-         */
-        getInnerHtml(): webdriver.promise.Promise<string>;
-
-        //endregion
-    }
-
-    interface IWebElementFinders {
-        /**
-         * Schedule a command to find a descendant of this element. If the element
-         * cannot be found, a {@code bot.ErrorCode.NO_SUCH_ELEMENT} result will
-         * be returned by the driver. Unlike other commands, this error cannot be
-         * suppressed. In other words, scheduling a command to find an element doubles
-         * as an assert that the element is present on the page. To test whether an
-         * element is present on the page, use {@code #isElementPresent} instead.
-         *
-         * <p>The search criteria for an element may be defined using one of the
-         * factories in the {@link webdriver.By} namespace, or as a short-hand
-         * {@link webdriver.By.Hash} object. For example, the following two statements
-         * are equivalent:
-         * <code><pre>
-         * var e1 = element.findElement(By.id('foo'));
-         * var e2 = element.findElement({id:'foo'});
-         * </pre></code>
-         *
-         * <p>You may also provide a custom locator function, which takes as input
-         * this WebDriver instance and returns a {@link webdriver.WebElement}, or a
-         * promise that will resolve to a WebElement. For example, to find the first
-         * visible link on a page, you could write:
-         * <code><pre>
-         * var link = element.findElement(firstVisibleLink);
-         *
-         * function firstVisibleLink(element) {
-         *   var links = element.findElements(By.tagName('a'));
-         *   return webdriver.promise.filter(links, function(link) {
-         *     return links.isDisplayed();
-         *   }).then(function(visibleLinks) {
-         *     return visibleLinks[0];
-         *   });
-         * }
-         * </pre></code>
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Function)} locator The
-         *     locator strategy to use when searching for the element.
-         * @return {!webdriver.WebElement} A WebElement that can be used to issue
-         *     commands against the located element. If the element is not found, the
-         *     element will be invalidated and all scheduled commands aborted.
-         */
-        findElement(locator: Locator|By.Hash|Function): WebElementPromise;
-
-        /**
-         * Schedules a command to test if there is at least one descendant of this
-         * element that matches the given search criteria.
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Function)} locator The
-         *     locator strategy to use when searching for the element.
-         * @return {!webdriver.promise.Promise.<boolean>} A promise that will be
-         *     resolved with whether an element could be located on the page.
-         */
-        isElementPresent(locator: Locator|By.Hash|Function): webdriver.promise.Promise<boolean>;
-
-        /**
-         * Schedules a command to find all of the descendants of this element that
-         * match the given search criteria.
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Function)} locator The
-         *     locator strategy to use when searching for the elements.
-         * @return {!webdriver.promise.Promise.<!Array.<!webdriver.WebElement>>} A
-         *     promise that will resolve to an array of WebElements.
-         */
-        findElements(locator: Locator|By.Hash|Function): webdriver.promise.Promise<WebElement[]>;
-    }
-
-
-    /**
-     * Defines an object that can be asynchronously serialized to its WebDriver
-     * wire representation.
-     *
-     * @constructor
-     * @template T
-     */
-    interface Serializable<T> {
-        /**
-         * Returns either this instance's serialized represention, if immediately
-         * available, or a promise for its serialized representation. This function is
-         * conceptually equivalent to objects that have a {@code toJSON()} property,
-         * except the serialize() result may be a promise or an object containing a
-         * promise (which are not directly JSON friendly).
-         *
-         * @return {!(T|IThenable.<!T>)} This instance's serialized wire format.
-         */
-        serialize(): T|webdriver.promise.IThenable<T>;
-    }
-
-
-    /**
-     * Represents a DOM element. WebElements can be found by searching from the
-     * document root using a {@link webdriver.WebDriver} instance, or by searching
-     * under another WebElement:
-     *
-     *     driver.get('http://www.google.com');
-     *     var searchForm = driver.findElement(By.tagName('form'));
-     *     var searchBox = searchForm.findElement(By.name('q'));
-     *     searchBox.sendKeys('webdriver');
-     *
-     * The WebElement is implemented as a promise for compatibility with the promise
-     * API. It will always resolve itself when its internal state has been fully
-     * resolved and commands may be issued against the element. This can be used to
-     * catch errors when an element cannot be located on the page:
-     *
-     *     driver.findElement(By.id('not-there')).then(function(element) {
-     *       alert('Found an element that was not expected to be there!');
-     *     }, function(error) {
-     *       alert('The element was not found, as expected');
-     *     });
-     *
-     * @extends {webdriver.Serializable.<webdriver.WebElement.Id>}
-     */
-    class WebElement implements Serializable<IWebElementId> {
-        /**
-         * @param {!webdriver.WebDriver} driver The parent WebDriver instance for this
-         *     element.
-         * @param {!(webdriver.promise.Promise.<webdriver.WebElement.Id>|
-         *           webdriver.WebElement.Id)} id The server-assigned opaque ID for the
-         *     underlying DOM element.
-         * @constructor
-         */
-        constructor(driver: WebDriver, id: webdriver.promise.Promise<IWebElementId>|IWebElementId);
-
-        /**
-         * Wire protocol definition of a WebElement ID.
-         * @typedef {{ELEMENT: string}}
-         * @see https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol
-         */
-        static Id: IWebElementId;
-
-        /**
-         * The property key used in the wire protocol to indicate that a JSON object
-         * contains the ID of a WebElement.
-         * @type {string}
-         * @const
-         */
-        static ELEMENT_KEY: string;
-
-
-        /**
-         * @return {!webdriver.WebDriver} The parent driver for this instance.
-         */
-        getDriver(): WebDriver;
-
-        /**
-         * Schedule a command to find a descendant of this element. If the element
-         * cannot be found, a {@link bot.ErrorCode.NO_SUCH_ELEMENT} result will
-         * be returned by the driver. Unlike other commands, this error cannot be
-         * suppressed. In other words, scheduling a command to find an element doubles
-         * as an assert that the element is present on the page. To test whether an
-         * element is present on the page, use {@link #isElementPresent} instead.
-         *
-         * The search criteria for an element may be defined using one of the
-         * factories in the {@link webdriver.By} namespace, or as a short-hand
-         * {@link webdriver.By.Hash} object. For example, the following two statements
-         * are equivalent:
-         *
-         *     var e1 = element.findElement(By.id('foo'));
-         *     var e2 = element.findElement({id:'foo'});
-         *
-         * You may also provide a custom locator function, which takes as input
-         * this WebDriver instance and returns a {@link webdriver.WebElement}, or a
-         * promise that will resolve to a WebElement. For example, to find the first
-         * visible link on a page, you could write:
-         *
-         *     var link = element.findElement(firstVisibleLink);
-         *
-         *     function firstVisibleLink(element) {
-         *       var links = element.findElements(By.tagName('a'));
-         *       return webdriver.promise.filter(links, function(link) {
-         *         return links.isDisplayed();
-         *       }).then(function(visibleLinks) {
-         *         return visibleLinks[0];
-         *       });
-         *     }
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Function)} locator The
-         *     locator strategy to use when searching for the element.
-         * @return {!webdriver.WebElement} A WebElement that can be used to issue
-         *     commands against the located element. If the element is not found, the
-         *     element will be invalidated and all scheduled commands aborted.
-         */
-        findElement(locator: Locator|By.Hash|Function): WebElementPromise;
-
-        /**
-         * Schedules a command to test if there is at least one descendant of this
-         * element that matches the given search criteria.
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Function)} locator The
-         *     locator strategy to use when searching for the element.
-         * @return {!webdriver.promise.Promise.<boolean>} A promise that will be
-         *     resolved with whether an element could be located on the page.
-         */
-        isElementPresent(locator: Locator|By.Hash|Function): webdriver.promise.Promise<boolean>;
-
-        /**
-         * Schedules a command to find all of the descendants of this element that
-         * match the given search criteria.
-         *
-         * @param {!(webdriver.Locator|webdriver.By.Hash|Function)} locator The
-         *     locator strategy to use when searching for the elements.
-         * @return {!webdriver.promise.Promise.<!Array.<!webdriver.WebElement>>} A
-         *     promise that will resolve to an array of WebElements.
-         */
-        findElements(locator: Locator|By.Hash|Function): webdriver.promise.Promise<WebElement[]>;
-
-        /**
-         * Schedules a command to click on this element.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when the click command has completed.
-         */
-        click(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to type a sequence on the DOM element represented by this
-         * instance.
-         *
-         * Modifier keys (SHIFT, CONTROL, ALT, META) are stateful; once a modifier is
-         * processed in the keysequence, that key state is toggled until one of the
-         * following occurs:
-         *
-         * - The modifier key is encountered again in the sequence. At this point the
-         *   state of the key is toggled (along with the appropriate keyup/down events).
-         * - The {@link webdriver.Key.NULL} key is encountered in the sequence. When
-         *   this key is encountered, all modifier keys current in the down state are
-         *   released (with accompanying keyup events). The NULL key can be used to
-         *   simulate common keyboard shortcuts:
-         *
-         *         element.sendKeys("text was",
-         *                          webdriver.Key.CONTROL, "a", webdriver.Key.NULL,
-         *                          "now text is");
-         *         // Alternatively:
-         *         element.sendKeys("text was",
-         *                          webdriver.Key.chord(webdriver.Key.CONTROL, "a"),
-         *                          "now text is");
-         *
-         * - The end of the keysequence is encountered. When there are no more keys
-         *   to type, all depressed modifier keys are released (with accompanying keyup
-         *   events).
-         *
-         * If this element is a file input ({@code <input type="file">}), the
-         * specified key sequence should specify the path to the file to attach to
-         * the element. This is analgous to the user clicking "Browse..." and entering
-         * the path into the file select dialog.
-         *
-         *     var form = driver.findElement(By.css('form'));
-         *     var element = form.findElement(By.css('input[type=file]'));
-         *     element.sendKeys('/path/to/file.txt');
-         *     form.submit();
-         *
-         * For uploads to function correctly, the entered path must reference a file
-         * on the _browser's_ machine, not the local machine running this script. When
-         * running against a remote Selenium server, a {@link webdriver.FileDetector}
-         * may be used to transparently copy files to the remote machine before
-         * attempting to upload them in the browser.
-         *
-         * __Note:__ On browsers where native keyboard events are not supported
-         * (e.g. Firefox on OS X), key events will be synthesized. Special
-         * punctionation keys will be synthesized according to a standard QWERTY en-us
-         * keyboard layout.
-         *
-         * @param {...(string|!webdriver.promise.Promise<string>)} var_args The sequence
-         *     of keys to type. All arguments will be joined into a single sequence.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when all keys have been typed.
-         */
-        sendKeys(...var_args: Array<string|webdriver.promise.Promise<string>>): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to query for the tag/node name of this element.
-         * @return {!webdriver.promise.Promise.<string>} A promise that will be
-         *     resolved with the element's tag name.
-         */
-        getTagName(): webdriver.promise.Promise<string>;
-
-        /**
-         * Schedules a command to query for the computed style of the element
-         * represented by this instance. If the element inherits the named style from
-         * its parent, the parent will be queried for its value.  Where possible, color
-         * values will be converted to their hex representation (e.g. #00ff00 instead of
-         * rgb(0, 255, 0)).
-         *
-         * _Warning:_ the value returned will be as the browser interprets it, so
-         * it may be tricky to form a proper assertion.
-         *
-         * @param {string} cssStyleProperty The name of the CSS style property to look
-         *     up.
-         * @return {!webdriver.promise.Promise.<string>} A promise that will be
-         *     resolved with the requested CSS value.
-         */
-        getCssValue(cssStyleProperty: string): webdriver.promise.Promise<string>;
-
-        /**
-         * Schedules a command to query for the value of the given attribute of the
-         * element. Will return the current value, even if it has been modified after
-         * the page has been loaded. More exactly, this method will return the value of
-         * the given attribute, unless that attribute is not present, in which case the
-         * value of the property with the same name is returned. If neither value is
-         * set, null is returned (for example, the "value" property of a textarea
-         * element). The "style" attribute is converted as best can be to a
-         * text representation with a trailing semi-colon. The following are deemed to
-         * be "boolean" attributes and will return either "true" or null:
-         *
-         * async, autofocus, autoplay, checked, compact, complete, controls, declare,
-         * defaultchecked, defaultselected, defer, disabled, draggable, ended,
-         * formnovalidate, hidden, indeterminate, iscontenteditable, ismap, itemscope,
-         * loop, multiple, muted, nohref, noresize, noshade, novalidate, nowrap, open,
-         * paused, pubdate, readonly, required, reversed, scoped, seamless, seeking,
-         * selected, spellcheck, truespeed, willvalidate
-         *
-         * Finally, the following commonly mis-capitalized attribute/property names
-         * are evaluated as expected:
-         *
-         * - "class"
-         * - "readonly"
-         *
-         * @param {string} attributeName The name of the attribute to query.
-         * @return {!webdriver.promise.Promise.<?string>} A promise that will be
-         *     resolved with the attribute's value. The returned value will always be
-         *     either a string or null.
-         */
-        getAttribute(attributeName: string): webdriver.promise.Promise<string>;
-
-        /**
-         * Get the visible (i.e. not hidden by CSS) innerText of this element, including
-         * sub-elements, without any leading or trailing whitespace.
-         * @return {!webdriver.promise.Promise.<string>} A promise that will be
-         *     resolved with the element's visible text.
-         */
-        getText(): webdriver.promise.Promise<string>;
-
-        /**
-         * Schedules a command to compute the size of this element's bounding box, in
-         * pixels.
-         * @return {!webdriver.promise.Promise.<{width: number, height: number}>} A
-         *     promise that will be resolved with the element's size as a
-         *     {@code {width:number, height:number}} object.
-         */
-        getSize(): webdriver.promise.Promise<ISize>;
-
-        /**
-         * Schedules a command to compute the location of this element in page space.
-         * @return {!webdriver.promise.Promise.<{x: number, y: number}>} A promise that
-         *     will be resolved to the element's location as a
-         *     {@code {x:number, y:number}} object.
-         */
-        getLocation(): webdriver.promise.Promise<ILocation>;
-
-        /**
-         * Schedules a command to query whether the DOM element represented by this
-         * instance is enabled, as dicted by the {@code disabled} attribute.
-         * @return {!webdriver.promise.Promise.<boolean>} A promise that will be
-         *     resolved with whether this element is currently enabled.
-         */
-        isEnabled(): webdriver.promise.Promise<boolean>;
-
-        /**
-         * Schedules a command to query whether this element is selected.
-         * @return {!webdriver.promise.Promise.<boolean>} A promise that will be
-         *     resolved with whether this element is currently selected.
-         */
-        isSelected(): webdriver.promise.Promise<boolean>;
-
-        /**
-         * Schedules a command to submit the form containing this element (or this
-         * element if it is a FORM element). This command is a no-op if the element is
-         * not contained in a form.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when the form has been submitted.
-         */
-        submit(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to clear the {@code value} of this element. This command
-         * has no effect if the underlying DOM element is neither a text INPUT element
-         * nor a TEXTAREA element.
-         * @return {!webdriver.promise.Promise.<void>} A promise that will be resolved
-         *     when the element has been cleared.
-         */
-        clear(): webdriver.promise.Promise<void>;
-
-        /**
-         * Schedules a command to test whether this element is currently displayed.
-         * @return {!webdriver.promise.Promise.<boolean>} A promise that will be
-         *     resolved with whether this element is currently visible on the page.
-         */
-        isDisplayed(): webdriver.promise.Promise<boolean>;
-
-        /**
-         * Schedules a command to retrieve the outer HTML of this element.
-         * @return {!webdriver.promise.Promise.<string>} A promise that will be
-         *     resolved with the element's outer HTML.
-         */
-        getOuterHtml(): webdriver.promise.Promise<string>;
-
-        /**
-         * @return {!webdriver.promise.Promise.<webdriver.WebElement.Id>} A promise
-         *     that resolves to this element's JSON representation as defined by the
-         *     WebDriver wire protocol.
-         * @see http://code.google.com/p/selenium/wiki/JsonWireProtocol
-         */
-        getId(): webdriver.promise.Promise<IWebElementId>;
-
-        /**
-         * Returns the raw ID string ID for this element.
-         * @return {!webdriver.promise.Promise<string>} A promise that resolves to this
-         *     element's raw ID as a string value.
-         * @package
-         */
-        getRawId(): webdriver.promise.Promise<string>;
-
-        /** @override */
-        serialize(): webdriver.promise.Promise<IWebElementId>;
-
-        /**
-         * Schedules a command to retrieve the inner HTML of this element.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved with the
-         *     element's inner HTML.
-         */
-        getInnerHtml(): webdriver.promise.Promise<string>;
-
-        /**
-         * Compares to WebElements for equality.
-         * @param {!webdriver.WebElement} a A WebElement.
-         * @param {!webdriver.WebElement} b A WebElement.
-         * @return {!webdriver.promise.Promise} A promise that will be resolved to
-         *     whether the two WebElements are equal.
-         */
-        static equals(a: WebElement, b: WebElement): webdriver.promise.Promise<boolean>;
-    }
-
-    /**
-     * WebElementPromise is a promise that will be fulfilled with a WebElement.
-     * This serves as a forward proxy on WebElement, allowing calls to be
-     * scheduled without directly on this instance before the underlying
-     * WebElement has been fulfilled. In other words, the following two statements
-     * are equivalent:
-     * <pre><code>
-     *     driver.findElement({id: 'my-button'}).click();
-     *     driver.findElement({id: 'my-button'}).then(function(el) {
-     *       return el.click();
-     *     });
-     * </code></pre>
-     *
-     * @param {!webdriver.WebDriver} driver The parent WebDriver instance for this
-     *     element.
-     * @param {!webdriver.promise.Promise.<!webdriver.WebElement>} el A promise
-     *     that will resolve to the promised element.
-     * @constructor
-     * @extends {webdriver.WebElement}
-     * @implements {webdriver.promise.Thenable.<!webdriver.WebElement>}
-     * @final
-     */
-    class WebElementPromise extends WebElement implements webdriver.promise.IThenable<WebElement> {
-        /**
-         * Cancels the computation of this promise's value, rejecting the promise in the
-         * process. This method is a no-op if the promise has alreayd been resolved.
-         *
-         * @param {string=} opt_reason The reason this promise is being cancelled.
-         */
-        cancel(opt_reason?: string): void;
-
-
-        /** @return {boolean} Whether this promise's value is still being computed. */
-        isPending(): boolean;
-
-
-        /**
-         * Registers listeners for when this instance is resolved.
-         *
-         * @param opt_callback The
-         *     function to call if this promise is successfully resolved. The function
-         *     should expect a single argument: the promise's resolved value.
-         * @param opt_errback The
-         *     function to call if this promise is rejected. The function should expect
-         *     a single argument: the rejection reason.
-         * @return A new promise which will be
-         *     resolved with the result of the invoked callback.
-         */
-        then<R>(opt_callback?: (value: WebElement) => webdriver.promise.Promise<R>, opt_errback?: (error: any) => any): webdriver.promise.Promise<R>;
-
-        /**
-         * Registers listeners for when this instance is resolved.
-         *
-         * @param opt_callback The
-         *     function to call if this promise is successfully resolved. The function
-         *     should expect a single argument: the promise's resolved value.
-         * @param opt_errback The
-         *     function to call if this promise is rejected. The function should expect
-         *     a single argument: the rejection reason.
-         * @return A new promise which will be
-         *     resolved with the result of the invoked callback.
-         */
-        then<R>(opt_callback?: (value: WebElement) => R, opt_errback?: (error: any) => any): webdriver.promise.Promise<R>;
-
-
-        /**
-         * Registers a listener for when this promise is rejected. This is synonymous
-         * with the {@code catch} clause in a synchronous API:
-         * <pre><code>
-         *   // Synchronous API:
-         *   try {
-         *     doSynchronousWork();
-         *   } catch (ex) {
-         *     console.error(ex);
-         *   }
-         *
-         *   // Asynchronous promise API:
-         *   doAsynchronousWork().thenCatch(function(ex) {
-         *     console.error(ex);
-         *   });
-         * </code></pre>
-         *
-         * @param {function(*): (R|webdriver.promise.Promise.<R>)} errback The function
-         *     to call if this promise is rejected. The function should expect a single
-         *     argument: the rejection reason.
-         * @return {!webdriver.promise.Promise.<R>} A new promise which will be
-         *     resolved with the result of the invoked callback.
-         * @template R
-         */
-        thenCatch<R>(errback: (error: any) => any): webdriver.promise.Promise<R>;
-
-
-        /**
-         * Registers a listener to invoke when this promise is resolved, regardless
-         * of whether the promise's value was successfully computed. This function
-         * is synonymous with the {@code finally} clause in a synchronous API:
-         * <pre><code>
-         *   // Synchronous API:
-         *   try {
-         *     doSynchronousWork();
-         *   } finally {
-         *     cleanUp();
-         *   }
-         *
-         *   // Asynchronous promise API:
-         *   doAsynchronousWork().thenFinally(cleanUp);
-         * </code></pre>
-         *
-         * <b>Note:</b> similar to the {@code finally} clause, if the registered
-         * callback returns a rejected promise or throws an error, it will silently
-         * replace the rejection error (if any) from this promise:
-         * <pre><code>
-         *   try {
-         *     throw Error('one');
-         *   } finally {
-         *     throw Error('two');  // Hides Error: one
-         *   }
-         *
-         *   webdriver.promise.rejected(Error('one'))
-         *       .thenFinally(function() {
-         *         throw Error('two');  // Hides Error: one
-         *       });
-         * </code></pre>
-         *
-         *
-         * @param {function(): (R|webdriver.promise.Promise.<R>)} callback The function
-         *     to call when this promise is resolved.
-         * @return {!webdriver.promise.Promise.<R>} A promise that will be fulfilled
-         *     with the callback result.
-         * @template R
-         */
-        thenFinally<R>(callback: () => any): webdriver.promise.Promise<R>;
-    }
-
-    namespace By {
-        /**
-         * Locates elements that have a specific class name. The returned locator
-         * is equivalent to searching for elements with the CSS selector ".clazz".
-         *
-         * @param {string} className The class name to search for.
-         * @return {!webdriver.Locator} The new locator.
-         * @see http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#classes
-         * @see http://www.w3.org/TR/CSS2/selector.html#class-html
-         */
-        function className(value: string): Locator;
-
-        /**
-         * Locates elements using a CSS selector. For browsers that do not support
-         * CSS selectors, WebDriver implementations may return an
-         * {@linkplain bot.Error.State.INVALID_SELECTOR invalid selector} error. An
-         * implementation may, however, emulate the CSS selector API.
-         *
-         * @param {string} selector The CSS selector to use.
-         * @return {!webdriver.Locator} The new locator.
-         * @see http://www.w3.org/TR/CSS2/selector.html
-         */
-        function css(value: string): Locator;
-
-        /**
-         * Locates an element by its ID.
-         *
-         * @param {string} id The ID to search for.
-         * @return {!webdriver.Locator} The new locator.
-         */
-        function id(value: string): Locator;
-
-        /**
-         * Locates link elements whose {@linkplain webdriver.WebElement#getText visible
-         * text} matches the given string.
-         *
-         * @param {string} text The link text to search for.
-         * @return {!webdriver.Locator} The new locator.
-         */
-        function linkText(value: string): Locator;
-
-        /**
-         * Locates an elements by evaluating a
-         * {@linkplain webdriver.WebDriver#executeScript JavaScript expression}.
-         * The result of this expression must be an element or list of elements.
-         *
-         * @param {!(string|Function)} script The script to execute.
-         * @param {...*} var_args The arguments to pass to the script.
-         * @return {function(!webdriver.WebDriver): !webdriver.promise.Promise} A new,
-         *     JavaScript-based locator function.
-         */
-        function js(script: any, ...var_args: any[]): (WebDriver: webdriver.WebDriver) => webdriver.promise.Promise<any>;
-
-        /**
-         * Locates elements whose {@code name} attribute has the given value.
-         *
-         * @param {string} name The name attribute to search for.
-         * @return {!webdriver.Locator} The new locator.
-         */
-        function name(value: string): Locator;
-
-        /**
-         * Locates link elements whose {@linkplain webdriver.WebElement#getText visible
-         * text} contains the given substring.
-         *
-         * @param {string} text The substring to check for in a link's visible text.
-         * @return {!webdriver.Locator} The new locator.
-         */
-        function partialLinkText(value: string): Locator;
-
-        /**
-         * Locates elements with a given tag name. The returned locator is
-         * equivalent to using the
-         * [getElementsByTagName](https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagName)
-         * DOM function.
-         *
-         * @param {string} text The substring to check for in a link's visible text.
-         * @return {!webdriver.Locator} The new locator.
-         * @see http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html
-         */
-        function tagName(value: string): Locator;
-
-        /**
-         * Locates elements matching a XPath selector. Care should be taken when
-         * using an XPath selector with a {@link webdriver.WebElement} as WebDriver
-         * will respect the context in the specified in the selector. For example,
-         * given the selector {@code "//div"}, WebDriver will search from the
-         * document root regardless of whether the locator was used with a
-         * WebElement.
-         *
-         * @param {string} xpath The XPath selector to use.
-         * @return {!webdriver.Locator} The new locator.
-         * @see http://www.w3.org/TR/xpath/
-         */
-        function xpath(value: string): Locator;
-
-        /**
-         * Short-hand expressions for the primary element locator strategies.
-         * For example the following two statements are equivalent:
-         *
-         *     var e1 = driver.findElement(webdriver.By.id('foo'));
-         *     var e2 = driver.findElement({id: 'foo'});
-         *
-         * Care should be taken when using JavaScript minifiers (such as the
-         * Closure compiler), as locator hashes will always be parsed using
-         * the un-obfuscated properties listed.
-         *
-         * @typedef {(
-         *     {className: string}|
-         *     {css: string}|
-         *     {id: string}|
-         *     {js: string}|
-         *     {linkText: string}|
-         *     {name: string}|
-         *     {partialLinkText: string}|
-         *     {tagName: string}|
-         *     {xpath: string})}
-         */
-        type Hash = {className: string}|
-            {css: string}|
-            {id: string}|
-            {js: string}|
-            {linkText: string}|
-            {name: string}|
-            {partialLinkText: string}|
-            {tagName: string}|
-            {xpath: string};
-    }
-
-    /**
-     * An element locator.
-     */
-    class Locator {
-        /**
-         * An element locator.
-         * @param {string} using The type of strategy to use for this locator.
-         * @param {string} value The search target of this locator.
-         * @constructor
-         */
-        constructor(using: string, value: string);
-
-
-        /**
-         * Maps {@link webdriver.By.Hash} keys to the appropriate factory function.
-         * @type {!Object.<string, function(string): !(Function|webdriver.Locator)>}
-         * @const
-         */
-        static Strategy: {
-            className: typeof webdriver.By.className;
-            css: typeof webdriver.By.css;
-            id: typeof webdriver.By.id;
-            js: typeof webdriver.By.js;
-            linkText: typeof webdriver.By.linkText;
-            name: typeof webdriver.By.name;
-            partialLinkText: typeof webdriver.By.partialLinkText;
-            tagName: typeof webdriver.By.tagName;
-            xpath: typeof webdriver.By.xpath;
-        };
-
-        /**
-         * Verifies that a {@code value} is a valid locator to use for searching for
-         * elements on the page.
-         *
-         * @param {*} value The value to check is a valid locator.
-         * @return {!(webdriver.Locator|Function)} A valid locator object or function.
-         * @throws {TypeError} If the given value is an invalid locator.
-         */
-        static checkLocator(value: any): Locator | Function;
-
-        /**
-         * The search strategy to use when searching for an element.
-         * @type {string}
-         */
-        using: string;
-
-        /**
-         * The search target for this locator.
-         * @type {string}
-         */
-        value: string;
-
-        /** @return {string} String representation of this locator. */
-        toString(): string;
-    }
-
-    /**
-     * Contains information about a WebDriver session.
-     */
-    class Session {
-
-        //region Constructors
-
-        /**
-         * @param {string} id The session ID.
-         * @param {!(Object|webdriver.Capabilities)} capabilities The session
-         *     capabilities.
-         * @constructor
-         */
-        constructor(id: string, capabilities: Capabilities);
-        constructor(id: string, capabilities: any);
-
-        //endregion
-
-        //region Methods
-
-        /**
-         * @return {string} This session's ID.
-         */
-        getId(): string;
-
-        /**
-         * @return {!webdriver.Capabilities} This session's capabilities.
-         */
-        getCapabilities(): Capabilities;
-
-        /**
-         * Retrieves the value of a specific capability.
-         * @param {string} key The capability to retrieve.
-         * @return {*} The capability value.
-         */
-        getCapability(key: string): any;
-
-        /**
-         * Returns the JSON representation of this object, which is just the string
-         * session ID.
-         * @return {string} The JSON representation of this Session.
-         */
-        toJSON(): string;
-
-        //endregion
-    }
-}
-
-declare namespace testing {
-    /**
-    * Registers a new test suite.
-    * @param name The suite name.
-    * @param fn The suite function, or {@code undefined} to define a pending test suite.
-    */
-    function describe(name: string, fn: Function): void;
-
-    /**
-     * Defines a suppressed test suite.
-     * @param name The suite name.
-     * @param fn The suite function, or {@code undefined} to define a pending test suite.
-     */
-    function xdescribe(name: string, fn: Function): void;
-
-    /**
-     * Register a function to call after the current suite finishes.
-     * @param fn
-     */
-    function after(fn: Function): void;
-
-    /**
-     * Register a function to call after each test in a suite.
-     * @param fn
-     */
-    function afterEach(fn: Function): void;
-
-    /**
-     * Register a function to call before the current suite starts.
-     * @param fn
-     */
-    function before(fn: Function): void;
-
-    /**
-     * Register a function to call before each test in a suite.
-     * @param fn
-     */
-    function beforeEach(fn: Function): void;
-
-    /**
-     * Add a test to the current suite.
-     * @param name The test name.
-     * @param fn The test function, or {@code undefined} to define a pending test case.
-     */
-    function it(name: string, fn: Function): void;
-
-    /**
-     * An alias for {@link #it()} that flags the test as the only one that should
-     * be run within the current suite.
-     * @param name The test name.
-     * @param fn The test function, or {@code undefined} to define a pending test case.
-     */
-    function iit(name: string, fn: Function): void;
-
-    /**
-     * Adds a test to the current suite while suppressing it so it is not run.
-     * @param name The test name.
-     * @param fn The test function, or {@code undefined} to define a pending test case.
-     */
-    function xit(name: string, fn: Function): void;
-}
-
-declare module 'selenium-webdriver/chrome' {
-    export = chrome;
-}
-
-declare module 'selenium-webdriver/firefox' {
-    export = firefox;
-}
-
-declare module 'selenium-webdriver/executors' {
-    export = executors;
-}
-
-declare module 'selenium-webdriver' {
-    export = webdriver;
-}
-
-declare module 'selenium-webdriver/testing' {
-    export = testing;
-}
diff --git a/demo/Angular2_Demo/typings/globals/selenium-webdriver/typings.json b/demo/Angular2_Demo/typings/globals/selenium-webdriver/typings.json
deleted file mode 100644
index 49b910bed369aa0fc769a7ee7d721756fec8d807..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings/globals/selenium-webdriver/typings.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "resolution": "main",
-  "tree": {
-    "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/7de6c3dd94feaeb21f20054b9f30d5dabc5efabd/selenium-webdriver/selenium-webdriver.d.ts",
-    "raw": "registry:dt/selenium-webdriver#2.44.0+20160317120654",
-    "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/7de6c3dd94feaeb21f20054b9f30d5dabc5efabd/selenium-webdriver/selenium-webdriver.d.ts"
-  }
-}
diff --git a/demo/Angular2_Demo/typings/index.d.ts b/demo/Angular2_Demo/typings/index.d.ts
deleted file mode 100644
index c76e8fac49bc96e294aad3ad68c8fb84155ac42d..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/typings/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-/// <reference path="globals/angular-protractor/index.d.ts" />
-/// <reference path="globals/core-js/index.d.ts" />
-/// <reference path="globals/jasmine/index.d.ts" />
-/// <reference path="globals/node/index.d.ts" />
-/// <reference path="globals/selenium-webdriver/index.d.ts" />
diff --git a/demo/Angular2_Demo/wallaby.js b/demo/Angular2_Demo/wallaby.js
deleted file mode 100644
index 28053a11fe60eb8bc720ba9837ae924782bdce20..0000000000000000000000000000000000000000
--- a/demo/Angular2_Demo/wallaby.js
+++ /dev/null
@@ -1,77 +0,0 @@
-// Configuration for the Wallaby Visual Studio Code testing extension
-// https://marketplace.visualstudio.com/items?itemName=WallabyJs.wallaby-vscode
-// Note: Wallaby is not open source and costs money
-
-module.exports = function () {
-
-  return {
-    files: [
-      // System.js for module loading
-      {pattern: 'node_modules/systemjs/dist/system.js', instrument: false},
-      {pattern: 'systemjs.config.js', instrument: false},
-
-      // Polyfills
-      {pattern: 'node_modules/core-js/client/shim.min.js', instrument: false},
-
-      // Reflect, Zone.js, and test shims
-      // Rx.js, Angular 2 itself, and the testing library not here because loaded by systemjs
-      {pattern: 'node_modules/reflect-metadata/Reflect.js', instrument: false},
-      {pattern: 'node_modules/zone.js/dist/zone.js', instrument: false},
-      {pattern: 'node_modules/zone.js/dist/jasmine-patch.js', instrument: false},
-      {pattern: 'node_modules/zone.js/dist/async-test.js', instrument: false},
-      {pattern: 'node_modules/zone.js/dist/fake-async-test.js', instrument: false},
-
-      {pattern: 'app/**/*+(ts|html|css)', load: false},
-      {pattern: 'app/**/*.spec.ts', ignore: true}
-    ],
-
-    tests: [
-      {pattern: 'app/**/*.spec.ts', load: false}
-    ],
-
-    middleware: function (app, express) {
-      app.use('/node_modules', express.static(require('path').join(__dirname, 'node_modules')));
-    },
-
-    testFramework: 'jasmine',
-
-    debug: true,
-
-    bootstrap: function (wallaby) {
-      wallaby.delayStart();
-
-      System.config({
-        packageWithIndex: true // sadly, we can't use umd packages (yet?)
-      });
-
-      System.import('systemjs.config.js')
-        .then(function () {
-          return Promise.all([
-            System.import('@angular/core/testing'),
-            System.import('@angular/platform-browser-dynamic/testing')
-          ])
-        })
-        .then(function (providers) {
-          var testing = providers[0];
-          var testingBrowser = providers[1];
-
-          testing.setBaseTestProviders(
-            testingBrowser.TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
-            testingBrowser.TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS);
-
-          // Load all spec files
-          return Promise.all(wallaby.tests.map(function (specFile) {
-            return System.import(specFile);
-          }));
-        })
-        .then(function () {
-          wallaby.start();
-        })
-        .catch(function (e) {
-          setTimeout(function () {
-            throw e;
-          }, 0);
-        });
-    }
-  };
-};