You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by su...@apache.org on 2016/12/21 16:37:20 UTC

[1/7] knox git commit: KNOX-749 Initial admin UI source project and productized distribution

Repository: knox
Updated Branches:
  refs/heads/master 9f08a22e2 -> 87a7592ea


http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/service.xml
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/service.xml b/gateway-applications/src/main/resources/applications/admin-ui/service.xml
new file mode 100644
index 0000000..476659b
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/service.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<service role="admin-ui" name="admin-ui" version="1.0.0">
+    <policies>
+        <policy role="webappsec"/>
+        <policy role="authentication"/>
+        <policy role="rewrite"/>
+        <policy role="identity-assertion"/>
+        <policy role="authorization"/>
+		<policy role="federation"/>
+    </policies>
+    <routes>
+        <route path="/?**">
+            <policies>
+                <policy role="webappsec"/>
+                <policy role="authentication" name="Anonymous"/>
+                <policy role="identity-assertion"/>
+                <policy role="authorization"/>
+                <policy role="rewrite"/>
+				<policy role="federation"/>
+            </policies>
+        </route>
+        <route path="/**?**">
+            <policies>
+                <policy role="webappsec"/>
+                <policy role="authentication" name="Anonymous"/>
+                <policy role="identity-assertion"/>
+                <policy role="authorization"/>
+                <policy role="rewrite"/>
+				<policy role="federation"/>
+            </policies>
+        </route>
+    </routes>
+</service>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-release/home/conf/topologies/admin.xml
----------------------------------------------------------------------
diff --git a/gateway-release/home/conf/topologies/admin.xml b/gateway-release/home/conf/topologies/admin.xml
index 2f3d9a9..8ca9024 100644
--- a/gateway-release/home/conf/topologies/admin.xml
+++ b/gateway-release/home/conf/topologies/admin.xml
@@ -20,6 +20,16 @@
     <gateway>
 
         <provider>
+            <role>webappsec</role>
+            <name>WebAppSec</name>
+            <enabled>true</enabled>
+            <param><name>csrf.enabled</name><value>true</value></param>
+            <param><name>csrf.customHeader</name><value>X-XSRF-Header</value></param>
+            <param><name>csrf.methodsToIgnore</name><value>GET,OPTIONS,HEAD</value></param>
+            <param><name>xframe-options.enabled</name><value>true</value></param>
+        </provider>
+
+        <provider>
             <role>authentication</role>
             <name>ShiroProvider</name>
             <enabled>true</enabled>
@@ -103,6 +113,10 @@
 
     </gateway>
 
+    <application>
+        <role>admin-ui</role>
+    </application>
+
     <service>
         <role>KNOX</role>
     </service>

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b27858f..3f51b22 100644
--- a/pom.xml
+++ b/pom.xml
@@ -250,6 +250,11 @@
                         <exclude>**/applications/**/bootstrap.min.**</exclude>
                         <exclude>**/applications/**/fonts/**</exclude>
                         <exclude>**/applications/**/libs/**</exclude>
+                        <exclude>**/applications/**/assets/**</exclude>
+                        <exclude>**/applications/**/*.bundle.*</exclude>
+                        <exclude>**/node_modules/**</exclude>
+                        <exclude>**/dist/**</exclude>
+                        <exclude>gateway-admin-ui/**</exclude>
                         <exclude>atlassian-ide-plugin.xml</exclude>
                     </excludes>
                 </configuration>


[7/7] knox git commit: KNOX-749 Initial admin UI source project and productized distribution

Posted by su...@apache.org.
KNOX-749 Initial admin UI source project and productized distribution


Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/87a7592e
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/87a7592e
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/87a7592e

Branch: refs/heads/master
Commit: 87a7592ea9fd2b3ceb40e7e7ec3aadf3c2b8c087
Parents: 9f08a22
Author: Sumit Gupta <su...@apache.org>
Authored: Wed Dec 21 11:35:45 2016 -0500
Committer: Sumit Gupta <su...@apache.org>
Committed: Wed Dec 21 11:35:45 2016 -0500

----------------------------------------------------------------------
 .gitignore                                      |   31 +
 gateway-admin-ui/README.md                      |   48 +
 gateway-admin-ui/angular-cli.json               |   59 +
 gateway-admin-ui/e2e/app.e2e-spec.ts            |   14 +
 gateway-admin-ui/e2e/app.po.ts                  |   11 +
 gateway-admin-ui/e2e/tsconfig.json              |   16 +
 gateway-admin-ui/karma.conf.js                  |   43 +
 gateway-admin-ui/package.json                   |   49 +
 gateway-admin-ui/protractor.conf.js             |   32 +
 gateway-admin-ui/src/app/app.component.css      |    0
 gateway-admin-ui/src/app/app.component.html     |    3 +
 gateway-admin-ui/src/app/app.component.spec.ts  |   37 +
 gateway-admin-ui/src/app/app.component.ts       |   40 +
 gateway-admin-ui/src/app/app.module.ts          |   56 +
 .../src/app/gateway-version.component.ts        |   49 +
 .../src/app/gateway-version.service.ts          |   51 +
 gateway-admin-ui/src/app/gateway-version.ts     |   20 +
 gateway-admin-ui/src/app/index.ts               |   18 +
 gateway-admin-ui/src/app/main.ts                |   21 +
 .../src/app/topology-detail.component.ts        |  139 ++
 gateway-admin-ui/src/app/topology.component.ts  |   70 +
 gateway-admin-ui/src/app/topology.service.ts    |  124 ++
 gateway-admin-ui/src/app/topology.ts            |   23 +
 .../src/app/utils/json-pretty.pipe.ts           |   27 +
 gateway-admin-ui/src/app/utils/tab.component.ts |   34 +
 .../src/app/utils/tabs.component.ts             |   54 +
 gateway-admin-ui/src/app/utils/xml.pipe.ts      |   27 +
 gateway-admin-ui/src/assets/.gitkeep            |    0
 gateway-admin-ui/src/assets/sticky-footer.css   |   22 +
 gateway-admin-ui/src/assets/vkbeautify.js       |  357 +++
 .../src/environments/environment.prod.ts        |   19 +
 .../src/environments/environment.ts             |   24 +
 gateway-admin-ui/src/favicon.ico                |  Bin 0 -> 5430 bytes
 gateway-admin-ui/src/index.html                 |   79 +
 gateway-admin-ui/src/main.ts                    |   28 +
 gateway-admin-ui/src/polyfills.ts               |   35 +
 gateway-admin-ui/src/styles.css                 |    1 +
 gateway-admin-ui/src/test.ts                    |   48 +
 gateway-admin-ui/src/tsconfig.json              |   18 +
 gateway-admin-ui/src/typings.d.ts               |   18 +
 gateway-admin-ui/tslint.json                    |  107 +
 .../admin-ui/app/assets/sticky-footer.css       |   22 +
 .../admin-ui/app/assets/vkbeautify.js           |  357 +++
 .../applications/admin-ui/app/favicon.ico       |  Bin 0 -> 5430 bytes
 .../applications/admin-ui/app/index.html        |   79 +
 .../app/inline.d41d8cd98f00b204e980.bundle.js   |    2 +
 .../app/inline.d41d8cd98f00b204e980.bundle.map  |    1 +
 .../app/main.a62ce79090310dbb7cec.bundle.js     |    2 +
 .../app/main.a62ce79090310dbb7cec.bundle.js.gz  |  Bin 0 -> 3675 bytes
 .../app/main.a62ce79090310dbb7cec.bundle.map    |    1 +
 .../app/styles.b2328beb0372c051d06d.bundle.js   |    2 +
 .../app/styles.b2328beb0372c051d06d.bundle.map  |    1 +
 ....d41d8cd98f00b204e9800998ecf8427e.bundle.css |    2 +
 .../app/vendor.a4f10aaf35e0664cc5fa.bundle.js   | 2035 ++++++++++++++++++
 .../vendor.a4f10aaf35e0664cc5fa.bundle.js.gz    |  Bin 0 -> 459996 bytes
 .../app/vendor.a4f10aaf35e0664cc5fa.bundle.map  |    1 +
 .../resources/applications/admin-ui/service.xml |   49 +
 gateway-release/home/conf/topologies/admin.xml  |   14 +
 pom.xml                                         |    5 +
 59 files changed, 4425 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 35f4d01..61d27c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,34 @@ velocity.log
 *.pyc
 *.py~
 *.patch
+
+# ui compiled output
+dist
+tmp
+
+# ui dependencies
+node_modules
+bower_components
+
+# other IDEs and editors
+.vscode
+.c9/
+*.launch
+
+# ui misc
+.sass-cache
+connect.lock
+coverage/*
+libpeerconnection.log
+npm-debug.log
+testem.log
+typings
+
+# e2e and app
+e2e/*.js
+e2e/*.map
+gateway-admin-ui/src/app/**/*.js
+gateway-admin-ui/src/app/**/*.map
+
+#System Files
+Thumbs.db

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/README.md
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/README.md b/gateway-admin-ui/README.md
new file mode 100644
index 0000000..40a5d3d
--- /dev/null
+++ b/gateway-admin-ui/README.md
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+# NgKnoxUi
+
+This project was generated with [angular-cli](https://github.com/angular/angular-cli) version 1.0.0-beta.22-1.
+
+## Development server
+Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
+
+## Code scaffolding
+
+Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive/pipe/service/class`.
+
+## Build
+
+Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
+
+## Running unit tests
+
+Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
+
+## Running end-to-end tests
+
+Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
+Before running the tests make sure you are serving the app via `ng serve`.
+
+## Deploying to Github Pages
+
+Run `ng github-pages:deploy` to deploy to Github Pages.
+
+## Further help
+
+To get more help on the `angular-cli` use `ng --help` or go check out the [Angular-CLI README](https://github.com/angular/angular-cli/blob/master/README.md).

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/angular-cli.json
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/angular-cli.json b/gateway-admin-ui/angular-cli.json
new file mode 100644
index 0000000..832c4f0
--- /dev/null
+++ b/gateway-admin-ui/angular-cli.json
@@ -0,0 +1,59 @@
+{
+  "project": {
+    "version": "1.0.0-beta.22-1",
+    "name": "ng-knox-ui"
+  },
+  "apps": [
+    {
+      "root": "src",
+      "outDir": "dist",
+      "assets": [
+        "assets",
+        "favicon.ico"
+      ],
+      "index": "index.html",
+      "main": "main.ts",
+      "test": "test.ts",
+      "tsconfig": "tsconfig.json",
+      "prefix": "app",
+      "mobile": false,
+      "styles": [
+        "styles.css"
+      ],
+      "scripts": [],
+      "environments": {
+        "source": "environments/environment.ts",
+        "dev": "environments/environment.ts",
+        "prod": "environments/environment.prod.ts"
+      }
+    }
+  ],
+  "addons": [],
+  "packages": [],
+  "e2e": {
+    "protractor": {
+      "config": "./protractor.conf.js"
+    }
+  },
+  "test": {
+    "karma": {
+      "config": "./karma.conf.js"
+    }
+  },
+  "defaults": {
+    "styleExt": "css",
+    "prefixInterfaces": false,
+    "inline": {
+      "style": false,
+      "template": false
+    },
+    "spec": {
+      "class": false,
+      "component": true,
+      "directive": true,
+      "module": false,
+      "pipe": true,
+      "service": true
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/e2e/app.e2e-spec.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/e2e/app.e2e-spec.ts b/gateway-admin-ui/e2e/app.e2e-spec.ts
new file mode 100644
index 0000000..62d7181
--- /dev/null
+++ b/gateway-admin-ui/e2e/app.e2e-spec.ts
@@ -0,0 +1,14 @@
+import { NgKnoxUiPage } from './app.po';
+
+describe('ng-knox-ui App', function() {
+  let page: NgKnoxUiPage;
+
+  beforeEach(() => {
+    page = new NgKnoxUiPage();
+  });
+
+  it('should display message saying app works', () => {
+    page.navigateTo();
+    expect(page.getParagraphText()).toEqual('app works!');
+  });
+});

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/e2e/app.po.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/e2e/app.po.ts b/gateway-admin-ui/e2e/app.po.ts
new file mode 100644
index 0000000..bd3458e
--- /dev/null
+++ b/gateway-admin-ui/e2e/app.po.ts
@@ -0,0 +1,11 @@
+import { browser, element, by } from 'protractor';
+
+export class NgKnoxUiPage {
+  navigateTo() {
+    return browser.get('/');
+  }
+
+  getParagraphText() {
+    return element(by.css('app-root h1')).getText();
+  }
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/e2e/tsconfig.json
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/e2e/tsconfig.json b/gateway-admin-ui/e2e/tsconfig.json
new file mode 100644
index 0000000..656bdb1
--- /dev/null
+++ b/gateway-admin-ui/e2e/tsconfig.json
@@ -0,0 +1,16 @@
+{
+  "compileOnSave": false,
+  "compilerOptions": {
+    "declaration": false,
+    "emitDecoratorMetadata": true,
+    "experimentalDecorators": true,
+    "module": "commonjs",
+    "moduleResolution": "node",
+    "outDir": "../dist/out-tsc-e2e",
+    "sourceMap": true,
+    "target": "es5",
+    "typeRoots": [
+      "../node_modules/@types"
+    ]
+  }
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/karma.conf.js
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/karma.conf.js b/gateway-admin-ui/karma.conf.js
new file mode 100644
index 0000000..1f2613a
--- /dev/null
+++ b/gateway-admin-ui/karma.conf.js
@@ -0,0 +1,43 @@
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/0.13/config/configuration-file.html
+
+module.exports = function (config) {
+  config.set({
+    basePath: '',
+    frameworks: ['jasmine', 'angular-cli'],
+    plugins: [
+      require('karma-jasmine'),
+      require('karma-chrome-launcher'),
+      require('karma-remap-istanbul'),
+      require('angular-cli/plugins/karma')
+    ],
+    files: [
+      { pattern: './src/test.ts', watched: false }
+    ],
+    preprocessors: {
+      './src/test.ts': ['angular-cli']
+    },
+    mime: {
+      'text/x-typescript': ['ts','tsx']
+    },
+    remapIstanbulReporter: {
+      reports: {
+        html: 'coverage',
+        lcovonly: './coverage/coverage.lcov'
+      }
+    },
+    angularCli: {
+      config: './angular-cli.json',
+      environment: 'dev'
+    },
+    reporters: config.angularCli && config.angularCli.codeCoverage
+              ? ['progress', 'karma-remap-istanbul']
+              : ['progress'],
+    port: 9876,
+    colors: true,
+    logLevel: config.LOG_INFO,
+    autoWatch: true,
+    browsers: ['Chrome'],
+    singleRun: false
+  });
+};

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/package.json
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/package.json b/gateway-admin-ui/package.json
new file mode 100644
index 0000000..0d7fdd7
--- /dev/null
+++ b/gateway-admin-ui/package.json
@@ -0,0 +1,49 @@
+{
+  "name": "ng-knox-ui",
+  "version": "0.0.0",
+  "license": "MIT",
+  "angular-cli": {},
+  "scripts": {
+    "start": "ng serve",
+    "lint": "tslint \"src/**/*.ts\"",
+    "test": "ng test",
+    "pree2e": "webdriver-manager update",
+    "e2e": "protractor"
+  },
+  "private": true,
+  "dependencies": {
+    "@angular/common": "2.2.3",
+    "@angular/compiler": "2.2.3",
+    "@angular/core": "2.2.3",
+    "@angular/forms": "2.2.3",
+    "@angular/http": "2.2.3",
+    "@angular/platform-browser": "2.2.3",
+    "@angular/platform-browser-dynamic": "2.2.3",
+    "@angular/router": "3.2.3",
+    "core-js": "^2.4.1",
+    "ng2-bs3-modal": "^0.10.4",
+    "ng2-ace-editor": "0.1.3",
+    "rxjs": "5.0.0-beta.12",
+    "ts-helpers": "^1.1.1",
+    "zone.js": "^0.6.23"
+  },
+  "devDependencies": {
+    "@angular/compiler-cli": "2.2.3",
+    "@types/jasmine": "2.5.38",
+    "@types/node": "^6.0.42",
+    "angular-cli": "1.0.0-beta.22-1",
+    "codelyzer": "~2.0.0-beta.1",
+    "jasmine-core": "2.5.2",
+    "jasmine-spec-reporter": "2.5.0",
+    "karma": "1.2.0",
+    "karma-chrome-launcher": "^2.0.0",
+    "karma-cli": "^1.0.1",
+    "karma-jasmine": "^1.0.2",
+    "karma-remap-istanbul": "^0.2.1",
+    "protractor": "4.0.9",
+    "ts-node": "1.2.1",
+    "tslint": "^4.0.2",
+    "typescript": "~2.0.3",
+    "webdriver-manager": "10.2.5"
+  }
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/protractor.conf.js
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/protractor.conf.js b/gateway-admin-ui/protractor.conf.js
new file mode 100644
index 0000000..169743b
--- /dev/null
+++ b/gateway-admin-ui/protractor.conf.js
@@ -0,0 +1,32 @@
+// Protractor configuration file, see link for more information
+// https://github.com/angular/protractor/blob/master/docs/referenceConf.js
+
+/*global jasmine */
+var SpecReporter = require('jasmine-spec-reporter');
+
+exports.config = {
+  allScriptsTimeout: 11000,
+  specs: [
+    './e2e/**/*.e2e-spec.ts'
+  ],
+  capabilities: {
+    'browserName': 'chrome'
+  },
+  directConnect: true,
+  baseUrl: 'http://localhost:4200/',
+  framework: 'jasmine',
+  jasmineNodeOpts: {
+    showColors: true,
+    defaultTimeoutInterval: 30000,
+    print: function() {}
+  },
+  useAllAngular2AppRoots: true,
+  beforeLaunch: function() {
+    require('ts-node').register({
+      project: 'e2e'
+    });
+  },
+  onPrepare: function() {
+    jasmine.getEnv().addReporter(new SpecReporter());
+  }
+};

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/app.component.css
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/app.component.css b/gateway-admin-ui/src/app/app.component.css
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/app.component.html
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/app.component.html b/gateway-admin-ui/src/app/app.component.html
new file mode 100644
index 0000000..b6931b5
--- /dev/null
+++ b/gateway-admin-ui/src/app/app.component.html
@@ -0,0 +1,3 @@
+<h1>
+  {{title}}
+</h1>

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/app.component.spec.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/app.component.spec.ts b/gateway-admin-ui/src/app/app.component.spec.ts
new file mode 100644
index 0000000..211fadf
--- /dev/null
+++ b/gateway-admin-ui/src/app/app.component.spec.ts
@@ -0,0 +1,37 @@
+/* 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"');
+  });
+});

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/app.component.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/app.component.ts b/gateway-admin-ui/src/app/app.component.ts
new file mode 100644
index 0000000..cee1178
--- /dev/null
+++ b/gateway-admin-ui/src/app/app.component.ts
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Component } from '@angular/core';
+import {TopologyService} from "./topology.service";
+
+@Component({
+    selector: 'topology-management',
+    template: `
+      <div class="container">
+        <div class="row">
+          <div class="col-md-5">
+            <topology></topology>
+         </div>
+          <div class="col-md-7">
+            <topology-detail></topology-detail>
+          </div>
+        </div>
+      </div>
+  `,
+    providers: [TopologyService]
+})
+
+export class AppComponent {
+    constructor(private topologyService : TopologyService) {
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/app.module.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/app.module.ts b/gateway-admin-ui/src/app/app.module.ts
new file mode 100644
index 0000000..afa8f4b
--- /dev/null
+++ b/gateway-admin-ui/src/app/app.module.ts
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { NgModule }      from '@angular/core';
+import { BrowserModule } from '@angular/platform-browser';
+import { HttpModule }    from '@angular/http';
+import { FormsModule } from '@angular/forms';
+
+import { AppComponent }  from './app.component';
+import {TopologyService} from "./topology.service";
+import {GatewayVersionService} from "./gateway-version.service";
+import {GatewayVersionComponent} from "./gateway-version.component";
+import {TopologyComponent} from "./topology.component";
+import {TopologyDetailComponent} from "./topology-detail.component";
+import {XmlPipe} from "./utils/xml.pipe";
+import {JsonPrettyPipe} from "./utils/json-pretty.pipe";
+import { TabComponent } from './utils/tab.component';
+import { TabsComponent } from './utils/tabs.component';
+
+import { AceEditorDirective } from 'ng2-ace-editor'; 
+import { Ng2Bs3ModalModule } from 'ng2-bs3-modal/ng2-bs3-modal'
+
+@NgModule({
+  imports: [ BrowserModule,
+    HttpModule,
+    FormsModule,
+    Ng2Bs3ModalModule
+    ],
+  declarations: [ AppComponent,
+    TopologyComponent,
+      TopologyDetailComponent,
+    GatewayVersionComponent,
+    AceEditorDirective,
+    XmlPipe,
+    JsonPrettyPipe,
+    TabsComponent,
+    TabComponent ],
+  providers: [ TopologyService,
+    GatewayVersionService ],
+  bootstrap: [ AppComponent,
+    GatewayVersionComponent]
+})
+export class AppModule { }

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/gateway-version.component.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/gateway-version.component.ts b/gateway-admin-ui/src/app/gateway-version.component.ts
new file mode 100644
index 0000000..d31c87f
--- /dev/null
+++ b/gateway-admin-ui/src/app/gateway-version.component.ts
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import {Component, OnInit} from '@angular/core';
+import {GatewayVersion} from './gateway-version';
+import {GatewayVersionService} from "./gateway-version.service";
+
+
+@Component({
+    selector: 'gateway-version',
+    template: `
+        <div *ngIf="gatewayVersion">
+            <span class="small"><cite>Knox Gateway Version</cite> {{this.gatewayVersion.version}}</span>
+            <span class="small"><cite>Hash</cite> {{this.gatewayVersion.hash}}</span>
+</div>`,
+    providers: [GatewayVersionService]
+})
+
+export class GatewayVersionComponent implements OnInit {
+
+    gatewayVersion : GatewayVersion;
+
+    constructor(private gatewayVersionService : GatewayVersionService) {
+    }
+
+    getVersion(): void {
+        this.gatewayVersionService.getVersion().then( gatewayVersion => this.gatewayVersion = gatewayVersion);
+    }
+
+    ngOnInit(): void {
+        this.getVersion();
+    }
+
+
+}
+

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/gateway-version.service.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/gateway-version.service.ts b/gateway-admin-ui/src/app/gateway-version.service.ts
new file mode 100644
index 0000000..b242ce3
--- /dev/null
+++ b/gateway-admin-ui/src/app/gateway-version.service.ts
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Injectable }    from '@angular/core';
+import { Headers, Http } from '@angular/http';
+
+import 'rxjs/add/operator/toPromise';
+
+import { GatewayVersion } from './gateway-version';
+
+@Injectable()
+export class GatewayVersionService {
+
+    private apiUrl = '/gateway/admin/api/v1/version';
+
+    constructor(private http: Http) { }
+
+    getVersion(): Promise<GatewayVersion> {
+        let headers = new Headers();
+        this.addHeaders(headers);
+        return this.http.get(this.apiUrl, {
+            headers: headers
+        } )
+            .toPromise()
+            .then(response => response.json().ServerVersion as GatewayVersion)
+            .catch(this.handleError);
+    }
+
+    addHeaders(headers: Headers) {
+        headers.append('Accept', 'application/json');
+        headers.append('Content-Type', 'application/json');
+    }
+
+    private handleError(error: any): Promise<any> {
+        console.error('An error occurred', error); // for demo purposes only
+        return Promise.reject(error.message || error);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/gateway-version.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/gateway-version.ts b/gateway-admin-ui/src/app/gateway-version.ts
new file mode 100644
index 0000000..a674080
--- /dev/null
+++ b/gateway-admin-ui/src/app/gateway-version.ts
@@ -0,0 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export class GatewayVersion {
+    version: string;
+    hash: string;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/index.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/index.ts b/gateway-admin-ui/src/app/index.ts
new file mode 100644
index 0000000..d7b550c
--- /dev/null
+++ b/gateway-admin-ui/src/app/index.ts
@@ -0,0 +1,18 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export * from './app.component';
+export * from './app.module';

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/main.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/main.ts b/gateway-admin-ui/src/app/main.ts
new file mode 100644
index 0000000..df4b6a7
--- /dev/null
+++ b/gateway-admin-ui/src/app/main.ts
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+
+import { AppModule } from './app.module';
+
+platformBrowserDynamic().bootstrapModule(AppModule);

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/topology-detail.component.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/topology-detail.component.ts b/gateway-admin-ui/src/app/topology-detail.component.ts
new file mode 100644
index 0000000..6fa118a
--- /dev/null
+++ b/gateway-admin-ui/src/app/topology-detail.component.ts
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Component, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';
+import { Topology } from './topology';
+import {TopologyService} from "./topology.service";
+import { ModalComponent } from 'ng2-bs3-modal/ng2-bs3-modal';
+
+@Component({
+    selector: 'topology-detail',
+    template: `
+     <div class="panel panel-default">
+        <div class="panel-heading">
+            <h4 class="panel-title">{{title}} <span class="label label-default pull-right">{{titleSuffix}}</span></h4>
+         </div>
+     <div *ngIf="topologyContent" class="panel-body">
+      <div ace-editor
+       [readOnly]="false" [text]="topologyContent | xml" [mode]="'xml'" [options]="options" 
+        [theme]="'monokai'"
+         style="min-height: 300px; width:100%; overflow: auto;" (textChanged)="onChange($event)">
+      </div>
+       <div class="panel-footer">
+        <button (click)="duplicateModal.open('sm')" class="btn btn-default btn-sm" type="submit">
+            <span class="glyphicon glyphicon-duplicate" aria-hidden="true"></span>
+        </button>
+        <button (click)="deleteConfirmModal.open('sm')" class="btn btn-default btn-sm" type="submit">
+            <span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
+        </button>
+       <button (click)="saveTopology()" class="btn btn-default btn-sm pull-right" [disabled]="!changedTopology" type="submit">
+            <span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span>
+        </button>
+       </div>
+         
+    </div>
+    <modal (onClose)="createTopology()" #duplicateModal>
+
+        <modal-header [show-close]="true">
+            <h4 class="modal-title">Create a copy</h4>
+        </modal-header>
+        <modal-body>
+            <div class="form-group">
+                <label for="textbox">Name the new topology</label>
+                <input autofocus type="text" class="form-control" required [(ngModel)]="newTopologyName" id="textbox">
+            </div> 
+        </modal-body>
+        <modal-footer>
+            <button type="button" class="btn btn-default btn-sm" data-dismiss="duplicateModal" (click)="duplicateModal.dismiss()">Cancel</button>
+            <button type="button" class="btn btn-primary btn-sm" [disabled]="!newTopologyName" (click)="duplicateModal.close()">Ok</button>
+        </modal-footer>
+    </modal>
+    <modal (onClose)="deleteTopology()" #deleteConfirmModal>
+        <modal-header [show-close]="true">
+            <h4 class="modal-title">Deleting Topology</h4>
+        </modal-header>
+        <modal-body>
+            Are you sure you want to delete the topology?
+        </modal-body>
+        <modal-footer>
+            <button type="button" class="btn btn-default btn-sm" data-dismiss="deleteConfirmModal" (click)="deleteConfirmModal.dismiss()">Cancel</button>
+            <button type="button" class="btn btn-primary btn-sm" (click)="deleteConfirmModal.close()">Ok</button>
+        </modal-footer>
+    </modal>
+   `
+})
+export class TopologyDetailComponent implements OnInit {
+
+    title = 'Topology Detail';
+    titleSuffix: string;
+    topology: Topology;
+    topologyContent: string;
+    changedTopology: string;
+    newTopologyName: string;
+    options:any = {useWorker: false, printMargin: false};
+
+    @ViewChild('duplicateModal')
+    duplicateModal: ModalComponent;
+
+    @ViewChild('deleteConfirmModal')
+    deleteConfirmModal: ModalComponent;
+
+    constructor(private topologyService : TopologyService) {
+    }
+
+    ngOnInit(): void {
+        this.topologyService.selectedTopology$.subscribe(value => this.populateContent(value));
+    }
+
+    setTitle(value : string) {
+        this.titleSuffix = value;
+    }
+
+    onChange(code: any) {
+        this.changedTopology = code;
+    }
+
+    saveTopology() {
+        this.topologyService.saveTopology(this.topology.href, this.changedTopology)
+        .then(value => this.topologyService.changedTopology(this.topology.name));
+    }
+
+    createTopology() {
+        if (this.changedTopology) {
+            this.topologyService.createTopology(this.newTopologyName, this.changedTopology)
+            .then(value => this.topologyService.changedTopology(this.newTopologyName));
+        } else {
+            this.topologyService.createTopology(this.newTopologyName, this.topologyContent)
+            .then(value => this.topologyService.changedTopology(this.newTopologyName));
+        }
+    }
+
+    deleteTopology() {
+        this.topologyService.deleteTopology(this.topology.href).then(value => this.topologyService.changedTopology(this.topology.name));
+    }
+
+    populateContent(topology: Topology) {
+        this.topology = topology;
+        this.setTitle(topology.name);
+        if (this.topology) {
+            if (this.topology.href) {
+                this.topologyService.getTopology(this.topology.href).then( content => this.topologyContent = content);
+            }
+        }
+    }
+
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/topology.component.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/topology.component.ts b/gateway-admin-ui/src/app/topology.component.ts
new file mode 100644
index 0000000..3878425
--- /dev/null
+++ b/gateway-admin-ui/src/app/topology.component.ts
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import {Component, OnInit} from '@angular/core';
+import {Topology} from './topology';
+import {TopologyService} from "./topology.service";
+import { Subscription }   from 'rxjs/Subscription';
+
+
+@Component({
+    selector: 'topology',
+    template: `
+        <div class="table-responsive" style="max-height: 400px; width:100%; overflow: auto;">
+            <table class="table table-striped table-hover">
+              <thead>
+                <tr>
+                  <th>Topology Name</th>
+                  <th>Timestamp</th>
+                </tr>
+              </thead>
+         <tbody>
+         <tr *ngFor="let topology of topologies"
+          [class.selected]="topology === selectedTopology"
+        (click)="onSelect(topology)">
+         <td>{{topology.name}}</td> 
+         <td>{{topology.timestamp | date:'yMMMdjms'}}</td> 
+         </tr>
+        </tbody>
+        </table>
+        </div>
+       `
+})
+export class TopologyComponent implements OnInit {
+
+    value :any;
+    topologies: Topology[];
+    selectedTopology: Topology;
+
+
+    constructor(private topologyService : TopologyService) {
+    }
+
+    getTopologies(): void {
+        this.topologyService.getTopologies().then(topologies => this.topologies = topologies);
+    }
+
+    ngOnInit(): void {
+        this.getTopologies();
+        this.topologyService.changedTopology$.subscribe(value => this.getTopologies());
+    }
+
+    onSelect(topology: Topology): void {
+        this.selectedTopology = topology;
+        this.topologyService.selectedTopology(topology);
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/topology.service.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/topology.service.ts b/gateway-admin-ui/src/app/topology.service.ts
new file mode 100644
index 0000000..bf97ce7
--- /dev/null
+++ b/gateway-admin-ui/src/app/topology.service.ts
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Injectable }    from '@angular/core';
+import { Headers, Http } from '@angular/http';
+
+import 'rxjs/add/operator/toPromise';
+import { Subject }    from 'rxjs/Subject';
+import { Observable }    from 'rxjs/Observable';
+
+import { Topology } from './topology';
+
+@Injectable()
+export class TopologyService {
+
+    apiUrl = '/gateway/admin/api/v1/';
+    topologiesUrl = this.apiUrl + 'topologies';
+    selectedTopologySource = new Subject<Topology>();
+    selectedTopology$ = this.selectedTopologySource.asObservable();
+    changedTopologySource = new Subject<string>();
+    changedTopology$ = this.changedTopologySource.asObservable();
+
+    constructor(private http: Http) { }
+
+    getTopologies(): Promise<Topology[]> {
+        let headers = new Headers();
+        this.addJsonHeaders(headers);
+        return this.http.get(this.topologiesUrl, {
+            headers: headers
+        } )
+            .toPromise()
+            .then(response => response.json().topologies.topology as Topology[])
+            .catch(this.handleError);
+    }
+
+    getTopology(href : string): Promise<string> {
+        let headers = new Headers();
+        this.addXmlHeaders(headers);
+        return this.http.get(href, {
+            headers: headers
+        } )
+            .toPromise()
+            .then(response => response.text())
+            .catch(this.handleError);
+
+    }
+
+    saveTopology(url: string, xml : string): Promise<string> {
+        let xheaders = new Headers();
+        this.addXmlHeaders(xheaders);
+        this.addCsrfHeaders(xheaders);
+        return this.http
+            .put(url, xml, {headers: xheaders})
+            .toPromise()
+            .then(() => xml)
+            .catch(this.handleError);
+
+    }
+
+    createTopology(name: string, xml : string): Promise<string> {
+        let xheaders = new Headers();
+        this.addXmlHeaders(xheaders);
+        this.addCsrfHeaders(xheaders);
+        let url = this.topologiesUrl + "/" + name;
+        return this.http
+            .put(url, xml, {headers: xheaders})
+            .toPromise()
+            .then(() => xml)
+            .catch(this.handleError);
+    }
+
+    deleteTopology(href: string): Promise<string> {
+        let headers = new Headers();
+        this.addJsonHeaders(headers);
+        this.addCsrfHeaders(headers);
+        return this.http.delete(href, {
+            headers: headers
+        } )
+            .toPromise()
+            .then(response => response.text())
+            .catch(this.handleError);
+    }
+
+    addJsonHeaders(headers: Headers) {
+        headers.append('Accept', 'application/json');
+        headers.append('Content-Type', 'application/json');
+    }
+
+    addXmlHeaders(headers: Headers) {
+        headers.append('Accept', 'application/xml');
+        headers.append('Content-Type', 'application/xml');
+    }
+
+    addCsrfHeaders(headers: Headers) {
+        headers.append('X-XSRF-Header', 'admin-ui');
+    }
+
+    selectedTopology(value: Topology) {
+        this.selectedTopologySource.next(value);
+    }
+
+    changedTopology(value: string) {
+        this.changedTopologySource.next(value);
+    }
+
+
+    private handleError(error: any): Promise<any> {
+        console.error('An error occurred', error); // for demo purposes only
+        return Promise.reject(error.message || error);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/topology.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/topology.ts b/gateway-admin-ui/src/app/topology.ts
new file mode 100644
index 0000000..95db774
--- /dev/null
+++ b/gateway-admin-ui/src/app/topology.ts
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export class Topology {
+    timestamp: number;
+    name: string;
+    uri: string;
+    href: string;
+    content: string;
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/utils/json-pretty.pipe.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/utils/json-pretty.pipe.ts b/gateway-admin-ui/src/app/utils/json-pretty.pipe.ts
new file mode 100644
index 0000000..6bbf49f
--- /dev/null
+++ b/gateway-admin-ui/src/app/utils/json-pretty.pipe.ts
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Pipe, PipeTransform } from '@angular/core';
+
+declare var vkbeautify: any;
+
+@Pipe({name: 'jsonpretty'})
+export class JsonPrettyPipe implements PipeTransform {
+
+  transform(value: string): string {
+    return vkbeautify.json(value);
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/utils/tab.component.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/utils/tab.component.ts b/gateway-admin-ui/src/app/utils/tab.component.ts
new file mode 100644
index 0000000..bfe3a34
--- /dev/null
+++ b/gateway-admin-ui/src/app/utils/tab.component.ts
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Component, Input } from '@angular/core';
+
+@Component({
+  selector: 'tab',
+  styles: [`
+    .pane{
+      padding: 1em;
+    }
+  `],
+  template: `
+    <div [hidden]="!active" class="pane">
+    </div>
+  `
+})
+export class TabComponent {
+  @Input('tabTitle') title: string;
+  @Input() active = false;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/utils/tabs.component.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/utils/tabs.component.ts b/gateway-admin-ui/src/app/utils/tabs.component.ts
new file mode 100644
index 0000000..e246796
--- /dev/null
+++ b/gateway-admin-ui/src/app/utils/tabs.component.ts
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Component, ContentChildren, QueryList, AfterContentInit } from '@angular/core';
+import { TabComponent } from './tab.component';
+
+@Component({
+  selector: 'tabs',
+  template:`
+    <ul class="nav nav-tabs">
+      <li *ngFor="let tab of tabs" (click)="selectTab(tab)" [class.active]="tab.active">
+        <a>{{tab.title}}</a>
+      </li>
+    </ul>
+    
+  `
+})
+export class TabsComponent implements AfterContentInit {
+  
+  @ContentChildren(TabComponent) tabs: QueryList<TabComponent>;
+  
+  // contentChildren are set
+  ngAfterContentInit() {
+    // get all active tabs
+    let activeTabs = this.tabs.filter((tab)=>tab.active);
+    
+    // if there is no active tab set, activate the first
+    if(activeTabs.length === 0) {
+      this.selectTab(this.tabs.first);
+    }
+  }
+  
+  selectTab(tab: TabComponent){
+    // deactivate all tabs
+    this.tabs.toArray().forEach(tab => tab.active = false);
+    
+    // activate the tab the user has clicked on.
+    tab.active = true;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/app/utils/xml.pipe.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/utils/xml.pipe.ts b/gateway-admin-ui/src/app/utils/xml.pipe.ts
new file mode 100644
index 0000000..17a6a8d
--- /dev/null
+++ b/gateway-admin-ui/src/app/utils/xml.pipe.ts
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Pipe, PipeTransform } from '@angular/core';
+
+declare var vkbeautify: any;
+
+@Pipe({name: 'xml'})
+export class XmlPipe implements PipeTransform {
+
+  transform(value: string): string {
+    return vkbeautify.xml(value);
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/assets/.gitkeep
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/assets/.gitkeep b/gateway-admin-ui/src/assets/.gitkeep
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/assets/sticky-footer.css
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/assets/sticky-footer.css b/gateway-admin-ui/src/assets/sticky-footer.css
new file mode 100644
index 0000000..52d570c
--- /dev/null
+++ b/gateway-admin-ui/src/assets/sticky-footer.css
@@ -0,0 +1,22 @@
+/* Sticky footer styles
+-------------------------------------------------- */
+html {
+    position: relative;
+    min-height: 100%;
+}
+body {
+    /* Margin bottom by footer height */
+    margin-bottom: 60px;
+}
+.footer {
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    /* Set the fixed height of the footer here */
+    height: 60px;
+    background-color: #f5f5f5;
+}
+
+.jumbotron {
+    padding: 0.5em 0.6em;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/assets/vkbeautify.js
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/assets/vkbeautify.js b/gateway-admin-ui/src/assets/vkbeautify.js
new file mode 100644
index 0000000..076c3d5
--- /dev/null
+++ b/gateway-admin-ui/src/assets/vkbeautify.js
@@ -0,0 +1,357 @@
+/**
+* vkBeautify - javascript plugin to pretty-print or minify text in XML, JSON, CSS and SQL formats.
+*  
+* Version - 0.99.00.beta 
+* Copyright (c) 2012 Vadim Kiryukhin
+* vkiryukhin @ gmail.com
+* http://www.eslinstructor.net/vkbeautify/
+* 
+* MIT license:
+*   http://www.opensource.org/licenses/mit-license.php
+*
+*   Pretty print
+*
+*        vkbeautify.xml(text [,indent_pattern]);
+*        vkbeautify.json(text [,indent_pattern]);
+*        vkbeautify.css(text [,indent_pattern]);
+*        vkbeautify.sql(text [,indent_pattern]);
+*
+*        @text - String; text to beatufy;
+*        @indent_pattern - Integer | String;
+*                Integer:  number of white spaces;
+*                String:   character string to visualize indentation ( can also be a set of white spaces )
+*   Minify
+*
+*        vkbeautify.xmlmin(text [,preserve_comments]);
+*        vkbeautify.jsonmin(text);
+*        vkbeautify.cssmin(text [,preserve_comments]);
+*        vkbeautify.sqlmin(text);
+*
+*        @text - String; text to minify;
+*        @preserve_comments - Bool; [optional];
+*                Set this flag to true to prevent removing comments from @text ( minxml and mincss functions only. )
+*
+*   Examples:
+*        vkbeautify.xml(text); // pretty print XML
+*        vkbeautify.json(text, 4 ); // pretty print JSON
+*        vkbeautify.css(text, '. . . .'); // pretty print CSS
+*        vkbeautify.sql(text, '----'); // pretty print SQL
+*
+*        vkbeautify.xmlmin(text, true);// minify XML, preserve comments
+*        vkbeautify.jsonmin(text);// minify JSON
+*        vkbeautify.cssmin(text);// minify CSS, remove comments ( default )
+*        vkbeautify.sqlmin(text);// minify SQL
+*
+*/
+
+(function() {
+
+function createShiftArr(step) {
+
+	var space = '    ';
+	
+	if ( isNaN(parseInt(step)) ) {  // argument is string
+		space = step;
+	} else { // argument is integer
+		switch(step) {
+			case 1: space = ' '; break;
+			case 2: space = '  '; break;
+			case 3: space = '   '; break;
+			case 4: space = '    '; break;
+			case 5: space = '     '; break;
+			case 6: space = '      '; break;
+			case 7: space = '       '; break;
+			case 8: space = '        '; break;
+			case 9: space = '         '; break;
+			case 10: space = '          '; break;
+			case 11: space = '           '; break;
+			case 12: space = '            '; break;
+		}
+	}
+
+	var shift = ['\n']; // array of shifts
+	for(ix=0;ix<100;ix++){
+		shift.push(shift[ix]+space); 
+	}
+	return shift;
+}
+
+function vkbeautify(){
+	this.step = '\t'; // 4 spaces
+	this.shift = createShiftArr(this.step);
+};
+
+vkbeautify.prototype.xml = function(text,step) {
+
+	var ar = text.replace(/>\s{0,}</g,"><")
+				 .replace(/</g,"~::~<")
+				 .replace(/\s*xmlns\:/g,"~::~xmlns:")
+				 .replace(/\s*xmlns\=/g,"~::~xmlns=")
+				 .split('~::~'),
+		len = ar.length,
+		inComment = false,
+		deep = 0,
+		str = '',
+		ix = 0,
+		shift = step ? createShiftArr(step) : this.shift;
+
+		for(ix=0;ix<len;ix++) {
+			// start comment or <![CDATA[...]]> or <!DOCTYPE //
+			if(ar[ix].search(/<!/) > -1) { 
+				str += shift[deep]+ar[ix];
+				inComment = true; 
+				// end comment  or <![CDATA[...]]> //
+				if(ar[ix].search(/-->/) > -1 || ar[ix].search(/\]>/) > -1 || ar[ix].search(/!DOCTYPE/) > -1 ) { 
+					inComment = false; 
+				}
+			} else 
+			// end comment  or <![CDATA[...]]> //
+			if(ar[ix].search(/-->/) > -1 || ar[ix].search(/\]>/) > -1) { 
+				str += ar[ix];
+				inComment = false; 
+			} else 
+			// <elm></elm> //
+			if( /^<\w/.exec(ar[ix-1]) && /^<\/\w/.exec(ar[ix]) &&
+				/^<[\w:\-\.\,]+/.exec(ar[ix-1]) == /^<\/[\w:\-\.\,]+/.exec(ar[ix])[0].replace('/','')) { 
+				str += ar[ix];
+				if(!inComment) deep--;
+			} else
+			 // <elm> //
+			if(ar[ix].search(/<\w/) > -1 && ar[ix].search(/<\//) == -1 && ar[ix].search(/\/>/) == -1 ) {
+				str = !inComment ? str += shift[deep++]+ar[ix] : str += ar[ix];
+			} else 
+			 // <elm>...</elm> //
+			if(ar[ix].search(/<\w/) > -1 && ar[ix].search(/<\//) > -1) {
+				str = !inComment ? str += shift[deep]+ar[ix] : str += ar[ix];
+			} else 
+			// </elm> //
+			if(ar[ix].search(/<\//) > -1) { 
+				str = !inComment ? str += shift[--deep]+ar[ix] : str += ar[ix];
+			} else 
+			// <elm/> //
+			if(ar[ix].search(/\/>/) > -1 ) { 
+				str = !inComment ? str += shift[deep]+ar[ix] : str += ar[ix];
+			} else 
+			// <? xml ... ?> //
+			if(ar[ix].search(/<\?/) > -1) { 
+				str += shift[deep]+ar[ix];
+			} else 
+			// xmlns //
+			if( ar[ix].search(/xmlns\:/) > -1  || ar[ix].search(/xmlns\=/) > -1) { 
+				str += shift[deep]+ar[ix];
+			} 
+			
+			else {
+				str += ar[ix];
+			}
+		}
+		
+	return  (str[0] == '\n') ? str.slice(1) : str;
+}
+
+vkbeautify.prototype.json = function(text,step) {
+
+	var step = step ? step : this.step;
+	
+	if (typeof JSON === 'undefined' ) return text; 
+	
+	if ( typeof text === "string" ) return JSON.stringify(JSON.parse(text), null, step);
+	if ( typeof text === "object" ) return JSON.stringify(text, null, step);
+		
+	return text; // text is not string nor object
+}
+
+vkbeautify.prototype.css = function(text, step) {
+
+	var ar = text.replace(/\s{1,}/g,' ')
+				.replace(/\{/g,"{~::~")
+				.replace(/\}/g,"~::~}~::~")
+				.replace(/\;/g,";~::~")
+				.replace(/\/\*/g,"~::~/*")
+				.replace(/\*\//g,"*/~::~")
+				.replace(/~::~\s{0,}~::~/g,"~::~")
+				.split('~::~'),
+		len = ar.length,
+		deep = 0,
+		str = '',
+		ix = 0,
+		shift = step ? createShiftArr(step) : this.shift;
+		
+		for(ix=0;ix<len;ix++) {
+
+			if( /\{/.exec(ar[ix]))  { 
+				str += shift[deep++]+ar[ix];
+			} else 
+			if( /\}/.exec(ar[ix]))  { 
+				str += shift[--deep]+ar[ix];
+			} else
+			if( /\*\\/.exec(ar[ix]))  { 
+				str += shift[deep]+ar[ix];
+			}
+			else {
+				str += shift[deep]+ar[ix];
+			}
+		}
+		return str.replace(/^\n{1,}/,'');
+}
+
+//----------------------------------------------------------------------------
+
+function isSubquery(str, parenthesisLevel) {
+	return  parenthesisLevel - (str.replace(/\(/g,'').length - str.replace(/\)/g,'').length )
+}
+
+function split_sql(str, tab) {
+
+	return str.replace(/\s{1,}/g," ")
+
+				.replace(/ AND /ig,"~::~"+tab+tab+"AND ")
+				.replace(/ BETWEEN /ig,"~::~"+tab+"BETWEEN ")
+				.replace(/ CASE /ig,"~::~"+tab+"CASE ")
+				.replace(/ ELSE /ig,"~::~"+tab+"ELSE ")
+				.replace(/ END /ig,"~::~"+tab+"END ")
+				.replace(/ FROM /ig,"~::~FROM ")
+				.replace(/ GROUP\s{1,}BY/ig,"~::~GROUP BY ")
+				.replace(/ HAVING /ig,"~::~HAVING ")
+				//.replace(/ SET /ig," SET~::~")
+				.replace(/ IN /ig," IN ")
+				
+				.replace(/ JOIN /ig,"~::~JOIN ")
+				.replace(/ CROSS~::~{1,}JOIN /ig,"~::~CROSS JOIN ")
+				.replace(/ INNER~::~{1,}JOIN /ig,"~::~INNER JOIN ")
+				.replace(/ LEFT~::~{1,}JOIN /ig,"~::~LEFT JOIN ")
+				.replace(/ RIGHT~::~{1,}JOIN /ig,"~::~RIGHT JOIN ")
+				
+				.replace(/ ON /ig,"~::~"+tab+"ON ")
+				.replace(/ OR /ig,"~::~"+tab+tab+"OR ")
+				.replace(/ ORDER\s{1,}BY/ig,"~::~ORDER BY ")
+				.replace(/ OVER /ig,"~::~"+tab+"OVER ")
+
+				.replace(/\(\s{0,}SELECT /ig,"~::~(SELECT ")
+				.replace(/\)\s{0,}SELECT /ig,")~::~SELECT ")
+				
+				.replace(/ THEN /ig," THEN~::~"+tab+"")
+				.replace(/ UNION /ig,"~::~UNION~::~")
+				.replace(/ USING /ig,"~::~USING ")
+				.replace(/ WHEN /ig,"~::~"+tab+"WHEN ")
+				.replace(/ WHERE /ig,"~::~WHERE ")
+				.replace(/ WITH /ig,"~::~WITH ")
+				
+				//.replace(/\,\s{0,}\(/ig,",~::~( ")
+				//.replace(/\,/ig,",~::~"+tab+tab+"")
+
+				.replace(/ ALL /ig," ALL ")
+				.replace(/ AS /ig," AS ")
+				.replace(/ ASC /ig," ASC ")	
+				.replace(/ DESC /ig," DESC ")	
+				.replace(/ DISTINCT /ig," DISTINCT ")
+				.replace(/ EXISTS /ig," EXISTS ")
+				.replace(/ NOT /ig," NOT ")
+				.replace(/ NULL /ig," NULL ")
+				.replace(/ LIKE /ig," LIKE ")
+				.replace(/\s{0,}SELECT /ig,"SELECT ")
+				.replace(/\s{0,}UPDATE /ig,"UPDATE ")
+				.replace(/ SET /ig," SET ")
+							
+				.replace(/~::~{1,}/g,"~::~")
+				.split('~::~');
+}
+
+vkbeautify.prototype.sql = function(text,step) {
+
+	var ar_by_quote = text.replace(/\s{1,}/g," ")
+							.replace(/\'/ig,"~::~\'")
+							.split('~::~'),
+		len = ar_by_quote.length,
+		ar = [],
+		deep = 0,
+		tab = this.step,//+this.step,
+		inComment = true,
+		inQuote = false,
+		parenthesisLevel = 0,
+		str = '',
+		ix = 0,
+		shift = step ? createShiftArr(step) : this.shift;;
+
+		for(ix=0;ix<len;ix++) {
+			if(ix%2) {
+				ar = ar.concat(ar_by_quote[ix]);
+			} else {
+				ar = ar.concat(split_sql(ar_by_quote[ix], tab) );
+			}
+		}
+		
+		len = ar.length;
+		for(ix=0;ix<len;ix++) {
+			
+			parenthesisLevel = isSubquery(ar[ix], parenthesisLevel);
+			
+			if( /\s{0,}\s{0,}SELECT\s{0,}/.exec(ar[ix]))  { 
+				ar[ix] = ar[ix].replace(/\,/g,",\n"+tab+tab+"")
+			} 
+			
+			if( /\s{0,}\s{0,}SET\s{0,}/.exec(ar[ix]))  { 
+				ar[ix] = ar[ix].replace(/\,/g,",\n"+tab+tab+"")
+			} 
+			
+			if( /\s{0,}\(\s{0,}SELECT\s{0,}/.exec(ar[ix]))  { 
+				deep++;
+				str += shift[deep]+ar[ix];
+			} else 
+			if( /\'/.exec(ar[ix]) )  { 
+				if(parenthesisLevel<1 && deep) {
+					deep--;
+				}
+				str += ar[ix];
+			}
+			else  { 
+				str += shift[deep]+ar[ix];
+				if(parenthesisLevel<1 && deep) {
+					deep--;
+				}
+			} 
+			var junk = 0;
+		}
+
+		str = str.replace(/^\n{1,}/,'').replace(/\n{1,}/g,"\n");
+		return str;
+}
+
+
+vkbeautify.prototype.xmlmin = function(text, preserveComments) {
+
+	var str = preserveComments ? text
+							   : text.replace(/\<![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*--[ \r\n\t]*)\>/g,"")
+									 .replace(/[ \r\n\t]{1,}xmlns/g, ' xmlns');
+	return  str.replace(/>\s{0,}</g,"><"); 
+}
+
+vkbeautify.prototype.jsonmin = function(text) {
+
+	if (typeof JSON === 'undefined' ) return text; 
+	
+	return JSON.stringify(JSON.parse(text), null, 0); 
+				
+}
+
+vkbeautify.prototype.cssmin = function(text, preserveComments) {
+	
+	var str = preserveComments ? text
+							   : text.replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g,"") ;
+
+	return str.replace(/\s{1,}/g,' ')
+			  .replace(/\{\s{1,}/g,"{")
+			  .replace(/\}\s{1,}/g,"}")
+			  .replace(/\;\s{1,}/g,";")
+			  .replace(/\/\*\s{1,}/g,"/*")
+			  .replace(/\*\/\s{1,}/g,"*/");
+}
+
+vkbeautify.prototype.sqlmin = function(text) {
+	return text.replace(/\s{1,}/g," ").replace(/\s{1,}\(/,"(").replace(/\s{1,}\)/,")");
+}
+
+window.vkbeautify = new vkbeautify();
+
+})();
+

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/environments/environment.prod.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/environments/environment.prod.ts b/gateway-admin-ui/src/environments/environment.prod.ts
new file mode 100644
index 0000000..67e0aa8
--- /dev/null
+++ b/gateway-admin-ui/src/environments/environment.prod.ts
@@ -0,0 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export const environment = {
+  production: true
+};

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/environments/environment.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/environments/environment.ts b/gateway-admin-ui/src/environments/environment.ts
new file mode 100644
index 0000000..1e9b09d
--- /dev/null
+++ b/gateway-admin-ui/src/environments/environment.ts
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// The file contents for the current environment will overwrite these during build.
+// The build system defaults to the dev environment which uses `environment.ts`, but if you do
+// `ng build --env=prod` then `environment.prod.ts` will be used instead.
+// The list of which env maps to which file can be found in `angular-cli.json`.
+
+export const environment = {
+  production: false
+};

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/favicon.ico
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/favicon.ico b/gateway-admin-ui/src/favicon.ico
new file mode 100644
index 0000000..8081c7c
Binary files /dev/null and b/gateway-admin-ui/src/favicon.ico differ

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/index.html
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/index.html b/gateway-admin-ui/src/index.html
new file mode 100644
index 0000000..2d1d24b
--- /dev/null
+++ b/gateway-admin-ui/src/index.html
@@ -0,0 +1,79 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!doctype html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>Apache Knox Manager</title>
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <link rel="icon" type="image/x-icon" href="favicon.ico">
+      <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- Latest compiled and minified CSS -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
+
+    <!-- Optional theme -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
+    <!-- Custom styles for this template -->
+    <link href="assets/sticky-footer.css" rel="stylesheet">
+
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
+    <!-- Latest compiled and minified JavaScript -->
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
+    <script src="assets/vkbeautify.js"></script>
+
+</head>
+<body>
+  <div class="navbar-wrapper">
+    <div class="container-fluid">
+
+      <nav class="navbar navbar-inverse navbar-static-top">
+        <div class="container-fluid">
+          <div class="navbar-header">
+            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+              <span class="sr-only">Toggle navigation</span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+            </button>
+            <a class="navbar-brand" href="#">Apache Knox Manager</a>
+          </div>
+          <!--<div id="navbar" class="navbar-collapse collapse">
+            <ul class="nav navbar-nav  navbar-right">
+              <li><a href="./">Logout</a></li>
+            </ul>
+          </div>-->
+        </div>
+      </nav>
+
+  </div>
+  <div class="container">
+
+    <!-- Main component for a primary marketing message or call to action -->
+    <div class="jumbotron">
+      <h3>Topology Management</h3>
+      <p>Protecting cluster resources through Knox</p>
+    </div>
+  </div>
+
+
+  <!-- Content -->
+  <topology-management></topology-management>
+
+  <footer class="footer">
+    <div>Knox Manager Version 0.0.1</div>
+    <gateway-version></gateway-version>
+  </footer>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/main.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/main.ts b/gateway-admin-ui/src/main.ts
new file mode 100644
index 0000000..c0e53eb
--- /dev/null
+++ b/gateway-admin-ui/src/main.ts
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import './polyfills.ts';
+
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+import { enableProdMode } from '@angular/core';
+import { environment } from './environments/environment';
+import { AppModule } from './app/';
+
+if (environment.production) {
+  enableProdMode();
+}
+
+platformBrowserDynamic().bootstrapModule(AppModule);

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/polyfills.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/polyfills.ts b/gateway-admin-ui/src/polyfills.ts
new file mode 100644
index 0000000..78cba47
--- /dev/null
+++ b/gateway-admin-ui/src/polyfills.ts
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// This file includes polyfills needed by Angular 2 and is loaded before
+// the app. You can add your own extra polyfills to this file.
+import 'core-js/es6/symbol';
+import 'core-js/es6/object';
+import 'core-js/es6/function';
+import 'core-js/es6/parse-int';
+import 'core-js/es6/parse-float';
+import 'core-js/es6/number';
+import 'core-js/es6/math';
+import 'core-js/es6/string';
+import 'core-js/es6/date';
+import 'core-js/es6/array';
+import 'core-js/es6/regexp';
+import 'core-js/es6/map';
+import 'core-js/es6/set';
+import 'core-js/es6/reflect';
+
+import 'core-js/es7/reflect';
+import 'zone.js/dist/zone';

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/styles.css
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/styles.css b/gateway-admin-ui/src/styles.css
new file mode 100644
index 0000000..90d4ee0
--- /dev/null
+++ b/gateway-admin-ui/src/styles.css
@@ -0,0 +1 @@
+/* You can add global styles to this file, and also import other style files */

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/test.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/test.ts b/gateway-admin-ui/src/test.ts
new file mode 100644
index 0000000..89cf2fe
--- /dev/null
+++ b/gateway-admin-ui/src/test.ts
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import './polyfills.ts';
+
+import 'zone.js/dist/long-stack-trace-zone';
+import 'zone.js/dist/proxy.js';
+import 'zone.js/dist/sync-test';
+import 'zone.js/dist/jasmine-patch';
+import 'zone.js/dist/async-test';
+import 'zone.js/dist/fake-async-test';
+import { getTestBed } from '@angular/core/testing';
+import {
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting
+} from '@angular/platform-browser-dynamic/testing';
+
+// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
+declare var __karma__: any;
+declare var require: any;
+
+// Prevent Karma from running prematurely.
+__karma__.loaded = function () {};
+
+// First, initialize the Angular testing environment.
+getTestBed().initTestEnvironment(
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting()
+);
+// Then we find all the tests.
+let context = require.context('./', true, /\.spec\.ts/);
+// And load the modules.
+context.keys().map(context);
+// Finally, start Karma to run the tests.
+__karma__.start();

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/tsconfig.json
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/tsconfig.json b/gateway-admin-ui/src/tsconfig.json
new file mode 100644
index 0000000..1cf713a
--- /dev/null
+++ b/gateway-admin-ui/src/tsconfig.json
@@ -0,0 +1,18 @@
+{
+  "compilerOptions": {
+    "baseUrl": "",
+    "declaration": false,
+    "emitDecoratorMetadata": true,
+    "experimentalDecorators": true,
+    "lib": ["es6", "dom"],
+    "mapRoot": "./",
+    "module": "es6",
+    "moduleResolution": "node",
+    "outDir": "../dist/out-tsc",
+    "sourceMap": true,
+    "target": "es5",
+    "typeRoots": [
+      "../node_modules/@types"
+    ]
+  }
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/src/typings.d.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/typings.d.ts b/gateway-admin-ui/src/typings.d.ts
new file mode 100644
index 0000000..32bf19d
--- /dev/null
+++ b/gateway-admin-ui/src/typings.d.ts
@@ -0,0 +1,18 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Typings reference file, you can add your own global typings here
+// https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-admin-ui/tslint.json
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/tslint.json b/gateway-admin-ui/tslint.json
new file mode 100644
index 0000000..640d02c
--- /dev/null
+++ b/gateway-admin-ui/tslint.json
@@ -0,0 +1,107 @@
+{
+  "rulesDirectory": [
+    "node_modules/codelyzer"
+  ],
+  "rules": {
+    "class-name": true,
+    "comment-format": [
+      true,
+      "check-space"
+    ],
+    "curly": true,
+    "eofline": true,
+    "forin": true,
+    "indent": [
+      true,
+      "spaces"
+    ],
+    "label-position": 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-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-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"
+    ],
+
+    "directive-selector": [true, "attribute", "app", "camelCase"],
+    "component-selector": [true, "element", "app", "kebab-case"],
+    "use-input-property-decorator": true,
+    "use-output-property-decorator": true,
+    "use-host-property-decorator": true,
+    "no-input-rename": true,
+    "no-output-rename": true,
+    "use-life-cycle-interface": true,
+    "use-pipe-transform-interface": true,
+    "component-class-suffix": true,
+    "directive-class-suffix": true,
+    "no-access-missing-member": true,
+    "templates-use-public": true,
+    "invoke-injectable": true
+  }
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/assets/sticky-footer.css
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/assets/sticky-footer.css b/gateway-applications/src/main/resources/applications/admin-ui/app/assets/sticky-footer.css
new file mode 100644
index 0000000..52d570c
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/assets/sticky-footer.css
@@ -0,0 +1,22 @@
+/* Sticky footer styles
+-------------------------------------------------- */
+html {
+    position: relative;
+    min-height: 100%;
+}
+body {
+    /* Margin bottom by footer height */
+    margin-bottom: 60px;
+}
+.footer {
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    /* Set the fixed height of the footer here */
+    height: 60px;
+    background-color: #f5f5f5;
+}
+
+.jumbotron {
+    padding: 0.5em 0.6em;
+}
\ No newline at end of file


[3/7] knox git commit: KNOX-749 Initial admin UI source project and productized distribution

Posted by su...@apache.org.
http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.js.gz
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.js.gz b/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.js.gz
new file mode 100644
index 0000000..32208ec
Binary files /dev/null and b/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.js.gz differ


[4/7] knox git commit: KNOX-749 Initial admin UI source project and productized distribution

Posted by su...@apache.org.
http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.js
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.js b/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.js
new file mode 100644
index 0000000..551d407
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.js
@@ -0,0 +1,2035 @@
+webpackJsonp([2,3],[function(e,t,n){"use strict";var r=n(399);n.d(t,"assertPlatform",function(){return r._23}),n.d(t,"destroyPlatform",function(){return r._24}),n.d(t,"getPlatform",function(){return r._25}),n.d(t,"createPlatform",function(){return r._26}),n.d(t,"ApplicationRef",function(){return r._15}),n.d(t,"enableProdMode",function(){return r._27}),n.d(t,"isDevMode",function(){return r.a}),n.d(t,"createPlatformFactory",function(){return r._3}),n.d(t,"PlatformRef",function(){return r._28}),n.d(t,"APP_ID",function(){return r._14}),n.d(t,"PACKAGE_ROOT_URL",function(){return r.z}),n.d(t,"APP_BOOTSTRAP_LISTENER",function(){return r._29}),n.d(t,"PLATFORM_INITIALIZER",function(){return r._6}),n.d(t,"ApplicationInitStatus",function(){return r._30}),n.d(t,"APP_INITIALIZER",function(){return r._31}),n.d(t,"DebugElement",function(){return r._32}),n.d(t,"DebugNode",function(){return r._33}),n.d(t,"asNativeElements",function(){return r._34}),n.d(t,"getDebugNode",function(){return r._16}),n.d(
 t,"Testability",function(){return r._20}),n.d(t,"TestabilityRegistry",function(){return r._35}),n.d(t,"setTestabilityGetter",function(){return r._12}),n.d(t,"TRANSLATIONS",function(){return r._0}),n.d(t,"TRANSLATIONS_FORMAT",function(){return r.v}),n.d(t,"LOCALE_ID",function(){return r.u}),n.d(t,"ApplicationModule",function(){return r._21}),n.d(t,"wtfCreateScope",function(){return r._36}),n.d(t,"wtfLeave",function(){return r._37}),n.d(t,"wtfStartTimeRange",function(){return r._38}),n.d(t,"wtfEndTimeRange",function(){return r._39}),n.d(t,"Type",function(){return r.V}),n.d(t,"EventEmitter",function(){return r._7}),n.d(t,"ErrorHandler",function(){return r._19}),n.d(t,"AnimationTransitionEvent",function(){return r._40}),n.d(t,"AnimationPlayer",function(){return r._41}),n.d(t,"Sanitizer",function(){return r._18}),n.d(t,"SecurityContext",function(){return r.t}),n.d(t,"Attribute",function(){return r.U}),n.d(t,"ContentChild",function(){return r._42}),n.d(t,"ContentChildren",function(){retur
 n r._43}),n.d(t,"Query",function(){return r.F}),n.d(t,"ViewChild",function(){return r._44}),n.d(t,"ViewChildren",function(){return r._45}),n.d(t,"ANALYZE_FOR_ENTRY_COMPONENTS",function(){return r.f}),n.d(t,"Component",function(){return r.G}),n.d(t,"Directive",function(){return r.H}),n.d(t,"HostBinding",function(){return r.D}),n.d(t,"HostListener",function(){return r.E}),n.d(t,"Input",function(){return r.B}),n.d(t,"Output",function(){return r.C}),n.d(t,"Pipe",function(){return r.J}),n.d(t,"OnDestroy",function(){return r._46}),n.d(t,"AfterContentInit",function(){return r._47}),n.d(t,"AfterViewChecked",function(){return r._48}),n.d(t,"AfterViewInit",function(){return r._49}),n.d(t,"DoCheck",function(){return r._50}),n.d(t,"OnChanges",function(){return r._51}),n.d(t,"AfterContentChecked",function(){return r._52}),n.d(t,"OnInit",function(){return r._53}),n.d(t,"CUSTOM_ELEMENTS_SCHEMA",function(){return r.Z}),n.d(t,"NO_ERRORS_SCHEMA",function(){return r.Y}),n.d(t,"NgModule",function(){ret
 urn r.I}),n.d(t,"ViewEncapsulation",function(){return r.c}),n.d(t,"Class",function(){return r._54}),n.d(t,"forwardRef",function(){return r._22}),n.d(t,"resolveForwardRef",function(){return r.A}),n.d(t,"Injector",function(){return r.q}),n.d(t,"ReflectiveInjector",function(){return r._1}),n.d(t,"ResolvedReflectiveFactory",function(){return r._55}),n.d(t,"ReflectiveKey",function(){return r._56}),n.d(t,"OpaqueToken",function(){return r.w}),n.d(t,"NgZone",function(){return r._13}),n.d(t,"RenderComponentType",function(){return r.j}),n.d(t,"Renderer",function(){return r.r}),n.d(t,"RootRenderer",function(){return r._17}),n.d(t,"COMPILER_OPTIONS",function(){return r._2}),n.d(t,"CompilerFactory",function(){return r._5}),n.d(t,"ModuleWithComponentFactories",function(){return r.W}),n.d(t,"Compiler",function(){return r.X}),n.d(t,"ComponentFactory",function(){return r.n}),n.d(t,"ComponentRef",function(){return r.o}),n.d(t,"ComponentFactoryResolver",function(){return r.m}),n.d(t,"ElementRef",funct
 ion(){return r.g}),n.d(t,"NgModuleFactory",function(){return r.p}),n.d(t,"NgModuleRef",function(){return r._57}),n.d(t,"NgModuleFactoryLoader",function(){return r._58}),n.d(t,"getModuleFactory",function(){return r._59}),n.d(t,"QueryList",function(){return r.k}),n.d(t,"SystemJsNgModuleLoader",function(){return r._60}),n.d(t,"SystemJsNgModuleLoaderConfig",function(){return r._61}),n.d(t,"TemplateRef",function(){return r.l}),n.d(t,"ViewContainerRef",function(){return r.h}),n.d(t,"EmbeddedViewRef",function(){return r._62}),n.d(t,"ViewRef",function(){return r._63}),n.d(t,"ChangeDetectionStrategy",function(){return r.d}),n.d(t,"ChangeDetectorRef",function(){return r.i}),n.d(t,"CollectionChangeRecord",function(){return r._64}),n.d(t,"DefaultIterableDiffer",function(){return r._65}),n.d(t,"IterableDiffers",function(){return r._8}),n.d(t,"KeyValueChangeRecord",function(){return r._66}),n.d(t,"KeyValueDiffers",function(){return r._9}),n.d(t,"SimpleChange",function(){return r.s}),n.d(t,"Wrappe
 dValue",function(){return r._10}),n.d(t,"platformCore",function(){return r._4}),n.d(t,"__core_private__",function(){return r.e}),n.d(t,"AUTO_STYLE",function(){return r._11}),n.d(t,"AnimationEntryMetadata",function(){return r._67}),n.d(t,"AnimationStateMetadata",function(){return r._68}),n.d(t,"AnimationStateDeclarationMetadata",function(){return r.K}),n.d(t,"AnimationStateTransitionMetadata",function(){return r.L}),n.d(t,"AnimationMetadata",function(){return r._69}),n.d(t,"AnimationKeyframesSequenceMetadata",function(){return r.N}),n.d(t,"AnimationStyleMetadata",function(){return r.M}),n.d(t,"AnimationAnimateMetadata",function(){return r.O}),n.d(t,"AnimationWithStepsMetadata",function(){return r.P}),n.d(t,"AnimationSequenceMetadata",function(){return r._70}),n.d(t,"AnimationGroupMetadata",function(){return r.Q}),n.d(t,"animate",function(){return r._71}),n.d(t,"group",function(){return r._72}),n.d(t,"sequence",function(){return r._73}),n.d(t,"style",function(){return r._74}),n.d(t,"s
 tate",function(){return r._75}),n.d(t,"keyframes",function(){return r._76}),n.d(t,"transition",function(){return r._77}),n.d(t,"trigger",function(){return r._78}),n.d(t,"Inject",function(){return r.y}),n.d(t,"Optional",function(){return r.x}),n.d(t,"Injectable",function(){return r.b}),n.d(t,"Self",function(){return r.S}),n.d(t,"SkipSelf",function(){return r.T}),n.d(t,"Host",function(){return r.R})},function(e,t,n){var r=n(11),i=n(10),o=n(40),s=n(18),a=n(66),c="prototype",u=function(e,t,n){var l,p,d,h,f=e&u.F,m=e&u.G,g=e&u.S,v=e&u.P,y=e&u.B,b=m?r:g?r[t]||(r[t]={}):(r[t]||{})[c],w=m?i:i[t]||(i[t]={}),_=w[c]||(w[c]={});m&&(n=t);for(l in n)p=!f&&b&&void 0!==b[l],d=(p?b:n)[l],h=y&&p?a(d,r):v&&"function"==typeof d?a(Function.call,d):d,b&&s(b,l,d,e&u.U),w[l]!=d&&o(w,l,h),v&&_[l]!=d&&(_[l]=d)};r.core=i,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t,n){"use strict";(function(e){function r(e){return null!=e}function i(e){return null==e}function o(e){return"obje
 ct"==typeof e&&null!==e&&Object.getPrototypeOf(e)===h}function s(e){if("string"==typeof e)return e;if(null==e)return""+e;if(e.overriddenName)return e.overriddenName;if(e.name)return e.name;var t=e.toString(),n=t.indexOf("\n");return n===-1?t:t.substring(0,n)}function a(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function c(){if(!m)if(p.Symbol&&Symbol.iterator)m=Symbol.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),t=0;t<e.length;++t){var n=e[t];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(m=n)}return m}function u(e){return!a(e)}function l(e){return e.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}t.b=r,t.a=i,t.g=o,t.i=s,n.d(t,"c",function(){return f}),t.e=a,t.f=c,t.h=u,t.d=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 p;p="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:e:window;var d=p;d.assert=function(e){};var h=Object.getPrototypeOf({}),f=function(){function e(){}return e.parseIntAutoRadix=function(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t},e.isNumeric=function(e){return!isNaN(e-parseFloat(e))},e}(),m=null}).call(t,n(43))},function(e,t,n){"use strict";(function(e){function r(e){Zone.current.scheduleMicroTask("scheduleMicrotask",e)}function i(e){return e.name||typeof e}function o(e){return null!=e}function s(e){return null==e}function a(e){if("string"==typeof e)return e;if(null==e)return""+e;if(e.overriddenName)return e.overriddenName;if(e.name)return e.name;var t=e.toString(),n=t.indexOf("\n");return n===-1?t:t.substring(0,n)}function c(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)}function u(e){return null!==e&&("function"==typeof e||"object"=
 =typeof e)}function l(e){console.log(e)}function p(e){console.warn(e)}function d(){if(!g)if(f.Symbol&&Symbol.iterator)g=Symbol.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),t=0;t<e.length;++t){var n=e[t];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(g=n)}return g}function h(e){return!u(e)}t.l=r,n.d(t,"a",function(){return m}),t.j=i,t.d=o,t.c=s,t.b=a,t.i=c,t.e=u,t.g=l,t.h=p,t.f=d,t.k=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 f;f="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:e:window;var m=f;m.assert=function(e){};var g=(Object.getPrototypeOf({}),function(){function e(){}return e.parseIntAutoRadix=function(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t},e.isNumeric=function(e){return!isNaN(e-parseFloat(e))},e}(),null)}).call(t,n(43))},function(e,t,n){var r=n(7);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){"use strict";function r(e,t,n){var r=new ve(e,t);return n.visitExpression(r,null)}function i(e){var t=new ye;return t.visitAllStatements(e,null),t.varNames}function o(e,t){return void 0===t&&(t=null),new M(e,t)}function s(e,t){return void 0===t&&(t=null),new V(e,null,t)}function a(e,t,r){return void 0===t&&(t=null),void 0===r&&(r=null),n.i(h.b)(e)?new w(e,t,r):null}function c(e,t){return void 0===t&&(t=null),new X(e,t)}function u(e,t){r
 eturn void 0===t&&(t=null),new Q(e,t)}function l(e){return new H(e)}function p(e,t,n){return void 0===n&&(n=null),new q(e,t,n)}function d(e,t){return void 0===t&&(t=null),new $(e,t)}var h=n(2);n.d(t,"m",function(){return f}),n.d(t,"P",function(){return v}),n.d(t,"R",function(){return g}),n.d(t,"M",function(){return w}),n.d(t,"w",function(){return _}),n.d(t,"x",function(){return k}),n.d(t,"l",function(){return x}),n.d(t,"E",function(){return E}),n.d(t,"N",function(){return C}),n.d(t,"G",function(){return S}),n.d(t,"D",function(){return A}),n.d(t,"Q",function(){return T}),n.d(t,"s",function(){return y}),n.d(t,"H",function(){return O}),n.d(t,"I",function(){return F}),n.d(t,"v",function(){return M}),n.d(t,"z",function(){return L}),n.d(t,"F",function(){return $}),n.d(t,"S",function(){return V}),n.d(t,"j",function(){return W}),n.d(t,"t",function(){return G}),n.d(t,"o",function(){return Z}),n.d(t,"A",function(){return J}),n.d(t,"f",function(){return ee}),n.d(t,"p",function(){return I}),n.d
 (t,"O",function(){return ne}),n.d(t,"r",function(){return re}),n.d(t,"y",function(){return oe}),n.d(t,"i",function(){return se}),n.d(t,"n",function(){return ce}),n.d(t,"B",function(){return ue}),n.d(t,"L",function(){return le}),n.d(t,"C",function(){return pe}),n.d(t,"g",function(){return de}),n.d(t,"J",function(){return me}),t.K=r,t.q=i,t.a=o,t.e=s,t.k=a,t.c=c,t.b=u,t.u=l,t.h=p,t.d=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 f,m=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)};!function(e){e[e.Const=0]="Const"}(f||(f={}));var g,v=function(){function e(e){void 0===e&&(e=null),this.modifiers=e,e||(this.modifiers=[])}return e.prototype.hasModifier=function(e){return this.modifiers.indexOf(e)!==-1},e}();!function(e){e[e.Dynamic=0]="Dynamic",e[e.Bool=1]="Bool",e[e.String=2]="String",e[e.Int=3]="Int",e[e.Number=4]="Number",e[e.Function=5]="Function",e[e.Null=6]="Null"}(g||(g={}));var y,b=function(e){function t(t,n){void 0===n&&(n=null),e.call(this,n),this.name=t}return m(t,e),t.prototype.visitType=function(e,t){return e.visitBuiltintType(this,t)},t}(v),w=function(e){function t(t,n,r){void 0===n&&(n=null),void 0===r&&(r=null),e.call(this,r),this.value=t,this.typeParams=n}return m(t,e),t.prototype.visitType=function(e,t){return e.visitExternalType(this,t)},t}(v),_=functio
 n(e){function t(t,n){void 0===n&&(n=null),e.call(this,n),this.of=t}return m(t,e),t.prototype.visitType=function(e,t){return e.visitArrayType(this,t)},t}(v),k=function(e){function t(t,n){void 0===n&&(n=null),e.call(this,n),this.valueType=t}return m(t,e),t.prototype.visitType=function(e,t){return e.visitMapType(this,t)},t}(v),x=new b(g.Dynamic),E=new b(g.Bool),C=(new b(g.Int),new b(g.Number)),S=new b(g.String),A=new b(g.Function),T=new b(g.Null);!function(e){e[e.Equals=0]="Equals",e[e.NotEquals=1]="NotEquals",e[e.Identical=2]="Identical",e[e.NotIdentical=3]="NotIdentical",e[e.Minus=4]="Minus",e[e.Plus=5]="Plus",e[e.Divide=6]="Divide",e[e.Multiply=7]="Multiply",e[e.Modulo=8]="Modulo",e[e.And=9]="And",e[e.Or=10]="Or",e[e.Lower=11]="Lower",e[e.LowerEquals=12]="LowerEquals",e[e.Bigger=13]="Bigger",e[e.BiggerEquals=14]="BiggerEquals"}(y||(y={}));var F,O=function(){function e(e){this.type=e}return e.prototype.prop=function(e){return new K(this,e)},e.prototype.key=function(e,t){return void 0
 ===t&&(t=null),new Y(this,e,t)},e.prototype.callMethod=function(e,t){return new N(this,e,t)},e.prototype.callFn=function(e){return new j(this,e)},e.prototype.instantiate=function(e,t){return void 0===t&&(t=null),new B(this,e,t)},e.prototype.conditional=function(e,t){return void 0===t&&(t=null),new z(this,e,t)},e.prototype.equals=function(e){return new G(y.Equals,this,e)},e.prototype.notEquals=function(e){return new G(y.NotEquals,this,e)},e.prototype.identical=function(e){return new G(y.Identical,this,e)},e.prototype.notIdentical=function(e){return new G(y.NotIdentical,this,e)},e.prototype.minus=function(e){return new G(y.Minus,this,e)},e.prototype.plus=function(e){return new G(y.Plus,this,e)},e.prototype.divide=function(e){return new G(y.Divide,this,e)},e.prototype.multiply=function(e){return new G(y.Multiply,this,e)},e.prototype.modulo=function(e){return new G(y.Modulo,this,e)},e.prototype.and=function(e){return new G(y.And,this,e)},e.prototype.or=function(e){return new G(y.Or,this
 ,e)},e.prototype.lower=function(e){return new G(y.Lower,this,e)},e.prototype.lowerEquals=function(e){return new G(y.LowerEquals,this,e)},e.prototype.bigger=function(e){return new G(y.Bigger,this,e)},e.prototype.biggerEquals=function(e){return new G(y.BiggerEquals,this,e)},e.prototype.isBlank=function(){return this.equals(te)},e.prototype.cast=function(e){return new U(this,e)},e.prototype.toStmt=function(){return new oe(this)},e}();!function(e){e[e.This=0]="This",e[e.Super=1]="Super",e[e.CatchError=2]="CatchError",e[e.CatchStack=3]="CatchStack"}(F||(F={}));var L,M=function(e){function t(t,n){void 0===n&&(n=null),e.call(this,n),"string"==typeof t?(this.name=t,this.builtin=null):(this.name=null,this.builtin=t)}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitReadVarExpr(this,t)},t.prototype.set=function(e){return new R(this.name,e)},t}(O),R=function(e){function t(t,n,r){void 0===r&&(r=null),e.call(this,r||n.type),this.name=t,this.value=n}return m(t,e),t.prototype.v
 isitExpression=function(e,t){return e.visitWriteVarExpr(this,t)},t.prototype.toDeclStmt=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=null),new re(this.name,this.value,e,t)},t}(O),P=function(e){function t(t,n,r,i){void 0===i&&(i=null),e.call(this,i||r.type),this.receiver=t,this.index=n,this.value=r}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitWriteKeyExpr(this,t)},t}(O),D=function(e){function t(t,n,r,i){void 0===i&&(i=null),e.call(this,i||r.type),this.receiver=t,this.name=n,this.value=r}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitWritePropExpr(this,t)},t}(O);!function(e){e[e.ConcatArray=0]="ConcatArray",e[e.SubscribeObservable=1]="SubscribeObservable",e[e.Bind=2]="Bind"}(L||(L={}));var I,N=function(e){function t(t,n,r,i){void 0===i&&(i=null),e.call(this,i),this.receiver=t,this.args=r,"string"==typeof n?(this.name=n,this.builtin=null):(this.name=null,this.builtin=n)}return m(t,e),t.prototype.visitExpression=function(e,t){r
 eturn e.visitInvokeMethodExpr(this,t)},t}(O),j=function(e){function t(t,n,r){void 0===r&&(r=null),e.call(this,r),this.fn=t,this.args=n}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitInvokeFunctionExpr(this,t)},t}(O),B=function(e){function t(t,n,r){e.call(this,r),this.classExpr=t,this.args=n}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitInstantiateExpr(this,t)},t}(O),$=function(e){function t(t,n){void 0===n&&(n=null),e.call(this,n),this.value=t}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitLiteralExpr(this,t)},t}(O),V=function(e){function t(t,n,r){void 0===n&&(n=null),void 0===r&&(r=null),e.call(this,n),this.value=t,this.typeParams=r}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitExternalExpr(this,t)},t}(O),z=function(e){function t(t,n,r,i){void 0===r&&(r=null),void 0===i&&(i=null),e.call(this,i||n.type),this.condition=t,this.falseCase=r,this.trueCase=n}return m(t,e),t.prototype.visitExpress
 ion=function(e,t){return e.visitConditionalExpr(this,t)},t}(O),H=function(e){function t(t){e.call(this,E),this.condition=t}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitNotExpr(this,t)},t}(O),U=function(e){function t(t,n){e.call(this,n),this.value=t}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitCastExpr(this,t)},t}(O),W=function(){function e(e,t){void 0===t&&(t=null),this.name=e,this.type=t}return e}(),q=function(e){function t(t,n,r){void 0===r&&(r=null),e.call(this,r),this.params=t,this.statements=n}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitFunctionExpr(this,t)},t.prototype.toDeclStmt=function(e,t){return void 0===t&&(t=null),new ie(e,this.params,this.statements,this.type,t)},t}(O),G=function(e){function t(t,n,r,i){void 0===i&&(i=null),e.call(this,i||n.type),this.operator=t,this.rhs=r,this.lhs=n}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitBinaryOperatorExpr(this,t)},t}(O),K=functio
 n(e){function t(t,n,r){void 0===r&&(r=null),e.call(this,r),this.receiver=t,this.name=n}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitReadPropExpr(this,t)},t.prototype.set=function(e){return new D(this.receiver,this.name,e)},t}(O),Y=function(e){function t(t,n,r){void 0===r&&(r=null),e.call(this,r),this.receiver=t,this.index=n}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitReadKeyExpr(this,t)},t.prototype.set=function(e){return new P(this.receiver,this.index,e)},t}(O),X=function(e){function t(t,n){void 0===n&&(n=null),e.call(this,n),this.entries=t}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitLiteralArrayExpr(this,t)},t}(O),Q=function(e){function t(t,r){void 0===r&&(r=null),e.call(this,r),this.entries=t,this.valueType=null,n.i(h.b)(r)&&(this.valueType=r.valueType)}return m(t,e),t.prototype.visitExpression=function(e,t){return e.visitLiteralMapExpr(this,t)},t}(O),Z=new M(F.This),J=new M(F.Super),ee=(new M(F.CatchErr
 or),new M(F.CatchStack),new $(null,null)),te=new $(null,T);!function(e){e[e.Final=0]="Final",e[e.Private=1]="Private"}(I||(I={}));var ne=function(){function e(e){void 0===e&&(e=null),this.modifiers=e,e||(this.modifiers=[])}return e.prototype.hasModifier=function(e){return this.modifiers.indexOf(e)!==-1},e}(),re=function(e){function t(t,n,r,i){void 0===r&&(r=null),void 0===i&&(i=null),e.call(this,i),this.name=t,this.value=n,this.type=r||n.type}return m(t,e),t.prototype.visitStatement=function(e,t){return e.visitDeclareVarStmt(this,t)},t}(ne),ie=function(e){function t(t,n,r,i,o){void 0===i&&(i=null),void 0===o&&(o=null),e.call(this,o),this.name=t,this.params=n,this.statements=r,this.type=i}return m(t,e),t.prototype.visitStatement=function(e,t){return e.visitDeclareFunctionStmt(this,t)},t}(ne),oe=function(e){function t(t){e.call(this),this.expr=t}return m(t,e),t.prototype.visitStatement=function(e,t){return e.visitExpressionStmt(this,t)},t}(ne),se=function(e){function t(t){e.call(this)
 ,this.value=t}return m(t,e),t.prototype.visitStatement=function(e,t){return e.visitReturnStmt(this,t)},t}(ne),ae=function(){function e(e,t){void 0===e&&(e=null),this.type=e,this.modifiers=t,t||(this.modifiers=[])}return e.prototype.hasModifier=function(e){return this.modifiers.indexOf(e)!==-1},e}(),ce=function(e){function t(t,n,r){void 0===n&&(n=null),void 0===r&&(r=null),e.call(this,n,r),this.name=t}return m(t,e),t}(ae),ue=function(e){function t(t,n,r,i,o){void 0===i&&(i=null),void 0===o&&(o=null),e.call(this,i,o),this.name=t,this.params=n,this.body=r}return m(t,e),t}(ae),le=function(e){function t(t,n,r,i){void 0===r&&(r=null),void 0===i&&(i=null),e.call(this,r,i),this.name=t,this.body=n}return m(t,e),t}(ae),pe=function(e){function t(t,n,r,i,o,s,a){void 0===a&&(a=null),e.call(this,a),this.name=t,this.parent=n,this.fields=r,this.getters=i,this.constructorMethod=o,this.methods=s}return m(t,e),t.prototype.visitStatement=function(e,t){return e.visitDeclareClassStmt(this,t)},t}(ne),de=f
 unction(e){function t(t,n,r){void 0===r&&(r=[]),e.call(this),this.condition=t,this.trueCase=n,this.falseCase=r}return m(t,e),t.prototype.visitStatement=function(e,t){return e.visitIfStmt(this,t)},t}(ne),he=(function(e){function t(t){e.call(this),this.comment=t}return m(t,e),t.prototype.visitStatement=function(e,t){return e.visitCommentStmt(this,t)},t}(ne),function(e){function t(t,n){e.call(this),this.bodyStmts=t,this.catchStmts=n}return m(t,e),t.prototype.visitStatement=function(e,t){return e.visitTryCatchStmt(this,t)},t}(ne)),fe=function(e){function t(t){e.call(this),this.error=t}return m(t,e),t.prototype.visitStatement=function(e,t){return e.visitThrowStmt(this,t)},t}(ne),me=function(){function e(){}return e.prototype.visitReadVarExpr=function(e,t){return e},e.prototype.visitWriteVarExpr=function(e,t){return new R(e.name,e.value.visitExpression(this,t))},e.prototype.visitWriteKeyExpr=function(e,t){return new P(e.receiver.visitExpression(this,t),e.index.visitExpression(this,t),e.va
 lue.visitExpression(this,t))},e.prototype.visitWritePropExpr=function(e,t){return new D(e.receiver.visitExpression(this,t),e.name,e.value.visitExpression(this,t))},e.prototype.visitInvokeMethodExpr=function(e,t){var n=e.builtin||e.name;return new N(e.receiver.visitExpression(this,t),n,this.visitAllExpressions(e.args,t),e.type)},e.prototype.visitInvokeFunctionExpr=function(e,t){return new j(e.fn.visitExpression(this,t),this.visitAllExpressions(e.args,t),e.type)},e.prototype.visitInstantiateExpr=function(e,t){return new B(e.classExpr.visitExpression(this,t),this.visitAllExpressions(e.args,t),e.type)},e.prototype.visitLiteralExpr=function(e,t){return e},e.prototype.visitExternalExpr=function(e,t){return e},e.prototype.visitConditionalExpr=function(e,t){return new z(e.condition.visitExpression(this,t),e.trueCase.visitExpression(this,t),e.falseCase.visitExpression(this,t))},e.prototype.visitNotExpr=function(e,t){return new H(e.condition.visitExpression(this,t))},e.prototype.visitCastExpr
 =function(e,t){return new U(e.value.visitExpression(this,t),t)},e.prototype.visitFunctionExpr=function(e,t){return e},e.prototype.visitBinaryOperatorExpr=function(e,t){return new G(e.operator,e.lhs.visitExpression(this,t),e.rhs.visitExpression(this,t),e.type)},e.prototype.visitReadPropExpr=function(e,t){return new K(e.receiver.visitExpression(this,t),e.name,e.type)},e.prototype.visitReadKeyExpr=function(e,t){return new Y(e.receiver.visitExpression(this,t),e.index.visitExpression(this,t),e.type)},e.prototype.visitLiteralArrayExpr=function(e,t){return new X(this.visitAllExpressions(e.entries,t))},e.prototype.visitLiteralMapExpr=function(e,t){var n=this,r=e.entries.map(function(e){return[e[0],e[1].visitExpression(n,t)]});return new Q(r)},e.prototype.visitAllExpressions=function(e,t){var n=this;return e.map(function(e){return e.visitExpression(n,t)})},e.prototype.visitDeclareVarStmt=function(e,t){return new re(e.name,e.value.visitExpression(this,t),e.type,e.modifiers)},e.prototype.visit
 DeclareFunctionStmt=function(e,t){return e},e.prototype.visitExpressionStmt=function(e,t){return new oe(e.expr.visitExpression(this,t))},e.prototype.visitReturnStmt=function(e,t){return new se(e.value.visitExpression(this,t))},e.prototype.visitDeclareClassStmt=function(e,t){return e},e.prototype.visitIfStmt=function(e,t){return new de(e.condition.visitExpression(this,t),this.visitAllStatements(e.trueCase,t),this.visitAllStatements(e.falseCase,t))},e.prototype.visitTryCatchStmt=function(e,t){return new he(this.visitAllStatements(e.bodyStmts,t),this.visitAllStatements(e.catchStmts,t))},e.prototype.visitThrowStmt=function(e,t){return new fe(e.error.visitExpression(this,t))},e.prototype.visitCommentStmt=function(e,t){return e},e.prototype.visitAllStatements=function(e,t){var n=this;return e.map(function(e){return e.visitStatement(n,t)})},e}(),ge=function(){function e(){}return e.prototype.visitReadVarExpr=function(e,t){return e},e.prototype.visitWriteVarExpr=function(e,t){return e.value
 .visitExpression(this,t),e},e.prototype.visitWriteKeyExpr=function(e,t){return e.receiver.visitExpression(this,t),e.index.visitExpression(this,t),e.value.visitExpression(this,t),e},e.prototype.visitWritePropExpr=function(e,t){return e.receiver.visitExpression(this,t),e.value.visitExpression(this,t),e},e.prototype.visitInvokeMethodExpr=function(e,t){return e.receiver.visitExpression(this,t),this.visitAllExpressions(e.args,t),e},e.prototype.visitInvokeFunctionExpr=function(e,t){return e.fn.visitExpression(this,t),this.visitAllExpressions(e.args,t),e},e.prototype.visitInstantiateExpr=function(e,t){return e.classExpr.visitExpression(this,t),this.visitAllExpressions(e.args,t),e},e.prototype.visitLiteralExpr=function(e,t){return e},e.prototype.visitExternalExpr=function(e,t){return e},e.prototype.visitConditionalExpr=function(e,t){return e.condition.visitExpression(this,t),e.trueCase.visitExpression(this,t),e.falseCase.visitExpression(this,t),e},e.prototype.visitNotExpr=function(e,t){retu
 rn e.condition.visitExpression(this,t),e},e.prototype.visitCastExpr=function(e,t){return e.value.visitExpression(this,t),e},e.prototype.visitFunctionExpr=function(e,t){return e},e.prototype.visitBinaryOperatorExpr=function(e,t){return e.lhs.visitExpression(this,t),e.rhs.visitExpression(this,t),e},e.prototype.visitReadPropExpr=function(e,t){return e.receiver.visitExpression(this,t),e},e.prototype.visitReadKeyExpr=function(e,t){return e.receiver.visitExpression(this,t),e.index.visitExpression(this,t),e},e.prototype.visitLiteralArrayExpr=function(e,t){return this.visitAllExpressions(e.entries,t),e},e.prototype.visitLiteralMapExpr=function(e,t){var n=this;return e.entries.forEach(function(e){return e[1].visitExpression(n,t)}),e},e.prototype.visitAllExpressions=function(e,t){var n=this;e.forEach(function(e){return e.visitExpression(n,t)})},e.prototype.visitDeclareVarStmt=function(e,t){return e.value.visitExpression(this,t),e},e.prototype.visitDeclareFunctionStmt=function(e,t){return e},e
 .prototype.visitExpressionStmt=function(e,t){return e.expr.visitExpression(this,t),e},e.prototype.visitReturnStmt=function(e,t){return e.value.visitExpression(this,t),e},e.prototype.visitDeclareClassStmt=function(e,t){return e},e.prototype.visitIfStmt=function(e,t){return e.condition.visitExpression(this,t),this.visitAllStatements(e.trueCase,t),this.visitAllStatements(e.falseCase,t),e},e.prototype.visitTryCatchStmt=function(e,t){return this.visitAllStatements(e.bodyStmts,t),this.visitAllStatements(e.catchStmts,t),e},e.prototype.visitThrowStmt=function(e,t){return e.error.visitExpression(this,t),e},e.prototype.visitCommentStmt=function(e,t){return e},e.prototype.visitAllStatements=function(e,t){var n=this;e.forEach(function(e){return e.visitStatement(n,t)})},e}(),ve=function(e){function t(t,n){e.call(this),this._varName=t,this._newValue=n}return m(t,e),t.prototype.visitReadVarExpr=function(e,t){return e.name==this._varName?this._newValue:e},t}(me),ye=function(e){function t(){e.apply(
 this,arguments),this.varNames=new Set}return m(t,e),t.prototype.visitReadVarExpr=function(e,t){return this.varNames.add(e.name),null},t}(ge)},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(128)("wks"),i=n(88),o=n(11).Symbol,s="function"==typeof o,a=e.exports=function(e){return r[e]||(r[e]=s&&o[e]||(s?o:i)("Symbol."+e))};a.store=r},function(e,t,n){"use strict";function r(e,t,n){return void 0===t&&(t=null),void 0===n&&(n="src"),null==t?"asset:@angular/lib/"+e+"/index":"asset:@angular/lib/"+e+"/src/"+t}function i(e){return new u.a({name:e.name,moduleUrl:e.moduleUrl,reference:l.B.resolveIdentifier(e.name,e.moduleUrl,e.runtime)})}function o(e){return new u.b({identifier:e})}function s(e){return o(i(e))}function a(e,t){var n=l.B.resolveEnum(e.reference,t);return new u.a({name:e.name+"."+t,moduleUrl:e.moduleUrl,reference:n})}var c=n(0),u=n(16),l=n(1
 2);n.d(t,"b",function(){return m}),t.d=i,t.c=o,t.a=s,t.e=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 p=r("core","linker/view"),d=r("core","linker/view_utils"),h=r("core","change_detection/change_detection"),f=r("core","animation/animation_style_util"),m=function(){function e(){}return e.ANALYZE_FOR_ENTRY_COMPONENTS={name:"ANALYZE_FOR_ENTRY_COMPONENTS",moduleUrl:r("core","metadata/di"),runtime:c.ANALYZE_FOR_ENTRY_COMPONENTS},e.ViewUtils={name:"ViewUtils",moduleUrl:r("core","linker/view_utils"),runtime:l.a.ViewUtils},e.AppView={name:"AppView",moduleUrl:p,runtime:l.b},e.DebugAppView={name:"DebugAppView",moduleUrl:p,runtime:l.c},e.ViewContainer={name:"ViewContainer",moduleUrl:r("core","linker/view_container"),runtime:l.d},e.ElementRef={name:"ElementRef",moduleUrl:r("core","linker/element_ref"),runtime:c.ElementRef},e.ViewContainerRef={name:"ViewContainerRef",moduleUrl:r("core","linker/view_container_ref"),runtime:c.ViewContainerRef},e.ChangeDetectorRef={name:"ChangeDetectorRef",moduleUrl:r("core","change_detection/change_detector_ref"),runtime:c.ChangeDetectorRef},e.RenderComponent
 Type={name:"RenderComponentType",moduleUrl:r("core","render/api"),runtime:c.RenderComponentType},e.QueryList={name:"QueryList",moduleUrl:r("core","linker/query_list"),runtime:c.QueryList},e.TemplateRef={name:"TemplateRef",moduleUrl:r("core","linker/template_ref"),runtime:c.TemplateRef},e.TemplateRef_={name:"TemplateRef_",moduleUrl:r("core","linker/template_ref"),runtime:l.e},e.CodegenComponentFactoryResolver={name:"CodegenComponentFactoryResolver",moduleUrl:r("core","linker/component_factory_resolver"),runtime:l.f},e.ComponentFactoryResolver={name:"ComponentFactoryResolver",moduleUrl:r("core","linker/component_factory_resolver"),runtime:c.ComponentFactoryResolver},e.ComponentFactory={name:"ComponentFactory",runtime:c.ComponentFactory,moduleUrl:r("core","linker/component_factory")},e.ComponentRef_={name:"ComponentRef_",runtime:l.g,moduleUrl:r("core","linker/component_factory")},e.ComponentRef={name:"ComponentRef",runtime:c.ComponentRef,moduleUrl:r("core","linker/component_factory")},
 e.NgModuleFactory={name:"NgModuleFactory",runtime:c.NgModuleFactory,moduleUrl:r("core","linker/ng_module_factory")},e.NgModuleInjector={name:"NgModuleInjector",runtime:l.h,moduleUrl:r("core","linker/ng_module_factory")},e.RegisterModuleFactoryFn={name:"registerModuleFactory",runtime:l.i,moduleUrl:r("core","linker/ng_module_factory_loader")},e.ValueUnwrapper={name:"ValueUnwrapper",moduleUrl:h,runtime:l.j},e.Injector={name:"Injector",moduleUrl:r("core","di/injector"),runtime:c.Injector},e.ViewEncapsulation={name:"ViewEncapsulation",moduleUrl:r("core","metadata/view"),runtime:c.ViewEncapsulation},e.ViewType={name:"ViewType",moduleUrl:r("core","linker/view_type"),runtime:l.k},e.ChangeDetectionStrategy={name:"ChangeDetectionStrategy",moduleUrl:h,runtime:c.ChangeDetectionStrategy},e.StaticNodeDebugInfo={name:"StaticNodeDebugInfo",moduleUrl:r("core","linker/debug_context"),runtime:l.l},e.DebugContext={name:"DebugContext",moduleUrl:r("core","linker/debug_context"),runtime:l.m},e.Renderer={n
 ame:"Renderer",moduleUrl:r("core","render/api"),runtime:c.Renderer},e.SimpleChange={name:"SimpleChange",moduleUrl:h,runtime:c.SimpleChange},e.UNINITIALIZED={name:"UNINITIALIZED",moduleUrl:h,runtime:l.n},e.ChangeDetectorStatus={name:"ChangeDetectorStatus",moduleUrl:h,runtime:l.o},e.checkBinding={name:"checkBinding",moduleUrl:d,runtime:l.a.checkBinding},e.devModeEqual={name:"devModeEqual",moduleUrl:h,runtime:l.p},e.inlineInterpolate={name:"inlineInterpolate",moduleUrl:d,runtime:l.a.inlineInterpolate},e.interpolate={name:"interpolate",moduleUrl:d,runtime:l.a.interpolate},e.castByValue={name:"castByValue",moduleUrl:d,runtime:l.a.castByValue},e.EMPTY_ARRAY={name:"EMPTY_ARRAY",moduleUrl:d,runtime:l.a.EMPTY_ARRAY},e.EMPTY_MAP={name:"EMPTY_MAP",moduleUrl:d,runtime:l.a.EMPTY_MAP},e.createRenderElement={name:"createRenderElement",moduleUrl:d,runtime:l.a.createRenderElement},e.selectOrCreateRenderHostElement={name:"selectOrCreateRenderHostElement",moduleUrl:d,runtime:l.a.selectOrCreateRenderHo
 stElement},e.pureProxies=[null,{name:"pureProxy1",moduleUrl:d,runtime:l.a.pureProxy1},{name:"pureProxy2",moduleUrl:d,runtime:l.a.pureProxy2},{name:"pureProxy3",moduleUrl:d,runtime:l.a.pureProxy3},{name:"pureProxy4",moduleUrl:d,runtime:l.a.pureProxy4},{name:"pureProxy5",moduleUrl:d,runtime:l.a.pureProxy5},{name:"pureProxy6",moduleUrl:d,runtime:l.a.pureProxy6},{name:"pureProxy7",moduleUrl:d,runtime:l.a.pureProxy7},{name:"pureProxy8",moduleUrl:d,runtime:l.a.pureProxy8},{name:"pureProxy9",moduleUrl:d,runtime:l.a.pureProxy9},{name:"pureProxy10",moduleUrl:d,runtime:l.a.pureProxy10}],e.SecurityContext={name:"SecurityContext",moduleUrl:r("core","security"),runtime:c.SecurityContext},e.AnimationKeyframe={name:"AnimationKeyframe",moduleUrl:r("core","animation/animation_keyframe"),runtime:l.q},e.AnimationStyles={name:"AnimationStyles",moduleUrl:r("core","animation/animation_styles"),runtime:l.r},e.NoOpAnimationPlayer={name:"NoOpAnimationPlayer",moduleUrl:r("core","animation/animation_player"),
 runtime:l.s},e.AnimationGroupPlayer={name:"AnimationGroupPlayer",moduleUrl:r("core","animation/animation_group_player"),runtime:l.t},e.AnimationSequencePlayer={name:"AnimationSequencePlayer",moduleUrl:r("core","animation/animation_sequence_player"),runtime:l.u},e.prepareFinalAnimationStyles={name:"prepareFinalAnimationStyles",moduleUrl:f,runtime:l.v},e.balanceAnimationKeyframes={name:"balanceAnimationKeyframes",moduleUrl:f,runtime:l.w},e.clearStyles={name:"clearStyles",moduleUrl:f,runtime:l.x},e.renderStyles={name:"renderStyles",moduleUrl:f,runtime:l.y},e.collectAndResolveStyles={name:"collectAndResolveStyles",moduleUrl:f,runtime:l.z},e.LOCALE_ID={name:"LOCALE_ID",moduleUrl:r("core","i18n/tokens"),runtime:c.LOCALE_ID},e.TRANSLATIONS_FORMAT={name:"TRANSLATIONS_FORMAT",moduleUrl:r("core","i18n/tokens"),runtime:c.TRANSLATIONS_FORMAT},e.setBindingDebugInfo={name:"setBindingDebugInfo",moduleUrl:d,runtime:l.a.setBindingDebugInfo},e.setBindingDebugInfoForChanges={name:"setBindingDebugInfoF
 orChanges",moduleUrl:d,runtime:l.a.setBindingDebugInfoForChanges},e.AnimationTransition={name:"AnimationTransition",moduleUrl:r("core","animation/animation_transition"),runtime:l.A},e.InlineArray={name:"InlineArray",moduleUrl:d,runtime:null},e.inlineArrays=[{name:"InlineArray2",moduleUrl:d,runtime:l.a.InlineArray2},{name:"InlineArray2",moduleUrl:d,runtime:l.a.InlineArray2},{name:"InlineArray4",moduleUrl:d,runtime:l.a.InlineArray4},{name:"InlineArray8",moduleUrl:d,runtime:l.a.InlineArray8},{name:"InlineArray16",moduleUrl:d,runtime:l.a.InlineArray16}],e.EMPTY_INLINE_ARRAY={name:"EMPTY_INLINE_ARRAY",moduleUrl:d,runtime:l.a.EMPTY_INLINE_ARRAY},e.InlineArrayDynamic={name:"InlineArrayDynamic",moduleUrl:d,runtime:l.a.InlineArrayDynamic},e.subscribeToRenderElement={name:"subscribeToRenderElement",moduleUrl:d,runtime:l.a.subscribeToRenderElement},e.createRenderComponentType={name:"createRenderComponentType",moduleUrl:d,runtime:l.a.createRenderComponentType},e.noop={name:"noop",moduleUrl:d,ru
 ntime:l.a.noop},e}()},function(e,t){var n=e.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){"use strict";var r=n(0);n.d(t,"H",function(){return i}),n.d(t,"o",function(){return o}),n.d(t,"G",function(){return s}),n.d(t,"L",function(){return a}),n.d(t,"J",function(){return c}),n.d(t,"d",function(){return u}),n.d(t,"f",function(){return l}),n.d(t,"g",function(){return p}),n.d(t,"b",function(){return d}),n.d(t,"c",function(){return h}),n.d(t,"h",function(){return f}),n.d(t,"i",function(){return m}),n.d(t,"k",function(){return g}),n.d(t,"a",function(){return v}),n.d(t,"m",function(){return y}),n.d(t,"l",function(){return b}),n.d(t,"p",function(){return w}),n.d(t,"n",function(){return _}),n.d(t,"j",function(){return k}),n.d(t,"e",function(){return x}),n.d(t,"C",function(){return E
 }),n.d(t,"B",function(){return C}),n.d(t,"M",function(){return S}),n.d(t,"N",function(){return A}),n.d(t,"s",function(){return T}),n.d(t,"u",function(){return F}),n.d(t,"t",function(){return O}),n.d(t,"q",function(){return L}),n.d(t,"r",function(){return M}),n.d(t,"D",function(){return R}),n.d(t,"E",function(){return P}),n.d(t,"F",function(){return D}),n.d(t,"I",function(){return I}),n.d(t,"v",function(){return N}),n.d(t,"w",function(){return j}),n.d(t,"x",function(){return B}),n.d(t,"z",function(){return $}),n.d(t,"y",function(){return V}),n.d(t,"K",function(){return z}),n.d(t,"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 i=r.__core_private__.isDefaultChangeDetectionStrategy,o=r.__core_private__.ChangeDetectorStatus,s=r.__core_private__.LifecycleHooks,a=r.__core_private__.LIFECYCLE_HOOKS_VALUES,c=r.__core_private__.ReflectorReader,u=r.__core_private__.ViewContainer,l=r.__core_private__.CodegenComponentFactoryResolver,p=r.__core_private__.ComponentRef_,d=r.__core_private__.AppView,h=r.__core_private__.DebugAppView,f=r.__core_private__.NgModuleInjector,m=r.__core_private__.registerModuleFactory,g=r.__core_private__.ViewType,v=r.__core_private__.view_utils,y=r.__core_private__.DebugContext,b=r.__core_private__.StaticNodeDebugInfo,w=r.__core_private__.devModeEqual,_=r.__core_private__.UNINITIALIZED,k=r.__core_private__.ValueUnwrapper,x=r.__core_private__.TemplateRef_,E=(r.__core_private__.RenderDebugInfo,r.__core_private__.Console),C=r.__core_private__.reflector,S=r.__core_private__.Reflector,A=r.__core_private__.ReflectionCapabilities,T=r.__core_private__.NoOpAnimationPlayer,F=(r.__core_private__.An
 imationPlayer,r.__core_private__.AnimationSequencePlayer),O=r.__core_private__.AnimationGroupPlayer,L=r.__core_private__.AnimationKeyframe,M=r.__core_private__.AnimationStyles,R=r.__core_private__.ANY_STATE,P=r.__core_private__.DEFAULT_STATE,D=r.__core_private__.EMPTY_STATE,I=r.__core_private__.FILL_STYLE_FLAG,N=r.__core_private__.prepareFinalAnimationStyles,j=r.__core_private__.balanceAnimationKeyframes,B=r.__core_private__.clearStyles,$=r.__core_private__.collectAndResolveStyles,V=r.__core_private__.renderStyles,z=(r.__core_private__.ViewMetadata,r.__core_private__.ComponentStillLoadingError),H=r.__core_private__.AnimationTransition},function(e,t,n){var r=n(4),i=n(308),o=n(58),s=Object.defineProperty;t.f=n(15)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";function r(){return o}function i(e){o||(o=e)}t.
 a=r,t.c=i,n.d(t,"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=null,s=function(){function e(){this.resourceLoaderType=null}return Object.defineProperty(e.prototype,"attrToPropMap",{get:function(){return this._attrToPropMap},set:function(e){this._attrToPropMap=e},enumerable:!0,configurable:!0}),e}()},function(e,t,n){e.exports=!n(6)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){"use strict";function r(){throw new Error("unimplemented")}function i(e){var t=l.a.parse(e.selector)[0].getMatchingElementTemplate();return P.create({type:new O({reference:Object,name:e.type.name+"_Host",moduleUrl:e.type.moduleUrl,isHost:!0}),template:new R({encapsulation:a.ViewEncapsulation.None,template:t,templateUrl:"",styles:[],styleUrls:[],ngContentSelectors:[],animations:[]}),changeDetection:a.ChangeDetectionStrategy.Default,inputs:[],outputs:[],host:{},isComponent:!0,selector:"*",providers:[],viewProviders:[],queries:[],viewQueries:[]})}function o(e){return e||[]}function s(e){return"object"==typeof e&&null!
 ==e&&e.name&&e.filePath}var a=n(0),c=n(60),u=n(2),l=n(97),p=n(36);n.d(t,"p",function(){return f}),n.d(t,"g",function(){return g}),n.d(t,"q",function(){return v}),n.d(t,"m",function(){return b}),n.d(t,"k",function(){return w}),n.d(t,"l",function(){return _}),n.d(t,"j",function(){return k}),n.d(t,"h",function(){return x}),n.d(t,"i",function(){return E}),n.d(t,"a",function(){return C}),n.d(t,"c",function(){return S}),n.d(t,"d",function(){return A}),n.d(t,"u",function(){return T}),n.d(t,"b",function(){return F}),n.d(t,"e",function(){return O}),n.d(t,"x",function(){return L}),n.d(t,"n",function(){return M}),n.d(t,"o",function(){return R}),n.d(t,"r",function(){return P}),t.f=i,n.d(t,"v",function(){return D}),n.d(t,"s",function(){return I}),n.d(t,"t",function(){return N}),t.y=s,n.d(t,"w",function(){return j});/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of 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=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},h=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/,f=(function(){function e(){}return Object.defineProperty(e.prototype,"identifier",{get:function(){return r()},enumerable:!0,configurable:!0}),e}(),function(){function e(e,t){void 0===e&&(e=null),void 0===t&&(t=null),this.name=e,this.definitions=t}return e}()),m=function(){function e(){}return e}(),g=function(e){function t(t,n){e.call(this),this.stateNameExpr=t,this.styles=n}return d(t,e),t}(m),v=function(e){function t(t,n){e.call(this),this.stateChangeExpr=t,this.steps=n}return d(t,e),t}(m),y=function(){function e(){}return e}(),b=function(e){function t(t){void 0===t&&(t=[]),e.call(this),this.steps=t}return d(t,e),t}(y),w=function(e){function t(t,n){void 0===n&&(n=null),e.call(this),this.offset=t,this.styles=n}return d(t,e),t}(y),_=functio
 n(e){function t(t,n){void 0===t&&(t=0),void 0===n&&(n=null),e.call(this),this.timings=t,this.styles=n}return d(t,e),t}(y),k=function(e){function t(t){void 0===t&&(t=null),e.call(this),this.steps=t}return d(t,e),t}(y),x=function(e){function t(t){void 0===t&&(t=null),e.call(this,t)}return d(t,e),t}(k),E=function(e){function t(t){void 0===t&&(t=null),e.call(this,t)}return d(t,e),t}(k),C=function(){function e(e){var t=void 0===e?{}:e,n=t.reference,r=t.name,i=t.moduleUrl,o=t.prefix,s=t.value;this.reference=n,this.name=r,this.prefix=o,this.moduleUrl=i,this.value=s}return Object.defineProperty(e.prototype,"identifier",{get:function(){return this},enumerable:!0,configurable:!0}),e}(),S=function(){function e(e){var t=void 0===e?{}:e,n=t.isAttribute,r=t.isSelf,i=t.isHost,o=t.isSkipSelf,s=t.isOptional,a=t.isValue,c=t.token,u=t.value;this.isAttribute=!!n,this.isSelf=!!r,this.isHost=!!i,this.isSkipSelf=!!o,this.isOptional=!!s,this.isValue=!!a,this.token=c,this.value=u}return e}(),A=function(){fu
 nction e(e){var t=e.token,n=e.useClass,r=e.useValue,i=e.useExisting,o=e.useFactory,s=e.deps,a=e.multi;this.token=t,this.useClass=n,this.useValue=r,this.useExisting=i,this.useFactory=o,this.deps=s||null,this.multi=!!a}return e}(),T=function(e){function t(t){var n=t.reference,r=t.name,i=t.moduleUrl,s=t.prefix,a=t.diDeps,c=t.value;e.call(this,{reference:n,name:r,prefix:s,moduleUrl:i,value:c}),this.diDeps=o(a)}return d(t,e),t}(C),F=function(){function e(e){var t=e.value,n=e.identifier,r=e.identifierIsInstance;this.value=t,this.identifier=n,this.identifierIsInstance=!!r}return Object.defineProperty(e.prototype,"reference",{get:function(){return n.i(u.b)(this.identifier)?this.identifier.reference:this.value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return n.i(u.b)(this.value)?n.i(p.a)(this.value):this.identifier.name},enumerable:!0,configurable:!0}),e}(),O=function(e){function t(t){var n=void 0===t?{}:t,r=n.reference,i=n.name,s=n.moduleUrl,a
 =n.prefix,c=n.isHost,u=n.value,l=n.diDeps,p=n.lifecycleHooks;e.call(this,{reference:r,name:i,moduleUrl:s,prefix:a,value:u}),this.isHost=!!c,this.diDeps=o(l),this.lifecycleHooks=o(p)}return d(t,e),t}(C),L=function(){function e(e){var t=void 0===e?{}:e,n=t.selectors,r=t.descendants,i=t.first,o=t.propertyName,s=t.read;this.selectors=n,this.descendants=!!r,this.first=!!i,this.propertyName=o,this.read=s}return e}(),M=function(){function e(e){var t=void 0===e?{}:e,n=t.moduleUrl,r=t.styles,i=t.styleUrls;this.moduleUrl=n,this.styles=o(r),this.styleUrls=o(i)}return e}(),R=function(){function e(e){var t=void 0===e?{}:e,n=t.encapsulation,r=t.template,i=t.templateUrl,s=t.styles,a=t.styleUrls,u=t.externalStylesheets,l=t.animations,p=t.ngContentSelectors,d=t.interpolation;if(this.encapsulation=n,this.template=r,this.templateUrl=i,this.styles=o(s),this.styleUrls=o(a),this.externalStylesheets=o(u),this.animations=l?c.a.flatten(l):[],this.ngContentSelectors=p||[],d&&2!=d.length)throw new Error("'int
 erpolation' should have a start and an end symbol.");this.interpolation=d}return e.prototype.toSummary=function(){return{isSummary:!0,animations:this.animations.map(function(e){return e.name}),ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation}},e}(),P=function(){function e(e){var t=void 0===e?{}:e,n=t.type,r=t.isComponent,i=t.selector,s=t.exportAs,a=t.changeDetection,c=t.inputs,u=t.outputs,l=t.hostListeners,p=t.hostProperties,d=t.hostAttributes,h=t.providers,f=t.viewProviders,m=t.queries,g=t.viewQueries,v=t.entryComponents,y=t.template;this.type=n,this.isComponent=r,this.selector=i,this.exportAs=s,this.changeDetection=a,this.inputs=c,this.outputs=u,this.hostListeners=l,this.hostProperties=p,this.hostAttributes=d,this.providers=o(h),this.viewProviders=o(f),this.queries=o(m),this.viewQueries=o(g),this.entryComponents=o(v),this.template=y}return e.create=function(t){var r=void 0===t?{}:t,i=r.type,o=r.isComponent,s=r.selector,a=r.exportAs,c=r.changeDetection,l=
 r.inputs,d=r.outputs,f=r.host,m=r.providers,g=r.viewProviders,v=r.queries,y=r.viewQueries,b=r.entryComponents,w=r.template,_={},k={},x={};n.i(u.b)(f)&&Object.keys(f).forEach(function(e){var t=f[e],r=e.match(h);null===r?x[e]=t:n.i(u.b)(r[1])?k[r[1]]=t:n.i(u.b)(r[2])&&(_[r[2]]=t)});var E={};n.i(u.b)(l)&&l.forEach(function(e){var t=n.i(p.b)(e,[e,e]);E[t[0]]=t[1]});var C={};return n.i(u.b)(d)&&d.forEach(function(e){var t=n.i(p.b)(e,[e,e]);C[t[0]]=t[1]}),new e({type:i,isComponent:!!o,selector:s,exportAs:a,changeDetection:c,inputs:E,outputs:C,hostListeners:_,hostProperties:k,hostAttributes:x,providers:m,viewProviders:g,queries:v,viewQueries:y,entryComponents:b,template:w})},Object.defineProperty(e.prototype,"identifier",{get:function(){return this.type},enumerable:!0,configurable:!0}),e.prototype.toSummary=function(){return{isSummary:!0,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostL
 isteners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary()}},e}(),D=function(){function e(e){var t=void 0===e?{}:e,n=t.type,r=t.name,i=t.pure;this.type=n,this.name=r,this.pure=!!i}return Object.defineProperty(e.prototype,"identifier",{get:function(){return this.type},enumerable:!0,configurable:!0}),e.prototype.toSummary=function(){return{isSummary:!0,type:this.type,name:this.name,pure:this.pure}},e}(),I=function(){function e(e){var t=void 0===e?{}:e,n=t.type,r=t.providers,i=t.declaredDirectives,s=t.exportedDirectives,a=t.declaredPipes,c=t.exportedPipes,u=t.entryComponents,l=t.bootstrapComponents,p=t.importedModules,d=t.exportedModules,h=t.schemas,f=t.transitiveModule,m=t.id;this.type=n,this.declaredDirectives=o(i),this.exportedDirectives=o(s),this.declaredPipes=o(
 a),this.exportedPipes=o(c),this.providers=o(r),this.entryComponents=o(u),this.bootstrapComponents=o(l),this.importedModules=o(p),this.exportedModules=o(d),this.schemas=o(h),this.id=m,this.transitiveModule=f}return Object.defineProperty(e.prototype,"identifier",{get:function(){return this.type},enumerable:!0,configurable:!0}),e.prototype.toSummary=function(){return{isSummary:!0,type:this.type,entryComponents:this.entryComponents,providers:this.providers,importedModules:this.importedModules,exportedModules:this.exportedModules,exportedDirectives:this.exportedDirectives,exportedPipes:this.exportedPipes,directiveLoaders:this.transitiveModule.directiveLoaders}},e.prototype.toInjectorSummary=function(){return{isSummary:!0,type:this.type,entryComponents:this.entryComponents,providers:this.providers,importedModules:this.importedModules,exportedModules:this.exportedModules}},e.prototype.toDirectiveSummary=function(){return{isSummary:!0,type:this.type,exportedDirectives:this.exportedDirective
 s,exportedPipes:this.exportedPipes,exportedModules:this.exportedModules,directiveLoaders:this.transitiveModule.directiveLoaders}},e}(),N=function(){function e(e,t,n,r,i,o){var s=this;this.modules=e,this.providers=t,this.entryComponents=n,this.directives=r,this.pipes=i,this.directiveLoaders=o,this.directivesSet=new Set,this.pipesSet=new Set,r.forEach(function(e){return s.directivesSet.add(e.reference)}),i.forEach(function(e){return s.pipesSet.add(e.reference)})}return e}(),j=function(){function e(e,t){var n=t.useClass,r=t.useValue,i=t.useExisting,o=t.useFactory,s=t.deps,a=t.multi;this.token=e,this.useClass=n,this.useValue=r,this.useExisting=i,this.useFactory=o,this.dependencies=s,this.multi=!!a}return e}()},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(11),i=n(40),o=n(17),s=n(88)("src"),a="toString",c=Function[a],u=(""+c).split(a);n(10).inspectSource=function(e){return c.call(e)},(e.exports=function(e,t,n,a){var c="function
 "==typeof n;c&&(o(n,"name")||i(n,"name",t)),e[t]!==n&&(c&&(o(n,s)||i(n,s,e[t]?""+e[t]:u.join(String(t)))),e===r?e[t]=n:a?e[t]?e[t]=n:i(e,t,n):(delete e[t],i(e,t,n)))})(Function.prototype,a,function(){return"function"==typeof this&&this[s]||c.call(this)})},function(e,t,n){var r=n(1),i=n(6),o=n(39),s=/"/g,a=function(e,t,n,r){var i=String(o(e)),a="<"+t;return""!==n&&(a+=" "+n+'="'+String(r).replace(s,"&quot;")+'"'),a+">"+i+"</"+t+">"};e.exports=function(e,t){var n={};n[e]=t(a),r(r.P+r.F*i(function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}),"String",n)}},function(e,t,n){"use strict";(function(e){function r(e){return e.name||typeof e}function i(e){return null!=e}function o(e){return null==e}function s(e){return e instanceof Date&&!isNaN(e.valueOf())}function a(e){if("string"==typeof e)return e;if(null==e)return""+e;if(e.overriddenName)return e.overriddenName;if(e.name)return e.name;var t=e.toString(),n=t.indexOf("\n");return n===-1?t:t.substring(0,n)}function 
 c(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function u(){if(!h)if(l.Symbol&&Symbol.iterator)h=Symbol.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),t=0;t<e.length;++t){var n=e[t];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(h=n)}return h}t.f=r,t.a=i,t.b=o,t.g=s,t.e=a,n.d(t,"h",function(){return d}),t.c=c,t.d=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 l;l="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:e:window;var p=l;p.assert=function(e){};var d=(Object.getPrototypeOf({}),function(){function e(){}return e.parseIntAutoRadix=function(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t},e.isNumeric=function(e){return!isNaN(e-parseFloat(e))},e}()),h=null}).call(t,n(43))},function(e,t,n){"use strict";function r(){throw new Error("unimplemented")}t.a=r,n.d(t,"b",function(){return o}),n.d(t,"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=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},o=function(e){function t(t){var n=e.call(this,t);this._nativeError=n}return i(t,e),Object.defineProperty(t.prototype,"message",{get:function(){return this._nativeError.message},set:function(e){this._nativeError.message=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this._nativeError.name},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"stack",{get:function(){return this._nativeError.stack},set:function(e){this._nativeError.stack=e},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return this._nativeError.toString()},t}(Error),s=function(e){function t(t,n){e.call(this,t+" caused by: "+(n instanceof Error?n.message:n)),this.originalError=n}return i(t,e),Object.defineProperty(t.prototype,"stack",{get:function(){
 return(this.originalError instanceof Error?this.originalError:this._nativeError).stack},enumerable:!0,configurable:!0}),t}(o)},function(e,t,n){var r=n(69),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){"use strict";var r=n(2);n.d(t,"c",function(){return o}),n.d(t,"b",function(){return s}),n.d(t,"d",function(){return a}),n.d(t,"e",function(){return i}),n.d(t,"a",function(){return c});var i,o=function(){function e(e,t,n,r){this.file=e,this.offset=t,this.line=n,this.col=r}return e.prototype.toString=function(){return n.i(r.b)(this.offset)?this.file.url+"@"+this.line+":"+this.col:this.file.url},e}(),s=function(){function e(e,t){this.content=e,this.url=t}return e}(),a=function(){function e(e,t,n){void 0===n&&(n=null),this.start=e,this.end=t,this.details=n}return e.prototype.toString=function(){return this.start.file.content.substring(this.start.offset,this.end.offset)},e}();!function(e){e[e.WARNING=0]="WARNING",e[e.FATAL=1]="FATAL"}(i||(i={}));va
 r c=function(){function e(e,t,n){void 0===n&&(n=i.FATAL),this.span=e,this.msg=t,this.level=n}return e.prototype.toString=function(){var e=this.span.start.file.content,t=this.span.start.offset,i="",o="";if(n.i(r.b)(t)){t>e.length-1&&(t=e.length-1);for(var s=t,a=0,c=0;a<100&&t>0&&(t--,a++,"\n"!=e[t]||3!=++c););for(a=0,c=0;a<100&&s<e.length-1&&(s++,a++,"\n"!=e[s]||3!=++c););var u=e.substring(t,this.span.start.offset)+"[ERROR ->]"+e.substring(this.span.start.offset,s+1);i=' ("'+u+'")'}return this.span.details&&(o=", "+this.span.details),""+this.msg+i+": "+this.span.start+o},e}()},function(e,t,n){"use strict";var r=n(105),i=n(159),o=n(73),s=n(402),a=n(162),c=n(161),u=n(160);n.d(t,"b",function(){return r.a}),n.d(t,"c",function(){return r.b}),n.d(t,"d",function(){return r.c}),n.d(t,"e",function(){return r.f}),n.d(t,"i",function(){return r.e}),n.d(t,"j",function(){return r.d}),n.d(t,"k",function(){return i.b}),n.d(t,"h",function(){return i.a}),n.d(t,"g",function(){return o.b}),n.d(t,"f",fun
 ction(){return s.a}),n.d(t,"l",function(){return a.c}),n.d(t,"m",function(){return c.a}),n.d(t,"a",function(){return u.a})},function(e,t,n){"use strict";var r=n(0);n.d(t,"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(e,t,n){var r=n(6);e.exports=function(e,t){return!!e&&r(function(){t?e.call(null,function(){},1):e.call(null)})}},function(e,t,n){var r=n(84),i=n(39);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(39);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";var r=n(91),i=n(625),o=n(620),s=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this.operator,o=i.toSubscriber(e,t,n);if(r?r.call(o,this):o.add(this._subscribe(o)),o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},e.prototype.forEach=function(e,t){var n=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,r){var i
 =n.subscribe(function(t){if(i)try{e(t)}catch(e){r(e),i.unsubscribe()}else e(t)},r,t)})},e.prototype._subscribe=function(e){return this.source.subscribe(e)},e.prototype[o.$$observable]=function(){return this},e.create=function(t){return new e(t)},e}();t.Observable=s},function(e,t,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 r(e){return n.i(a.b)(e.value)?u.d(e.value):e.identifierIsInstance?u.e(e.identifier).instantiate([],u.k(e.identifier,[],[u.m.Const])):u.e(e.identifier)}function i(e){if(0===e.length)return u.e(n.i(c.d)(c.b.EMPTY_INLINE_ARRAY));var t=Math.log(e.length)/Math.log(2),r=Math.ceil(t),i=r<c.b.inlineArrays.length?c.b.inlineArrays[r]:c.b.InlineArrayDynamic,o=n.i(c.d)(i);return u.e(o).instantiate([u.d(e.length)].concat(e))}function o(e,t,r,i){i.fields.push(new u.n(r.name,null));var o=t<c.b.pureProxies.length?c.b.pureProxies[t]:null;if(!o)throw new Error("Unsupported number of argument for pure functions: "+t);i.ctorStmts.push(u.o.prop(r.name).set(u.e(n.i(c.d)(o)).callFn([e])).toStmt())}function s(e,t){var r=Object.keys(e.runtime).find(function(n){return e.runtime[n]===t});if(!r)throw new Error("Unknown enum value "+t+" in "+e.name);return u.e(n.i(c.e)(n.i(c.d)(e),r))}var a=n(2),c=n(9),u=n(5);t.c=r,t.d=i,t.a=o,t.b=s},function(e,t,n){"use strict";var r=n(219);n.d(t,"b",function(){return
  i}),n.d(t,"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 e(e,t){this.start=e,this.end=t}return e.fromArray=function(t){return t?(n.i(r.a)("interpolation",t),new e(t[0],t[1])):o},e}(),o=new i("{{","}}")},function(e,t,n){"use strict";function r(e,t,n){void 0===n&&(n=null);var r=[],i=e.visit?function(t){return e.visit(t,n)||t.visit(e,n)}:function(t){return t.visit(e,n)};return t.forEach(function(e){var t=i(e);t&&r.push(t)}),r}n.d(t,"i",function(){return o}),n.d(t,"h",function(){return s}),n.d(t,"j",function(){return a}),n.d(t,"d",function(){return c}),n.d(t,"f",function(){return u}),n.d(t,"n",function(){return l}),n.d(t,"c",function(){return p}),n.d(t,"m",function(){return d}),n.d(t,"l",function(){return h}),n.d(t,"p",function(){return f}),n.d(t,"o",function(){return m}),n.d(t,"b",function(){return g}),n.d(t,"a",function(){return i}),n.d(t,"k",function(){return y}),n.d(t,"e",function(){return v}),t.g=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 i,o=function(){function e(e,t,n){this.value=e,this.ngContentIndex=t,this.sourceSpan=n}return e.prototype.visit=function(e,t){return e.visitText(this,t)},e}(),s=function(){function e(e,t,n){this.value=e,this.ngContentIndex=t,this.sourceSpan=n}return e.prototype.visit=function(e,t){return e.visitBoundText(this,t)},e}(),a=function(){function e(e,t,n){this.name=e,this.value=t,this.sourceSpan=n}return e.prototype.visit=function(e,t){return e.visitAttr(this,t)},e}(),c=function(){function e(e,t,n,r,i,o,s){this.name=e,this.type=t,this.securityContext=n,this.needsRuntimeSecurityContext=r,this.value=i,this.unit=o,this.sourceSpan=s}return e.prototype.visit=function(e,t){return e.visitElementProperty(this,t)},Object.defineProperty(e.prototype,"isAnimation",{get:function(){return this.type===v.Animation},enumerable:!0,configurable:!0}),e}(),u=function(){function e(e,t,n,r,i){this.name=e,this.target=t,this.phase=n,this.handler=r,this.sourceSpan=i}return e.calcFullName=function(e,t,n){return t
 ?t+":"+e:n?"@"+e+"."+n:e},e.prototype.visit=function(e,t){return e.visitEvent(this,t)},Object.defineProperty(e.prototype,"fullName",{get:function(){return e.calcFullName(this.name,this.target,this.phase)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAnimation",{get:function(){return!!this.phase},enumerable:!0,configurable:!0}),e}(),l=function(){function e(e,t,n){this.name=e,this.value=t,this.sourceSpan=n}return e.prototype.visit=function(e,t){return e.visitReference(this,t)},e}(),p=function(){function e(e,t,n){this.name=e,this.value=t,this.sourceSpan=n}return e.prototype.visit=function(e,t){return e.visitVariable(this,t)},e}(),d=function(){function e(e,t,n,r,i,o,s,a,c,u,l,p){this.name=e,this.attrs=t,this.inputs=n,this.outputs=r,this.references=i,this.directives=o,this.providers=s,this.hasViewContainer=a,this.children=c,this.ngContentIndex=u,this.sourceSpan=l,this.endSourceSpan=p}return e.prototype.visit=function(e,t){return e.visitElement(this,t)},e}(),h=func
 tion(){function e(e,t,n,r,i,o,s,a,c,u){this.attrs=e,this.outputs=t,this.references=n,this.variables=r,this.directives=i,this.providers=o,this.hasViewContainer=s,this.children=a,this.ngContentIndex=c,this.sourceSpan=u}return e.prototype.visit=function(e,t){return e.visitEmbeddedTemplate(this,t)},e}(),f=function(){function e(e,t,n,r){this.directiveName=e,this.templateName=t,this.value=n,this.sourceSpan=r}return e.prototype.visit=function(e,t){return e.visitDirectiveProperty(this,t)},e}(),m=function(){function e(e,t,n,r,i){this.directive=e,this.inputs=t,this.hostProperties=n,this.hostEvents=r,this.sourceSpan=i}return e.prototype.visit=function(e,t){return e.visitDirective(this,t)},e}(),g=function(){function e(e,t,n,r,i,o,s){this.token=e,this.multiProvider=t,this.eager=n,this.providers=r,this.providerType=i,this.lifecycleHooks=o,this.sourceSpan=s}return e.prototype.visit=function(e,t){return null},e}();!function(e){e[e.PublicService=0]="PublicService",e[e.PrivateService=1]="PrivateServi
 ce",e[e.Component=2]="Component",e[e.Directive=3]="Directive",e[e.Builtin=4]="Builtin"}(i||(i={}));var v,y=function(){function e(e,t,n){this.index=e,this.ngContentIndex=t,this.sourceSpan=n}return e.prototype.visit=function(e,t){return e.visitNgContent(this,t)},e}();!function(e){e[e.Property=0]="Property",e[e.Attribute=1]="Attribute",e[e.Class=2]="Class",e[e.Style=3]="Style",e[e.Animation=4]="Animation"}(v||(v={}))},function(e,t,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 r(e){return null==e||"string"==typeof e&&0===e.length}function i(e){return n.i(d.a)(e)?e:u.toPromise.call(e)}function o(e,t){return t.map(function(t){return t(e)})}function s(e,t){return t.map(function(t){return t(e)})}function a(e){var t=e.reduce(function(e,t){return n.i(p.c)(t)?l.a.merge(e,t):e},{});return 0===Object.keys(t).length?null:t}var c=n(0),u=n(342),l=(n.n(u),n(272)),p=n(64),d=n(274);n.d(t,"b",function(){return h}),n.d(t,"c",function(){return f}),n.d(t,"a",function(){return m});var h=new c.OpaqueToken("NgValidators"),f=new c.OpaqueToken("NgAsyncValidators"),m=function(){function e(){}return e.required=function(e){return r(e.value)?{required:!0}:null},e.minLength=function(e){return function(t){if(r(t.value))return null;var n="string"==typeof t.value?t.value.length:0;return n<e?{minlength:{requiredLength:e,actualLength:n}}:null}},e.maxLength=function(e){return function(t){var n="string"==typeof t.value?t.value.length:0;return n>e?{maxlength:{requiredLength:e,actual
 Length:n}}:null}},e.pattern=function(t){if(!t)return e.nullValidator;var n,i;return"string"==typeof t?(i="^"+t+"$",n=new RegExp(i)):(i=t.toString(),n=t),function(e){if(r(e.value))return null;var t=e.value;return n.test(t)?null:{pattern:{requiredPattern:i,actualValue:t}}}},e.nullValidator=function(e){return null},e.compose=function(e){if(!e)return null;var t=e.filter(p.c);return 0==t.length?null:function(e){return a(o(e,t))}},e.composeAsync=function(e){if(!e)return null;var t=e.filter(p.c);return 0==t.length?null:function(e){var n=s(e,t).map(i);return Promise.all(n).then(a)}},e}()},function(e,t,n){"use strict";(function(e){function r(e){return null!=e}function i(e){return null==e}function o(e){if("string"==typeof e)return e;if(null==e)return""+e;if(e.overriddenName)return e.overriddenName;if(e.name)return e.name;var t=e.toString(),n=t.indexOf("\n");return n===-1?t:t.substring(0,n)}function s(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function a(e,t,n){for(var r=t.
 split("."),i=e;r.length>1;){var o=r.shift();i=i.hasOwnProperty(o)&&null!=i[o]?i[o]:i[o]={}}void 0!==i&&null!==i||(i={}),i[r.shift()]=n}function c(){if(!p)if(u.Symbol&&Symbol.iterator)p=Symbol.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),t=0;t<e.length;++t){var n=e[t];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(p=n)}return p}n.d(t,"d",function(){return l}),t.a=r,t.b=i,t.g=o,t.e=s,t.c=a,t.f=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;u="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:e:window;var l=u;l.assert=function(e){};var p=(Object.getPrototypeOf({}),function(){function e(){}return e.parseIntAutoRadix=function(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t},e.isNumeric=function(e){return!isNaN(e-parseFloat(e))},e}(),null)}).call(t,n(43))},function(e,t,n){var r=n(1),i=n(10),o=n(6);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],s={};s[e]=t(n),r(r.S+r.F*o(function(){n(1)}),"Object",s)}},function(e,t,n){"use strict";function r(e){return e.replace(p,function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return e[1].toUpperCase()})}function i(e,t){return s(e,":",t)}function o(e,t){return s(e,".",t)}function s(e,t,n){var r=e.indexOf(t);return r==-1?n:[e.slice(0,r).trim(),e.slice(r+1).trim()]}function a(e){return e.replace(/\W/g,"_")}function c(e,t,r){return Array.isArray(e
 )?t.visitArray(e,r):n.i(u.g)(e)?t.visitStringMap(e,r):n.i(u.a)(e)||n.i(u.h)(e)?t.visitPrimitive(e,r):t.visitOther(e,r)}var u=n(2);n.d(t,"f",function(){return l}),t.h=r,t.b=i,t.c=o,t.a=a,t.d=c,n.d(t,"g",function(){return d}),n.d(t,"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 l="",p=/-+([a-z0-9])/g,d=function(){function e(){}return e.prototype.visitArray=function(e,t){var n=this;return e.map(function(e){return c(e,n,t)})},e.prototype.visitStringMap=function(e,t){var n=this,r={};return Object.keys(e).forEach(function(i){r[i]=c(e[i],n,t)}),r},e.prototype.visitPrimitive=function(e,t){return e},e.prototype.visitOther=function(e,t){return e},e}(),h=function(){function e(e,t){void 0===t&&(t=null),this.syncResult=e,this.asyncResult=t,t||(this.asyncResult=Promise.resolve(e))}return e}()},function(e,t,n){"use strict";var r=n(172);n.d(t,"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(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},o=function(e){function t(){e.apply(this,arguments)}return i(t,e),Object.defineProperty(t.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),t}(r.a)},function(e,t,n){var r=n(66),i=n(84),o=n(28),s=n(22),a=n(477);e.exports=function(e,t){var n=1==e,c=2==e,u=3==e,l=4==e,p=6==e,d=5==e||p,h=t||a;return function(t,a,f){for(var m,g,v=o(t),y=i(v),b=r(a,f,3),w=s(y.length),_=0,k=n?h(t,w):c?h(t,0):void 0;w>_;_++)if((d||_ in y)&&(m=y[_],g=b(m,_,v),e))if(n)k[_]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return _;case 2:k.push(m)}else if(l)return!1;return p?-1:u||l?l:k}}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method o
 n  "+e);return e}},function(e,t,n){var r=n(13),i=n(57);e.exports=n(15)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(327),i=n(1),o=n(128)("metadata"),s=o.store||(o.store=new(n(598))),a=function(e,t,n){var i=s.get(e);if(!i){if(!n)return;s.set(e,i=new r)}var o=i.get(t);if(!o){if(!n)return;i.set(t,o=new r)}return o},c=function(e,t,n){var r=a(t,n,!1);return void 0!==r&&r.has(e)},u=function(e,t,n){var r=a(t,n,!1);return void 0===r?void 0:r.get(e)},l=function(e,t,n,r){a(n,r,!0).set(e,t)},p=function(e,t){var n=a(e,t,!1),r=[];return n&&n.forEach(function(e,t){r.push(t)}),r},d=function(e){return void 0===e||"symbol"==typeof e?e:String(e)},h=function(e){i(i.S,"Reflect",e)};e.exports={store:s,map:a,has:c,get:u,set:l,keys:p,key:d,exp:h}},function(e,t,n){var r=n(17),i=n(28),o=n(206)("IE_PROTO"),s=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e
 .constructor.prototype:e instanceof Object?s:null}},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";var r=n(355),i=n(20);n.d(t,"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(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},s=function(e){function t(t,r){e.call(this,"Invalid argument '"+r+"' for pipe '"+n.i(i.e)(t)+"'")}return o(t,e),t}(r.a)},function(e,t,n){"use strict";function r(e,t,n){void 0===n&&(n=null);var r=[],i=e.visit?function(t){return e.visit(t,n)||t.visit(e,n)}:function(t){return t.visit(e,n)};return t.forEach(function(e){var t=i(e);t&&r.push(t)}),r}n.d(t,"d",function(){return i}),n.d(t,"b",function(){return o}),n.d(t,"c",function(){return s}),n.d(t,"f",function(){return a}),n.d(t,"e",function(){return c}),n.d(t,"a",function(){return u}),t.g=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 i=function(){function e(e,t){this.value=e,this.sourceSpan=t}return e.prototype.visit=function(e,t){return e.visitText(this,t)},e}(),o=function(){function e(e,t,n,r,i){this.switchValue=e,this.type=t,this.cases=n,this.sourceSpan=r,this.switchValueSourceSpan=i}return e.prototype.visit=function(e,t){return e.visitExpansion(this,t)},e}(),s=function(){function e(e,t,n,r,i){this.value=e,this.expression=t,this.sourceSpan=n,this.valueSourceSpan=r,this.expSourceSpan=i}return e.prototype.visit=function(e,t){return e.visitExpansionCase(this,t)},e}(),a=function(){function e(e,t,n,r){this.name=e,this.value=t,this.sourceSpan=n,this.valueSpan=r}return e.prototype.visit=function(e,t){return e.visitAttribute(this,t)},e}(),c=function(){function e(e,t,n,r,i,o){this.name=e,this.attrs=t,this.children=n,this.sourceSpan=r,this.startSourceSpan=i,this.endSourceSpan=o}return e.prototype.visit=function(e,t){return e.visitElement(this,t)},e}(),u=function(){function e(e,t){this.value=e,this.sourceSpan=t}retu
 rn e.prototype.visit=function(e,t){return e.visitComment(this,t)},e}()},function(e,t,n){"use strict";n.d(t,"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 e(){}return e}()},function(e,t,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 r(e,t){return t.path.concat([e])}function i(e,t){e||c(t,"Cannot find control with"),t.valueAccessor||c(t,"No value accessor for form control with"),e.validator=m.a.compose([e.validator,t.validator]),e.asyncValidator=m.a.composeAsync([e.asyncValidator,t.asyncValidator]),t.valueAccessor.writeValue(e.value),t.valueAccessor.registerOnChange(function(n){t.viewToModelUpdate(n),e.markAsDirty(),e.setValue(n,{emitModelToViewChange:!1})}),t.valueAccessor.registerOnTouched(function(){return e.markAsTouched()}),e.registerOnChange(function(e,n){t.valueAccessor.writeValue(e),n&&t.viewToModelUpdate(e)}),t.valueAccessor.setDisabledState&&e.registerOnDisabledChange(function(e){t.valueAccessor.setDisabledState(e)}),t._rawValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(function(){return e.updateValueAndValidity()})}),t._rawAsyncValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(function(){return e.updateValueAndValid
 ity()})})}function o(e,t){t.valueAccessor.registerOnChange(function(){return a(t)}),t.valueAccessor.registerOnTouched(function(){return a(t)}),t._rawValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)}),t._rawAsyncValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)}),e&&e._clearChangeFns()}function s(e,t){n.i(f.f)(e)&&c(t,"Cannot find control with"),e.validator=m.a.compose([e.validator,t.validator]),e.asyncValidator=m.a.composeAsync([e.asyncValidator,t.asyncValidator])}function a(e){return c(e,"There is no FormControl instance attached to form control element with")}function c(e,t){var n;throw n=e.path.length>1?"path: '"+e.path.join(" -> ")+"'":e.path[0]?"name: '"+e.path+"'":"unspecified name attribute",new Error(t+" "+n)}function u(e){return n.i(f.c)(e)?m.a.compose(e.map(y.a)):null}function l(e){return n.i(f.c)(e)?m.a.composeAsync(e.map(y.b)):null}function p(e,t){if(!e.hasOwnProperty("model"))return
 !1;var r=e.model;return!!r.isFirstChange()||!n.i(f.e)(t,r.currentValue)}function d(e){return E.some(function(t){return e.constructor===t})}function h(e,t){if(!t)return null;var n,r,i;return t.forEach(function(t){t.constructor===v.a?n=t:d(t)?(r&&c(e,"More than one built-in value accessor matches form control with"),r=t):(i&&c(e,"More than one custom value accessor matches form control with"),i=t)}),i?i:r?r:n?n:(c(e,"No valid value accessor for form control with"),null)}var f=n(64),m=n(33),g=n(111),v=n(112),y=n(420),b=n(175),w=n(78),_=n(176),k=n(115),x=n(116);t.a=r,t.d=i,t.h=o,t.e=s,t.b=u,t.c=l,t.g=p,t.f=h;var E=[g.a,_.a,b.a,k.a,x.a,w.a]},function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"c",function(){return i}),n.d(t,"a",function(){return o}),n.d(t,"e",function(){return s}),n.d(t,"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;!function(e){e[e.Get=0]="Get",e[e.Post=1]="Post",e[e.Put=2]="Put",e[e.Delete=3]="Delete",e[e.Options=4]="Options",e[e.Head=5]="Head",e[e.Patch=6]="Patch"}(r||(r={}));var i;!function(e){e[e.Unsent=0]="Unsent",e[e.Open=1]="Open",e[e.HeadersReceived=2]="HeadersReceived",e[e.Loading=3]="Loading",e[e.Done=4]="Done",e[e.Cancelled=5]="Cancelled"}(i||(i={}));var o;!function(e){e[e.Basic=0]="Basic",e[e.Cors=1]="Cors",e[e.Default=2]="Default",e[e.Error=3]="Error",e[e.Opaque=4]="Opaque"}(o||(o={}));var s;!function(e){e[e.NONE=0]="NONE",e[e.JSON=1]="JSON",e[e.FORM=2]="FORM",e[e.FORM_DATA=3]="FORM_DATA",e[e.TEXT=4]="TEXT",e[e.BLOB=5]="BLOB",e[e.ARRAY_BUFFER=6]="ARRAY_BUFFER"}(s||(s={}));var a;!function(e){e[e.Text=0]="Text",e[e.Json=1]="Json",e[e.ArrayBuffer=2]="ArrayBuffer",e[e.Blob=3]="Blob"}(a||(a={}))},function(e,t,n){var r=n(88)("meta"),i=n(7),o=n(17),s=n(13).f,a=0,c=Object.isExtensible||function(){return!0},u=!n(6)(function(){return c(Object.preventExtensions({}))}),l=function(e){s(e
 ,r,{value:{i:"O"+ ++a,w:{}}})},p=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!c(e))return"F";if(!t)return"E";l(e)}return e[r].i},d=function(e,t){if(!o(e,r)){if(!c(e))return!0;if(!t)return!1;l(e)}return e[r].w},h=function(e){return u&&f.NEED&&c(e)&&!o(e,r)&&l(e),e},f=e.exports={KEY:r,NEED:!1,fastKey:p,getWeak:d,onFreeze:h}},function(e,t,n){var r=n(126),i=n(57),o=n(27),s=n(58),a=n(17),c=n(308),u=Object.getOwnPropertyDescriptor;t.f=n(15)?u:function(e,t){if(e=o(e),t=s(t,!0),c)try{return u(e,t)}catch(e){}if(a(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";function r(e){var t=b.a("changed"),r=[t.set(b.o.prop(A)).toDeclStmt(),b.o.prop(A).set(b.d(!1)).toStmt()],i=[];if(e.genChanges){var o=[];e.ngOnChanges&&o.push(b.o.prop(C).callMethod("ngOnChanges",[b.o.prop(S)]).toStmt()),e.compilerConfig.logBindingUpdate&&o.push(b.e(n.i(g.d)(g.b.setBindingDebugInfoForChanges)).callFn([M.prop("renderer"),P,b.o.prop(S)]).toStmt()),o.pus
 h(I),i.push(new b.g(t,o))}e.ngOnInit&&i.push(new b.g(M.prop("numberOfChecks").identical(new b.F(0)),[b.o.prop(C).callMethod("ngOnInit",[]).toStmt()])),e.ngDoCheck&&i.push(b.o.prop(C).callMethod("ngDoCheck",[]).toStmt()),i.length>0&&r.push(new b.g(b.u(O),i)),r.push(new b.i(t)),e.methods.push(new b.B("ngDoCheck",[new b.j(M.name,b.k(n.i(g.d)(g.b.AppView),[b.l])),new b.j(P.name,b.l),new b.j(O.name,b.E)],r,b.E))}function i(e,t){var r=n.i(p.a)(t),i=[b.o.prop(A).set(b.d(!0)).toStmt(),b.o.prop(C).prop(e).set(F).toStmt()];t.genChanges&&i.push(b.o.prop(S).key(b.d(e)).set(b.e(n.i(g.d)(g.b.SimpleChange)).instantiate([r.expression,F])).toStmt());var o=n.i(p.b)({currValExpr:F,forceUpdate:L,stmts:[]},r.expression,O,i);t.methods.push(new b.B("check_"+e,[new b.j(F.name,b.l),new b.j(O.name,b.E),new b.j(L.name,b.E)],o))}function o(e,t){var r=[],i=[new b.j(M.name,b.k(n.i(g.d)(g.b.AppView),[b.l])),new b.j(R.name,b.k(n.i(g.d)(g.b.AppView),[b.l])),new b.j(P.name,b.l),new b.j(O.name,b.E)];e.forEach(functio
 n(e,o){var s=n.i(p.a)(t),a=n.i(d.a)(t,null,b.o.prop(C),e.value,s.bindingId);if(a){var c;e.needsRuntimeSecurityContext&&(c=b.a("secCtx_"+i.length),i.push(new b.j(c.name,b.k(n.i(g.d)(g.b.SecurityContext)))));var u;if(e.isAnimation){var l=n.i(h.a)(M,R,e,b.o.prop(T).or(b.e(n.i(g.d)(g.b.noop))),P,a.currValExpr,s.expression),f=l.updateStmts,m=l.detachStmts;u=f,(v=t.detachStmts).push.apply(v,m)}else u=n.i(h.b)(M,e,P,a.currValExpr,t.compilerConfig.logBindingUpdate,c);r.push.apply(r,n.i(p.b)(a,s.expression,O,u));var v}}),t.methods.push(new b.B("checkHost",i,r))}function s(e,t){var r=b.a("result"),i=[r.set(b.d(!0)).toDeclStmt(b.E)];e.forEach(function(e,o){var s=n.i(d.b)(t,null,b.o.prop(C),e.handler,"sub_"+o),a=s.stmts;s.preventDefault&&a.push(r.set(s.preventDefault.and(r)).toStmt()),i.push(new b.g(D.equals(b.d(e.fullName)),a))}),i.push(new b.i(r)),t.methods.push(new b.B("handleEvent",[new b.j(D.name,b.G),new b.j(d.c.event.name,b.l)],i,b.E))}function a(e,t){var r=[new b.j(M.name,b.k(n.i(g.d)(g
 .b.AppView),[b.l])),new b.j(T,b.l)],i=[b.o.prop(T).set(b.a(T)).toStmt()];Object.keys(e.outputs).forEach(function(n,o){var s=e.outputs[n],a="emit"+o;r.push(new b.j(a,b.E));var c="subscription"+o;t.fields.push(new b.n(c,b.l)),i.push(new b.g(b.a(a),[b.o.prop(c).set(b.o.prop(C).prop(n).callMethod(b.z.SubscribeObservable,[b.a(T).callMethod(b.z.Bind,[M,b.d(s)])])).toStmt()])),t.destroyStmts.push(b.o.prop(c).and(b.o.prop(c).callMethod("unsubscribe",[])).toStmt())}),t.methods.push(new b.B("subscribe",r,i))}function c(e,t,n){var r=[],i=new x.a(t,v.a,n,[],r),o=e.type.moduleUrl?"in Directive "+e.type.name+" in "+e.type.moduleUrl:"in Directive "+e.type.name,s=new w.b("",o),a=new w.d(new w.c(s,null,null,null),new w.c(s,null,null,null)),c=i.createDirectiveHostPropertyAsts(e.toSummary(),a),u=i.createDirectiveHostEventAsts(e.toSummary(),a);return new B(c,u,r)}function u(e,t){var n=e.filter(function(e){return e.level===w.e.WARNING}),r=e.filter(function(e){return e.level===w.e.FATAL});if(n.length>0&&
 this._console.warn("Directive parse warnings:\n"+n.join("\n")),r.length>0)throw new Error("Directive parse errors:\n"+r.join("\n"))}var l=n(0),p=n(220),d=n(70),h=n(221),f=n(59),m=n(71),g=n(9),v=n(31),y=n(148),b=n(5),w=n(23),_=n(12),k=n(46),x=n(239);n.d(t,"a",function(){return N}),n.d(t,"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 E=function(){function e(e,t){this.statements=e,this.dirWrapperClassVar=t}return e}(),C="context",S="_changes",A="_changed",T="_eventHandler",F=b.a("currValue"),O=b.a("throwOnChange"),L=b.a("forceUpdate"),M=b.a("view"),R=b.a("componentView"),P=b.a("el"),D=b.a("eventName"),I=b.o.prop(S).set(b.b([])).toStmt(),N=function(){function e(e,t,n,r){this.compilerConfig=e,this._exprParser=t,this._schemaRegistry=n,this._console=r}return e.dirWrapperClassName=function(e){return"Wrapper_"+e.name},e.prototype.compile=function(e){var t=c(e,this._exprParser,this._schemaRegistry);u(t.errors,this._console);var n=new j(this.compilerConfig,e);Object.keys(e.inputs).forEach(function(e){i(e,n)}),r(n),o(t.hostProps,n),s(t.hostListeners,n),a(e,n);var l=n.build();return new E([l],l.name)},e.decorators=[{type:l.Injectable}],e.ctorParameters=[{type:f.a},{type:m.a},{type:k.a},{type:_.C}],e}(),j=function(){function e(e,t){this.compilerConfig=e,this.dirMeta=t,this.fields=[],this.getters=[],this.methods=[],this.
 ctorStmts=[],this.detachStmts=[],this.destroyStmts=[];var n=t.type.lifecycleHooks;this.genChanges=n.indexOf(_.G.OnChanges)!==-1||this.compilerConfig.logBindingUpdate,this.ngOnChanges=n.indexOf(_.G.OnChanges)!==-1,this.ngOnInit=n.indexOf(_.G.OnInit)!==-1,this.ngDoCheck=n.indexOf(_.G.DoCheck)!==-1,this.ngOnDestroy=n.indexOf(_.G.OnDestroy)!==-1,this.ngOnDestroy&&this.destroyStmts.push(b.o.prop(C).callMethod("ngOnDestroy",[]).toStmt())}return e.prototype.build=function(){for(var e=[],t=0;t<this.dirMeta.type.diDeps.length;t++)e.push("p"+t);var r=[new b.B("ngOnDetach",[new b.j(M.name,b.k(n.i(g.d)(g.b.AppView),[b.l])),new b.j(R.name,b.k(n.i(g.d)(g.b.AppView),[b.l])),new b.j(P.name,b.l)],this.detachStmts),new b.B("ngOnDestroy",[],this.destroyStmts)],i=[new b.n(T,b.D,[b.p.Private]),new b.n(C,b.k(this.dirMeta.type)),new b.n(A,b.E,[b.p.Private])],o=[b.o.prop(A).set(b.d(!1)).toStmt()];return this.genChanges&&(i.push(new b.n(S,new b.x(b.l),[b.p.Private])),o.push(I)),o.push(b.o.prop(C).set(b.e(th
 is.dirMeta.type).instantiate(e.map(function(e){return b.a(e)}))).toStmt()),n.i(y.a)({name:N.dirWrapperClassName(this.dirMeta.type),ctorParams:e.map(function(e){return new b.j(e,b.l)}),builders:[{fields:i,ctorStmts:o,methods:r},this]})},e}(),B=function(){function e(e,t,n){this.hostProps=e,this.hostListeners=t,this.errors=n}return e}(),$=function(){function e(){}return e.create=function(e,t){return b.e(e).instantiate(t,b.k(e))},e.context=function(e){return e.prop(C)},e.ngDoCheck=function(e,t,n,r){return e.callMethod("ngDoCheck",[t,n,r])},e.checkHost=function(e,t,n,r,i,o,s){return e.length?[t.callMethod("checkHost",[n,r,i,o].concat(s)).toStmt()]:[]},e.ngOnDetach=function(e,t,n,r,i){return e.some(function(e){return e.isAnimation})?[t.callMethod("ngOnDetach",[n,r,i]).toStmt()]:[]},e.ngOnDestroy=function(e,t){return e.type.lifecycleHooks.indexOf(_.G.OnDestroy)!==-1||Object.keys(e.outputs).length>0?[t.callMethod("ngOnDestroy",[]).toStmt()]:[]},e.subscribe=function(e,t,n,r,i,o){var s=!1,a=[
 ];return Object.keys(e.outputs).forEach(function(t){var r=e.outputs[t],i=n.indexOf(r)>-1;s=s||i,a.push(b.d(i))}),t.forEach(function(e){e.isAnimation&&n.length>0&&(s=!0)}),s?[r.callMethod("subscribe",[i,o].concat(a)).toStmt()]:[]},e.handleEvent=function(e,t,n,r){return t.callMethod("handleEvent",[n,r])},e}()},function(e,t,n){"use strict";function r(e){if(":"!=e[0])return[null,e];var t=e.indexOf(":",1);if(t==-1)throw new Error('Unsupported format "'+e+'" expecting ":namespace:name"');return[e.slice(1,t),e.slice(t+1)]}function i(e){return null===e?null:r(e)[0]}function o(e,t){return e?":"+e+":"+t:t}n.d(t,"b",function(){return s}),t.e=r,t.c=i,t.d=o,n.d(t,"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 s;!function(e){e[e.RAW_TEXT=0]="RAW_TEXT",e[e.ESCAPABLE_RAW_TEXT=1]="ESCAPABLE_RAW_TEXT",e[e.PARSABLE_DATA=2]="PARSABLE_DATA"}(s||(s={}));var a={Aacute:"�",aacute:"�",Acirc:"�",acirc:"�",acute:"�",AElig:"�",aelig:"�",Agrave:"�",agrave:"�",alefsym:"\u2135",Alpha:"\u0391",alpha:"\u03b1",amp:"&",and:"\u2227",ang:"\u2220",apos:"'",Aring:"�",aring:"�",asymp:"\u2248",Atilde:"�",atilde:"�",Auml:"�",auml:"�",bdquo:"\u201e",Beta:"\u0392",beta:"\u03b2",brvbar:"�",bull:"\u2022",cap:"\u2229",Ccedil:"�",ccedil:"�",cedil:"�",cent:"�",Chi:"\u03a7",chi:"\u03c7",circ:"\u02c6",clubs:"\u2663",cong:"\u2245",copy:"�",crarr:"\u21b5",cup:"\u222a",curren:"�",dagger:"\u2020",Dagger:"\u2021",darr:"\u2193",dArr:"\u21d3",deg:"�",Delta:"\u0394",delta:"\u03b4",diams:"\u2666",divide:"�",Eacute:"�",eacute:"�",Ecirc:"�",ecirc:"�",Egrave:"�",egrave:"�",empty:"\u2205",emsp:"\u2003",ensp:"\u2002",Epsilon:"\u0395",epsilon:"\u03b5",e

<TRUNCATED>

[6/7] knox git commit: KNOX-749 Initial admin UI source project and productized distribution

Posted by su...@apache.org.
http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/assets/vkbeautify.js
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/assets/vkbeautify.js b/gateway-applications/src/main/resources/applications/admin-ui/app/assets/vkbeautify.js
new file mode 100644
index 0000000..076c3d5
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/assets/vkbeautify.js
@@ -0,0 +1,357 @@
+/**
+* vkBeautify - javascript plugin to pretty-print or minify text in XML, JSON, CSS and SQL formats.
+*  
+* Version - 0.99.00.beta 
+* Copyright (c) 2012 Vadim Kiryukhin
+* vkiryukhin @ gmail.com
+* http://www.eslinstructor.net/vkbeautify/
+* 
+* MIT license:
+*   http://www.opensource.org/licenses/mit-license.php
+*
+*   Pretty print
+*
+*        vkbeautify.xml(text [,indent_pattern]);
+*        vkbeautify.json(text [,indent_pattern]);
+*        vkbeautify.css(text [,indent_pattern]);
+*        vkbeautify.sql(text [,indent_pattern]);
+*
+*        @text - String; text to beatufy;
+*        @indent_pattern - Integer | String;
+*                Integer:  number of white spaces;
+*                String:   character string to visualize indentation ( can also be a set of white spaces )
+*   Minify
+*
+*        vkbeautify.xmlmin(text [,preserve_comments]);
+*        vkbeautify.jsonmin(text);
+*        vkbeautify.cssmin(text [,preserve_comments]);
+*        vkbeautify.sqlmin(text);
+*
+*        @text - String; text to minify;
+*        @preserve_comments - Bool; [optional];
+*                Set this flag to true to prevent removing comments from @text ( minxml and mincss functions only. )
+*
+*   Examples:
+*        vkbeautify.xml(text); // pretty print XML
+*        vkbeautify.json(text, 4 ); // pretty print JSON
+*        vkbeautify.css(text, '. . . .'); // pretty print CSS
+*        vkbeautify.sql(text, '----'); // pretty print SQL
+*
+*        vkbeautify.xmlmin(text, true);// minify XML, preserve comments
+*        vkbeautify.jsonmin(text);// minify JSON
+*        vkbeautify.cssmin(text);// minify CSS, remove comments ( default )
+*        vkbeautify.sqlmin(text);// minify SQL
+*
+*/
+
+(function() {
+
+function createShiftArr(step) {
+
+	var space = '    ';
+	
+	if ( isNaN(parseInt(step)) ) {  // argument is string
+		space = step;
+	} else { // argument is integer
+		switch(step) {
+			case 1: space = ' '; break;
+			case 2: space = '  '; break;
+			case 3: space = '   '; break;
+			case 4: space = '    '; break;
+			case 5: space = '     '; break;
+			case 6: space = '      '; break;
+			case 7: space = '       '; break;
+			case 8: space = '        '; break;
+			case 9: space = '         '; break;
+			case 10: space = '          '; break;
+			case 11: space = '           '; break;
+			case 12: space = '            '; break;
+		}
+	}
+
+	var shift = ['\n']; // array of shifts
+	for(ix=0;ix<100;ix++){
+		shift.push(shift[ix]+space); 
+	}
+	return shift;
+}
+
+function vkbeautify(){
+	this.step = '\t'; // 4 spaces
+	this.shift = createShiftArr(this.step);
+};
+
+vkbeautify.prototype.xml = function(text,step) {
+
+	var ar = text.replace(/>\s{0,}</g,"><")
+				 .replace(/</g,"~::~<")
+				 .replace(/\s*xmlns\:/g,"~::~xmlns:")
+				 .replace(/\s*xmlns\=/g,"~::~xmlns=")
+				 .split('~::~'),
+		len = ar.length,
+		inComment = false,
+		deep = 0,
+		str = '',
+		ix = 0,
+		shift = step ? createShiftArr(step) : this.shift;
+
+		for(ix=0;ix<len;ix++) {
+			// start comment or <![CDATA[...]]> or <!DOCTYPE //
+			if(ar[ix].search(/<!/) > -1) { 
+				str += shift[deep]+ar[ix];
+				inComment = true; 
+				// end comment  or <![CDATA[...]]> //
+				if(ar[ix].search(/-->/) > -1 || ar[ix].search(/\]>/) > -1 || ar[ix].search(/!DOCTYPE/) > -1 ) { 
+					inComment = false; 
+				}
+			} else 
+			// end comment  or <![CDATA[...]]> //
+			if(ar[ix].search(/-->/) > -1 || ar[ix].search(/\]>/) > -1) { 
+				str += ar[ix];
+				inComment = false; 
+			} else 
+			// <elm></elm> //
+			if( /^<\w/.exec(ar[ix-1]) && /^<\/\w/.exec(ar[ix]) &&
+				/^<[\w:\-\.\,]+/.exec(ar[ix-1]) == /^<\/[\w:\-\.\,]+/.exec(ar[ix])[0].replace('/','')) { 
+				str += ar[ix];
+				if(!inComment) deep--;
+			} else
+			 // <elm> //
+			if(ar[ix].search(/<\w/) > -1 && ar[ix].search(/<\//) == -1 && ar[ix].search(/\/>/) == -1 ) {
+				str = !inComment ? str += shift[deep++]+ar[ix] : str += ar[ix];
+			} else 
+			 // <elm>...</elm> //
+			if(ar[ix].search(/<\w/) > -1 && ar[ix].search(/<\//) > -1) {
+				str = !inComment ? str += shift[deep]+ar[ix] : str += ar[ix];
+			} else 
+			// </elm> //
+			if(ar[ix].search(/<\//) > -1) { 
+				str = !inComment ? str += shift[--deep]+ar[ix] : str += ar[ix];
+			} else 
+			// <elm/> //
+			if(ar[ix].search(/\/>/) > -1 ) { 
+				str = !inComment ? str += shift[deep]+ar[ix] : str += ar[ix];
+			} else 
+			// <? xml ... ?> //
+			if(ar[ix].search(/<\?/) > -1) { 
+				str += shift[deep]+ar[ix];
+			} else 
+			// xmlns //
+			if( ar[ix].search(/xmlns\:/) > -1  || ar[ix].search(/xmlns\=/) > -1) { 
+				str += shift[deep]+ar[ix];
+			} 
+			
+			else {
+				str += ar[ix];
+			}
+		}
+		
+	return  (str[0] == '\n') ? str.slice(1) : str;
+}
+
+vkbeautify.prototype.json = function(text,step) {
+
+	var step = step ? step : this.step;
+	
+	if (typeof JSON === 'undefined' ) return text; 
+	
+	if ( typeof text === "string" ) return JSON.stringify(JSON.parse(text), null, step);
+	if ( typeof text === "object" ) return JSON.stringify(text, null, step);
+		
+	return text; // text is not string nor object
+}
+
+vkbeautify.prototype.css = function(text, step) {
+
+	var ar = text.replace(/\s{1,}/g,' ')
+				.replace(/\{/g,"{~::~")
+				.replace(/\}/g,"~::~}~::~")
+				.replace(/\;/g,";~::~")
+				.replace(/\/\*/g,"~::~/*")
+				.replace(/\*\//g,"*/~::~")
+				.replace(/~::~\s{0,}~::~/g,"~::~")
+				.split('~::~'),
+		len = ar.length,
+		deep = 0,
+		str = '',
+		ix = 0,
+		shift = step ? createShiftArr(step) : this.shift;
+		
+		for(ix=0;ix<len;ix++) {
+
+			if( /\{/.exec(ar[ix]))  { 
+				str += shift[deep++]+ar[ix];
+			} else 
+			if( /\}/.exec(ar[ix]))  { 
+				str += shift[--deep]+ar[ix];
+			} else
+			if( /\*\\/.exec(ar[ix]))  { 
+				str += shift[deep]+ar[ix];
+			}
+			else {
+				str += shift[deep]+ar[ix];
+			}
+		}
+		return str.replace(/^\n{1,}/,'');
+}
+
+//----------------------------------------------------------------------------
+
+function isSubquery(str, parenthesisLevel) {
+	return  parenthesisLevel - (str.replace(/\(/g,'').length - str.replace(/\)/g,'').length )
+}
+
+function split_sql(str, tab) {
+
+	return str.replace(/\s{1,}/g," ")
+
+				.replace(/ AND /ig,"~::~"+tab+tab+"AND ")
+				.replace(/ BETWEEN /ig,"~::~"+tab+"BETWEEN ")
+				.replace(/ CASE /ig,"~::~"+tab+"CASE ")
+				.replace(/ ELSE /ig,"~::~"+tab+"ELSE ")
+				.replace(/ END /ig,"~::~"+tab+"END ")
+				.replace(/ FROM /ig,"~::~FROM ")
+				.replace(/ GROUP\s{1,}BY/ig,"~::~GROUP BY ")
+				.replace(/ HAVING /ig,"~::~HAVING ")
+				//.replace(/ SET /ig," SET~::~")
+				.replace(/ IN /ig," IN ")
+				
+				.replace(/ JOIN /ig,"~::~JOIN ")
+				.replace(/ CROSS~::~{1,}JOIN /ig,"~::~CROSS JOIN ")
+				.replace(/ INNER~::~{1,}JOIN /ig,"~::~INNER JOIN ")
+				.replace(/ LEFT~::~{1,}JOIN /ig,"~::~LEFT JOIN ")
+				.replace(/ RIGHT~::~{1,}JOIN /ig,"~::~RIGHT JOIN ")
+				
+				.replace(/ ON /ig,"~::~"+tab+"ON ")
+				.replace(/ OR /ig,"~::~"+tab+tab+"OR ")
+				.replace(/ ORDER\s{1,}BY/ig,"~::~ORDER BY ")
+				.replace(/ OVER /ig,"~::~"+tab+"OVER ")
+
+				.replace(/\(\s{0,}SELECT /ig,"~::~(SELECT ")
+				.replace(/\)\s{0,}SELECT /ig,")~::~SELECT ")
+				
+				.replace(/ THEN /ig," THEN~::~"+tab+"")
+				.replace(/ UNION /ig,"~::~UNION~::~")
+				.replace(/ USING /ig,"~::~USING ")
+				.replace(/ WHEN /ig,"~::~"+tab+"WHEN ")
+				.replace(/ WHERE /ig,"~::~WHERE ")
+				.replace(/ WITH /ig,"~::~WITH ")
+				
+				//.replace(/\,\s{0,}\(/ig,",~::~( ")
+				//.replace(/\,/ig,",~::~"+tab+tab+"")
+
+				.replace(/ ALL /ig," ALL ")
+				.replace(/ AS /ig," AS ")
+				.replace(/ ASC /ig," ASC ")	
+				.replace(/ DESC /ig," DESC ")	
+				.replace(/ DISTINCT /ig," DISTINCT ")
+				.replace(/ EXISTS /ig," EXISTS ")
+				.replace(/ NOT /ig," NOT ")
+				.replace(/ NULL /ig," NULL ")
+				.replace(/ LIKE /ig," LIKE ")
+				.replace(/\s{0,}SELECT /ig,"SELECT ")
+				.replace(/\s{0,}UPDATE /ig,"UPDATE ")
+				.replace(/ SET /ig," SET ")
+							
+				.replace(/~::~{1,}/g,"~::~")
+				.split('~::~');
+}
+
+vkbeautify.prototype.sql = function(text,step) {
+
+	var ar_by_quote = text.replace(/\s{1,}/g," ")
+							.replace(/\'/ig,"~::~\'")
+							.split('~::~'),
+		len = ar_by_quote.length,
+		ar = [],
+		deep = 0,
+		tab = this.step,//+this.step,
+		inComment = true,
+		inQuote = false,
+		parenthesisLevel = 0,
+		str = '',
+		ix = 0,
+		shift = step ? createShiftArr(step) : this.shift;;
+
+		for(ix=0;ix<len;ix++) {
+			if(ix%2) {
+				ar = ar.concat(ar_by_quote[ix]);
+			} else {
+				ar = ar.concat(split_sql(ar_by_quote[ix], tab) );
+			}
+		}
+		
+		len = ar.length;
+		for(ix=0;ix<len;ix++) {
+			
+			parenthesisLevel = isSubquery(ar[ix], parenthesisLevel);
+			
+			if( /\s{0,}\s{0,}SELECT\s{0,}/.exec(ar[ix]))  { 
+				ar[ix] = ar[ix].replace(/\,/g,",\n"+tab+tab+"")
+			} 
+			
+			if( /\s{0,}\s{0,}SET\s{0,}/.exec(ar[ix]))  { 
+				ar[ix] = ar[ix].replace(/\,/g,",\n"+tab+tab+"")
+			} 
+			
+			if( /\s{0,}\(\s{0,}SELECT\s{0,}/.exec(ar[ix]))  { 
+				deep++;
+				str += shift[deep]+ar[ix];
+			} else 
+			if( /\'/.exec(ar[ix]) )  { 
+				if(parenthesisLevel<1 && deep) {
+					deep--;
+				}
+				str += ar[ix];
+			}
+			else  { 
+				str += shift[deep]+ar[ix];
+				if(parenthesisLevel<1 && deep) {
+					deep--;
+				}
+			} 
+			var junk = 0;
+		}
+
+		str = str.replace(/^\n{1,}/,'').replace(/\n{1,}/g,"\n");
+		return str;
+}
+
+
+vkbeautify.prototype.xmlmin = function(text, preserveComments) {
+
+	var str = preserveComments ? text
+							   : text.replace(/\<![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*--[ \r\n\t]*)\>/g,"")
+									 .replace(/[ \r\n\t]{1,}xmlns/g, ' xmlns');
+	return  str.replace(/>\s{0,}</g,"><"); 
+}
+
+vkbeautify.prototype.jsonmin = function(text) {
+
+	if (typeof JSON === 'undefined' ) return text; 
+	
+	return JSON.stringify(JSON.parse(text), null, 0); 
+				
+}
+
+vkbeautify.prototype.cssmin = function(text, preserveComments) {
+	
+	var str = preserveComments ? text
+							   : text.replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g,"") ;
+
+	return str.replace(/\s{1,}/g,' ')
+			  .replace(/\{\s{1,}/g,"{")
+			  .replace(/\}\s{1,}/g,"}")
+			  .replace(/\;\s{1,}/g,";")
+			  .replace(/\/\*\s{1,}/g,"/*")
+			  .replace(/\*\/\s{1,}/g,"*/");
+}
+
+vkbeautify.prototype.sqlmin = function(text) {
+	return text.replace(/\s{1,}/g," ").replace(/\s{1,}\(/,"(").replace(/\s{1,}\)/,")");
+}
+
+window.vkbeautify = new vkbeautify();
+
+})();
+

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/favicon.ico
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/favicon.ico b/gateway-applications/src/main/resources/applications/admin-ui/app/favicon.ico
new file mode 100644
index 0000000..8081c7c
Binary files /dev/null and b/gateway-applications/src/main/resources/applications/admin-ui/app/favicon.ico differ

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/index.html
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/index.html b/gateway-applications/src/main/resources/applications/admin-ui/app/index.html
new file mode 100644
index 0000000..6932ffb
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/index.html
@@ -0,0 +1,79 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!doctype html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>Apache Knox Manager</title>
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <link rel="icon" type="image/x-icon" href="favicon.ico">
+      <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- Latest compiled and minified CSS -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
+
+    <!-- Optional theme -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
+    <!-- Custom styles for this template -->
+    <link href="assets/sticky-footer.css" rel="stylesheet">
+
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
+    <!-- Latest compiled and minified JavaScript -->
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
+    <script src="assets/vkbeautify.js"></script>
+
+<link href="styles.d41d8cd98f00b204e9800998ecf8427e.bundle.css" rel="stylesheet"></head>
+<body>
+  <div class="navbar-wrapper">
+    <div class="container-fluid">
+
+      <nav class="navbar navbar-inverse navbar-static-top">
+        <div class="container-fluid">
+          <div class="navbar-header">
+            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+              <span class="sr-only">Toggle navigation</span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+            </button>
+            <a class="navbar-brand" href="#">Apache Knox Manager</a>
+          </div>
+          <!--<div id="navbar" class="navbar-collapse collapse">
+            <ul class="nav navbar-nav  navbar-right">
+              <li><a href="./">Logout</a></li>
+            </ul>
+          </div>-->
+        </div>
+      </nav>
+
+  </div>
+  <div class="container">
+
+    <!-- Main component for a primary marketing message or call to action -->
+    <div class="jumbotron">
+      <h3>Topology Management</h3>
+      <p>Protecting cluster resources through Knox</p>
+    </div>
+  </div>
+
+
+  <!-- Content -->
+  <topology-management></topology-management>
+
+  <footer class="footer">
+    <div>Knox Manager Version 0.0.1</div>
+    <gateway-version></gateway-version>
+  </footer>
+<script type="text/javascript" src="inline.d41d8cd98f00b204e980.bundle.js"></script><script type="text/javascript" src="styles.b2328beb0372c051d06d.bundle.js"></script><script type="text/javascript" src="vendor.a4f10aaf35e0664cc5fa.bundle.js"></script><script type="text/javascript" src="main.a62ce79090310dbb7cec.bundle.js"></script></body>
+</html>

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/inline.d41d8cd98f00b204e980.bundle.js
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/inline.d41d8cd98f00b204e980.bundle.js b/gateway-applications/src/main/resources/applications/admin-ui/app/inline.d41d8cd98f00b204e980.bundle.js
new file mode 100644
index 0000000..1926509
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/inline.d41d8cd98f00b204e980.bundle.js
@@ -0,0 +1,2 @@
+!function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var n=window.webpackJsonp;window.webpackJsonp=function(t,c,u){for(var i,a,f,l=0,s=[];l<t.length;l++)a=t[l],o[a]&&s.push(o[a][0]),o[a]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(n&&n(t,c,u);s.length;)s.shift()();if(u)for(l=0;l<u.length;l++)f=r(r.s=u[l]);return f};var t={},o={3:0};r.e=function(e){function n(){c.onerror=c.onload=null,clearTimeout(u);var r=o[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),o[e]=void 0)}if(0===o[e])return Promise.resolve();if(o[e])return o[e][2];var t=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,c.src=r.p+""+e+"."+{0:"a62ce79090310dbb7cec",1:"b2328beb0372c051d06d"}[e]+".chunk.js";var u=setTimeout(n,12e4);c.onerror=c.onload=n,t.appendChild(c);var i=new Promise(function(r,n
 ){o[e]=[r,n]});return o[e][2]=i},r.m=e,r.c=t,r.i=function(e){return e},r.d=function(e,r,n){Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},r.p="",r.oe=function(e){throw console.error(e),e}}([]);
+//# sourceMappingURL=inline.d41d8cd98f00b204e980.bundle.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/inline.d41d8cd98f00b204e980.bundle.map
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/inline.d41d8cd98f00b204e980.bundle.map b/gateway-applications/src/main/resources/applications/admin-ui/app/inline.d41d8cd98f00b204e980.bundle.map
new file mode 100644
index 0000000..e889d72
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/inline.d41d8cd98f00b204e980.bundle.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///inline.d41d8cd98f00b204e980.bundle.js","webpack:///webpack/bootstrap 1cd7a5ceef0ce1913a54"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","result","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","s","3","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","Promise","resolve","head","document","getElementsByTagName","createElement","type","charset","async","src","p","0","1","setTimeout","appendChild","promise","reject","m","c","value","d","name","getter","defineProperty","configurable","enumerable","get","n","__esModule","o","object","property","oe","err","console","error"],"mappings":"CAAS,SAAUA,GCqCnB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAI,EAAAJ,EACAK,GAAA,EACAH,WAUA,OANAJ,
 GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,GAAA,EAGAF,EAAAD,QAxDA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,GAAAX,GAAAY,EAAAC,EAAAT,EAAA,EAAAU,KACQV,EAAAK,EAAAM,OAAoBX,IAC5BQ,EAAAH,EAAAL,GACAY,EAAAJ,IACAE,EAAAG,KAAAD,EAAAJ,GAAA,IACAI,EAAAJ,GAAA,CAEA,KAAAZ,IAAAU,GACAQ,OAAAC,UAAAC,eAAAd,KAAAI,EAAAV,KACAF,EAAAE,GAAAU,EAAAV,GAIA,KADAO,KAAAE,EAAAC,EAAAC,GACAG,EAAAC,QACAD,EAAAO,SACA,IAAAV,EACA,IAAAP,EAAA,EAAYA,EAAAO,EAAAI,OAA2BX,IACvCS,EAAAd,IAAAuB,EAAAX,EAAAP,GAGA,OAAAS,GAIA,IAAAZ,MAGAe,GACAO,EAAA,EA6BAxB,GAAAyB,EAAA,SAAAZ,GAmBA,QAAAa,KAEAC,EAAAC,QAAAD,EAAAE,OAAA,KACAC,aAAAC,EACA,IAAAC,GAAAf,EAAAJ,EACA,KAAAmB,IACAA,KAAA,MAAAC,OAAA,iBAAApB,EAAA,aACAI,EAAAJ,GAAAqB,QAzBA,OAAAjB,EAAAJ,GACA,MAAAsB,SAAAC,SAGA,IAAAnB,EAAAJ,GACA,MAAAI,GAAAJ,GAAA,EAGA,IAAAwB,GAAAC,SAAAC,qBAAA,WACAZ,EAAAW,SAAAE,cAAA,SACAb,GAAAc,KAAA,kBACAd,EAAAe,QAAA,QACAf,EAAAgB,OAAA,EACAhB,EAAAI,QAAA,KAEAJ,EAAAiB,IAAA5C,EAAA6C,EAAA,GAAAhC,EAAA,KAA8DiC,EAAA,uBAAAC,EAAA,wBAAsDlC,GAAA,WACpH,IAAAkB,GAAAiB,W
 AAAtB,EAAA,KACAC,GAAAC,QAAAD,EAAAE,OAAAH,EAWAW,EAAAY,YAAAtB,EAEA,IAAAuB,GAAA,GAAAf,SAAA,SAAAC,EAAAe,GACAlC,EAAAJ,IAAAuB,EAAAe,IAEA,OAAAlC,GAAAJ,GAAA,GAAAqC,GAIAlD,EAAAoD,EAAArD,EAGAC,EAAAqD,EAAAnD,EAGAF,EAAAK,EAAA,SAAAiD,GAA2C,MAAAA,IAG3CtD,EAAAuD,EAAA,SAAApD,EAAAqD,EAAAC,GACAtC,OAAAuC,eAAAvD,EAAAqD,GACAG,cAAA,EACAC,YAAA,EACAC,IAAAJ,KAKAzD,EAAA8D,EAAA,SAAA1D,GACA,GAAAqD,GAAArD,KAAA2D,WACA,WAA2B,MAAA3D,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAJ,GAAAuD,EAAAE,EAAA,IAAAA,GACAA,GAIAzD,EAAAgE,EAAA,SAAAC,EAAAC,GAAsD,MAAA/C,QAAAC,UAAAC,eAAAd,KAAA0D,EAAAC,IAGtDlE,EAAA6C,EAAA,GAGA7C,EAAAmE,GAAA,SAAAC,GAA8D,KAApBC,SAAAC,MAAAF,GAAoBA","file":"inline.d41d8cd98f00b204e980.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"mor
 eModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length)\n/******/ \t\t\tresolves.shift()();\n/******/ \t\tif(executeModules) {\n/******/ \t\t\tfor(i=0; i < executeModules.length; i++) {\n/******/ \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModu
 les[i]);\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\treturn result;\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t3: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as 
 loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn Promise.resolve();\n/******/\n/******/ \t\t// an Promise means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId]) {\n/******/ \t\t\treturn installedChunks[chunkId][2];\n/******/ \t\t}\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tscript.src = __webpack_requ
 ire__.p + \"\" + chunkId + \".\" + {\"0\":\"a62ce79090310dbb7cec\",\"1\":\"b2328beb0372c051d06d\"}[chunkId] + \".chunk.js\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\treturn installedChunks[chunkId][2] = promise;\n/******/ \t};\n/******/\n/******/
  \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmory imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmory exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tObject.defineProperty(exports, name, {\n/******/ \t\t\tconfigurable: false,\n/******/ \t\t\tenumerable: true,\n/******/ \t\t\tget: getter\n/******/ \t\t});\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getM
 oduleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/ })\n/************************************************************************/\n/******/ ([]);\n\n\n// WEBPACK FOOTER //\n// inline.d41d8cd98f00b204e980.bundle.js"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules ob
 ject,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length)\n \t\t\tresolves.shift()();\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installe
 dChunks = {\n \t\t3: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn Promise.resolve();\n\n \t\t// an Promise means \"currently loading\".\n \t\tif(installedChunks[
 chunkId]) {\n \t\t\treturn installedChunks[chunkId][2];\n \t\t}\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + {\"0\":\"a62ce79090310dbb7cec\",\"1\":\"b2328beb0372c051d06d\"}[chunkId] + \".chunk.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendCh
 ild(script);\n\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\treturn installedChunks[chunkId][2] = promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmory imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmory exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tObject.defineProperty(exports, name, {\n \t\t\tconfigurable: false,\n \t\t\tenumerable: true,\n \t\t\tget: getter\n \t\t});\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; 
 } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1cd7a5ceef0ce1913a54"],"sourceRoot":""}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.js
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.js b/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.js
new file mode 100644
index 0000000..14d253a
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.js
@@ -0,0 +1,2 @@
+webpackJsonp([0,3],{122:function(t,e,o){"use strict";var n=o(0),i=o(180),a=o(341),r=(o.n(a),o(90));o.n(r);o.d(e,"a",function(){return s});var c=this&&this.__decorate||function(t,e,o,n){var i,a=arguments.length,r=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(r=(a<3?i(r):a>3?i(e,o,r):i(e,o))||r);return a>3&&r&&Object.defineProperty(e,o,r),r},l=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(t){this.http=t,this.apiUrl="/gateway/admin/api/v1/",this.topologiesUrl=this.apiUrl+"topologies",this.selectedTopologySource=new r.Subject,this.selectedTopology$=this.selectedTopologySource.asObservable(),this.changedTopologySource=new r.Subject,this.changedTopology$=this.changedTopologySource.asObservable()}return t.prototype.getTopologies=functi
 on(){var t=new i.a;return this.addJsonHeaders(t),this.http.get(this.topologiesUrl,{headers:t}).toPromise().then(function(t){return t.json().topologies.topology}).catch(this.handleError)},t.prototype.getTopology=function(t){var e=new i.a;return this.addXmlHeaders(e),this.http.get(t,{headers:e}).toPromise().then(function(t){return t.text()}).catch(this.handleError)},t.prototype.saveTopology=function(t,e){var o=new i.a;return this.addXmlHeaders(o),this.addCsrfHeaders(o),this.http.put(t,e,{headers:o}).toPromise().then(function(){return e}).catch(this.handleError)},t.prototype.createTopology=function(t,e){var o=new i.a;this.addXmlHeaders(o),this.addCsrfHeaders(o);var n=this.topologiesUrl+"/"+t;return this.http.put(n,e,{headers:o}).toPromise().then(function(){return e}).catch(this.handleError)},t.prototype.deleteTopology=function(t){var e=new i.a;return this.addJsonHeaders(e),this.addCsrfHeaders(e),this.http.delete(t,{headers:e}).toPromise().then(function(t){return t.text()}).catch(this.h
 andleError)},t.prototype.addJsonHeaders=function(t){t.append("Accept","application/json"),t.append("Content-Type","application/json")},t.prototype.addXmlHeaders=function(t){t.append("Accept","application/xml"),t.append("Content-Type","application/xml")},t.prototype.addCsrfHeaders=function(t){t.append("X-XSRF-Header","admin-ui")},t.prototype.selectedTopology=function(t){this.selectedTopologySource.next(t)},t.prototype.changedTopology=function(t){this.changedTopologySource.next(t)},t.prototype.handleError=function(t){return console.error("An error occurred",t),Promise.reject(t.message||t)},t=c([o.i(n.Injectable)(),l("design:paramtypes",["function"==typeof(e="undefined"!=typeof i.b&&i.b)&&e||Object])],t);var e}()},293:function(t,e,o){"use strict";var n=o(0),i=o(122);o.d(e,"a",function(){return c});var a=this&&this.__decorate||function(t,e,o,n){var i,a=arguments.length,r=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decor
 ate)r=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(r=(a<3?i(r):a>3?i(e,o,r):i(e,o))||r);return a>3&&r&&Object.defineProperty(e,o,r),r},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},c=function(){function t(t){this.topologyService=t}return t=a([o.i(n.Component)({selector:"topology-management",template:'\n      <div class="container">\n        <div class="row">\n          <div class="col-md-5">\n            <topology></topology>\n         </div>\n          <div class="col-md-7">\n            <topology-detail></topology-detail>\n          </div>\n        </div>\n      </div>\n  ',providers:[i.a]}),r("design:paramtypes",["function"==typeof(e="undefined"!=typeof i.a&&i.a)&&e||Object])],t);var e}()},294:function(t,e,o){"use strict";var n=o(0),i=o(180),a=o(341);o.n(a);o.d(e,"a",function(){return l});var r=this&&this.__decorate||function(t,e,o,n){var i,a=arguments.length,r=a<3?e
 :null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(r=(a<3?i(r):a>3?i(e,o,r):i(e,o))||r);return a>3&&r&&Object.defineProperty(e,o,r),r},c=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},l=function(){function t(t){this.http=t,this.apiUrl="/gateway/admin/api/v1/version"}return t.prototype.getVersion=function(){var t=new i.a;return this.createAuthorizationHeader(t),this.http.get(this.apiUrl,{headers:t}).toPromise().then(function(t){return t.json().ServerVersion}).catch(this.handleError)},t.prototype.createAuthorizationHeader=function(t){t.append("Accept","application/json"),t.append("Content-Type","application/json")},t.prototype.handleError=function(t){return console.error("An error occurred",t),Promise.reject(t.message||t)},t=r([o.i(n.Injectable)(),c("design:paramty
 pes",["function"==typeof(e="undefined"!=typeof i.b&&i.b)&&e||Object])],t);var e}()},295:function(t,e,o){"use strict";var n=o(0);o.d(e,"a",function(){return r});var i=this&&this.__decorate||function(t,e,o,n){var i,a=arguments.length,r=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(r=(a<3?i(r):a>3?i(e,o,r):i(e,o))||r);return a>3&&r&&Object.defineProperty(e,o,r),r},a=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},r=function(){function t(){this.active=!1}return i([o.i(n.Input)("tabTitle"),a("design:type",String)],t.prototype,"title",void 0),i([o.i(n.Input)(),a("design:type",Object)],t.prototype,"active",void 0),t=i([o.i(n.Component)({selector:"tab",styles:["\n    .pane{\n      padding: 1em;\n    }\n  "],template:'\n    <div [hidden]="!active" class="pane">\n
     </div>\n  '}),a("design:paramtypes",[])],t)}()},344:function(t,e){function o(t){throw new Error("Cannot find module '"+t+"'.")}o.keys=function(){return[]},o.resolve=o,t.exports=o,o.id=344},345:function(t,e,o){"use strict";var n=o(454),i=(o.n(n),o(425)),a=o(0),r=o(453),c=o(447);r.a.production&&o.i(a.enableProdMode)(),o.i(i.a)().bootstrapModule(c.a)},445:function(t,e,o){"use strict";var n=o(0),i=o(184),a=o(180),r=o(418),c=o(293),l=o(122),s=o(294),p=o(446),f=o(449),d=o(448),u=o(452),y=o(450),h=o(295),g=o(451),m=o(608),b=(o.n(m),o(340));o.n(b);o.d(e,"a",function(){return R});var v=this&&this.__decorate||function(t,e,o,n){var i,a=arguments.length,r=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(r=(a<3?i(r):a>3?i(e,o,r):i(e,o))||r);return a>3&&r&&Object.defineProperty(e,o,r),r},j=this&&this.__metadata||function(t,e){if("object"==typeof Ref
 lect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},R=function(){function t(){}return t=v([o.i(n.NgModule)({imports:[i.b,a.c,r.a,b.Ng2Bs3ModalModule],declarations:[c.a,f.a,d.a,p.a,m.AceEditorDirective,u.a,y.a,g.a,h.a],providers:[l.a,s.a],bootstrap:[c.a,p.a]}),j("design:paramtypes",[])],t)}()},446:function(t,e,o){"use strict";var n=o(0),i=o(294);o.d(e,"a",function(){return c});var a=this&&this.__decorate||function(t,e,o,n){var i,a=arguments.length,r=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(r=(a<3?i(r):a>3?i(e,o,r):i(e,o))||r);return a>3&&r&&Object.defineProperty(e,o,r),r},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},c=function(){function t(t){this.gatewayVersionService=t}return t.prototype.getVersion=function(){var t=this;thi
 s.gatewayVersionService.getVersion().then(function(e){return t.gatewayVersion=e})},t.prototype.ngOnInit=function(){this.getVersion()},t=a([o.i(n.Component)({selector:"gateway-version",template:'\n        <div *ngIf="gatewayVersion">\n            <span class="small"><cite>Knox Gateway Version</cite> {{this.gatewayVersion.version}}</span>\n            <span class="small"><cite>Hash</cite> {{this.gatewayVersion.hash}}</span>\n</div>',providers:[i.a]}),r("design:paramtypes",["function"==typeof(e="undefined"!=typeof i.a&&i.a)&&e||Object])],t);var e}()},447:function(t,e,o){"use strict";var n=(o(293),o(445));o.d(e,"a",function(){return n.a})},448:function(t,e,o){"use strict";var n=o(0),i=o(122),a=o(340);o.n(a);o.d(e,"a",function(){return l});var r=this&&this.__decorate||function(t,e,o,n){var i,a=arguments.length,r=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=
 0;c--)(i=t[c])&&(r=(a<3?i(r):a>3?i(e,o,r):i(e,o))||r);return a>3&&r&&Object.defineProperty(e,o,r),r},c=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},l=function(){function t(t){this.topologyService=t,this.title="Topology Detail",this.options={useWorker:!1,printMargin:!1}}return t.prototype.ngOnInit=function(){var t=this;this.topologyService.selectedTopology$.subscribe(function(e){return t.populateContent(e)})},t.prototype.setTitle=function(t){this.titleSuffix=t},t.prototype.onChange=function(t){this.changedTopology=t},t.prototype.saveTopology=function(){var t=this;this.topologyService.saveTopology(this.topology.href,this.changedTopology).then(function(e){return t.topologyService.changedTopology(t.topology.name)})},t.prototype.createTopology=function(){var t=this;this.changedTopology?this.topologyService.createTopology(this.newTopologyName,this.changedTopology).then(function(e){return t.topologyServi
 ce.changedTopology(t.newTopologyName)}):this.topologyService.createTopology(this.newTopologyName,this.topologyContent).then(function(e){return t.topologyService.changedTopology(t.newTopologyName)})},t.prototype.deleteTopology=function(){var t=this;this.topologyService.deleteTopology(this.topology.href).then(function(e){return t.topologyService.changedTopology(t.topology.name)})},t.prototype.populateContent=function(t){var e=this;this.topology=t,this.setTitle(t.name),this.topology&&this.topology.href&&this.topologyService.getTopology(this.topology.href).then(function(t){return e.topologyContent=t})},r([o.i(n.ViewChild)("duplicateModal"),c("design:type","function"==typeof(e="undefined"!=typeof a.ModalComponent&&a.ModalComponent)&&e||Object)],t.prototype,"duplicateModal",void 0),r([o.i(n.ViewChild)("deleteConfirmModal"),c("design:type","function"==typeof(l="undefined"!=typeof a.ModalComponent&&a.ModalComponent)&&l||Object)],t.prototype,"deleteConfirmModal",void 0),t=r([o.i(n.Component)
 ({selector:"topology-detail",template:'\n     <div class="panel panel-default">\n        <div class="panel-heading">\n            <h4 class="panel-title">{{title}} <span class="label label-default pull-right">{{titleSuffix}}</span></h4>\n         </div>\n     <div *ngIf="topologyContent" class="panel-body">\n      <div ace-editor\n       [readOnly]="false" [text]="topologyContent | xml" [mode]="\'html\'" [options]="options" \n        [theme]="\'monokai\'"\n         style="min-height: 300px; width:100%; overflow: auto;" (textChanged)="onChange($event)">\n      </div>\n       <div class="panel-footer">\n        <button (click)="duplicateModal.open(\'sm\')" class="btn btn-default btn-sm" type="submit">\n            <span class="glyphicon glyphicon-duplicate" aria-hidden="true"></span>\n        </button>\n        <button (click)="deleteConfirmModal.open(\'sm\')" class="btn btn-default btn-sm" type="submit">\n            <span class="glyphicon glyphicon-trash" aria-hidden="true"></span>\
 n        </button>\n       <button (click)="saveTopology()" class="btn btn-default btn-sm pull-right" [disabled]="!changedTopology" type="submit">\n            <span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span>\n        </button>\n       </div>\n         \n    </div>\n    <modal (onClose)="createTopology()" #duplicateModal>\n\n        <modal-header [show-close]="true">\n            <h4 class="modal-title">Create a copy</h4>\n        </modal-header>\n        <modal-body>\n            <div class="form-group">\n                <label for="textbox">Name the new topology</label>\n                <input autofocus type="text" class="form-control" required [(ngModel)]="newTopologyName" id="textbox">\n            </div> \n        </modal-body>\n        <modal-footer>\n            <button type="button" class="btn btn-default btn-sm" data-dismiss="duplicateModal" (click)="duplicateModal.dismiss()">Cancel</button>\n            <button type="button" class="btn btn-primary b
 tn-sm" [disabled]="!newTopologyName" (click)="duplicateModal.close()">Ok</button>\n        </modal-footer>\n    </modal>\n    <modal (onClose)="deleteTopology()" #deleteConfirmModal>\n        <modal-header [show-close]="true">\n            <h4 class="modal-title">Deleting Topology {{titleSuffix}}</h4>\n        </modal-header>\n        <modal-body>\n            Are you sure you want to delete the topology?\n        </modal-body>\n        <modal-footer>\n            <button type="button" class="btn btn-default btn-sm" data-dismiss="deleteConfirmModal" (click)="deleteConfirmModal.dismiss()">Cancel</button>\n            <button type="button" class="btn btn-primary btn-sm" (click)="deleteConfirmModal.close()">Ok</button>\n        </modal-footer>\n    </modal>\n   '}),c("design:paramtypes",["function"==typeof(s="undefined"!=typeof i.a&&i.a)&&s||Object])],t);var e,l,s}()},449:function(t,e,o){"use strict";var n=o(0),i=o(122);o.d(e,"a",function(){return c});var a=this&&this.__decorate||funct
 ion(t,e,o,n){var i,a=arguments.length,r=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(r=(a<3?i(r):a>3?i(e,o,r):i(e,o))||r);return a>3&&r&&Object.defineProperty(e,o,r),r},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},c=function(){function t(t){this.topologyService=t}return t.prototype.getTopologies=function(){var t=this;this.topologyService.getTopologies().then(function(e){return t.topologies=e})},t.prototype.ngOnInit=function(){var t=this;this.getTopologies(),this.topologyService.changedTopology$.subscribe(function(e){return t.getTopologies()})},t.prototype.onSelect=function(t){this.selectedTopology=t,this.topologyService.selectedTopology(t)},t=a([o.i(n.Component)({selector:"topology",template:'\n        <div class="table-responsive" style="max-heigh
 t: 400px; width:100%; overflow: auto;">\n            <table class="table table-striped table-hover">\n              <thead>\n                <tr>\n                  <th>Topology Name</th>\n                  <th>Timestamp</th>\n                </tr>\n              </thead>\n         <tbody>\n         <tr *ngFor="let topology of topologies"\n          [class.selected]="topology === selectedTopology"\n        (click)="onSelect(topology)">\n         <td>{{topology.name}}</td> \n         <td>{{topology.timestamp | date:\'yMMMdjms\'}}</td> \n         </tr>\n        </tbody>\n        </table>\n        </div>\n       '}),r("design:paramtypes",["function"==typeof(e="undefined"!=typeof i.a&&i.a)&&e||Object])],t);var e}()},450:function(t,e,o){"use strict";var n=o(0);o.d(e,"a",function(){return r});var i=this&&this.__decorate||function(t,e,o,n){var i,a=arguments.length,r=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Re
 flect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(r=(a<3?i(r):a>3?i(e,o,r):i(e,o))||r);return a>3&&r&&Object.defineProperty(e,o,r),r},a=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},r=function(){function t(){}return t.prototype.transform=function(t){return vkbeautify.json(t)},t=i([o.i(n.Pipe)({name:"jsonpretty"}),a("design:paramtypes",[])],t)}()},451:function(t,e,o){"use strict";var n=o(0),i=o(295);o.d(e,"a",function(){return c});var a=this&&this.__decorate||function(t,e,o,n){var i,a=arguments.length,r=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(r=(a<3?i(r):a>3?i(e,o,r):i(e,o))||r);return a>3&&r&&Object.defineProperty(e,o,r),r},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)
 return Reflect.metadata(t,e)},c=function(){function t(){}return t.prototype.ngAfterContentInit=function(){var t=this.tabs.filter(function(t){return t.active});0===t.length&&this.selectTab(this.tabs.first)},t.prototype.selectTab=function(t){this.tabs.toArray().forEach(function(t){return t.active=!1}),t.active=!0},a([o.i(n.ContentChildren)(i.a),r("design:type","function"==typeof(e="undefined"!=typeof n.QueryList&&n.QueryList)&&e||Object)],t.prototype,"tabs",void 0),t=a([o.i(n.Component)({selector:"tabs",template:'\n    <ul class="nav nav-tabs">\n      <li *ngFor="let tab of tabs" (click)="selectTab(tab)" [class.active]="tab.active">\n        <a>{{tab.title}}</a>\n      </li>\n    </ul>\n    \n  '}),r("design:paramtypes",[])],t);var e}()},452:function(t,e,o){"use strict";var n=o(0);o.d(e,"a",function(){return r});var i=this&&this.__decorate||function(t,e,o,n){var i,a=arguments.length,r=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==type
 of Reflect.decorate)r=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(r=(a<3?i(r):a>3?i(e,o,r):i(e,o))||r);return a>3&&r&&Object.defineProperty(e,o,r),r},a=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},r=function(){function t(){}return t.prototype.transform=function(t){return vkbeautify.xml(t)},t=i([o.i(n.Pipe)({name:"xml"}),a("design:paramtypes",[])],t)}()},453:function(t,e,o){"use strict";o.d(e,"a",function(){return n});var n={production:!0}},454:function(t,e,o){"use strict";var n=o(471),i=(o.n(n),o(464)),a=(o.n(i),o(460)),r=(o.n(a),o(466)),c=(o.n(r),o(465)),l=(o.n(c),o(463)),s=(o.n(l),o(462)),p=(o.n(s),o(470)),f=(o.n(p),o(459)),d=(o.n(f),o(458)),u=(o.n(d),o(468)),y=(o.n(u),o(461)),h=(o.n(y),o(469)),g=(o.n(h),o(467)),m=(o.n(g),o(472)),b=(o.n(m),o(628));o.n(b)},629:function(t,e,o){t.exports=o(345)}},[629]);
+//# sourceMappingURL=main.a62ce79090310dbb7cec.bundle.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.js.gz
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.js.gz b/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.js.gz
new file mode 100644
index 0000000..1af436e
Binary files /dev/null and b/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.js.gz differ


[5/7] knox git commit: KNOX-749 Initial admin UI source project and productized distribution

Posted by su...@apache.org.
http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.map
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.map b/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.map
new file mode 100644
index 0000000..1cf3ea8
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/main.a62ce79090310dbb7cec.bundle.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///main.a62ce79090310dbb7cec.bundle.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/app/topology.service.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/app/app.component.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/app/gateway-version.service.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/app/utils/tab.component.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src async","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/main.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/app/app.module.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/app/gateway-version.component.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/app/topology-detail.component.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/app/topology.component.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/app/utils/json-pretty.pipe.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/
 src/app/utils/tabs.component.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/app/utils/xml.pipe.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/src/environments/environment.prod.ts"],"names":["webpackJsonp","122","module","exports","__webpack_require__","__WEBPACK_IMPORTED_MODULE_0__angular_core__","__WEBPACK_IMPORTED_MODULE_1__angular_http__","__WEBPACK_IMPORTED_MODULE_2_rxjs_add_operator_toPromise__","__WEBPACK_IMPORTED_MODULE_3_rxjs_Subject__","n","d","TopologyService","__decorate","this","decorators","target","key","desc","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","k","v","metadata","http","apiUrl","topologiesUrl","selectedTopologySource","selectedTopology$","asObservable","changedTopologySource","changedTopology$","prototype","getTopologies","headers","addJsonHeaders","get","toPromise","then","response","json","topologies","topology","catch","handleError","getTopology","href","addXmlH
 eaders","text","saveTopology","url","xml","xheaders","addCsrfHeaders","put","createTopology","name","deleteTopology","delete","append","selectedTopology","value","next","changedTopology","error","console","Promise","reject","message","_a","293","__WEBPACK_IMPORTED_MODULE_1__topology_service__","AppComponent","topologyService","selector","template","providers","294","GatewayVersionService","getVersion","createAuthorizationHeader","ServerVersion","295","TabComponent","active","String","styles","344","webpackEmptyContext","req","Error","keys","resolve","id","345","__WEBPACK_IMPORTED_MODULE_0__polyfills_ts__","__WEBPACK_IMPORTED_MODULE_1__angular_platform_browser_dynamic__","__WEBPACK_IMPORTED_MODULE_2__angular_core__","__WEBPACK_IMPORTED_MODULE_3__environments_environment__","__WEBPACK_IMPORTED_MODULE_4__app___","production","bootstrapModule","445","__WEBPACK_IMPORTED_MODULE_1__angular_platform_browser__","__WEBPACK_IMPORTED_MODULE_2__angular_http__","__WEBPACK_IMPORTED_MODULE_3__angul
 ar_forms__","__WEBPACK_IMPORTED_MODULE_4__app_component__","__WEBPACK_IMPORTED_MODULE_5__topology_service__","__WEBPACK_IMPORTED_MODULE_6__gateway_version_service__","__WEBPACK_IMPORTED_MODULE_7__gateway_version_component__","__WEBPACK_IMPORTED_MODULE_8__topology_component__","__WEBPACK_IMPORTED_MODULE_9__topology_detail_component__","__WEBPACK_IMPORTED_MODULE_10__utils_xml_pipe__","__WEBPACK_IMPORTED_MODULE_11__utils_json_pretty_pipe__","__WEBPACK_IMPORTED_MODULE_12__utils_tab_component__","__WEBPACK_IMPORTED_MODULE_13__utils_tabs_component__","__WEBPACK_IMPORTED_MODULE_14_ng2_ace_editor__","__WEBPACK_IMPORTED_MODULE_15_ng2_bs3_modal_ng2_bs3_modal__","AppModule","imports","declarations","bootstrap","446","__WEBPACK_IMPORTED_MODULE_1__gateway_version_service__","GatewayVersionComponent","gatewayVersionService","_this","gatewayVersion","ngOnInit","447","__WEBPACK_IMPORTED_MODULE_1__app_module__","448","__WEBPACK_IMPORTED_MODULE_2_ng2_bs3_modal_ng2_bs3_modal__","TopologyDetailComponen
 t","title","options","useWorker","printMargin","subscribe","populateContent","setTitle","titleSuffix","onChange","code","newTopologyName","topologyContent","content","_b","_c","449","TopologyComponent","onSelect","450","JsonPrettyPipe","transform","vkbeautify","451","__WEBPACK_IMPORTED_MODULE_1__tab_component__","TabsComponent","ngAfterContentInit","activeTabs","tabs","filter","tab","selectTab","first","toArray","forEach","452","XmlPipe","453","environment","454","__WEBPACK_IMPORTED_MODULE_0_core_js_es6_symbol__","__WEBPACK_IMPORTED_MODULE_1_core_js_es6_object__","__WEBPACK_IMPORTED_MODULE_2_core_js_es6_function__","__WEBPACK_IMPORTED_MODULE_3_core_js_es6_parse_int__","__WEBPACK_IMPORTED_MODULE_4_core_js_es6_parse_float__","__WEBPACK_IMPORTED_MODULE_5_core_js_es6_number__","__WEBPACK_IMPORTED_MODULE_6_core_js_es6_math__","__WEBPACK_IMPORTED_MODULE_7_core_js_es6_string__","__WEBPACK_IMPORTED_MODULE_8_core_js_es6_date__","__WEBPACK_IMPORTED_MODULE_9_core_js_es6_array__","__WEBPACK_IMP
 ORTED_MODULE_10_core_js_es6_regexp__","__WEBPACK_IMPORTED_MODULE_11_core_js_es6_map__","__WEBPACK_IMPORTED_MODULE_12_core_js_es6_set__","__WEBPACK_IMPORTED_MODULE_13_core_js_es6_reflect__","__WEBPACK_IMPORTED_MODULE_14_core_js_es7_reflect__","__WEBPACK_IMPORTED_MODULE_15_zone_js_dist_zone__","629"],"mappings":"AAAAA,cAAc,EAAE,IAEVC,IACA,SAASC,EAAQC,EAASC,GAEhC,YACqB,IAAIC,GAA8CD,EAAoB,GAClEE,EAA8CF,EAAoB,KAClEG,EAA4DH,EAAoB,KAEhFI,GADoEJ,EAAoBK,EAAEF,GAC7CH,EAAoB,IACZA,GAAoBK,EAAED,EACrEJ,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAOQ,IACvF,IAAIC,GAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HP,GAAvHQ,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOK,OAAOC,yBAAyBR,EAAQC,GAAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBJ,EAAIG,QAAQC,SAASX,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIS,GAAIZ,EAAWM,OAAS,EAAGM,GAAK,EAAGA,KAAShB,EAAII,EAAWY,MAAIL,GAAKH,EAAI,EAAIR,EAAEW,GAAKH,EAAI,EAAIR,EAAEK,EAAQC,EAAKK,GAAKX,EAAEK,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKC,OAAOK,eAAeZ,EAAQC,EAAKK,GAAIA,GAE5D
 O,EAAcf,MAAQA,KAAKe,YAAe,SAAUC,EAAGC,GACvD,GAAuB,gBAAZN,UAAoD,kBAArBA,SAAQO,SAAyB,MAAOP,SAAQO,SAASF,EAAGC,ICV1GnB,EAAA,WASI,QAAAA,GAAoBqB,GAAAnB,KAAAmB,OAPpBnB,KAAAoB,OAAS,yBACTpB,KAAAqB,cAAgBrB,KAAKoB,OAAS,aAC9BpB,KAAAsB,uBAAyB,GAAI3B,GAAA,QAC7BK,KAAAuB,kBAAoBvB,KAAKsB,uBAAuBE,eAChDxB,KAAAyB,sBAAwB,GAAI9B,GAAA,QAC5BK,KAAA0B,iBAAmB1B,KAAKyB,sBAAsBD,eA0FlD,MAtFI1B,GAAA6B,UAAAC,cAAA,WACI,GAAIC,GAAU,GAAIpC,GAAA,CAElB,OADAO,MAAK8B,eAAeD,GACb7B,KAAKmB,KAAKY,IAAI/B,KAAKqB,eACtBQ,QAASA,IAERG,YACAC,KAAK,SAAAC,GAAY,MAAAA,GAASC,OAAOC,WAAWC,WAC5CC,MAAMtC,KAAKuC,cAGpBzC,EAAA6B,UAAAa,YAAA,SAAYC,GACR,GAAIZ,GAAU,GAAIpC,GAAA,CAElB,OADAO,MAAK0C,cAAcb,GACZ7B,KAAKmB,KAAKY,IAAIU,GACjBZ,QAASA,IAERG,YACAC,KAAK,SAAAC,GAAY,MAAAA,GAASS,SAC1BL,MAAMtC,KAAKuC,cAIrBzC,EAAA6B,UAAAiB,aAAA,SAAaC,EAAaC,GACrB,GAAIC,GAAW,GAAItD,GAAA,CAGnB,OAFAO,MAAK0C,cAAcK,GACnB/C,KAAKgD,eAAeD,GACb/C,KAAKmB,KACf8B,IAAIJ,EAAKC,GAAMjB,QAASkB,IACxBf,YACAC,KAAK,WAAM,MAAAa,KACXR,MAAMtC,KAAKuC,cAIbzC,EAAA6B,UAAAuB,eAAA,SAAeC,EAAcL,GACxB,G
 AAIC,GAAW,GAAItD,GAAA,CACnBO,MAAK0C,cAAcK,GACnB/C,KAAKgD,eAAeD,EACpB,IAAIF,GAAM7C,KAAKqB,cAAgB,IAAM8B,CACrC,OAAOnD,MAAKmB,KACf8B,IAAIJ,EAAKC,GAAMjB,QAASkB,IACxBf,YACAC,KAAK,WAAM,MAAAa,KACXR,MAAMtC,KAAKuC,cAGZzC,EAAA6B,UAAAyB,eAAA,SAAeX,GACZ,GAAIZ,GAAU,GAAIpC,GAAA,CAGjB,OAFAO,MAAK8B,eAAeD,GACpB7B,KAAKgD,eAAenB,GACb7B,KAAKmB,KAAKkC,OAAOZ,GACpBZ,QAASA,IAERG,YACAC,KAAK,SAAAC,GAAY,MAAAA,GAASS,SAC1BL,MAAMtC,KAAKuC,cAGpBzC,EAAA6B,UAAAG,eAAA,SAAeD,GACXA,EAAQyB,OAAO,SAAU,oBACzBzB,EAAQyB,OAAO,eAAgB,qBAGnCxD,EAAA6B,UAAAe,cAAA,SAAcb,GACVA,EAAQyB,OAAO,SAAU,mBACzBzB,EAAQyB,OAAO,eAAgB,oBAGnCxD,EAAA6B,UAAAqB,eAAA,SAAenB,GACXA,EAAQyB,OAAO,gBAAiB,aAGpCxD,EAAA6B,UAAA4B,iBAAA,SAAiBC,GACbxD,KAAKsB,uBAAuBmC,KAAKD,IAGrC1D,EAAA6B,UAAA+B,gBAAA,SAAgBF,GACZxD,KAAKyB,sBAAsBgC,KAAKD,IAI5B1D,EAAA6B,UAAAY,YAAR,SAAoBoB,GAEhB,MADAC,SAAQD,MAAM,oBAAqBA,GAC5BE,QAAQC,OAAOH,EAAMI,SAAWJ,IAhG/C7D,EAAAC,GAACR,EAAAsB,EAAArB,EAAA,cDsGOuB,EAAW,qBAA2L,mBAA5JiD,EAA4E,mBAAhEvE,GAA0D,GAAqBA,EAA0D,IAAqBuE,GAAOvD,UAC5NX,EAEH,IAAIkE
 ,OAMFC,IACA,SAAS5E,EAAQC,EAASC,GAEhC,YACqB,IAAIC,GAA8CD,EAAoB,GAClE2E,EAAkD3E,EAAoB,IAChEA,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAO6E,IACvF,IAAIpE,GAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HP,GAAvHQ,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOK,OAAOC,yBAAyBR,EAAQC,GAAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBJ,EAAIG,QAAQC,SAASX,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIS,GAAIZ,EAAWM,OAAS,EAAGM,GAAK,EAAGA,KAAShB,EAAII,EAAWY,MAAIL,GAAKH,EAAI,EAAIR,EAAEW,GAAKH,EAAI,EAAIR,EAAEK,EAAQC,EAAKK,GAAKX,EAAEK,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKC,OAAOK,eAAeZ,EAAQC,EAAKK,GAAIA,GAE5DO,EAAcf,MAAQA,KAAKe,YAAe,SAAUC,EAAGC,GACvD,GAAuB,gBAAZN,UAAoD,kBAArBA,SAAQO,SAAyB,MAAOP,SAAQO,SAASF,EAAGC,IElH1GkD,EAAA,WACI,QAAAA,GAAoBC,GAAApE,KAAAoE,kBAExB,MApBAD,GAAApE,GAACR,EAAAsB,EAAArB,EAAA,YACG6E,SAAU,sBACVC,SAAU,0RAYVC,WAAYL,EAAA,KFmIRnD,EAAW,qBAAyN,mBAA1LiD,EAA2F,mBAA/EE,GAAyE,GAAqBA,EAAyE,IAAqBF,GAAOvD,UAC1P0D,EAEH,IAAIH,OAMFQ,IACA,SAASnF,EAAQC,EAASC,GAEhC,YACqB,IAAIC,GAA8CD,EAAoB,GAClE
 E,EAA8CF,EAAoB,KAClEG,EAA4DH,EAAoB,IACZA,GAAoBK,EAAEF,EACpFH,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAOmF,IACvF,IAAI1E,GAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HP,GAAvHQ,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOK,OAAOC,yBAAyBR,EAAQC,GAAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBJ,EAAIG,QAAQC,SAASX,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIS,GAAIZ,EAAWM,OAAS,EAAGM,GAAK,EAAGA,KAAShB,EAAII,EAAWY,MAAIL,GAAKH,EAAI,EAAIR,EAAEW,GAAKH,EAAI,EAAIR,EAAEK,EAAQC,EAAKK,GAAKX,EAAEK,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKC,OAAOK,eAAeZ,EAAQC,EAAKK,GAAIA,GAE5DO,EAAcf,MAAQA,KAAKe,YAAe,SAAUC,EAAGC,GACvD,GAAuB,gBAAZN,UAAoD,kBAArBA,SAAQO,SAAyB,MAAOP,SAAQO,SAASF,EAAGC,IGrK1GwD,EAAA,WAII,QAAAA,GAAoBtD,GAAAnB,KAAAmB,OAFZnB,KAAAoB,OAAS,gCAwBrB,MApBIqD,GAAA9C,UAAA+C,WAAA,WACI,GAAI7C,GAAU,GAAIpC,GAAA,CAElB,OADAO,MAAK2E,0BAA0B9C,GACxB7B,KAAKmB,KAAKY,IAAI/B,KAAKoB,QACtBS,QAASA,IAERG,YACAC,KAAK,SAAAC,GAAY,MAAAA,GAASC,OAAOyC,gBACjCtC,MAAMtC,KAAKuC,cAGpBkC,EAAA9C,UAAAgD,0BAAA,SAA0B9C,GACtBA,EAAQyB
 ,OAAO,SAAU,oBACzBzB,EAAQyB,OAAO,eAAgB,qBAG3BmB,EAAA9C,UAAAY,YAAR,SAAoBoB,GAEhB,MADAC,SAAQD,MAAM,oBAAqBA,GAC5BE,QAAQC,OAAOH,EAAMI,SAAWJ,IAzB/Cc,EAAA1E,GAACR,EAAAsB,EAAArB,EAAA,cHoMOuB,EAAW,qBAA2L,mBAA5JiD,EAA4E,mBAAhEvE,GAA0D,GAAqBA,EAA0D,IAAqBuE,GAAOvD,UAC5NgE,EAEH,IAAIT,OAMFa,IACA,SAASxF,EAAQC,EAASC,GAEhC,YACqB,IAAIC,GAA8CD,EAAoB,EAC5DA,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAOwF,IACvF,IAAI/E,GAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HP,GAAvHQ,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOK,OAAOC,yBAAyBR,EAAQC,GAAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBJ,EAAIG,QAAQC,SAASX,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIS,GAAIZ,EAAWM,OAAS,EAAGM,GAAK,EAAGA,KAAShB,EAAII,EAAWY,MAAIL,GAAKH,EAAI,EAAIR,EAAEW,GAAKH,EAAI,EAAIR,EAAEK,EAAQC,EAAKK,GAAKX,EAAEK,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKC,OAAOK,eAAeZ,EAAQC,EAAKK,GAAIA,GAE5DO,EAAcf,MAAQA,KAAKe,YAAe,SAAUC,EAAGC,GACvD,GAAuB,gBAAZN,UAAoD,kBAArBA,SAAQO,SAAyB,MAAOP,SAAQO,SAASF,EAAGC,IInN1G6D,EAAA,mBAAAA,KAEW9E,KAAA+E,QAAS,EACpB,
 MAFEhF,IAACR,EAAAsB,EAAArB,EAAA,OAAM,YJ2NDuB,EAAW,cAAeiE,SAC3BF,EAAanD,UAAW,QAAS,QI3NtC5B,GAACR,EAAAsB,EAAArB,EAAA,SJ8NKuB,EAAW,cAAeN,SAC3BqE,EAAanD,UAAW,SAAU,QI7OzCmD,EAAA/E,GAACR,EAAAsB,EAAArB,EAAA,YACC6E,SAAU,MACVY,QAAS,gDAKTX,SAAU,gEJ6OJvD,EAAW,yBACZ+D,OAODI,IACA,SAAS7F,EAAQC,GK/PvB,QAAA6F,GAAAC,GACA,SAAAC,OAAA,uBAAAD,EAAA,MAEAD,EAAAG,KAAA,WAAuC,UACvCH,EAAAI,QAAAJ,EACA9F,EAAAC,QAAA6F,EACAA,EAAAK,GAAA,KLsQMC,IACA,SAASpG,EAAQC,EAASC,GAEhC,YACqB,IAAImG,GAA8CnG,EAAoB,KAElEoG,GADsDpG,EAAoBK,EAAE8F,GACVnG,EAAoB,MACtFqG,EAA8CrG,EAAoB,GAClEsG,EAA0DtG,EAAoB,KAC9EuG,EAAsCvG,EAAoB,IM9Q/EsG,GAAA,EAAYE,YACdxG,EAAAsB,EAAA+E,EAAA,kBAGFrG,EAAAsB,EAAA8E,EAAA,KAAyBK,gBAAgBF,EAAA,INwRnCG,IACA,SAAS5G,EAAQC,EAASC,GAEhC,YACqB,IAAIC,GAA8CD,EAAoB,GAClE2G,EAA0D3G,EAAoB,KAC9E4G,EAA8C5G,EAAoB,KAClE6G,EAA+C7G,EAAoB,KACnE8G,EAA+C9G,EAAoB,KACnE+G,EAAkD/G,EAAoB,KACtEgH,EAAyDhH,EAAoB,KAC7EiH,EAA2DjH,EAAoB,KAC/EkH,EAAoDlH,EAAoB,KACxEmH,EAA2DnH,EAAoB,KAC/EoH,EAAiDpH,EAAoB,KACrEqH,EAAyDrH,EAAoB,KAC7EsH,EAAsDtH,EA
 AoB,KAC1EuH,EAAuDvH,EAAoB,KAC3EwH,EAAgDxH,EAAoB,KAEpEyH,GADwDzH,EAAoBK,EAAEmH,GACjBxH,EAAoB,KACZA,GAAoBK,EAAEoH,EACrFzH,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAO2H,IACvF,IAAIlH,GAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HP,GAAvHQ,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOK,OAAOC,yBAAyBR,EAAQC,GAAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBJ,EAAIG,QAAQC,SAASX,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIS,GAAIZ,EAAWM,OAAS,EAAGM,GAAK,EAAGA,KAAShB,EAAII,EAAWY,MAAIL,GAAKH,EAAI,EAAIR,EAAEW,GAAKH,EAAI,EAAIR,EAAEK,EAAQC,EAAKK,GAAKX,EAAEK,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKC,OAAOK,eAAeZ,EAAQC,EAAKK,GAAIA,GAE5DO,EAAcf,MAAQA,KAAKe,YAAe,SAAUC,EAAGC,GACvD,GAAuB,gBAAZN,UAAoD,kBAArBA,SAAQO,SAAyB,MAAOP,SAAQO,SAASF,EAAGC,IOzR1GgG,EAAA,mBAAAA,MAAyB,MApBzBA,GAAAlH,GAACR,EAAAsB,EAAArB,EAAA,WACC0H,SAAWhB,EAAA,EACTC,EAAA,EACAC,EAAA,EACAY,EAAA,mBAEFG,cAAgBd,EAAA,EACdI,EAAA,EACEC,EAAA,EACFF,EAAA,EACAO,EAAA,mBACAJ,EAAA,EACAC,EAAA,EACAE,EAAA,EACAD,EAAA,GACFtC,WAAa+B,EAAA,EACXC,EAAA,GACFa,WAA
 af,EAAA,EACXG,EAAA,KPqUIzF,EAAW,yBACZkG,OAODI,IACA,SAAShI,EAAQC,EAASC,GAEhC,YACqB,IAAIC,GAA8CD,EAAoB,GAClE+H,EAAyD/H,EAAoB,IACvEA,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAOiI,IACvF,IAAIxH,GAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HP,GAAvHQ,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOK,OAAOC,yBAAyBR,EAAQC,GAAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBJ,EAAIG,QAAQC,SAASX,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIS,GAAIZ,EAAWM,OAAS,EAAGM,GAAK,EAAGA,KAAShB,EAAII,EAAWY,MAAIL,GAAKH,EAAI,EAAIR,EAAEW,GAAKH,EAAI,EAAIR,EAAEK,EAAQC,EAAKK,GAAKX,EAAEK,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKC,OAAOK,eAAeZ,EAAQC,EAAKK,GAAIA,GAE5DO,EAAcf,MAAQA,KAAKe,YAAe,SAAUC,EAAGC,GACvD,GAAuB,gBAAZN,UAAoD,kBAArBA,SAAQO,SAAyB,MAAOP,SAAQO,SAASF,EAAGC,IQlX1GsG,EAAA,WAII,QAAAA,GAAoBC,GAAAxH,KAAAwH,wBAYxB,MATID,GAAA5F,UAAA+C,WAAA,cAAA+C,GAAAzH,IACIA,MAAKwH,sBAAsB9C,aAAazC,KAAM,SAAAyF,GAAkB,MAAAD,GAAKC,eAAiBA,KAG1FH,EAAA5F,UAAAgG,SAAA,WACI3H,KAAK0E,cAtBb6C,EAAAxH,GAACR,EAAAsB,EAAArB,EAAA,YACG6E,SAAU,kBACVC
 ,SAAU,kPAKVC,WAAY+C,EAAA,KR0YRvG,EAAW,qBAAmP,mBAApNiD,EAAwG,mBAA5FsD,GAAsF,GAAqBA,EAAsF,IAAqBtD,GAAOvD,UACpR8G,EAEH,IAAIvD,OAMF4D,IACA,SAASvI,EAAQC,EAASC,GAEhC,YACqB,IACIsI,IAD+CtI,EAAoB,KACvBA,EAAoB,KAE9CA,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAOuI,GAA6C,KAO1IC,IACA,SAASzI,EAAQC,EAASC,GAEhC,YACqB,IAAIC,GAA8CD,EAAoB,GAClE2E,EAAkD3E,EAAoB,KACtEwI,EAA4DxI,EAAoB,IACZA,GAAoBK,EAAEmI,EACpFxI,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAO0I,IACvF,IAAIjI,GAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HP,GAAvHQ,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOK,OAAOC,yBAAyBR,EAAQC,GAAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBJ,EAAIG,QAAQC,SAASX,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIS,GAAIZ,EAAWM,OAAS,EAAGM,GAAK,EAAGA,KAAShB,EAAII,EAAWY,MAAIL,GAAKH,EAAI,EAAIR,EAAEW,GAAKH,EAAI,EAAIR,EAAEK,EAAQC,EAAKK,GAAKX,EAAEK,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKC,OAAOK,eAAeZ,EAAQC,EAAKK,GAAIA,GAE5DO,EAAcf,MAAQA,KAAKe,YAAe,SAAUC,EAAGC,GACvD,GAAuB,gBAAZN,UAAoD,kBAArBA,SAAQO,SAAyB,MAAOP,SAAQO,SAASF,EAAGC,IShY
 1G+G,EAAA,WAgBI,QAAAA,GAAoB5D,GAAApE,KAAAoE,kBAdpBpE,KAAAiI,MAAQ,kBAMRjI,KAAAkI,SAAeC,WAAW,EAAOC,aAAa,GAqDlD,MA1CIJ,GAAArG,UAAAgG,SAAA,cAAAF,GAAAzH,IACIA,MAAKoE,gBAAgB7C,kBAAkB8G,UAAU,SAAA7E,GAAS,MAAAiE,GAAKa,gBAAgB9E,MAGnFwE,EAAArG,UAAA4G,SAAA,SAAS/E,GACLxD,KAAKwI,YAAchF,GAGvBwE,EAAArG,UAAA8G,SAAA,SAASC,GACL1I,KAAK0D,gBAAkBgF,GAG3BV,EAAArG,UAAAiB,aAAA,cAAA6E,GAAAzH,IACIA,MAAKoE,gBAAgBxB,aAAa5C,KAAKqC,SAASI,KAAMzC,KAAK0D,iBAC1DzB,KAAK,SAAAuB,GAAS,MAAAiE,GAAKrD,gBAAgBV,gBAAgB+D,EAAKpF,SAASc,SAGtE6E,EAAArG,UAAAuB,eAAA,cAAAuE,GAAAzH,IACQA,MAAK0D,gBACL1D,KAAKoE,gBAAgBlB,eAAelD,KAAK2I,gBAAiB3I,KAAK0D,iBAC9DzB,KAAK,SAAAuB,GAAS,MAAAiE,GAAKrD,gBAAgBV,gBAAgB+D,EAAKkB,mBAEzD3I,KAAKoE,gBAAgBlB,eAAelD,KAAK2I,gBAAiB3I,KAAK4I,iBAC9D3G,KAAK,SAAAuB,GAAS,MAAAiE,GAAKrD,gBAAgBV,gBAAgB+D,EAAKkB,oBAIjEX,EAAArG,UAAAyB,eAAA,cAAAqE,GAAAzH,IACIA,MAAKoE,gBAAgBhB,eAAepD,KAAKqC,SAASI,MAAMR,KAAK,SAAAuB,GAAS,MAAAiE,GAAKrD,gBAAgBV,gBAAgB+D,EAAKpF,SAASc,SAG7H6E,EAAArG,UAAA2G,gBAAA,SAAgBjG,GAAhB,GAAAoF,GAAAzH,IACIA
 ,MAAKqC,SAAWA,EAChBrC,KAAKuI,SAASlG,EAASc,MACnBnD,KAAKqC,UACDrC,KAAKqC,SAASI,MACdzC,KAAKoE,gBAAgB5B,YAAYxC,KAAKqC,SAASI,MAAMR,KAAM,SAAA4G,GAAW,MAAApB,GAAKmB,gBAAkBC,KA7CzG9I,GAACR,EAAAsB,EAAArB,EAAA,WAAU,kBT2aPuB,EAAW,cAAoN,mBAA5LiD,EAA4F,mBAAhF+D,GAA0E,gBAAqBA,EAA0E,iBAAqB/D,GAAOvD,SACrPuH,EAAwBrG,UAAW,iBAAkB,QSzaxD5B,GAACR,EAAAsB,EAAArB,EAAA,WAAU,sBT4aPuB,EAAW,cAAoN,mBAA5L+H,EAA4F,mBAAhFf,GAA0E,gBAAqBA,EAA0E,iBAAqBe,GAAOrI,SACrPuH,EAAwBrG,UAAW,qBAAsB,QSlfhEqG,EAAAjI,GAACR,EAAAsB,EAAArB,EAAA,YACG6E,SAAU,kBACVC,SAAU,yqFTsfNvD,EAAW,qBAAyN,mBAA1LgI,EAA2F,mBAA/E7E,GAAyE,GAAqBA,EAAyE,IAAqB6E,GAAOtI,UAC1PuH,EAEH,IAAIhE,GAAI8E,EAAIC,MAMVC,IACA,SAAS3J,EAAQC,EAASC,GAEhC,YACqB,IAAIC,GAA8CD,EAAoB,GAClE2E,EAAkD3E,EAAoB,IAChEA,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAO2J,IACvF,IAAIlJ,GAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HP,GAAvHQ,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOK,OAAOC,yBAAyBR,EAAQC,GAAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBJ,EAAIG,QAAQC,SAASX,EAAYC,E
 AAQC,EAAKC,OACpH,KAAK,GAAIS,GAAIZ,EAAWM,OAAS,EAAGM,GAAK,EAAGA,KAAShB,EAAII,EAAWY,MAAIL,GAAKH,EAAI,EAAIR,EAAEW,GAAKH,EAAI,EAAIR,EAAEK,EAAQC,EAAKK,GAAKX,EAAEK,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKC,OAAOK,eAAeZ,EAAQC,EAAKK,GAAIA,GAE5DO,EAAcf,MAAQA,KAAKe,YAAe,SAAUC,EAAGC,GACvD,GAAuB,gBAAZN,UAAoD,kBAArBA,SAAQO,SAAyB,MAAOP,SAAQO,SAASF,EAAGC,IUvf1GgI,EAAA,WAOI,QAAAA,GAAoB7E,GAAApE,KAAAoE,kBAgBxB,MAbI6E,GAAAtH,UAAAC,cAAA,cAAA6F,GAAAzH,IACIA,MAAKoE,gBAAgBxC,gBAAgBK,KAAK,SAAAG,GAAc,MAAAqF,GAAKrF,WAAaA,KAG9E6G,EAAAtH,UAAAgG,SAAA,cAAAF,GAAAzH,IACIA,MAAK4B,gBACL5B,KAAKoE,gBAAgB1C,iBAAiB2G,UAAU,SAAA7E,GAAS,MAAAiE,GAAK7F,mBAGlEqH,EAAAtH,UAAAuH,SAAA,SAAS7G,GACLrC,KAAKuD,iBAAmBlB,EACxBrC,KAAKoE,gBAAgBb,iBAAiBlB,IA5C9C4G,EAAAlJ,GAACR,EAAAsB,EAAArB,EAAA,YACG6E,SAAU,WACVC,SAAU,sqBVsiBNvD,EAAW,qBAAyN,mBAA1LiD,EAA2F,mBAA/EE,GAAyE,GAAqBA,EAAyE,IAAqBF,GAAOvD,UAC1PwI,EAEH,IAAIjF,OAMFmF,IACA,SAAS9J,EAAQC,EAASC,GAEhC,YACqB,IAAIC,GAA8CD,EAAoB,EAC5DA,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAO8J,IACvF,IAAIrJ,GAAcC,MAAQA
 ,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HP,GAAvHQ,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOK,OAAOC,yBAAyBR,EAAQC,GAAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBJ,EAAIG,QAAQC,SAASX,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIS,GAAIZ,EAAWM,OAAS,EAAGM,GAAK,EAAGA,KAAShB,EAAII,EAAWY,MAAIL,GAAKH,EAAI,EAAIR,EAAEW,GAAKH,EAAI,EAAIR,EAAEK,EAAQC,EAAKK,GAAKX,EAAEK,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKC,OAAOK,eAAeZ,EAAQC,EAAKK,GAAIA,GAE5DO,EAAcf,MAAQA,KAAKe,YAAe,SAAUC,EAAGC,GACvD,GAAuB,gBAAZN,UAAoD,kBAArBA,SAAQO,SAAyB,MAAOP,SAAQO,SAASF,EAAGC,IW/jB1GmI,EAAA,mBAAAA,MAKA,MAHEA,GAAAzH,UAAA0H,UAAA,SAAU7F,GACR,MAAO8F,YAAWnH,KAAKqB,IAJ3B4F,EAAArJ,GAACR,EAAAsB,EAAArB,EAAA,OAAM2D,KAAM,eX2kBLpC,EAAW,yBACZqI,OAODG,IACA,SAASlK,EAAQC,EAASC,GAEhC,YACqB,IAAIC,GAA8CD,EAAoB,GAClEiK,EAA+CjK,EAAoB,IAC7DA,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAOmK,IACvF,IAAI1J,GAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HP,GAAvHQ,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOK,OAAOC,yBAAyBR,EAAQC,G
 AAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBJ,EAAIG,QAAQC,SAASX,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIS,GAAIZ,EAAWM,OAAS,EAAGM,GAAK,EAAGA,KAAShB,EAAII,EAAWY,MAAIL,GAAKH,EAAI,EAAIR,EAAEW,GAAKH,EAAI,EAAIR,EAAEK,EAAQC,EAAKK,GAAKX,EAAEK,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKC,OAAOK,eAAeZ,EAAQC,EAAKK,GAAIA,GAE5DO,EAAcf,MAAQA,KAAKe,YAAe,SAAUC,EAAGC,GACvD,GAAuB,gBAAZN,UAAoD,kBAArBA,SAAQO,SAAyB,MAAOP,SAAQO,SAASF,EAAGC,IYvlB1GwI,EAAA,mBAAAA,MAuBA,MAlBEA,GAAA9H,UAAA+H,mBAAA,WAEE,GAAIC,GAAa3J,KAAK4J,KAAKC,OAAO,SAACC,GAAM,MAAAA,GAAI/E,QAGpB,KAAtB4E,EAAWpJ,QACZP,KAAK+J,UAAU/J,KAAK4J,KAAKI,QAI7BP,EAAA9H,UAAAoI,UAAA,SAAUD,GAER9J,KAAK4J,KAAKK,UAAUC,QAAQ,SAAAJ,GAAO,MAAAA,GAAI/E,QAAS,IAGhD+E,EAAI/E,QAAS,GAlBfhF,GAACR,EAAAsB,EAAArB,EAAA,iBAAgBgK,EAAA,GZ6mBXzI,EAAW,cAA8K,mBAAtJiD,EAAyE,mBAA7DxE,GAAuD,WAAqBA,EAAuD,YAAqBwE,GAAOvD,SAC/MgJ,EAAc9H,UAAW,OAAQ,QY3nBxC8H,EAAA1J,GAACR,EAAAsB,EAAArB,EAAA,YACC6E,SAAU,OACVC,SAAS,8LZ+nBHvD,EAAW,yBACZ0I,EAEH,IAAIzF,OAMFmG,IACA,SAAS9K,EAAQC,EAASC,GAEhC,YACqB,IAAIC,GA
 A8CD,EAAoB,EAC5DA,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAO8K,IACvF,IAAIrK,GAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HP,GAAvHQ,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOK,OAAOC,yBAAyBR,EAAQC,GAAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBJ,EAAIG,QAAQC,SAASX,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIS,GAAIZ,EAAWM,OAAS,EAAGM,GAAK,EAAGA,KAAShB,EAAII,EAAWY,MAAIL,GAAKH,EAAI,EAAIR,EAAEW,GAAKH,EAAI,EAAIR,EAAEK,EAAQC,EAAKK,GAAKX,EAAEK,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKC,OAAOK,eAAeZ,EAAQC,EAAKK,GAAIA,GAE5DO,EAAcf,MAAQA,KAAKe,YAAe,SAAUC,EAAGC,GACvD,GAAuB,gBAAZN,UAAoD,kBAArBA,SAAQO,SAAyB,MAAOP,SAAQO,SAASF,EAAGC,IarpB1GmJ,EAAA,mBAAAA,MAKA,MAHEA,GAAAzI,UAAA0H,UAAA,SAAU7F,GACR,MAAO8F,YAAWxG,IAAIU,IAJ1B4G,EAAArK,GAACR,EAAAsB,EAAArB,EAAA,OAAM2D,KAAM,QbiqBLpC,EAAW,yBACZqJ,OAODC,IACA,SAAShL,EAAQC,EAASC,GAEhC,YAC+BA,GAAoBM,EAAEP,EAAS,IAAK,WAAa,MAAOgL,IcjrBhF,IAAMA,IACXvE,YAAY,IdwrBRwE,IACA,SAASlL,EAAQC,EAASC,GAEhC,YACqB,IAAIiL,GAAmDjL,EAAoB,KAEvEkL,GAD2DlL,EAAoBK,EAAE4K,GAC9BjL,EA
 AoB,MAEvEmL,GAD2DnL,EAAoBK,EAAE6K,GAC5BlL,EAAoB,MAEzEoL,GAD6DpL,EAAoBK,EAAE8K,GAC7BnL,EAAoB,MAE1EqL,GAD8DrL,EAAoBK,EAAE+K,GAC5BpL,EAAoB,MAE5EsL,GADgEtL,EAAoBK,EAAEgL,GACnCrL,EAAoB,MAEvEuL,GAD2DvL,EAAoBK,EAAEiL,GAChCtL,EAAoB,MAErEwL,GADyDxL,EAAoBK,EAAEkL,GAC5BvL,EAAoB,MAEvEyL,GAD2DzL,EAAoBK,EAAEmL,GAChCxL,EAAoB,MAErE0L,GADyD1L,EAAoBK,EAAEoL,GAC7BzL,EAAoB,MAEtE2L,GAD0D3L,EAAoBK,EAAEqL,GAC5B1L,EAAoB,MAExE4L,GAD4D5L,EAAoBK,EAAEsL,GACjC3L,EAAoB,MAErE6L,GADyD7L,EAAoBK,EAAEuL,GAC9B5L,EAAoB,MAErE8L,GADyD9L,EAAoBK,EAAEwL,GAC1B7L,EAAoB,MAEzE+L,GAD6D/L,EAAoBK,EAAEyL,GAC9B9L,EAAoB,MAEzEgM,GAD6DhM,EAAoBK,EAAE0L,GAChC/L,EAAoB,KACZA,GAAoBK,EAAE2L,IAqBpGC,IACA,SAASnM,EAAQC,EAASC,GAEhCF,EAAOC,QAAUC,EAAoB,QAKlC","file":"main.a62ce79090310dbb7cec.bundle.js","sourcesContent":["webpackJsonp([0,3],{\n\n/***/ 122:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);\n/* harmony import */ v
 ar __WEBPACK_IMPORTED_MODULE_1__angular_http__ = __webpack_require__(180);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_add_operator_toPromise__ = __webpack_require__(341);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_add_operator_toPromise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_add_operator_toPromise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_Subject__ = __webpack_require__(90);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_Subject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_Subject__);\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return TopologyService; });\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.dec
 orate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\nvar TopologyService = (function () {\n    function TopologyService(http) {\n        this.http = http;\n        this.apiUrl = '/gateway/admin/api/v1/';\n        this.topologiesUrl = this.apiUrl + 'topologies';\n        this.selectedTopologySource = new __WEBPACK_IMPORTED_MODULE_3_rxjs_Subject__[\"Subject\"]();\n        this.selectedTopology$ = this.selectedTopologySource.asObservable();\n        this.changedTopologySource = new __WEBPACK_IMPORTED_MODULE_3_rxjs_Subject__[\"Subject\"]();\n        this
 .changedTopology$ = this.changedTopologySource.asObservable();\n    }\n    TopologyService.prototype.getTopologies = function () {\n        var headers = new __WEBPACK_IMPORTED_MODULE_1__angular_http__[\"a\" /* Headers */]();\n        this.addJsonHeaders(headers);\n        return this.http.get(this.topologiesUrl, {\n            headers: headers\n        })\n            .toPromise()\n            .then(function (response) { return response.json().topologies.topology; })\n            .catch(this.handleError);\n    };\n    TopologyService.prototype.getTopology = function (href) {\n        var headers = new __WEBPACK_IMPORTED_MODULE_1__angular_http__[\"a\" /* Headers */]();\n        this.addXmlHeaders(headers);\n        return this.http.get(href, {\n            headers: headers\n        })\n            .toPromise()\n            .then(function (response) { return response.text(); })\n            .catch(this.handleError);\n    };\n    TopologyService.prototype.saveTopology = function (url,
  xml) {\n        var xheaders = new __WEBPACK_IMPORTED_MODULE_1__angular_http__[\"a\" /* Headers */]();\n        this.addXmlHeaders(xheaders);\n        this.addCsrfHeaders(xheaders);\n        return this.http\n            .put(url, xml, { headers: xheaders })\n            .toPromise()\n            .then(function () { return xml; })\n            .catch(this.handleError);\n    };\n    TopologyService.prototype.createTopology = function (name, xml) {\n        var xheaders = new __WEBPACK_IMPORTED_MODULE_1__angular_http__[\"a\" /* Headers */]();\n        this.addXmlHeaders(xheaders);\n        this.addCsrfHeaders(xheaders);\n        var url = this.topologiesUrl + \"/\" + name;\n        return this.http\n            .put(url, xml, { headers: xheaders })\n            .toPromise()\n            .then(function () { return xml; })\n            .catch(this.handleError);\n    };\n    TopologyService.prototype.deleteTopology = function (href) {\n        var headers = new __WEBPACK_IMPORTED_MODULE
 _1__angular_http__[\"a\" /* Headers */]();\n        this.addJsonHeaders(headers);\n        this.addCsrfHeaders(headers);\n        return this.http.delete(href, {\n            headers: headers\n        })\n            .toPromise()\n            .then(function (response) { return response.text(); })\n            .catch(this.handleError);\n    };\n    TopologyService.prototype.addJsonHeaders = function (headers) {\n        headers.append('Accept', 'application/json');\n        headers.append('Content-Type', 'application/json');\n    };\n    TopologyService.prototype.addXmlHeaders = function (headers) {\n        headers.append('Accept', 'application/xml');\n        headers.append('Content-Type', 'application/xml');\n    };\n    TopologyService.prototype.addCsrfHeaders = function (headers) {\n        headers.append('X-XSRF-Header', 'admin-ui');\n    };\n    TopologyService.prototype.selectedTopology = function (value) {\n        this.selectedTopologySource.next(value);\n    };\n    Topolo
 gyService.prototype.changedTopology = function (value) {\n        this.changedTopologySource.next(value);\n    };\n    TopologyService.prototype.handleError = function (error) {\n        console.error('An error occurred', error); // for demo purposes only\n        return Promise.reject(error.message || error);\n    };\n    TopologyService = __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"Injectable\"])(), \n        __metadata('design:paramtypes', [(typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_1__angular_http__[\"b\" /* Http */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__angular_http__[\"b\" /* Http */]) === 'function' && _a) || Object])\n    ], TopologyService);\n    return TopologyService;\n    var _a;\n}());\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/topology.service.js.map\n\n/***/ },\n\n/***/ 293:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMP
 ORTED_MODULE_0__angular_core__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__topology_service__ = __webpack_require__(122);\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return AppComponent; });\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\")
  return Reflect.metadata(k, v);\n};\n\n\nvar AppComponent = (function () {\n    function AppComponent(topologyService) {\n        this.topologyService = topologyService;\n    }\n    AppComponent = __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"Component\"])({\n            selector: 'topology-management',\n            template: \"\\n      <div class=\\\"container\\\">\\n        <div class=\\\"row\\\">\\n          <div class=\\\"col-md-5\\\">\\n            <topology></topology>\\n         </div>\\n          <div class=\\\"col-md-7\\\">\\n            <topology-detail></topology-detail>\\n          </div>\\n        </div>\\n      </div>\\n  \",\n            providers: [__WEBPACK_IMPORTED_MODULE_1__topology_service__[\"a\" /* TopologyService */]]\n        }), \n        __metadata('design:paramtypes', [(typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_1__topology_service__[\"a\" /* TopologyService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__
 topology_service__[\"a\" /* TopologyService */]) === 'function' && _a) || Object])\n    ], AppComponent);\n    return AppComponent;\n    var _a;\n}());\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/app.component.js.map\n\n/***/ },\n\n/***/ 294:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_http__ = __webpack_require__(180);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_add_operator_toPromise__ = __webpack_require__(341);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_add_operator_toPromise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_add_operator_toPromise__);\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return GatewayVersionService; });\nvar __decorate = (this && this.__decorate) || function (de
 corators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\nvar GatewayVersionService = (function () {\n    function GatewayVersionService(http) {\n        this.http = http;\n        this.apiUrl = '/gateway/admin/api/v1/version';\n    }\n    GatewayVersionService.prototype.getVersion = function () {\n        var headers = new __WEBPACK_IMPOR
 TED_MODULE_1__angular_http__[\"a\" /* Headers */]();\n        this.createAuthorizationHeader(headers);\n        return this.http.get(this.apiUrl, {\n            headers: headers\n        })\n            .toPromise()\n            .then(function (response) { return response.json().ServerVersion; })\n            .catch(this.handleError);\n    };\n    GatewayVersionService.prototype.createAuthorizationHeader = function (headers) {\n        headers.append('Accept', 'application/json');\n        headers.append('Content-Type', 'application/json');\n    };\n    GatewayVersionService.prototype.handleError = function (error) {\n        console.error('An error occurred', error); // for demo purposes only\n        return Promise.reject(error.message || error);\n    };\n    GatewayVersionService = __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"Injectable\"])(), \n        __metadata('design:paramtypes', [(typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_1__
 angular_http__[\"b\" /* Http */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__angular_http__[\"b\" /* Http */]) === 'function' && _a) || Object])\n    ], GatewayVersionService);\n    return GatewayVersionService;\n    var _a;\n}());\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/gateway-version.service.js.map\n\n/***/ },\n\n/***/ 295:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return TabComponent; });\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 
    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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\nvar TabComponent = (function () {\n    function TabComponent() {\n        this.active = false;\n    }\n    __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"Input\"])('tabTitle'), \n        __metadata('design:type', String)\n    ], TabComponent.prototype, \"title\", void 0);\n    __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"Input\"])(), \n        __metadata('design:type', Object)\n    ], TabComponent.prototype, \"active\", void 0);\n    TabComponent = __decorate([\n        __webpack_require__.i(__W
 EBPACK_IMPORTED_MODULE_0__angular_core__[\"Component\"])({\n            selector: 'tab',\n            styles: [\"\\n    .pane{\\n      padding: 1em;\\n    }\\n  \"],\n            template: \"\\n    <div [hidden]=\\\"!active\\\" class=\\\"pane\\\">\\n    </div>\\n  \"\n        }), \n        __metadata('design:paramtypes', [])\n    ], TabComponent);\n    return TabComponent;\n}());\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/tab.component.js.map\n\n/***/ },\n\n/***/ 344:\n/***/ function(module, exports) {\n\nfunction webpackEmptyContext(req) {\n\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 344;\n\n\n/***/ },\n\n/***/ 345:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__polyfills_ts__ = __webpack_re
 quire__(454);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__polyfills_ts___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__polyfills_ts__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_platform_browser_dynamic__ = __webpack_require__(425);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_core__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__environments_environment__ = __webpack_require__(453);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__app___ = __webpack_require__(447);\n\n\n\n\n\nif (__WEBPACK_IMPORTED_MODULE_3__environments_environment__[\"a\" /* environment */].production) {\n    __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__angular_core__[\"enableProdMode\"])();\n}\n__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__angular_platform_browser_dynamic__[\"a\" /* platformBrowserDynamic */])().bootstrapModule(__WEBPACK_IMPORTED_MODULE_4__app___[\"a\" /* AppModule */]);\n//# sourc
 eMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/main.js.map\n\n/***/ },\n\n/***/ 445:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_platform_browser__ = __webpack_require__(184);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_http__ = __webpack_require__(180);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__angular_forms__ = __webpack_require__(418);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__app_component__ = __webpack_require__(293);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__topology_service__ = __webpack_require__(122);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__gateway_version_service__ = __webpack_require__(294);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__gateway_version_component__ = __webpack_require__(446);\n/* h
 armony import */ var __WEBPACK_IMPORTED_MODULE_8__topology_component__ = __webpack_require__(449);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__topology_detail_component__ = __webpack_require__(448);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__utils_xml_pipe__ = __webpack_require__(452);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utils_json_pretty_pipe__ = __webpack_require__(450);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__utils_tab_component__ = __webpack_require__(295);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__utils_tabs_component__ = __webpack_require__(451);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_ng2_ace_editor__ = __webpack_require__(608);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_ng2_ace_editor___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14_ng2_ace_editor__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_ng2_bs3_modal_ng2_bs3_modal__ = __webpack_require__(340);
 \n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_ng2_bs3_modal_ng2_bs3_modal___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15_ng2_bs3_modal_ng2_bs3_modal__);\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return AppModule; });\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata 
 === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar AppModule = (function () {\n    function AppModule() {\n    }\n    AppModule = __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"NgModule\"])({\n            imports: [__WEBPACK_IMPORTED_MODULE_1__angular_platform_browser__[\"b\" /* BrowserModule */],\n                __WEBPACK_IMPORTED_MODULE_2__angular_http__[\"c\" /* HttpModule */],\n                __WEBPACK_IMPORTED_MODULE_3__angular_forms__[\"a\" /* FormsModule */],\n                __WEBPACK_IMPORTED_MODULE_15_ng2_bs3_modal_ng2_bs3_modal__[\"Ng2Bs3ModalModule\"]\n            ],\n            declarations: [__WEBPACK_IMPORTED_MODULE_4__app_component__[\"a\" /* AppComponent */],\n                __WEBPACK_IMPORTED_MODULE_8__topology_component__[\"a\" /* TopologyComponent */],\n                __WEBPACK_IMPORTED_MODULE_9__topology_detail_component__[\"a\" /* TopologyDetailComponent */],\n               
  __WEBPACK_IMPORTED_MODULE_7__gateway_version_component__[\"a\" /* GatewayVersionComponent */],\n                __WEBPACK_IMPORTED_MODULE_14_ng2_ace_editor__[\"AceEditorDirective\"],\n                __WEBPACK_IMPORTED_MODULE_10__utils_xml_pipe__[\"a\" /* XmlPipe */],\n                __WEBPACK_IMPORTED_MODULE_11__utils_json_pretty_pipe__[\"a\" /* JsonPrettyPipe */],\n                __WEBPACK_IMPORTED_MODULE_13__utils_tabs_component__[\"a\" /* TabsComponent */],\n                __WEBPACK_IMPORTED_MODULE_12__utils_tab_component__[\"a\" /* TabComponent */]],\n            providers: [__WEBPACK_IMPORTED_MODULE_5__topology_service__[\"a\" /* TopologyService */],\n                __WEBPACK_IMPORTED_MODULE_6__gateway_version_service__[\"a\" /* GatewayVersionService */]],\n            bootstrap: [__WEBPACK_IMPORTED_MODULE_4__app_component__[\"a\" /* AppComponent */],\n                __WEBPACK_IMPORTED_MODULE_7__gateway_version_component__[\"a\" /* GatewayVersionComponent */]]\n        }
 ), \n        __metadata('design:paramtypes', [])\n    ], AppModule);\n    return AppModule;\n}());\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/app.module.js.map\n\n/***/ },\n\n/***/ 446:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__gateway_version_service__ = __webpack_require__(294);\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return GatewayVersionComponent; });\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorator
 s.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\nvar GatewayVersionComponent = (function () {\n    function GatewayVersionComponent(gatewayVersionService) {\n        this.gatewayVersionService = gatewayVersionService;\n    }\n    GatewayVersionComponent.prototype.getVersion = function () {\n        var _this = this;\n        this.gatewayVersionService.getVersion().then(function (gatewayVersion) { return _this.gatewayVersion = gatewayVersion; });\n    };\n    GatewayVersionComponent.prototype.ngOnInit = function () {\n        this.getVersion();\n    };\n    GatewayVersionComponent = __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__ang
 ular_core__[\"Component\"])({\n            selector: 'gateway-version',\n            template: \"\\n        <div *ngIf=\\\"gatewayVersion\\\">\\n            <span class=\\\"small\\\"><cite>Knox Gateway Version</cite> {{this.gatewayVersion.version}}</span>\\n            <span class=\\\"small\\\"><cite>Hash</cite> {{this.gatewayVersion.hash}}</span>\\n</div>\",\n            providers: [__WEBPACK_IMPORTED_MODULE_1__gateway_version_service__[\"a\" /* GatewayVersionService */]]\n        }), \n        __metadata('design:paramtypes', [(typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_1__gateway_version_service__[\"a\" /* GatewayVersionService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__gateway_version_service__[\"a\" /* GatewayVersionService */]) === 'function' && _a) || Object])\n    ], GatewayVersionComponent);\n    return GatewayVersionComponent;\n    var _a;\n}());\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/gateway-version.component.js.map\n\n/***/ },\n\n/***
 / 447:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__app_component__ = __webpack_require__(293);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__app_module__ = __webpack_require__(445);\n/* unused harmony namespace reexport */\n/* harmony namespace reexport (by used) */ __webpack_require__.d(exports, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_1__app_module__[\"a\"]; });\n\n\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/index.js.map\n\n/***/ },\n\n/***/ 448:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__topology_service__ = __webpack_require__(122);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_ng2_bs3_modal_ng2_bs3_modal__ = __webpack_require__(340);\n/* harmony import */ var __WE
 BPACK_IMPORTED_MODULE_2_ng2_bs3_modal_ng2_bs3_modal___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_ng2_bs3_modal_ng2_bs3_modal__);\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return TopologyDetailComponent; });\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") r
 eturn Reflect.metadata(k, v);\n};\n\n\n\nvar TopologyDetailComponent = (function () {\n    function TopologyDetailComponent(topologyService) {\n        this.topologyService = topologyService;\n        this.title = 'Topology Detail';\n        this.options = { useWorker: false, printMargin: false };\n    }\n    TopologyDetailComponent.prototype.ngOnInit = function () {\n        var _this = this;\n        this.topologyService.selectedTopology$.subscribe(function (value) { return _this.populateContent(value); });\n    };\n    TopologyDetailComponent.prototype.setTitle = function (value) {\n        this.titleSuffix = value;\n    };\n    TopologyDetailComponent.prototype.onChange = function (code) {\n        this.changedTopology = code;\n    };\n    TopologyDetailComponent.prototype.saveTopology = function () {\n        var _this = this;\n        this.topologyService.saveTopology(this.topology.href, this.changedTopology)\n            .then(function (value) { return _this.topologyService.c
 hangedTopology(_this.topology.name); });\n    };\n    TopologyDetailComponent.prototype.createTopology = function () {\n        var _this = this;\n        if (this.changedTopology) {\n            this.topologyService.createTopology(this.newTopologyName, this.changedTopology)\n                .then(function (value) { return _this.topologyService.changedTopology(_this.newTopologyName); });\n        }\n        else {\n            this.topologyService.createTopology(this.newTopologyName, this.topologyContent)\n                .then(function (value) { return _this.topologyService.changedTopology(_this.newTopologyName); });\n        }\n    };\n    TopologyDetailComponent.prototype.deleteTopology = function () {\n        var _this = this;\n        this.topologyService.deleteTopology(this.topology.href).then(function (value) { return _this.topologyService.changedTopology(_this.topology.name); });\n    };\n    TopologyDetailComponent.prototype.populateContent = function (topology) {\n       
  var _this = this;\n        this.topology = topology;\n        this.setTitle(topology.name);\n        if (this.topology) {\n            if (this.topology.href) {\n                this.topologyService.getTopology(this.topology.href).then(function (content) { return _this.topologyContent = content; });\n            }\n        }\n    };\n    __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"ViewChild\"])('duplicateModal'), \n        __metadata('design:type', (typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_2_ng2_bs3_modal_ng2_bs3_modal__[\"ModalComponent\"] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_2_ng2_bs3_modal_ng2_bs3_modal__[\"ModalComponent\"]) === 'function' && _a) || Object)\n    ], TopologyDetailComponent.prototype, \"duplicateModal\", void 0);\n    __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"ViewChild\"])('deleteConfirmModal'), \n        __metadata('design:type', (typeof (_b = typeof __WEBP
 ACK_IMPORTED_MODULE_2_ng2_bs3_modal_ng2_bs3_modal__[\"ModalComponent\"] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_2_ng2_bs3_modal_ng2_bs3_modal__[\"ModalComponent\"]) === 'function' && _b) || Object)\n    ], TopologyDetailComponent.prototype, \"deleteConfirmModal\", void 0);\n    TopologyDetailComponent = __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"Component\"])({\n            selector: 'topology-detail',\n            template: \"\\n     <div class=\\\"panel panel-default\\\">\\n        <div class=\\\"panel-heading\\\">\\n            <h4 class=\\\"panel-title\\\">{{title}} <span class=\\\"label label-default pull-right\\\">{{titleSuffix}}</span></h4>\\n         </div>\\n     <div *ngIf=\\\"topologyContent\\\" class=\\\"panel-body\\\">\\n      <div ace-editor\\n       [readOnly]=\\\"false\\\" [text]=\\\"topologyContent | xml\\\" [mode]=\\\"'html'\\\" [options]=\\\"options\\\" \\n        [theme]=\\\"'monokai'\\\"\\n         style=\\\"mi
 n-height: 300px; width:100%; overflow: auto;\\\" (textChanged)=\\\"onChange($event)\\\">\\n      </div>\\n       <div class=\\\"panel-footer\\\">\\n        <button (click)=\\\"duplicateModal.open('sm')\\\" class=\\\"btn btn-default btn-sm\\\" type=\\\"submit\\\">\\n            <span class=\\\"glyphicon glyphicon-duplicate\\\" aria-hidden=\\\"true\\\"></span>\\n        </button>\\n        <button (click)=\\\"deleteConfirmModal.open('sm')\\\" class=\\\"btn btn-default btn-sm\\\" type=\\\"submit\\\">\\n            <span class=\\\"glyphicon glyphicon-trash\\\" aria-hidden=\\\"true\\\"></span>\\n        </button>\\n       <button (click)=\\\"saveTopology()\\\" class=\\\"btn btn-default btn-sm pull-right\\\" [disabled]=\\\"!changedTopology\\\" type=\\\"submit\\\">\\n            <span class=\\\"glyphicon glyphicon-floppy-disk\\\" aria-hidden=\\\"true\\\"></span>\\n        </button>\\n       </div>\\n         \\n    </div>\\n    <modal (onClose)=\\\"createTopology()\\\" #duplicateModal>\\n\
 \n        <modal-header [show-close]=\\\"true\\\">\\n            <h4 class=\\\"modal-title\\\">Create a copy</h4>\\n        </modal-header>\\n        <modal-body>\\n            <div class=\\\"form-group\\\">\\n                <label for=\\\"textbox\\\">Name the new topology</label>\\n                <input autofocus type=\\\"text\\\" class=\\\"form-control\\\" required [(ngModel)]=\\\"newTopologyName\\\" id=\\\"textbox\\\">\\n            </div> \\n        </modal-body>\\n        <modal-footer>\\n            <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" data-dismiss=\\\"duplicateModal\\\" (click)=\\\"duplicateModal.dismiss()\\\">Cancel</button>\\n            <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" [disabled]=\\\"!newTopologyName\\\" (click)=\\\"duplicateModal.close()\\\">Ok</button>\\n        </modal-footer>\\n    </modal>\\n    <modal (onClose)=\\\"deleteTopology()\\\" #deleteConfirmModal>\\n        <modal-header [show-close]=\\\"true\\\">
 \\n            <h4 class=\\\"modal-title\\\">Deleting Topology {{titleSuffix}}</h4>\\n        </modal-header>\\n        <modal-body>\\n            Are you sure you want to delete the topology?\\n        </modal-body>\\n        <modal-footer>\\n            <button type=\\\"button\\\" class=\\\"btn btn-default btn-sm\\\" data-dismiss=\\\"deleteConfirmModal\\\" (click)=\\\"deleteConfirmModal.dismiss()\\\">Cancel</button>\\n            <button type=\\\"button\\\" class=\\\"btn btn-primary btn-sm\\\" (click)=\\\"deleteConfirmModal.close()\\\">Ok</button>\\n        </modal-footer>\\n    </modal>\\n   \"\n        }), \n        __metadata('design:paramtypes', [(typeof (_c = typeof __WEBPACK_IMPORTED_MODULE_1__topology_service__[\"a\" /* TopologyService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__topology_service__[\"a\" /* TopologyService */]) === 'function' && _c) || Object])\n    ], TopologyDetailComponent);\n    return TopologyDetailComponent;\n    var _a, _b, _c;\n}());\n//# sou
 rceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/topology-detail.component.js.map\n\n/***/ },\n\n/***/ 449:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__topology_service__ = __webpack_require__(122);\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return TopologyComponent; });\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    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(targe
 t, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\nvar TopologyComponent = (function () {\n    function TopologyComponent(topologyService) {\n        this.topologyService = topologyService;\n    }\n    TopologyComponent.prototype.getTopologies = function () {\n        var _this = this;\n        this.topologyService.getTopologies().then(function (topologies) { return _this.topologies = topologies; });\n    };\n    TopologyComponent.prototype.ngOnInit = function () {\n        var _this = this;\n        this.getTopologies();\n        this.topologyService.changedTopology$.subscribe(function (value) { return _this.getTopologies(); });\n    };\n    TopologyComponent.prototype.onSelect = function (topology) {\n        this.selectedTopology = topology;\n        this.top
 ologyService.selectedTopology(topology);\n    };\n    TopologyComponent = __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"Component\"])({\n            selector: 'topology',\n            template: \"\\n        <div class=\\\"table-responsive\\\" style=\\\"max-height: 400px; width:100%; overflow: auto;\\\">\\n            <table class=\\\"table table-striped table-hover\\\">\\n              <thead>\\n                <tr>\\n                  <th>Topology Name</th>\\n                  <th>Timestamp</th>\\n                </tr>\\n              </thead>\\n         <tbody>\\n         <tr *ngFor=\\\"let topology of topologies\\\"\\n          [class.selected]=\\\"topology === selectedTopology\\\"\\n        (click)=\\\"onSelect(topology)\\\">\\n         <td>{{topology.name}}</td> \\n         <td>{{topology.timestamp | date:'yMMMdjms'}}</td> \\n         </tr>\\n        </tbody>\\n        </table>\\n        </div>\\n       \"\n        }), \n        __met
 adata('design:paramtypes', [(typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_1__topology_service__[\"a\" /* TopologyService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__topology_service__[\"a\" /* TopologyService */]) === 'function' && _a) || Object])\n    ], TopologyComponent);\n    return TopologyComponent;\n    var _a;\n}());\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/topology.component.js.map\n\n/***/ },\n\n/***/ 450:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return JsonPrettyPipe; });\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && 
 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\nvar JsonPrettyPipe = (function () {\n    function JsonPrettyPipe() {\n    }\n    JsonPrettyPipe.prototype.transform = function (value) {\n        return vkbeautify.json(value);\n    };\n    JsonPrettyPipe = __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"Pipe\"])({ name: 'jsonpretty' }), \n        __metadata('design:paramtypes', [])\n    ], JsonPrettyPipe);\n    return JsonPrettyPipe;\n}());\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-k
 nox-ui/src/json-pretty.pipe.js.map\n\n/***/ },\n\n/***/ 451:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__tab_component__ = __webpack_require__(295);\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return TabsComponent; });\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    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;\n    return c > 3 && r && Object.defineProperty
 (target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\nvar TabsComponent = (function () {\n    function TabsComponent() {\n    }\n    // contentChildren are set\n    TabsComponent.prototype.ngAfterContentInit = function () {\n        // get all active tabs\n        var activeTabs = this.tabs.filter(function (tab) { return tab.active; });\n        // if there is no active tab set, activate the first\n        if (activeTabs.length === 0) {\n            this.selectTab(this.tabs.first);\n        }\n    };\n    TabsComponent.prototype.selectTab = function (tab) {\n        // deactivate all tabs\n        this.tabs.toArray().forEach(function (tab) { return tab.active = false; });\n        // activate the tab the user has clicked on.\n        tab.active = true;\n    };\n    __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTE
 D_MODULE_0__angular_core__[\"ContentChildren\"])(__WEBPACK_IMPORTED_MODULE_1__tab_component__[\"a\" /* TabComponent */]), \n        __metadata('design:type', (typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_0__angular_core__[\"QueryList\"] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_0__angular_core__[\"QueryList\"]) === 'function' && _a) || Object)\n    ], TabsComponent.prototype, \"tabs\", void 0);\n    TabsComponent = __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"Component\"])({\n            selector: 'tabs',\n            template: \"\\n    <ul class=\\\"nav nav-tabs\\\">\\n      <li *ngFor=\\\"let tab of tabs\\\" (click)=\\\"selectTab(tab)\\\" [class.active]=\\\"tab.active\\\">\\n        <a>{{tab.title}}</a>\\n      </li>\\n    </ul>\\n    \\n  \"\n        }), \n        __metadata('design:paramtypes', [])\n    ], TabsComponent);\n    return TabsComponent;\n    var _a;\n}());\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/sr
 c/tabs.component.js.map\n\n/***/ },\n\n/***/ 452:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return XmlPipe; });\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    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;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect ==
 = \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\nvar XmlPipe = (function () {\n    function XmlPipe() {\n    }\n    XmlPipe.prototype.transform = function (value) {\n        return vkbeautify.xml(value);\n    };\n    XmlPipe = __decorate([\n        __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__[\"Pipe\"])({ name: 'xml' }), \n        __metadata('design:paramtypes', [])\n    ], XmlPipe);\n    return XmlPipe;\n}());\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/xml.pipe.js.map\n\n/***/ },\n\n/***/ 453:\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(exports, \"a\", function() { return environment; });\nvar environment = {\n    production: true\n};\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/environment.prod.js.map\n\n/***/ },\n\n/***/ 454:\n/***/ function(module, exports, __webpack_require__) {\n\n\"us
 e strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_es6_symbol__ = __webpack_require__(471);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_es6_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_es6_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_es6_object__ = __webpack_require__(464);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_es6_object___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_es6_object__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_es6_function__ = __webpack_require__(460);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_es6_function___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_core_js_es6_function__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_es6_parse_int__ = __webpack_require__(466);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_es6_parse_int___default = __
 webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_core_js_es6_parse_int__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_es6_parse_float__ = __webpack_require__(465);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_es6_parse_float___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_core_js_es6_parse_float__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_es6_number__ = __webpack_require__(463);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_es6_number___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_core_js_es6_number__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_core_js_es6_math__ = __webpack_require__(462);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_core_js_es6_math___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_core_js_es6_math__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_core_js_es6_string__ = __webpack_require__(470);\n/* harmony import */ var __
 WEBPACK_IMPORTED_MODULE_7_core_js_es6_string___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_core_js_es6_string__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_core_js_es6_date__ = __webpack_require__(459);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_core_js_es6_date___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_core_js_es6_date__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_core_js_es6_array__ = __webpack_require__(458);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_core_js_es6_array___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_core_js_es6_array__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_core_js_es6_regexp__ = __webpack_require__(468);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_core_js_es6_regexp___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_core_js_es6_regexp__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_core_js_es6_map__ = __webpack_requi
 re__(461);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_core_js_es6_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_core_js_es6_map__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_core_js_es6_set__ = __webpack_require__(469);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_core_js_es6_set___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_core_js_es6_set__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_core_js_es6_reflect__ = __webpack_require__(467);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_core_js_es6_reflect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_core_js_es6_reflect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_core_js_es7_reflect__ = __webpack_require__(472);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_core_js_es7_reflect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14_core_js_es7_reflect__);\n/* harmony import */ var __WEBPACK_IMPORTE
 D_MODULE_15_zone_js_dist_zone__ = __webpack_require__(628);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_zone_js_dist_zone___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15_zone_js_dist_zone__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=/Users/sumit.gupta/Projects/ng-knox-ui/src/polyfills.js.map\n\n/***/ },\n\n/***/ 629:\n/***/ function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(345);\n\n\n/***/ }\n\n},[629]);\n\n\n// WEBPACK FOOTER //\n// main.a62ce79090310dbb7cec.bundle.js","import { Injectable }    from '@angular/core';\nimport { Headers, Http } from '@angular/http';\n\nimport 'rxjs/add/operator/toPromise';\nimport { Subject }    from 'rxjs/Subject';\nimport { Observable }    from 'rxjs/Observable';\n\nimport { Topology } from './topology';\n\n@Injectable()\nexport class TopologyService {\n\n    apiUrl = '/gateway/admin/api/v1/';\n    topologiesUrl = this.apiUrl + 'topologies';\n    selectedTopologySource = n
 ew Subject<Topology>();\n    selectedTopology$ = this.selectedTopologySource.asObservable();\n    changedTopologySource = new Subject<string>();\n    changedTopology$ = this.changedTopologySource.asObservable();\n\n    constructor(private http: Http) { }\n\n    getTopologies(): Promise<Topology[]> {\n        let headers = new Headers();\n        this.addJsonHeaders(headers);\n        return this.http.get(this.topologiesUrl, {\n            headers: headers\n        } )\n            .toPromise()\n            .then(response => response.json().topologies.topology as Topology[])\n            .catch(this.handleError);\n    }\n\n    getTopology(href : string): Promise<string> {\n        let headers = new Headers();\n        this.addXmlHeaders(headers);\n        return this.http.get(href, {\n            headers: headers\n        } )\n            .toPromise()\n            .then(response => response.text())\n            .catch(this.handleError);\n\n    }\n\n   saveTopology(url: string, xml : 
 string): Promise<string> {\n        let xheaders = new Headers();\n        this.addXmlHeaders(xheaders);\n        this.addCsrfHeaders(xheaders);\n        return this.http\n    .put(url, xml, {headers: xheaders})\n    .toPromise()\n    .then(() => xml)\n    .catch(this.handleError);\n\n    }\n\n   createTopology(name: string, xml : string): Promise<string> {\n        let xheaders = new Headers();\n        this.addXmlHeaders(xheaders);\n        this.addCsrfHeaders(xheaders);        \n        let url = this.topologiesUrl + \"/\" + name;\n        return this.http\n    .put(url, xml, {headers: xheaders})\n    .toPromise()\n    .then(() => xml)\n    .catch(this.handleError);\n    }\n\n    deleteTopology(href: string): Promise<string> {\n       let headers = new Headers();\n        this.addJsonHeaders(headers);  \n        this.addCsrfHeaders(headers);              \n        return this.http.delete(href, {\n            headers: headers\n        } )\n            .toPromise()\n            .th
 en(response => response.text())\n            .catch(this.handleError);\n    }\n\n    addJsonHeaders(headers: Headers) {\n        headers.append('Accept', 'application/json');\n        headers.append('Content-Type', 'application/json');\n    }\n\n    addXmlHeaders(headers: Headers) {\n        headers.append('Accept', 'application/xml');\n        headers.append('Content-Type', 'application/xml');\n    }\n\n    addCsrfHeaders(headers: Headers) {\n        headers.append('X-XSRF-Header', 'admin-ui');\n    }\n\n    selectedTopology(value: Topology) {\n        this.selectedTopologySource.next(value);\n    }\n\n    changedTopology(value: string) {\n        this.changedTopologySource.next(value);\n    }\n\n\n    private handleError(error: any): Promise<any> {\n        console.error('An error occurred', error); // for demo purposes only\n        return Promise.reject(error.message || error);\n    }\n}\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/app/topology.servic
 e.ts","import { Component } from '@angular/core';\nimport {TopologyService} from \"./topology.service\";\n\n@Component({\n    selector: 'topology-management',\n    template: `\n      <div class=\"container\">\n        <div class=\"row\">\n          <div class=\"col-md-5\">\n            <topology></topology>\n         </div>\n          <div class=\"col-md-7\">\n            <topology-detail></topology-detail>\n          </div>\n        </div>\n      </div>\n  `,\n    providers: [TopologyService]\n})\n\nexport class AppComponent {\n    constructor(private topologyService : TopologyService) {\n    }\n}\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/app/app.component.ts","import { Injectable }    from '@angular/core';\nimport { Headers, Http } from '@angular/http';\n\nimport 'rxjs/add/operator/toPromise';\n\nimport { GatewayVersion } from './gateway-version';\n\n@Injectable()\nexport class GatewayVersionService {\n\n    private apiUrl = '/gateway/admin/api/v1/ve
 rsion';\n\n    constructor(private http: Http) { }\n\n    getVersion(): Promise<GatewayVersion> {\n        let headers = new Headers();\n        this.createAuthorizationHeader(headers);\n        return this.http.get(this.apiUrl, {\n            headers: headers\n        } )\n            .toPromise()\n            .then(response => response.json().ServerVersion as GatewayVersion)\n            .catch(this.handleError);\n    }\n\n    createAuthorizationHeader(headers: Headers) {\n        headers.append('Accept', 'application/json');\n        headers.append('Content-Type', 'application/json');\n    }\n\n    private handleError(error: any): Promise<any> {\n        console.error('An error occurred', error); // for demo purposes only\n        return Promise.reject(error.message || error);\n    }\n}\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/app/gateway-version.service.ts","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'tab',\n  s
 tyles: [`\n    .pane{\n      padding: 1em;\n    }\n  `],\n  template: `\n    <div [hidden]=\"!active\" class=\"pane\">\n    </div>\n  `\n})\nexport class TabComponent {\n  @Input('tabTitle') title: string;\n  @Input() active = false;\n}\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/app/utils/tab.component.ts","function webpackEmptyContext(req) {\n\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 344;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/sumit.gupta/Projects/ng-knox-ui/src async\n// module id = 344\n// module chunks = 0","import './polyfills.ts';\n\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { enableProdMode } from '@angular/core';\nimport { environment } from './environments/environment';\nimport { AppModule } from 
 './app/';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/main.ts","import { NgModule }      from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { HttpModule }    from '@angular/http';\nimport { RouterModule }   from '@angular/router';\nimport { FormsModule } from '@angular/forms';\n\nimport { AppComponent }  from './app.component';\nimport {TopologyService} from \"./topology.service\";\nimport {GatewayVersionService} from \"./gateway-version.service\";\nimport {GatewayVersionComponent} from \"./gateway-version.component\";\nimport {TopologyComponent} from \"./topology.component\";\nimport {TopologyDetailComponent} from \"./topology-detail.component\";\nimport {XmlPipe} from \"./utils/xml.pipe\";\nimport {JsonPrettyPipe} from \"./utils/json-pretty.pipe\";\nimport { TabComponent } from './utils/tab.component'
 ;\nimport { TabsComponent } from './utils/tabs.component';\n\nimport { AceEditorDirective } from 'ng2-ace-editor'; \nimport { Ng2Bs3ModalModule } from 'ng2-bs3-modal/ng2-bs3-modal'\n\n@NgModule({\n  imports: [ BrowserModule,\n    HttpModule,\n    FormsModule,\n    Ng2Bs3ModalModule\n    ],\n  declarations: [ AppComponent,\n    TopologyComponent,\n      TopologyDetailComponent,\n    GatewayVersionComponent,\n    AceEditorDirective,\n    XmlPipe,\n    JsonPrettyPipe,\n    TabsComponent,\n    TabComponent ],\n  providers: [ TopologyService,\n    GatewayVersionService ],\n  bootstrap: [ AppComponent,\n    GatewayVersionComponent]\n})\nexport class AppModule { }\n\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/app/app.module.ts","import {Component, OnInit} from '@angular/core';\nimport {GatewayVersion} from './gateway-version';\nimport {GatewayVersionService} from \"./gateway-version.service\";\n\n\n@Component({\n    selector: 'gateway-version',\n    template: `
 \n        <div *ngIf=\"gatewayVersion\">\n            <span class=\"small\"><cite>Knox Gateway Version</cite> {{this.gatewayVersion.version}}</span>\n            <span class=\"small\"><cite>Hash</cite> {{this.gatewayVersion.hash}}</span>\n</div>`,\n    providers: [GatewayVersionService]\n})\n\nexport class GatewayVersionComponent implements OnInit {\n\n    gatewayVersion : GatewayVersion;\n\n    constructor(private gatewayVersionService : GatewayVersionService) {\n    }\n\n    getVersion(): void {\n        this.gatewayVersionService.getVersion().then( gatewayVersion => this.gatewayVersion = gatewayVersion);\n    }\n\n    ngOnInit(): void {\n        this.getVersion();\n    }\n\n\n}\n\n\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/app/gateway-version.component.ts","import { Component, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\nimport { Topology } from './topology';\nimport {TopologyService} from \"./topology.service\";\nimport { ModalCompo
 nent } from 'ng2-bs3-modal/ng2-bs3-modal';\n\n@Component({\n    selector: 'topology-detail',\n    template: `\n     <div class=\"panel panel-default\">\n        <div class=\"panel-heading\">\n            <h4 class=\"panel-title\">{{title}} <span class=\"label label-default pull-right\">{{titleSuffix}}</span></h4>\n         </div>\n     <div *ngIf=\"topologyContent\" class=\"panel-body\">\n      <div ace-editor\n       [readOnly]=\"false\" [text]=\"topologyContent | xml\" [mode]=\"'html'\" [options]=\"options\" \n        [theme]=\"'monokai'\"\n         style=\"min-height: 300px; width:100%; overflow: auto;\" (textChanged)=\"onChange($event)\">\n      </div>\n       <div class=\"panel-footer\">\n        <button (click)=\"duplicateModal.open('sm')\" class=\"btn btn-default btn-sm\" type=\"submit\">\n            <span class=\"glyphicon glyphicon-duplicate\" aria-hidden=\"true\"></span>\n        </button>\n        <button (click)=\"deleteConfirmModal.open('sm')\" class=\"btn btn-default 
 btn-sm\" type=\"submit\">\n            <span class=\"glyphicon glyphicon-trash\" aria-hidden=\"true\"></span>\n        </button>\n       <button (click)=\"saveTopology()\" class=\"btn btn-default btn-sm pull-right\" [disabled]=\"!changedTopology\" type=\"submit\">\n            <span class=\"glyphicon glyphicon-floppy-disk\" aria-hidden=\"true\"></span>\n        </button>\n       </div>\n         \n    </div>\n    <modal (onClose)=\"createTopology()\" #duplicateModal>\n\n        <modal-header [show-close]=\"true\">\n            <h4 class=\"modal-title\">Create a copy</h4>\n        </modal-header>\n        <modal-body>\n            <div class=\"form-group\">\n                <label for=\"textbox\">Name the new topology</label>\n                <input autofocus type=\"text\" class=\"form-control\" required [(ngModel)]=\"newTopologyName\" id=\"textbox\">\n            </div> \n        </modal-body>\n        <modal-footer>\n            <button type=\"button\" class=\"btn btn-default btn-s
 m\" data-dismiss=\"duplicateModal\" (click)=\"duplicateModal.dismiss()\">Cancel</button>\n            <button type=\"button\" class=\"btn btn-primary btn-sm\" [disabled]=\"!newTopologyName\" (click)=\"duplicateModal.close()\">Ok</button>\n        </modal-footer>\n    </modal>\n    <modal (onClose)=\"deleteTopology()\" #deleteConfirmModal>\n        <modal-header [show-close]=\"true\">\n            <h4 class=\"modal-title\">Deleting Topology {{titleSuffix}}</h4>\n        </modal-header>\n        <modal-body>\n            Are you sure you want to delete the topology?\n        </modal-body>\n        <modal-footer>\n            <button type=\"button\" class=\"btn btn-default btn-sm\" data-dismiss=\"deleteConfirmModal\" (click)=\"deleteConfirmModal.dismiss()\">Cancel</button>\n            <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"deleteConfirmModal.close()\">Ok</button>\n        </modal-footer>\n    </modal>\n   `\n})\nexport class TopologyDetailComponent implemen
 ts OnInit {\n\n    title = 'Topology Detail';\n    titleSuffix: string;\n    topology: Topology;\n    topologyContent: string;\n    changedTopology: string;\n    newTopologyName: string;\n    options:any = {useWorker: false, printMargin: false};\n\n    @ViewChild('duplicateModal')\n    duplicateModal: ModalComponent;\n\n    @ViewChild('deleteConfirmModal')\n    deleteConfirmModal: ModalComponent;\n\n    constructor(private topologyService : TopologyService) {\n    }\n\n    ngOnInit(): void {\n        this.topologyService.selectedTopology$.subscribe(value => this.populateContent(value));\n    }\n\n    setTitle(value : string) {\n        this.titleSuffix = value;\n    }\n\n    onChange(code: any) {\n        this.changedTopology = code;\n    }\n\n    saveTopology() {\n        this.topologyService.saveTopology(this.topology.href, this.changedTopology)\n        .then(value => this.topologyService.changedTopology(this.topology.name));\n    }\n\n    createTopology() {\n        if (this.cha
 ngedTopology) {\n            this.topologyService.createTopology(this.newTopologyName, this.changedTopology)\n            .then(value => this.topologyService.changedTopology(this.newTopologyName));\n        } else {\n            this.topologyService.createTopology(this.newTopologyName, this.topologyContent)\n            .then(value => this.topologyService.changedTopology(this.newTopologyName));\n        }\n    }\n\n    deleteTopology() {\n        this.topologyService.deleteTopology(this.topology.href).then(value => this.topologyService.changedTopology(this.topology.name));\n    }\n\n    populateContent(topology: Topology) {\n        this.topology = topology;\n        this.setTitle(topology.name);\n        if (this.topology) {\n            if (this.topology.href) {\n                this.topologyService.getTopology(this.topology.href).then( content => this.topologyContent = content);\n            }\n        }\n    }\n\n\n}\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-k
 nox-ui/src/app/topology-detail.component.ts","import {Component, OnInit} from '@angular/core';\nimport {Topology} from './topology';\nimport {TopologyService} from \"./topology.service\";\nimport { Subscription }   from 'rxjs/Subscription';\n\n\n@Component({\n    selector: 'topology',\n    template: `\n        <div class=\"table-responsive\" style=\"max-height: 400px; width:100%; overflow: auto;\">\n            <table class=\"table table-striped table-hover\">\n              <thead>\n                <tr>\n                  <th>Topology Name</th>\n                  <th>Timestamp</th>\n                </tr>\n              </thead>\n         <tbody>\n         <tr *ngFor=\"let topology of topologies\"\n          [class.selected]=\"topology === selectedTopology\"\n        (click)=\"onSelect(topology)\">\n         <td>{{topology.name}}</td> \n         <td>{{topology.timestamp | date:'yMMMdjms'}}</td> \n         </tr>\n        </tbody>\n        </table>\n        </div>\n       `\n})\nexpor
 t class TopologyComponent implements OnInit {\n\n    value :any;\n    topologies: Topology[];\n    selectedTopology: Topology;\n\n\n    constructor(private topologyService : TopologyService) {\n    }\n\n    getTopologies(): void {\n        this.topologyService.getTopologies().then(topologies => this.topologies = topologies);\n    }\n\n    ngOnInit(): void {\n        this.getTopologies();\n        this.topologyService.changedTopology$.subscribe(value => this.getTopologies());\n    }\n\n    onSelect(topology: Topology): void {\n        this.selectedTopology = topology;\n        this.topologyService.selectedTopology(topology);\n    }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/app/topology.component.ts","import { Pipe, PipeTransform } from '@angular/core';\n\ndeclare var vkbeautify: any;\n\n@Pipe({name: 'jsonpretty'})\nexport class JsonPrettyPipe implements PipeTransform {\n\n  transform(value: string): string {\n    return vkbeautify.json(value);\n 
  }\n}\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/app/utils/json-pretty.pipe.ts","import { Component, ContentChildren, QueryList, AfterContentInit } from '@angular/core';\nimport { TabComponent } from './tab.component';\n\n@Component({\n  selector: 'tabs',\n  template:`\n    <ul class=\"nav nav-tabs\">\n      <li *ngFor=\"let tab of tabs\" (click)=\"selectTab(tab)\" [class.active]=\"tab.active\">\n        <a>{{tab.title}}</a>\n      </li>\n    </ul>\n    \n  `\n})\nexport class TabsComponent implements AfterContentInit {\n  \n  @ContentChildren(TabComponent) tabs: QueryList<TabComponent>;\n  \n  // contentChildren are set\n  ngAfterContentInit() {\n    // get all active tabs\n    let activeTabs = this.tabs.filter((tab)=>tab.active);\n    \n    // if there is no active tab set, activate the first\n    if(activeTabs.length === 0) {\n      this.selectTab(this.tabs.first);\n    }\n  }\n  \n  selectTab(tab: TabComponent){\n    // deactivate all tabs\n    this
 .tabs.toArray().forEach(tab => tab.active = false);\n    \n    // activate the tab the user has clicked on.\n    tab.active = true;\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/app/utils/tabs.component.ts","import { Pipe, PipeTransform } from '@angular/core';\n\ndeclare var vkbeautify: any;\n\n@Pipe({name: 'xml'})\nexport class XmlPipe implements PipeTransform {\n\n  transform(value: string): string {\n    return vkbeautify.xml(value);\n  }\n}\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/app/utils/xml.pipe.ts","export const environment = {\n  production: true\n};\n\n\n\n// WEBPACK FOOTER //\n// /Users/sumit.gupta/Projects/ng-knox-ui/src/environments/environment.prod.ts"],"sourceRoot":""}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/styles.b2328beb0372c051d06d.bundle.js
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/styles.b2328beb0372c051d06d.bundle.js b/gateway-applications/src/main/resources/applications/admin-ui/app/styles.b2328beb0372c051d06d.bundle.js
new file mode 100644
index 0000000..b94948e
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/styles.b2328beb0372c051d06d.bundle.js
@@ -0,0 +1,2 @@
+webpackJsonp([1,3],{346:function(n,o){},630:function(n,o,c){n.exports=c(346)}},[630]);
+//# sourceMappingURL=styles.b2328beb0372c051d06d.bundle.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/styles.b2328beb0372c051d06d.bundle.map
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/styles.b2328beb0372c051d06d.bundle.map b/gateway-applications/src/main/resources/applications/admin-ui/app/styles.b2328beb0372c051d06d.bundle.map
new file mode 100644
index 0000000..a982c00
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/styles.b2328beb0372c051d06d.bundle.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"styles.d41d8cd98f00b204e9800998ecf8427e.bundle.css","sourceRoot":""}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/styles.d41d8cd98f00b204e9800998ecf8427e.bundle.css
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/styles.d41d8cd98f00b204e9800998ecf8427e.bundle.css b/gateway-applications/src/main/resources/applications/admin-ui/app/styles.d41d8cd98f00b204e9800998ecf8427e.bundle.css
new file mode 100644
index 0000000..9ab459c
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/styles.d41d8cd98f00b204e9800998ecf8427e.bundle.css
@@ -0,0 +1,2 @@
+
+/*# sourceMappingURL=styles.b2328beb0372c051d06d.bundle.map*/
\ No newline at end of file


[2/7] knox git commit: KNOX-749 Initial admin UI source project and productized distribution

Posted by su...@apache.org.
http://git-wip-us.apache.org/repos/asf/knox/blob/87a7592e/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.map
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.map b/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.map
new file mode 100644
index 0000000..4fe7f71
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/vendor.a4f10aaf35e0664cc5fa.bundle.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///vendor.a4f10aaf35e0664cc5fa.bundle.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/index.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_export.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/facade/lang.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/facade/lang.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_an-object.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/output/output_ast.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_fails.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_is-object.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_wks.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/identifiers.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_co
 re.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_global.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/private_import_core.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-dp.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/dom_adapter.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_descriptors.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/compile_metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_has.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_redefine.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_string-html.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/facade/lang.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/facade/errors.js","webpack:////Use
 rs/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_to-length.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/parse_util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/di.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/control_value_accessor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_strict-method.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_to-iobject.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_to-object.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/Observable.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/compiler_util/identifier_util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ml_parser/interpolation_config.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/template_parser/template_as
 t.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/validators.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/facade/lang.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-sap.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/control_container.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_array-methods.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_defined.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_hide.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-gpo.js","webpack:///(webpack)/buildin/global.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/
 pipes/invalid_pipe_argument_error.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ml_parser/ast.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/schema/element_schema_registry.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/shared.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/enums.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_meta.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-gopd.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/directive_wrapper_compiler.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ml_parser/tags.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/ng_control.js","webpack:////Users/s
 umit.gupta/Projects/ng-knox-ui/~/core-js/modules/_a-function.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_cof.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_property-desc.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_to-primitive.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/config.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/facade/collection.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ml_parser/parser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/util/decorators.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/facade/async.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/facade/lang.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/events/event_manager.js","webpack:////Users/s
 umit.gupta/Projects/ng-knox-ui/~/core-js/modules/_ctx.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-create.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-keys.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_to-integer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/compiler_util/expression_converter.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/expression_parser/parser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/url_resolver.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/di/injector.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/facade/collection.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/compiler.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/abstract_form_gr
 oup_directive.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/ng_form.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/radio_control_value_accessor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/reactive_directives/form_group_directive.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/reactive_directives/form_group_name.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/headers.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/interfaces.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_add-to-unscopables.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_iobject.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_iterators.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-gopn.js","we
 bpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_to-index.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_uid.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/ng2-bs3-modal/components/modal.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/Subject.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/util/root.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/localization.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/location/location_strategy.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/expression_parser/lexer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ml_parser/html_parser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/selector.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/template_parser/template_parser.js","webpack:///
 /Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/constants.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/view_compiler.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/application_tokens.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/change_detection/change_detection.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/change_detection/change_detection_util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/change_detection/constants.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/di/metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/component_factory_resolver.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/element_ref.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/view_type.js
 ","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/view_utils.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/profile/profile.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/checkbox_value_accessor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/default_value_accessor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/ng_model_group.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/reactive_errors.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/select_control_value_accessor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/select_multiple_control_value_accessor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/model.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angula
 r/http/src/base_response_options.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/http_utils.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/url_search_params.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/dom_tokens.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_fix-re-wks.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_for-of.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-gops.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-pie.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_set-to-string-tag.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_shared.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_string-trim.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.to-
 string.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.iterator.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/Subscription.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/index.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/location/location.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/location/platform_location.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/animation/animation_parser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/chars.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/directive_normalizer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/directive_resolver.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/expression_parser/ast.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui
 /~/@angular/compiler/src/i18n/digest.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/parse_util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/metadata_resolver.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ml_parser/html_tags.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ng_module_compiler.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ng_module_resolver.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/output/abstract_emitter.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/output/class_builder.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/pipe_resolver.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/resource_loader.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/sty
 le_compiler.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/compile_method.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/deps.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animation/animation_player.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/application_init.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/application_ref.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/change_detection/differs/default_iterable_differ.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/console.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/di/forward_ref.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/di/opaque_token.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/di/reflective_key.js","webpack:
 ////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/di/reflective_provider.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/facade/async.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/component_factory.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/reflection/reflection.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/reflection/reflector_reader.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/render/api.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/testability/testability.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/type.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/util/lang.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/zone/ng_zone.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives
 /abstract_control_directive.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/ng_control_status.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/ng_model.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/number_value_accessor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/range_value_accessor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/reactive_directives/form_control_directive.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/reactive_directives/form_control_name.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/validators.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/index.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/backends/browser_xhr.js","webpack:////Users/su
 mit.gupta/Projects/ng-knox-ui/~/@angular/http/src/base_request_options.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/static_response.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/index.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/animation_driver.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/debug/ng_probe.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/dom_renderer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/events/hammer_gestures.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/shared_styles_host.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/security/url_sanitizer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_an-instance.js","web
 pack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_collection.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_enum-bug-keys.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_fails-is-regexp.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_flags.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_inherit-if-required.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_is-array.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_is-regexp.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_iter-define.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_library.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_math-expm1.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_math-sign.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js
 /modules/_redefine-all.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_set-proto.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_set-species.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_shared-key.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_string-context.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_string-ws.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/Subscriber.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/symbol/rxSubscriber.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/util/errorObject.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/util/isFunction.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/directives/index.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/directives/ng_switch.js","webpack:////Users/sumit.gupta/Project
 s/ng-knox-ui/~/@angular/common/src/facade/intl.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/pipes/index.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/animation/animation_ast.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/animation/animation_compiler.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/assertions.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/compiler_util/binding_util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/compiler_util/render_util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/extractor_merger.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/i18n_ast.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/i18n_html_parser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui
 /~/@angular/compiler/src/i18n/message_bundle.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/serializers/serializer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/serializers/xliff.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/serializers/xmb.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/serializers/xml_helper.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/serializers/xtb.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ml_parser/xml_parser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/output/ts_emitter.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/output/value_util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/provider_analyzer.js","webpack:////Users/sumit.gupta/Projects/n
 g-knox-ui/~/@angular/compiler/src/runtime_compiler.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/schema/dom_element_schema_registry.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/style_url_resolver.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/template_parser/binding_parser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/template_parser/template_preparser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/compile_element.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/compile_query.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/compile_view.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animation/animation_constants.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animatio
 n/animation_group_player.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animation/animation_queue.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animation/animation_sequence_player.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animation/animation_transition_event.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animation/metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/change_detection/differs/default_keyvalue_differ.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/change_detection/differs/iterable_differs.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/change_detection/differs/keyvalue_differs.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/debug/debug_node.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/di/reflective_errors.js","web
 pack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/error_handler.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/i18n/tokens.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/debug_context.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/errors.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/ng_module_factory.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/ng_module_factory_loader.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/template_ref.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/view_container_ref.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/view_ref.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/
 core/src/metadata/lifecycle_hooks.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/metadata/view.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/reflection/reflection_capabilities.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/reflection/reflector.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/security.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/error_examples.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/template_driven_errors.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/facade/collection.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/form_builder.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/private_import_core.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/backends/browser_j
 sonp.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/backends/jsonp_backend.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/backends/xhr_backend.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/body.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/http.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/static_request.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser-dynamic/src/platform_providers.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser-dynamic/src/resource_loader/resource_loader_impl.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/browser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/browser/browser_adapter.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/browser/l
 ocation/browser_platform_location.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/browser/testability.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/browser/title.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/events/dom_events.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/events/key_events.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/web_animations_driver.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/private_import_core.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/security/dom_sanitization_service.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/brace/index.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/brace/mode/html.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui
 /~/brace/theme/monokai.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_a-number-value.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_array-includes.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_array-reduce.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_bind.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_classof.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_collection-strong.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_create-property.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_dom-create.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_html.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_ie8-dom-define.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_is-array-iter.js","webpack:////Users/su
 mit.gupta/Projects/ng-knox-ui/~/core-js/modules/_is-integer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_iter-call.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_iter-create.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_iter-detect.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_iter-step.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_math-log1p.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-assign.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-dps.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-gopn-ext.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_object-keys-internal.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_parse-float.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/mod
 ules/_parse-int.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_string-at.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_string-repeat.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_wks-ext.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/core.get-iterator-method.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.iterator.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.map.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.regexp.flags.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.regexp.match.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.regexp.replace.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.regexp.search.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.regexp.split.js"
 ,"webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.set.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.symbol.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/web.dom.iterable.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/ng2-bs3-modal/components/modal-body.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/ng2-bs3-modal/components/modal-footer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/ng2-bs3-modal/components/modal-header.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/ng2-bs3-modal/components/modal-instance.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/ng2-bs3-modal/ng2-bs3-modal.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/add/operator/toPromise.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/operator/toPromise.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/util/tryCatch.js","webpack:////Users/sumit.gupta/Pro
 jects/ng-knox-ui/~/@angular/common/src/common_module.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/directives/ng_class.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/directives/ng_for.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/directives/ng_if.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/directives/ng_plural.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/directives/ng_style.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/directives/ng_template_outlet.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/facade/collection.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/facade/errors.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/location.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/locatio
 n/hash_location_strategy.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/location/path_location_strategy.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/pipes/async_pipe.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/pipes/date_pipe.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/pipes/i18n_plural_pipe.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/pipes/i18n_select_pipe.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/pipes/json_pipe.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/pipes/lowercase_pipe.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/pipes/number_pipe.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/pipes/slice_pipe.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/pipes/uppercase_pip
 e.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/common/src/private_import_core.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/animation/styles_collection.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/compiler.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/i18n_parser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/serializers/placeholder.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/i18n/translation_bundle.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/lifecycle_reflector.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ml_parser/icu_ast_expander.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ml_parser/lexer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/ml_parser/xml_tag
 s.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/offline_compiler.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/output/abstract_js_emitter.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/output/output_interpreter.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/output/output_jit.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/output/path_util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/schema/dom_security_schema.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/shadow_css.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/compile_pipe.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/event_binder.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_com
 piler/lifecycle_binder.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/property_binder.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/view_binder.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/compiler/src/view_compiler/view_builder.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animation/animation_keyframe.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animation/animation_style_util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animation/animation_styles.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animation/animation_transition.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/animation/view_animation_map.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/application_module.js","webpack:////Users/sumit.gupta/Pro
 jects/ng-knox-ui/~/@angular/core/src/change_detection.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/change_detection/change_detector_ref.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/core.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/core_private_export.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/debug/debug_renderer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/di/reflective_injector.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/animation_view_context.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/element_injector.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/query_list.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/s
 ystem_js_ng_module_factory_loader.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/view.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/linker/view_container.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/metadata/di.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/metadata/directives.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/metadata/ng_module.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/platform_core_providers.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/profile/wtf_impl.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/render.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/util.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/core/src/zone.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/form
 s/index.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/directives/normalize_validator.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/form_providers.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/forms/src/forms.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/http/src/http_module.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser-dynamic/index.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser-dynamic/src/facade/lang.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser-dynamic/src/platform-browser-dynamic.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser-dynamic/src/private_export.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser-dynamic/src/privat
 e_import_platform-browser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser-dynamic/src/resource_loader/resource_loader_cache.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/browser/generic_browser_adapter.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/browser/location/history.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/browser/tools/common_tools.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/browser/tools/tools.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/debug/by.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/dom/web_animations_player.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/facade/browser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platf
 orm-browser/src/facade/collection.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/platform-browser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/private_export.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/security/html_sanitizer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/@angular/platform-browser/src/security/style_sanitizer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/ng2-ace-editor/src/component.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/ng2-ace-editor/src/directive.ts","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/brace/worker/css.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/brace/worker/html.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/brace/worker/javascript.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/array.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/
 core-js/es6/date.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/function.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/map.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/math.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/number.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/object.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/parse-float.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/parse-int.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/reflect.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/regexp.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/set.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/string.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/es6/symbol.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/
 es7/reflect.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_array-copy-within.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_array-fill.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_array-from-iterable.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_array-species-constructor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_array-species-create.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_collection-weak.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_date-to-primitive.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_enum-keys.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_invoke.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_keyof.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_own-keys.js","webp
 ack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_same-value.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/_wks-define.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.copy-within.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.every.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.fill.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.filter.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.find-index.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.find.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.for-each.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.from.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.index-of.js","webpack:////Use
 rs/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.is-array.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.join.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.last-index-of.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.map.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.of.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.reduce-right.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.reduce.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.slice.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.some.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.sort.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.array.species.js","webpack:////Users/su
 mit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.date.now.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.date.to-iso-string.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.date.to-json.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.date.to-primitive.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.date.to-string.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.function.bind.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.function.has-instance.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.function.name.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.acosh.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.asinh.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.atanh.js","webpack:////U
 sers/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.cbrt.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.clz32.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.cosh.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.expm1.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.fround.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.hypot.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.imul.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.log10.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.log1p.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.log2.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.sign.js","webpack:////Users/sumit.gupta/Projects/ng-knox
 -ui/~/core-js/modules/es6.math.sinh.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.tanh.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.math.trunc.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.constructor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.epsilon.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.is-finite.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.is-integer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.is-nan.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.is-safe-integer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.max-safe-integer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.min-safe-integer.js","webpack:///
 /Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.parse-float.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.parse-int.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.to-fixed.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.number.to-precision.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.assign.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.create.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.define-properties.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.define-property.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.freeze.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.get-own-property-descriptor.js","webpack:////Users/sumit.gupta/Projects/ng
 -knox-ui/~/core-js/modules/es6.object.get-own-property-names.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.get-prototype-of.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.is-extensible.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.is-frozen.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.is-sealed.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.is.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.keys.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.prevent-extensions.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.seal.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.object.set-prototype-of.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.par
 se-float.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.parse-int.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.apply.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.construct.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.define-property.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.delete-property.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.enumerate.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.get-prototype-of.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.get.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.has.js","webpack:////Users/su
 mit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.is-extensible.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.own-keys.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.prevent-extensions.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.set-prototype-of.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.reflect.set.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.regexp.constructor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.regexp.to-string.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.anchor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.big.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.blink.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es
 6.string.bold.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.code-point-at.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.ends-with.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.fixed.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.fontcolor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.fontsize.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.from-code-point.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.includes.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.italics.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.link.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.raw.js","webpack:////Users/sumit.gupta/Projects/ng-knox-
 ui/~/core-js/modules/es6.string.repeat.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.small.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.starts-with.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.strike.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.sub.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.sup.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.string.trim.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es6.weak-map.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es7.reflect.define-metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es7.reflect.delete-metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:////Users/su
 mit.gupta/Projects/ng-knox-ui/~/core-js/modules/es7.reflect.get-metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es7.reflect.get-own-metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es7.reflect.has-metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es7.reflect.has-own-metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/core-js/modules/es7.reflect.metadata.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/ng2-ace-editor/ng2-ace-editor.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/ng2-bs3-modal/directives/autofocus.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/process/browser.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/Observer.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/SubjectSubscription.js","webpack:///
 /Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/add/observable/fromEvent.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/add/operator/map.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/observable/FromEventObservable.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/observable/PromiseObservable.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/observable/fromEvent.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/observable/fromPromise.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/operator/map.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/symbol/observable.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/util/ObjectUnsubscribedError.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/util/UnsubscriptionError.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/util/isArray.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/util/isObject.js","webpac
 k:////Users/sumit.gupta/Projects/ng-knox-ui/~/rxjs/util/toSubscriber.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/w3c-blob/browser.js","webpack:///(webpack)/buildin/amd-define.js","webpack:////Users/sumit.gupta/Projects/ng-knox-ui/~/zone.js/dist/zone.js"],"names":["webpackJsonp","module","exports","__webpack_require__","__WEBPACK_IMPORTED_MODULE_0__src_core__","d","global","core","hide","redefine","ctx","PROTOTYPE","$export","type","name","source","key","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","target","expProto","undefined","Function","call","U","W","R","isPresent","obj","isBlank","isStrictStringMap","Object","getPrototypeOf","STRING_MAP_PROTO","stringify","token","overriddenName","res","toString","newLineIndex","indexOf","substring","isJsObject","o","getSymbolIterator","_symbolIterator","globalScope","Symbol","iterator","keys","getOwnPropertyNames","Map","prototype","i","length","isPrimitive","escapeRegExp","s","rep
 lace","NumberWrapper","window","WorkerGlobalScope","self","_global","assert","condition","parseIntAutoRadix","text","result","parseInt","isNaN","Error","isNumeric","value","parseFloat","scheduleMicroTask","fn","Zone","current","getTypeNameForDebugging","looseIdentical","a","b","print","console","log","warn","isObject","it","TypeError","replaceVarInExpression","varName","newValue","expression","transformer","_ReplaceVariableTransformer","visitExpression","findReadVarNames","stmts","finder","_VariableFinder","visitAllStatements","varNames","variable","ReadVarExpr","importExpr","id","typeParams","ExternalExpr","importType","typeModifiers","__WEBPACK_IMPORTED_MODULE_0__facade_lang__","ExternalType","literalArr","values","LiteralArrayExpr","literalMap","LiteralMapExpr","not","expr","NotExpr","params","body","FunctionExpr","literal","LiteralExpr","TypeModifier","Type","BuiltinTypeName","ArrayType","MapType","DYNAMIC_TYPE","BOOL_TYPE","NUMBER_TYPE","STRING_TYPE","FUNCTION_TYPE","NULL_TYPE"
 ,"BinaryOperator","Expression","BuiltinVar","BuiltinMethod","FnParam","BinaryOperatorExpr","THIS_EXPR","SUPER_EXPR","NULL_EXPR","StmtModifier","Statement","DeclareVarStmt","ExpressionStatement","ReturnStatement","ClassField","ClassMethod","ClassGetter","ClassStmt","IfStmt","ExpressionTransformer","__extends","this","__","constructor","p","hasOwnProperty","create","modifiers","hasModifier","modifier","BuiltinType","_super","visitType","visitor","context","visitBuiltintType","visitExternalType","of","visitArrayType","valueType","visitMapType","Dynamic","Bool","Int","Number","String","Null","prop","ReadPropExpr","index","ReadKeyExpr","callMethod","InvokeMethodExpr","callFn","InvokeFunctionExpr","instantiate","InstantiateExpr","conditional","trueCase","falseCase","ConditionalExpr","equals","rhs","Equals","notEquals","NotEquals","identical","Identical","notIdentical","NotIdentical","minus","Minus","plus","Plus","divide","Divide","multiply","Multiply","modulo","Modulo","and","And","or","O
 r","lower","Lower","lowerEquals","LowerEquals","bigger","Bigger","biggerEquals","BiggerEquals","TYPED_NULL_EXPR","cast","CastExpr","toStmt","builtin","visitReadVarExpr","set","WriteVarExpr","visitWriteVarExpr","toDeclStmt","WriteKeyExpr","receiver","visitWriteKeyExpr","WritePropExpr","visitWritePropExpr","method","args","visitInvokeMethodExpr","visitInvokeFunctionExpr","classExpr","visitInstantiateExpr","visitLiteralExpr","visitExternalExpr","visitConditionalExpr","visitNotExpr","visitCastExpr","statements","visitFunctionExpr","DeclareFunctionStmt","operator","lhs","visitBinaryOperatorExpr","visitReadPropExpr","visitReadKeyExpr","entries","visitLiteralArrayExpr","visitLiteralMapExpr","This","Super","CatchError","CatchStack","visitStatement","visitDeclareVarStmt","visitDeclareFunctionStmt","visitExpressionStmt","visitReturnStmt","AbstractClassPart","parent","fields","getters","constructorMethod","methods","visitDeclareClassStmt","visitIfStmt","TryCatchStmt","CommentStmt","comment","v
 isitCommentStmt","bodyStmts","catchStmts","visitTryCatchStmt","ThrowStmt","error","visitThrowStmt","ast","visitAllExpressions","_this","map","entry","exprs","stmt","RecursiveExpressionVisitor","forEach","_varName","_newValue","apply","arguments","Set","add","exec","e","store","uid","USE_SYMBOL","$exports","assetUrl","pkg","path","resolveIdentifier","identifier","__WEBPACK_IMPORTED_MODULE_1__compile_metadata__","moduleUrl","reference","__WEBPACK_IMPORTED_MODULE_2__private_import_core__","runtime","identifierToken","resolveIdentifierToken","resolveEnumIdentifier","enumType","resolvedEnum","resolveEnum","__WEBPACK_IMPORTED_MODULE_0__angular_core__","Identifiers","APP_VIEW_MODULE_URL","VIEW_UTILS_MODULE_URL","CD_MODULE_URL","ANIMATION_STYLE_UTIL_ASSET_URL","ANALYZE_FOR_ENTRY_COMPONENTS","ViewUtils","AppView","DebugAppView","ViewContainer","ElementRef","ViewContainerRef","ChangeDetectorRef","RenderComponentType","QueryList","TemplateRef","TemplateRef_","CodegenComponentFactoryResolver","
 ComponentFactoryResolver","ComponentFactory","ComponentRef_","ComponentRef","NgModuleFactory","NgModuleInjector","RegisterModuleFactoryFn","ValueUnwrapper","Injector","ViewEncapsulation","ViewType","ChangeDetectionStrategy","StaticNodeDebugInfo","DebugContext","Renderer","SimpleChange","UNINITIALIZED","ChangeDetectorStatus","checkBinding","devModeEqual","inlineInterpolate","interpolate","castByValue","EMPTY_ARRAY","EMPTY_MAP","createRenderElement","selectOrCreateRenderHostElement","pureProxies","pureProxy1","pureProxy2","pureProxy3","pureProxy4","pureProxy5","pureProxy6","pureProxy7","pureProxy8","pureProxy9","pureProxy10","SecurityContext","AnimationKeyframe","AnimationStyles","NoOpAnimationPlayer","AnimationGroupPlayer","AnimationSequencePlayer","prepareFinalAnimationStyles","balanceAnimationKeyframes","clearStyles","renderStyles","collectAndResolveStyles","LOCALE_ID","TRANSLATIONS_FORMAT","setBindingDebugInfo","setBindingDebugInfoForChanges","AnimationTransition","InlineArray","i
 nlineArrays","InlineArray2","InlineArray4","InlineArray8","InlineArray16","EMPTY_INLINE_ARRAY","InlineArrayDynamic","subscribeToRenderElement","createRenderComponentType","noop","version","__e","Math","__g","isDefaultChangeDetectionStrategy","LifecycleHooks","LIFECYCLE_HOOKS_VALUES","ReflectorReader","registerModuleFactory","view_utils","Console","reflector","Reflector","ReflectionCapabilities","ANY_STATE","DEFAULT_STATE","EMPTY_STATE","FILL_STYLE_FLAG","ComponentStillLoadingError","RenderDebugInfo","AnimationPlayer","ViewMetadata","anObject","IE8_DOM_DEFINE","toPrimitive","dP","defineProperty","f","O","Attributes","getDOM","_DOM","setRootDomAdapter","adapter","DomAdapter","resourceLoaderType","get","_attrToPropMap","enumerable","configurable","unimplemented","createHostComponentMeta","compMeta","template","__WEBPACK_IMPORTED_MODULE_3__selector__","parse","selector","getMatchingElementTemplate","CompileDirectiveMetadata","CompileTypeMetadata","isHost","CompileTemplateMetadata","enca
 psulation","None","templateUrl","styles","styleUrls","ngContentSelectors","animations","changeDetection","Default","inputs","outputs","host","isComponent","providers","viewProviders","queries","viewQueries","_normalizeArray","isStaticSymbol","__WEBPACK_IMPORTED_MODULE_1__facade_collection__","__WEBPACK_IMPORTED_MODULE_2__facade_lang__","__WEBPACK_IMPORTED_MODULE_4__util__","CompileAnimationEntryMetadata","CompileAnimationStateDeclarationMetadata","CompileAnimationStateTransitionMetadata","CompileAnimationKeyframesSequenceMetadata","CompileAnimationStyleMetadata","CompileAnimationAnimateMetadata","CompileAnimationWithStepsMetadata","CompileAnimationSequenceMetadata","CompileAnimationGroupMetadata","CompileIdentifierMetadata","CompileDiDependencyMetadata","CompileProviderMetadata","CompileFactoryMetadata","CompileTokenMetadata","CompileQueryMetadata","CompileStylesheetMetadata","CompilePipeMetadata","CompileNgModuleMetadata","TransitiveCompileNgModuleMetadata","ProviderMeta","HOST_REG
 _EXP","CompileMetadataWithIdentifier","definitions","CompileAnimationStateMetadata","stateNameExpr","stateChangeExpr","steps","CompileAnimationMetadata","offset","timings","_a","_b","prefix","isAttribute","isSelf","isSkipSelf","isOptional","isValue","useClass","useValue","useExisting","useFactory","deps","multi","diDeps","identifierIsInstance","lifecycleHooks","selectors","descendants","first","propertyName","read","externalStylesheets","interpolation","flatten","toSummary","isSummary","anim","exportAs","hostListeners","hostProperties","hostAttributes","entryComponents","matches","match","inputsMap","bindConfig","parts","outputsMap","pure","declaredDirectives","exportedDirectives","declaredPipes","exportedPipes","bootstrapComponents","importedModules","exportedModules","schemas","transitiveModule","directiveLoaders","toInjectorSummary","toDirectiveSummary","modules","directives","pipes","directivesSet","pipesSet","dir","pipe","dependencies","has","SRC","TO_STRING","$toString","TPL",
 "split","inspectSource","val","safe","isFunction","join","fails","defined","quot","createHTML","string","tag","attribute","p1","NAME","test","toLowerCase","isDate","Date","valueOf","BaseError","WrappedError","message","nativeError","_nativeError","stack","originalError","toInteger","min","ParseLocation","ParseSourceFile","ParseSourceSpan","ParseErrorLevel","ParseError","file","line","col","url","content","start","end","details","span","msg","level","FATAL","ctxStart","contextStr","ctxEnd","ctxLen","ctxLines","__WEBPACK_IMPORTED_MODULE_0__di_metadata__","__WEBPACK_IMPORTED_MODULE_1__di_forward_ref__","__WEBPACK_IMPORTED_MODULE_2__di_injector__","__WEBPACK_IMPORTED_MODULE_3__di_reflective_injector__","__WEBPACK_IMPORTED_MODULE_4__di_reflective_provider__","__WEBPACK_IMPORTED_MODULE_5__di_reflective_key__","__WEBPACK_IMPORTED_MODULE_6__di_opaque_token__","NG_VALUE_ACCESSOR","arg","IObject","root_1","toSubscriber_1","observable_1","Observable","subscribe","_isScalar","_subscribe","lift"
 ,"observable","observerOrNext","complete","sink","toSubscriber","syncErrorThrowable","syncErrorThrown","syncErrorValue","next","PromiseCtor","root","Rx","config","Promise","resolve","reject","subscription","err","unsubscribe","subscriber","$$observable","createDiTokenExpression","__WEBPACK_IMPORTED_MODULE_2__output_output_ast__","Const","createInlineArray","__WEBPACK_IMPORTED_MODULE_1__identifiers__","log2","ceil","identifierSpec","concat","createPureProxy","argCount","pureProxyProp","builder","push","pureProxyId","ctorStmts","createEnumExpression","enumValue","enumName","find","propName","__WEBPACK_IMPORTED_MODULE_0__assertions__","InterpolationConfig","DEFAULT_INTERPOLATION_CONFIG","fromArray","markers","templateVisitAll","asts","visit","astResult","TextAst","BoundTextAst","AttrAst","BoundElementPropertyAst","BoundEventAst","ReferenceAst","VariableAst","ElementAst","EmbeddedTemplateAst","BoundDirectivePropertyAst","DirectiveAst","ProviderAst","ProviderAstType","NgContentAst","Prop
 ertyBindingType","ngContentIndex","sourceSpan","visitText","visitBoundText","visitAttr","securityContext","needsRuntimeSecurityContext","unit","visitElementProperty","Animation","phase","handler","calcFullName","visitEvent","visitReference","visitVariable","attrs","references","hasViewContainer","children","endSourceSpan","visitElement","variables","visitEmbeddedTemplate","directiveName","templateName","visitDirectiveProperty","directive","hostEvents","visitDirective","multiProvider","eager","providerType","visitNgContent","isEmptyInputValue","_convertToPromise","__WEBPACK_IMPORTED_MODULE_4__private_import_core__","__WEBPACK_IMPORTED_MODULE_1_rxjs_operator_toPromise__","_executeValidators","control","validators","v","_executeAsyncValidators","_mergeErrors","arrayOfErrors","reduce","errors","__WEBPACK_IMPORTED_MODULE_3__facade_lang__","__WEBPACK_IMPORTED_MODULE_2__facade_collection__","merge","n","NG_VALIDATORS","NG_ASYNC_VALIDATORS","Validators","required","minLength","minlength","r
 equiredLength","actualLength","maxLength","maxlength","pattern","nullValidator","regex","regexStr","RegExp","requiredPattern","actualValue","c","compose","presentValidators","filter","composeAsync","promises","all","then","setValueOnPath","name_1","shift","KEY","dashCaseToCamelCase","input","DASH_CASE_REGEXP","m","_i","toUpperCase","splitAtColon","defaultValues","_splitAt","splitAtPeriod","character","characterIndex","slice","trim","sanitizeIdentifier","visitValue","Array","isArray","visitArray","visitStringMap","visitPrimitive","visitOther","MODULE_SUFFIX","ValueTransformer","SyncAsyncResult","arr","syncResult","asyncResult","__WEBPACK_IMPORTED_MODULE_0__abstract_control_directive__","ControlContainer","toObject","toLength","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","that","createDesc","object","shared","getOrCreateMetadataMap","targetKey","targetMetadata","keyMetadata","ordinaryHasOwnMetadata","MetadataKey","met
 adataMap","ordinaryGetOwnMetadata","ordinaryDefineOwnMetadata","MetadataValue","ordinaryOwnMetadataKeys","_","toMetaKey","IE_PROTO","ObjectProto","g","eval","__WEBPACK_IMPORTED_MODULE_0__facade_errors__","__WEBPACK_IMPORTED_MODULE_1__facade_lang__","InvalidPipeArgumentError","visitAll","nodes","Text","Expansion","ExpansionCase","Attribute","Element","Comment","switchValue","cases","switchValueSourceSpan","visitExpansion","valueSourceSpan","expSourceSpan","visitExpansionCase","valueSpan","visitAttribute","startSourceSpan","visitComment","ElementSchemaRegistry","controlPath","setUpControl","_throwError","valueAccessor","validator","__WEBPACK_IMPORTED_MODULE_1__validators__","asyncValidator","writeValue","registerOnChange","viewToModelUpdate","markAsDirty","setValue","emitModelToViewChange","registerOnTouched","markAsTouched","emitModelEvent","setDisabledState","registerOnDisabledChange","isDisabled","_rawValidators","registerOnValidatorChange","updateValueAndValidity","_rawAsyncValida
 tors","cleanUpControl","_noControlError","_clearChangeFns","setUpFormContainer","messageEnd","composeValidators","__WEBPACK_IMPORTED_MODULE_4__normalize_validator__","composeAsyncValidators","isPropertyUpdated","changes","viewModel","change","isFirstChange","currentValue","isBuiltInAccessor","BUILTIN_ACCESSORS","some","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","__WEBPACK_IMPORTED_MODULE_3__default_value_accessor__","__WEBPACK_IMPORTED_MODULE_2__checkbox_value_accessor__","__WEBPACK_IMPORTED_MODULE_5__number_value_accessor__","__WEBPACK_IMPORTED_MODULE_6__radio_control_value_accessor__","__WEBPACK_IMPORTED_MODULE_7__range_value_accessor__","__WEBPACK_IMPORTED_MODULE_8__select_control_value_accessor__","__WEBPACK_IMPORTED_MODULE_9__select_multiple_control_value_accessor__","RequestMethod","ReadyState","ResponseType","ContentType","ResponseContentType","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","
 getWeak","onFreeze","meta","NEED","pIE","toIObject","gOPD","getOwnPropertyDescriptor","addNgDoCheckMethod","changedVar","__WEBPACK_IMPORTED_MODULE_9__output_output_ast__","CHANGED_FIELD_NAME","lifecycleStmts","genChanges","onChangesStmts","ngOnChanges","CONTEXT_FIELD_NAME","CHANGES_FIELD_NAME","compilerConfig","logBindingUpdate","__WEBPACK_IMPORTED_MODULE_6__identifiers__","VIEW_VAR","RENDER_EL_VAR","RESET_CHANGES_STMT","ngOnInit","ngDoCheck","THROW_ON_CHANGE_VAR","addCheckInputMethod","field","__WEBPACK_IMPORTED_MODULE_1__compiler_util_binding_util__","onChangeStatements","CURR_VALUE_VAR","methodBody","currValExpr","forceUpdate","FORCE_UPDATE_VAR","addCheckHostMethod","hostProps","methodParams","COMPONENT_VIEW_VAR","hostProp","hostPropIdx","evalResult","__WEBPACK_IMPORTED_MODULE_2__compiler_util_expression_converter__","bindingId","securityContextExpr","checkBindingStmts","isAnimation","__WEBPACK_IMPORTED_MODULE_3__compiler_util_render_util__","EVENT_HANDLER_FIELD_NAME","updateStmt
 s","detachStmts","addHandleEventMethod","resultVar","actionStmts","hostListener","eventIdx","trueStmts","preventDefault","EVENT_NAME_VAR","fullName","event","addSubscribeMethod","dirMeta","emitterPropName","emitterIdx","eventName","paramName","subscriptionFieldName","SubscribeObservable","Bind","destroyStmts","parseHostBindings","exprParser","schemaRegistry","parser","__WEBPACK_IMPORTED_MODULE_13__template_parser_binding_parser__","__WEBPACK_IMPORTED_MODULE_7__ml_parser_interpolation_config__","sourceFileName","sourceFile","__WEBPACK_IMPORTED_MODULE_10__parse_util__","parsedHostProps","createDirectiveHostPropertyAsts","parsedHostListeners","createDirectiveHostEventAsts","ParseResult","reportParseErrors","parseErrors","warnings","WARNING","_console","__WEBPACK_IMPORTED_MODULE_4__config__","__WEBPACK_IMPORTED_MODULE_5__expression_parser_parser__","__WEBPACK_IMPORTED_MODULE_8__output_class_builder__","__WEBPACK_IMPORTED_MODULE_11__private_import_core__","__WEBPACK_IMPORTED_MODULE_12__s
 chema_element_schema_registry__","DirectiveWrapperCompiler","DirectiveWrapperExpressions","DirectiveWrapperCompileResult","dirWrapperClassVar","_exprParser","_schemaRegistry","dirWrapperClassName","compile","hostParseResult","DirectiveWrapperBuilder","inputFieldName","classStmt","build","decorators","ctorParameters","dirLifecycleHooks","OnChanges","OnInit","DoCheck","ngOnDestroy","OnDestroy","dirDepParamNames","Private","ctorParams","builders","depsExpr","dirWrapper","view","renderElement","throwOnChange","checkHost","componentView","runtimeSecurityContexts","ngOnDetach","renderEl","usedEvents","eventListener","needsSubscribe","eventFlags","eventUsed","handleEvent","splitNsName","elementName","colonIndex","getNsPrefix","mergeNsAndName","localName","TagContentType","NAMED_ENTITIES","Aacute","aacute","Acirc","acirc","acute","AElig","aelig","Agrave","agrave","alefsym","Alpha","alpha","amp","ang","apos","Aring","aring","asymp","Atilde","atilde","Auml","auml","bdquo","Beta","beta","brvba
 r","bull","cap","Ccedil","ccedil","cedil","cent","Chi","chi","circ","clubs","cong","copy","crarr","cup","curren","dagger","Dagger","darr","dArr","deg","Delta","delta","diams","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","Mu","mu","nabla","nbsp","ndash","ne","ni","notin","nsub","Ntilde","ntilde","Nu","nu","Oacute","oacute","Ocirc","ocirc","OElig","oelig","Ograve","ograve","oline","Omega","omega","Omicron","omicron","oplus","ordf","ordm","Oslash","oslash","Otilde","otilde","otimes"
 ,"Ouml","ouml","para","permil","perp","Phi","phi","Pi","pi","piv","plusmn","pound","prime","Prime","prod","Psi","psi","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","getPropertyInView","property","callingView","definedView","viewProp","currView","declarationElement","_ReplaceViewTransformer","injectFromViewParentInjector","optional","viewExpr","viewType","__WEBPACK_IMPORTED_MODULE_3__private_import_core__","HOST","__WEBPACK_IMPORTED_MODULE_0__compiler_util_identifier_util__","getViewClas
 sName","component","embeddedTemplateIndex","getHandleEventMethodName","elementIndex","_viewExpr","_view","_isThis","classType","NgControl","_parent","bitmap","writable","CompilerConfig","_c","renderTypes","DefaultRenderTypes","_d","defaultEncapsulation","Emulated","genDebugInfo","_e","useJit","_genDebugInfo","_logBindingUpdate","RenderTypes","renderText","renderComment","renderNode","renderEvent","StringMapWrapper","ListWrapper","m1","m2","k","k1","k2","removeAll","list","items","splice","remove","el","flat","item","flatItem","lastOnStack","element","__WEBPACK_IMPORTED_MODULE_1__parse_util__","__WEBPACK_IMPORTED_MODULE_2__ast__","__WEBPACK_IMPORTED_MODULE_3__interpolation_config__","__WEBPACK_IMPORTED_MODULE_4__lexer__","__WEBPACK_IMPORTED_MODULE_5__tags__","ParseTreeResult","Parser","TreeError","rootNodes","getTagDefinition","parseExpansionForms","interpolationConfig","tokensAndErrors","treeAndErrors","_TreeBuilder","tokens","_index","_rootNodes","_errors","_elementStack","_advance
 ","_peek","EOF","TAG_OPEN_START","_consumeStartTag","TAG_CLOSE","_consumeEndTag","CDATA_START","_closeVoidElement","_consumeCdata","COMMENT_START","_consumeComment","TEXT","RAW_TEXT","ESCAPABLE_RAW_TEXT","_consumeText","EXPANSION_FORM_START","_consumeExpansion","prev","_advanceIf","startToken","CDATA_END","COMMENT_END","_addToParent","EXPANSION_CASE_VALUE","expCase","_parseExpansionCase","EXPANSION_FORM_END","EXPANSION_CASE_EXP_START","_collectExpansionExpTokens","parsedExp","expansionFormStack","EXPANSION_CASE_EXP_END","pop","parent_1","_getParentElement","ignoreFirstLf","isVoid","startTagToken","ATTR_NAME","_consumeAttr","_getElementFullName","selfClosing","TAG_OPEN_END_VOID","tagDef","canSelfClose","TAG_OPEN_END","_pushElement","_popElement","parentEl","isClosedByChild","_getParentElementSkippingContainers","container","requireExtraParent","newParent","parentToAdd","_insertBeforeContainer","endTagToken","stackIndex","closedByParent","attrName","ATTR_VALUE","valueToken","node","pa
 rentElement","implicitNamespacePrefix","extractAnnotation","annotation","applyParams","fnOrArray","annotations","annoLength","paramsAnnotations","ii","paramAnnotations","j","Reflect","defineMetadata","Class","clsDef","proto","extends","constructorName","_nextClassId","makeDecorator","props","parentClass","chainFn","DecoratorFactory","objOrType","getMetadata","metaCtor","annotationInstance","chainAnnotation","TypeDecorator","cls","getOwnMetadata","makeMetadataCtor","annotationCls","argVal","makeParamDecorator","ParamDecoratorFactory","ParamDecorator","unusedKey","parameters","bind","makePropDecorator","PropDecoratorFactory","decoratorInstance","unshift","__WEBPACK_IMPORTED_MODULE_0_rxjs_Subject__","__WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__","EventEmitter","isAsync","__isAsync","emit","generatorOrNext","schedulerFn","errorFn","completeFn","setTimeout","__WEBPACK_IMPORTED_MODULE_1__dom_adapter__","EVENT_MANAGER_PLUGINS","EventManager","EventManagerPlugin","plugins","_zone","_eventN
 ameToPlugin","manager","_plugins","reverse","addEventListener","plugin","_findPluginFor","addGlobalEventListener","getZone","plugin_1","supports","getGlobalEventTarget","aFunction","dPs","enumBugKeys","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","document","open","write","close","Properties","$keys","floor","convertPropertyBinding","nameResolver","implicitReceiver","createCurrValueExpr","DefaultNameResolver","_AstToIrVisitor","VAL_UNWRAPPER_VAR","outputExpr","_Mode","temporaryCount","temporaryDeclaration","needsValueUnwrapper","initValueUnwrapperStmt","__WEBPACK_IMPORTED_MODULE_3__output_output_ast__","Final","ConvertPropertyBindingResult","convertActionBinding","action","flattenStatements","prependTemporaryDecls","lastIndex","preventDefaultVar","lastStatement","returnExpr","convertStmtIntoExpression","createPreventDefaultVar","ConvertActionBindingResult","createSharedBindingVariablesIfNeeded","unwrapperStmts","readVars","__WEB
 PACK_IMPORTED_MODULE_2__identifiers__","temporaryName","temporaryNumber","ensureStatementMode","mode","ensureExpressionMode","convertToStatementIfNeeded","output","createCachedLiteralArray","proxyExpr","proxyParams","proxyReturnEntries","__WEBPACK_IMPORTED_MODULE_4__identifier_util__","createCachedLiteralMap","__WEBPACK_IMPORTED_MODULE_0__expression_parser_ast__","EventHandlerVars","_builder","_nameResolver","_implicitReceiver","_valueUnwrapper","isAction","_nodeMap","_resultMap","_currentTemporary","visitBinary","op","operation","left","right","visitChain","expressions","visitConditional","trueExp","falseExp","visitPipe","callPipe","visitFunctionCall","visitImplicitReceiver","visitInterpolation","strings","visitKeyedRead","visitKeyedWrite","visitLiteralArray","visitLiteralMap","visitLiteralPrimitive","_getLocal","getLocal","visitMethodCall","leftMostSafe","leftMostSafeNode","convertSafeAccess","varExpr","visitPrefixNot","visitPropertyRead","visitPropertyWrite","visitSafePropertyRea
 d","visitSafeMethodCall","visitQuote","temporary","guardedExpression","needsTemporary","allocateTemporary","access","delete","releaseTemporary","visitSome","tempNumber","max","_createInterpolateRegExp","__WEBPACK_IMPORTED_MODULE_1__chars__","__WEBPACK_IMPORTED_MODULE_3__ml_parser_interpolation_config__","__WEBPACK_IMPORTED_MODULE_4__ast__","__WEBPACK_IMPORTED_MODULE_5__lexer__","SplitInterpolation","offsets","TemplateBindingParseResult","templateBindings","_lexer","parseAction","location","_checkNoInterpolation","sourceToLex","_stripComments","tokenize","_ParseAST","parseChain","parseBinding","_parseBindingAst","parseSimpleBinding","SimpleExpressionChecker","check","_reportError","errLocation","ctxLocation","quote","_parseQuote","prefixSeparatorIndex","uninterpretedExpression","parseTemplateBindings","prefixToken","prefixTokens","t","parseInterpolation","splitInterpolation","expressionText","regexp","part","_findInterpolationErrorColumn","wrapLiteralPrimitive","_commentStart","outer
 Quote","char","charCodeAt","nextChar","partInErrIdx","inputLength","rparensExpected","rbracketsExpected","rbracesExpected","peek","inputIndex","advance","optionalCharacter","code","isCharacter","peekKeywordLet","isKeywordLet","expectCharacter","fromCharCode","optionalOperator","isOperator","expectOperator","expectIdentifierOrKeyword","isIdentifier","isKeyword","expectIdentifierOrKeywordOrString","isString","parsePipe","parseExpression","parseConditional","parseLogicalOr","yes","no","parseLogicalAnd","parseEquality","parseRelational","Operator","strValue","parseAdditive","parseMultiplicative","parsePrefix","parseCallChain","parsePrimary","parseAccessMemberOrMethodCall","parseCallArguments","isKeywordNull","isKeywordUndefined","isKeywordTrue","isKeywordFalse","isKeywordThis","elements","parseExpressionList","parseLiteralMap","isNumber","toNumber","literalValue","terminator","isSafe","positionals","expectTemplateBindingKey","operatorFound","bindings","keyIsVar","name_2","start_1","loca
 tionText","skip","isError","getUrlScheme","_split","_ComponentIndex","Scheme","_buildFromEncodedParts","opt_scheme","opt_userInfo","opt_domain","opt_port","opt_path","opt_queryData","opt_fragment","uri","_splitRe","_removeDotSegments","leadingSlash","trailingSlash","segments","up","pos","segment","_joinAndCanonicalizePath","Path","UserInfo","Domain","Port","QueryData","Fragment","_resolveUrl","base","encodeURI","baseParts","lastIndexOf","DEFAULT_PACKAGE_URL_PROVIDER","UrlResolver","_ASSET_SCHEME","provide","_packagePrefix","baseUrl","resolvedUrl","resolvedParts","pathSegements","THROW_IF_NOT_FOUND","_THROW_IF_NOT_FOUND","_NullInjector","notFoundValue","NULL","isListLikeIterable","__WEBPACK_IMPORTED_MODULE_0__lang__","areIterablesEqual","comparator","iterator1","iterator2","item1","item2","done","iterateListLike","__WEBPACK_IMPORTED_MODULE_0__di__","__WEBPACK_IMPORTED_MODULE_1__facade_errors__","ModuleWithComponentFactories","Compiler","COMPILER_OPTIONS","CompilerFactory","compType",
 "ngModuleFactory","componentFactories","compileModuleSync","moduleType","compileModuleAsync","compileModuleAndAllComponentsSync","compileModuleAndAllComponentsAsync","clearCache","clearCacheFor","__WEBPACK_IMPORTED_MODULE_0__control_container__","__WEBPACK_IMPORTED_MODULE_1__shared__","AbstractFormGroupDirective","_checkParentType","formDirective","addFormGroup","removeFormGroup","getFormGroup","_validators","_asyncValidators","__WEBPACK_IMPORTED_MODULE_1__facade_async__","__WEBPACK_IMPORTED_MODULE_2__model__","__WEBPACK_IMPORTED_MODULE_3__validators__","__WEBPACK_IMPORTED_MODULE_4__control_container__","__WEBPACK_IMPORTED_MODULE_5__shared__","NgForm","formDirectiveProvider","resolvedPromise","asyncValidators","_submitted","ngSubmit","form","controls","addControl","_findContainer","_control","registerControl","emitEvent","getControl","removeControl","group","updateModel","ctrl","onSubmit","$event","onReset","resetForm","reset","(submit)","(reset)","__WEBPACK_IMPORTED_MODULE_1__contr
 ol_value_accessor__","__WEBPACK_IMPORTED_MODULE_2__ng_control__","RadioControlRegistry","RadioControlValueAccessor","RADIO_VALUE_ACCESSOR","_accessors","accessor","select","_isSameGroup","fireUncheck","controlPair","_renderer","_elementRef","_registry","_injector","onChange","onTouched","_checkName","_state","setElementProperty","nativeElement","_fn","formControlName","_throwNameError","(change)","(blur)","propDecorators","__WEBPACK_IMPORTED_MODULE_5__reactive_errors__","__WEBPACK_IMPORTED_MODULE_6__shared__","FormGroupDirective","_checkFormPresent","_updateValidators","_updateDomValue","_updateRegistrations","addFormArray","removeFormArray","getFormArray","newCtrl","_updateTreeValidity","_registerOnCollectionChange","_oldForm","sync","async","missingFormException","_hasInvalidParent","FormGroupName","__WEBPACK_IMPORTED_MODULE_6__form_group_directive__","FormArrayName","__WEBPACK_IMPORTED_MODULE_2__abstract_form_group_directive__","__WEBPACK_IMPORTED_MODULE_3__control_container__","
 __WEBPACK_IMPORTED_MODULE_4__reactive_errors__","formGroupNameProvider","groupParentException","formArrayNameProvider","arrayParentException","Headers","headers","_headers","_normalizedNames","append","fromResponseHeaderString","headersString","getAll","lcName","from","mayBeSetNormalizedName","toJSON","serialized","ConnectionBackend","XSRFStrategy","Connection","UNSCOPABLES","ArrayProto","cof","propertyIsEnumerable","hiddenKeys","px","random","core_1","modal_instance_1","ModalComponent","overrideSize","visible","animation","backdrop","keyboard","cssClass","onClose","onDismiss","onOpen","instance","ModalInstance","hidden","ModalResult","Dismiss","shown","destroy","routerCanDeactivate","size","ModalSize","validSize","dismiss","getCssClasses","classes","isSmall","isLarge","Large","Small","Component","class","role","tabindex","Input","Output","fadeClass","HostBinding","dataKeyboardAttr","dataBackdropAttr","Observable_1","Subscriber_1","Subscription_1","ObjectUnsubscribedError_1","Subjec
 tSubscription_1","rxSubscriber_1","SubjectSubscriber","destination","Subscriber","Subject","observers","closed","isStopped","hasError","thrownError","$$rxSubscriber","subject","AnonymousSubject","ObjectUnsubscribedError","len","Subscription","EMPTY","SubjectSubscription","asObservable","objectTypes","boolean","function","number","freeGlobal","getPluralCategory","ngLocalization","nbCase","getPluralCase","locale","nLike","nDecimal","abs","Plural","One","Other","Zero","Two","Few","Many","NgLocalization","NgLocaleLocalization","_locale","plural","LocationStrategy","APP_BASE_HREF","__WEBPACK_IMPORTED_MODULE_7__src_resource_loader__","__WEBPACK_IMPORTED_MODULE_8__src_compiler__","newCharacterToken","Token","TokenType","Character","newIdentifierToken","Identifier","newKeywordToken","Keyword","newOperatorToken","newStringToken","newNumberToken","newErrorToken","isIdentifierStart","scanner","_Scanner","isIdentifierPart","isExponentStart","isExponentSign","isQuote","unescape","Lexer","KEYWORD
 S","scanToken","numValue","operater","scanIdentifier","scanNumber","scanCharacter","scanString","scanOperator","

<TRUNCATED>