From 3405a42d4434bb77026c029ed20f2898ba665107 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Thu, 11 Jan 2018 09:25:50 +0800
Subject: [PATCH] 框架升级

---
 README-zh_CN.md                                                  |  107 +
 src/app/layout/fullscreen/fullscreen.component.ts                |    2 
 src/app/layout/default/header/components/user.component.ts       |    3 
 src/app/layout/default/sidebar/sidebar.component.html            |    0 
 src/assets/i18n/en.json                                          |    9 
 src/environments/environment.chore.ts                            |    4 
 _mock/index.ts                                                   |    4 
 src/app/layout/default/default.component.spec.ts                 |   17 
 src/app/layout/default/header/components/task.component.ts       |    0 
 src/app/layout/default/header/header.component.html              |    2 
 src/assets/demo.xlsx                                             |    0 
 .stylelintrc                                                     |   30 
 src/assets/demo.pdf                                              |    0 
 src/environments/environment.prod.ts                             |    4 
 src/environments/environment.ts                                  |    3 
 .editorconfig                                                    |    2 
 LICENSE                                                          |   21 
 src/app/layout/default/header/components/icon.component.ts       |    0 
 src/app/routes/routes.module.ts                                  |   24 
 .dockerignore                                                    |   12 
 CONTRIBUTING.md                                                  |  200 ++
 src/assets/demo.pptx                                             |    0 
 src/app/layout/default/header/index.md                           |    0 
 src/app/app.module.ts                                            |   41 
 src/app/layout/passport/passport.component.less                  |    0 
 src/app/core/i18n/i18n.service.ts                                |   22 
 src/app/layout/default/header/header.component.spec.ts           |    3 
 CHANGELOG.md                                                     |  194 ++
 README.md                                                        |  105 
 src/app/routes/dashboard/monitor/monitor.component.ts            |  524 -----
 docker-compose.yml                                               |   10 
 src/app/layout/default/default.component.ts                      |    6 
 src/app/core/i18n/i18n.service.spec.ts                           |    6 
 tsconfig.json                                                    |    8 
 yarn.lock                                                        |  279 ++
 src/app/layout/default/sidebar/sidebar.component.spec.ts         |    2 
 src/app/app.component.spec.ts                                    |    6 
 src/app/core/net/default.interceptor.ts                          |    6 
 src/app/routes/routes-routing.module.ts                          |   30 
 src/app/layout/default/header/components/fullscreen.component.ts |    2 
 _mock/_chart.ts                                                  |   37 
 src/app/core/README.md                                           |    5 
 .npmignore                                                       |    6 
 src/app/delon.module.ts                                          |  208 ++
 src/tsconfig.spec.json                                           |   16 
 .gitignore                                                       |    2 
 e2e/app.e2e-spec.ts                                              |    2 
 src/environments/environment.hmr.ts                              |    6 
 src/test.ts                                                      |    2 
 src/app/core/core.module.ts                                      |    7 
 src/app/layout/default/header/components/theme.component.ts      |    0 
 src/app/shared/README.md                                         |   30 
 src/assets/i18n/zh-CN.json                                       |   20 
 _mock/_profile.ts                                                |   26 
 src/app/layout/layout.module.ts                                  |   40 
 .travis.yml                                                      |   27 
 src/app/layout/default/header/components/notify.component.ts     |    0 
 src/app/layout/default/default.component.html                    |    5 
 _mock/README.md                                                  |    1 
 _mock/_api.ts                                                    |   17 
 docker-compose.debug.yml                                         |   13 
 src/app/routes/dashboard/v1/v1.component.ts                      |   24 
 src/app/layout/passport/passport.component.html                  |    0 
 src/app/routes/dashboard/analysis/analysis.component.ts          |   17 
 src/app/layout/default/header/components/langs.component.ts      |    0 
 src/tsconfig.app.json                                            |   16 
 src/app/core/startup/startup.service.ts                          |   57 
 src/app/routes/dashboard/workplace/workplace.component.ts        |   20 
 src/app/layout/default/header/header.component.ts                |    0 
 src/app/layout/default/header/components/search.component.ts     |    0 
 src/app/shared/shared.module.ts                                  |  195 -
 src/app/routes/dashboard/workplace/workplace.component.less      |    2 
 src/assets/app-data.json                                         |  173 +
 src/testing/common.spec.ts                                       |   20 
 src/app/layout/default/header/components/storage.component.ts    |    0 
 src/assets/demo.docx                                             |    0 
 Dockerfile                                                       |   27 
 /dev/null                                                        |  605 ------
 src/app/layout/default/sidebar/sidebar.component.ts              |    0 
 src/app/layout/passport/passport.component.ts                    |    8 
 _mock/_rule.ts                                                   |   26 
 package.json                                                     |   34 
 src/assets/iconsfont.json                                        | 2310 ++++++++++++++++++++++++
 83 files changed, 4,023 insertions(+), 1,669 deletions(-)

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..c97fba0
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,12 @@
+node_modules
+npm-debug.log
+Dockerfile*
+docker-compose*
+.dockerignore
+.git
+.gitignore
+README.md
+LICENSE
+.vscode
+_screenshot
+_documents
diff --git a/.editorconfig b/.editorconfig
index 6e87a00..9b73521 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -4,7 +4,7 @@
 [*]
 charset = utf-8
 indent_style = space
-indent_size = 2
+indent_size = 4
 insert_final_newline = true
 trim_trailing_whitespace = true
 
diff --git a/.gitignore b/.gitignore
index 22ea4c3..dbb8954 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,4 +38,6 @@
 Thumbs.db
 .angulardoc.json
 yarn.lock
+/_nginx/*
+.github/*
 
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..e4282f4
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,6 @@
+.github
+_screenshot
+node_modules
+
+dist
+tmp
diff --git a/.stylelintrc b/.stylelintrc
new file mode 100644
index 0000000..fcfd1f6
--- /dev/null
+++ b/.stylelintrc
@@ -0,0 +1,30 @@
+{
+  "extends": "stylelint-config-standard",
+  "rules": {
+    "comment-empty-line-before": null,
+    "declaration-empty-line-before": null,
+    "function-comma-newline-after": null,
+    "function-name-case": null,
+    "function-parentheses-newline-inside": null,
+    "function-max-empty-lines": null,
+    "function-whitespace-after": null,
+    "indentation": null,
+    "number-leading-zero": null,
+    "number-no-trailing-zeros": null,
+    "rule-empty-line-before": null,
+    "selector-combinator-space-after": null,
+    "selector-list-comma-newline-after": null,
+    "selector-pseudo-element-colon-notation": null,
+    "unit-no-unknown": null,
+    "value-list-max-empty-lines": null,
+    "selector-type-no-unknown": null,
+    "selector-pseudo-element-no-unknown": [
+        true,
+        {
+            "ignorePseudoElements": [
+                "ng-deep"
+            ]
+        }
+    ]
+  }
+}
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..95950e1
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,27 @@
+sudo: false
+language: node_js
+node_js:
+  - "8.5.0"
+
+addons:
+  chrome: stable
+
+git:
+  depth: 1
+
+before_install:
+  - export CHROME_BIN=chromium-browser
+  - export DISPLAY=:99.0
+  - sh -e /etc/init.d/xvfb start
+  - npm install -g npm@~5.3.0
+
+install:
+  - npm install
+
+script:
+  - npm run test
+  - npm run test-coverage
+
+after_success:
+  - ./node_modules/.bin/codecov
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..1c03fbf
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,194 @@
+# update no more, please to [release](https://github.com/cipchk/ng-alain/releases) page.
+
+-------------------
+
+# 0.1.2-beta.10
+
++ ng-zorro-antd 0.6.x ������[#504](https://github.com/NG-ZORRO/ng-zorro-antd/issues/504)��������������������������������������������� ng-zorro-antd ������������������������������
+
+# 0.1.2-beta.9
+
++ ������ ng-zorro-antd ������������������������ [translator.service](./src/app/core/translator/translator.service.ts)
+    + ������ ng-zorro-antd ��� `rc` ������������������������������������ `@angular/cdk` ���������������������������
+
+> ���������������������������������������������������������������������������
+
+# 0.1.2-beta.8
+
++ ������������������������ [menu.service.ts](./src/app/core/services/menu.service.ts)
++ ������������������������������������������������
++ ������ ng-zorro-antd ������������������������ bug ������������ `header.component.ts`���
+
+# 0.1.2-beta.7
+
++ ������Docker������
+    + ������ `.dockerignore`���`docker-compose.yml`���`docker-compose.debug.yml`���`Dockerfile` ������
+    + ������ `_nginx` ������
+
+# 0.1.2-beta.6
+
++ ������������������������[���������������](https://cipchk.github.io/ng-alain/#/data-v/relation)
++ ������������������������������ `target` ������
++ ������Front-End-Checklist������ `index.html`
+
+# 0.1.2-beta.5
+
++ ������ `[_src]` ������������������������������
+    + ���������������qq���������������������������
+    + ������������http&https������http
+    + ������������onerror������
++ ���������������
+    + ������ `text-truncate` ��� `!important`���
+    + ������ `.simple-table` ��� `img` ��������� `padding-left` ��������� `margin-left` ���������������
++ ������������EMAIL���������������������closes [#35](https://github.com/cipchk/ng-alain/issues/35)
++ ������������������������������������������������������������closes [#34](https://github.com/cipchk/ng-alain/issues/34)
++ ������ `sparkline.directive.ts` ���������
++ ������tsline���������`curly: false`���
+
+# 0.1.2-beta.4
+
++ ���������������������hover���������������������closes [#31](https://github.com/cipchk/ng-alain/issues/31)
+
+# 0.1.2-beta.3
+
++ ������ `file-upload` ������������ `span` ���������������������������������������������closes [#27](https://github.com/cipchk/ng-alain/issues/27)
+
+# 0.1.2-beta.2
+
++ ������ `TitleService` ������������������������
+
+# 0.1.2-beta.1
+
++ ������������������ git-subtree ������ `styles` ��������������� `src/styles/alain/`��������� `themes.service.ts` ���������
+
+# 0.1.1-beta.2
+
++ ������ `ng-zorro-antd` ������������������
++ ������������������������
+
+# 0.1.1-beta.1
+
+������ ng-alain ��������������������������� alain ������������������������������������������������������ scss ������ less��������� scss ������������������������������������������
+
++ scss ��� less ������������
+    + `.angular-cli.json` ��� `styles`���`styleExt` ��������� `.less`
+    + `themes.service.ts` ��������� `.less`
+    + ��������� `.scss` ������������������ `.less`
++ **������** ������������������������������������������ `.less` ������������������������������������������������������������������������������������������������������������������
++ ������ `down-file` ���������
++ ������ `ng-zorro-antd` ���������������������������������������BUG������������������������
+
+# 0.1.0-beta.1
+
+**0.1.0���������������**
+
+������ `nz-menu` ������������ ng-alain ������������������������������������������������������������������������������������ `0.0.x` ���������������������������������������������������������
+
++ `0.1.0` ��������������� `layout`���������������������������`styles` ���������������������������������������������������������
++ ���10������������������������5������������������������������������������������������������������������������������10���������������
++ ������������ `14px` ���������
++ ������������������������������������������������ `_alain-custom-variables.scss` ������������������������������������ng-alain��������� `ng-zorro-antd` ���������������������������������������������������������������������������������������������������
++ ������������������������������������������������������
++ **���������������** ��������������� ng-zorro-antd ������������������
++ closes [#6](https://github.com/cipchk/ng-alain/issues/6) [#12](https://github.com/cipchk/ng-alain/issues/12) [#13](https://github.com/cipchk/ng-alain/issues/13) [#14](https://github.com/cipchk/ng-alain/issues/14) [#23](https://github.com/cipchk/ng-alain/issues/23)
+
+**������**
+
++ ������ `ng lint`
++ ��� `app.component.ts` ������������������ `nz-root`
++ ���������
+    + ������ `badge-dot` ������������
+    + ������ `nz-table` ������������������������������
+    + ������ `unwrap` ���������������������������header���aside ������
+    + ������ `width-*`���`modal-*`
++ ������������������IE������������������ `polyfills.ts` ���������������
++ ��� Logo
++ ������ `angular`���`angular-cli`���`ng-zorro-antd` ���������������
+    + ��������������������������������������� `licenses` BUG������������������������
+    + close [#15](https://github.com/cipchk/ng-alain/issues/15)
+
+# 0.1.0-beta.1
+
++ ������ `.simple-table`���`.search-form`���`.fixed-btns` ������������������[���������](https://cipchk.github.io/ng-alain/#/extras/poi)
++ ������HTML������������������������������������������������������������ `_alain-custom-variables.scss` ������ `$form-state-visual-feedback-enabled: true;`
++ ���������������
++ ������ `_HttpClient`���`ModalHelper` ���
+    + `_HttpClient` ������������������������������ `[nzLoading]` ���������������
+    + `ModalHelper` ���������������������������
++ ������Modal���������������������������������������������[CSS���������������](./_documents/component-patch.md)
+
+# 0.0.1-beta.3
+
++ **���** ������������ `_alain-custom-variables.scss` ������ `styles` ������������������������������������������������������������ [������������������](./_documents/upgrade.md)���
++ ������ `yn`���`keys` ������������ [pipe������](./_documents/pipe.md)
++ ������ `badge` ������
++ ������ `angular-cli@4.4.1`���`ng-zorro-antd@0.5.1`
+
+# 0.0.1-beta.2
+
++ ������ `tree`���`sortable`���`sweetalert` ������
+
+# 0.0.1-beta.1
+
++ ��������������������������������������� `header-left-right.component` ������������������������������ `.top-nav-wrap` ������
++ ���������������������������������������
++ ������������ `environments` ���������������������������������������������������������������
++ ������ `TokenService` ������������������
++ ���������������������
++ ������ `StartupService` ���������������������BUG
++ ������ `@angular/cli` ��������������������������������������������� `licenses` BUG������������ ` --extract-licenses=false` ������������������������
++ ������������������������
+
+# 0.0.1-beta
+
++ ������ `core`���`shared` ��������������������� `@shared/shared.module` ������ `SharedModule`
++ ��������������������� `.full` ������������������������������������������������
++ ������������������������������������������
++ ������������������������������������ `ueditor` ���������������������������������
++ ������������������������������������������������������������
++ ������ `core/services` ������������
+
+# 0.0.1-alpha.7
+
++ ������TOKEN���������������
++ ���������������������������������������������closes #8
++ ������ `angular-cli`���`ng-zorro-antd` ���������������
++ ������������ `angular-cli` ���commonjs������������������������������������������ `preloader` ��� ������ `main.ts` ������������������
+
+# 0.0.1-alpha.6
+
++ ���������������������������������������������������������������������
++ ������ACL
++ ������������������
++ ������ #6 #7
+
+# 0.0.1-alpha.5
+
++ ���������������������
++ ������ `algin`���`img` ������CSS���������
++ ������10*10���������CSS���������
++ ������ `ng-zorro-antd` ���������������
+
+# 0.0.1-alpha.4
+
++ ������G2������
++ ��������������� `nz-avatar` antd������������
++ ������ `ng-zorro-antd` ���������������
++ ������ [#1](https://github.com/cipchk/ng-alain/issues/1)
+
+# 0.0.1-alpha.3
+
++ ������������������DEMO
++ ������������������������
++ ������ `nz-carousel` ���������������������
++ ���������������������
+
+# 0.0.1-alpha.2
+
++ ������ `.list-group` CSS������
++ ������ `_date`���`_currenty` Pipe
++ ���������������������������������������������
++ ������ component-patch.md pipe.md ������
+
++ ������������������������ `nzFocus`���`nzBlur` ���������
++ ������ `color.service`���`scroll.service` ��� services ���������
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..a1a6489
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,200 @@
+# Contributing to ng-alain
+
+We would love for you to contribute to ng-alain and help make it even better than it is
+today! As a contributor, here are the guidelines we would like you to follow:
+
+ - [Issues and Bugs](#issue)
+ - [Feature Requests](#feature)
+ - [Submission Guidelines](#submit)
+ - [Coding Rules](#rules)
+ - [Commit Message Guidelines](#commit)
+
+## <a name="issue"></a> Found a Bug?
+If you find a bug in the source code, you can help us by
+[submitting an issue](#submit-issue) to our [GitHub Repository][github]. Even better, you can
+[submit a Pull Request](#submit-pr) with a fix.
+
+## <a name="feature"></a> Missing a Feature?
+You can *request* a new feature by [submitting an issue](#submit-issue) to our GitHub
+Repository. If you would like to *implement* a new feature, please submit an issue with
+a  for your work first, to be sure that we can use it.
+Please consider what kind of change it is:
+
+* For a **Major Feature**, first open an issue and outline your proposal so that it can be
+discussed. This will also allow us to better coordinate our efforts, prevent duplication of work,
+and help you to craft the change so that it is successfully accepted into the project.
+* **Small Features** can be crafted and directly [submitted as a Pull Request](#submit-pr).
+
+## <a name="submit"></a> Submission Guidelines
+
+### <a name="submit-issue"></a> Submitting an Issue
+
+Before you submit an issue, please search the issue tracker, maybe an issue for your problem already exists and the discussion might inform you of workarounds readily available.
+
+We want to fix all the issues as soon as possible, but before fixing a bug we need to reproduce and confirm it. In order to reproduce bugs we will systematically ask you to provide a minimal reproduction scenario using http://plnkr.co. Having a live, reproducible scenario gives us wealth of important information without going back & forth to you with additional questions like:
+
+- version of ng-alain used
+- 3rd-party libraries and their versions
+- and most importantly - a use-case that fails
+
+A minimal reproduce scenario using http://plnkr.co/ allows us to quickly confirm a bug (or point out coding problem) as well as confirm that we are fixing the right problem. If plunker is not a suitable way to demonstrate the problem (for example for issues related to our npm packaging), please create a standalone git repository demonstrating the problem.
+
+We will be insisting on a minimal reproduce scenario in order to save maintainers time and ultimately be able to fix more bugs. Interestingly, from our experience users often find coding problems themselves while preparing a minimal plunk. We understand that sometimes it might be hard to extract essentials bits of code from a larger code-base but we really need to isolate the problem before we can fix it.
+
+Unfortunately we are not able to investigate / fix bugs without a minimal reproduction, so if we don't hear back from you we are going to close an issue that don't have enough info to be reproduced.
+
+You can file new issues by filling out our [new issue form](https://github.com/cipchk/ng-alain/issues/new).
+
+
+### <a name="submit-pr"></a> Submitting a Pull Request (PR)
+Before you submit your Pull Request (PR) consider the following guidelines:
+
+* Search [GitHub](https://github.com/cipchk/ng-alain/pulls) for an open or closed PR
+  that relates to your submission. You don't want to duplicate effort.
+* Make your changes in a new git branch:
+
+     ```shell
+     git checkout -b my-fix-branch master
+     ```
+
+* Create your patch, **including appropriate test cases**.
+* Follow our [Coding Rules](#rules).
+* Run the full ng-alain test suite <!-- , as described in the [developer documentation][dev-doc] -->, and ensure that all tests pass.
+* Commit your changes using a descriptive commit message that follows our
+  [commit message conventions](#commit). Adherence to these conventions
+  is necessary because release notes are automatically generated from these messages.
+
+     ```shell
+     git commit -a
+     ```
+  Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files.
+
+* Push your branch to GitHub:
+
+    ```shell
+    git push origin my-fix-branch
+    ```
+
+* In GitHub, send a pull request to `ng-alain:master`.
+* If we suggest changes then:
+  * Make the required updates.
+  * Re-run the ng-alain test suites to ensure tests are still passing.
+  * Rebase your branch and force push to your GitHub repository (this will update your Pull Request):
+
+    ```shell
+    git rebase master -i
+    git push -f
+    ```
+
+That's it! Thank you for your contribution!
+
+#### After your pull request is merged
+
+After your pull request is merged, you can safely delete your branch and pull the changes
+from the main (upstream) repository:
+
+* Delete the remote branch on GitHub either through the GitHub web UI or your local shell as follows:
+
+    ```shell
+    git push origin --delete my-fix-branch
+    ```
+
+* Check out the master branch:
+
+    ```shell
+    git checkout master -f
+    ```
+
+* Delete the local branch:
+
+    ```shell
+    git branch -D my-fix-branch
+    ```
+
+* Update your master with the latest upstream version:
+
+    ```shell
+    git pull --ff upstream master
+    ```
+
+## <a name="rules"></a> Coding Rules
+To ensure consistency throughout the source code, keep these rules in mind as you are working:
+
+* All features or bug fixes **must be tested** by one or more specs (unit-tests).
+* All public API methods **must be documented**.
+
+## <a name="commit"></a> Commit Message Guidelines
+
+We have very precise rules over how our git commit messages can be formatted.  This leads to **more
+readable messages** that are easy to follow when looking through the **project history**.  But also,
+we use the git commit messages to **generate the ng-alain change log**.
+
+### Commit Message Format
+Each commit message consists of a **header**, a **body** and a **footer**.  The header has a special
+format that includes a **type**, a **scope** and a **subject**:
+
+```
+<type>(<scope>): <subject>
+<BLANK LINE>
+<body>
+<BLANK LINE>
+<footer>
+```
+
+The **header** is mandatory and the **scope** of the header is optional.
+
+Any line of the commit message cannot be longer 100 characters! This allows the message to be easier
+to read on GitHub as well as in various git tools.
+
+Footer should contain a [closing reference to an issue](https://help.github.com/articles/closing-issues-via-commit-messages/) if any.
+
+Samples: (even more [samples](https://github.com/cipchk/ng-alain/commits/master))
+
+```
+docs(changelog): update change log to beta.5
+```
+```
+fix(release): need to depend on latest rxjs and zone.js
+
+The version in our package.json gets copied to the one we publish, and users need the latest of these.
+```
+
+### Revert
+If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of the reverted commit. In the body it should say: `This reverts commit <hash>.`, where the hash is the SHA of the commit being reverted.
+
+### Type
+Must be one of the following:
+
+* **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
+* **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
+* **docs**: Documentation only changes
+* **feat**: A new feature
+* **fix**: A bug fix
+* **perf**: A code change that improves performance
+* **refactor**: A code change that neither fixes a bug nor adds a feature
+* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
+* **test**: Adding missing tests or correcting existing tests
+
+### Subject
+The subject contains succinct description of the change:
+
+* use the imperative, present tense: "change" not "changed" nor "changes"
+* don't capitalize first letter
+* no dot (.) at the end
+
+### Body
+Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes".
+The body should include the motivation for the change and contrast this with previous behavior.
+
+### Footer
+The footer should contain any information about **Breaking Changes** and is also the place to
+reference GitHub issues that this commit **Closes**.
+
+**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this.
+
+A detailed explanation can be found in this [document][commit-message-format].
+
+
+[commit-message-format]: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#
+[github]: https://github.com/cipchk/ng-alain
+[plunker]: http://plnkr.co/edit
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..8b7adbd
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,27 @@
+# STEP 1: Build
+FROM node:8-alpine as builder
+
+LABEL authors="cipchk <cipchk@qq.com>"
+
+COPY package.json package-lock.json ./
+
+RUN npm set progress=false && npm config set depth 0 && npm cache clean --force
+RUN npm i && mkdir /ng-alain && cp -R ./node_modules ./ng-alain
+
+WORKDIR /ng-alain
+
+COPY . .
+
+RUN npm run build
+
+# STEP 2: Setup
+FROM nginx:1.13.5-alpine
+
+COPY --from=builder /ng-alain/_nginx/default.conf /etc/nginx/conf.d/default.conf
+COPY --from=builder /ng-alain/_nginx/ssl/* /etc/nginx/ssl/
+
+RUN rm -rf /usr/share/nginx/html/*
+
+COPY --from=builder /ng-alain/dist /usr/share/nginx/html
+
+CMD [ "nginx", "-g", "daemon off;"]
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..9f404ed
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 ������
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README-zh_CN.md b/README-zh_CN.md
new file mode 100644
index 0000000..7ed4c59
--- /dev/null
+++ b/README-zh_CN.md
@@ -0,0 +1,107 @@
+[![Build Status](https://travis-ci.org/cipchk/ng-alain.svg?branch=master)](https://travis-ci.org/cipchk/ng-alain)
+[![Dependency Status](https://david-dm.org/cipchk/ng-alain/status.svg)](https://david-dm.org/cipchk/ng-alain)
+[![NPM version](https://img.shields.io/npm/v/ng-alain.svg)](https://www.npmjs.com/package/ng-alain)
+
+# ng-alain
+
+������������ [Ng-zorro-antd](https://github.com/NG-ZORRO/ng-zorro-antd)���ANT DESIGN��� ������������������������
+
+[README in English](README.md)
+
+[DEMO](https://cipchk.github.io/ng-alain/)
+
+## ������������
+
+������ `node` ������ >= 6.9.0 ��� `npm` ������ >= 3 ���������
+
+`ng-alain` ���������������������������������������������������������������������������**������������**���������������������������������������������������
+
+```bash
+# clone a blank ng-alain repo, just only basic function
+#   --depth 1 removes all but one .git commit history
+git clone -b blank --depth 1 https://github.com/cipchk/ng-alain.git
+# or full master branch
+git clone --depth 1 https://github.com/cipchk/ng-alain.git
+
+# change directory
+cd ng-alain
+
+# install npm package
+npm install
+# in china please use cnpm ���https://github.com/cnpm/cnpm���
+# cnpm install
+
+# start the serve
+npm start
+
+# use HMR
+npm run serve:hmr
+```
+
+> [vscode] ������������ [ng-zorro-vscode](https://marketplace.visualstudio.com/items?itemName=cipchk.ng-zorro-vscode) ������������ `nz-alain-*` ���������������
+
+
+## Links
+
++ [������](http://ng-alain.com)
++ [@delon](https://github.com/cipchk/delon)
++ [DEMO](https://cipchk.github.io/ng-alain/)
+
+## Delon
+
+[delong](https://github.com/cipchk/delon) ��������� Ant Design ������������������������������������������������������������
+
+[![Build Status](https://travis-ci.org/cipchk/delon.svg?branch=master)](https://travis-ci.org/cipchk/delon)
+[![Dependency Status](https://david-dm.org/cipchk/delon/status.svg)](https://david-dm.org/cipchk/delon)
+[![DevDependency Status](https://david-dm.org/cipchk/delon/dev-status.svg)](https://david-dm.org/cipchk/delon?type=dev)
+
+[![npm](https://img.shields.io/npm/l/@delon/theme.svg)](https://www.npmjs.com/package/@delon/theme)
+[![npm](https://img.shields.io/npm/dm/@delon/theme.svg)](https://www.npmjs.com/package/@delon/theme)
+
+| package name | version | next version |
+| ------------ |:-----:|:----------:|
+| @delon/theme | [![NPM version](https://img.shields.io/npm/v/@delon/theme.svg)](https://www.npmjs.com/package/@delon/theme) | [![NPM version](https://img.shields.io/npm/v/@delon/theme/next.svg)](https://www.npmjs.com/package/@delon/theme) |
+| @delon/abc | [![NPM version](https://img.shields.io/npm/v/@delon/abc.svg)](https://www.npmjs.com/package/@delon/abc) | [![NPM version](https://img.shields.io/npm/v/@delon/abc/next.svg)](https://www.npmjs.com/package/@delon/abc) |
+| @delon/acl | [![NPM version](https://img.shields.io/npm/v/@delon/acl.svg)](https://www.npmjs.com/package/@delon/acl) | [![NPM version](https://img.shields.io/npm/v/@delon/acl/next.svg)](https://www.npmjs.com/package/@delon/acl) |
+| @delon/auth | [![NPM version](https://img.shields.io/npm/v/@delon/auth.svg)](https://www.npmjs.com/package/@delon/auth) | [![NPM version](https://img.shields.io/npm/v/@delon/auth/next.svg)](https://www.npmjs.com/package/@delon/auth) |
+| @delon/mock | [![NPM version](https://img.shields.io/npm/v/@delon/mock.svg)](https://www.npmjs.com/package/@delon/mock) | [![NPM version](https://img.shields.io/npm/v/@delon/mock/next.svg)](https://www.npmjs.com/package/@delon/mock) |
+| @delon/cache | - | [![NPM version](https://img.shields.io/npm/v/@delon/cache/next.svg)](https://www.npmjs.com/package/@delon/cache) |
+| @delon/cli | - | [![NPM version](https://img.shields.io/npm/v/@delon/cli/next.svg)](https://www.npmjs.com/package/@delon/cli) |
+
+## Architecture
+
+![Architecture](https://github.com/cipchk/delon/blob/master/_screenshot/architecture.png)
+
+## ������
+
++ ������ `ng-zorro-antd`
++ ���������
++ ���������
++ ACL������������
++ ������������������������������������
++ ���������UI������������
++ ������������������
++ Less���������
++ ���������������������������
++ ������������
++ ���������������
++ ������[Docker](_documents/docker.md)������
+
+## ������������
+
+![desktop](https://github.com/cipchk/delon/blob/master/_screenshot/desktop.png)
+![ipad](https://github.com/cipchk/delon/blob/master/_screenshot/ipad.png)
+![iphone](https://github.com/cipchk/delon/blob/master/_screenshot/iphone.png)
+
+## Troubleshooting
+
+Please follow this guidelines when reporting bugs and feature requests:
+
+1. Use [GitHub Issues](https://github.com/cipchk/ng-alain/issues) board to report bugs and feature requests (not our email address)
+2. Please **always** write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it.
+
+Thanks for understanding!
+
+### License
+
+The MIT License (see the [LICENSE](https://github.com/cipchk/ng-alain/blob/master/LICENSE) file for the full text)
diff --git a/README.md b/README.md
index 051306d..939d3a6 100644
--- a/README.md
+++ b/README.md
@@ -1,27 +1,104 @@
-# ScreenFrontend
+[![Build Status](https://travis-ci.org/cipchk/ng-alain.svg?branch=master)](https://travis-ci.org/cipchk/ng-alain)
+[![Dependency Status](https://david-dm.org/cipchk/ng-alain/status.svg)](https://david-dm.org/cipchk/ng-alain)
+[![NPM version](https://img.shields.io/npm/v/ng-alain.svg)](https://www.npmjs.com/package/ng-alain)
 
-This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.6.0.
+# ng-alain
 
-## Development server
+[Ng-zorro-antd](https://github.com/NG-ZORRO/ng-zorro-antd) admin panel front-end framework.
 
-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.
+���������������[������ README](README-zh_CN.md)
 
-## Code scaffolding
+[DEMO](https://cipchk.github.io/ng-alain/)
 
-Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
+## Quick start
 
-## Build
+Make sure you have Node version >= 6.9.0 and NPM >= 3 or higher.
 
-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.
+```bash
+# clone a blank ng-alain repo, just only basic function
+#   --depth 1 removes all but one .git commit history
+git clone -b blank --depth 1 https://github.com/cipchk/ng-alain.git
+# or full master branch
+git clone --depth 1 https://github.com/cipchk/ng-alain.git
 
-## Running unit tests
+# change directory
+cd ng-alain
 
-Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
+# install npm package
+npm install
+# in china please use cnpm ���https://github.com/cnpm/cnpm���
+# cnpm install
 
-## Running end-to-end tests
+# start the serve
+npm start
 
-Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
+# use HMR
+npm run serve:hmr
+```
 
-## Further help
+> [vscode] recommended install [ng-zorro-vscode](https://marketplace.visualstudio.com/items?itemName=cipchk.ng-zorro-vscode) plugins, that includes `nz-alain-*` snippets.
 
-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).
+## Links
+
++ [Document](http://ng-alain.com)
++ [@delon](https://github.com/cipchk/delon)
++ [DEMO](https://cipchk.github.io/ng-alain/)
+
+## Delon
+
+[delong](https://github.com/cipchk/delon) is a production-ready solution for admin business components packages, Built on the design principles developed by Ant Design.
+
+[![Build Status](https://travis-ci.org/cipchk/delon.svg?branch=master)](https://travis-ci.org/cipchk/delon)
+[![Dependency Status](https://david-dm.org/cipchk/delon/status.svg)](https://david-dm.org/cipchk/delon)
+[![DevDependency Status](https://david-dm.org/cipchk/delon/dev-status.svg)](https://david-dm.org/cipchk/delon?type=dev)
+
+[![npm](https://img.shields.io/npm/l/@delon/theme.svg)](https://www.npmjs.com/package/@delon/theme)
+[![npm](https://img.shields.io/npm/dm/@delon/theme.svg)](https://www.npmjs.com/package/@delon/theme)
+
+| package name | version | next version |
+| ------------ |:-----:|:----------:|
+| @delon/theme | [![NPM version](https://img.shields.io/npm/v/@delon/theme.svg)](https://www.npmjs.com/package/@delon/theme) | [![NPM version](https://img.shields.io/npm/v/@delon/theme/next.svg)](https://www.npmjs.com/package/@delon/theme) |
+| @delon/abc | [![NPM version](https://img.shields.io/npm/v/@delon/abc.svg)](https://www.npmjs.com/package/@delon/abc) | [![NPM version](https://img.shields.io/npm/v/@delon/abc/next.svg)](https://www.npmjs.com/package/@delon/abc) |
+| @delon/acl | [![NPM version](https://img.shields.io/npm/v/@delon/acl.svg)](https://www.npmjs.com/package/@delon/acl) | [![NPM version](https://img.shields.io/npm/v/@delon/acl/next.svg)](https://www.npmjs.com/package/@delon/acl) |
+| @delon/auth | [![NPM version](https://img.shields.io/npm/v/@delon/auth.svg)](https://www.npmjs.com/package/@delon/auth) | [![NPM version](https://img.shields.io/npm/v/@delon/auth/next.svg)](https://www.npmjs.com/package/@delon/auth) |
+| @delon/mock | [![NPM version](https://img.shields.io/npm/v/@delon/mock.svg)](https://www.npmjs.com/package/@delon/mock) | [![NPM version](https://img.shields.io/npm/v/@delon/mock/next.svg)](https://www.npmjs.com/package/@delon/mock) |
+| @delon/cache | - | [![NPM version](https://img.shields.io/npm/v/@delon/cache/next.svg)](https://www.npmjs.com/package/@delon/cache) |
+| @delon/cli | - | [![NPM version](https://img.shields.io/npm/v/@delon/cli/next.svg)](https://www.npmjs.com/package/@delon/cli) |
+
+## Architecture
+
+![Architecture](https://github.com/cipchk/delon/blob/master/_screenshot/architecture.png)
+
+## Features
+
++ `ng-zorro-antd` based
++ Responsive Layout
++ I18n
++ ACL
++ Lazy load Assets
++ UI Router States
++ Multiple color options
++ Less preprocessor
++ Well organized & commented code
++ Simple upgrade
++ Hot Module Replacement
++ Support [Docker](_documents/docker.md) deploy
+
+## App Shots
+
+![desktop](https://github.com/cipchk/delon/blob/master/_screenshot/desktop.png)
+![ipad](https://github.com/cipchk/delon/blob/master/_screenshot/ipad.png)
+![iphone](https://github.com/cipchk/delon/blob/master/_screenshot/iphone.png)
+
+## Troubleshooting
+
+Please follow this guidelines when reporting bugs and feature requests:
+
+1. Use [GitHub Issues](https://github.com/cipchk/ng-alain/issues) board to report bugs and feature requests (not our email address)
+2. Please **always** write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it.
+
+Thanks for understanding!
+
+### License
+
+The MIT License (see the [LICENSE](https://github.com/cipchk/ng-alain/blob/master/LICENSE) file for the full text)
diff --git a/_mock/README.md b/_mock/README.md
new file mode 100644
index 0000000..ac06b06
--- /dev/null
+++ b/_mock/README.md
@@ -0,0 +1 @@
+[Document](http://ng-alain.com/docs/mock)
diff --git a/_mock/api.service.ts b/_mock/_api.ts
similarity index 95%
rename from _mock/api.service.ts
rename to _mock/_api.ts
index 10933a9..04b577c 100644
--- a/_mock/api.service.ts
+++ b/_mock/_api.ts
@@ -1,3 +1,6 @@
+import { MockRequest } from '@delon/mock';
+// region: mock data
+
 const titles = [
     'Alipay',
     'Angular',
@@ -48,7 +51,9 @@
     '������'
 ];
 
-export function getFakeList(count: number = 20): any[] {
+// endregion
+
+function getFakeList(count: number = 20): any[] {
     const list = [];
     for (let i = 0; i < count; i += 1) {
         list.push({
@@ -91,7 +96,7 @@
     return list;
 }
 
-export function getNotice(): any[] {
+function getNotice(): any[] {
     return [
         {
           id: 'xxx1',
@@ -156,7 +161,7 @@
       ];
 }
 
-export function getActivities(): any[] {
+function getActivities(): any[] {
     return  [
         {
           id: 'trend-1',
@@ -258,3 +263,9 @@
         },
       ];
 }
+
+export const APIS = {
+    '/api/list': (req: MockRequest) => getFakeList(req.queryString.count),
+    '/api/notice': () => getNotice(),
+    '/api/activities': () => getActivities()
+};
diff --git a/_mock/chart.service.ts b/_mock/_chart.ts
similarity index 83%
rename from _mock/chart.service.ts
rename to _mock/_chart.ts
index 6d2c804..f5bf256 100644
--- a/_mock/chart.service.ts
+++ b/_mock/_chart.ts
@@ -1,8 +1,9 @@
 // tslint:disable
-
+import * as Mock from 'mockjs';
 import * as moment from "moment";
 
-// mock data
+// region: mock data
+
 const visitData = [];
 const beginDay = new Date().getTime();
 
@@ -185,19 +186,23 @@
 	});
 });
 
-export const getFakeChartData = {
-	visitData,
-	visitData2,
-	salesData,
-	searchData,
-	offlineData,
-	offlineChartData,
-	salesTypeData,
-	salesTypeDataOnline,
-	salesTypeDataOffline,
-	radarData
-};
+// endregion
 
-export default {
-	getFakeChartData
+export const CHARTS = {
+    '/chart': Object.assign({}, {
+        visitData,
+        visitData2,
+        salesData,
+        searchData,
+        offlineData,
+        offlineChartData,
+        salesTypeData,
+        salesTypeDataOnline,
+        salesTypeDataOffline,
+        radarData
+    }),
+    '/chart/visit': Object.assign([], visitData),
+    '/chart/tags': Mock.mock({
+        'list|100': [{ name: '@city', 'value|1-100': 150, 'type|0-2': 1 }]
+    })
 };
diff --git a/_mock/profile.service.ts b/_mock/_profile.ts
similarity index 85%
rename from _mock/profile.service.ts
rename to _mock/_profile.ts
index 252475b..729a371 100644
--- a/_mock/profile.service.ts
+++ b/_mock/_profile.ts
@@ -141,24 +141,8 @@
     },
 ];
 
-export function getProfileBasicData() {
-    return {
-        basicGoods: basicGoods,
-        basicProgress: basicProgress
-    };
-}
-
-export function getProfileAdvancedData() {
-    return {
-        advancedOperation1: advancedOperation1,
-        advancedOperation2: advancedOperation2,
-        advancedOperation3: advancedOperation3
-    };
-}
-
-export function getProfileDefault() {
-    return {
-        getProfileBasicData: getProfileBasicData,
-        getProfileAdvancedData: getProfileAdvancedData
-    };
-}
+export const PROFILES = {
+    'GET /profile/progress': basicProgress,
+    'GET /profile/goods': basicGoods,
+    'GET /profile/advanced': { advancedOperation1, advancedOperation2, advancedOperation3 }
+};
diff --git a/_mock/rule.service.ts b/_mock/_rule.ts
similarity index 75%
rename from _mock/rule.service.ts
rename to _mock/_rule.ts
index 927c546..bd555c5 100644
--- a/_mock/rule.service.ts
+++ b/_mock/_rule.ts
@@ -1,3 +1,6 @@
+import { HttpRequest } from '@angular/common/http';
+import { MockRequest } from '@delon/mock';
+
 const list = [];
 
 for (let i = 0; i < 46; i += 1) {
@@ -18,7 +21,7 @@
     });
 }
 
-export function getRule(params: any) {
+function getRule(params: any) {
     let ret = [...list];
     if (params.sorter) {
         const s = params.sorter.split('_');
@@ -38,16 +41,15 @@
     return ret;
 }
 
-export function removeRule(no: string): boolean {
-    const idx = list.findIndex(w => w.no === no);
-    if (idx !== -1) {
-        list.splice(idx, 1);
-        return true;
-    }
-    return false;
+function removeRule(nos: string): boolean {
+    nos.split(',').forEach(no => {
+        const idx = list.findIndex(w => w.no === no);
+        if (idx !== -1) list.splice(idx, 1);
+    });
+    return true;
 }
 
-export function saveRule(description: string) {
+function saveRule(description: string) {
     const i = Math.ceil(Math.random() * 10000);
     list.unshift({
       key: i,
@@ -64,3 +66,9 @@
       progress: Math.ceil(Math.random() * 100),
     });
 }
+
+export const RULES = {
+    '/rule': (req: MockRequest) => getRule(req.queryString),
+    'DELETE /rule': (req: MockRequest) => removeRule(req.queryString.nos),
+    'POST /rule': (req: MockRequest) => saveRule(req.body.description)
+};
diff --git a/_mock/index.ts b/_mock/index.ts
new file mode 100644
index 0000000..34345bf
--- /dev/null
+++ b/_mock/index.ts
@@ -0,0 +1,4 @@
+export * from './_profile';
+export * from './_rule';
+export * from './_api';
+export * from './_chart';
diff --git a/docker-compose.debug.yml b/docker-compose.debug.yml
new file mode 100644
index 0000000..ced6180
--- /dev/null
+++ b/docker-compose.debug.yml
@@ -0,0 +1,13 @@
+version: '2.1'
+
+services:
+  ng-alain:
+    image: ng-alain
+    build: .
+    environment:
+      NODE_ENV: development
+    ports:
+      - 80:80
+      - 9229:9229
+    ## set your startup file here
+    command: node --inspect app.js
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..b1930e2
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,10 @@
+version: '2.1'
+
+services:
+  ng-alain:
+    image: ng-alain
+    build: .
+    environment:
+      NODE_ENV: production
+    ports:
+      - 80:80
diff --git a/e2e/app.e2e-spec.ts b/e2e/app.e2e-spec.ts
index cedad8f..1140f84 100644
--- a/e2e/app.e2e-spec.ts
+++ b/e2e/app.e2e-spec.ts
@@ -1,6 +1,6 @@
 import { AppPage } from './app.po';
 
-describe('screen-frontend App', () => {
+describe('ng-alain App', () => {
   let page: AppPage;
 
   beforeEach(() => {
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index e69daf1..0000000
--- a/package-lock.json
+++ /dev/null
@@ -1,13440 +0,0 @@
-{
-  "name": "ng-alain",
-  "version": "0.3.0-rc.1",
-  "lockfileVersion": 1,
-  "requires": true,
-  "dependencies": {
-    "@angular-devkit/build-optimizer": {
-      "version": "0.0.36",
-      "resolved": "http://registry.npm.taobao.org/@angular-devkit/build-optimizer/download/@angular-devkit/build-optimizer-0.0.36.tgz",
-      "integrity": "sha1-6Bbum+Itu3d3JPAoGs+nLP/xhLc=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "1.1.0",
-        "source-map": "0.5.7",
-        "typescript": "2.6.2",
-        "webpack-sources": "1.1.0"
-      },
-      "dependencies": {
-        "typescript": {
-          "version": "2.6.2",
-          "resolved": "http://registry.npm.taobao.org/typescript/download/typescript-2.6.2.tgz",
-          "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=",
-          "dev": true
-        }
-      }
-    },
-    "@angular-devkit/core": {
-      "version": "0.0.22",
-      "resolved": "http://registry.npm.taobao.org/@angular-devkit/core/download/@angular-devkit/core-0.0.22.tgz",
-      "integrity": "sha1-6Q9Gv3/0fSYKdnlZJnvGX/7jnvE=",
-      "dev": true,
-      "requires": {
-        "source-map": "0.5.7"
-      }
-    },
-    "@angular-devkit/schematics": {
-      "version": "0.0.42",
-      "resolved": "http://registry.npm.taobao.org/@angular-devkit/schematics/download/@angular-devkit/schematics-0.0.42.tgz",
-      "integrity": "sha1-NO6nE2RVVFyKvSHt+Uo2hwoHP+o=",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/core": "0.0.22",
-        "@ngtools/json-schema": "1.1.0",
-        "@schematics/schematics": "0.0.11",
-        "minimist": "1.2.0",
-        "rxjs": "5.5.5"
-      }
-    },
-    "@angular/animations": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/@angular/animations/download/@angular/animations-5.1.1.tgz",
-      "integrity": "sha1-AHYh+LysFVYOFgWC6y6RAltrkQY=",
-      "requires": {
-        "tslib": "1.8.1"
-      }
-    },
-    "@angular/cdk": {
-      "version": "5.0.0",
-      "resolved": "http://registry.npm.taobao.org/@angular/cdk/download/@angular/cdk-5.0.0.tgz",
-      "integrity": "sha1-18sylMnjzDfT1Bwz5r6wROhGNsM=",
-      "requires": {
-        "tslib": "1.8.1"
-      }
-    },
-    "@angular/cli": {
-      "version": "1.6.0",
-      "resolved": "http://registry.npm.taobao.org/@angular/cli/download/@angular/cli-1.6.0.tgz",
-      "integrity": "sha1-66Uh9qjkwttigwC63bxNoTypaZg=",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/build-optimizer": "0.0.36",
-        "@angular-devkit/schematics": "0.0.42",
-        "@ngtools/json-schema": "1.1.0",
-        "@ngtools/webpack": "1.9.0",
-        "@schematics/angular": "0.1.11",
-        "autoprefixer": "6.7.7",
-        "chalk": "2.2.2",
-        "circular-dependency-plugin": "4.3.0",
-        "common-tags": "1.5.1",
-        "copy-webpack-plugin": "4.3.0",
-        "core-object": "3.1.5",
-        "css-loader": "0.28.7",
-        "cssnano": "3.10.0",
-        "denodeify": "1.2.1",
-        "ember-cli-string-utils": "1.1.0",
-        "exports-loader": "0.6.4",
-        "extract-text-webpack-plugin": "3.0.2",
-        "file-loader": "1.1.5",
-        "fs-extra": "4.0.3",
-        "glob": "7.1.2",
-        "html-webpack-plugin": "2.30.1",
-        "istanbul-instrumenter-loader": "2.0.0",
-        "karma-source-map-support": "1.2.0",
-        "less": "2.7.3",
-        "less-loader": "4.0.5",
-        "license-webpack-plugin": "1.1.1",
-        "lodash": "4.17.4",
-        "memory-fs": "0.4.1",
-        "minimatch": "3.0.4",
-        "node-modules-path": "1.0.1",
-        "node-sass": "4.7.2",
-        "nopt": "4.0.1",
-        "opn": "5.1.0",
-        "portfinder": "1.0.13",
-        "postcss-custom-properties": "6.2.0",
-        "postcss-loader": "2.0.9",
-        "postcss-url": "7.3.0",
-        "raw-loader": "0.5.1",
-        "resolve": "1.5.0",
-        "rxjs": "5.5.5",
-        "sass-loader": "6.0.6",
-        "semver": "5.4.1",
-        "silent-error": "1.1.0",
-        "source-map-loader": "0.2.3",
-        "source-map-support": "0.4.18",
-        "style-loader": "0.13.2",
-        "stylus": "0.54.5",
-        "stylus-loader": "3.0.1",
-        "uglifyjs-webpack-plugin": "1.1.4",
-        "url-loader": "0.6.2",
-        "webpack": "3.10.0",
-        "webpack-concat-plugin": "1.4.2",
-        "webpack-dev-middleware": "1.12.2",
-        "webpack-dev-server": "2.9.7",
-        "webpack-merge": "4.1.1",
-        "webpack-sources": "1.1.0",
-        "webpack-subresource-integrity": "1.0.3",
-        "zone.js": "0.8.18"
-      }
-    },
-    "@angular/common": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/@angular/common/download/@angular/common-5.1.1.tgz",
-      "integrity": "sha1-tkRM9lCPmwtfxMmzEHs+N74TNsk=",
-      "requires": {
-        "tslib": "1.8.1"
-      }
-    },
-    "@angular/compiler": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/@angular/compiler/download/@angular/compiler-5.1.1.tgz",
-      "integrity": "sha1-fXlTIpc55o3nTqghaF4dVWlSfvM=",
-      "requires": {
-        "tslib": "1.8.1"
-      }
-    },
-    "@angular/compiler-cli": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/@angular/compiler-cli/download/@angular/compiler-cli-5.1.1.tgz",
-      "integrity": "sha1-V55oRu1JPnIC4261zqAMsaYcknw=",
-      "dev": true,
-      "requires": {
-        "chokidar": "1.7.0",
-        "minimist": "1.2.0",
-        "reflect-metadata": "0.1.10",
-        "tsickle": "0.25.5"
-      }
-    },
-    "@angular/core": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/@angular/core/download/@angular/core-5.1.1.tgz",
-      "integrity": "sha1-tqbisihPhiefCW2FclP2ZDCY2Qg=",
-      "requires": {
-        "tslib": "1.8.1"
-      }
-    },
-    "@angular/forms": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/@angular/forms/download/@angular/forms-5.1.1.tgz",
-      "integrity": "sha1-44hYpE57V7YfN1CHt2p51uJnmxQ=",
-      "requires": {
-        "tslib": "1.8.1"
-      }
-    },
-    "@angular/http": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/@angular/http/download/@angular/http-5.1.1.tgz",
-      "integrity": "sha1-Raph7mHyEqNPlYxETJmejJNS7CM=",
-      "requires": {
-        "tslib": "1.8.1"
-      }
-    },
-    "@angular/language-service": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/@angular/language-service/download/@angular/language-service-5.1.1.tgz",
-      "integrity": "sha1-cxUzo7buTI+s2oYqg22xkwoBHwc=",
-      "dev": true
-    },
-    "@angular/platform-browser": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/@angular/platform-browser/download/@angular/platform-browser-5.1.1.tgz",
-      "integrity": "sha1-iKBRMtgit2DJEIo+rw2mEPOcLtk=",
-      "requires": {
-        "tslib": "1.8.1"
-      }
-    },
-    "@angular/platform-browser-dynamic": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/@angular/platform-browser-dynamic/download/@angular/platform-browser-dynamic-5.1.1.tgz",
-      "integrity": "sha1-S3vRy9s8k/3rYms4+9VChqc6dtA=",
-      "requires": {
-        "tslib": "1.8.1"
-      }
-    },
-    "@angular/router": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/@angular/router/download/@angular/router-5.1.1.tgz",
-      "integrity": "sha1-N45p7dKO2tr/ewm27kB6rfcWQiA=",
-      "requires": {
-        "tslib": "1.8.1"
-      }
-    },
-    "@angularclass/hmr": {
-      "version": "2.1.3",
-      "resolved": "http://registry.npm.taobao.org/@angularclass/hmr/download/@angularclass/hmr-2.1.3.tgz",
-      "integrity": "sha1-NOZY7T2jfyOwogDi2lqJvpK7IJ8=",
-      "dev": true
-    },
-    "@angularclass/hmr-loader": {
-      "version": "3.0.4",
-      "resolved": "http://registry.npm.taobao.org/@angularclass/hmr-loader/download/@angularclass/hmr-loader-3.0.4.tgz",
-      "integrity": "sha1-PjoHuoNWUMkBVim44Yf+jc1VJ7g=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "1.1.0"
-      }
-    },
-    "@antv/data-set": {
-      "version": "0.7.0",
-      "resolved": "http://registry.npm.taobao.org/@antv/data-set/download/@antv/data-set-0.7.0.tgz",
-      "integrity": "sha1-DhqzyIq+g61mhgDeThixY3wGIaM=",
-      "requires": {
-        "d3-array": "1.2.1",
-        "d3-composite-projections": "1.2.0",
-        "d3-dsv": "1.0.8",
-        "d3-geo": "1.9.1",
-        "d3-geo-projection": "2.3.2",
-        "d3-hierarchy": "1.1.5",
-        "d3-sankey": "0.7.1",
-        "d3-voronoi": "1.1.2",
-        "lodash": "4.17.4",
-        "point-at-length": "1.1.0",
-        "regression": "2.0.1",
-        "simple-statistics": "4.1.1",
-        "topojson-client": "3.0.0",
-        "wolfy87-eventemitter": "5.2.4"
-      }
-    },
-    "@antv/g": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/@antv/g/download/@antv/g-2.0.2.tgz",
-      "integrity": "sha1-z87alIq1lfZMkKUl8wp+TOSi4+I=",
-      "requires": {
-        "d3-ease": "1.0.3",
-        "d3-interpolate": "1.1.6",
-        "d3-timer": "1.0.7",
-        "gl-matrix": "2.4.0",
-        "lodash": "4.17.4",
-        "wolfy87-eventemitter": "5.2.4"
-      }
-    },
-    "@antv/g2": {
-      "version": "3.0.2",
-      "resolved": "http://registry.npm.taobao.org/@antv/g2/download/@antv/g2-3.0.2.tgz",
-      "integrity": "sha1-LerE+l1I42g4ZlF1FmpIEr9nTl4=",
-      "requires": {
-        "@antv/g": "2.0.2",
-        "fecha": "2.3.2",
-        "gl-matrix": "2.4.0",
-        "lodash": "4.17.4",
-        "wolfy87-eventemitter": "5.2.4"
-      }
-    },
-    "@antv/g2-plugin-slider": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/@antv/g2-plugin-slider/download/@antv/g2-plugin-slider-2.0.0.tgz",
-      "integrity": "sha1-OY7D2LhpExBB+Hj6+EXnaoS6+VQ="
-    },
-    "@delon/abc": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/@delon/abc/download/@delon/abc-0.3.0.tgz",
-      "integrity": "sha1-3z61AAo9cSv1bUdGGA49vYIsYoA="
-    },
-    "@delon/acl": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/@delon/acl/download/@delon/acl-0.3.0.tgz",
-      "integrity": "sha1-vp2hDXRCVcA0QYeTAHbsgz6VIp8="
-    },
-    "@delon/auth": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/@delon/auth/download/@delon/auth-0.3.0.tgz",
-      "integrity": "sha1-x7Knv2yrueOlC/Cc98CdFjd/aYw="
-    },
-    "@delon/theme": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/@delon/theme/download/@delon/theme-0.3.0.tgz",
-      "integrity": "sha1-GnkzMaXe3KFyxmJ8Qu7acLV1/og="
-    },
-    "@ngtools/json-schema": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/@ngtools/json-schema/download/@ngtools/json-schema-1.1.0.tgz",
-      "integrity": "sha1-w6DFRNYjkqzCgTpCyKDcb1j4aSI=",
-      "dev": true
-    },
-    "@ngtools/webpack": {
-      "version": "1.9.0",
-      "resolved": "http://registry.npm.taobao.org/@ngtools/webpack/download/@ngtools/webpack-1.9.0.tgz",
-      "integrity": "sha1-7zlcRb4t6b65OiufXxcdKMNE6xA=",
-      "dev": true,
-      "requires": {
-        "chalk": "2.2.2",
-        "enhanced-resolve": "3.4.1",
-        "loader-utils": "1.1.0",
-        "magic-string": "0.22.4",
-        "semver": "5.4.1",
-        "source-map": "0.5.7",
-        "tree-kill": "1.2.0"
-      }
-    },
-    "@ngx-translate/core": {
-      "version": "9.0.1",
-      "resolved": "http://registry.npm.taobao.org/@ngx-translate/core/download/@ngx-translate/core-9.0.1.tgz",
-      "integrity": "sha1-AA8thjxMlMgY4UFu9DzKLFwMWEg="
-    },
-    "@ngx-translate/http-loader": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/@ngx-translate/http-loader/download/@ngx-translate/http-loader-2.0.0.tgz",
-      "integrity": "sha1-nBbQfNBwxnraJwoulAKB64JrP0M="
-    },
-    "@schematics/angular": {
-      "version": "0.1.11",
-      "resolved": "http://registry.npm.taobao.org/@schematics/angular/download/@schematics/angular-0.1.11.tgz",
-      "integrity": "sha1-tfFTILu2CWnWbHao72VFBYrIHs4=",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/core": "0.0.22"
-      }
-    },
-    "@schematics/schematics": {
-      "version": "0.0.11",
-      "resolved": "http://registry.npm.taobao.org/@schematics/schematics/download/@schematics/schematics-0.0.11.tgz",
-      "integrity": "sha1-yPcPJw7TjymyhzJIEm/Vmr1jWGI=",
-      "dev": true
-    },
-    "@types/jasmine": {
-      "version": "2.6.3",
-      "resolved": "http://registry.npm.taobao.org/@types/jasmine/download/@types/jasmine-2.6.3.tgz",
-      "integrity": "sha1-WGljv901448koKC2OkOM9SEpLtk=",
-      "dev": true
-    },
-    "@types/jasminewd2": {
-      "version": "2.0.3",
-      "resolved": "http://registry.npm.taobao.org/@types/jasminewd2/download/@types/jasminewd2-2.0.3.tgz",
-      "integrity": "sha1-DSiGsMva5MDuulXjB5L1hL8ECpU=",
-      "dev": true,
-      "requires": {
-        "@types/jasmine": "2.6.3"
-      }
-    },
-    "@types/node": {
-      "version": "6.0.94",
-      "resolved": "http://registry.npm.taobao.org/@types/node/download/@types/node-6.0.94.tgz",
-      "integrity": "sha1-cOUJsH7Z+WHI9vSnOmHZIr5QKac=",
-      "dev": true
-    },
-    "@types/q": {
-      "version": "0.0.32",
-      "resolved": "http://registry.npm.taobao.org/@types/q/download/@types/q-0.0.32.tgz",
-      "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
-      "dev": true
-    },
-    "@types/selenium-webdriver": {
-      "version": "2.53.43",
-      "resolved": "http://registry.npm.taobao.org/@types/selenium-webdriver/download/@types/selenium-webdriver-2.53.43.tgz",
-      "integrity": "sha1-LePXGIGbwgFldUxKWa+36YM/Zwc=",
-      "dev": true
-    },
-    "abbrev": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz",
-      "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=",
-      "dev": true
-    },
-    "abs-svg-path": {
-      "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/abs-svg-path/download/abs-svg-path-0.1.1.tgz",
-      "integrity": "sha1-32Acjo0roQ1KdtYl4japo5wnI78="
-    },
-    "accepts": {
-      "version": "1.3.4",
-      "resolved": "http://registry.npm.taobao.org/accepts/download/accepts-1.3.4.tgz",
-      "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
-      "dev": true,
-      "requires": {
-        "mime-types": "2.1.17",
-        "negotiator": "0.6.1"
-      }
-    },
-    "acorn": {
-      "version": "5.2.1",
-      "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-5.2.1.tgz",
-      "integrity": "sha1-MXrHghgmwixwLWYYmrg1lnXxNdc=",
-      "dev": true
-    },
-    "acorn-dynamic-import": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-2.0.2.tgz",
-      "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
-      "dev": true,
-      "requires": {
-        "acorn": "4.0.13"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "4.0.13",
-          "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-4.0.13.tgz",
-          "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
-          "dev": true
-        }
-      }
-    },
-    "adm-zip": {
-      "version": "0.4.7",
-      "resolved": "http://registry.npm.taobao.org/adm-zip/download/adm-zip-0.4.7.tgz",
-      "integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=",
-      "dev": true
-    },
-    "after": {
-      "version": "0.8.2",
-      "resolved": "http://registry.npm.taobao.org/after/download/after-0.8.2.tgz",
-      "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
-      "dev": true
-    },
-    "agent-base": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/agent-base/download/agent-base-2.1.1.tgz",
-      "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=",
-      "dev": true,
-      "requires": {
-        "extend": "3.0.1",
-        "semver": "5.0.3"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "5.0.3",
-          "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.0.3.tgz",
-          "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=",
-          "dev": true
-        }
-      }
-    },
-    "ajv": {
-      "version": "5.5.1",
-      "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-5.5.1.tgz",
-      "integrity": "sha1-s4u4h22ehr7plJVqBOch6IskjrI=",
-      "dev": true,
-      "requires": {
-        "co": "4.6.0",
-        "fast-deep-equal": "1.0.0",
-        "fast-json-stable-stringify": "2.0.0",
-        "json-schema-traverse": "0.3.1"
-      }
-    },
-    "ajv-keywords": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-2.1.1.tgz",
-      "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
-      "dev": true
-    },
-    "align-text": {
-      "version": "0.1.4",
-      "resolved": "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz",
-      "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
-      "dev": true,
-      "requires": {
-        "kind-of": "3.2.2",
-        "longest": "1.0.1",
-        "repeat-string": "1.6.1"
-      }
-    },
-    "alphanum-sort": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz",
-      "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
-      "dev": true
-    },
-    "amdefine": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz",
-      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
-      "dev": true
-    },
-    "angular-baidu-maps": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/angular-baidu-maps/download/angular-baidu-maps-1.0.1.tgz",
-      "integrity": "sha1-AA8gaxmSM2uspCzHpK6FdXJqlrk="
-    },
-    "angular-qq-maps": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/angular-qq-maps/download/angular-qq-maps-1.0.1.tgz",
-      "integrity": "sha1-uk8xL1AbsgiDcIHtndfllbpTyBA="
-    },
-    "angular-tree-component": {
-      "version": "6.1.0",
-      "resolved": "http://registry.npm.taobao.org/angular-tree-component/download/angular-tree-component-6.1.0.tgz",
-      "integrity": "sha1-nZprKKaIHCByzWMGtVIpV56JQHE=",
-      "requires": {
-        "lodash": "4.17.4",
-        "mobx": "3.4.1",
-        "mobx-angular": "2.0.1"
-      }
-    },
-    "ansi-escapes": {
-      "version": "1.4.0",
-      "resolved": "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz",
-      "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
-      "dev": true
-    },
-    "ansi-gray": {
-      "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/ansi-gray/download/ansi-gray-0.1.1.tgz",
-      "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
-      "dev": true,
-      "requires": {
-        "ansi-wrap": "0.1.0"
-      }
-    },
-    "ansi-html": {
-      "version": "0.0.7",
-      "resolved": "http://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz",
-      "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
-      "dev": true
-    },
-    "ansi-regex": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz",
-      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-      "dev": true
-    },
-    "ansi-styles": {
-      "version": "3.2.0",
-      "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.0.tgz",
-      "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=",
-      "dev": true,
-      "requires": {
-        "color-convert": "1.9.1"
-      }
-    },
-    "ansi-wrap": {
-      "version": "0.1.0",
-      "resolved": "http://registry.npm.taobao.org/ansi-wrap/download/ansi-wrap-0.1.0.tgz",
-      "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
-      "dev": true
-    },
-    "any-observable": {
-      "version": "0.2.0",
-      "resolved": "http://registry.npm.taobao.org/any-observable/download/any-observable-0.2.0.tgz",
-      "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=",
-      "dev": true
-    },
-    "anymatch": {
-      "version": "1.3.2",
-      "resolved": "http://registry.npm.taobao.org/anymatch/download/anymatch-1.3.2.tgz",
-      "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=",
-      "dev": true,
-      "requires": {
-        "micromatch": "2.3.11",
-        "normalize-path": "2.1.1"
-      }
-    },
-    "app-root-path": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/app-root-path/download/app-root-path-2.0.1.tgz",
-      "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=",
-      "dev": true
-    },
-    "append-transform": {
-      "version": "0.4.0",
-      "resolved": "http://registry.npm.taobao.org/append-transform/download/append-transform-0.4.0.tgz",
-      "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=",
-      "dev": true,
-      "requires": {
-        "default-require-extensions": "1.0.0"
-      }
-    },
-    "aproba": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz",
-      "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=",
-      "dev": true
-    },
-    "archiver": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/archiver/download/archiver-1.3.0.tgz",
-      "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=",
-      "dev": true,
-      "requires": {
-        "archiver-utils": "1.3.0",
-        "async": "2.6.0",
-        "buffer-crc32": "0.2.13",
-        "glob": "7.1.2",
-        "lodash": "4.17.4",
-        "readable-stream": "2.3.3",
-        "tar-stream": "1.5.5",
-        "walkdir": "0.0.11",
-        "zip-stream": "1.2.0"
-      }
-    },
-    "archiver-utils": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/archiver-utils/download/archiver-utils-1.3.0.tgz",
-      "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
-      "dev": true,
-      "requires": {
-        "glob": "7.1.2",
-        "graceful-fs": "4.1.11",
-        "lazystream": "1.0.0",
-        "lodash": "4.17.4",
-        "normalize-path": "2.1.1",
-        "readable-stream": "2.3.3"
-      }
-    },
-    "are-we-there-yet": {
-      "version": "1.1.4",
-      "resolved": "http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.4.tgz",
-      "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
-      "dev": true,
-      "requires": {
-        "delegates": "1.0.0",
-        "readable-stream": "2.3.3"
-      }
-    },
-    "argparse": {
-      "version": "1.0.9",
-      "resolved": "http://registry.npm.taobao.org/argparse/download/argparse-1.0.9.tgz",
-      "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
-      "dev": true,
-      "requires": {
-        "sprintf-js": "1.0.3"
-      }
-    },
-    "argv": {
-      "version": "0.0.2",
-      "resolved": "http://registry.npm.taobao.org/argv/download/argv-0.0.2.tgz",
-      "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=",
-      "dev": true
-    },
-    "arr-diff": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz",
-      "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
-      "dev": true,
-      "requires": {
-        "arr-flatten": "1.1.0"
-      }
-    },
-    "arr-flatten": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz",
-      "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=",
-      "dev": true
-    },
-    "array-differ": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/array-differ/download/array-differ-1.0.0.tgz",
-      "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
-      "dev": true
-    },
-    "array-filter": {
-      "version": "0.0.1",
-      "resolved": "http://registry.npm.taobao.org/array-filter/download/array-filter-0.0.1.tgz",
-      "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
-      "dev": true
-    },
-    "array-find-index": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz",
-      "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
-      "dev": true
-    },
-    "array-flatten": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.1.tgz",
-      "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=",
-      "dev": true
-    },
-    "array-includes": {
-      "version": "3.0.3",
-      "resolved": "http://registry.npm.taobao.org/array-includes/download/array-includes-3.0.3.tgz",
-      "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
-      "dev": true,
-      "requires": {
-        "define-properties": "1.1.2",
-        "es-abstract": "1.10.0"
-      }
-    },
-    "array-iterate": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/array-iterate/download/array-iterate-1.1.1.tgz",
-      "integrity": "sha1-hlv3+K851rCYLGCQKRSsdrwBCPY=",
-      "dev": true
-    },
-    "array-map": {
-      "version": "0.0.0",
-      "resolved": "http://registry.npm.taobao.org/array-map/download/array-map-0.0.0.tgz",
-      "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=",
-      "dev": true
-    },
-    "array-reduce": {
-      "version": "0.0.0",
-      "resolved": "http://registry.npm.taobao.org/array-reduce/download/array-reduce-0.0.0.tgz",
-      "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
-      "dev": true
-    },
-    "array-slice": {
-      "version": "0.2.3",
-      "resolved": "http://registry.npm.taobao.org/array-slice/download/array-slice-0.2.3.tgz",
-      "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
-      "dev": true
-    },
-    "array-union": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz",
-      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
-      "dev": true,
-      "requires": {
-        "array-uniq": "1.0.3"
-      }
-    },
-    "array-uniq": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz",
-      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
-      "dev": true
-    },
-    "array-unique": {
-      "version": "0.2.1",
-      "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz",
-      "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
-      "dev": true
-    },
-    "arraybuffer.slice": {
-      "version": "0.0.6",
-      "resolved": "http://registry.npm.taobao.org/arraybuffer.slice/download/arraybuffer.slice-0.0.6.tgz",
-      "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=",
-      "dev": true
-    },
-    "arrify": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz",
-      "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
-      "dev": true
-    },
-    "asap": {
-      "version": "2.0.6",
-      "resolved": "http://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz",
-      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
-      "dev": true,
-      "optional": true
-    },
-    "asn1": {
-      "version": "0.2.3",
-      "resolved": "http://registry.npm.taobao.org/asn1/download/asn1-0.2.3.tgz",
-      "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
-      "dev": true
-    },
-    "asn1.js": {
-      "version": "4.9.2",
-      "resolved": "http://registry.npm.taobao.org/asn1.js/download/asn1.js-4.9.2.tgz",
-      "integrity": "sha1-gRfvT37YfNj4kES1v/l6wkOhbJo=",
-      "dev": true,
-      "requires": {
-        "bn.js": "4.11.8",
-        "inherits": "2.0.3",
-        "minimalistic-assert": "1.0.0"
-      }
-    },
-    "assert": {
-      "version": "1.4.1",
-      "resolved": "http://registry.npm.taobao.org/assert/download/assert-1.4.1.tgz",
-      "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
-      "dev": true,
-      "requires": {
-        "util": "0.10.3"
-      }
-    },
-    "assert-plus": {
-      "version": "0.2.0",
-      "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-0.2.0.tgz",
-      "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
-      "dev": true
-    },
-    "async": {
-      "version": "2.6.0",
-      "resolved": "http://registry.npm.taobao.org/async/download/async-2.6.0.tgz",
-      "integrity": "sha1-YaKau2/MAm/qd+VtHG7FOnlZUfQ=",
-      "dev": true,
-      "requires": {
-        "lodash": "4.17.4"
-      }
-    },
-    "async-each": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz",
-      "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
-      "dev": true
-    },
-    "async-foreach": {
-      "version": "0.1.3",
-      "resolved": "http://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz",
-      "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
-      "dev": true,
-      "optional": true
-    },
-    "async-limiter": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.0.tgz",
-      "integrity": "sha1-ePrtjD0HSrgfIrTphdeehzj3IPg=",
-      "dev": true
-    },
-    "asynckit": {
-      "version": "0.4.0",
-      "resolved": "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
-      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
-      "dev": true
-    },
-    "autoprefixer": {
-      "version": "6.7.7",
-      "resolved": "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-6.7.7.tgz",
-      "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
-      "dev": true,
-      "requires": {
-        "browserslist": "1.7.7",
-        "caniuse-db": "1.0.30000783",
-        "normalize-range": "0.1.2",
-        "num2fraction": "1.2.2",
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0"
-      }
-    },
-    "aws-sign2": {
-      "version": "0.6.0",
-      "resolved": "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz",
-      "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
-      "dev": true
-    },
-    "aws4": {
-      "version": "1.6.0",
-      "resolved": "http://registry.npm.taobao.org/aws4/download/aws4-1.6.0.tgz",
-      "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
-      "dev": true
-    },
-    "babel-code-frame": {
-      "version": "6.26.0",
-      "resolved": "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz",
-      "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
-      "dev": true,
-      "requires": {
-        "chalk": "1.1.3",
-        "esutils": "2.0.2",
-        "js-tokens": "3.0.2"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "babel-generator": {
-      "version": "6.26.0",
-      "resolved": "http://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.0.tgz",
-      "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
-      "dev": true,
-      "requires": {
-        "babel-messages": "6.23.0",
-        "babel-runtime": "6.26.0",
-        "babel-types": "6.26.0",
-        "detect-indent": "4.0.0",
-        "jsesc": "1.3.0",
-        "lodash": "4.17.4",
-        "source-map": "0.5.7",
-        "trim-right": "1.0.1"
-      },
-      "dependencies": {
-        "jsesc": {
-          "version": "1.3.0",
-          "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz",
-          "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
-          "dev": true
-        }
-      }
-    },
-    "babel-messages": {
-      "version": "6.23.0",
-      "resolved": "http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz",
-      "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "6.26.0"
-      }
-    },
-    "babel-runtime": {
-      "version": "6.26.0",
-      "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz",
-      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
-      "dev": true,
-      "requires": {
-        "core-js": "2.5.3",
-        "regenerator-runtime": "0.11.1"
-      }
-    },
-    "babel-template": {
-      "version": "6.26.0",
-      "resolved": "http://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz",
-      "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "6.26.0",
-        "babel-traverse": "6.26.0",
-        "babel-types": "6.26.0",
-        "babylon": "6.18.0",
-        "lodash": "4.17.4"
-      }
-    },
-    "babel-traverse": {
-      "version": "6.26.0",
-      "resolved": "http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz",
-      "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
-      "dev": true,
-      "requires": {
-        "babel-code-frame": "6.26.0",
-        "babel-messages": "6.23.0",
-        "babel-runtime": "6.26.0",
-        "babel-types": "6.26.0",
-        "babylon": "6.18.0",
-        "debug": "2.6.9",
-        "globals": "9.18.0",
-        "invariant": "2.2.2",
-        "lodash": "4.17.4"
-      }
-    },
-    "babel-types": {
-      "version": "6.26.0",
-      "resolved": "http://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz",
-      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "6.26.0",
-        "esutils": "2.0.2",
-        "lodash": "4.17.4",
-        "to-fast-properties": "1.0.3"
-      }
-    },
-    "babylon": {
-      "version": "6.18.0",
-      "resolved": "http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz",
-      "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=",
-      "dev": true
-    },
-    "backo2": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/backo2/download/backo2-1.0.2.tgz",
-      "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
-      "dev": true
-    },
-    "bail": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/bail/download/bail-1.0.2.tgz",
-      "integrity": "sha1-99bBcxYwqfnw1NNe0fli4gdKF2Q=",
-      "dev": true
-    },
-    "balanced-match": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz",
-      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
-      "dev": true
-    },
-    "base64-arraybuffer": {
-      "version": "0.1.5",
-      "resolved": "http://registry.npm.taobao.org/base64-arraybuffer/download/base64-arraybuffer-0.1.5.tgz",
-      "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
-      "dev": true
-    },
-    "base64-js": {
-      "version": "1.2.1",
-      "resolved": "http://registry.npm.taobao.org/base64-js/download/base64-js-1.2.1.tgz",
-      "integrity": "sha1-qRlH2h9KUW6jjltOwOw3c2deCIY=",
-      "dev": true
-    },
-    "base64id": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/base64id/download/base64id-1.0.0.tgz",
-      "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
-      "dev": true
-    },
-    "batch": {
-      "version": "0.6.1",
-      "resolved": "http://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz",
-      "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
-      "dev": true
-    },
-    "bcrypt-pbkdf": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.1.tgz",
-      "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "tweetnacl": "0.14.5"
-      }
-    },
-    "beeper": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/beeper/download/beeper-1.1.1.tgz",
-      "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
-      "dev": true
-    },
-    "better-assert": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/better-assert/download/better-assert-1.0.2.tgz",
-      "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
-      "dev": true,
-      "requires": {
-        "callsite": "1.0.0"
-      }
-    },
-    "big.js": {
-      "version": "3.2.0",
-      "resolved": "http://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz",
-      "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=",
-      "dev": true
-    },
-    "binary-extensions": {
-      "version": "1.11.0",
-      "resolved": "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.11.0.tgz",
-      "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
-      "dev": true
-    },
-    "bl": {
-      "version": "1.2.1",
-      "resolved": "http://registry.npm.taobao.org/bl/download/bl-1.2.1.tgz",
-      "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=",
-      "dev": true,
-      "requires": {
-        "readable-stream": "2.3.3"
-      }
-    },
-    "blob": {
-      "version": "0.0.4",
-      "resolved": "http://registry.npm.taobao.org/blob/download/blob-0.0.4.tgz",
-      "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=",
-      "dev": true
-    },
-    "block-stream": {
-      "version": "0.0.9",
-      "resolved": "http://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz",
-      "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "inherits": "2.0.3"
-      }
-    },
-    "blocking-proxy": {
-      "version": "0.0.5",
-      "resolved": "http://registry.npm.taobao.org/blocking-proxy/download/blocking-proxy-0.0.5.tgz",
-      "integrity": "sha1-RikF4Nz76pcPQao3Ij3anAexkSs=",
-      "dev": true,
-      "requires": {
-        "minimist": "1.2.0"
-      }
-    },
-    "bluebird": {
-      "version": "3.5.1",
-      "resolved": "http://registry.npm.taobao.org/bluebird/download/bluebird-3.5.1.tgz",
-      "integrity": "sha1-2VUfnemPH82h5oPRfukaBgLuLrk=",
-      "dev": true
-    },
-    "bn.js": {
-      "version": "4.11.8",
-      "resolved": "http://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz",
-      "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=",
-      "dev": true
-    },
-    "body-parser": {
-      "version": "1.18.2",
-      "resolved": "http://registry.npm.taobao.org/body-parser/download/body-parser-1.18.2.tgz",
-      "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
-      "dev": true,
-      "requires": {
-        "bytes": "3.0.0",
-        "content-type": "1.0.4",
-        "debug": "2.6.9",
-        "depd": "1.1.1",
-        "http-errors": "1.6.2",
-        "iconv-lite": "0.4.19",
-        "on-finished": "2.3.0",
-        "qs": "6.5.1",
-        "raw-body": "2.3.2",
-        "type-is": "1.6.15"
-      },
-      "dependencies": {
-        "qs": {
-          "version": "6.5.1",
-          "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.5.1.tgz",
-          "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg=",
-          "dev": true
-        }
-      }
-    },
-    "bonjour": {
-      "version": "3.5.0",
-      "resolved": "http://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz",
-      "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
-      "dev": true,
-      "requires": {
-        "array-flatten": "2.1.1",
-        "deep-equal": "1.0.1",
-        "dns-equal": "1.0.0",
-        "dns-txt": "2.0.2",
-        "multicast-dns": "6.2.1",
-        "multicast-dns-service-types": "1.1.0"
-      }
-    },
-    "boolbase": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz",
-      "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
-      "dev": true
-    },
-    "boom": {
-      "version": "2.10.1",
-      "resolved": "http://registry.npm.taobao.org/boom/download/boom-2.10.1.tgz",
-      "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
-      "dev": true,
-      "requires": {
-        "hoek": "2.16.3"
-      }
-    },
-    "brace-expansion": {
-      "version": "1.1.8",
-      "resolved": "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.8.tgz",
-      "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
-      "dev": true,
-      "requires": {
-        "balanced-match": "1.0.0",
-        "concat-map": "0.0.1"
-      }
-    },
-    "braces": {
-      "version": "1.8.5",
-      "resolved": "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz",
-      "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
-      "dev": true,
-      "requires": {
-        "expand-range": "1.8.2",
-        "preserve": "0.2.0",
-        "repeat-element": "1.1.2"
-      }
-    },
-    "brorand": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz",
-      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
-      "dev": true
-    },
-    "browserify-aes": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.1.1.tgz",
-      "integrity": "sha1-OLerVe24Bv8tzaGn8WIHc6R3xJ8=",
-      "dev": true,
-      "requires": {
-        "buffer-xor": "1.0.3",
-        "cipher-base": "1.0.4",
-        "create-hash": "1.1.3",
-        "evp_bytestokey": "1.0.3",
-        "inherits": "2.0.3",
-        "safe-buffer": "5.1.1"
-      }
-    },
-    "browserify-cipher": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.0.tgz",
-      "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
-      "dev": true,
-      "requires": {
-        "browserify-aes": "1.1.1",
-        "browserify-des": "1.0.0",
-        "evp_bytestokey": "1.0.3"
-      }
-    },
-    "browserify-des": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.0.tgz",
-      "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
-      "dev": true,
-      "requires": {
-        "cipher-base": "1.0.4",
-        "des.js": "1.0.0",
-        "inherits": "2.0.3"
-      }
-    },
-    "browserify-rsa": {
-      "version": "4.0.1",
-      "resolved": "http://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz",
-      "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
-      "dev": true,
-      "requires": {
-        "bn.js": "4.11.8",
-        "randombytes": "2.0.5"
-      }
-    },
-    "browserify-sign": {
-      "version": "4.0.4",
-      "resolved": "http://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz",
-      "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
-      "dev": true,
-      "requires": {
-        "bn.js": "4.11.8",
-        "browserify-rsa": "4.0.1",
-        "create-hash": "1.1.3",
-        "create-hmac": "1.1.6",
-        "elliptic": "6.4.0",
-        "inherits": "2.0.3",
-        "parse-asn1": "5.1.0"
-      }
-    },
-    "browserify-zlib": {
-      "version": "0.2.0",
-      "resolved": "http://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz",
-      "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=",
-      "dev": true,
-      "requires": {
-        "pako": "1.0.6"
-      }
-    },
-    "browserslist": {
-      "version": "1.7.7",
-      "resolved": "http://registry.npm.taobao.org/browserslist/download/browserslist-1.7.7.tgz",
-      "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
-      "dev": true,
-      "requires": {
-        "caniuse-db": "1.0.30000783",
-        "electron-to-chromium": "1.3.28"
-      }
-    },
-    "buffer": {
-      "version": "4.9.1",
-      "resolved": "http://registry.npm.taobao.org/buffer/download/buffer-4.9.1.tgz",
-      "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
-      "dev": true,
-      "requires": {
-        "base64-js": "1.2.1",
-        "ieee754": "1.1.8",
-        "isarray": "1.0.0"
-      }
-    },
-    "buffer-crc32": {
-      "version": "0.2.13",
-      "resolved": "http://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz",
-      "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
-      "dev": true
-    },
-    "buffer-indexof": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz",
-      "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=",
-      "dev": true
-    },
-    "buffer-xor": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz",
-      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
-      "dev": true
-    },
-    "builtin-modules": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz",
-      "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
-      "dev": true
-    },
-    "builtin-status-codes": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz",
-      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
-      "dev": true
-    },
-    "bytes": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz",
-      "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
-      "dev": true
-    },
-    "cacache": {
-      "version": "10.0.1",
-      "resolved": "http://registry.npm.taobao.org/cacache/download/cacache-10.0.1.tgz",
-      "integrity": "sha1-PgX25hYRfZtUZlsbIMiuuT6l028=",
-      "dev": true,
-      "requires": {
-        "bluebird": "3.5.1",
-        "chownr": "1.0.1",
-        "glob": "7.1.2",
-        "graceful-fs": "4.1.11",
-        "lru-cache": "4.1.1",
-        "mississippi": "1.3.0",
-        "mkdirp": "0.5.1",
-        "move-concurrently": "1.0.1",
-        "promise-inflight": "1.0.1",
-        "rimraf": "2.6.2",
-        "ssri": "5.0.0",
-        "unique-filename": "1.1.0",
-        "y18n": "3.2.1"
-      }
-    },
-    "callsite": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/callsite/download/callsite-1.0.0.tgz",
-      "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
-      "dev": true
-    },
-    "camel-case": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz",
-      "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
-      "dev": true,
-      "requires": {
-        "no-case": "2.3.2",
-        "upper-case": "1.1.3"
-      }
-    },
-    "camelcase": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz",
-      "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
-      "dev": true
-    },
-    "camelcase-keys": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz",
-      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
-      "dev": true,
-      "requires": {
-        "camelcase": "2.1.1",
-        "map-obj": "1.0.1"
-      }
-    },
-    "caniuse-api": {
-      "version": "1.6.1",
-      "resolved": "http://registry.npm.taobao.org/caniuse-api/download/caniuse-api-1.6.1.tgz",
-      "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
-      "dev": true,
-      "requires": {
-        "browserslist": "1.7.7",
-        "caniuse-db": "1.0.30000783",
-        "lodash.memoize": "4.1.2",
-        "lodash.uniq": "4.5.0"
-      }
-    },
-    "caniuse-db": {
-      "version": "1.0.30000783",
-      "resolved": "http://registry.npm.taobao.org/caniuse-db/download/caniuse-db-1.0.30000783.tgz",
-      "integrity": "sha1-FrMNRyZqT1FcxprgMWtnDJYDzb4=",
-      "dev": true
-    },
-    "caniuse-lite": {
-      "version": "1.0.30000783",
-      "resolved": "http://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000783.tgz",
-      "integrity": "sha1-m1SZ+xtQPSNF0SqmuGEoUvQnb/0=",
-      "dev": true
-    },
-    "caseless": {
-      "version": "0.12.0",
-      "resolved": "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz",
-      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
-      "dev": true
-    },
-    "ccount": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/ccount/download/ccount-1.0.2.tgz",
-      "integrity": "sha1-U7ai+BW7d7nChx97mnLDol8djok=",
-      "dev": true
-    },
-    "center-align": {
-      "version": "0.1.3",
-      "resolved": "http://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz",
-      "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
-      "dev": true,
-      "requires": {
-        "align-text": "0.1.4",
-        "lazy-cache": "1.0.4"
-      },
-      "dependencies": {
-        "lazy-cache": {
-          "version": "1.0.4",
-          "resolved": "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz",
-          "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
-          "dev": true
-        }
-      }
-    },
-    "chalk": {
-      "version": "2.2.2",
-      "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.2.2.tgz",
-      "integrity": "sha1-RAP1zxjzXAX1H73xUr9Yj5Vs98s=",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "3.2.0",
-        "escape-string-regexp": "1.0.5",
-        "supports-color": "4.5.0"
-      }
-    },
-    "character-entities": {
-      "version": "1.2.1",
-      "resolved": "http://registry.npm.taobao.org/character-entities/download/character-entities-1.2.1.tgz",
-      "integrity": "sha1-92hxvl72bdt/j440eOzDdMJ9bco=",
-      "dev": true
-    },
-    "character-entities-html4": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/character-entities-html4/download/character-entities-html4-1.1.1.tgz",
-      "integrity": "sha1-NZoqSg9+KdPcKsmb2+Ie45Q46lA=",
-      "dev": true
-    },
-    "character-entities-legacy": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/character-entities-legacy/download/character-entities-legacy-1.1.1.tgz",
-      "integrity": "sha1-9Ad53xoQGHK7UQo9KV4fzPFHIC8=",
-      "dev": true
-    },
-    "character-reference-invalid": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/character-reference-invalid/download/character-reference-invalid-1.1.1.tgz",
-      "integrity": "sha1-lCg191Dk7GGjCOYMLvjMEBEgLvw=",
-      "dev": true
-    },
-    "charenc": {
-      "version": "0.0.2",
-      "resolved": "http://registry.npm.taobao.org/charenc/download/charenc-0.0.2.tgz",
-      "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
-      "dev": true
-    },
-    "chokidar": {
-      "version": "1.7.0",
-      "resolved": "http://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz",
-      "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
-      "dev": true,
-      "requires": {
-        "anymatch": "1.3.2",
-        "async-each": "1.0.1",
-        "fsevents": "1.1.3",
-        "glob-parent": "2.0.0",
-        "inherits": "2.0.3",
-        "is-binary-path": "1.0.1",
-        "is-glob": "2.0.1",
-        "path-is-absolute": "1.0.1",
-        "readdirp": "2.1.0"
-      },
-      "dependencies": {
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "2.0.1",
-          "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
-          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "1.0.0"
-          }
-        }
-      }
-    },
-    "chownr": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/chownr/download/chownr-1.0.1.tgz",
-      "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
-      "dev": true
-    },
-    "cipher-base": {
-      "version": "1.0.4",
-      "resolved": "http://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz",
-      "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3",
-        "safe-buffer": "5.1.1"
-      }
-    },
-    "circular-dependency-plugin": {
-      "version": "4.3.0",
-      "resolved": "http://registry.npm.taobao.org/circular-dependency-plugin/download/circular-dependency-plugin-4.3.0.tgz",
-      "integrity": "sha1-KhKCTlhFRuGu6lhlt78jShHEppU=",
-      "dev": true
-    },
-    "circular-json": {
-      "version": "0.3.3",
-      "resolved": "http://registry.npm.taobao.org/circular-json/download/circular-json-0.3.3.tgz",
-      "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=",
-      "dev": true
-    },
-    "clap": {
-      "version": "1.2.3",
-      "resolved": "http://registry.npm.taobao.org/clap/download/clap-1.2.3.tgz",
-      "integrity": "sha1-TzZ0WzIAhJJVf0ZBLWbVDLmbzlE=",
-      "dev": true,
-      "requires": {
-        "chalk": "1.1.3"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "clean-css": {
-      "version": "4.1.9",
-      "resolved": "http://registry.npm.taobao.org/clean-css/download/clean-css-4.1.9.tgz",
-      "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=",
-      "dev": true,
-      "requires": {
-        "source-map": "0.5.7"
-      }
-    },
-    "cli-cursor": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz",
-      "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
-      "dev": true,
-      "requires": {
-        "restore-cursor": "1.0.1"
-      }
-    },
-    "cli-spinners": {
-      "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/cli-spinners/download/cli-spinners-0.1.2.tgz",
-      "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=",
-      "dev": true
-    },
-    "cli-truncate": {
-      "version": "0.2.1",
-      "resolved": "http://registry.npm.taobao.org/cli-truncate/download/cli-truncate-0.2.1.tgz",
-      "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
-      "dev": true,
-      "requires": {
-        "slice-ansi": "0.0.4",
-        "string-width": "1.0.2"
-      }
-    },
-    "cliui": {
-      "version": "3.2.0",
-      "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz",
-      "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
-      "dev": true,
-      "requires": {
-        "string-width": "1.0.2",
-        "strip-ansi": "3.0.1",
-        "wrap-ansi": "2.1.0"
-      }
-    },
-    "clone": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/clone/download/clone-1.0.3.tgz",
-      "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=",
-      "dev": true
-    },
-    "clone-deep": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/clone-deep/download/clone-deep-0.3.0.tgz",
-      "integrity": "sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=",
-      "dev": true,
-      "requires": {
-        "for-own": "1.0.0",
-        "is-plain-object": "2.0.4",
-        "kind-of": "3.2.2",
-        "shallow-clone": "0.1.2"
-      }
-    },
-    "clone-regexp": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/clone-regexp/download/clone-regexp-1.0.0.tgz",
-      "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=",
-      "dev": true,
-      "requires": {
-        "is-regexp": "1.0.0",
-        "is-supported-regexp-flag": "1.0.0"
-      }
-    },
-    "clone-stats": {
-      "version": "0.0.1",
-      "resolved": "http://registry.npm.taobao.org/clone-stats/download/clone-stats-0.0.1.tgz",
-      "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
-      "dev": true
-    },
-    "co": {
-      "version": "4.6.0",
-      "resolved": "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz",
-      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
-      "dev": true
-    },
-    "coa": {
-      "version": "1.0.4",
-      "resolved": "http://registry.npm.taobao.org/coa/download/coa-1.0.4.tgz",
-      "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
-      "dev": true,
-      "requires": {
-        "q": "1.5.1"
-      }
-    },
-    "code-point-at": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz",
-      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
-      "dev": true
-    },
-    "codecov": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/codecov/download/codecov-3.0.0.tgz",
-      "integrity": "sha1-wnO4xPEpRXI+jcnSWAPYk0Pl8o4=",
-      "dev": true,
-      "requires": {
-        "argv": "0.0.2",
-        "request": "2.81.0",
-        "urlgrey": "0.4.4"
-      }
-    },
-    "codelyzer": {
-      "version": "4.0.2",
-      "resolved": "http://registry.npm.taobao.org/codelyzer/download/codelyzer-4.0.2.tgz",
-      "integrity": "sha1-1eI5C5fZXnOnsebwzwPhbL81sG8=",
-      "dev": true,
-      "requires": {
-        "app-root-path": "2.0.1",
-        "css-selector-tokenizer": "0.7.0",
-        "cssauron": "1.4.0",
-        "semver-dsl": "1.0.1",
-        "source-map": "0.5.7",
-        "sprintf-js": "1.0.3"
-      }
-    },
-    "collapse-white-space": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/collapse-white-space/download/collapse-white-space-1.0.3.tgz",
-      "integrity": "sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw=",
-      "dev": true
-    },
-    "color": {
-      "version": "0.11.4",
-      "resolved": "http://registry.npm.taobao.org/color/download/color-0.11.4.tgz",
-      "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
-      "dev": true,
-      "requires": {
-        "clone": "1.0.3",
-        "color-convert": "1.9.1",
-        "color-string": "0.3.0"
-      }
-    },
-    "color-convert": {
-      "version": "1.9.1",
-      "resolved": "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.1.tgz",
-      "integrity": "sha1-wSYRB66y8pTr/+ye2eytUppgl+0=",
-      "dev": true,
-      "requires": {
-        "color-name": "1.1.3"
-      }
-    },
-    "color-name": {
-      "version": "1.1.3",
-      "resolved": "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
-      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
-      "dev": true
-    },
-    "color-string": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/color-string/download/color-string-0.3.0.tgz",
-      "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
-      "dev": true,
-      "requires": {
-        "color-name": "1.1.3"
-      }
-    },
-    "color-support": {
-      "version": "1.1.3",
-      "resolved": "http://registry.npm.taobao.org/color-support/download/color-support-1.1.3.tgz",
-      "integrity": "sha1-k4NDeaHMmgxh+C9S8NBDIiUb1aI=",
-      "dev": true
-    },
-    "colormin": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/colormin/download/colormin-1.1.2.tgz",
-      "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
-      "dev": true,
-      "requires": {
-        "color": "0.11.4",
-        "css-color-names": "0.0.4",
-        "has": "1.0.1"
-      }
-    },
-    "colors": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/colors/download/colors-1.1.2.tgz",
-      "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
-      "dev": true
-    },
-    "combine-lists": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/combine-lists/download/combine-lists-1.0.1.tgz",
-      "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=",
-      "dev": true,
-      "requires": {
-        "lodash": "4.17.4"
-      }
-    },
-    "combined-stream": {
-      "version": "1.0.5",
-      "resolved": "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.5.tgz",
-      "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
-      "dev": true,
-      "requires": {
-        "delayed-stream": "1.0.0"
-      }
-    },
-    "commander": {
-      "version": "2.12.2",
-      "resolved": "http://registry.npm.taobao.org/commander/download/commander-2.12.2.tgz",
-      "integrity": "sha1-D1lGxCftnsDZGka7ne9T5UZQ5VU="
-    },
-    "common-tags": {
-      "version": "1.5.1",
-      "resolved": "http://registry.npm.taobao.org/common-tags/download/common-tags-1.5.1.tgz",
-      "integrity": "sha1-4uOZMaATzQIlPe/u2Joa1hWifwc=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "6.26.0"
-      }
-    },
-    "commondir": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz",
-      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
-      "dev": true
-    },
-    "component-bind": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/component-bind/download/component-bind-1.0.0.tgz",
-      "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
-      "dev": true
-    },
-    "component-emitter": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.1.2.tgz",
-      "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=",
-      "dev": true
-    },
-    "component-inherit": {
-      "version": "0.0.3",
-      "resolved": "http://registry.npm.taobao.org/component-inherit/download/component-inherit-0.0.3.tgz",
-      "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
-      "dev": true
-    },
-    "compress-commons": {
-      "version": "1.2.2",
-      "resolved": "http://registry.npm.taobao.org/compress-commons/download/compress-commons-1.2.2.tgz",
-      "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=",
-      "dev": true,
-      "requires": {
-        "buffer-crc32": "0.2.13",
-        "crc32-stream": "2.0.0",
-        "normalize-path": "2.1.1",
-        "readable-stream": "2.3.3"
-      }
-    },
-    "compressible": {
-      "version": "2.0.12",
-      "resolved": "http://registry.npm.taobao.org/compressible/download/compressible-2.0.12.tgz",
-      "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=",
-      "dev": true,
-      "requires": {
-        "mime-db": "1.30.0"
-      }
-    },
-    "compression": {
-      "version": "1.7.1",
-      "resolved": "http://registry.npm.taobao.org/compression/download/compression-1.7.1.tgz",
-      "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=",
-      "dev": true,
-      "requires": {
-        "accepts": "1.3.4",
-        "bytes": "3.0.0",
-        "compressible": "2.0.12",
-        "debug": "2.6.9",
-        "on-headers": "1.0.1",
-        "safe-buffer": "5.1.1",
-        "vary": "1.1.2"
-      }
-    },
-    "concat-map": {
-      "version": "0.0.1",
-      "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz",
-      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
-      "dev": true
-    },
-    "concat-stream": {
-      "version": "1.6.0",
-      "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.0.tgz",
-      "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3",
-        "readable-stream": "2.3.3",
-        "typedarray": "0.0.6"
-      }
-    },
-    "connect": {
-      "version": "3.6.5",
-      "resolved": "http://registry.npm.taobao.org/connect/download/connect-3.6.5.tgz",
-      "integrity": "sha1-+43ee6B2OHfQ7J352sC0tA5yx9o=",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "finalhandler": "1.0.6",
-        "parseurl": "1.3.2",
-        "utils-merge": "1.0.1"
-      },
-      "dependencies": {
-        "finalhandler": {
-          "version": "1.0.6",
-          "resolved": "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.0.6.tgz",
-          "integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=",
-          "dev": true,
-          "requires": {
-            "debug": "2.6.9",
-            "encodeurl": "1.0.1",
-            "escape-html": "1.0.3",
-            "on-finished": "2.3.0",
-            "parseurl": "1.3.2",
-            "statuses": "1.3.1",
-            "unpipe": "1.0.0"
-          }
-        }
-      }
-    },
-    "connect-history-api-fallback": {
-      "version": "1.5.0",
-      "resolved": "http://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.5.0.tgz",
-      "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=",
-      "dev": true
-    },
-    "console-browserify": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/console-browserify/download/console-browserify-1.1.0.tgz",
-      "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
-      "dev": true,
-      "requires": {
-        "date-now": "0.1.4"
-      }
-    },
-    "console-control-strings": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz",
-      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
-      "dev": true
-    },
-    "constants-browserify": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz",
-      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
-      "dev": true
-    },
-    "content-disposition": {
-      "version": "0.5.2",
-      "resolved": "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.2.tgz",
-      "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
-      "dev": true
-    },
-    "content-type": {
-      "version": "1.0.4",
-      "resolved": "http://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz",
-      "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=",
-      "dev": true
-    },
-    "convert-source-map": {
-      "version": "1.5.1",
-      "resolved": "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.5.1.tgz",
-      "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
-      "dev": true
-    },
-    "cookie": {
-      "version": "0.3.1",
-      "resolved": "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz",
-      "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
-      "dev": true
-    },
-    "cookie-signature": {
-      "version": "1.0.6",
-      "resolved": "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz",
-      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
-      "dev": true
-    },
-    "copy-concurrently": {
-      "version": "1.0.5",
-      "resolved": "http://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz",
-      "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=",
-      "dev": true,
-      "requires": {
-        "aproba": "1.2.0",
-        "fs-write-stream-atomic": "1.0.10",
-        "iferr": "0.1.5",
-        "mkdirp": "0.5.1",
-        "rimraf": "2.6.2",
-        "run-queue": "1.0.3"
-      }
-    },
-    "copy-webpack-plugin": {
-      "version": "4.3.0",
-      "resolved": "http://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.3.0.tgz",
-      "integrity": "sha1-z99NExx41mkXobuGP4ZjBJeqz0I=",
-      "dev": true,
-      "requires": {
-        "cacache": "10.0.1",
-        "find-cache-dir": "1.0.0",
-        "globby": "7.1.1",
-        "is-glob": "4.0.0",
-        "loader-utils": "0.2.17",
-        "lodash": "4.17.4",
-        "minimatch": "3.0.4",
-        "p-limit": "1.1.0",
-        "pify": "3.0.0",
-        "serialize-javascript": "1.4.0"
-      },
-      "dependencies": {
-        "loader-utils": {
-          "version": "0.2.17",
-          "resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz",
-          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
-          "dev": true,
-          "requires": {
-            "big.js": "3.2.0",
-            "emojis-list": "2.1.0",
-            "json5": "0.5.1",
-            "object-assign": "4.1.1"
-          }
-        }
-      }
-    },
-    "core-js": {
-      "version": "2.5.3",
-      "resolved": "http://registry.npm.taobao.org/core-js/download/core-js-2.5.3.tgz",
-      "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4="
-    },
-    "core-object": {
-      "version": "3.1.5",
-      "resolved": "http://registry.npm.taobao.org/core-object/download/core-object-3.1.5.tgz",
-      "integrity": "sha1-+mJ7h1Aq3JgEXkRnjpqOw7nA0qk=",
-      "dev": true,
-      "requires": {
-        "chalk": "2.2.2"
-      }
-    },
-    "core-util-is": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
-      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
-      "dev": true
-    },
-    "cosmiconfig": {
-      "version": "2.2.2",
-      "resolved": "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-2.2.2.tgz",
-      "integrity": "sha1-YXPOvVb6wELB9DkO33r2wHx8uJI=",
-      "dev": true,
-      "requires": {
-        "is-directory": "0.3.1",
-        "js-yaml": "3.7.0",
-        "minimist": "1.2.0",
-        "object-assign": "4.1.1",
-        "os-homedir": "1.0.2",
-        "parse-json": "2.2.0",
-        "require-from-string": "1.2.1"
-      }
-    },
-    "crc": {
-      "version": "3.5.0",
-      "resolved": "http://registry.npm.taobao.org/crc/download/crc-3.5.0.tgz",
-      "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=",
-      "dev": true
-    },
-    "crc32-stream": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/crc32-stream/download/crc32-stream-2.0.0.tgz",
-      "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=",
-      "dev": true,
-      "requires": {
-        "crc": "3.5.0",
-        "readable-stream": "2.3.3"
-      }
-    },
-    "create-ecdh": {
-      "version": "4.0.0",
-      "resolved": "http://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.0.tgz",
-      "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
-      "dev": true,
-      "requires": {
-        "bn.js": "4.11.8",
-        "elliptic": "6.4.0"
-      }
-    },
-    "create-hash": {
-      "version": "1.1.3",
-      "resolved": "http://registry.npm.taobao.org/create-hash/download/create-hash-1.1.3.tgz",
-      "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
-      "dev": true,
-      "requires": {
-        "cipher-base": "1.0.4",
-        "inherits": "2.0.3",
-        "ripemd160": "2.0.1",
-        "sha.js": "2.4.9"
-      }
-    },
-    "create-hmac": {
-      "version": "1.1.6",
-      "resolved": "http://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.6.tgz",
-      "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
-      "dev": true,
-      "requires": {
-        "cipher-base": "1.0.4",
-        "create-hash": "1.1.3",
-        "inherits": "2.0.3",
-        "ripemd160": "2.0.1",
-        "safe-buffer": "5.1.1",
-        "sha.js": "2.4.9"
-      }
-    },
-    "cross-spawn": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz",
-      "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "lru-cache": "4.1.1",
-        "which": "1.3.0"
-      }
-    },
-    "crypt": {
-      "version": "0.0.2",
-      "resolved": "http://registry.npm.taobao.org/crypt/download/crypt-0.0.2.tgz",
-      "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
-      "dev": true
-    },
-    "cryptiles": {
-      "version": "2.0.5",
-      "resolved": "http://registry.npm.taobao.org/cryptiles/download/cryptiles-2.0.5.tgz",
-      "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
-      "dev": true,
-      "requires": {
-        "boom": "2.10.1"
-      }
-    },
-    "crypto-browserify": {
-      "version": "3.12.0",
-      "resolved": "http://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz",
-      "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=",
-      "dev": true,
-      "requires": {
-        "browserify-cipher": "1.0.0",
-        "browserify-sign": "4.0.4",
-        "create-ecdh": "4.0.0",
-        "create-hash": "1.1.3",
-        "create-hmac": "1.1.6",
-        "diffie-hellman": "5.0.2",
-        "inherits": "2.0.3",
-        "pbkdf2": "3.0.14",
-        "public-encrypt": "4.0.0",
-        "randombytes": "2.0.5",
-        "randomfill": "1.0.3"
-      }
-    },
-    "css-color-names": {
-      "version": "0.0.4",
-      "resolved": "http://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz",
-      "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
-      "dev": true
-    },
-    "css-loader": {
-      "version": "0.28.7",
-      "resolved": "http://registry.npm.taobao.org/css-loader/download/css-loader-0.28.7.tgz",
-      "integrity": "sha1-Xy7pid0y7dkHcX+VMxdlYWCZnBs=",
-      "dev": true,
-      "requires": {
-        "babel-code-frame": "6.26.0",
-        "css-selector-tokenizer": "0.7.0",
-        "cssnano": "3.10.0",
-        "icss-utils": "2.1.0",
-        "loader-utils": "1.1.0",
-        "lodash.camelcase": "4.3.0",
-        "object-assign": "4.1.1",
-        "postcss": "5.2.18",
-        "postcss-modules-extract-imports": "1.1.0",
-        "postcss-modules-local-by-default": "1.2.0",
-        "postcss-modules-scope": "1.1.0",
-        "postcss-modules-values": "1.3.0",
-        "postcss-value-parser": "3.3.0",
-        "source-list-map": "2.0.0"
-      }
-    },
-    "css-parse": {
-      "version": "1.7.0",
-      "resolved": "http://registry.npm.taobao.org/css-parse/download/css-parse-1.7.0.tgz",
-      "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=",
-      "dev": true
-    },
-    "css-select": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz",
-      "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
-      "dev": true,
-      "requires": {
-        "boolbase": "1.0.0",
-        "css-what": "2.1.0",
-        "domutils": "1.5.1",
-        "nth-check": "1.0.1"
-      }
-    },
-    "css-selector-tokenizer": {
-      "version": "0.7.0",
-      "resolved": "http://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.0.tgz",
-      "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
-      "dev": true,
-      "requires": {
-        "cssesc": "0.1.0",
-        "fastparse": "1.1.1",
-        "regexpu-core": "1.0.0"
-      }
-    },
-    "css-what": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/css-what/download/css-what-2.1.0.tgz",
-      "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
-      "dev": true
-    },
-    "cssauron": {
-      "version": "1.4.0",
-      "resolved": "http://registry.npm.taobao.org/cssauron/download/cssauron-1.4.0.tgz",
-      "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=",
-      "dev": true,
-      "requires": {
-        "through": "2.3.8"
-      }
-    },
-    "cssesc": {
-      "version": "0.1.0",
-      "resolved": "http://registry.npm.taobao.org/cssesc/download/cssesc-0.1.0.tgz",
-      "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
-      "dev": true
-    },
-    "cssnano": {
-      "version": "3.10.0",
-      "resolved": "http://registry.npm.taobao.org/cssnano/download/cssnano-3.10.0.tgz",
-      "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
-      "dev": true,
-      "requires": {
-        "autoprefixer": "6.7.7",
-        "decamelize": "1.2.0",
-        "defined": "1.0.0",
-        "has": "1.0.1",
-        "object-assign": "4.1.1",
-        "postcss": "5.2.18",
-        "postcss-calc": "5.3.1",
-        "postcss-colormin": "2.2.2",
-        "postcss-convert-values": "2.6.1",
-        "postcss-discard-comments": "2.0.4",
-        "postcss-discard-duplicates": "2.1.0",
-        "postcss-discard-empty": "2.1.0",
-        "postcss-discard-overridden": "0.1.1",
-        "postcss-discard-unused": "2.2.3",
-        "postcss-filter-plugins": "2.0.2",
-        "postcss-merge-idents": "2.1.7",
-        "postcss-merge-longhand": "2.0.2",
-        "postcss-merge-rules": "2.1.2",
-        "postcss-minify-font-values": "1.0.5",
-        "postcss-minify-gradients": "1.0.5",
-        "postcss-minify-params": "1.2.2",
-        "postcss-minify-selectors": "2.1.1",
-        "postcss-normalize-charset": "1.1.1",
-        "postcss-normalize-url": "3.0.8",
-        "postcss-ordered-values": "2.2.3",
-        "postcss-reduce-idents": "2.4.0",
-        "postcss-reduce-initial": "1.0.1",
-        "postcss-reduce-transforms": "1.0.4",
-        "postcss-svgo": "2.1.6",
-        "postcss-unique-selectors": "2.0.2",
-        "postcss-value-parser": "3.3.0",
-        "postcss-zindex": "2.2.0"
-      }
-    },
-    "csso": {
-      "version": "2.3.2",
-      "resolved": "http://registry.npm.taobao.org/csso/download/csso-2.3.2.tgz",
-      "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
-      "dev": true,
-      "requires": {
-        "clap": "1.2.3",
-        "source-map": "0.5.7"
-      }
-    },
-    "cuint": {
-      "version": "0.2.2",
-      "resolved": "http://registry.npm.taobao.org/cuint/download/cuint-0.2.2.tgz",
-      "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=",
-      "dev": true
-    },
-    "currently-unhandled": {
-      "version": "0.4.1",
-      "resolved": "http://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz",
-      "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
-      "dev": true,
-      "requires": {
-        "array-find-index": "1.0.2"
-      }
-    },
-    "custom-event": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/custom-event/download/custom-event-1.0.1.tgz",
-      "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=",
-      "dev": true
-    },
-    "cyclist": {
-      "version": "0.2.2",
-      "resolved": "http://registry.npm.taobao.org/cyclist/download/cyclist-0.2.2.tgz",
-      "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
-      "dev": true
-    },
-    "d": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/d/download/d-1.0.0.tgz",
-      "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
-      "dev": true,
-      "requires": {
-        "es5-ext": "0.10.37"
-      }
-    },
-    "d3-array": {
-      "version": "1.2.1",
-      "resolved": "http://registry.npm.taobao.org/d3-array/download/d3-array-1.2.1.tgz",
-      "integrity": "sha1-0coz3i9qwx76244FCgIdfiOW1dw="
-    },
-    "d3-collection": {
-      "version": "1.0.4",
-      "resolved": "http://registry.npm.taobao.org/d3-collection/download/d3-collection-1.0.4.tgz",
-      "integrity": "sha1-NC39EoN8kJdPM/HMCnha6lcNzcI="
-    },
-    "d3-color": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/d3-color/download/d3-color-1.0.3.tgz",
-      "integrity": "sha1-vHZD/KjlOoNH4vva/6I2eWtYUJs="
-    },
-    "d3-composite-projections": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/d3-composite-projections/download/d3-composite-projections-1.2.0.tgz",
-      "integrity": "sha1-+g5vFELxfQRkOEOjqIPH2U4MJ8A=",
-      "requires": {
-        "d3-geo": "1.2.4",
-        "d3-path": "1.0.5"
-      },
-      "dependencies": {
-        "d3-geo": {
-          "version": "1.2.4",
-          "resolved": "http://registry.npm.taobao.org/d3-geo/download/d3-geo-1.2.4.tgz",
-          "integrity": "sha1-0XnzuqduYj7x4Ng2k9twW3xZkAY=",
-          "requires": {
-            "d3-array": "1.2.1"
-          }
-        }
-      }
-    },
-    "d3-dsv": {
-      "version": "1.0.8",
-      "resolved": "http://registry.npm.taobao.org/d3-dsv/download/d3-dsv-1.0.8.tgz",
-      "integrity": "sha1-kH4kDVezhmGNxWRous/na/GXZK4=",
-      "requires": {
-        "commander": "2.12.2",
-        "iconv-lite": "0.4.19",
-        "rw": "1.3.3"
-      }
-    },
-    "d3-ease": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/d3-ease/download/d3-ease-1.0.3.tgz",
-      "integrity": "sha1-aL+8NJM4o4DETYrMT7wzBKotjA4="
-    },
-    "d3-geo": {
-      "version": "1.9.1",
-      "resolved": "http://registry.npm.taobao.org/d3-geo/download/d3-geo-1.9.1.tgz",
-      "integrity": "sha1-FX47D5FzedD3O+v/875Tf0n6c1Y=",
-      "requires": {
-        "d3-array": "1.2.1"
-      }
-    },
-    "d3-geo-projection": {
-      "version": "2.3.2",
-      "resolved": "http://registry.npm.taobao.org/d3-geo-projection/download/d3-geo-projection-2.3.2.tgz",
-      "integrity": "sha1-cuVZ3AXZf6nyGMzJxTfTKfTPxHQ=",
-      "requires": {
-        "commander": "2.12.2",
-        "d3-array": "1.2.1",
-        "d3-geo": "1.9.1"
-      }
-    },
-    "d3-hierarchy": {
-      "version": "1.1.5",
-      "resolved": "http://registry.npm.taobao.org/d3-hierarchy/download/d3-hierarchy-1.1.5.tgz",
-      "integrity": "sha1-ochFxC+Eoga88cAcAQmOpN2qeiY="
-    },
-    "d3-interpolate": {
-      "version": "1.1.6",
-      "resolved": "http://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.1.6.tgz",
-      "integrity": "sha1-LPOVriOBgE3wiqG/dmt/l7X2j7Y=",
-      "requires": {
-        "d3-color": "1.0.3"
-      }
-    },
-    "d3-path": {
-      "version": "1.0.5",
-      "resolved": "http://registry.npm.taobao.org/d3-path/download/d3-path-1.0.5.tgz",
-      "integrity": "sha1-JB6xhJvZ6egCHA0KeZ+KDo5EF2Q="
-    },
-    "d3-sankey": {
-      "version": "0.7.1",
-      "resolved": "http://registry.npm.taobao.org/d3-sankey/download/d3-sankey-0.7.1.tgz",
-      "integrity": "sha1-0imDImj8aaf+yEgD6WwiVqYUxSE=",
-      "requires": {
-        "d3-array": "1.2.1",
-        "d3-collection": "1.0.4",
-        "d3-shape": "1.2.0"
-      }
-    },
-    "d3-shape": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/d3-shape/download/d3-shape-1.2.0.tgz",
-      "integrity": "sha1-RdAVOPBkuv0F6j1tLLdI/YxB93c=",
-      "requires": {
-        "d3-path": "1.0.5"
-      }
-    },
-    "d3-timer": {
-      "version": "1.0.7",
-      "resolved": "http://registry.npm.taobao.org/d3-timer/download/d3-timer-1.0.7.tgz",
-      "integrity": "sha1-35ZQylh/bJZgf/TmDMOCKejdhTE="
-    },
-    "d3-voronoi": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/d3-voronoi/download/d3-voronoi-1.1.2.tgz",
-      "integrity": "sha1-Fodmfo8TotFYyAwUgMWinLDYlzw="
-    },
-    "dashdash": {
-      "version": "1.14.1",
-      "resolved": "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz",
-      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "1.0.0"
-      },
-      "dependencies": {
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true
-        }
-      }
-    },
-    "date-fns": {
-      "version": "1.29.0",
-      "resolved": "http://registry.npm.taobao.org/date-fns/download/date-fns-1.29.0.tgz",
-      "integrity": "sha1-EuYJzcuTUScxHQTTMzTilgoqVOY=",
-      "dev": true
-    },
-    "date-now": {
-      "version": "0.1.4",
-      "resolved": "http://registry.npm.taobao.org/date-now/download/date-now-0.1.4.tgz",
-      "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
-      "dev": true
-    },
-    "dateformat": {
-      "version": "1.0.12",
-      "resolved": "http://registry.npm.taobao.org/dateformat/download/dateformat-1.0.12.tgz",
-      "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
-      "dev": true,
-      "requires": {
-        "get-stdin": "4.0.1",
-        "meow": "3.7.0"
-      }
-    },
-    "debug": {
-      "version": "2.6.9",
-      "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
-      "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-      "dev": true,
-      "requires": {
-        "ms": "2.0.0"
-      }
-    },
-    "decamelize": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz",
-      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
-      "dev": true
-    },
-    "dedent": {
-      "version": "0.7.0",
-      "resolved": "http://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz",
-      "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
-      "dev": true
-    },
-    "deep-equal": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz",
-      "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
-      "dev": true
-    },
-    "deep-is": {
-      "version": "0.1.3",
-      "resolved": "http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz",
-      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
-      "dev": true
-    },
-    "default-require-extensions": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-1.0.0.tgz",
-      "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=",
-      "dev": true,
-      "requires": {
-        "strip-bom": "2.0.0"
-      }
-    },
-    "define-properties": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.2.tgz",
-      "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
-      "dev": true,
-      "requires": {
-        "foreach": "2.0.5",
-        "object-keys": "1.0.11"
-      }
-    },
-    "defined": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz",
-      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
-      "dev": true
-    },
-    "del": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/del/download/del-3.0.0.tgz",
-      "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
-      "dev": true,
-      "requires": {
-        "globby": "6.1.0",
-        "is-path-cwd": "1.0.0",
-        "is-path-in-cwd": "1.0.0",
-        "p-map": "1.2.0",
-        "pify": "3.0.0",
-        "rimraf": "2.6.2"
-      },
-      "dependencies": {
-        "globby": {
-          "version": "6.1.0",
-          "resolved": "http://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz",
-          "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
-          "dev": true,
-          "requires": {
-            "array-union": "1.0.2",
-            "glob": "7.1.2",
-            "object-assign": "4.1.1",
-            "pify": "2.3.0",
-            "pinkie-promise": "2.0.1"
-          },
-          "dependencies": {
-            "pify": {
-              "version": "2.3.0",
-              "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
-              "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "delayed-stream": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz",
-      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
-      "dev": true
-    },
-    "delegates": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz",
-      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
-      "dev": true
-    },
-    "denodeify": {
-      "version": "1.2.1",
-      "resolved": "http://registry.npm.taobao.org/denodeify/download/denodeify-1.2.1.tgz",
-      "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=",
-      "dev": true
-    },
-    "depd": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.1.tgz",
-      "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
-      "dev": true
-    },
-    "des.js": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/des.js/download/des.js-1.0.0.tgz",
-      "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3",
-        "minimalistic-assert": "1.0.0"
-      }
-    },
-    "destroy": {
-      "version": "1.0.4",
-      "resolved": "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz",
-      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
-      "dev": true
-    },
-    "detect-indent": {
-      "version": "4.0.0",
-      "resolved": "http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz",
-      "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
-      "dev": true,
-      "requires": {
-        "repeating": "2.0.1"
-      }
-    },
-    "detect-node": {
-      "version": "2.0.3",
-      "resolved": "http://registry.npm.taobao.org/detect-node/download/detect-node-2.0.3.tgz",
-      "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=",
-      "dev": true
-    },
-    "di": {
-      "version": "0.0.1",
-      "resolved": "http://registry.npm.taobao.org/di/download/di-0.0.1.tgz",
-      "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
-      "dev": true
-    },
-    "diff": {
-      "version": "3.4.0",
-      "resolved": "http://registry.npm.taobao.org/diff/download/diff-3.4.0.tgz",
-      "integrity": "sha1-sdhVB9rzlkgo3lSzfQ1zumfdpWw=",
-      "dev": true
-    },
-    "diffie-hellman": {
-      "version": "5.0.2",
-      "resolved": "http://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.2.tgz",
-      "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
-      "dev": true,
-      "requires": {
-        "bn.js": "4.11.8",
-        "miller-rabin": "4.0.1",
-        "randombytes": "2.0.5"
-      }
-    },
-    "dir-glob": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/dir-glob/download/dir-glob-2.0.0.tgz",
-      "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=",
-      "dev": true,
-      "requires": {
-        "arrify": "1.0.1",
-        "path-type": "3.0.0"
-      }
-    },
-    "dns-equal": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz",
-      "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
-      "dev": true
-    },
-    "dns-packet": {
-      "version": "1.2.2",
-      "resolved": "http://registry.npm.taobao.org/dns-packet/download/dns-packet-1.2.2.tgz",
-      "integrity": "sha1-qKJr7HZGQ4lj/Ibgb4+LFtbIv3o=",
-      "dev": true,
-      "requires": {
-        "ip": "1.1.5",
-        "safe-buffer": "5.1.1"
-      }
-    },
-    "dns-txt": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz",
-      "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
-      "dev": true,
-      "requires": {
-        "buffer-indexof": "1.1.1"
-      }
-    },
-    "dom-converter": {
-      "version": "0.1.4",
-      "resolved": "http://registry.npm.taobao.org/dom-converter/download/dom-converter-0.1.4.tgz",
-      "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=",
-      "dev": true,
-      "requires": {
-        "utila": "0.3.3"
-      },
-      "dependencies": {
-        "utila": {
-          "version": "0.3.3",
-          "resolved": "http://registry.npm.taobao.org/utila/download/utila-0.3.3.tgz",
-          "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=",
-          "dev": true
-        }
-      }
-    },
-    "dom-serialize": {
-      "version": "2.2.1",
-      "resolved": "http://registry.npm.taobao.org/dom-serialize/download/dom-serialize-2.2.1.tgz",
-      "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=",
-      "dev": true,
-      "requires": {
-        "custom-event": "1.0.1",
-        "ent": "2.2.0",
-        "extend": "3.0.1",
-        "void-elements": "2.0.1"
-      }
-    },
-    "dom-serializer": {
-      "version": "0.1.0",
-      "resolved": "http://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.1.0.tgz",
-      "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "1.1.3",
-        "entities": "1.1.1"
-      },
-      "dependencies": {
-        "domelementtype": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.1.3.tgz",
-          "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
-          "dev": true
-        }
-      }
-    },
-    "domain-browser": {
-      "version": "1.1.7",
-      "resolved": "http://registry.npm.taobao.org/domain-browser/download/domain-browser-1.1.7.tgz",
-      "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=",
-      "dev": true
-    },
-    "domelementtype": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.0.tgz",
-      "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
-      "dev": true
-    },
-    "domhandler": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/domhandler/download/domhandler-2.1.0.tgz",
-      "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "1.3.0"
-      }
-    },
-    "domutils": {
-      "version": "1.5.1",
-      "resolved": "http://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz",
-      "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
-      "dev": true,
-      "requires": {
-        "dom-serializer": "0.1.0",
-        "domelementtype": "1.3.0"
-      }
-    },
-    "dot-prop": {
-      "version": "4.2.0",
-      "resolved": "http://registry.npm.taobao.org/dot-prop/download/dot-prop-4.2.0.tgz",
-      "integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=",
-      "dev": true,
-      "requires": {
-        "is-obj": "1.0.1"
-      }
-    },
-    "duplexer": {
-      "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz",
-      "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
-      "dev": true
-    },
-    "duplexer2": {
-      "version": "0.0.2",
-      "resolved": "http://registry.npm.taobao.org/duplexer2/download/duplexer2-0.0.2.tgz",
-      "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
-      "dev": true,
-      "requires": {
-        "readable-stream": "1.1.14"
-      },
-      "dependencies": {
-        "isarray": {
-          "version": "0.0.1",
-          "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz",
-          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
-          "dev": true
-        },
-        "readable-stream": {
-          "version": "1.1.14",
-          "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.1.14.tgz",
-          "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
-          "dev": true,
-          "requires": {
-            "core-util-is": "1.0.2",
-            "inherits": "2.0.3",
-            "isarray": "0.0.1",
-            "string_decoder": "0.10.31"
-          }
-        },
-        "string_decoder": {
-          "version": "0.10.31",
-          "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz",
-          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
-          "dev": true
-        }
-      }
-    },
-    "duplexify": {
-      "version": "3.5.1",
-      "resolved": "http://registry.npm.taobao.org/duplexify/download/duplexify-3.5.1.tgz",
-      "integrity": "sha1-ThUWvmiDi8kKSZlPCzmm5ZYL780=",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "1.4.0",
-        "inherits": "2.0.3",
-        "readable-stream": "2.3.3",
-        "stream-shift": "1.0.0"
-      }
-    },
-    "ecc-jsbn": {
-      "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz",
-      "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "jsbn": "0.1.1"
-      }
-    },
-    "ee-first": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
-      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
-      "dev": true
-    },
-    "ejs": {
-      "version": "2.5.7",
-      "resolved": "http://registry.npm.taobao.org/ejs/download/ejs-2.5.7.tgz",
-      "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=",
-      "dev": true
-    },
-    "electron-to-chromium": {
-      "version": "1.3.28",
-      "resolved": "http://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.28.tgz",
-      "integrity": "sha1-jdTmRYCGZE6fnwoc8y4qH53/2e4=",
-      "dev": true
-    },
-    "elegant-spinner": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/elegant-spinner/download/elegant-spinner-1.0.1.tgz",
-      "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
-      "dev": true
-    },
-    "elliptic": {
-      "version": "6.4.0",
-      "resolved": "http://registry.npm.taobao.org/elliptic/download/elliptic-6.4.0.tgz",
-      "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
-      "dev": true,
-      "requires": {
-        "bn.js": "4.11.8",
-        "brorand": "1.1.0",
-        "hash.js": "1.1.3",
-        "hmac-drbg": "1.0.1",
-        "inherits": "2.0.3",
-        "minimalistic-assert": "1.0.0",
-        "minimalistic-crypto-utils": "1.0.1"
-      }
-    },
-    "ember-cli-string-utils": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/ember-cli-string-utils/download/ember-cli-string-utils-1.1.0.tgz",
-      "integrity": "sha1-ObZ3/CgF9VFzc1N2/O8njqpEUqE=",
-      "dev": true
-    },
-    "emojis-list": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz",
-      "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
-      "dev": true
-    },
-    "encodeurl": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.1.tgz",
-      "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=",
-      "dev": true
-    },
-    "end-of-stream": {
-      "version": "1.4.0",
-      "resolved": "http://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.0.tgz",
-      "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
-      "dev": true,
-      "requires": {
-        "once": "1.4.0"
-      }
-    },
-    "engine.io": {
-      "version": "1.8.3",
-      "resolved": "http://registry.npm.taobao.org/engine.io/download/engine.io-1.8.3.tgz",
-      "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=",
-      "dev": true,
-      "requires": {
-        "accepts": "1.3.3",
-        "base64id": "1.0.0",
-        "cookie": "0.3.1",
-        "debug": "2.3.3",
-        "engine.io-parser": "1.3.2",
-        "ws": "1.1.2"
-      },
-      "dependencies": {
-        "accepts": {
-          "version": "1.3.3",
-          "resolved": "http://registry.npm.taobao.org/accepts/download/accepts-1.3.3.tgz",
-          "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=",
-          "dev": true,
-          "requires": {
-            "mime-types": "2.1.17",
-            "negotiator": "0.6.1"
-          }
-        },
-        "debug": {
-          "version": "2.3.3",
-          "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.3.3.tgz",
-          "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
-          "dev": true,
-          "requires": {
-            "ms": "0.7.2"
-          }
-        },
-        "ms": {
-          "version": "0.7.2",
-          "resolved": "http://registry.npm.taobao.org/ms/download/ms-0.7.2.tgz",
-          "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
-          "dev": true
-        }
-      }
-    },
-    "engine.io-client": {
-      "version": "1.8.3",
-      "resolved": "http://registry.npm.taobao.org/engine.io-client/download/engine.io-client-1.8.3.tgz",
-      "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=",
-      "dev": true,
-      "requires": {
-        "component-emitter": "1.2.1",
-        "component-inherit": "0.0.3",
-        "debug": "2.3.3",
-        "engine.io-parser": "1.3.2",
-        "has-cors": "1.1.0",
-        "indexof": "0.0.1",
-        "parsejson": "0.0.3",
-        "parseqs": "0.0.5",
-        "parseuri": "0.0.5",
-        "ws": "1.1.2",
-        "xmlhttprequest-ssl": "1.5.3",
-        "yeast": "0.1.2"
-      },
-      "dependencies": {
-        "component-emitter": {
-          "version": "1.2.1",
-          "resolved": "http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz",
-          "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
-          "dev": true
-        },
-        "debug": {
-          "version": "2.3.3",
-          "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.3.3.tgz",
-          "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
-          "dev": true,
-          "requires": {
-            "ms": "0.7.2"
-          }
-        },
-        "ms": {
-          "version": "0.7.2",
-          "resolved": "http://registry.npm.taobao.org/ms/download/ms-0.7.2.tgz",
-          "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
-          "dev": true
-        }
-      }
-    },
-    "engine.io-parser": {
-      "version": "1.3.2",
-      "resolved": "http://registry.npm.taobao.org/engine.io-parser/download/engine.io-parser-1.3.2.tgz",
-      "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=",
-      "dev": true,
-      "requires": {
-        "after": "0.8.2",
-        "arraybuffer.slice": "0.0.6",
-        "base64-arraybuffer": "0.1.5",
-        "blob": "0.0.4",
-        "has-binary": "0.1.7",
-        "wtf-8": "1.0.0"
-      }
-    },
-    "enhanced-resolve": {
-      "version": "3.4.1",
-      "resolved": "http://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-3.4.1.tgz",
-      "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "4.1.11",
-        "memory-fs": "0.4.1",
-        "object-assign": "4.1.1",
-        "tapable": "0.2.8"
-      }
-    },
-    "ent": {
-      "version": "2.2.0",
-      "resolved": "http://registry.npm.taobao.org/ent/download/ent-2.2.0.tgz",
-      "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
-      "dev": true
-    },
-    "entities": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/entities/download/entities-1.1.1.tgz",
-      "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
-      "dev": true
-    },
-    "errno": {
-      "version": "0.1.6",
-      "resolved": "http://registry.npm.taobao.org/errno/download/errno-0.1.6.tgz",
-      "integrity": "sha1-w4bOimKD8U/AlWO3FWCQjJv1MCY=",
-      "dev": true,
-      "requires": {
-        "prr": "1.0.1"
-      }
-    },
-    "error-ex": {
-      "version": "1.3.1",
-      "resolved": "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.1.tgz",
-      "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
-      "dev": true,
-      "requires": {
-        "is-arrayish": "0.2.1"
-      }
-    },
-    "es-abstract": {
-      "version": "1.10.0",
-      "resolved": "http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.10.0.tgz",
-      "integrity": "sha1-Hss2wZeEKgDY7kwt/YZGu5fWCGQ=",
-      "dev": true,
-      "requires": {
-        "es-to-primitive": "1.1.1",
-        "function-bind": "1.1.1",
-        "has": "1.0.1",
-        "is-callable": "1.1.3",
-        "is-regex": "1.0.4"
-      }
-    },
-    "es-to-primitive": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.1.1.tgz",
-      "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
-      "dev": true,
-      "requires": {
-        "is-callable": "1.1.3",
-        "is-date-object": "1.0.1",
-        "is-symbol": "1.0.1"
-      }
-    },
-    "es5-ext": {
-      "version": "0.10.37",
-      "resolved": "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.37.tgz",
-      "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=",
-      "dev": true,
-      "requires": {
-        "es6-iterator": "2.0.3",
-        "es6-symbol": "3.1.1"
-      }
-    },
-    "es6-iterator": {
-      "version": "2.0.3",
-      "resolved": "http://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz",
-      "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
-      "dev": true,
-      "requires": {
-        "d": "1.0.0",
-        "es5-ext": "0.10.37",
-        "es6-symbol": "3.1.1"
-      }
-    },
-    "es6-map": {
-      "version": "0.1.5",
-      "resolved": "http://registry.npm.taobao.org/es6-map/download/es6-map-0.1.5.tgz",
-      "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
-      "dev": true,
-      "requires": {
-        "d": "1.0.0",
-        "es5-ext": "0.10.37",
-        "es6-iterator": "2.0.3",
-        "es6-set": "0.1.5",
-        "es6-symbol": "3.1.1",
-        "event-emitter": "0.3.5"
-      }
-    },
-    "es6-set": {
-      "version": "0.1.5",
-      "resolved": "http://registry.npm.taobao.org/es6-set/download/es6-set-0.1.5.tgz",
-      "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
-      "dev": true,
-      "requires": {
-        "d": "1.0.0",
-        "es5-ext": "0.10.37",
-        "es6-iterator": "2.0.3",
-        "es6-symbol": "3.1.1",
-        "event-emitter": "0.3.5"
-      }
-    },
-    "es6-symbol": {
-      "version": "3.1.1",
-      "resolved": "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz",
-      "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
-      "dev": true,
-      "requires": {
-        "d": "1.0.0",
-        "es5-ext": "0.10.37"
-      }
-    },
-    "es6-weak-map": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/es6-weak-map/download/es6-weak-map-2.0.2.tgz",
-      "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
-      "dev": true,
-      "requires": {
-        "d": "1.0.0",
-        "es5-ext": "0.10.37",
-        "es6-iterator": "2.0.3",
-        "es6-symbol": "3.1.1"
-      }
-    },
-    "escape-html": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
-      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
-      "dev": true
-    },
-    "escape-string-regexp": {
-      "version": "1.0.5",
-      "resolved": "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-      "dev": true
-    },
-    "escodegen": {
-      "version": "1.8.1",
-      "resolved": "http://registry.npm.taobao.org/escodegen/download/escodegen-1.8.1.tgz",
-      "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
-      "dev": true,
-      "requires": {
-        "esprima": "2.7.3",
-        "estraverse": "1.9.3",
-        "esutils": "2.0.2",
-        "optionator": "0.8.2",
-        "source-map": "0.2.0"
-      },
-      "dependencies": {
-        "estraverse": {
-          "version": "1.9.3",
-          "resolved": "http://registry.npm.taobao.org/estraverse/download/estraverse-1.9.3.tgz",
-          "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.2.0",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.2.0.tgz",
-          "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "amdefine": "1.0.1"
-          }
-        }
-      }
-    },
-    "escope": {
-      "version": "3.6.0",
-      "resolved": "http://registry.npm.taobao.org/escope/download/escope-3.6.0.tgz",
-      "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
-      "dev": true,
-      "requires": {
-        "es6-map": "0.1.5",
-        "es6-weak-map": "2.0.2",
-        "esrecurse": "4.2.0",
-        "estraverse": "4.2.0"
-      }
-    },
-    "esprima": {
-      "version": "2.7.3",
-      "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-2.7.3.tgz",
-      "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
-      "dev": true
-    },
-    "esrecurse": {
-      "version": "4.2.0",
-      "resolved": "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.0.tgz",
-      "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
-      "dev": true,
-      "requires": {
-        "estraverse": "4.2.0",
-        "object-assign": "4.1.1"
-      }
-    },
-    "estraverse": {
-      "version": "4.2.0",
-      "resolved": "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz",
-      "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
-      "dev": true
-    },
-    "esutils": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz",
-      "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
-      "dev": true
-    },
-    "etag": {
-      "version": "1.8.1",
-      "resolved": "http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz",
-      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
-      "dev": true
-    },
-    "event-emitter": {
-      "version": "0.3.5",
-      "resolved": "http://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.5.tgz",
-      "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
-      "dev": true,
-      "requires": {
-        "d": "1.0.0",
-        "es5-ext": "0.10.37"
-      }
-    },
-    "event-stream": {
-      "version": "3.3.4",
-      "resolved": "http://registry.npm.taobao.org/event-stream/download/event-stream-3.3.4.tgz",
-      "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
-      "dev": true,
-      "requires": {
-        "duplexer": "0.1.1",
-        "from": "0.1.7",
-        "map-stream": "0.1.0",
-        "pause-stream": "0.0.11",
-        "split": "0.3.3",
-        "stream-combiner": "0.0.4",
-        "through": "2.3.8"
-      }
-    },
-    "eventemitter3": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-1.2.0.tgz",
-      "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=",
-      "dev": true
-    },
-    "events": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/events/download/events-1.1.1.tgz",
-      "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
-      "dev": true
-    },
-    "eventsource": {
-      "version": "0.1.6",
-      "resolved": "http://registry.npm.taobao.org/eventsource/download/eventsource-0.1.6.tgz",
-      "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
-      "dev": true,
-      "requires": {
-        "original": "1.0.0"
-      }
-    },
-    "evp_bytestokey": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz",
-      "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=",
-      "dev": true,
-      "requires": {
-        "md5.js": "1.3.4",
-        "safe-buffer": "5.1.1"
-      }
-    },
-    "execa": {
-      "version": "0.7.0",
-      "resolved": "http://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz",
-      "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
-      "dev": true,
-      "requires": {
-        "cross-spawn": "5.1.0",
-        "get-stream": "3.0.0",
-        "is-stream": "1.1.0",
-        "npm-run-path": "2.0.2",
-        "p-finally": "1.0.0",
-        "signal-exit": "3.0.2",
-        "strip-eof": "1.0.0"
-      },
-      "dependencies": {
-        "cross-spawn": {
-          "version": "5.1.0",
-          "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz",
-          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
-          "dev": true,
-          "requires": {
-            "lru-cache": "4.1.1",
-            "shebang-command": "1.2.0",
-            "which": "1.3.0"
-          }
-        }
-      }
-    },
-    "execall": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/execall/download/execall-1.0.0.tgz",
-      "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=",
-      "dev": true,
-      "requires": {
-        "clone-regexp": "1.0.0"
-      }
-    },
-    "exit": {
-      "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz",
-      "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
-      "dev": true
-    },
-    "exit-hook": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/exit-hook/download/exit-hook-1.1.1.tgz",
-      "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
-      "dev": true
-    },
-    "expand-braces": {
-      "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/expand-braces/download/expand-braces-0.1.2.tgz",
-      "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=",
-      "dev": true,
-      "requires": {
-        "array-slice": "0.2.3",
-        "array-unique": "0.2.1",
-        "braces": "0.1.5"
-      },
-      "dependencies": {
-        "braces": {
-          "version": "0.1.5",
-          "resolved": "http://registry.npm.taobao.org/braces/download/braces-0.1.5.tgz",
-          "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=",
-          "dev": true,
-          "requires": {
-            "expand-range": "0.1.1"
-          }
-        },
-        "expand-range": {
-          "version": "0.1.1",
-          "resolved": "http://registry.npm.taobao.org/expand-range/download/expand-range-0.1.1.tgz",
-          "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=",
-          "dev": true,
-          "requires": {
-            "is-number": "0.1.1",
-            "repeat-string": "0.2.2"
-          }
-        },
-        "is-number": {
-          "version": "0.1.1",
-          "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-0.1.1.tgz",
-          "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=",
-          "dev": true
-        },
-        "repeat-string": {
-          "version": "0.2.2",
-          "resolved": "http://registry.npm.taobao.org/repeat-string/download/repeat-string-0.2.2.tgz",
-          "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=",
-          "dev": true
-        }
-      }
-    },
-    "expand-brackets": {
-      "version": "0.1.5",
-      "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz",
-      "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
-      "dev": true,
-      "requires": {
-        "is-posix-bracket": "0.1.1"
-      }
-    },
-    "expand-range": {
-      "version": "1.8.2",
-      "resolved": "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz",
-      "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
-      "dev": true,
-      "requires": {
-        "fill-range": "2.2.3"
-      }
-    },
-    "exports-loader": {
-      "version": "0.6.4",
-      "resolved": "http://registry.npm.taobao.org/exports-loader/download/exports-loader-0.6.4.tgz",
-      "integrity": "sha1-1w/GEhl1s1/BKDDPUnVL4nQPyIY=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "1.1.0",
-        "source-map": "0.5.7"
-      }
-    },
-    "express": {
-      "version": "4.16.2",
-      "resolved": "http://registry.npm.taobao.org/express/download/express-4.16.2.tgz",
-      "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
-      "dev": true,
-      "requires": {
-        "accepts": "1.3.4",
-        "array-flatten": "1.1.1",
-        "body-parser": "1.18.2",
-        "content-disposition": "0.5.2",
-        "content-type": "1.0.4",
-        "cookie": "0.3.1",
-        "cookie-signature": "1.0.6",
-        "debug": "2.6.9",
-        "depd": "1.1.1",
-        "encodeurl": "1.0.1",
-        "escape-html": "1.0.3",
-        "etag": "1.8.1",
-        "finalhandler": "1.1.0",
-        "fresh": "0.5.2",
-        "merge-descriptors": "1.0.1",
-        "methods": "1.1.2",
-        "on-finished": "2.3.0",
-        "parseurl": "1.3.2",
-        "path-to-regexp": "0.1.7",
-        "proxy-addr": "2.0.2",
-        "qs": "6.5.1",
-        "range-parser": "1.2.0",
-        "safe-buffer": "5.1.1",
-        "send": "0.16.1",
-        "serve-static": "1.13.1",
-        "setprototypeof": "1.1.0",
-        "statuses": "1.3.1",
-        "type-is": "1.6.15",
-        "utils-merge": "1.0.1",
-        "vary": "1.1.2"
-      },
-      "dependencies": {
-        "array-flatten": {
-          "version": "1.1.1",
-          "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz",
-          "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
-          "dev": true
-        },
-        "qs": {
-          "version": "6.5.1",
-          "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.5.1.tgz",
-          "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg=",
-          "dev": true
-        }
-      }
-    },
-    "extend": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/extend/download/extend-3.0.1.tgz",
-      "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
-      "dev": true
-    },
-    "extglob": {
-      "version": "0.3.2",
-      "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz",
-      "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
-      "dev": true,
-      "requires": {
-        "is-extglob": "1.0.0"
-      },
-      "dependencies": {
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-          "dev": true
-        }
-      }
-    },
-    "extract-text-webpack-plugin": {
-      "version": "3.0.2",
-      "resolved": "http://registry.npm.taobao.org/extract-text-webpack-plugin/download/extract-text-webpack-plugin-3.0.2.tgz",
-      "integrity": "sha1-XwQ+qgL5dQqSWLeMCm4NwUCPsvc=",
-      "dev": true,
-      "requires": {
-        "async": "2.6.0",
-        "loader-utils": "1.1.0",
-        "schema-utils": "0.3.0",
-        "webpack-sources": "1.1.0"
-      }
-    },
-    "extsprintf": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz",
-      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
-      "dev": true
-    },
-    "fancy-log": {
-      "version": "1.3.2",
-      "resolved": "http://registry.npm.taobao.org/fancy-log/download/fancy-log-1.3.2.tgz",
-      "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=",
-      "dev": true,
-      "requires": {
-        "ansi-gray": "0.1.1",
-        "color-support": "1.1.3",
-        "time-stamp": "1.1.0"
-      },
-      "dependencies": {
-        "time-stamp": {
-          "version": "1.1.0",
-          "resolved": "http://registry.npm.taobao.org/time-stamp/download/time-stamp-1.1.0.tgz",
-          "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=",
-          "dev": true
-        }
-      }
-    },
-    "fast-deep-equal": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.0.0.tgz",
-      "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
-      "dev": true
-    },
-    "fast-json-stable-stringify": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz",
-      "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
-      "dev": true
-    },
-    "fast-levenshtein": {
-      "version": "2.0.6",
-      "resolved": "http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz",
-      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
-      "dev": true
-    },
-    "fastparse": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/fastparse/download/fastparse-1.1.1.tgz",
-      "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
-      "dev": true
-    },
-    "faye-websocket": {
-      "version": "0.10.0",
-      "resolved": "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz",
-      "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
-      "dev": true,
-      "requires": {
-        "websocket-driver": "0.7.0"
-      }
-    },
-    "fecha": {
-      "version": "2.3.2",
-      "resolved": "http://registry.npm.taobao.org/fecha/download/fecha-2.3.2.tgz",
-      "integrity": "sha1-Ng8DXdbt2VS8lYH5XypKfyo1BcE="
-    },
-    "figures": {
-      "version": "1.7.0",
-      "resolved": "http://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz",
-      "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
-      "dev": true,
-      "requires": {
-        "escape-string-regexp": "1.0.5",
-        "object-assign": "4.1.1"
-      }
-    },
-    "file-entry-cache": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz",
-      "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
-      "dev": true,
-      "requires": {
-        "flat-cache": "1.3.0",
-        "object-assign": "4.1.1"
-      }
-    },
-    "file-loader": {
-      "version": "1.1.5",
-      "resolved": "http://registry.npm.taobao.org/file-loader/download/file-loader-1.1.5.tgz",
-      "integrity": "sha1-kcJba2++VtrpnxCkJf1kkztcnao=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "1.1.0",
-        "schema-utils": "0.3.0"
-      }
-    },
-    "file-saver": {
-      "version": "1.3.3",
-      "resolved": "http://registry.npm.taobao.org/file-saver/download/file-saver-1.3.3.tgz",
-      "integrity": "sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI="
-    },
-    "filename-regex": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz",
-      "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
-      "dev": true
-    },
-    "fileset": {
-      "version": "2.0.3",
-      "resolved": "http://registry.npm.taobao.org/fileset/download/fileset-2.0.3.tgz",
-      "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
-      "dev": true,
-      "requires": {
-        "glob": "7.1.2",
-        "minimatch": "3.0.4"
-      }
-    },
-    "filesize": {
-      "version": "3.5.11",
-      "resolved": "http://registry.npm.taobao.org/filesize/download/filesize-3.5.11.tgz",
-      "integrity": "sha1-GRkyZ0lDO7PPdzaL0VjKq8wZ6e4=",
-      "dev": true
-    },
-    "fill-range": {
-      "version": "2.2.3",
-      "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.3.tgz",
-      "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
-      "dev": true,
-      "requires": {
-        "is-number": "2.1.0",
-        "isobject": "2.1.0",
-        "randomatic": "1.1.7",
-        "repeat-element": "1.1.2",
-        "repeat-string": "1.6.1"
-      },
-      "dependencies": {
-        "isobject": {
-          "version": "2.1.0",
-          "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
-          "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
-          "dev": true,
-          "requires": {
-            "isarray": "1.0.0"
-          }
-        }
-      }
-    },
-    "finalhandler": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.0.tgz",
-      "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "encodeurl": "1.0.1",
-        "escape-html": "1.0.3",
-        "on-finished": "2.3.0",
-        "parseurl": "1.3.2",
-        "statuses": "1.3.1",
-        "unpipe": "1.0.0"
-      }
-    },
-    "find-cache-dir": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz",
-      "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
-      "dev": true,
-      "requires": {
-        "commondir": "1.0.1",
-        "make-dir": "1.1.0",
-        "pkg-dir": "2.0.0"
-      }
-    },
-    "find-parent-dir": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/find-parent-dir/download/find-parent-dir-0.3.0.tgz",
-      "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=",
-      "dev": true
-    },
-    "find-up": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz",
-      "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
-      "dev": true,
-      "requires": {
-        "locate-path": "2.0.0"
-      }
-    },
-    "flat-cache": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/flat-cache/download/flat-cache-1.3.0.tgz",
-      "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
-      "dev": true,
-      "requires": {
-        "circular-json": "0.3.3",
-        "del": "2.2.2",
-        "graceful-fs": "4.1.11",
-        "write": "0.2.1"
-      },
-      "dependencies": {
-        "del": {
-          "version": "2.2.2",
-          "resolved": "http://registry.npm.taobao.org/del/download/del-2.2.2.tgz",
-          "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
-          "dev": true,
-          "requires": {
-            "globby": "5.0.0",
-            "is-path-cwd": "1.0.0",
-            "is-path-in-cwd": "1.0.0",
-            "object-assign": "4.1.1",
-            "pify": "2.3.0",
-            "pinkie-promise": "2.0.1",
-            "rimraf": "2.6.2"
-          }
-        },
-        "globby": {
-          "version": "5.0.0",
-          "resolved": "http://registry.npm.taobao.org/globby/download/globby-5.0.0.tgz",
-          "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
-          "dev": true,
-          "requires": {
-            "array-union": "1.0.2",
-            "arrify": "1.0.1",
-            "glob": "7.1.2",
-            "object-assign": "4.1.1",
-            "pify": "2.3.0",
-            "pinkie-promise": "2.0.1"
-          }
-        },
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        }
-      }
-    },
-    "flatten": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/flatten/download/flatten-1.0.2.tgz",
-      "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
-      "dev": true
-    },
-    "flush-write-stream": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.0.2.tgz",
-      "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3",
-        "readable-stream": "2.3.3"
-      }
-    },
-    "font-awesome": {
-      "version": "4.7.0",
-      "resolved": "http://registry.npm.taobao.org/font-awesome/download/font-awesome-4.7.0.tgz",
-      "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM="
-    },
-    "for-in": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz",
-      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
-      "dev": true
-    },
-    "for-own": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/for-own/download/for-own-1.0.0.tgz",
-      "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
-      "dev": true,
-      "requires": {
-        "for-in": "1.0.2"
-      }
-    },
-    "foreach": {
-      "version": "2.0.5",
-      "resolved": "http://registry.npm.taobao.org/foreach/download/foreach-2.0.5.tgz",
-      "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
-      "dev": true
-    },
-    "forever-agent": {
-      "version": "0.6.1",
-      "resolved": "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz",
-      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
-      "dev": true
-    },
-    "form-data": {
-      "version": "2.1.4",
-      "resolved": "http://registry.npm.taobao.org/form-data/download/form-data-2.1.4.tgz",
-      "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
-      "dev": true,
-      "requires": {
-        "asynckit": "0.4.0",
-        "combined-stream": "1.0.5",
-        "mime-types": "2.1.17"
-      }
-    },
-    "forwarded": {
-      "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz",
-      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
-      "dev": true
-    },
-    "fresh": {
-      "version": "0.5.2",
-      "resolved": "http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz",
-      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
-      "dev": true
-    },
-    "from": {
-      "version": "0.1.7",
-      "resolved": "http://registry.npm.taobao.org/from/download/from-0.1.7.tgz",
-      "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
-      "dev": true
-    },
-    "from2": {
-      "version": "2.3.0",
-      "resolved": "http://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz",
-      "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3",
-        "readable-stream": "2.3.3"
-      }
-    },
-    "fs-access": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/fs-access/download/fs-access-1.0.1.tgz",
-      "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=",
-      "dev": true,
-      "requires": {
-        "null-check": "1.0.0"
-      }
-    },
-    "fs-extra": {
-      "version": "4.0.3",
-      "resolved": "http://registry.npm.taobao.org/fs-extra/download/fs-extra-4.0.3.tgz",
-      "integrity": "sha1-DYUhIuW8W+tFP7Ao6cDJvzY0DJQ=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "4.1.11",
-        "jsonfile": "4.0.0",
-        "universalify": "0.1.1"
-      }
-    },
-    "fs-write-stream-atomic": {
-      "version": "1.0.10",
-      "resolved": "http://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz",
-      "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "4.1.11",
-        "iferr": "0.1.5",
-        "imurmurhash": "0.1.4",
-        "readable-stream": "2.3.3"
-      }
-    },
-    "fs.realpath": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
-      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
-      "dev": true
-    },
-    "fsevents": {
-      "version": "1.1.3",
-      "resolved": "http://registry.npm.taobao.org/fsevents/download/fsevents-1.1.3.tgz",
-      "integrity": "sha1-EfgjGPX+e7LNIpZaEI6TBiCCFtg=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "nan": "2.8.0",
-        "node-pre-gyp": "0.6.39"
-      },
-      "dependencies": {
-        "abbrev": {
-          "version": "1.1.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "ajv": {
-          "version": "4.11.8",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "co": "4.6.0",
-            "json-stable-stringify": "1.0.1"
-          }
-        },
-        "ansi-regex": {
-          "version": "2.1.1",
-          "bundled": true,
-          "dev": true
-        },
-        "aproba": {
-          "version": "1.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "are-we-there-yet": {
-          "version": "1.1.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "delegates": "1.0.0",
-            "readable-stream": "2.2.9"
-          }
-        },
-        "asn1": {
-          "version": "0.2.3",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "assert-plus": {
-          "version": "0.2.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "asynckit": {
-          "version": "0.4.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "aws-sign2": {
-          "version": "0.6.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "aws4": {
-          "version": "1.6.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "balanced-match": {
-          "version": "0.4.2",
-          "bundled": true,
-          "dev": true
-        },
-        "bcrypt-pbkdf": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "tweetnacl": "0.14.5"
-          }
-        },
-        "block-stream": {
-          "version": "0.0.9",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "inherits": "2.0.3"
-          }
-        },
-        "boom": {
-          "version": "2.10.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "hoek": "2.16.3"
-          }
-        },
-        "brace-expansion": {
-          "version": "1.1.7",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "balanced-match": "0.4.2",
-            "concat-map": "0.0.1"
-          }
-        },
-        "buffer-shims": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true
-        },
-        "caseless": {
-          "version": "0.12.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "co": {
-          "version": "4.6.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "code-point-at": {
-          "version": "1.1.0",
-          "bundled": true,
-          "dev": true
-        },
-        "combined-stream": {
-          "version": "1.0.5",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "delayed-stream": "1.0.0"
-          }
-        },
-        "concat-map": {
-          "version": "0.0.1",
-          "bundled": true,
-          "dev": true
-        },
-        "console-control-strings": {
-          "version": "1.1.0",
-          "bundled": true,
-          "dev": true
-        },
-        "core-util-is": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true
-        },
-        "cryptiles": {
-          "version": "2.0.5",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "boom": "2.10.1"
-          }
-        },
-        "dashdash": {
-          "version": "1.14.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "1.0.0"
-          },
-          "dependencies": {
-            "assert-plus": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "debug": {
-          "version": "2.6.8",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "deep-extend": {
-          "version": "0.4.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "delayed-stream": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true
-        },
-        "delegates": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "detect-libc": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "ecc-jsbn": {
-          "version": "0.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "jsbn": "0.1.1"
-          }
-        },
-        "extend": {
-          "version": "3.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "extsprintf": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true
-        },
-        "forever-agent": {
-          "version": "0.6.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "form-data": {
-          "version": "2.1.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "asynckit": "0.4.0",
-            "combined-stream": "1.0.5",
-            "mime-types": "2.1.15"
-          }
-        },
-        "fs.realpath": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true
-        },
-        "fstream": {
-          "version": "1.0.11",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "graceful-fs": "4.1.11",
-            "inherits": "2.0.3",
-            "mkdirp": "0.5.1",
-            "rimraf": "2.6.1"
-          }
-        },
-        "fstream-ignore": {
-          "version": "1.0.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "fstream": "1.0.11",
-            "inherits": "2.0.3",
-            "minimatch": "3.0.4"
-          }
-        },
-        "gauge": {
-          "version": "2.7.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aproba": "1.1.1",
-            "console-control-strings": "1.1.0",
-            "has-unicode": "2.0.1",
-            "object-assign": "4.1.1",
-            "signal-exit": "3.0.2",
-            "string-width": "1.0.2",
-            "strip-ansi": "3.0.1",
-            "wide-align": "1.1.2"
-          }
-        },
-        "getpass": {
-          "version": "0.1.7",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "1.0.0"
-          },
-          "dependencies": {
-            "assert-plus": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "glob": {
-          "version": "7.1.2",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "fs.realpath": "1.0.0",
-            "inflight": "1.0.6",
-            "inherits": "2.0.3",
-            "minimatch": "3.0.4",
-            "once": "1.4.0",
-            "path-is-absolute": "1.0.1"
-          }
-        },
-        "graceful-fs": {
-          "version": "4.1.11",
-          "bundled": true,
-          "dev": true
-        },
-        "har-schema": {
-          "version": "1.0.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "har-validator": {
-          "version": "4.2.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ajv": "4.11.8",
-            "har-schema": "1.0.5"
-          }
-        },
-        "has-unicode": {
-          "version": "2.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "hawk": {
-          "version": "3.1.3",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "boom": "2.10.1",
-            "cryptiles": "2.0.5",
-            "hoek": "2.16.3",
-            "sntp": "1.0.9"
-          }
-        },
-        "hoek": {
-          "version": "2.16.3",
-          "bundled": true,
-          "dev": true
-        },
-        "http-signature": {
-          "version": "1.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "0.2.0",
-            "jsprim": "1.4.0",
-            "sshpk": "1.13.0"
-          }
-        },
-        "inflight": {
-          "version": "1.0.6",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "once": "1.4.0",
-            "wrappy": "1.0.2"
-          }
-        },
-        "inherits": {
-          "version": "2.0.3",
-          "bundled": true,
-          "dev": true
-        },
-        "ini": {
-          "version": "1.3.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "number-is-nan": "1.0.1"
-          }
-        },
-        "is-typedarray": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "isarray": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true
-        },
-        "isstream": {
-          "version": "0.1.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "jodid25519": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "jsbn": "0.1.1"
-          }
-        },
-        "jsbn": {
-          "version": "0.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "json-schema": {
-          "version": "0.2.3",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "json-stable-stringify": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "jsonify": "0.0.0"
-          }
-        },
-        "json-stringify-safe": {
-          "version": "5.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "jsonify": {
-          "version": "0.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "jsprim": {
-          "version": "1.4.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "1.0.0",
-            "extsprintf": "1.0.2",
-            "json-schema": "0.2.3",
-            "verror": "1.3.6"
-          },
-          "dependencies": {
-            "assert-plus": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "mime-db": {
-          "version": "1.27.0",
-          "bundled": true,
-          "dev": true
-        },
-        "mime-types": {
-          "version": "2.1.15",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "mime-db": "1.27.0"
-          }
-        },
-        "minimatch": {
-          "version": "3.0.4",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "brace-expansion": "1.1.7"
-          }
-        },
-        "minimist": {
-          "version": "0.0.8",
-          "bundled": true,
-          "dev": true
-        },
-        "mkdirp": {
-          "version": "0.5.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "minimist": "0.0.8"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "node-pre-gyp": {
-          "version": "0.6.39",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "detect-libc": "1.0.2",
-            "hawk": "3.1.3",
-            "mkdirp": "0.5.1",
-            "nopt": "4.0.1",
-            "npmlog": "4.1.0",
-            "rc": "1.2.1",
-            "request": "2.81.0",
-            "rimraf": "2.6.1",
-            "semver": "5.3.0",
-            "tar": "2.2.1",
-            "tar-pack": "3.4.0"
-          }
-        },
-        "nopt": {
-          "version": "4.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "abbrev": "1.1.0",
-            "osenv": "0.1.4"
-          }
-        },
-        "npmlog": {
-          "version": "4.1.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "are-we-there-yet": "1.1.4",
-            "console-control-strings": "1.1.0",
-            "gauge": "2.7.4",
-            "set-blocking": "2.0.0"
-          }
-        },
-        "number-is-nan": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true
-        },
-        "oauth-sign": {
-          "version": "0.8.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "object-assign": {
-          "version": "4.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "once": {
-          "version": "1.4.0",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "wrappy": "1.0.2"
-          }
-        },
-        "os-homedir": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "os-tmpdir": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "osenv": {
-          "version": "0.1.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "os-homedir": "1.0.2",
-            "os-tmpdir": "1.0.2"
-          }
-        },
-        "path-is-absolute": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true
-        },
-        "performance-now": {
-          "version": "0.2.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "process-nextick-args": {
-          "version": "1.0.7",
-          "bundled": true,
-          "dev": true
-        },
-        "punycode": {
-          "version": "1.4.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "qs": {
-          "version": "6.4.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "rc": {
-          "version": "1.2.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "deep-extend": "0.4.2",
-            "ini": "1.3.4",
-            "minimist": "1.2.0",
-            "strip-json-comments": "2.0.1"
-          },
-          "dependencies": {
-            "minimist": {
-              "version": "1.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "readable-stream": {
-          "version": "2.2.9",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "buffer-shims": "1.0.0",
-            "core-util-is": "1.0.2",
-            "inherits": "2.0.3",
-            "isarray": "1.0.0",
-            "process-nextick-args": "1.0.7",
-            "string_decoder": "1.0.1",
-            "util-deprecate": "1.0.2"
-          }
-        },
-        "request": {
-          "version": "2.81.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aws-sign2": "0.6.0",
-            "aws4": "1.6.0",
-            "caseless": "0.12.0",
-            "combined-stream": "1.0.5",
-            "extend": "3.0.1",
-            "forever-agent": "0.6.1",
-            "form-data": "2.1.4",
-            "har-validator": "4.2.1",
-            "hawk": "3.1.3",
-            "http-signature": "1.1.1",
-            "is-typedarray": "1.0.0",
-            "isstream": "0.1.2",
-            "json-stringify-safe": "5.0.1",
-            "mime-types": "2.1.15",
-            "oauth-sign": "0.8.2",
-            "performance-now": "0.2.0",
-            "qs": "6.4.0",
-            "safe-buffer": "5.0.1",
-            "stringstream": "0.0.5",
-            "tough-cookie": "2.3.2",
-            "tunnel-agent": "0.6.0",
-            "uuid": "3.0.1"
-          }
-        },
-        "rimraf": {
-          "version": "2.6.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "glob": "7.1.2"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.0.1",
-          "bundled": true,
-          "dev": true
-        },
-        "semver": {
-          "version": "5.3.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "set-blocking": {
-          "version": "2.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "signal-exit": {
-          "version": "3.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "sntp": {
-          "version": "1.0.9",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "hoek": "2.16.3"
-          }
-        },
-        "sshpk": {
-          "version": "1.13.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "asn1": "0.2.3",
-            "assert-plus": "1.0.0",
-            "bcrypt-pbkdf": "1.0.1",
-            "dashdash": "1.14.1",
-            "ecc-jsbn": "0.1.1",
-            "getpass": "0.1.7",
-            "jodid25519": "1.0.2",
-            "jsbn": "0.1.1",
-            "tweetnacl": "0.14.5"
-          },
-          "dependencies": {
-            "assert-plus": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "string-width": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "code-point-at": "1.1.0",
-            "is-fullwidth-code-point": "1.0.0",
-            "strip-ansi": "3.0.1"
-          }
-        },
-        "string_decoder": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "safe-buffer": "5.0.1"
-          }
-        },
-        "stringstream": {
-          "version": "0.0.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "ansi-regex": "2.1.1"
-          }
-        },
-        "strip-json-comments": {
-          "version": "2.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "tar": {
-          "version": "2.2.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "block-stream": "0.0.9",
-            "fstream": "1.0.11",
-            "inherits": "2.0.3"
-          }
-        },
-        "tar-pack": {
-          "version": "3.4.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "debug": "2.6.8",
-            "fstream": "1.0.11",
-            "fstream-ignore": "1.0.5",
-            "once": "1.4.0",
-            "readable-stream": "2.2.9",
-            "rimraf": "2.6.1",
-            "tar": "2.2.1",
-            "uid-number": "0.0.6"
-          }
-        },
-        "tough-cookie": {
-          "version": "2.3.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "punycode": "1.4.1"
-          }
-        },
-        "tunnel-agent": {
-          "version": "0.6.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "safe-buffer": "5.0.1"
-          }
-        },
-        "tweetnacl": {
-          "version": "0.14.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "uid-number": {
-          "version": "0.0.6",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "util-deprecate": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true
-        },
-        "uuid": {
-          "version": "3.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "verror": {
-          "version": "1.3.6",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "extsprintf": "1.0.2"
-          }
-        },
-        "wide-align": {
-          "version": "1.1.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "string-width": "1.0.2"
-          }
-        },
-        "wrappy": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true
-        }
-      }
-    },
-    "fstream": {
-      "version": "1.0.11",
-      "resolved": "http://registry.npm.taobao.org/fstream/download/fstream-1.0.11.tgz",
-      "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "4.1.11",
-        "inherits": "2.0.3",
-        "mkdirp": "0.5.1",
-        "rimraf": "2.6.2"
-      }
-    },
-    "function-bind": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
-      "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
-      "dev": true
-    },
-    "gauge": {
-      "version": "2.7.4",
-      "resolved": "http://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz",
-      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
-      "dev": true,
-      "requires": {
-        "aproba": "1.2.0",
-        "console-control-strings": "1.1.0",
-        "has-unicode": "2.0.1",
-        "object-assign": "4.1.1",
-        "signal-exit": "3.0.2",
-        "string-width": "1.0.2",
-        "strip-ansi": "3.0.1",
-        "wide-align": "1.1.2"
-      }
-    },
-    "gaze": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/gaze/download/gaze-1.1.2.tgz",
-      "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "globule": "1.2.0"
-      }
-    },
-    "generate-function": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/generate-function/download/generate-function-2.0.0.tgz",
-      "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
-      "dev": true
-    },
-    "generate-object-property": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/generate-object-property/download/generate-object-property-1.2.0.tgz",
-      "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
-      "dev": true,
-      "requires": {
-        "is-property": "1.0.2"
-      }
-    },
-    "get-caller-file": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.2.tgz",
-      "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
-      "dev": true
-    },
-    "get-own-enumerable-property-symbols": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-2.0.1.tgz",
-      "integrity": "sha1-XErYfyg0xLm06EVJ3B4GUPs4wks=",
-      "dev": true
-    },
-    "get-stdin": {
-      "version": "4.0.1",
-      "resolved": "http://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz",
-      "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
-      "dev": true
-    },
-    "get-stream": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz",
-      "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
-      "dev": true
-    },
-    "getpass": {
-      "version": "0.1.7",
-      "resolved": "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz",
-      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "1.0.0"
-      },
-      "dependencies": {
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true
-        }
-      }
-    },
-    "gl-matrix": {
-      "version": "2.4.0",
-      "resolved": "http://registry.npm.taobao.org/gl-matrix/download/gl-matrix-2.4.0.tgz",
-      "integrity": "sha1-IImxMwGinuyCLZ2Z3/wfeO6aPFA="
-    },
-    "glob": {
-      "version": "7.1.2",
-      "resolved": "http://registry.npm.taobao.org/glob/download/glob-7.1.2.tgz",
-      "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
-      "dev": true,
-      "requires": {
-        "fs.realpath": "1.0.0",
-        "inflight": "1.0.6",
-        "inherits": "2.0.3",
-        "minimatch": "3.0.4",
-        "once": "1.4.0",
-        "path-is-absolute": "1.0.1"
-      }
-    },
-    "glob-base": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz",
-      "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
-      "dev": true,
-      "requires": {
-        "glob-parent": "2.0.0",
-        "is-glob": "2.0.1"
-      },
-      "dependencies": {
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "2.0.1",
-          "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
-          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "1.0.0"
-          }
-        }
-      }
-    },
-    "glob-parent": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz",
-      "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
-      "dev": true,
-      "requires": {
-        "is-glob": "2.0.1"
-      },
-      "dependencies": {
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "2.0.1",
-          "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
-          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "1.0.0"
-          }
-        }
-      }
-    },
-    "globals": {
-      "version": "9.18.0",
-      "resolved": "http://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz",
-      "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=",
-      "dev": true
-    },
-    "globby": {
-      "version": "7.1.1",
-      "resolved": "http://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz",
-      "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
-      "dev": true,
-      "requires": {
-        "array-union": "1.0.2",
-        "dir-glob": "2.0.0",
-        "glob": "7.1.2",
-        "ignore": "3.3.7",
-        "pify": "3.0.0",
-        "slash": "1.0.0"
-      }
-    },
-    "globjoin": {
-      "version": "0.1.4",
-      "resolved": "http://registry.npm.taobao.org/globjoin/download/globjoin-0.1.4.tgz",
-      "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
-      "dev": true
-    },
-    "globule": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/globule/download/globule-1.2.0.tgz",
-      "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "glob": "7.1.2",
-        "lodash": "4.17.4",
-        "minimatch": "3.0.4"
-      }
-    },
-    "glogg": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/glogg/download/glogg-1.0.0.tgz",
-      "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=",
-      "dev": true,
-      "requires": {
-        "sparkles": "1.0.0"
-      }
-    },
-    "graceful-fs": {
-      "version": "4.1.11",
-      "resolved": "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
-      "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
-      "dev": true
-    },
-    "gulp-util": {
-      "version": "3.0.7",
-      "resolved": "http://registry.npm.taobao.org/gulp-util/download/gulp-util-3.0.7.tgz",
-      "integrity": "sha1-eJJcS4+LSQBawBoBHFV+YhiUHLs=",
-      "dev": true,
-      "requires": {
-        "array-differ": "1.0.0",
-        "array-uniq": "1.0.3",
-        "beeper": "1.1.1",
-        "chalk": "1.1.3",
-        "dateformat": "1.0.12",
-        "fancy-log": "1.3.2",
-        "gulplog": "1.0.0",
-        "has-gulplog": "0.1.0",
-        "lodash._reescape": "3.0.0",
-        "lodash._reevaluate": "3.0.0",
-        "lodash._reinterpolate": "3.0.0",
-        "lodash.template": "3.6.2",
-        "minimist": "1.2.0",
-        "multipipe": "0.1.2",
-        "object-assign": "3.0.0",
-        "replace-ext": "0.0.1",
-        "through2": "2.0.3",
-        "vinyl": "0.5.3"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          }
-        },
-        "object-assign": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-3.0.0.tgz",
-          "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "gulplog": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/gulplog/download/gulplog-1.0.0.tgz",
-      "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
-      "dev": true,
-      "requires": {
-        "glogg": "1.0.0"
-      }
-    },
-    "gzip-size": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/gzip-size/download/gzip-size-3.0.0.tgz",
-      "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
-      "dev": true,
-      "requires": {
-        "duplexer": "0.1.1"
-      }
-    },
-    "handle-thing": {
-      "version": "1.2.5",
-      "resolved": "http://registry.npm.taobao.org/handle-thing/download/handle-thing-1.2.5.tgz",
-      "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=",
-      "dev": true
-    },
-    "handlebars": {
-      "version": "4.0.11",
-      "resolved": "http://registry.npm.taobao.org/handlebars/download/handlebars-4.0.11.tgz",
-      "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
-      "dev": true,
-      "requires": {
-        "async": "1.5.2",
-        "optimist": "0.6.1",
-        "source-map": "0.4.4",
-        "uglify-js": "2.8.29"
-      },
-      "dependencies": {
-        "async": {
-          "version": "1.5.2",
-          "resolved": "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz",
-          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
-          "dev": true
-        },
-        "camelcase": {
-          "version": "1.2.1",
-          "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz",
-          "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
-          "dev": true,
-          "optional": true
-        },
-        "cliui": {
-          "version": "2.1.0",
-          "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz",
-          "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "center-align": "0.1.3",
-            "right-align": "0.1.3",
-            "wordwrap": "0.0.2"
-          }
-        },
-        "source-map": {
-          "version": "0.4.4",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz",
-          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
-          "dev": true,
-          "requires": {
-            "amdefine": "1.0.1"
-          }
-        },
-        "uglify-js": {
-          "version": "2.8.29",
-          "resolved": "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz",
-          "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "source-map": "0.5.7",
-            "uglify-to-browserify": "1.0.2",
-            "yargs": "3.10.0"
-          },
-          "dependencies": {
-            "source-map": {
-              "version": "0.5.7",
-              "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
-              "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "yargs": {
-          "version": "3.10.0",
-          "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz",
-          "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "camelcase": "1.2.1",
-            "cliui": "2.1.0",
-            "decamelize": "1.2.0",
-            "window-size": "0.1.0"
-          }
-        }
-      }
-    },
-    "har-schema": {
-      "version": "1.0.5",
-      "resolved": "http://registry.npm.taobao.org/har-schema/download/har-schema-1.0.5.tgz",
-      "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
-      "dev": true
-    },
-    "har-validator": {
-      "version": "4.2.1",
-      "resolved": "http://registry.npm.taobao.org/har-validator/download/har-validator-4.2.1.tgz",
-      "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
-      "dev": true,
-      "requires": {
-        "ajv": "4.11.8",
-        "har-schema": "1.0.5"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "4.11.8",
-          "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-4.11.8.tgz",
-          "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
-          "dev": true,
-          "requires": {
-            "co": "4.6.0",
-            "json-stable-stringify": "1.0.1"
-          }
-        }
-      }
-    },
-    "has": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/has/download/has-1.0.1.tgz",
-      "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
-      "dev": true,
-      "requires": {
-        "function-bind": "1.1.1"
-      }
-    },
-    "has-ansi": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz",
-      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
-      "dev": true,
-      "requires": {
-        "ansi-regex": "2.1.1"
-      }
-    },
-    "has-binary": {
-      "version": "0.1.7",
-      "resolved": "http://registry.npm.taobao.org/has-binary/download/has-binary-0.1.7.tgz",
-      "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=",
-      "dev": true,
-      "requires": {
-        "isarray": "0.0.1"
-      },
-      "dependencies": {
-        "isarray": {
-          "version": "0.0.1",
-          "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz",
-          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
-          "dev": true
-        }
-      }
-    },
-    "has-cors": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/has-cors/download/has-cors-1.1.0.tgz",
-      "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
-      "dev": true
-    },
-    "has-flag": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-2.0.0.tgz",
-      "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
-      "dev": true
-    },
-    "has-gulplog": {
-      "version": "0.1.0",
-      "resolved": "http://registry.npm.taobao.org/has-gulplog/download/has-gulplog-0.1.0.tgz",
-      "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
-      "dev": true,
-      "requires": {
-        "sparkles": "1.0.0"
-      }
-    },
-    "has-unicode": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz",
-      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
-      "dev": true
-    },
-    "hash-base": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/hash-base/download/hash-base-2.0.2.tgz",
-      "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3"
-      }
-    },
-    "hash.js": {
-      "version": "1.1.3",
-      "resolved": "http://registry.npm.taobao.org/hash.js/download/hash.js-1.1.3.tgz",
-      "integrity": "sha1-NA3tvmKQGHFRweodd3o0SJNd+EY=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3",
-        "minimalistic-assert": "1.0.0"
-      }
-    },
-    "hawk": {
-      "version": "3.1.3",
-      "resolved": "http://registry.npm.taobao.org/hawk/download/hawk-3.1.3.tgz",
-      "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
-      "dev": true,
-      "requires": {
-        "boom": "2.10.1",
-        "cryptiles": "2.0.5",
-        "hoek": "2.16.3",
-        "sntp": "1.0.9"
-      }
-    },
-    "he": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/he/download/he-1.1.1.tgz",
-      "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
-      "dev": true
-    },
-    "hmac-drbg": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz",
-      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
-      "dev": true,
-      "requires": {
-        "hash.js": "1.1.3",
-        "minimalistic-assert": "1.0.0",
-        "minimalistic-crypto-utils": "1.0.1"
-      }
-    },
-    "hoek": {
-      "version": "2.16.3",
-      "resolved": "http://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz",
-      "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
-      "dev": true
-    },
-    "homedir-polyfill": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/homedir-polyfill/download/homedir-polyfill-1.0.1.tgz",
-      "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
-      "dev": true,
-      "requires": {
-        "parse-passwd": "1.0.0"
-      }
-    },
-    "hosted-git-info": {
-      "version": "2.5.0",
-      "resolved": "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.5.0.tgz",
-      "integrity": "sha1-bWDjSzq7yDEwYsO3mO+NkBoHrzw=",
-      "dev": true
-    },
-    "hpack.js": {
-      "version": "2.1.6",
-      "resolved": "http://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz",
-      "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3",
-        "obuf": "1.1.1",
-        "readable-stream": "2.3.3",
-        "wbuf": "1.7.2"
-      }
-    },
-    "html-comment-regex": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.1.tgz",
-      "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
-      "dev": true
-    },
-    "html-entities": {
-      "version": "1.2.1",
-      "resolved": "http://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz",
-      "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
-      "dev": true
-    },
-    "html-minifier": {
-      "version": "3.5.7",
-      "resolved": "http://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.7.tgz",
-      "integrity": "sha1-UR5pu1qOdnfRAS6+A4GaoCygYgg=",
-      "dev": true,
-      "requires": {
-        "camel-case": "3.0.0",
-        "clean-css": "4.1.9",
-        "commander": "2.12.2",
-        "he": "1.1.1",
-        "ncname": "1.0.0",
-        "param-case": "2.1.1",
-        "relateurl": "0.2.7",
-        "uglify-js": "3.2.2"
-      }
-    },
-    "html-tags": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz",
-      "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
-      "dev": true
-    },
-    "html-webpack-plugin": {
-      "version": "2.30.1",
-      "resolved": "http://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-2.30.1.tgz",
-      "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=",
-      "dev": true,
-      "requires": {
-        "bluebird": "3.5.1",
-        "html-minifier": "3.5.7",
-        "loader-utils": "0.2.17",
-        "lodash": "4.17.4",
-        "pretty-error": "2.1.1",
-        "toposort": "1.0.6"
-      },
-      "dependencies": {
-        "loader-utils": {
-          "version": "0.2.17",
-          "resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz",
-          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
-          "dev": true,
-          "requires": {
-            "big.js": "3.2.0",
-            "emojis-list": "2.1.0",
-            "json5": "0.5.1",
-            "object-assign": "4.1.1"
-          }
-        }
-      }
-    },
-    "htmlparser2": {
-      "version": "3.3.0",
-      "resolved": "http://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.3.0.tgz",
-      "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "1.3.0",
-        "domhandler": "2.1.0",
-        "domutils": "1.1.6",
-        "readable-stream": "1.0.34"
-      },
-      "dependencies": {
-        "domutils": {
-          "version": "1.1.6",
-          "resolved": "http://registry.npm.taobao.org/domutils/download/domutils-1.1.6.tgz",
-          "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=",
-          "dev": true,
-          "requires": {
-            "domelementtype": "1.3.0"
-          }
-        },
-        "isarray": {
-          "version": "0.0.1",
-          "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz",
-          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
-          "dev": true
-        },
-        "readable-stream": {
-          "version": "1.0.34",
-          "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz",
-          "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
-          "dev": true,
-          "requires": {
-            "core-util-is": "1.0.2",
-            "inherits": "2.0.3",
-            "isarray": "0.0.1",
-            "string_decoder": "0.10.31"
-          }
-        },
-        "string_decoder": {
-          "version": "0.10.31",
-          "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz",
-          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
-          "dev": true
-        }
-      }
-    },
-    "http-deceiver": {
-      "version": "1.2.7",
-      "resolved": "http://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz",
-      "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
-      "dev": true
-    },
-    "http-errors": {
-      "version": "1.6.2",
-      "resolved": "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.2.tgz",
-      "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
-      "dev": true,
-      "requires": {
-        "depd": "1.1.1",
-        "inherits": "2.0.3",
-        "setprototypeof": "1.0.3",
-        "statuses": "1.3.1"
-      },
-      "dependencies": {
-        "setprototypeof": {
-          "version": "1.0.3",
-          "resolved": "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.3.tgz",
-          "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
-          "dev": true
-        }
-      }
-    },
-    "http-parser-js": {
-      "version": "0.4.9",
-      "resolved": "http://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.9.tgz",
-      "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=",
-      "dev": true
-    },
-    "http-proxy": {
-      "version": "1.16.2",
-      "resolved": "http://registry.npm.taobao.org/http-proxy/download/http-proxy-1.16.2.tgz",
-      "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=",
-      "dev": true,
-      "requires": {
-        "eventemitter3": "1.2.0",
-        "requires-port": "1.0.0"
-      }
-    },
-    "http-proxy-middleware": {
-      "version": "0.17.4",
-      "resolved": "http://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.17.4.tgz",
-      "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=",
-      "dev": true,
-      "requires": {
-        "http-proxy": "1.16.2",
-        "is-glob": "3.1.0",
-        "lodash": "4.17.4",
-        "micromatch": "2.3.11"
-      },
-      "dependencies": {
-        "is-glob": {
-          "version": "3.1.0",
-          "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
-          "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "2.1.1"
-          }
-        }
-      }
-    },
-    "http-signature": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/http-signature/download/http-signature-1.1.1.tgz",
-      "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "0.2.0",
-        "jsprim": "1.4.1",
-        "sshpk": "1.13.1"
-      }
-    },
-    "https-browserify": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz",
-      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
-      "dev": true
-    },
-    "https-proxy-agent": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-1.0.0.tgz",
-      "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=",
-      "dev": true,
-      "requires": {
-        "agent-base": "2.1.1",
-        "debug": "2.6.9",
-        "extend": "3.0.1"
-      }
-    },
-    "iconv-lite": {
-      "version": "0.4.19",
-      "resolved": "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.19.tgz",
-      "integrity": "sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs="
-    },
-    "icss-replace-symbols": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz",
-      "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
-      "dev": true
-    },
-    "icss-utils": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/icss-utils/download/icss-utils-2.1.0.tgz",
-      "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
-      "dev": true,
-      "requires": {
-        "postcss": "6.0.14"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-          "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "3.2.0",
-            "escape-string-regexp": "1.0.5",
-            "supports-color": "4.5.0"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "ieee754": {
-      "version": "1.1.8",
-      "resolved": "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.8.tgz",
-      "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=",
-      "dev": true
-    },
-    "iferr": {
-      "version": "0.1.5",
-      "resolved": "http://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz",
-      "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
-      "dev": true
-    },
-    "ignore": {
-      "version": "3.3.7",
-      "resolved": "http://registry.npm.taobao.org/ignore/download/ignore-3.3.7.tgz",
-      "integrity": "sha1-YSKJv7PCIOGGpYEYYY1b6MG6sCE=",
-      "dev": true
-    },
-    "image-size": {
-      "version": "0.5.5",
-      "resolved": "http://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz",
-      "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
-      "dev": true,
-      "optional": true
-    },
-    "import-local": {
-      "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/import-local/download/import-local-0.1.1.tgz",
-      "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=",
-      "dev": true,
-      "requires": {
-        "pkg-dir": "2.0.0",
-        "resolve-cwd": "2.0.0"
-      }
-    },
-    "imurmurhash": {
-      "version": "0.1.4",
-      "resolved": "http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
-      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
-      "dev": true
-    },
-    "in-publish": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/in-publish/download/in-publish-2.0.0.tgz",
-      "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
-      "dev": true,
-      "optional": true
-    },
-    "indent-string": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz",
-      "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
-      "dev": true,
-      "requires": {
-        "repeating": "2.0.1"
-      }
-    },
-    "indexes-of": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz",
-      "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
-      "dev": true
-    },
-    "indexof": {
-      "version": "0.0.1",
-      "resolved": "http://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz",
-      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
-      "dev": true
-    },
-    "inflight": {
-      "version": "1.0.6",
-      "resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
-      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
-      "dev": true,
-      "requires": {
-        "once": "1.4.0",
-        "wrappy": "1.0.2"
-      }
-    },
-    "inherits": {
-      "version": "2.0.3",
-      "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
-      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-      "dev": true
-    },
-    "ini": {
-      "version": "1.3.5",
-      "resolved": "http://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz",
-      "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=",
-      "dev": true
-    },
-    "internal-ip": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/internal-ip/download/internal-ip-1.2.0.tgz",
-      "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=",
-      "dev": true,
-      "requires": {
-        "meow": "3.7.0"
-      }
-    },
-    "interpret": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/interpret/download/interpret-1.1.0.tgz",
-      "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
-      "dev": true
-    },
-    "invariant": {
-      "version": "2.2.2",
-      "resolved": "http://registry.npm.taobao.org/invariant/download/invariant-2.2.2.tgz",
-      "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
-      "dev": true,
-      "requires": {
-        "loose-envify": "1.3.1"
-      }
-    },
-    "invert-kv": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz",
-      "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
-      "dev": true
-    },
-    "ip": {
-      "version": "1.1.5",
-      "resolved": "http://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz",
-      "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
-      "dev": true
-    },
-    "ipaddr.js": {
-      "version": "1.5.2",
-      "resolved": "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.5.2.tgz",
-      "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=",
-      "dev": true
-    },
-    "is-absolute-url": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz",
-      "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
-      "dev": true
-    },
-    "is-alphabetical": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/is-alphabetical/download/is-alphabetical-1.0.1.tgz",
-      "integrity": "sha1-x3B5zJHU76x3W+EDS/LSQ/lebwg=",
-      "dev": true
-    },
-    "is-alphanumeric": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/is-alphanumeric/download/is-alphanumeric-1.0.0.tgz",
-      "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=",
-      "dev": true
-    },
-    "is-alphanumerical": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/is-alphanumerical/download/is-alphanumerical-1.0.1.tgz",
-      "integrity": "sha1-37SqTRCF4zvbYcLe6cgOnGwZ9Ts=",
-      "dev": true,
-      "requires": {
-        "is-alphabetical": "1.0.1",
-        "is-decimal": "1.0.1"
-      }
-    },
-    "is-arrayish": {
-      "version": "0.2.1",
-      "resolved": "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
-      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
-      "dev": true
-    },
-    "is-binary-path": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
-      "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
-      "dev": true,
-      "requires": {
-        "binary-extensions": "1.11.0"
-      }
-    },
-    "is-buffer": {
-      "version": "1.1.6",
-      "resolved": "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz",
-      "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=",
-      "dev": true
-    },
-    "is-builtin-module": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz",
-      "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
-      "dev": true,
-      "requires": {
-        "builtin-modules": "1.1.1"
-      }
-    },
-    "is-callable": {
-      "version": "1.1.3",
-      "resolved": "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.3.tgz",
-      "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
-      "dev": true
-    },
-    "is-date-object": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz",
-      "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
-      "dev": true
-    },
-    "is-decimal": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/is-decimal/download/is-decimal-1.0.1.tgz",
-      "integrity": "sha1-9ftqlJlq2ejjdh+/vQkfH8qMToI=",
-      "dev": true
-    },
-    "is-directory": {
-      "version": "0.3.1",
-      "resolved": "http://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz",
-      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
-      "dev": true
-    },
-    "is-dotfile": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz",
-      "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
-      "dev": true
-    },
-    "is-equal-shallow": {
-      "version": "0.1.3",
-      "resolved": "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz",
-      "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
-      "dev": true,
-      "requires": {
-        "is-primitive": "2.0.0"
-      }
-    },
-    "is-extendable": {
-      "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
-      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
-      "dev": true
-    },
-    "is-extglob": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
-      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-      "dev": true
-    },
-    "is-finite": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz",
-      "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
-      "dev": true,
-      "requires": {
-        "number-is-nan": "1.0.1"
-      }
-    },
-    "is-fullwidth-code-point": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
-      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
-      "dev": true,
-      "requires": {
-        "number-is-nan": "1.0.1"
-      }
-    },
-    "is-glob": {
-      "version": "4.0.0",
-      "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-4.0.0.tgz",
-      "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
-      "dev": true,
-      "requires": {
-        "is-extglob": "2.1.1"
-      }
-    },
-    "is-hexadecimal": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/is-hexadecimal/download/is-hexadecimal-1.0.1.tgz",
-      "integrity": "sha1-bghLvJIGH7sJcexYts5tQE4k2mk=",
-      "dev": true
-    },
-    "is-my-json-valid": {
-      "version": "2.16.1",
-      "resolved": "http://registry.npm.taobao.org/is-my-json-valid/download/is-my-json-valid-2.16.1.tgz",
-      "integrity": "sha1-WoRnd+LCYg0eaRBOXToDsfYIjxE=",
-      "dev": true,
-      "requires": {
-        "generate-function": "2.0.0",
-        "generate-object-property": "1.2.0",
-        "jsonpointer": "4.0.1",
-        "xtend": "4.0.1"
-      }
-    },
-    "is-number": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz",
-      "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
-      "dev": true,
-      "requires": {
-        "kind-of": "3.2.2"
-      }
-    },
-    "is-obj": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz",
-      "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
-      "dev": true
-    },
-    "is-observable": {
-      "version": "0.2.0",
-      "resolved": "http://registry.npm.taobao.org/is-observable/download/is-observable-0.2.0.tgz",
-      "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=",
-      "dev": true,
-      "requires": {
-        "symbol-observable": "0.2.4"
-      },
-      "dependencies": {
-        "symbol-observable": {
-          "version": "0.2.4",
-          "resolved": "http://registry.npm.taobao.org/symbol-observable/download/symbol-observable-0.2.4.tgz",
-          "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=",
-          "dev": true
-        }
-      }
-    },
-    "is-path-cwd": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz",
-      "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
-      "dev": true
-    },
-    "is-path-in-cwd": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.0.tgz",
-      "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
-      "dev": true,
-      "requires": {
-        "is-path-inside": "1.0.1"
-      }
-    },
-    "is-path-inside": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz",
-      "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
-      "dev": true,
-      "requires": {
-        "path-is-inside": "1.0.2"
-      }
-    },
-    "is-plain-obj": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz",
-      "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
-      "dev": true
-    },
-    "is-plain-object": {
-      "version": "2.0.4",
-      "resolved": "http://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz",
-      "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
-      "dev": true,
-      "requires": {
-        "isobject": "3.0.1"
-      }
-    },
-    "is-posix-bracket": {
-      "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz",
-      "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
-      "dev": true
-    },
-    "is-primitive": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz",
-      "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
-      "dev": true
-    },
-    "is-promise": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz",
-      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
-      "dev": true
-    },
-    "is-property": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/is-property/download/is-property-1.0.2.tgz",
-      "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
-      "dev": true
-    },
-    "is-regex": {
-      "version": "1.0.4",
-      "resolved": "http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz",
-      "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
-      "dev": true,
-      "requires": {
-        "has": "1.0.1"
-      }
-    },
-    "is-regexp": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz",
-      "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
-      "dev": true
-    },
-    "is-stream": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz",
-      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
-      "dev": true
-    },
-    "is-supported-regexp-flag": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/is-supported-regexp-flag/download/is-supported-regexp-flag-1.0.0.tgz",
-      "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=",
-      "dev": true
-    },
-    "is-svg": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/is-svg/download/is-svg-2.1.0.tgz",
-      "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
-      "dev": true,
-      "requires": {
-        "html-comment-regex": "1.1.1"
-      }
-    },
-    "is-symbol": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.1.tgz",
-      "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
-      "dev": true
-    },
-    "is-typedarray": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz",
-      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
-      "dev": true
-    },
-    "is-utf8": {
-      "version": "0.2.1",
-      "resolved": "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz",
-      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
-      "dev": true
-    },
-    "is-whitespace-character": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/is-whitespace-character/download/is-whitespace-character-1.0.1.tgz",
-      "integrity": "sha1-muAXbzKCtlRXoZks2whPil+DPjs=",
-      "dev": true
-    },
-    "is-word-character": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/is-word-character/download/is-word-character-1.0.1.tgz",
-      "integrity": "sha1-WgP6HqkazopusMfNdw64bWXIvvs=",
-      "dev": true
-    },
-    "is-wsl": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz",
-      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
-      "dev": true
-    },
-    "isarray": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
-      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-      "dev": true
-    },
-    "isbinaryfile": {
-      "version": "3.0.2",
-      "resolved": "http://registry.npm.taobao.org/isbinaryfile/download/isbinaryfile-3.0.2.tgz",
-      "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=",
-      "dev": true
-    },
-    "isexe": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
-      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
-      "dev": true
-    },
-    "isobject": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz",
-      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-      "dev": true
-    },
-    "isstream": {
-      "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz",
-      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
-      "dev": true
-    },
-    "istanbul": {
-      "version": "0.4.5",
-      "resolved": "http://registry.npm.taobao.org/istanbul/download/istanbul-0.4.5.tgz",
-      "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
-      "dev": true,
-      "requires": {
-        "abbrev": "1.0.9",
-        "async": "1.5.2",
-        "escodegen": "1.8.1",
-        "esprima": "2.7.3",
-        "glob": "5.0.15",
-        "handlebars": "4.0.11",
-        "js-yaml": "3.7.0",
-        "mkdirp": "0.5.1",
-        "nopt": "3.0.6",
-        "once": "1.4.0",
-        "resolve": "1.1.7",
-        "supports-color": "3.2.3",
-        "which": "1.3.0",
-        "wordwrap": "1.0.0"
-      },
-      "dependencies": {
-        "abbrev": {
-          "version": "1.0.9",
-          "resolved": "http://registry.npm.taobao.org/abbrev/download/abbrev-1.0.9.tgz",
-          "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
-          "dev": true
-        },
-        "async": {
-          "version": "1.5.2",
-          "resolved": "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz",
-          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
-          "dev": true
-        },
-        "glob": {
-          "version": "5.0.15",
-          "resolved": "http://registry.npm.taobao.org/glob/download/glob-5.0.15.tgz",
-          "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
-          "dev": true,
-          "requires": {
-            "inflight": "1.0.6",
-            "inherits": "2.0.3",
-            "minimatch": "3.0.4",
-            "once": "1.4.0",
-            "path-is-absolute": "1.0.1"
-          }
-        },
-        "has-flag": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
-          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
-          "dev": true
-        },
-        "nopt": {
-          "version": "3.0.6",
-          "resolved": "http://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz",
-          "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
-          "dev": true,
-          "requires": {
-            "abbrev": "1.0.9"
-          }
-        },
-        "resolve": {
-          "version": "1.1.7",
-          "resolved": "http://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz",
-          "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "3.2.3",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
-          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
-          "dev": true,
-          "requires": {
-            "has-flag": "1.0.0"
-          }
-        },
-        "wordwrap": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz",
-          "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
-          "dev": true
-        }
-      }
-    },
-    "istanbul-api": {
-      "version": "1.2.1",
-      "resolved": "http://registry.npm.taobao.org/istanbul-api/download/istanbul-api-1.2.1.tgz",
-      "integrity": "sha1-DGCgUV6xHH1lxrULuixumZrNhiA=",
-      "dev": true,
-      "requires": {
-        "async": "2.6.0",
-        "fileset": "2.0.3",
-        "istanbul-lib-coverage": "1.1.1",
-        "istanbul-lib-hook": "1.1.0",
-        "istanbul-lib-instrument": "1.9.1",
-        "istanbul-lib-report": "1.1.2",
-        "istanbul-lib-source-maps": "1.2.2",
-        "istanbul-reports": "1.1.3",
-        "js-yaml": "3.7.0",
-        "mkdirp": "0.5.1",
-        "once": "1.4.0"
-      }
-    },
-    "istanbul-instrumenter-loader": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/istanbul-instrumenter-loader/download/istanbul-instrumenter-loader-2.0.0.tgz",
-      "integrity": "sha1-5UkpAKsLuoNe+oAkywC+mz7qJwA=",
-      "dev": true,
-      "requires": {
-        "convert-source-map": "1.5.1",
-        "istanbul-lib-instrument": "1.9.1",
-        "loader-utils": "0.2.17",
-        "object-assign": "4.1.1"
-      },
-      "dependencies": {
-        "loader-utils": {
-          "version": "0.2.17",
-          "resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz",
-          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
-          "dev": true,
-          "requires": {
-            "big.js": "3.2.0",
-            "emojis-list": "2.1.0",
-            "json5": "0.5.1",
-            "object-assign": "4.1.1"
-          }
-        }
-      }
-    },
-    "istanbul-lib-coverage": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.1.1.tgz",
-      "integrity": "sha1-c7+5mIhSmUFck9OKPprfeEp3qdo=",
-      "dev": true
-    },
-    "istanbul-lib-hook": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-1.1.0.tgz",
-      "integrity": "sha1-hTjZcDcss3FtU+VVI91UtVeo2Js=",
-      "dev": true,
-      "requires": {
-        "append-transform": "0.4.0"
-      }
-    },
-    "istanbul-lib-instrument": {
-      "version": "1.9.1",
-      "resolved": "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.9.1.tgz",
-      "integrity": "sha1-JQsws1MeXTJRKZ/dZLCyydtrVY4=",
-      "dev": true,
-      "requires": {
-        "babel-generator": "6.26.0",
-        "babel-template": "6.26.0",
-        "babel-traverse": "6.26.0",
-        "babel-types": "6.26.0",
-        "babylon": "6.18.0",
-        "istanbul-lib-coverage": "1.1.1",
-        "semver": "5.4.1"
-      }
-    },
-    "istanbul-lib-report": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-1.1.2.tgz",
-      "integrity": "sha1-kivifBO5URuXm9FYc1n2l5jB1CU=",
-      "dev": true,
-      "requires": {
-        "istanbul-lib-coverage": "1.1.1",
-        "mkdirp": "0.5.1",
-        "path-parse": "1.0.5",
-        "supports-color": "3.2.3"
-      },
-      "dependencies": {
-        "has-flag": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
-          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "3.2.3",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
-          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
-          "dev": true,
-          "requires": {
-            "has-flag": "1.0.0"
-          }
-        }
-      }
-    },
-    "istanbul-lib-source-maps": {
-      "version": "1.2.2",
-      "resolved": "http://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-1.2.2.tgz",
-      "integrity": "sha1-dQV4YCQ18ooMBO5tfZ4PKWDmLBw=",
-      "dev": true,
-      "requires": {
-        "debug": "3.1.0",
-        "istanbul-lib-coverage": "1.1.1",
-        "mkdirp": "0.5.1",
-        "rimraf": "2.6.2",
-        "source-map": "0.5.7"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
-          "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        }
-      }
-    },
-    "istanbul-reports": {
-      "version": "1.1.3",
-      "resolved": "http://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-1.1.3.tgz",
-      "integrity": "sha1-O54eje+20YsdQl2o6LMsWhY/LRA=",
-      "dev": true,
-      "requires": {
-        "handlebars": "4.0.11"
-      }
-    },
-    "jasmine": {
-      "version": "2.8.0",
-      "resolved": "http://registry.npm.taobao.org/jasmine/download/jasmine-2.8.0.tgz",
-      "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=",
-      "dev": true,
-      "requires": {
-        "exit": "0.1.2",
-        "glob": "7.1.2",
-        "jasmine-core": "2.8.0"
-      },
-      "dependencies": {
-        "jasmine-core": {
-          "version": "2.8.0",
-          "resolved": "http://registry.npm.taobao.org/jasmine-core/download/jasmine-core-2.8.0.tgz",
-          "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=",
-          "dev": true
-        }
-      }
-    },
-    "jasmine-core": {
-      "version": "2.8.0",
-      "resolved": "http://registry.npm.taobao.org/jasmine-core/download/jasmine-core-2.8.0.tgz",
-      "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=",
-      "dev": true
-    },
-    "jasmine-spec-reporter": {
-      "version": "4.2.1",
-      "resolved": "http://registry.npm.taobao.org/jasmine-spec-reporter/download/jasmine-spec-reporter-4.2.1.tgz",
-      "integrity": "sha1-HWMq7ANBZwrTJPkrqEtLMrNeniI=",
-      "dev": true,
-      "requires": {
-        "colors": "1.1.2"
-      }
-    },
-    "jasminewd2": {
-      "version": "2.2.0",
-      "resolved": "http://registry.npm.taobao.org/jasminewd2/download/jasminewd2-2.2.0.tgz",
-      "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=",
-      "dev": true
-    },
-    "jest-get-type": {
-      "version": "21.2.0",
-      "resolved": "http://registry.npm.taobao.org/jest-get-type/download/jest-get-type-21.2.0.tgz",
-      "integrity": "sha1-9jdqudtLYNgeOfMHScbEZvQNSiM=",
-      "dev": true
-    },
-    "jest-validate": {
-      "version": "21.2.1",
-      "resolved": "http://registry.npm.taobao.org/jest-validate/download/jest-validate-21.2.1.tgz",
-      "integrity": "sha1-zAy8plPNVJN7pPKhEXlndFMN08c=",
-      "dev": true,
-      "requires": {
-        "chalk": "2.2.2",
-        "jest-get-type": "21.2.0",
-        "leven": "2.1.0",
-        "pretty-format": "21.2.1"
-      }
-    },
-    "js-base64": {
-      "version": "2.4.0",
-      "resolved": "http://registry.npm.taobao.org/js-base64/download/js-base64-2.4.0.tgz",
-      "integrity": "sha1-nlZv7mJHUaHXIMlmzWIm0p1AJao=",
-      "dev": true
-    },
-    "js-tokens": {
-      "version": "3.0.2",
-      "resolved": "http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz",
-      "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
-      "dev": true
-    },
-    "js-yaml": {
-      "version": "3.7.0",
-      "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.7.0.tgz",
-      "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
-      "dev": true,
-      "requires": {
-        "argparse": "1.0.9",
-        "esprima": "2.7.3"
-      }
-    },
-    "jsbn": {
-      "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz",
-      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
-      "dev": true,
-      "optional": true
-    },
-    "jsesc": {
-      "version": "0.5.0",
-      "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz",
-      "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
-      "dev": true
-    },
-    "json-loader": {
-      "version": "0.5.7",
-      "resolved": "http://registry.npm.taobao.org/json-loader/download/json-loader-0.5.7.tgz",
-      "integrity": "sha1-3KFKcCNf+C8KyaOr62DTN6NlGF0=",
-      "dev": true
-    },
-    "json-parse-better-errors": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.1.tgz",
-      "integrity": "sha1-UBg80bLSUnXeBp6ecbRnrJ6rlzo=",
-      "dev": true
-    },
-    "json-schema": {
-      "version": "0.2.3",
-      "resolved": "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz",
-      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
-      "dev": true
-    },
-    "json-schema-traverse": {
-      "version": "0.3.1",
-      "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz",
-      "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
-      "dev": true
-    },
-    "json-stable-stringify": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz",
-      "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
-      "dev": true,
-      "requires": {
-        "jsonify": "0.0.0"
-      }
-    },
-    "json-stringify-safe": {
-      "version": "5.0.1",
-      "resolved": "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz",
-      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
-      "dev": true
-    },
-    "json3": {
-      "version": "3.3.2",
-      "resolved": "http://registry.npm.taobao.org/json3/download/json3-3.3.2.tgz",
-      "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
-      "dev": true
-    },
-    "json5": {
-      "version": "0.5.1",
-      "resolved": "http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz",
-      "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
-      "dev": true
-    },
-    "jsonfile": {
-      "version": "4.0.0",
-      "resolved": "http://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz",
-      "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "4.1.11"
-      }
-    },
-    "jsonify": {
-      "version": "0.0.0",
-      "resolved": "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz",
-      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
-      "dev": true
-    },
-    "jsonpointer": {
-      "version": "4.0.1",
-      "resolved": "http://registry.npm.taobao.org/jsonpointer/download/jsonpointer-4.0.1.tgz",
-      "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
-      "dev": true
-    },
-    "jsprim": {
-      "version": "1.4.1",
-      "resolved": "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
-      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "1.0.0",
-        "extsprintf": "1.3.0",
-        "json-schema": "0.2.3",
-        "verror": "1.10.0"
-      },
-      "dependencies": {
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true
-        }
-      }
-    },
-    "karma": {
-      "version": "1.7.1",
-      "resolved": "http://registry.npm.taobao.org/karma/download/karma-1.7.1.tgz",
-      "integrity": "sha1-hcwI6eCiLXzpzKN8ShvoJPaisa4=",
-      "dev": true,
-      "requires": {
-        "bluebird": "3.5.1",
-        "body-parser": "1.18.2",
-        "chokidar": "1.7.0",
-        "colors": "1.1.2",
-        "combine-lists": "1.0.1",
-        "connect": "3.6.5",
-        "core-js": "2.5.3",
-        "di": "0.0.1",
-        "dom-serialize": "2.2.1",
-        "expand-braces": "0.1.2",
-        "glob": "7.1.2",
-        "graceful-fs": "4.1.11",
-        "http-proxy": "1.16.2",
-        "isbinaryfile": "3.0.2",
-        "lodash": "3.10.1",
-        "log4js": "0.6.38",
-        "mime": "1.6.0",
-        "minimatch": "3.0.4",
-        "optimist": "0.6.1",
-        "qjobs": "1.1.5",
-        "range-parser": "1.2.0",
-        "rimraf": "2.6.2",
-        "safe-buffer": "5.1.1",
-        "socket.io": "1.7.3",
-        "source-map": "0.5.7",
-        "tmp": "0.0.31",
-        "useragent": "2.2.1"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "3.10.1",
-          "resolved": "http://registry.npm.taobao.org/lodash/download/lodash-3.10.1.tgz",
-          "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
-          "dev": true
-        }
-      }
-    },
-    "karma-chrome-launcher": {
-      "version": "2.2.0",
-      "resolved": "http://registry.npm.taobao.org/karma-chrome-launcher/download/karma-chrome-launcher-2.2.0.tgz",
-      "integrity": "sha1-zxudBxNswY/iOTJ9JGVMPbw2is8=",
-      "dev": true,
-      "requires": {
-        "fs-access": "1.0.1",
-        "which": "1.3.0"
-      }
-    },
-    "karma-cli": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/karma-cli/download/karma-cli-1.0.1.tgz",
-      "integrity": "sha1-rmw8WKMTodALRRZMRVubhs4X+WA=",
-      "dev": true,
-      "requires": {
-        "resolve": "1.5.0"
-      }
-    },
-    "karma-coverage-istanbul-reporter": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/karma-coverage-istanbul-reporter/download/karma-coverage-istanbul-reporter-1.3.0.tgz",
-      "integrity": "sha1-0ULNnFVzHJ42Pvc3To7xoxvr+ts=",
-      "dev": true,
-      "requires": {
-        "istanbul-api": "1.2.1",
-        "minimatch": "3.0.4"
-      }
-    },
-    "karma-jasmine": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/karma-jasmine/download/karma-jasmine-1.1.1.tgz",
-      "integrity": "sha1-b+hA51oRYAydkehLM8RY4cRqNSk=",
-      "dev": true
-    },
-    "karma-jasmine-html-reporter": {
-      "version": "0.2.2",
-      "resolved": "http://registry.npm.taobao.org/karma-jasmine-html-reporter/download/karma-jasmine-html-reporter-0.2.2.tgz",
-      "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=",
-      "dev": true,
-      "requires": {
-        "karma-jasmine": "1.1.1"
-      }
-    },
-    "karma-remap-istanbul": {
-      "version": "0.6.0",
-      "resolved": "http://registry.npm.taobao.org/karma-remap-istanbul/download/karma-remap-istanbul-0.6.0.tgz",
-      "integrity": "sha1-l/O3cAZSVPm0ck8tm+SjouG69vw=",
-      "dev": true,
-      "requires": {
-        "istanbul": "0.4.5",
-        "remap-istanbul": "0.9.5"
-      }
-    },
-    "karma-sauce-launcher": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/karma-sauce-launcher/download/karma-sauce-launcher-1.2.0.tgz",
-      "integrity": "sha1-byVY3e889Wh5+idUDIrp+L/Ra8o=",
-      "dev": true,
-      "requires": {
-        "q": "1.5.1",
-        "sauce-connect-launcher": "1.2.3",
-        "saucelabs": "1.4.0",
-        "wd": "1.5.0"
-      },
-      "dependencies": {
-        "saucelabs": {
-          "version": "1.4.0",
-          "resolved": "http://registry.npm.taobao.org/saucelabs/download/saucelabs-1.4.0.tgz",
-          "integrity": "sha1-uTSpr52ih0s/QKrh/N5QpEZvXzg=",
-          "dev": true,
-          "requires": {
-            "https-proxy-agent": "1.0.0"
-          }
-        }
-      }
-    },
-    "karma-source-map-support": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/karma-source-map-support/download/karma-source-map-support-1.2.0.tgz",
-      "integrity": "sha1-G/gee7SwiWJ6s1LsQXnhF8QGpUA=",
-      "dev": true,
-      "requires": {
-        "source-map-support": "0.4.18"
-      }
-    },
-    "killable": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/killable/download/killable-1.0.0.tgz",
-      "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=",
-      "dev": true
-    },
-    "kind-of": {
-      "version": "3.2.2",
-      "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
-      "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-      "dev": true,
-      "requires": {
-        "is-buffer": "1.1.6"
-      }
-    },
-    "known-css-properties": {
-      "version": "0.4.1",
-      "resolved": "http://registry.npm.taobao.org/known-css-properties/download/known-css-properties-0.4.1.tgz",
-      "integrity": "sha1-uqr3BOX4pfEODiISEqrj6nOOo3I=",
-      "dev": true
-    },
-    "lazy-cache": {
-      "version": "0.2.7",
-      "resolved": "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-0.2.7.tgz",
-      "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=",
-      "dev": true
-    },
-    "lazystream": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/lazystream/download/lazystream-1.0.0.tgz",
-      "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
-      "dev": true,
-      "requires": {
-        "readable-stream": "2.3.3"
-      }
-    },
-    "lcid": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz",
-      "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
-      "dev": true,
-      "requires": {
-        "invert-kv": "1.0.0"
-      }
-    },
-    "less": {
-      "version": "2.7.3",
-      "resolved": "http://registry.npm.taobao.org/less/download/less-2.7.3.tgz",
-      "integrity": "sha1-zBJg9RyQCp7A2R+2mYE54CUHtjs=",
-      "dev": true,
-      "requires": {
-        "errno": "0.1.6",
-        "graceful-fs": "4.1.11",
-        "image-size": "0.5.5",
-        "mime": "1.6.0",
-        "mkdirp": "0.5.1",
-        "promise": "7.3.1",
-        "request": "2.81.0",
-        "source-map": "0.5.7"
-      }
-    },
-    "less-loader": {
-      "version": "4.0.5",
-      "resolved": "http://registry.npm.taobao.org/less-loader/download/less-loader-4.0.5.tgz",
-      "integrity": "sha1-rhVadAbKxqzSk9eFWH/P8PR4xN0=",
-      "dev": true,
-      "requires": {
-        "clone": "2.1.1",
-        "loader-utils": "1.1.0",
-        "pify": "2.3.0"
-      },
-      "dependencies": {
-        "clone": {
-          "version": "2.1.1",
-          "resolved": "http://registry.npm.taobao.org/clone/download/clone-2.1.1.tgz",
-          "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=",
-          "dev": true
-        },
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        }
-      }
-    },
-    "leven": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz",
-      "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
-      "dev": true
-    },
-    "levn": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
-      "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
-      "dev": true,
-      "requires": {
-        "prelude-ls": "1.1.2",
-        "type-check": "0.3.2"
-      }
-    },
-    "license-webpack-plugin": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/license-webpack-plugin/download/license-webpack-plugin-1.1.1.tgz",
-      "integrity": "sha1-drLO3Mx48Tn9eHfldvdWz8FBuMI=",
-      "dev": true,
-      "requires": {
-        "ejs": "2.5.7"
-      }
-    },
-    "lint-staged": {
-      "version": "5.0.0",
-      "resolved": "http://registry.npm.taobao.org/lint-staged/download/lint-staged-5.0.0.tgz",
-      "integrity": "sha1-8cZw4D4v3z89DrgfctO89lh3DlQ=",
-      "dev": true,
-      "requires": {
-        "app-root-path": "2.0.1",
-        "chalk": "2.2.2",
-        "commander": "2.12.2",
-        "cosmiconfig": "3.1.0",
-        "dedent": "0.7.0",
-        "execa": "0.8.0",
-        "find-parent-dir": "0.3.0",
-        "is-glob": "4.0.0",
-        "jest-validate": "21.2.1",
-        "listr": "0.13.0",
-        "lodash": "4.17.4",
-        "log-symbols": "2.1.0",
-        "minimatch": "3.0.4",
-        "npm-which": "3.0.1",
-        "p-map": "1.2.0",
-        "path-is-inside": "1.0.2",
-        "pify": "3.0.0",
-        "staged-git-files": "0.0.4",
-        "stringify-object": "3.2.1"
-      },
-      "dependencies": {
-        "cosmiconfig": {
-          "version": "3.1.0",
-          "resolved": "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-3.1.0.tgz",
-          "integrity": "sha1-ZAqUv5hH8yGABAPNJzr2BmXHM5c=",
-          "dev": true,
-          "requires": {
-            "is-directory": "0.3.1",
-            "js-yaml": "3.10.0",
-            "parse-json": "3.0.0",
-            "require-from-string": "2.0.1"
-          }
-        },
-        "cross-spawn": {
-          "version": "5.1.0",
-          "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz",
-          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
-          "dev": true,
-          "requires": {
-            "lru-cache": "4.1.1",
-            "shebang-command": "1.2.0",
-            "which": "1.3.0"
-          }
-        },
-        "esprima": {
-          "version": "4.0.0",
-          "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-4.0.0.tgz",
-          "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=",
-          "dev": true
-        },
-        "execa": {
-          "version": "0.8.0",
-          "resolved": "http://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz",
-          "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "5.1.0",
-            "get-stream": "3.0.0",
-            "is-stream": "1.1.0",
-            "npm-run-path": "2.0.2",
-            "p-finally": "1.0.0",
-            "signal-exit": "3.0.2",
-            "strip-eof": "1.0.0"
-          }
-        },
-        "js-yaml": {
-          "version": "3.10.0",
-          "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.10.0.tgz",
-          "integrity": "sha1-LnhEFka9RoLpY/IrbpKCPDCcYtw=",
-          "dev": true,
-          "requires": {
-            "argparse": "1.0.9",
-            "esprima": "4.0.0"
-          }
-        },
-        "parse-json": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-3.0.0.tgz",
-          "integrity": "sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM=",
-          "dev": true,
-          "requires": {
-            "error-ex": "1.3.1"
-          }
-        },
-        "require-from-string": {
-          "version": "2.0.1",
-          "resolved": "http://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.1.tgz",
-          "integrity": "sha1-xUUjPp19pmFunVmt+zn8n1iGdv8=",
-          "dev": true
-        }
-      }
-    },
-    "listr": {
-      "version": "0.13.0",
-      "resolved": "http://registry.npm.taobao.org/listr/download/listr-0.13.0.tgz",
-      "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=",
-      "dev": true,
-      "requires": {
-        "chalk": "1.1.3",
-        "cli-truncate": "0.2.1",
-        "figures": "1.7.0",
-        "indent-string": "2.1.0",
-        "is-observable": "0.2.0",
-        "is-promise": "2.1.0",
-        "is-stream": "1.1.0",
-        "listr-silent-renderer": "1.1.1",
-        "listr-update-renderer": "0.4.0",
-        "listr-verbose-renderer": "0.4.1",
-        "log-symbols": "1.0.2",
-        "log-update": "1.0.2",
-        "ora": "0.2.3",
-        "p-map": "1.2.0",
-        "rxjs": "5.5.5",
-        "stream-to-observable": "0.2.0",
-        "strip-ansi": "3.0.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          }
-        },
-        "log-symbols": {
-          "version": "1.0.2",
-          "resolved": "http://registry.npm.taobao.org/log-symbols/download/log-symbols-1.0.2.tgz",
-          "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
-          "dev": true,
-          "requires": {
-            "chalk": "1.1.3"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "listr-silent-renderer": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/listr-silent-renderer/download/listr-silent-renderer-1.1.1.tgz",
-      "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
-      "dev": true
-    },
-    "listr-update-renderer": {
-      "version": "0.4.0",
-      "resolved": "http://registry.npm.taobao.org/listr-update-renderer/download/listr-update-renderer-0.4.0.tgz",
-      "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=",
-      "dev": true,
-      "requires": {
-        "chalk": "1.1.3",
-        "cli-truncate": "0.2.1",
-        "elegant-spinner": "1.0.1",
-        "figures": "1.7.0",
-        "indent-string": "3.2.0",
-        "log-symbols": "1.0.2",
-        "log-update": "1.0.2",
-        "strip-ansi": "3.0.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          }
-        },
-        "indent-string": {
-          "version": "3.2.0",
-          "resolved": "http://registry.npm.taobao.org/indent-string/download/indent-string-3.2.0.tgz",
-          "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
-          "dev": true
-        },
-        "log-symbols": {
-          "version": "1.0.2",
-          "resolved": "http://registry.npm.taobao.org/log-symbols/download/log-symbols-1.0.2.tgz",
-          "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
-          "dev": true,
-          "requires": {
-            "chalk": "1.1.3"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "listr-verbose-renderer": {
-      "version": "0.4.1",
-      "resolved": "http://registry.npm.taobao.org/listr-verbose-renderer/download/listr-verbose-renderer-0.4.1.tgz",
-      "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=",
-      "dev": true,
-      "requires": {
-        "chalk": "1.1.3",
-        "cli-cursor": "1.0.2",
-        "date-fns": "1.29.0",
-        "figures": "1.7.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "load-json-file": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz",
-      "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "4.1.11",
-        "parse-json": "2.2.0",
-        "pify": "2.3.0",
-        "pinkie-promise": "2.0.1",
-        "strip-bom": "2.0.0"
-      },
-      "dependencies": {
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        }
-      }
-    },
-    "loader-runner": {
-      "version": "2.3.0",
-      "resolved": "http://registry.npm.taobao.org/loader-runner/download/loader-runner-2.3.0.tgz",
-      "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=",
-      "dev": true
-    },
-    "loader-utils": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-1.1.0.tgz",
-      "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
-      "dev": true,
-      "requires": {
-        "big.js": "3.2.0",
-        "emojis-list": "2.1.0",
-        "json5": "0.5.1"
-      }
-    },
-    "locate-path": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz",
-      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
-      "dev": true,
-      "requires": {
-        "p-locate": "2.0.0",
-        "path-exists": "3.0.0"
-      }
-    },
-    "lodash": {
-      "version": "4.17.4",
-      "resolved": "http://registry.npm.taobao.org/lodash/download/lodash-4.17.4.tgz",
-      "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
-    },
-    "lodash._basecopy": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/lodash._basecopy/download/lodash._basecopy-3.0.1.tgz",
-      "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
-      "dev": true
-    },
-    "lodash._basetostring": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/lodash._basetostring/download/lodash._basetostring-3.0.1.tgz",
-      "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
-      "dev": true
-    },
-    "lodash._basevalues": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/lodash._basevalues/download/lodash._basevalues-3.0.0.tgz",
-      "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
-      "dev": true
-    },
-    "lodash._getnative": {
-      "version": "3.9.1",
-      "resolved": "http://registry.npm.taobao.org/lodash._getnative/download/lodash._getnative-3.9.1.tgz",
-      "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
-      "dev": true
-    },
-    "lodash._isiterateecall": {
-      "version": "3.0.9",
-      "resolved": "http://registry.npm.taobao.org/lodash._isiterateecall/download/lodash._isiterateecall-3.0.9.tgz",
-      "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
-      "dev": true
-    },
-    "lodash._reescape": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/lodash._reescape/download/lodash._reescape-3.0.0.tgz",
-      "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
-      "dev": true
-    },
-    "lodash._reevaluate": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/lodash._reevaluate/download/lodash._reevaluate-3.0.0.tgz",
-      "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
-      "dev": true
-    },
-    "lodash._reinterpolate": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz",
-      "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
-      "dev": true
-    },
-    "lodash._root": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/lodash._root/download/lodash._root-3.0.1.tgz",
-      "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
-      "dev": true
-    },
-    "lodash.assign": {
-      "version": "4.2.0",
-      "resolved": "http://registry.npm.taobao.org/lodash.assign/download/lodash.assign-4.2.0.tgz",
-      "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
-      "dev": true,
-      "optional": true
-    },
-    "lodash.camelcase": {
-      "version": "4.3.0",
-      "resolved": "http://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz",
-      "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
-      "dev": true
-    },
-    "lodash.clonedeep": {
-      "version": "4.5.0",
-      "resolved": "http://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz",
-      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
-      "dev": true
-    },
-    "lodash.escape": {
-      "version": "3.2.0",
-      "resolved": "http://registry.npm.taobao.org/lodash.escape/download/lodash.escape-3.2.0.tgz",
-      "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
-      "dev": true,
-      "requires": {
-        "lodash._root": "3.0.1"
-      }
-    },
-    "lodash.isarguments": {
-      "version": "3.1.0",
-      "resolved": "http://registry.npm.taobao.org/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz",
-      "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
-      "dev": true
-    },
-    "lodash.isarray": {
-      "version": "3.0.4",
-      "resolved": "http://registry.npm.taobao.org/lodash.isarray/download/lodash.isarray-3.0.4.tgz",
-      "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
-      "dev": true
-    },
-    "lodash.keys": {
-      "version": "3.1.2",
-      "resolved": "http://registry.npm.taobao.org/lodash.keys/download/lodash.keys-3.1.2.tgz",
-      "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
-      "dev": true,
-      "requires": {
-        "lodash._getnative": "3.9.1",
-        "lodash.isarguments": "3.1.0",
-        "lodash.isarray": "3.0.4"
-      }
-    },
-    "lodash.memoize": {
-      "version": "4.1.2",
-      "resolved": "http://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz",
-      "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
-      "dev": true
-    },
-    "lodash.mergewith": {
-      "version": "4.6.0",
-      "resolved": "http://registry.npm.taobao.org/lodash.mergewith/download/lodash.mergewith-4.6.0.tgz",
-      "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=",
-      "dev": true,
-      "optional": true
-    },
-    "lodash.restparam": {
-      "version": "3.6.1",
-      "resolved": "http://registry.npm.taobao.org/lodash.restparam/download/lodash.restparam-3.6.1.tgz",
-      "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
-      "dev": true
-    },
-    "lodash.tail": {
-      "version": "4.1.1",
-      "resolved": "http://registry.npm.taobao.org/lodash.tail/download/lodash.tail-4.1.1.tgz",
-      "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=",
-      "dev": true
-    },
-    "lodash.template": {
-      "version": "3.6.2",
-      "resolved": "http://registry.npm.taobao.org/lodash.template/download/lodash.template-3.6.2.tgz",
-      "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
-      "dev": true,
-      "requires": {
-        "lodash._basecopy": "3.0.1",
-        "lodash._basetostring": "3.0.1",
-        "lodash._basevalues": "3.0.0",
-        "lodash._isiterateecall": "3.0.9",
-        "lodash._reinterpolate": "3.0.0",
-        "lodash.escape": "3.2.0",
-        "lodash.keys": "3.1.2",
-        "lodash.restparam": "3.6.1",
-        "lodash.templatesettings": "3.1.1"
-      }
-    },
-    "lodash.templatesettings": {
-      "version": "3.1.1",
-      "resolved": "http://registry.npm.taobao.org/lodash.templatesettings/download/lodash.templatesettings-3.1.1.tgz",
-      "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
-      "dev": true,
-      "requires": {
-        "lodash._reinterpolate": "3.0.0",
-        "lodash.escape": "3.2.0"
-      }
-    },
-    "lodash.uniq": {
-      "version": "4.5.0",
-      "resolved": "http://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz",
-      "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
-      "dev": true
-    },
-    "log-symbols": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/log-symbols/download/log-symbols-2.1.0.tgz",
-      "integrity": "sha1-81+mDieIMrU43E3dy7R4pF0+O+Y=",
-      "dev": true,
-      "requires": {
-        "chalk": "2.2.2"
-      }
-    },
-    "log-update": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/log-update/download/log-update-1.0.2.tgz",
-      "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=",
-      "dev": true,
-      "requires": {
-        "ansi-escapes": "1.4.0",
-        "cli-cursor": "1.0.2"
-      }
-    },
-    "log4js": {
-      "version": "0.6.38",
-      "resolved": "http://registry.npm.taobao.org/log4js/download/log4js-0.6.38.tgz",
-      "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=",
-      "dev": true,
-      "requires": {
-        "readable-stream": "1.0.34",
-        "semver": "4.3.6"
-      },
-      "dependencies": {
-        "isarray": {
-          "version": "0.0.1",
-          "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz",
-          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
-          "dev": true
-        },
-        "readable-stream": {
-          "version": "1.0.34",
-          "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz",
-          "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
-          "dev": true,
-          "requires": {
-            "core-util-is": "1.0.2",
-            "inherits": "2.0.3",
-            "isarray": "0.0.1",
-            "string_decoder": "0.10.31"
-          }
-        },
-        "semver": {
-          "version": "4.3.6",
-          "resolved": "http://registry.npm.taobao.org/semver/download/semver-4.3.6.tgz",
-          "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
-          "dev": true
-        },
-        "string_decoder": {
-          "version": "0.10.31",
-          "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz",
-          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
-          "dev": true
-        }
-      }
-    },
-    "loglevel": {
-      "version": "1.6.0",
-      "resolved": "http://registry.npm.taobao.org/loglevel/download/loglevel-1.6.0.tgz",
-      "integrity": "sha1-rgyqVhERSYxboTcj1vtjHSQAOTQ=",
-      "dev": true
-    },
-    "longest": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz",
-      "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
-      "dev": true
-    },
-    "longest-streak": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/longest-streak/download/longest-streak-2.0.2.tgz",
-      "integrity": "sha1-JCG2upOaRDu5/+v1llhaULTDji4=",
-      "dev": true
-    },
-    "loose-envify": {
-      "version": "1.3.1",
-      "resolved": "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.3.1.tgz",
-      "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
-      "dev": true,
-      "requires": {
-        "js-tokens": "3.0.2"
-      }
-    },
-    "loud-rejection": {
-      "version": "1.6.0",
-      "resolved": "http://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz",
-      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
-      "dev": true,
-      "requires": {
-        "currently-unhandled": "0.4.1",
-        "signal-exit": "3.0.2"
-      }
-    },
-    "lower-case": {
-      "version": "1.1.4",
-      "resolved": "http://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz",
-      "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
-      "dev": true
-    },
-    "lru-cache": {
-      "version": "4.1.1",
-      "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.1.tgz",
-      "integrity": "sha1-Yi4y6CSItJJ5EUpPns9F581rulU=",
-      "dev": true,
-      "requires": {
-        "pseudomap": "1.0.2",
-        "yallist": "2.1.2"
-      }
-    },
-    "macaddress": {
-      "version": "0.2.8",
-      "resolved": "http://registry.npm.taobao.org/macaddress/download/macaddress-0.2.8.tgz",
-      "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=",
-      "dev": true
-    },
-    "magic-string": {
-      "version": "0.22.4",
-      "resolved": "http://registry.npm.taobao.org/magic-string/download/magic-string-0.22.4.tgz",
-      "integrity": "sha1-MQObTkA2Y5VhjB1s+Bk8U5F0df8=",
-      "dev": true,
-      "requires": {
-        "vlq": "0.2.3"
-      }
-    },
-    "make-dir": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/make-dir/download/make-dir-1.1.0.tgz",
-      "integrity": "sha1-GbQ2n+SMEW9Twq+VrRAsDjnoXVE=",
-      "dev": true,
-      "requires": {
-        "pify": "3.0.0"
-      }
-    },
-    "make-error": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/make-error/download/make-error-1.3.0.tgz",
-      "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=",
-      "dev": true
-    },
-    "map-obj": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz",
-      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
-      "dev": true
-    },
-    "map-stream": {
-      "version": "0.1.0",
-      "resolved": "http://registry.npm.taobao.org/map-stream/download/map-stream-0.1.0.tgz",
-      "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
-      "dev": true
-    },
-    "markdown-escapes": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/markdown-escapes/download/markdown-escapes-1.0.1.tgz",
-      "integrity": "sha1-GZTfLTr0gR3lmmcUk0wrIpJzRRg=",
-      "dev": true
-    },
-    "markdown-table": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/markdown-table/download/markdown-table-1.1.1.tgz",
-      "integrity": "sha1-Sz3ToTPRUYuO8NvHCb8qG0gkvIw=",
-      "dev": true
-    },
-    "math-expression-evaluator": {
-      "version": "1.2.17",
-      "resolved": "http://registry.npm.taobao.org/math-expression-evaluator/download/math-expression-evaluator-1.2.17.tgz",
-      "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
-      "dev": true
-    },
-    "mathml-tag-names": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/mathml-tag-names/download/mathml-tag-names-2.0.1.tgz",
-      "integrity": "sha1-jUEmgWi/htEQK5gQnijlMeejRXg=",
-      "dev": true
-    },
-    "md5": {
-      "version": "2.2.1",
-      "resolved": "http://registry.npm.taobao.org/md5/download/md5-2.2.1.tgz",
-      "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=",
-      "dev": true,
-      "requires": {
-        "charenc": "0.0.2",
-        "crypt": "0.0.2",
-        "is-buffer": "1.1.6"
-      }
-    },
-    "md5.js": {
-      "version": "1.3.4",
-      "resolved": "http://registry.npm.taobao.org/md5.js/download/md5.js-1.3.4.tgz",
-      "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
-      "dev": true,
-      "requires": {
-        "hash-base": "3.0.4",
-        "inherits": "2.0.3"
-      },
-      "dependencies": {
-        "hash-base": {
-          "version": "3.0.4",
-          "resolved": "http://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz",
-          "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
-          "dev": true,
-          "requires": {
-            "inherits": "2.0.3",
-            "safe-buffer": "5.1.1"
-          }
-        }
-      }
-    },
-    "mdast-util-compact": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/mdast-util-compact/download/mdast-util-compact-1.0.1.tgz",
-      "integrity": "sha1-zbX4TitqLTEU3zO9BdnLMuPECDo=",
-      "dev": true,
-      "requires": {
-        "unist-util-modify-children": "1.1.1",
-        "unist-util-visit": "1.3.0"
-      }
-    },
-    "media-typer": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz",
-      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
-      "dev": true
-    },
-    "mem": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/mem/download/mem-1.1.0.tgz",
-      "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
-      "dev": true,
-      "requires": {
-        "mimic-fn": "1.1.0"
-      }
-    },
-    "memory-fs": {
-      "version": "0.4.1",
-      "resolved": "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz",
-      "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
-      "dev": true,
-      "requires": {
-        "errno": "0.1.6",
-        "readable-stream": "2.3.3"
-      }
-    },
-    "memorystream": {
-      "version": "0.3.1",
-      "resolved": "http://registry.npm.taobao.org/memorystream/download/memorystream-0.3.1.tgz",
-      "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
-      "dev": true
-    },
-    "meow": {
-      "version": "3.7.0",
-      "resolved": "http://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz",
-      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
-      "dev": true,
-      "requires": {
-        "camelcase-keys": "2.1.0",
-        "decamelize": "1.2.0",
-        "loud-rejection": "1.6.0",
-        "map-obj": "1.0.1",
-        "minimist": "1.2.0",
-        "normalize-package-data": "2.4.0",
-        "object-assign": "4.1.1",
-        "read-pkg-up": "1.0.1",
-        "redent": "1.0.0",
-        "trim-newlines": "1.0.0"
-      }
-    },
-    "merge-descriptors": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz",
-      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
-      "dev": true
-    },
-    "methods": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz",
-      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
-      "dev": true
-    },
-    "micromatch": {
-      "version": "2.3.11",
-      "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz",
-      "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
-      "dev": true,
-      "requires": {
-        "arr-diff": "2.0.0",
-        "array-unique": "0.2.1",
-        "braces": "1.8.5",
-        "expand-brackets": "0.1.5",
-        "extglob": "0.3.2",
-        "filename-regex": "2.0.1",
-        "is-extglob": "1.0.0",
-        "is-glob": "2.0.1",
-        "kind-of": "3.2.2",
-        "normalize-path": "2.1.1",
-        "object.omit": "2.0.1",
-        "parse-glob": "3.0.4",
-        "regex-cache": "0.4.4"
-      },
-      "dependencies": {
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "2.0.1",
-          "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
-          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "1.0.0"
-          }
-        }
-      }
-    },
-    "miller-rabin": {
-      "version": "4.0.1",
-      "resolved": "http://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz",
-      "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=",
-      "dev": true,
-      "requires": {
-        "bn.js": "4.11.8",
-        "brorand": "1.1.0"
-      }
-    },
-    "mime": {
-      "version": "1.6.0",
-      "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz",
-      "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=",
-      "dev": true
-    },
-    "mime-db": {
-      "version": "1.30.0",
-      "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.30.0.tgz",
-      "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
-      "dev": true
-    },
-    "mime-types": {
-      "version": "2.1.17",
-      "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.17.tgz",
-      "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
-      "dev": true,
-      "requires": {
-        "mime-db": "1.30.0"
-      }
-    },
-    "mimic-fn": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.1.0.tgz",
-      "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
-      "dev": true
-    },
-    "minimalistic-assert": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.0.tgz",
-      "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=",
-      "dev": true
-    },
-    "minimalistic-crypto-utils": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz",
-      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
-      "dev": true
-    },
-    "minimatch": {
-      "version": "3.0.4",
-      "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz",
-      "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
-      "dev": true,
-      "requires": {
-        "brace-expansion": "1.1.8"
-      }
-    },
-    "minimist": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz",
-      "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-      "dev": true
-    },
-    "mississippi": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/mississippi/download/mississippi-1.3.0.tgz",
-      "integrity": "sha1-0gFYPrEjJ+PFwWQqQEqcrPlONPU=",
-      "dev": true,
-      "requires": {
-        "concat-stream": "1.6.0",
-        "duplexify": "3.5.1",
-        "end-of-stream": "1.4.0",
-        "flush-write-stream": "1.0.2",
-        "from2": "2.3.0",
-        "parallel-transform": "1.1.0",
-        "pump": "1.0.3",
-        "pumpify": "1.3.5",
-        "stream-each": "1.2.2",
-        "through2": "2.0.3"
-      }
-    },
-    "mixin-object": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/mixin-object/download/mixin-object-2.0.1.tgz",
-      "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
-      "dev": true,
-      "requires": {
-        "for-in": "0.1.8",
-        "is-extendable": "0.1.1"
-      },
-      "dependencies": {
-        "for-in": {
-          "version": "0.1.8",
-          "resolved": "http://registry.npm.taobao.org/for-in/download/for-in-0.1.8.tgz",
-          "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=",
-          "dev": true
-        }
-      }
-    },
-    "mkdirp": {
-      "version": "0.5.1",
-      "resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz",
-      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
-      "dev": true,
-      "requires": {
-        "minimist": "0.0.8"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "0.0.8",
-          "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz",
-          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
-          "dev": true
-        }
-      }
-    },
-    "mobx": {
-      "version": "3.4.1",
-      "resolved": "http://registry.npm.taobao.org/mobx/download/mobx-3.4.1.tgz",
-      "integrity": "sha1-N6vl7ogtQBgo2fJsbBovR2FLu+8="
-    },
-    "mobx-angular": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/mobx-angular/download/mobx-angular-2.0.1.tgz",
-      "integrity": "sha1-JjjQkWGAgGk7vtAsXfjNcUtSwWc="
-    },
-    "moment": {
-      "version": "2.19.4",
-      "resolved": "http://registry.npm.taobao.org/moment/download/moment-2.19.4.tgz",
-      "integrity": "sha1-F+XixurYgZyOz62DoKzMsxLpRoI="
-    },
-    "move-concurrently": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
-      "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
-      "dev": true,
-      "requires": {
-        "aproba": "1.2.0",
-        "copy-concurrently": "1.0.5",
-        "fs-write-stream-atomic": "1.0.10",
-        "mkdirp": "0.5.1",
-        "rimraf": "2.6.2",
-        "run-queue": "1.0.3"
-      }
-    },
-    "ms": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
-      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-      "dev": true
-    },
-    "multicast-dns": {
-      "version": "6.2.1",
-      "resolved": "http://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.1.tgz",
-      "integrity": "sha1-xQNd76khnTBkBVikkpgGc1IJgGA=",
-      "dev": true,
-      "requires": {
-        "dns-packet": "1.2.2",
-        "thunky": "0.1.0"
-      }
-    },
-    "multicast-dns-service-types": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz",
-      "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
-      "dev": true
-    },
-    "multipipe": {
-      "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/multipipe/download/multipipe-0.1.2.tgz",
-      "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
-      "dev": true,
-      "requires": {
-        "duplexer2": "0.0.2"
-      }
-    },
-    "nan": {
-      "version": "2.8.0",
-      "resolved": "http://registry.npm.taobao.org/nan/download/nan-2.8.0.tgz",
-      "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=",
-      "dev": true,
-      "optional": true
-    },
-    "ncname": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/ncname/download/ncname-1.0.0.tgz",
-      "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=",
-      "dev": true,
-      "requires": {
-        "xml-char-classes": "1.0.0"
-      }
-    },
-    "negotiator": {
-      "version": "0.6.1",
-      "resolved": "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz",
-      "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
-      "dev": true
-    },
-    "ng-tree-antd": {
-      "version": "2.0.4",
-      "resolved": "http://registry.npm.taobao.org/ng-tree-antd/download/ng-tree-antd-2.0.4.tgz",
-      "integrity": "sha1-pegPPbuRulfHnKYi8OsBA+xYhN4=",
-      "requires": {
-        "angular-tree-component": "6.1.0"
-      }
-    },
-    "ng-zorro-antd": {
-      "version": "0.6.6",
-      "resolved": "http://registry.npm.taobao.org/ng-zorro-antd/download/ng-zorro-antd-0.6.6.tgz",
-      "integrity": "sha1-M+kqIcXkArZjibMPSexq3tyPpdQ=",
-      "requires": {
-        "@angular/cdk": "5.0.0",
-        "moment": "2.19.4",
-        "tslib": "1.8.1"
-      }
-    },
-    "ng-zorro-antd-extra": {
-      "version": "1.1.4",
-      "resolved": "http://registry.npm.taobao.org/ng-zorro-antd-extra/download/ng-zorro-antd-extra-1.1.4.tgz",
-      "integrity": "sha1-K3jTYVZ3tIgJD3SZiEFSl20ygu4="
-    },
-    "ng2-dnd": {
-      "version": "5.0.2",
-      "resolved": "http://registry.npm.taobao.org/ng2-dnd/download/ng2-dnd-5.0.2.tgz",
-      "integrity": "sha1-hiJ4rH3t+hT1eDu/NAFNXXPf77Q="
-    },
-    "ng2-file-upload": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/ng2-file-upload/download/ng2-file-upload-1.3.0.tgz",
-      "integrity": "sha1-2Q+PVo9iODRiF1+L36AJaxMfJ3o="
-    },
-    "ng2-img-cropper": {
-      "version": "0.9.0",
-      "resolved": "http://registry.npm.taobao.org/ng2-img-cropper/download/ng2-img-cropper-0.9.0.tgz",
-      "integrity": "sha1-MFM35mnE5a3IdtYo3K4Lyk0Q0cM="
-    },
-    "ngx-color-picker": {
-      "version": "5.2.0",
-      "resolved": "http://registry.npm.taobao.org/ngx-color-picker/download/ngx-color-picker-5.2.0.tgz",
-      "integrity": "sha1-hDOTPteF4OXTKFVXdLIMI+NJhgY="
-    },
-    "ngx-countdown": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/ngx-countdown/download/ngx-countdown-2.0.2.tgz",
-      "integrity": "sha1-+q905dlnCQYvf7A18QW1+Pdr6S0="
-    },
-    "no-case": {
-      "version": "2.3.2",
-      "resolved": "http://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz",
-      "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=",
-      "dev": true,
-      "requires": {
-        "lower-case": "1.1.4"
-      }
-    },
-    "node-forge": {
-      "version": "0.6.33",
-      "resolved": "http://registry.npm.taobao.org/node-forge/download/node-forge-0.6.33.tgz",
-      "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=",
-      "dev": true
-    },
-    "node-gyp": {
-      "version": "3.6.2",
-      "resolved": "http://registry.npm.taobao.org/node-gyp/download/node-gyp-3.6.2.tgz",
-      "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "fstream": "1.0.11",
-        "glob": "7.1.2",
-        "graceful-fs": "4.1.11",
-        "minimatch": "3.0.4",
-        "mkdirp": "0.5.1",
-        "nopt": "3.0.6",
-        "npmlog": "4.1.2",
-        "osenv": "0.1.4",
-        "request": "2.81.0",
-        "rimraf": "2.6.2",
-        "semver": "5.3.0",
-        "tar": "2.2.1",
-        "which": "1.3.0"
-      },
-      "dependencies": {
-        "nopt": {
-          "version": "3.0.6",
-          "resolved": "http://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz",
-          "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "abbrev": "1.1.1"
-          }
-        },
-        "semver": {
-          "version": "5.3.0",
-          "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz",
-          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "node-libs-browser": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.1.0.tgz",
-      "integrity": "sha1-X5QmPUBPbkR2fXJpAf/wVHjWAN8=",
-      "dev": true,
-      "requires": {
-        "assert": "1.4.1",
-        "browserify-zlib": "0.2.0",
-        "buffer": "4.9.1",
-        "console-browserify": "1.1.0",
-        "constants-browserify": "1.0.0",
-        "crypto-browserify": "3.12.0",
-        "domain-browser": "1.1.7",
-        "events": "1.1.1",
-        "https-browserify": "1.0.0",
-        "os-browserify": "0.3.0",
-        "path-browserify": "0.0.0",
-        "process": "0.11.10",
-        "punycode": "1.4.1",
-        "querystring-es3": "0.2.1",
-        "readable-stream": "2.3.3",
-        "stream-browserify": "2.0.1",
-        "stream-http": "2.7.2",
-        "string_decoder": "1.0.3",
-        "timers-browserify": "2.0.4",
-        "tty-browserify": "0.0.0",
-        "url": "0.11.0",
-        "util": "0.10.3",
-        "vm-browserify": "0.0.4"
-      }
-    },
-    "node-modules-path": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/node-modules-path/download/node-modules-path-1.0.1.tgz",
-      "integrity": "sha1-QAlrCM560OoUaAhjr0ScfHWl0cg=",
-      "dev": true
-    },
-    "node-sass": {
-      "version": "4.7.2",
-      "resolved": "http://registry.npm.taobao.org/node-sass/download/node-sass-4.7.2.tgz",
-      "integrity": "sha1-k2Z3i6FGnrAUOKnoWS9CYry2eU4=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "async-foreach": "0.1.3",
-        "chalk": "1.1.3",
-        "cross-spawn": "3.0.1",
-        "gaze": "1.1.2",
-        "get-stdin": "4.0.1",
-        "glob": "7.1.2",
-        "in-publish": "2.0.0",
-        "lodash.assign": "4.2.0",
-        "lodash.clonedeep": "4.5.0",
-        "lodash.mergewith": "4.6.0",
-        "meow": "3.7.0",
-        "mkdirp": "0.5.1",
-        "nan": "2.8.0",
-        "node-gyp": "3.6.2",
-        "npmlog": "4.1.2",
-        "request": "2.79.0",
-        "sass-graph": "2.2.4",
-        "stdout-stream": "1.4.0",
-        "true-case-path": "1.0.2"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "caseless": {
-          "version": "0.11.0",
-          "resolved": "http://registry.npm.taobao.org/caseless/download/caseless-0.11.0.tgz",
-          "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
-          "dev": true,
-          "optional": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          }
-        },
-        "har-validator": {
-          "version": "2.0.6",
-          "resolved": "http://registry.npm.taobao.org/har-validator/download/har-validator-2.0.6.tgz",
-          "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "chalk": "1.1.3",
-            "commander": "2.12.2",
-            "is-my-json-valid": "2.16.1",
-            "pinkie-promise": "2.0.1"
-          }
-        },
-        "qs": {
-          "version": "6.3.2",
-          "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.3.2.tgz",
-          "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
-          "dev": true,
-          "optional": true
-        },
-        "request": {
-          "version": "2.79.0",
-          "resolved": "http://registry.npm.taobao.org/request/download/request-2.79.0.tgz",
-          "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aws-sign2": "0.6.0",
-            "aws4": "1.6.0",
-            "caseless": "0.11.0",
-            "combined-stream": "1.0.5",
-            "extend": "3.0.1",
-            "forever-agent": "0.6.1",
-            "form-data": "2.1.4",
-            "har-validator": "2.0.6",
-            "hawk": "3.1.3",
-            "http-signature": "1.1.1",
-            "is-typedarray": "1.0.0",
-            "isstream": "0.1.2",
-            "json-stringify-safe": "5.0.1",
-            "mime-types": "2.1.17",
-            "oauth-sign": "0.8.2",
-            "qs": "6.3.2",
-            "stringstream": "0.0.5",
-            "tough-cookie": "2.3.3",
-            "tunnel-agent": "0.4.3",
-            "uuid": "3.1.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        },
-        "tunnel-agent": {
-          "version": "0.4.3",
-          "resolved": "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.4.3.tgz",
-          "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "nopt": {
-      "version": "4.0.1",
-      "resolved": "http://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz",
-      "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
-      "dev": true,
-      "requires": {
-        "abbrev": "1.1.1",
-        "osenv": "0.1.4"
-      }
-    },
-    "normalize-package-data": {
-      "version": "2.4.0",
-      "resolved": "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.4.0.tgz",
-      "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=",
-      "dev": true,
-      "requires": {
-        "hosted-git-info": "2.5.0",
-        "is-builtin-module": "1.0.0",
-        "semver": "5.4.1",
-        "validate-npm-package-license": "3.0.1"
-      }
-    },
-    "normalize-path": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
-      "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-      "dev": true,
-      "requires": {
-        "remove-trailing-separator": "1.1.0"
-      }
-    },
-    "normalize-range": {
-      "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz",
-      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
-      "dev": true
-    },
-    "normalize-selector": {
-      "version": "0.2.0",
-      "resolved": "http://registry.npm.taobao.org/normalize-selector/download/normalize-selector-0.2.0.tgz",
-      "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=",
-      "dev": true
-    },
-    "normalize-url": {
-      "version": "1.9.1",
-      "resolved": "http://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz",
-      "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
-      "dev": true,
-      "requires": {
-        "object-assign": "4.1.1",
-        "prepend-http": "1.0.4",
-        "query-string": "4.3.4",
-        "sort-keys": "1.1.2"
-      }
-    },
-    "npm-path": {
-      "version": "2.0.3",
-      "resolved": "http://registry.npm.taobao.org/npm-path/download/npm-path-2.0.3.tgz",
-      "integrity": "sha1-Fc/04ciaONp39W9gVbJPl137K74=",
-      "dev": true,
-      "requires": {
-        "which": "1.3.0"
-      }
-    },
-    "npm-run-all": {
-      "version": "4.1.2",
-      "resolved": "http://registry.npm.taobao.org/npm-run-all/download/npm-run-all-4.1.2.tgz",
-      "integrity": "sha1-kNYtB4eS0gZpE55xhiEYZlbOoFY=",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "3.2.0",
-        "chalk": "2.2.2",
-        "cross-spawn": "5.1.0",
-        "memorystream": "0.3.1",
-        "minimatch": "3.0.4",
-        "ps-tree": "1.1.0",
-        "read-pkg": "3.0.0",
-        "shell-quote": "1.6.1",
-        "string.prototype.padend": "3.0.0"
-      },
-      "dependencies": {
-        "cross-spawn": {
-          "version": "5.1.0",
-          "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz",
-          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
-          "dev": true,
-          "requires": {
-            "lru-cache": "4.1.1",
-            "shebang-command": "1.2.0",
-            "which": "1.3.0"
-          }
-        },
-        "load-json-file": {
-          "version": "4.0.0",
-          "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-4.0.0.tgz",
-          "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "4.1.11",
-            "parse-json": "4.0.0",
-            "pify": "3.0.0",
-            "strip-bom": "3.0.0"
-          }
-        },
-        "parse-json": {
-          "version": "4.0.0",
-          "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz",
-          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
-          "dev": true,
-          "requires": {
-            "error-ex": "1.3.1",
-            "json-parse-better-errors": "1.0.1"
-          }
-        },
-        "read-pkg": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-3.0.0.tgz",
-          "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
-          "dev": true,
-          "requires": {
-            "load-json-file": "4.0.0",
-            "normalize-package-data": "2.4.0",
-            "path-type": "3.0.0"
-          }
-        },
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
-        }
-      }
-    },
-    "npm-run-path": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz",
-      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
-      "dev": true,
-      "requires": {
-        "path-key": "2.0.1"
-      }
-    },
-    "npm-which": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/npm-which/download/npm-which-3.0.1.tgz",
-      "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=",
-      "dev": true,
-      "requires": {
-        "commander": "2.12.2",
-        "npm-path": "2.0.3",
-        "which": "1.3.0"
-      }
-    },
-    "npmlog": {
-      "version": "4.1.2",
-      "resolved": "http://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz",
-      "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=",
-      "dev": true,
-      "requires": {
-        "are-we-there-yet": "1.1.4",
-        "console-control-strings": "1.1.0",
-        "gauge": "2.7.4",
-        "set-blocking": "2.0.0"
-      }
-    },
-    "nth-check": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/nth-check/download/nth-check-1.0.1.tgz",
-      "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
-      "dev": true,
-      "requires": {
-        "boolbase": "1.0.0"
-      }
-    },
-    "null-check": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/null-check/download/null-check-1.0.0.tgz",
-      "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=",
-      "dev": true
-    },
-    "num2fraction": {
-      "version": "1.2.2",
-      "resolved": "http://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz",
-      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
-      "dev": true
-    },
-    "number-is-nan": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz",
-      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
-      "dev": true
-    },
-    "oauth-sign": {
-      "version": "0.8.2",
-      "resolved": "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz",
-      "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
-      "dev": true
-    },
-    "object-assign": {
-      "version": "4.1.1",
-      "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz",
-      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
-      "dev": true
-    },
-    "object-component": {
-      "version": "0.0.3",
-      "resolved": "http://registry.npm.taobao.org/object-component/download/object-component-0.0.3.tgz",
-      "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
-      "dev": true
-    },
-    "object-keys": {
-      "version": "1.0.11",
-      "resolved": "http://registry.npm.taobao.org/object-keys/download/object-keys-1.0.11.tgz",
-      "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=",
-      "dev": true
-    },
-    "object.omit": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz",
-      "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
-      "dev": true,
-      "requires": {
-        "for-own": "0.1.5",
-        "is-extendable": "0.1.1"
-      },
-      "dependencies": {
-        "for-own": {
-          "version": "0.1.5",
-          "resolved": "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz",
-          "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
-          "dev": true,
-          "requires": {
-            "for-in": "1.0.2"
-          }
-        }
-      }
-    },
-    "obuf": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/obuf/download/obuf-1.1.1.tgz",
-      "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=",
-      "dev": true
-    },
-    "on-finished": {
-      "version": "2.3.0",
-      "resolved": "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
-      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
-      "dev": true,
-      "requires": {
-        "ee-first": "1.1.1"
-      }
-    },
-    "on-headers": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/on-headers/download/on-headers-1.0.1.tgz",
-      "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
-      "dev": true
-    },
-    "once": {
-      "version": "1.4.0",
-      "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
-      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-      "dev": true,
-      "requires": {
-        "wrappy": "1.0.2"
-      }
-    },
-    "onetime": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz",
-      "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
-      "dev": true
-    },
-    "opener": {
-      "version": "1.4.3",
-      "resolved": "http://registry.npm.taobao.org/opener/download/opener-1.4.3.tgz",
-      "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=",
-      "dev": true
-    },
-    "opn": {
-      "version": "5.1.0",
-      "resolved": "http://registry.npm.taobao.org/opn/download/opn-5.1.0.tgz",
-      "integrity": "sha1-cs4jBqF9vqWP8QQYUzUrSo/HdRk=",
-      "dev": true,
-      "requires": {
-        "is-wsl": "1.1.0"
-      }
-    },
-    "optimist": {
-      "version": "0.6.1",
-      "resolved": "http://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz",
-      "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
-      "dev": true,
-      "requires": {
-        "minimist": "0.0.10",
-        "wordwrap": "0.0.2"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "0.0.10",
-          "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz",
-          "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
-          "dev": true
-        }
-      }
-    },
-    "optionator": {
-      "version": "0.8.2",
-      "resolved": "http://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz",
-      "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
-      "dev": true,
-      "requires": {
-        "deep-is": "0.1.3",
-        "fast-levenshtein": "2.0.6",
-        "levn": "0.3.0",
-        "prelude-ls": "1.1.2",
-        "type-check": "0.3.2",
-        "wordwrap": "1.0.0"
-      },
-      "dependencies": {
-        "wordwrap": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz",
-          "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
-          "dev": true
-        }
-      }
-    },
-    "options": {
-      "version": "0.0.6",
-      "resolved": "http://registry.npm.taobao.org/options/download/options-0.0.6.tgz",
-      "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=",
-      "dev": true
-    },
-    "ora": {
-      "version": "0.2.3",
-      "resolved": "http://registry.npm.taobao.org/ora/download/ora-0.2.3.tgz",
-      "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=",
-      "dev": true,
-      "requires": {
-        "chalk": "1.1.3",
-        "cli-cursor": "1.0.2",
-        "cli-spinners": "0.1.2",
-        "object-assign": "4.1.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "original": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/original/download/original-1.0.0.tgz",
-      "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=",
-      "dev": true,
-      "requires": {
-        "url-parse": "1.0.5"
-      },
-      "dependencies": {
-        "url-parse": {
-          "version": "1.0.5",
-          "resolved": "http://registry.npm.taobao.org/url-parse/download/url-parse-1.0.5.tgz",
-          "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=",
-          "dev": true,
-          "requires": {
-            "querystringify": "0.0.4",
-            "requires-port": "1.0.0"
-          }
-        }
-      }
-    },
-    "os-browserify": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz",
-      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
-      "dev": true
-    },
-    "os-homedir": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz",
-      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
-      "dev": true
-    },
-    "os-locale": {
-      "version": "1.4.0",
-      "resolved": "http://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz",
-      "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
-      "dev": true,
-      "requires": {
-        "lcid": "1.0.0"
-      }
-    },
-    "os-tmpdir": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz",
-      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
-      "dev": true
-    },
-    "osenv": {
-      "version": "0.1.4",
-      "resolved": "http://registry.npm.taobao.org/osenv/download/osenv-0.1.4.tgz",
-      "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
-      "dev": true,
-      "requires": {
-        "os-homedir": "1.0.2",
-        "os-tmpdir": "1.0.2"
-      }
-    },
-    "p-finally": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz",
-      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
-      "dev": true
-    },
-    "p-limit": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/p-limit/download/p-limit-1.1.0.tgz",
-      "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
-      "dev": true
-    },
-    "p-locate": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz",
-      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
-      "dev": true,
-      "requires": {
-        "p-limit": "1.1.0"
-      }
-    },
-    "p-map": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz",
-      "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=",
-      "dev": true
-    },
-    "pako": {
-      "version": "1.0.6",
-      "resolved": "http://registry.npm.taobao.org/pako/download/pako-1.0.6.tgz",
-      "integrity": "sha1-AQEhG6pwxLykoPY/Igbpe3368lg=",
-      "dev": true
-    },
-    "parallel-transform": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.1.0.tgz",
-      "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
-      "dev": true,
-      "requires": {
-        "cyclist": "0.2.2",
-        "inherits": "2.0.3",
-        "readable-stream": "2.3.3"
-      }
-    },
-    "param-case": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz",
-      "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
-      "dev": true,
-      "requires": {
-        "no-case": "2.3.2"
-      }
-    },
-    "parse-asn1": {
-      "version": "5.1.0",
-      "resolved": "http://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.0.tgz",
-      "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
-      "dev": true,
-      "requires": {
-        "asn1.js": "4.9.2",
-        "browserify-aes": "1.1.1",
-        "create-hash": "1.1.3",
-        "evp_bytestokey": "1.0.3",
-        "pbkdf2": "3.0.14"
-      }
-    },
-    "parse-entities": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/parse-entities/download/parse-entities-1.1.1.tgz",
-      "integrity": "sha1-gRLYhHExnyerrk1klksSL+ThuJA=",
-      "dev": true,
-      "requires": {
-        "character-entities": "1.2.1",
-        "character-entities-legacy": "1.1.1",
-        "character-reference-invalid": "1.1.1",
-        "is-alphanumerical": "1.0.1",
-        "is-decimal": "1.0.1",
-        "is-hexadecimal": "1.0.1"
-      }
-    },
-    "parse-glob": {
-      "version": "3.0.4",
-      "resolved": "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz",
-      "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
-      "dev": true,
-      "requires": {
-        "glob-base": "0.3.0",
-        "is-dotfile": "1.0.3",
-        "is-extglob": "1.0.0",
-        "is-glob": "2.0.1"
-      },
-      "dependencies": {
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "2.0.1",
-          "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
-          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "1.0.0"
-          }
-        }
-      }
-    },
-    "parse-json": {
-      "version": "2.2.0",
-      "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz",
-      "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
-      "dev": true,
-      "requires": {
-        "error-ex": "1.3.1"
-      }
-    },
-    "parse-passwd": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/parse-passwd/download/parse-passwd-1.0.0.tgz",
-      "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
-      "dev": true
-    },
-    "parse-svg-path": {
-      "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/parse-svg-path/download/parse-svg-path-0.1.2.tgz",
-      "integrity": "sha1-en7A0esG+lMlx9PgCbhZoJtdSes="
-    },
-    "parsejson": {
-      "version": "0.0.3",
-      "resolved": "http://registry.npm.taobao.org/parsejson/download/parsejson-0.0.3.tgz",
-      "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=",
-      "dev": true,
-      "requires": {
-        "better-assert": "1.0.2"
-      }
-    },
-    "parseqs": {
-      "version": "0.0.5",
-      "resolved": "http://registry.npm.taobao.org/parseqs/download/parseqs-0.0.5.tgz",
-      "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
-      "dev": true,
-      "requires": {
-        "better-assert": "1.0.2"
-      }
-    },
-    "parseuri": {
-      "version": "0.0.5",
-      "resolved": "http://registry.npm.taobao.org/parseuri/download/parseuri-0.0.5.tgz",
-      "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
-      "dev": true,
-      "requires": {
-        "better-assert": "1.0.2"
-      }
-    },
-    "parseurl": {
-      "version": "1.3.2",
-      "resolved": "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz",
-      "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
-      "dev": true
-    },
-    "path-browserify": {
-      "version": "0.0.0",
-      "resolved": "http://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.0.tgz",
-      "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
-      "dev": true
-    },
-    "path-exists": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
-      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-      "dev": true
-    },
-    "path-is-absolute": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
-      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
-      "dev": true
-    },
-    "path-is-inside": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz",
-      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
-      "dev": true
-    },
-    "path-key": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz",
-      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
-      "dev": true
-    },
-    "path-parse": {
-      "version": "1.0.5",
-      "resolved": "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.5.tgz",
-      "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
-      "dev": true
-    },
-    "path-to-regexp": {
-      "version": "0.1.7",
-      "resolved": "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz",
-      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
-      "dev": true
-    },
-    "path-type": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz",
-      "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
-      "dev": true,
-      "requires": {
-        "pify": "3.0.0"
-      }
-    },
-    "pause-stream": {
-      "version": "0.0.11",
-      "resolved": "http://registry.npm.taobao.org/pause-stream/download/pause-stream-0.0.11.tgz",
-      "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
-      "dev": true,
-      "requires": {
-        "through": "2.3.8"
-      }
-    },
-    "pbkdf2": {
-      "version": "3.0.14",
-      "resolved": "http://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.14.tgz",
-      "integrity": "sha1-o14TxkeZsGzhUyD0WcIw5o5zut4=",
-      "dev": true,
-      "requires": {
-        "create-hash": "1.1.3",
-        "create-hmac": "1.1.6",
-        "ripemd160": "2.0.1",
-        "safe-buffer": "5.1.1",
-        "sha.js": "2.4.9"
-      }
-    },
-    "performance-now": {
-      "version": "0.2.0",
-      "resolved": "http://registry.npm.taobao.org/performance-now/download/performance-now-0.2.0.tgz",
-      "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
-      "dev": true
-    },
-    "pify": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
-      "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-      "dev": true
-    },
-    "pinkie": {
-      "version": "2.0.4",
-      "resolved": "http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz",
-      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
-      "dev": true
-    },
-    "pinkie-promise": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz",
-      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
-      "dev": true,
-      "requires": {
-        "pinkie": "2.0.4"
-      }
-    },
-    "pkg-dir": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz",
-      "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
-      "dev": true,
-      "requires": {
-        "find-up": "2.1.0"
-      }
-    },
-    "point-at-length": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/point-at-length/download/point-at-length-1.1.0.tgz",
-      "integrity": "sha1-CtcuvQmA1/WhqxIpbAVfnrazDlc=",
-      "requires": {
-        "abs-svg-path": "0.1.1",
-        "isarray": "0.0.1",
-        "parse-svg-path": "0.1.2"
-      },
-      "dependencies": {
-        "isarray": {
-          "version": "0.0.1",
-          "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz",
-          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
-        }
-      }
-    },
-    "portfinder": {
-      "version": "1.0.13",
-      "resolved": "http://registry.npm.taobao.org/portfinder/download/portfinder-1.0.13.tgz",
-      "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=",
-      "dev": true,
-      "requires": {
-        "async": "1.5.2",
-        "debug": "2.6.9",
-        "mkdirp": "0.5.1"
-      },
-      "dependencies": {
-        "async": {
-          "version": "1.5.2",
-          "resolved": "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz",
-          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
-          "dev": true
-        }
-      }
-    },
-    "postcss": {
-      "version": "5.2.18",
-      "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
-      "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
-      "dev": true,
-      "requires": {
-        "chalk": "1.1.3",
-        "js-base64": "2.4.0",
-        "source-map": "0.5.7",
-        "supports-color": "3.2.3"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          },
-          "dependencies": {
-            "supports-color": {
-              "version": "2.0.0",
-              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-              "dev": true
-            }
-          }
-        },
-        "has-flag": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
-          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "3.2.3",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
-          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
-          "dev": true,
-          "requires": {
-            "has-flag": "1.0.0"
-          }
-        }
-      }
-    },
-    "postcss-calc": {
-      "version": "5.3.1",
-      "resolved": "http://registry.npm.taobao.org/postcss-calc/download/postcss-calc-5.3.1.tgz",
-      "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18",
-        "postcss-message-helpers": "2.0.0",
-        "reduce-css-calc": "1.3.0"
-      }
-    },
-    "postcss-colormin": {
-      "version": "2.2.2",
-      "resolved": "http://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-2.2.2.tgz",
-      "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
-      "dev": true,
-      "requires": {
-        "colormin": "1.1.2",
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0"
-      }
-    },
-    "postcss-convert-values": {
-      "version": "2.6.1",
-      "resolved": "http://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-2.6.1.tgz",
-      "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0"
-      }
-    },
-    "postcss-custom-properties": {
-      "version": "6.2.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-custom-properties/download/postcss-custom-properties-6.2.0.tgz",
-      "integrity": "sha1-XZKafwbpuE4PETNBlMC6mjCs++k=",
-      "dev": true,
-      "requires": {
-        "balanced-match": "1.0.0",
-        "postcss": "6.0.14"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-          "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "3.2.0",
-            "escape-string-regexp": "1.0.5",
-            "supports-color": "4.5.0"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-discard-comments": {
-      "version": "2.0.4",
-      "resolved": "http://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-2.0.4.tgz",
-      "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18"
-      }
-    },
-    "postcss-discard-duplicates": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-2.1.0.tgz",
-      "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18"
-      }
-    },
-    "postcss-discard-empty": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-2.1.0.tgz",
-      "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18"
-      }
-    },
-    "postcss-discard-overridden": {
-      "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-0.1.1.tgz",
-      "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18"
-      }
-    },
-    "postcss-discard-unused": {
-      "version": "2.2.3",
-      "resolved": "http://registry.npm.taobao.org/postcss-discard-unused/download/postcss-discard-unused-2.2.3.tgz",
-      "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18",
-        "uniqs": "2.0.0"
-      }
-    },
-    "postcss-filter-plugins": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/postcss-filter-plugins/download/postcss-filter-plugins-2.0.2.tgz",
-      "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18",
-        "uniqid": "4.1.1"
-      }
-    },
-    "postcss-html": {
-      "version": "0.11.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-html/download/postcss-html-0.11.0.tgz",
-      "integrity": "sha1-A6P/MRb4oP4NRjFuohiT1NtLY68=",
-      "dev": true,
-      "requires": {
-        "htmlparser2": "3.9.2",
-        "remark": "8.0.0",
-        "unist-util-find-all-after": "1.0.1"
-      },
-      "dependencies": {
-        "domhandler": {
-          "version": "2.4.1",
-          "resolved": "http://registry.npm.taobao.org/domhandler/download/domhandler-2.4.1.tgz",
-          "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=",
-          "dev": true,
-          "requires": {
-            "domelementtype": "1.3.0"
-          }
-        },
-        "htmlparser2": {
-          "version": "3.9.2",
-          "resolved": "http://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.9.2.tgz",
-          "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
-          "dev": true,
-          "requires": {
-            "domelementtype": "1.3.0",
-            "domhandler": "2.4.1",
-            "domutils": "1.5.1",
-            "entities": "1.1.1",
-            "inherits": "2.0.3",
-            "readable-stream": "2.3.3"
-          }
-        }
-      }
-    },
-    "postcss-less": {
-      "version": "1.1.3",
-      "resolved": "http://registry.npm.taobao.org/postcss-less/download/postcss-less-1.1.3.tgz",
-      "integrity": "sha1-aTBSUnG/441Xk9M6wJwaVGuHu1E=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18"
-      }
-    },
-    "postcss-load-config": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-1.2.0.tgz",
-      "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=",
-      "dev": true,
-      "requires": {
-        "cosmiconfig": "2.2.2",
-        "object-assign": "4.1.1",
-        "postcss-load-options": "1.2.0",
-        "postcss-load-plugins": "2.3.0"
-      }
-    },
-    "postcss-load-options": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-load-options/download/postcss-load-options-1.2.0.tgz",
-      "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=",
-      "dev": true,
-      "requires": {
-        "cosmiconfig": "2.2.2",
-        "object-assign": "4.1.1"
-      }
-    },
-    "postcss-load-plugins": {
-      "version": "2.3.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-load-plugins/download/postcss-load-plugins-2.3.0.tgz",
-      "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=",
-      "dev": true,
-      "requires": {
-        "cosmiconfig": "2.2.2",
-        "object-assign": "4.1.1"
-      }
-    },
-    "postcss-loader": {
-      "version": "2.0.9",
-      "resolved": "http://registry.npm.taobao.org/postcss-loader/download/postcss-loader-2.0.9.tgz",
-      "integrity": "sha1-AB/fe/7rFZQF7mHRu45ZtSjb0wk=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "1.1.0",
-        "postcss": "6.0.14",
-        "postcss-load-config": "1.2.0",
-        "schema-utils": "0.3.0"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-          "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "3.2.0",
-            "escape-string-regexp": "1.0.5",
-            "supports-color": "4.5.0"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-media-query-parser": {
-      "version": "0.2.3",
-      "resolved": "http://registry.npm.taobao.org/postcss-media-query-parser/download/postcss-media-query-parser-0.2.3.tgz",
-      "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=",
-      "dev": true
-    },
-    "postcss-merge-idents": {
-      "version": "2.1.7",
-      "resolved": "http://registry.npm.taobao.org/postcss-merge-idents/download/postcss-merge-idents-2.1.7.tgz",
-      "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
-      "dev": true,
-      "requires": {
-        "has": "1.0.1",
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0"
-      }
-    },
-    "postcss-merge-longhand": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-2.0.2.tgz",
-      "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18"
-      }
-    },
-    "postcss-merge-rules": {
-      "version": "2.1.2",
-      "resolved": "http://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-2.1.2.tgz",
-      "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
-      "dev": true,
-      "requires": {
-        "browserslist": "1.7.7",
-        "caniuse-api": "1.6.1",
-        "postcss": "5.2.18",
-        "postcss-selector-parser": "2.2.3",
-        "vendors": "1.0.1"
-      }
-    },
-    "postcss-message-helpers": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-message-helpers/download/postcss-message-helpers-2.0.0.tgz",
-      "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
-      "dev": true
-    },
-    "postcss-minify-font-values": {
-      "version": "1.0.5",
-      "resolved": "http://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-1.0.5.tgz",
-      "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
-      "dev": true,
-      "requires": {
-        "object-assign": "4.1.1",
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0"
-      }
-    },
-    "postcss-minify-gradients": {
-      "version": "1.0.5",
-      "resolved": "http://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-1.0.5.tgz",
-      "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0"
-      }
-    },
-    "postcss-minify-params": {
-      "version": "1.2.2",
-      "resolved": "http://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-1.2.2.tgz",
-      "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
-      "dev": true,
-      "requires": {
-        "alphanum-sort": "1.0.2",
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0",
-        "uniqs": "2.0.0"
-      }
-    },
-    "postcss-minify-selectors": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-2.1.1.tgz",
-      "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
-      "dev": true,
-      "requires": {
-        "alphanum-sort": "1.0.2",
-        "has": "1.0.1",
-        "postcss": "5.2.18",
-        "postcss-selector-parser": "2.2.3"
-      }
-    },
-    "postcss-modules-extract-imports": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.1.0.tgz",
-      "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
-      "dev": true,
-      "requires": {
-        "postcss": "6.0.14"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-          "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "3.2.0",
-            "escape-string-regexp": "1.0.5",
-            "supports-color": "4.5.0"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-modules-local-by-default": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz",
-      "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
-      "dev": true,
-      "requires": {
-        "css-selector-tokenizer": "0.7.0",
-        "postcss": "6.0.14"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-          "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "3.2.0",
-            "escape-string-regexp": "1.0.5",
-            "supports-color": "4.5.0"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-modules-scope": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz",
-      "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
-      "dev": true,
-      "requires": {
-        "css-selector-tokenizer": "0.7.0",
-        "postcss": "6.0.14"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-          "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "3.2.0",
-            "escape-string-regexp": "1.0.5",
-            "supports-color": "4.5.0"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-modules-values": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz",
-      "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
-      "dev": true,
-      "requires": {
-        "icss-replace-symbols": "1.1.0",
-        "postcss": "6.0.14"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-          "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "3.2.0",
-            "escape-string-regexp": "1.0.5",
-            "supports-color": "4.5.0"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-normalize-charset": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-1.1.1.tgz",
-      "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18"
-      }
-    },
-    "postcss-normalize-url": {
-      "version": "3.0.8",
-      "resolved": "http://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-3.0.8.tgz",
-      "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
-      "dev": true,
-      "requires": {
-        "is-absolute-url": "2.1.0",
-        "normalize-url": "1.9.1",
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0"
-      }
-    },
-    "postcss-ordered-values": {
-      "version": "2.2.3",
-      "resolved": "http://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-2.2.3.tgz",
-      "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0"
-      }
-    },
-    "postcss-reduce-idents": {
-      "version": "2.4.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-reduce-idents/download/postcss-reduce-idents-2.4.0.tgz",
-      "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0"
-      }
-    },
-    "postcss-reduce-initial": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-1.0.1.tgz",
-      "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
-      "dev": true,
-      "requires": {
-        "postcss": "5.2.18"
-      }
-    },
-    "postcss-reduce-transforms": {
-      "version": "1.0.4",
-      "resolved": "http://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-1.0.4.tgz",
-      "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
-      "dev": true,
-      "requires": {
-        "has": "1.0.1",
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0"
-      }
-    },
-    "postcss-reporter": {
-      "version": "5.0.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-reporter/download/postcss-reporter-5.0.0.tgz",
-      "integrity": "sha1-oUF3/RNCgp0pFlPyeG79ZxEDMsM=",
-      "dev": true,
-      "requires": {
-        "chalk": "2.2.2",
-        "lodash": "4.17.4",
-        "log-symbols": "2.1.0",
-        "postcss": "6.0.14"
-      },
-      "dependencies": {
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          },
-          "dependencies": {
-            "chalk": {
-              "version": "2.3.0",
-              "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-              "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-              "dev": true,
-              "requires": {
-                "ansi-styles": "3.2.0",
-                "escape-string-regexp": "1.0.5",
-                "supports-color": "4.5.0"
-              }
-            }
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-resolve-nested-selector": {
-      "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/postcss-resolve-nested-selector/download/postcss-resolve-nested-selector-0.1.1.tgz",
-      "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=",
-      "dev": true
-    },
-    "postcss-safe-parser": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/postcss-safe-parser/download/postcss-safe-parser-3.0.1.tgz",
-      "integrity": "sha1-t1Pv9sfArqXoN1++TN6L+QY/8UI=",
-      "dev": true,
-      "requires": {
-        "postcss": "6.0.14"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-          "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "3.2.0",
-            "escape-string-regexp": "1.0.5",
-            "supports-color": "4.5.0"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-scss": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/postcss-scss/download/postcss-scss-1.0.2.tgz",
-      "integrity": "sha1-/0XPM1S4ee6JpOtoaA9GrJuxT5Q=",
-      "dev": true,
-      "requires": {
-        "postcss": "6.0.14"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-          "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "3.2.0",
-            "escape-string-regexp": "1.0.5",
-            "supports-color": "4.5.0"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-selector-parser": {
-      "version": "2.2.3",
-      "resolved": "http://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-2.2.3.tgz",
-      "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
-      "dev": true,
-      "requires": {
-        "flatten": "1.0.2",
-        "indexes-of": "1.0.1",
-        "uniq": "1.0.1"
-      }
-    },
-    "postcss-svgo": {
-      "version": "2.1.6",
-      "resolved": "http://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-2.1.6.tgz",
-      "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
-      "dev": true,
-      "requires": {
-        "is-svg": "2.1.0",
-        "postcss": "5.2.18",
-        "postcss-value-parser": "3.3.0",
-        "svgo": "0.7.2"
-      }
-    },
-    "postcss-unique-selectors": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-2.0.2.tgz",
-      "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
-      "dev": true,
-      "requires": {
-        "alphanum-sort": "1.0.2",
-        "postcss": "5.2.18",
-        "uniqs": "2.0.0"
-      }
-    },
-    "postcss-url": {
-      "version": "7.3.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-url/download/postcss-url-7.3.0.tgz",
-      "integrity": "sha1-zy9F4GdDz0PP6iUwn4HLwAPceD8=",
-      "dev": true,
-      "requires": {
-        "mime": "1.6.0",
-        "minimatch": "3.0.4",
-        "mkdirp": "0.5.1",
-        "postcss": "6.0.14",
-        "xxhashjs": "0.2.1"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-          "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "3.2.0",
-            "escape-string-regexp": "1.0.5",
-            "supports-color": "4.5.0"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-value-parser": {
-      "version": "3.3.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.0.tgz",
-      "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
-      "dev": true
-    },
-    "postcss-zindex": {
-      "version": "2.2.0",
-      "resolved": "http://registry.npm.taobao.org/postcss-zindex/download/postcss-zindex-2.2.0.tgz",
-      "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
-      "dev": true,
-      "requires": {
-        "has": "1.0.1",
-        "postcss": "5.2.18",
-        "uniqs": "2.0.0"
-      }
-    },
-    "prelude-ls": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz",
-      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
-      "dev": true
-    },
-    "prepend-http": {
-      "version": "1.0.4",
-      "resolved": "http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz",
-      "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
-      "dev": true
-    },
-    "preserve": {
-      "version": "0.2.0",
-      "resolved": "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz",
-      "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
-      "dev": true
-    },
-    "pretty-error": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz",
-      "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
-      "dev": true,
-      "requires": {
-        "renderkid": "2.0.1",
-        "utila": "0.4.0"
-      }
-    },
-    "pretty-format": {
-      "version": "21.2.1",
-      "resolved": "http://registry.npm.taobao.org/pretty-format/download/pretty-format-21.2.1.tgz",
-      "integrity": "sha1-rlQH888hBmzQEaobpfzntqLt2zY=",
-      "dev": true,
-      "requires": {
-        "ansi-regex": "3.0.0",
-        "ansi-styles": "3.2.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        }
-      }
-    },
-    "process": {
-      "version": "0.11.10",
-      "resolved": "http://registry.npm.taobao.org/process/download/process-0.11.10.tgz",
-      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
-      "dev": true
-    },
-    "process-nextick-args": {
-      "version": "1.0.7",
-      "resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz",
-      "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
-      "dev": true
-    },
-    "promise": {
-      "version": "7.3.1",
-      "resolved": "http://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz",
-      "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "asap": "2.0.6"
-      }
-    },
-    "promise-inflight": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz",
-      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
-      "dev": true
-    },
-    "protractor": {
-      "version": "5.1.2",
-      "resolved": "http://registry.npm.taobao.org/protractor/download/protractor-5.1.2.tgz",
-      "integrity": "sha1-myIXQXCaTGLVzVPGqt1UpxE36V8=",
-      "dev": true,
-      "requires": {
-        "@types/node": "6.0.94",
-        "@types/q": "0.0.32",
-        "@types/selenium-webdriver": "2.53.43",
-        "blocking-proxy": "0.0.5",
-        "chalk": "1.1.3",
-        "glob": "7.1.2",
-        "jasmine": "2.8.0",
-        "jasminewd2": "2.2.0",
-        "optimist": "0.6.1",
-        "q": "1.4.1",
-        "saucelabs": "1.3.0",
-        "selenium-webdriver": "3.0.1",
-        "source-map-support": "0.4.18",
-        "webdriver-js-extender": "1.0.0",
-        "webdriver-manager": "12.0.6"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          }
-        },
-        "del": {
-          "version": "2.2.2",
-          "resolved": "http://registry.npm.taobao.org/del/download/del-2.2.2.tgz",
-          "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
-          "dev": true,
-          "requires": {
-            "globby": "5.0.0",
-            "is-path-cwd": "1.0.0",
-            "is-path-in-cwd": "1.0.0",
-            "object-assign": "4.1.1",
-            "pify": "2.3.0",
-            "pinkie-promise": "2.0.1",
-            "rimraf": "2.6.2"
-          }
-        },
-        "globby": {
-          "version": "5.0.0",
-          "resolved": "http://registry.npm.taobao.org/globby/download/globby-5.0.0.tgz",
-          "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
-          "dev": true,
-          "requires": {
-            "array-union": "1.0.2",
-            "arrify": "1.0.1",
-            "glob": "7.1.2",
-            "object-assign": "4.1.1",
-            "pify": "2.3.0",
-            "pinkie-promise": "2.0.1"
-          }
-        },
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        },
-        "q": {
-          "version": "1.4.1",
-          "resolved": "http://registry.npm.taobao.org/q/download/q-1.4.1.tgz",
-          "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        },
-        "webdriver-manager": {
-          "version": "12.0.6",
-          "resolved": "http://registry.npm.taobao.org/webdriver-manager/download/webdriver-manager-12.0.6.tgz",
-          "integrity": "sha1-PfGkgZdwELTL+MnYXHpXeCjA5ws=",
-          "dev": true,
-          "requires": {
-            "adm-zip": "0.4.7",
-            "chalk": "1.1.3",
-            "del": "2.2.2",
-            "glob": "7.1.2",
-            "ini": "1.3.5",
-            "minimist": "1.2.0",
-            "q": "1.4.1",
-            "request": "2.81.0",
-            "rimraf": "2.6.2",
-            "semver": "5.4.1",
-            "xml2js": "0.4.19"
-          }
-        }
-      }
-    },
-    "proxy-addr": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.2.tgz",
-      "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=",
-      "dev": true,
-      "requires": {
-        "forwarded": "0.1.2",
-        "ipaddr.js": "1.5.2"
-      }
-    },
-    "prr": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz",
-      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
-      "dev": true
-    },
-    "ps-tree": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/ps-tree/download/ps-tree-1.1.0.tgz",
-      "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=",
-      "dev": true,
-      "requires": {
-        "event-stream": "3.3.4"
-      }
-    },
-    "pseudomap": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz",
-      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
-      "dev": true
-    },
-    "public-encrypt": {
-      "version": "4.0.0",
-      "resolved": "http://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.0.tgz",
-      "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
-      "dev": true,
-      "requires": {
-        "bn.js": "4.11.8",
-        "browserify-rsa": "4.0.1",
-        "create-hash": "1.1.3",
-        "parse-asn1": "5.1.0",
-        "randombytes": "2.0.5"
-      }
-    },
-    "pump": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/pump/download/pump-1.0.3.tgz",
-      "integrity": "sha1-Xf6DEcM7v2/BgmH580cCxHwIqVQ=",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "1.4.0",
-        "once": "1.4.0"
-      }
-    },
-    "pumpify": {
-      "version": "1.3.5",
-      "resolved": "http://registry.npm.taobao.org/pumpify/download/pumpify-1.3.5.tgz",
-      "integrity": "sha1-G2ccYZlAq8rqwK0OOjwWS+dgmTs=",
-      "dev": true,
-      "requires": {
-        "duplexify": "3.5.1",
-        "inherits": "2.0.3",
-        "pump": "1.0.3"
-      }
-    },
-    "punycode": {
-      "version": "1.4.1",
-      "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz",
-      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
-      "dev": true
-    },
-    "q": {
-      "version": "1.5.1",
-      "resolved": "http://registry.npm.taobao.org/q/download/q-1.5.1.tgz",
-      "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
-      "dev": true
-    },
-    "qjobs": {
-      "version": "1.1.5",
-      "resolved": "http://registry.npm.taobao.org/qjobs/download/qjobs-1.1.5.tgz",
-      "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=",
-      "dev": true
-    },
-    "qs": {
-      "version": "6.4.0",
-      "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.4.0.tgz",
-      "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
-      "dev": true
-    },
-    "query-string": {
-      "version": "4.3.4",
-      "resolved": "http://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz",
-      "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
-      "dev": true,
-      "requires": {
-        "object-assign": "4.1.1",
-        "strict-uri-encode": "1.1.0"
-      }
-    },
-    "querystring": {
-      "version": "0.2.0",
-      "resolved": "http://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz",
-      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
-      "dev": true
-    },
-    "querystring-es3": {
-      "version": "0.2.1",
-      "resolved": "http://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz",
-      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
-      "dev": true
-    },
-    "querystringify": {
-      "version": "0.0.4",
-      "resolved": "http://registry.npm.taobao.org/querystringify/download/querystringify-0.0.4.tgz",
-      "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=",
-      "dev": true
-    },
-    "randomatic": {
-      "version": "1.1.7",
-      "resolved": "http://registry.npm.taobao.org/randomatic/download/randomatic-1.1.7.tgz",
-      "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=",
-      "dev": true,
-      "requires": {
-        "is-number": "3.0.0",
-        "kind-of": "4.0.0"
-      },
-      "dependencies": {
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "3.2.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "1.1.6"
-              }
-            }
-          }
-        },
-        "kind-of": {
-          "version": "4.0.0",
-          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz",
-          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "1.1.6"
-          }
-        }
-      }
-    },
-    "randombytes": {
-      "version": "2.0.5",
-      "resolved": "http://registry.npm.taobao.org/randombytes/download/randombytes-2.0.5.tgz",
-      "integrity": "sha1-3ACaJGuNCaF3tLegrne8Vw9LG3k=",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "5.1.1"
-      }
-    },
-    "randomfill": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/randomfill/download/randomfill-1.0.3.tgz",
-      "integrity": "sha1-uWt99YfwHdkXJsQY8wVTsUGOPWI=",
-      "dev": true,
-      "requires": {
-        "randombytes": "2.0.5",
-        "safe-buffer": "5.1.1"
-      }
-    },
-    "range-parser": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz",
-      "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
-      "dev": true
-    },
-    "raw-body": {
-      "version": "2.3.2",
-      "resolved": "http://registry.npm.taobao.org/raw-body/download/raw-body-2.3.2.tgz",
-      "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
-      "dev": true,
-      "requires": {
-        "bytes": "3.0.0",
-        "http-errors": "1.6.2",
-        "iconv-lite": "0.4.19",
-        "unpipe": "1.0.0"
-      }
-    },
-    "raw-loader": {
-      "version": "0.5.1",
-      "resolved": "http://registry.npm.taobao.org/raw-loader/download/raw-loader-0.5.1.tgz",
-      "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=",
-      "dev": true
-    },
-    "read-pkg": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz",
-      "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
-      "dev": true,
-      "requires": {
-        "load-json-file": "1.1.0",
-        "normalize-package-data": "2.4.0",
-        "path-type": "1.1.0"
-      },
-      "dependencies": {
-        "path-type": {
-          "version": "1.1.0",
-          "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz",
-          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "4.1.11",
-            "pify": "2.3.0",
-            "pinkie-promise": "2.0.1"
-          }
-        },
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        }
-      }
-    },
-    "read-pkg-up": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz",
-      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
-      "dev": true,
-      "requires": {
-        "find-up": "1.1.2",
-        "read-pkg": "1.1.0"
-      },
-      "dependencies": {
-        "find-up": {
-          "version": "1.1.2",
-          "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz",
-          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
-          "dev": true,
-          "requires": {
-            "path-exists": "2.1.0",
-            "pinkie-promise": "2.0.1"
-          }
-        },
-        "path-exists": {
-          "version": "2.1.0",
-          "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz",
-          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
-          "dev": true,
-          "requires": {
-            "pinkie-promise": "2.0.1"
-          }
-        }
-      }
-    },
-    "readable-stream": {
-      "version": "2.3.3",
-      "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.3.tgz",
-      "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
-      "dev": true,
-      "requires": {
-        "core-util-is": "1.0.2",
-        "inherits": "2.0.3",
-        "isarray": "1.0.0",
-        "process-nextick-args": "1.0.7",
-        "safe-buffer": "5.1.1",
-        "string_decoder": "1.0.3",
-        "util-deprecate": "1.0.2"
-      }
-    },
-    "readdirp": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/readdirp/download/readdirp-2.1.0.tgz",
-      "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "4.1.11",
-        "minimatch": "3.0.4",
-        "readable-stream": "2.3.3",
-        "set-immediate-shim": "1.0.1"
-      }
-    },
-    "redent": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz",
-      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
-      "dev": true,
-      "requires": {
-        "indent-string": "2.1.0",
-        "strip-indent": "1.0.1"
-      }
-    },
-    "reduce-css-calc": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/reduce-css-calc/download/reduce-css-calc-1.3.0.tgz",
-      "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
-      "dev": true,
-      "requires": {
-        "balanced-match": "0.4.2",
-        "math-expression-evaluator": "1.2.17",
-        "reduce-function-call": "1.0.2"
-      },
-      "dependencies": {
-        "balanced-match": {
-          "version": "0.4.2",
-          "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz",
-          "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
-          "dev": true
-        }
-      }
-    },
-    "reduce-function-call": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/reduce-function-call/download/reduce-function-call-1.0.2.tgz",
-      "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
-      "dev": true,
-      "requires": {
-        "balanced-match": "0.4.2"
-      },
-      "dependencies": {
-        "balanced-match": {
-          "version": "0.4.2",
-          "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz",
-          "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
-          "dev": true
-        }
-      }
-    },
-    "reflect-metadata": {
-      "version": "0.1.10",
-      "resolved": "http://registry.npm.taobao.org/reflect-metadata/download/reflect-metadata-0.1.10.tgz",
-      "integrity": "sha1-tPg3BEFqytiZiMmxVjXUfgO5NEo=",
-      "dev": true
-    },
-    "regenerate": {
-      "version": "1.3.3",
-      "resolved": "http://registry.npm.taobao.org/regenerate/download/regenerate-1.3.3.tgz",
-      "integrity": "sha1-DDNtOYBVPXVcObWGrjsgqknIK38=",
-      "dev": true
-    },
-    "regenerator-runtime": {
-      "version": "0.11.1",
-      "resolved": "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz",
-      "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=",
-      "dev": true
-    },
-    "regex-cache": {
-      "version": "0.4.4",
-      "resolved": "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz",
-      "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=",
-      "dev": true,
-      "requires": {
-        "is-equal-shallow": "0.1.3"
-      }
-    },
-    "regexpu-core": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-1.0.0.tgz",
-      "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
-      "dev": true,
-      "requires": {
-        "regenerate": "1.3.3",
-        "regjsgen": "0.2.0",
-        "regjsparser": "0.1.5"
-      }
-    },
-    "regjsgen": {
-      "version": "0.2.0",
-      "resolved": "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz",
-      "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
-      "dev": true
-    },
-    "regjsparser": {
-      "version": "0.1.5",
-      "resolved": "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz",
-      "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
-      "dev": true,
-      "requires": {
-        "jsesc": "0.5.0"
-      }
-    },
-    "regression": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/regression/download/regression-2.0.1.tgz",
-      "integrity": "sha1-jSnD6CJKEIUMNeM36FqLL6w7DIc="
-    },
-    "relateurl": {
-      "version": "0.2.7",
-      "resolved": "http://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz",
-      "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
-      "dev": true
-    },
-    "remap-istanbul": {
-      "version": "0.9.5",
-      "resolved": "http://registry.npm.taobao.org/remap-istanbul/download/remap-istanbul-0.9.5.tgz",
-      "integrity": "sha1-oYYXsfMe7Fp9vud1OCmLd1YGqqg=",
-      "dev": true,
-      "requires": {
-        "amdefine": "1.0.1",
-        "gulp-util": "3.0.7",
-        "istanbul": "0.4.5",
-        "minimatch": "3.0.4",
-        "source-map": "0.5.7",
-        "through2": "2.0.1"
-      },
-      "dependencies": {
-        "readable-stream": {
-          "version": "2.0.6",
-          "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.0.6.tgz",
-          "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
-          "dev": true,
-          "requires": {
-            "core-util-is": "1.0.2",
-            "inherits": "2.0.3",
-            "isarray": "1.0.0",
-            "process-nextick-args": "1.0.7",
-            "string_decoder": "0.10.31",
-            "util-deprecate": "1.0.2"
-          }
-        },
-        "string_decoder": {
-          "version": "0.10.31",
-          "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz",
-          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
-          "dev": true
-        },
-        "through2": {
-          "version": "2.0.1",
-          "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.1.tgz",
-          "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=",
-          "dev": true,
-          "requires": {
-            "readable-stream": "2.0.6",
-            "xtend": "4.0.1"
-          }
-        }
-      }
-    },
-    "remark": {
-      "version": "8.0.0",
-      "resolved": "http://registry.npm.taobao.org/remark/download/remark-8.0.0.tgz",
-      "integrity": "sha1-KHtt8v4RkOJjwdFeSG0/qDVZTW0=",
-      "dev": true,
-      "requires": {
-        "remark-parse": "4.0.0",
-        "remark-stringify": "4.0.0",
-        "unified": "6.1.6"
-      }
-    },
-    "remark-parse": {
-      "version": "4.0.0",
-      "resolved": "http://registry.npm.taobao.org/remark-parse/download/remark-parse-4.0.0.tgz",
-      "integrity": "sha1-mfHwSa+sgDgjZuLg0L1VQp3UXYs=",
-      "dev": true,
-      "requires": {
-        "collapse-white-space": "1.0.3",
-        "is-alphabetical": "1.0.1",
-        "is-decimal": "1.0.1",
-        "is-whitespace-character": "1.0.1",
-        "is-word-character": "1.0.1",
-        "markdown-escapes": "1.0.1",
-        "parse-entities": "1.1.1",
-        "repeat-string": "1.6.1",
-        "state-toggle": "1.0.0",
-        "trim": "0.0.1",
-        "trim-trailing-lines": "1.1.0",
-        "unherit": "1.1.0",
-        "unist-util-remove-position": "1.1.1",
-        "vfile-location": "2.0.2",
-        "xtend": "4.0.1"
-      }
-    },
-    "remark-stringify": {
-      "version": "4.0.0",
-      "resolved": "http://registry.npm.taobao.org/remark-stringify/download/remark-stringify-4.0.0.tgz",
-      "integrity": "sha1-RDGITAQY8RLaRJkbTjVs/jf6zYc=",
-      "dev": true,
-      "requires": {
-        "ccount": "1.0.2",
-        "is-alphanumeric": "1.0.0",
-        "is-decimal": "1.0.1",
-        "is-whitespace-character": "1.0.1",
-        "longest-streak": "2.0.2",
-        "markdown-escapes": "1.0.1",
-        "markdown-table": "1.1.1",
-        "mdast-util-compact": "1.0.1",
-        "parse-entities": "1.1.1",
-        "repeat-string": "1.6.1",
-        "state-toggle": "1.0.0",
-        "stringify-entities": "1.3.1",
-        "unherit": "1.1.0",
-        "xtend": "4.0.1"
-      }
-    },
-    "remove-trailing-separator": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz",
-      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
-      "dev": true
-    },
-    "renderkid": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/renderkid/download/renderkid-2.0.1.tgz",
-      "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=",
-      "dev": true,
-      "requires": {
-        "css-select": "1.2.0",
-        "dom-converter": "0.1.4",
-        "htmlparser2": "3.3.0",
-        "strip-ansi": "3.0.1",
-        "utila": "0.3.3"
-      },
-      "dependencies": {
-        "utila": {
-          "version": "0.3.3",
-          "resolved": "http://registry.npm.taobao.org/utila/download/utila-0.3.3.tgz",
-          "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=",
-          "dev": true
-        }
-      }
-    },
-    "repeat-element": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz",
-      "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
-      "dev": true
-    },
-    "repeat-string": {
-      "version": "1.6.1",
-      "resolved": "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz",
-      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
-      "dev": true
-    },
-    "repeating": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz",
-      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
-      "dev": true,
-      "requires": {
-        "is-finite": "1.0.2"
-      }
-    },
-    "replace-ext": {
-      "version": "0.0.1",
-      "resolved": "http://registry.npm.taobao.org/replace-ext/download/replace-ext-0.0.1.tgz",
-      "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
-      "dev": true
-    },
-    "request": {
-      "version": "2.81.0",
-      "resolved": "http://registry.npm.taobao.org/request/download/request-2.81.0.tgz",
-      "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
-      "dev": true,
-      "requires": {
-        "aws-sign2": "0.6.0",
-        "aws4": "1.6.0",
-        "caseless": "0.12.0",
-        "combined-stream": "1.0.5",
-        "extend": "3.0.1",
-        "forever-agent": "0.6.1",
-        "form-data": "2.1.4",
-        "har-validator": "4.2.1",
-        "hawk": "3.1.3",
-        "http-signature": "1.1.1",
-        "is-typedarray": "1.0.0",
-        "isstream": "0.1.2",
-        "json-stringify-safe": "5.0.1",
-        "mime-types": "2.1.17",
-        "oauth-sign": "0.8.2",
-        "performance-now": "0.2.0",
-        "qs": "6.4.0",
-        "safe-buffer": "5.1.1",
-        "stringstream": "0.0.5",
-        "tough-cookie": "2.3.3",
-        "tunnel-agent": "0.6.0",
-        "uuid": "3.1.0"
-      }
-    },
-    "require-directory": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz",
-      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
-      "dev": true
-    },
-    "require-from-string": {
-      "version": "1.2.1",
-      "resolved": "http://registry.npm.taobao.org/require-from-string/download/require-from-string-1.2.1.tgz",
-      "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=",
-      "dev": true
-    },
-    "require-main-filename": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz",
-      "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
-      "dev": true
-    },
-    "requires-port": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz",
-      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
-      "dev": true
-    },
-    "resolve": {
-      "version": "1.5.0",
-      "resolved": "http://registry.npm.taobao.org/resolve/download/resolve-1.5.0.tgz",
-      "integrity": "sha1-HwmsznlsmnYlefMbLBzEw83fnzY=",
-      "dev": true,
-      "requires": {
-        "path-parse": "1.0.5"
-      }
-    },
-    "resolve-cwd": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz",
-      "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
-      "dev": true,
-      "requires": {
-        "resolve-from": "3.0.0"
-      }
-    },
-    "resolve-from": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz",
-      "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
-      "dev": true
-    },
-    "restore-cursor": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz",
-      "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
-      "dev": true,
-      "requires": {
-        "exit-hook": "1.1.1",
-        "onetime": "1.1.0"
-      }
-    },
-    "right-align": {
-      "version": "0.1.3",
-      "resolved": "http://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz",
-      "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
-      "dev": true,
-      "requires": {
-        "align-text": "0.1.4"
-      }
-    },
-    "rimraf": {
-      "version": "2.6.2",
-      "resolved": "http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.2.tgz",
-      "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=",
-      "dev": true,
-      "requires": {
-        "glob": "7.1.2"
-      }
-    },
-    "ripemd160": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.1.tgz",
-      "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
-      "dev": true,
-      "requires": {
-        "hash-base": "2.0.2",
-        "inherits": "2.0.3"
-      }
-    },
-    "run-queue": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz",
-      "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
-      "dev": true,
-      "requires": {
-        "aproba": "1.2.0"
-      }
-    },
-    "rw": {
-      "version": "1.3.3",
-      "resolved": "http://registry.npm.taobao.org/rw/download/rw-1.3.3.tgz",
-      "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q="
-    },
-    "rxjs": {
-      "version": "5.5.5",
-      "resolved": "http://registry.npm.taobao.org/rxjs/download/rxjs-5.5.5.tgz",
-      "integrity": "sha1-4WTxHTjq8p9W8Iw0R/dP8C3YTpc=",
-      "requires": {
-        "symbol-observable": "1.0.1"
-      }
-    },
-    "safe-buffer": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz",
-      "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=",
-      "dev": true
-    },
-    "sass-graph": {
-      "version": "2.2.4",
-      "resolved": "http://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.4.tgz",
-      "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "glob": "7.1.2",
-        "lodash": "4.17.4",
-        "scss-tokenizer": "0.2.3",
-        "yargs": "7.1.0"
-      }
-    },
-    "sass-loader": {
-      "version": "6.0.6",
-      "resolved": "http://registry.npm.taobao.org/sass-loader/download/sass-loader-6.0.6.tgz",
-      "integrity": "sha1-6dXmwfFV+qMqSybXqbcQfCJeQPk=",
-      "dev": true,
-      "requires": {
-        "async": "2.6.0",
-        "clone-deep": "0.3.0",
-        "loader-utils": "1.1.0",
-        "lodash.tail": "4.1.1",
-        "pify": "3.0.0"
-      }
-    },
-    "sauce-connect-launcher": {
-      "version": "1.2.3",
-      "resolved": "http://registry.npm.taobao.org/sauce-connect-launcher/download/sauce-connect-launcher-1.2.3.tgz",
-      "integrity": "sha1-0vkxrXro/avxlopEDnsgQXrKf4Y=",
-      "dev": true,
-      "requires": {
-        "adm-zip": "0.4.7",
-        "async": "2.6.0",
-        "https-proxy-agent": "1.0.0",
-        "lodash": "4.17.4",
-        "rimraf": "2.6.2"
-      }
-    },
-    "saucelabs": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/saucelabs/download/saucelabs-1.3.0.tgz",
-      "integrity": "sha1-0kDoAJ33+ocwbsRXimm6O1xCT+4=",
-      "dev": true,
-      "requires": {
-        "https-proxy-agent": "1.0.0"
-      }
-    },
-    "sax": {
-      "version": "1.2.4",
-      "resolved": "http://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz",
-      "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=",
-      "dev": true
-    },
-    "schema-utils": {
-      "version": "0.3.0",
-      "resolved": "http://registry.npm.taobao.org/schema-utils/download/schema-utils-0.3.0.tgz",
-      "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
-      "dev": true,
-      "requires": {
-        "ajv": "5.5.1"
-      }
-    },
-    "screenfull": {
-      "version": "3.3.2",
-      "resolved": "http://registry.npm.taobao.org/screenfull/download/screenfull-3.3.2.tgz",
-      "integrity": "sha1-pq3zs/VVbagSclOFiAYA9bOfvyU="
-    },
-    "scss-tokenizer": {
-      "version": "0.2.3",
-      "resolved": "http://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz",
-      "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "js-base64": "2.4.0",
-        "source-map": "0.4.4"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.4.4",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz",
-          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "amdefine": "1.0.1"
-          }
-        }
-      }
-    },
-    "select-hose": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz",
-      "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
-      "dev": true
-    },
-    "selenium-webdriver": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/selenium-webdriver/download/selenium-webdriver-3.0.1.tgz",
-      "integrity": "sha1-ot6l2kqX9mcuiefKcnbO+jZRR6c=",
-      "dev": true,
-      "requires": {
-        "adm-zip": "0.4.7",
-        "rimraf": "2.6.2",
-        "tmp": "0.0.30",
-        "xml2js": "0.4.19"
-      },
-      "dependencies": {
-        "tmp": {
-          "version": "0.0.30",
-          "resolved": "http://registry.npm.taobao.org/tmp/download/tmp-0.0.30.tgz",
-          "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=",
-          "dev": true,
-          "requires": {
-            "os-tmpdir": "1.0.2"
-          }
-        }
-      }
-    },
-    "selfsigned": {
-      "version": "1.10.1",
-      "resolved": "http://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.1.tgz",
-      "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=",
-      "dev": true,
-      "requires": {
-        "node-forge": "0.6.33"
-      }
-    },
-    "semver": {
-      "version": "5.4.1",
-      "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.4.1.tgz",
-      "integrity": "sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4=",
-      "dev": true
-    },
-    "semver-dsl": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/semver-dsl/download/semver-dsl-1.0.1.tgz",
-      "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=",
-      "dev": true,
-      "requires": {
-        "semver": "5.4.1"
-      }
-    },
-    "send": {
-      "version": "0.16.1",
-      "resolved": "http://registry.npm.taobao.org/send/download/send-0.16.1.tgz",
-      "integrity": "sha1-pw4coh0TgsEdDZ9iMd6ygQgNerM=",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "depd": "1.1.1",
-        "destroy": "1.0.4",
-        "encodeurl": "1.0.1",
-        "escape-html": "1.0.3",
-        "etag": "1.8.1",
-        "fresh": "0.5.2",
-        "http-errors": "1.6.2",
-        "mime": "1.4.1",
-        "ms": "2.0.0",
-        "on-finished": "2.3.0",
-        "range-parser": "1.2.0",
-        "statuses": "1.3.1"
-      },
-      "dependencies": {
-        "mime": {
-          "version": "1.4.1",
-          "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.4.1.tgz",
-          "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY=",
-          "dev": true
-        }
-      }
-    },
-    "serialize-javascript": {
-      "version": "1.4.0",
-      "resolved": "http://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.4.0.tgz",
-      "integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=",
-      "dev": true
-    },
-    "serve-index": {
-      "version": "1.9.1",
-      "resolved": "http://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz",
-      "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
-      "dev": true,
-      "requires": {
-        "accepts": "1.3.4",
-        "batch": "0.6.1",
-        "debug": "2.6.9",
-        "escape-html": "1.0.3",
-        "http-errors": "1.6.2",
-        "mime-types": "2.1.17",
-        "parseurl": "1.3.2"
-      }
-    },
-    "serve-static": {
-      "version": "1.13.1",
-      "resolved": "http://registry.npm.taobao.org/serve-static/download/serve-static-1.13.1.tgz",
-      "integrity": "sha1-TFfVNASnYdjy58HooYpH2/J4pxk=",
-      "dev": true,
-      "requires": {
-        "encodeurl": "1.0.1",
-        "escape-html": "1.0.3",
-        "parseurl": "1.3.2",
-        "send": "0.16.1"
-      }
-    },
-    "set-blocking": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz",
-      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
-      "dev": true
-    },
-    "set-immediate-shim": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz",
-      "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
-      "dev": true
-    },
-    "setimmediate": {
-      "version": "1.0.5",
-      "resolved": "http://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz",
-      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
-      "dev": true
-    },
-    "setprototypeof": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz",
-      "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=",
-      "dev": true
-    },
-    "sha.js": {
-      "version": "2.4.9",
-      "resolved": "http://registry.npm.taobao.org/sha.js/download/sha.js-2.4.9.tgz",
-      "integrity": "sha1-mPZIgEdLdPSji42p08Dy0QRjPn0=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3",
-        "safe-buffer": "5.1.1"
-      }
-    },
-    "shallow-clone": {
-      "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/shallow-clone/download/shallow-clone-0.1.2.tgz",
-      "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=",
-      "dev": true,
-      "requires": {
-        "is-extendable": "0.1.1",
-        "kind-of": "2.0.1",
-        "lazy-cache": "0.2.7",
-        "mixin-object": "2.0.1"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "2.0.1",
-          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-2.0.1.tgz",
-          "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "1.1.6"
-          }
-        }
-      }
-    },
-    "shebang-command": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz",
-      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
-      "dev": true,
-      "requires": {
-        "shebang-regex": "1.0.0"
-      }
-    },
-    "shebang-regex": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz",
-      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
-      "dev": true
-    },
-    "shell-quote": {
-      "version": "1.6.1",
-      "resolved": "http://registry.npm.taobao.org/shell-quote/download/shell-quote-1.6.1.tgz",
-      "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
-      "dev": true,
-      "requires": {
-        "array-filter": "0.0.1",
-        "array-map": "0.0.0",
-        "array-reduce": "0.0.0",
-        "jsonify": "0.0.0"
-      }
-    },
-    "signal-exit": {
-      "version": "3.0.2",
-      "resolved": "http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz",
-      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
-      "dev": true
-    },
-    "silent-error": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/silent-error/download/silent-error-1.1.0.tgz",
-      "integrity": "sha1-IglwbxyFCp8dENDYQJGLRvJuG8k=",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9"
-      }
-    },
-    "simple-line-icons": {
-      "version": "2.4.1",
-      "resolved": "http://registry.npm.taobao.org/simple-line-icons/download/simple-line-icons-2.4.1.tgz",
-      "integrity": "sha1-t1vFoNh+UwkowszaVzUnS7JW8jQ="
-    },
-    "simple-statistics": {
-      "version": "4.1.1",
-      "resolved": "http://registry.npm.taobao.org/simple-statistics/download/simple-statistics-4.1.1.tgz",
-      "integrity": "sha1-UzxI1IM2uj01DYE18g+nE4rLDH0="
-    },
-    "slash": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz",
-      "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
-      "dev": true
-    },
-    "slice-ansi": {
-      "version": "0.0.4",
-      "resolved": "http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz",
-      "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
-      "dev": true
-    },
-    "sntp": {
-      "version": "1.0.9",
-      "resolved": "http://registry.npm.taobao.org/sntp/download/sntp-1.0.9.tgz",
-      "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
-      "dev": true,
-      "requires": {
-        "hoek": "2.16.3"
-      }
-    },
-    "socket.io": {
-      "version": "1.7.3",
-      "resolved": "http://registry.npm.taobao.org/socket.io/download/socket.io-1.7.3.tgz",
-      "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=",
-      "dev": true,
-      "requires": {
-        "debug": "2.3.3",
-        "engine.io": "1.8.3",
-        "has-binary": "0.1.7",
-        "object-assign": "4.1.0",
-        "socket.io-adapter": "0.5.0",
-        "socket.io-client": "1.7.3",
-        "socket.io-parser": "2.3.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.3.3",
-          "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.3.3.tgz",
-          "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
-          "dev": true,
-          "requires": {
-            "ms": "0.7.2"
-          }
-        },
-        "ms": {
-          "version": "0.7.2",
-          "resolved": "http://registry.npm.taobao.org/ms/download/ms-0.7.2.tgz",
-          "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
-          "dev": true
-        },
-        "object-assign": {
-          "version": "4.1.0",
-          "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.0.tgz",
-          "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
-          "dev": true
-        }
-      }
-    },
-    "socket.io-adapter": {
-      "version": "0.5.0",
-      "resolved": "http://registry.npm.taobao.org/socket.io-adapter/download/socket.io-adapter-0.5.0.tgz",
-      "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=",
-      "dev": true,
-      "requires": {
-        "debug": "2.3.3",
-        "socket.io-parser": "2.3.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.3.3",
-          "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.3.3.tgz",
-          "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
-          "dev": true,
-          "requires": {
-            "ms": "0.7.2"
-          }
-        },
-        "ms": {
-          "version": "0.7.2",
-          "resolved": "http://registry.npm.taobao.org/ms/download/ms-0.7.2.tgz",
-          "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
-          "dev": true
-        }
-      }
-    },
-    "socket.io-client": {
-      "version": "1.7.3",
-      "resolved": "http://registry.npm.taobao.org/socket.io-client/download/socket.io-client-1.7.3.tgz",
-      "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=",
-      "dev": true,
-      "requires": {
-        "backo2": "1.0.2",
-        "component-bind": "1.0.0",
-        "component-emitter": "1.2.1",
-        "debug": "2.3.3",
-        "engine.io-client": "1.8.3",
-        "has-binary": "0.1.7",
-        "indexof": "0.0.1",
-        "object-component": "0.0.3",
-        "parseuri": "0.0.5",
-        "socket.io-parser": "2.3.1",
-        "to-array": "0.1.4"
-      },
-      "dependencies": {
-        "component-emitter": {
-          "version": "1.2.1",
-          "resolved": "http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz",
-          "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
-          "dev": true
-        },
-        "debug": {
-          "version": "2.3.3",
-          "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.3.3.tgz",
-          "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
-          "dev": true,
-          "requires": {
-            "ms": "0.7.2"
-          }
-        },
-        "ms": {
-          "version": "0.7.2",
-          "resolved": "http://registry.npm.taobao.org/ms/download/ms-0.7.2.tgz",
-          "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
-          "dev": true
-        }
-      }
-    },
-    "socket.io-parser": {
-      "version": "2.3.1",
-      "resolved": "http://registry.npm.taobao.org/socket.io-parser/download/socket.io-parser-2.3.1.tgz",
-      "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=",
-      "dev": true,
-      "requires": {
-        "component-emitter": "1.1.2",
-        "debug": "2.2.0",
-        "isarray": "0.0.1",
-        "json3": "3.3.2"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.2.0",
-          "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.2.0.tgz",
-          "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
-          "dev": true,
-          "requires": {
-            "ms": "0.7.1"
-          }
-        },
-        "isarray": {
-          "version": "0.0.1",
-          "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz",
-          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
-          "dev": true
-        },
-        "ms": {
-          "version": "0.7.1",
-          "resolved": "http://registry.npm.taobao.org/ms/download/ms-0.7.1.tgz",
-          "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
-          "dev": true
-        }
-      }
-    },
-    "sockjs": {
-      "version": "0.3.18",
-      "resolved": "http://registry.npm.taobao.org/sockjs/download/sockjs-0.3.18.tgz",
-      "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=",
-      "dev": true,
-      "requires": {
-        "faye-websocket": "0.10.0",
-        "uuid": "2.0.3"
-      },
-      "dependencies": {
-        "uuid": {
-          "version": "2.0.3",
-          "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-2.0.3.tgz",
-          "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
-          "dev": true
-        }
-      }
-    },
-    "sockjs-client": {
-      "version": "1.1.4",
-      "resolved": "http://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.1.4.tgz",
-      "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "eventsource": "0.1.6",
-        "faye-websocket": "0.11.1",
-        "inherits": "2.0.3",
-        "json3": "3.3.2",
-        "url-parse": "1.2.0"
-      },
-      "dependencies": {
-        "faye-websocket": {
-          "version": "0.11.1",
-          "resolved": "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.1.tgz",
-          "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
-          "dev": true,
-          "requires": {
-            "websocket-driver": "0.7.0"
-          }
-        }
-      }
-    },
-    "sort-keys": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz",
-      "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
-      "dev": true,
-      "requires": {
-        "is-plain-obj": "1.1.0"
-      }
-    },
-    "source-list-map": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.0.tgz",
-      "integrity": "sha1-qqR0A/eyRakvvJfqCPJQ1gh+0IU=",
-      "dev": true
-    },
-    "source-map": {
-      "version": "0.5.7",
-      "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
-      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-      "dev": true
-    },
-    "source-map-loader": {
-      "version": "0.2.3",
-      "resolved": "http://registry.npm.taobao.org/source-map-loader/download/source-map-loader-0.2.3.tgz",
-      "integrity": "sha1-1LDIzUfVTtzj5r+g9SP0UrWw5SE=",
-      "dev": true,
-      "requires": {
-        "async": "2.6.0",
-        "loader-utils": "0.2.17",
-        "source-map": "0.6.1"
-      },
-      "dependencies": {
-        "loader-utils": {
-          "version": "0.2.17",
-          "resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz",
-          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
-          "dev": true,
-          "requires": {
-            "big.js": "3.2.0",
-            "emojis-list": "2.1.0",
-            "json5": "0.5.1",
-            "object-assign": "4.1.1"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "source-map-support": {
-      "version": "0.4.18",
-      "resolved": "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz",
-      "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=",
-      "dev": true,
-      "requires": {
-        "source-map": "0.5.7"
-      }
-    },
-    "sparkles": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/sparkles/download/sparkles-1.0.0.tgz",
-      "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
-      "dev": true
-    },
-    "spdx-correct": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-1.0.2.tgz",
-      "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
-      "dev": true,
-      "requires": {
-        "spdx-license-ids": "1.2.2"
-      }
-    },
-    "spdx-expression-parse": {
-      "version": "1.0.4",
-      "resolved": "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-1.0.4.tgz",
-      "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
-      "dev": true
-    },
-    "spdx-license-ids": {
-      "version": "1.2.2",
-      "resolved": "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-1.2.2.tgz",
-      "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
-      "dev": true
-    },
-    "spdy": {
-      "version": "3.4.7",
-      "resolved": "http://registry.npm.taobao.org/spdy/download/spdy-3.4.7.tgz",
-      "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "handle-thing": "1.2.5",
-        "http-deceiver": "1.2.7",
-        "safe-buffer": "5.1.1",
-        "select-hose": "2.0.0",
-        "spdy-transport": "2.0.20"
-      }
-    },
-    "spdy-transport": {
-      "version": "2.0.20",
-      "resolved": "http://registry.npm.taobao.org/spdy-transport/download/spdy-transport-2.0.20.tgz",
-      "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "detect-node": "2.0.3",
-        "hpack.js": "2.1.6",
-        "obuf": "1.1.1",
-        "readable-stream": "2.3.3",
-        "safe-buffer": "5.1.1",
-        "wbuf": "1.7.2"
-      }
-    },
-    "specificity": {
-      "version": "0.3.2",
-      "resolved": "http://registry.npm.taobao.org/specificity/download/specificity-0.3.2.tgz",
-      "integrity": "sha1-meZRHs7vD42bV5JJN6rCyxPRPEI=",
-      "dev": true
-    },
-    "split": {
-      "version": "0.3.3",
-      "resolved": "http://registry.npm.taobao.org/split/download/split-0.3.3.tgz",
-      "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
-      "dev": true,
-      "requires": {
-        "through": "2.3.8"
-      }
-    },
-    "sprintf-js": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz",
-      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
-      "dev": true
-    },
-    "sshpk": {
-      "version": "1.13.1",
-      "resolved": "http://registry.npm.taobao.org/sshpk/download/sshpk-1.13.1.tgz",
-      "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
-      "dev": true,
-      "requires": {
-        "asn1": "0.2.3",
-        "assert-plus": "1.0.0",
-        "bcrypt-pbkdf": "1.0.1",
-        "dashdash": "1.14.1",
-        "ecc-jsbn": "0.1.1",
-        "getpass": "0.1.7",
-        "jsbn": "0.1.1",
-        "tweetnacl": "0.14.5"
-      },
-      "dependencies": {
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true
-        }
-      }
-    },
-    "ssri": {
-      "version": "5.0.0",
-      "resolved": "http://registry.npm.taobao.org/ssri/download/ssri-5.0.0.tgz",
-      "integrity": "sha1-E8GTkLYGyCHyoQ0Cs1HBcpuU2M8=",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "5.1.1"
-      }
-    },
-    "staged-git-files": {
-      "version": "0.0.4",
-      "resolved": "http://registry.npm.taobao.org/staged-git-files/download/staged-git-files-0.0.4.tgz",
-      "integrity": "sha1-15fhtVHKemOd7AI33G60u5vhfTU=",
-      "dev": true
-    },
-    "state-toggle": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/state-toggle/download/state-toggle-1.0.0.tgz",
-      "integrity": "sha1-0g+aYWu08MO5i5GSLSW2QKorxCU=",
-      "dev": true
-    },
-    "statuses": {
-      "version": "1.3.1",
-      "resolved": "http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz",
-      "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
-      "dev": true
-    },
-    "stdout-stream": {
-      "version": "1.4.0",
-      "resolved": "http://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.0.tgz",
-      "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "readable-stream": "2.3.3"
-      }
-    },
-    "stream-browserify": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.1.tgz",
-      "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3",
-        "readable-stream": "2.3.3"
-      }
-    },
-    "stream-combiner": {
-      "version": "0.0.4",
-      "resolved": "http://registry.npm.taobao.org/stream-combiner/download/stream-combiner-0.0.4.tgz",
-      "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
-      "dev": true,
-      "requires": {
-        "duplexer": "0.1.1"
-      }
-    },
-    "stream-each": {
-      "version": "1.2.2",
-      "resolved": "http://registry.npm.taobao.org/stream-each/download/stream-each-1.2.2.tgz",
-      "integrity": "sha1-joxGP5HaiZF3h2WHP+TZYNj2Fr0=",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "1.4.0",
-        "stream-shift": "1.0.0"
-      }
-    },
-    "stream-http": {
-      "version": "2.7.2",
-      "resolved": "http://registry.npm.taobao.org/stream-http/download/stream-http-2.7.2.tgz",
-      "integrity": "sha1-QKBQ7I3DtTsz2ZCUFcAsC/Gr+60=",
-      "dev": true,
-      "requires": {
-        "builtin-status-codes": "3.0.0",
-        "inherits": "2.0.3",
-        "readable-stream": "2.3.3",
-        "to-arraybuffer": "1.0.1",
-        "xtend": "4.0.1"
-      }
-    },
-    "stream-shift": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.0.tgz",
-      "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
-      "dev": true
-    },
-    "stream-to-observable": {
-      "version": "0.2.0",
-      "resolved": "http://registry.npm.taobao.org/stream-to-observable/download/stream-to-observable-0.2.0.tgz",
-      "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=",
-      "dev": true,
-      "requires": {
-        "any-observable": "0.2.0"
-      }
-    },
-    "strict-uri-encode": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz",
-      "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
-      "dev": true
-    },
-    "string-width": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz",
-      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-      "dev": true,
-      "requires": {
-        "code-point-at": "1.1.0",
-        "is-fullwidth-code-point": "1.0.0",
-        "strip-ansi": "3.0.1"
-      }
-    },
-    "string.prototype.padend": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/string.prototype.padend/download/string.prototype.padend-3.0.0.tgz",
-      "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=",
-      "dev": true,
-      "requires": {
-        "define-properties": "1.1.2",
-        "es-abstract": "1.10.0",
-        "function-bind": "1.1.1"
-      }
-    },
-    "string_decoder": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.0.3.tgz",
-      "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "5.1.1"
-      }
-    },
-    "stringify-entities": {
-      "version": "1.3.1",
-      "resolved": "http://registry.npm.taobao.org/stringify-entities/download/stringify-entities-1.3.1.tgz",
-      "integrity": "sha1-sVDsLXKsTBtfMktR+2soyc3/BYw=",
-      "dev": true,
-      "requires": {
-        "character-entities-html4": "1.1.1",
-        "character-entities-legacy": "1.1.1",
-        "is-alphanumerical": "1.0.1",
-        "is-hexadecimal": "1.0.1"
-      }
-    },
-    "stringify-object": {
-      "version": "3.2.1",
-      "resolved": "http://registry.npm.taobao.org/stringify-object/download/stringify-object-3.2.1.tgz",
-      "integrity": "sha1-JyDC7/lAhUyBn27iUqrrWB8wYk0=",
-      "dev": true,
-      "requires": {
-        "get-own-enumerable-property-symbols": "2.0.1",
-        "is-obj": "1.0.1",
-        "is-regexp": "1.0.0"
-      }
-    },
-    "stringstream": {
-      "version": "0.0.5",
-      "resolved": "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz",
-      "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
-      "dev": true
-    },
-    "strip-ansi": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz",
-      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-      "dev": true,
-      "requires": {
-        "ansi-regex": "2.1.1"
-      }
-    },
-    "strip-bom": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz",
-      "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
-      "dev": true,
-      "requires": {
-        "is-utf8": "0.2.1"
-      }
-    },
-    "strip-eof": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz",
-      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
-      "dev": true
-    },
-    "strip-indent": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz",
-      "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
-      "dev": true,
-      "requires": {
-        "get-stdin": "4.0.1"
-      }
-    },
-    "strip-json-comments": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz",
-      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
-      "dev": true
-    },
-    "style-loader": {
-      "version": "0.13.2",
-      "resolved": "http://registry.npm.taobao.org/style-loader/download/style-loader-0.13.2.tgz",
-      "integrity": "sha1-dFMzhM9pjHEEx5URULSXF63C87s=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "1.1.0"
-      }
-    },
-    "style-search": {
-      "version": "0.1.0",
-      "resolved": "http://registry.npm.taobao.org/style-search/download/style-search-0.1.0.tgz",
-      "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=",
-      "dev": true
-    },
-    "stylelint": {
-      "version": "8.3.1",
-      "resolved": "http://registry.npm.taobao.org/stylelint/download/stylelint-8.3.1.tgz",
-      "integrity": "sha1-QkyCLzLIjoUCW1XXLHuYNV4/pt4=",
-      "dev": true,
-      "requires": {
-        "autoprefixer": "7.2.3",
-        "balanced-match": "1.0.0",
-        "chalk": "2.2.2",
-        "cosmiconfig": "3.1.0",
-        "debug": "3.1.0",
-        "execall": "1.0.0",
-        "file-entry-cache": "2.0.0",
-        "get-stdin": "5.0.1",
-        "globby": "7.1.1",
-        "globjoin": "0.1.4",
-        "html-tags": "2.0.0",
-        "ignore": "3.3.7",
-        "imurmurhash": "0.1.4",
-        "known-css-properties": "0.4.1",
-        "lodash": "4.17.4",
-        "log-symbols": "2.1.0",
-        "mathml-tag-names": "2.0.1",
-        "meow": "3.7.0",
-        "micromatch": "2.3.11",
-        "normalize-selector": "0.2.0",
-        "pify": "3.0.0",
-        "postcss": "6.0.14",
-        "postcss-html": "0.11.0",
-        "postcss-less": "1.1.3",
-        "postcss-media-query-parser": "0.2.3",
-        "postcss-reporter": "5.0.0",
-        "postcss-resolve-nested-selector": "0.1.1",
-        "postcss-safe-parser": "3.0.1",
-        "postcss-scss": "1.0.2",
-        "postcss-selector-parser": "3.1.1",
-        "postcss-value-parser": "3.3.0",
-        "resolve-from": "4.0.0",
-        "specificity": "0.3.2",
-        "string-width": "2.1.1",
-        "style-search": "0.1.0",
-        "sugarss": "1.0.1",
-        "svg-tags": "1.0.0",
-        "table": "4.0.2"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "autoprefixer": {
-          "version": "7.2.3",
-          "resolved": "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-7.2.3.tgz",
-          "integrity": "sha1-woQeOLeUDC0Km7/9csdfM2N4VPg=",
-          "dev": true,
-          "requires": {
-            "browserslist": "2.10.0",
-            "caniuse-lite": "1.0.30000783",
-            "normalize-range": "0.1.2",
-            "num2fraction": "1.2.2",
-            "postcss": "6.0.14",
-            "postcss-value-parser": "3.3.0"
-          }
-        },
-        "browserslist": {
-          "version": "2.10.0",
-          "resolved": "http://registry.npm.taobao.org/browserslist/download/browserslist-2.10.0.tgz",
-          "integrity": "sha1-usXuHMacqdlkA/+4o6vcW2rtY0Y=",
-          "dev": true,
-          "requires": {
-            "caniuse-lite": "1.0.30000783",
-            "electron-to-chromium": "1.3.28"
-          }
-        },
-        "cosmiconfig": {
-          "version": "3.1.0",
-          "resolved": "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-3.1.0.tgz",
-          "integrity": "sha1-ZAqUv5hH8yGABAPNJzr2BmXHM5c=",
-          "dev": true,
-          "requires": {
-            "is-directory": "0.3.1",
-            "js-yaml": "3.10.0",
-            "parse-json": "3.0.0",
-            "require-from-string": "2.0.1"
-          }
-        },
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
-          "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "esprima": {
-          "version": "4.0.0",
-          "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-4.0.0.tgz",
-          "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=",
-          "dev": true
-        },
-        "get-stdin": {
-          "version": "5.0.1",
-          "resolved": "http://registry.npm.taobao.org/get-stdin/download/get-stdin-5.0.1.tgz",
-          "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "js-yaml": {
-          "version": "3.10.0",
-          "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.10.0.tgz",
-          "integrity": "sha1-LnhEFka9RoLpY/IrbpKCPDCcYtw=",
-          "dev": true,
-          "requires": {
-            "argparse": "1.0.9",
-            "esprima": "4.0.0"
-          }
-        },
-        "parse-json": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-3.0.0.tgz",
-          "integrity": "sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM=",
-          "dev": true,
-          "requires": {
-            "error-ex": "1.3.1"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          },
-          "dependencies": {
-            "chalk": {
-              "version": "2.3.0",
-              "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-              "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-              "dev": true,
-              "requires": {
-                "ansi-styles": "3.2.0",
-                "escape-string-regexp": "1.0.5",
-                "supports-color": "4.5.0"
-              }
-            }
-          }
-        },
-        "postcss-selector-parser": {
-          "version": "3.1.1",
-          "resolved": "http://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.1.tgz",
-          "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
-          "dev": true,
-          "requires": {
-            "dot-prop": "4.2.0",
-            "indexes-of": "1.0.1",
-            "uniq": "1.0.1"
-          }
-        },
-        "require-from-string": {
-          "version": "2.0.1",
-          "resolved": "http://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.1.tgz",
-          "integrity": "sha1-xUUjPp19pmFunVmt+zn8n1iGdv8=",
-          "dev": true
-        },
-        "resolve-from": {
-          "version": "4.0.0",
-          "resolved": "http://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz",
-          "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz",
-          "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "2.0.0",
-            "strip-ansi": "4.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "3.0.0"
-          }
-        }
-      }
-    },
-    "stylelint-config-recommended": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/stylelint-config-recommended/download/stylelint-config-recommended-1.0.0.tgz",
-      "integrity": "sha1-dSwX/Gj6ZM1edYniT25G534UpzU=",
-      "dev": true
-    },
-    "stylelint-config-standard": {
-      "version": "17.0.0",
-      "resolved": "http://registry.npm.taobao.org/stylelint-config-standard/download/stylelint-config-standard-17.0.0.tgz",
-      "integrity": "sha1-QhA6CQBU7io93p7K7VXl1NnQWfw=",
-      "dev": true,
-      "requires": {
-        "stylelint-config-recommended": "1.0.0"
-      }
-    },
-    "stylus": {
-      "version": "0.54.5",
-      "resolved": "http://registry.npm.taobao.org/stylus/download/stylus-0.54.5.tgz",
-      "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=",
-      "dev": true,
-      "requires": {
-        "css-parse": "1.7.0",
-        "debug": "2.6.9",
-        "glob": "7.0.6",
-        "mkdirp": "0.5.1",
-        "sax": "0.5.8",
-        "source-map": "0.1.43"
-      },
-      "dependencies": {
-        "glob": {
-          "version": "7.0.6",
-          "resolved": "http://registry.npm.taobao.org/glob/download/glob-7.0.6.tgz",
-          "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
-          "dev": true,
-          "requires": {
-            "fs.realpath": "1.0.0",
-            "inflight": "1.0.6",
-            "inherits": "2.0.3",
-            "minimatch": "3.0.4",
-            "once": "1.4.0",
-            "path-is-absolute": "1.0.1"
-          }
-        },
-        "sax": {
-          "version": "0.5.8",
-          "resolved": "http://registry.npm.taobao.org/sax/download/sax-0.5.8.tgz",
-          "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.1.43",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.1.43.tgz",
-          "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
-          "dev": true,
-          "requires": {
-            "amdefine": "1.0.1"
-          }
-        }
-      }
-    },
-    "stylus-loader": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/stylus-loader/download/stylus-loader-3.0.1.tgz",
-      "integrity": "sha1-d/SzT9Aw0lsmF7z1UT21sHMMQIk=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "1.1.0",
-        "lodash.clonedeep": "4.5.0",
-        "when": "3.6.4"
-      }
-    },
-    "sugarss": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/sugarss/download/sugarss-1.0.1.tgz",
-      "integrity": "sha1-voJtkAPg8kdzX5I2XcP9fxuunkQ=",
-      "dev": true,
-      "requires": {
-        "postcss": "6.0.14"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz",
-          "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "3.2.0",
-            "escape-string-regexp": "1.0.5",
-            "supports-color": "4.5.0"
-          }
-        },
-        "postcss": {
-          "version": "6.0.14",
-          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.14.tgz",
-          "integrity": "sha1-VTTHIRRznnXQr88BfbhTCZ9WKIU=",
-          "dev": true,
-          "requires": {
-            "chalk": "2.3.0",
-            "source-map": "0.6.1",
-            "supports-color": "4.5.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "supports-color": {
-      "version": "4.5.0",
-      "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-4.5.0.tgz",
-      "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
-      "dev": true,
-      "requires": {
-        "has-flag": "2.0.0"
-      }
-    },
-    "svg-tags": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz",
-      "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
-      "dev": true
-    },
-    "svgo": {
-      "version": "0.7.2",
-      "resolved": "http://registry.npm.taobao.org/svgo/download/svgo-0.7.2.tgz",
-      "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
-      "dev": true,
-      "requires": {
-        "coa": "1.0.4",
-        "colors": "1.1.2",
-        "csso": "2.3.2",
-        "js-yaml": "3.7.0",
-        "mkdirp": "0.5.1",
-        "sax": "1.2.4",
-        "whet.extend": "0.9.9"
-      }
-    },
-    "sweetalert2": {
-      "version": "7.0.10",
-      "resolved": "http://registry.npm.taobao.org/sweetalert2/download/sweetalert2-7.0.10.tgz",
-      "integrity": "sha1-FcdrgPto6YfgB6WF3Th6mwVY7Bo="
-    },
-    "symbol-observable": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.0.1.tgz",
-      "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
-    },
-    "table": {
-      "version": "4.0.2",
-      "resolved": "http://registry.npm.taobao.org/table/download/table-4.0.2.tgz",
-      "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=",
-      "dev": true,
-      "requires": {
-        "ajv": "5.5.1",
-        "ajv-keywords": "2.1.1",
-        "chalk": "2.2.2",
-        "lodash": "4.17.4",
-        "slice-ansi": "1.0.0",
-        "string-width": "2.1.1"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "slice-ansi": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-1.0.0.tgz",
-          "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "2.0.0"
-          }
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz",
-          "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "2.0.0",
-            "strip-ansi": "4.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "3.0.0"
-          }
-        }
-      }
-    },
-    "tapable": {
-      "version": "0.2.8",
-      "resolved": "http://registry.npm.taobao.org/tapable/download/tapable-0.2.8.tgz",
-      "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=",
-      "dev": true
-    },
-    "tar": {
-      "version": "2.2.1",
-      "resolved": "http://registry.npm.taobao.org/tar/download/tar-2.2.1.tgz",
-      "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "block-stream": "0.0.9",
-        "fstream": "1.0.11",
-        "inherits": "2.0.3"
-      }
-    },
-    "tar-stream": {
-      "version": "1.5.5",
-      "resolved": "http://registry.npm.taobao.org/tar-stream/download/tar-stream-1.5.5.tgz",
-      "integrity": "sha1-XK2Ed59FyDsfJQjZawnYjHIYr1U=",
-      "dev": true,
-      "requires": {
-        "bl": "1.2.1",
-        "end-of-stream": "1.4.0",
-        "readable-stream": "2.3.3",
-        "xtend": "4.0.1"
-      }
-    },
-    "through": {
-      "version": "2.3.8",
-      "resolved": "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz",
-      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
-      "dev": true
-    },
-    "through2": {
-      "version": "2.0.3",
-      "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.3.tgz",
-      "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
-      "dev": true,
-      "requires": {
-        "readable-stream": "2.3.3",
-        "xtend": "4.0.1"
-      }
-    },
-    "thunky": {
-      "version": "0.1.0",
-      "resolved": "http://registry.npm.taobao.org/thunky/download/thunky-0.1.0.tgz",
-      "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=",
-      "dev": true
-    },
-    "time-stamp": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/time-stamp/download/time-stamp-2.0.0.tgz",
-      "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=",
-      "dev": true
-    },
-    "timers-browserify": {
-      "version": "2.0.4",
-      "resolved": "http://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.4.tgz",
-      "integrity": "sha1-lspT9LeUpefA4b18yIo3Ipj6AeY=",
-      "dev": true,
-      "requires": {
-        "setimmediate": "1.0.5"
-      }
-    },
-    "tmp": {
-      "version": "0.0.31",
-      "resolved": "http://registry.npm.taobao.org/tmp/download/tmp-0.0.31.tgz",
-      "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
-      "dev": true,
-      "requires": {
-        "os-tmpdir": "1.0.2"
-      }
-    },
-    "to-array": {
-      "version": "0.1.4",
-      "resolved": "http://registry.npm.taobao.org/to-array/download/to-array-0.1.4.tgz",
-      "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
-      "dev": true
-    },
-    "to-arraybuffer": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz",
-      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
-      "dev": true
-    },
-    "to-fast-properties": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz",
-      "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
-      "dev": true
-    },
-    "topojson-client": {
-      "version": "3.0.0",
-      "resolved": "http://registry.npm.taobao.org/topojson-client/download/topojson-client-3.0.0.tgz",
-      "integrity": "sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8=",
-      "requires": {
-        "commander": "2.12.2"
-      }
-    },
-    "toposort": {
-      "version": "1.0.6",
-      "resolved": "http://registry.npm.taobao.org/toposort/download/toposort-1.0.6.tgz",
-      "integrity": "sha1-wxdI5V0hDv/AD9zcfW5o19e7nOw=",
-      "dev": true
-    },
-    "tough-cookie": {
-      "version": "2.3.3",
-      "resolved": "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.3.tgz",
-      "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
-      "dev": true,
-      "requires": {
-        "punycode": "1.4.1"
-      }
-    },
-    "tree-kill": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/tree-kill/download/tree-kill-1.2.0.tgz",
-      "integrity": "sha1-WEZ4Yje0I5AU8F2xVrZDIS1MbzY=",
-      "dev": true
-    },
-    "trim": {
-      "version": "0.0.1",
-      "resolved": "http://registry.npm.taobao.org/trim/download/trim-0.0.1.tgz",
-      "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=",
-      "dev": true
-    },
-    "trim-newlines": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz",
-      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
-      "dev": true
-    },
-    "trim-right": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz",
-      "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
-      "dev": true
-    },
-    "trim-trailing-lines": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/trim-trailing-lines/download/trim-trailing-lines-1.1.0.tgz",
-      "integrity": "sha1-eu+7eAjfnWafbaLkOMrIxGradoQ=",
-      "dev": true
-    },
-    "trough": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/trough/download/trough-1.0.1.tgz",
-      "integrity": "sha1-qf2LA5Swro//guBjOgo2zK1bX4Y=",
-      "dev": true
-    },
-    "true-case-path": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.2.tgz",
-      "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "glob": "6.0.4"
-      },
-      "dependencies": {
-        "glob": {
-          "version": "6.0.4",
-          "resolved": "http://registry.npm.taobao.org/glob/download/glob-6.0.4.tgz",
-          "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "inflight": "1.0.6",
-            "inherits": "2.0.3",
-            "minimatch": "3.0.4",
-            "once": "1.4.0",
-            "path-is-absolute": "1.0.1"
-          }
-        }
-      }
-    },
-    "ts-node": {
-      "version": "3.2.2",
-      "resolved": "http://registry.npm.taobao.org/ts-node/download/ts-node-3.2.2.tgz",
-      "integrity": "sha1-u9KOOK9Kqj6WB2xGbhsiAZfBo84=",
-      "dev": true,
-      "requires": {
-        "arrify": "1.0.1",
-        "chalk": "2.2.2",
-        "diff": "3.4.0",
-        "make-error": "1.3.0",
-        "minimist": "1.2.0",
-        "mkdirp": "0.5.1",
-        "source-map-support": "0.4.18",
-        "tsconfig": "6.0.0",
-        "v8flags": "3.0.1",
-        "yn": "2.0.0"
-      }
-    },
-    "tsconfig": {
-      "version": "6.0.0",
-      "resolved": "http://registry.npm.taobao.org/tsconfig/download/tsconfig-6.0.0.tgz",
-      "integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=",
-      "dev": true,
-      "requires": {
-        "strip-bom": "3.0.0",
-        "strip-json-comments": "2.0.1"
-      },
-      "dependencies": {
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
-        }
-      }
-    },
-    "tsickle": {
-      "version": "0.25.5",
-      "resolved": "http://registry.npm.taobao.org/tsickle/download/tsickle-0.25.5.tgz",
-      "integrity": "sha1-KJHSn5fEqrEwbgY3jYSW0XZaS/4=",
-      "dev": true,
-      "requires": {
-        "minimist": "1.2.0",
-        "mkdirp": "0.5.1",
-        "source-map": "0.5.7",
-        "source-map-support": "0.4.18"
-      }
-    },
-    "tslib": {
-      "version": "1.8.1",
-      "resolved": "http://registry.npm.taobao.org/tslib/download/tslib-1.8.1.tgz",
-      "integrity": "sha1-aUavLR1lGnsYY7Ux1uWvpBqkTqw="
-    },
-    "tslint": {
-      "version": "5.7.0",
-      "resolved": "http://registry.npm.taobao.org/tslint/download/tslint-5.7.0.tgz",
-      "integrity": "sha1-wl4NDJL6EgHCvDDoROCOaCtPNVI=",
-      "dev": true,
-      "requires": {
-        "babel-code-frame": "6.26.0",
-        "colors": "1.1.2",
-        "commander": "2.12.2",
-        "diff": "3.4.0",
-        "glob": "7.1.2",
-        "minimatch": "3.0.4",
-        "resolve": "1.5.0",
-        "semver": "5.4.1",
-        "tslib": "1.8.1",
-        "tsutils": "2.13.0"
-      }
-    },
-    "tsutils": {
-      "version": "2.13.0",
-      "resolved": "http://registry.npm.taobao.org/tsutils/download/tsutils-2.13.0.tgz",
-      "integrity": "sha1-D1K2qrvEIW5yeWtm2wKMbPFz4UQ=",
-      "dev": true,
-      "requires": {
-        "tslib": "1.8.1"
-      }
-    },
-    "tty-browserify": {
-      "version": "0.0.0",
-      "resolved": "http://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz",
-      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
-      "dev": true
-    },
-    "tunnel-agent": {
-      "version": "0.6.0",
-      "resolved": "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
-      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "5.1.1"
-      }
-    },
-    "tweetnacl": {
-      "version": "0.14.5",
-      "resolved": "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz",
-      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
-      "dev": true,
-      "optional": true
-    },
-    "type-check": {
-      "version": "0.3.2",
-      "resolved": "http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz",
-      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
-      "dev": true,
-      "requires": {
-        "prelude-ls": "1.1.2"
-      }
-    },
-    "type-is": {
-      "version": "1.6.15",
-      "resolved": "http://registry.npm.taobao.org/type-is/download/type-is-1.6.15.tgz",
-      "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
-      "dev": true,
-      "requires": {
-        "media-typer": "0.3.0",
-        "mime-types": "2.1.17"
-      }
-    },
-    "typedarray": {
-      "version": "0.0.6",
-      "resolved": "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz",
-      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
-      "dev": true
-    },
-    "typescript": {
-      "version": "2.5.3",
-      "resolved": "http://registry.npm.taobao.org/typescript/download/typescript-2.5.3.tgz",
-      "integrity": "sha1-3z3Nw48764ANS8MiZGsEo/bKfw0=",
-      "dev": true
-    },
-    "uglify-js": {
-      "version": "3.2.2",
-      "resolved": "http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.2.2.tgz",
-      "integrity": "sha1-hw5LNO1zPReShPmZjv0yk/f9c/Y=",
-      "dev": true,
-      "requires": {
-        "commander": "2.12.2",
-        "source-map": "0.6.1"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "uglify-to-browserify": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz",
-      "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
-      "dev": true,
-      "optional": true
-    },
-    "uglifyjs-webpack-plugin": {
-      "version": "1.1.4",
-      "resolved": "http://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-1.1.4.tgz",
-      "integrity": "sha1-5DrW5zbDFQJOuZSBp8yTYtagZr4=",
-      "dev": true,
-      "requires": {
-        "cacache": "10.0.1",
-        "find-cache-dir": "1.0.0",
-        "schema-utils": "0.3.0",
-        "serialize-javascript": "1.4.0",
-        "source-map": "0.6.1",
-        "uglify-es": "3.2.2",
-        "webpack-sources": "1.1.0",
-        "worker-farm": "1.5.2"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        },
-        "uglify-es": {
-          "version": "3.2.2",
-          "resolved": "http://registry.npm.taobao.org/uglify-es/download/uglify-es-3.2.2.tgz",
-          "integrity": "sha1-FcYrd3UALIG3mHocSezT8SbKznM=",
-          "dev": true,
-          "requires": {
-            "commander": "2.12.2",
-            "source-map": "0.6.1"
-          }
-        }
-      }
-    },
-    "ultron": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/ultron/download/ultron-1.0.2.tgz",
-      "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=",
-      "dev": true
-    },
-    "underscore.string": {
-      "version": "3.3.4",
-      "resolved": "http://registry.npm.taobao.org/underscore.string/download/underscore.string-3.3.4.tgz",
-      "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=",
-      "dev": true,
-      "requires": {
-        "sprintf-js": "1.0.3",
-        "util-deprecate": "1.0.2"
-      }
-    },
-    "unherit": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/unherit/download/unherit-1.1.0.tgz",
-      "integrity": "sha1-a5qu379z3xdWrZ4xbdmBiFhAzX0=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3",
-        "xtend": "4.0.1"
-      }
-    },
-    "unified": {
-      "version": "6.1.6",
-      "resolved": "http://registry.npm.taobao.org/unified/download/unified-6.1.6.tgz",
-      "integrity": "sha1-Xqf4B6CJjx+Kze7+XyX6oBDMQrE=",
-      "dev": true,
-      "requires": {
-        "bail": "1.0.2",
-        "extend": "3.0.1",
-        "is-plain-obj": "1.1.0",
-        "trough": "1.0.1",
-        "vfile": "2.3.0",
-        "x-is-function": "1.0.4",
-        "x-is-string": "0.1.0"
-      }
-    },
-    "uniq": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz",
-      "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
-      "dev": true
-    },
-    "uniqid": {
-      "version": "4.1.1",
-      "resolved": "http://registry.npm.taobao.org/uniqid/download/uniqid-4.1.1.tgz",
-      "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
-      "dev": true,
-      "requires": {
-        "macaddress": "0.2.8"
-      }
-    },
-    "uniqs": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz",
-      "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
-      "dev": true
-    },
-    "unique-filename": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.0.tgz",
-      "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=",
-      "dev": true,
-      "requires": {
-        "unique-slug": "2.0.0"
-      }
-    },
-    "unique-slug": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.0.tgz",
-      "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=",
-      "dev": true,
-      "requires": {
-        "imurmurhash": "0.1.4"
-      }
-    },
-    "unist-util-find-all-after": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/unist-util-find-all-after/download/unist-util-find-all-after-1.0.1.tgz",
-      "integrity": "sha1-TlUSq/734GFnga7Pex7XUcAK+Qg=",
-      "dev": true,
-      "requires": {
-        "unist-util-is": "2.1.1"
-      }
-    },
-    "unist-util-is": {
-      "version": "2.1.1",
-      "resolved": "http://registry.npm.taobao.org/unist-util-is/download/unist-util-is-2.1.1.tgz",
-      "integrity": "sha1-DDEmKeP5YMZukx6BLT2A53AQlHs=",
-      "dev": true
-    },
-    "unist-util-modify-children": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/unist-util-modify-children/download/unist-util-modify-children-1.1.1.tgz",
-      "integrity": "sha1-ZtfmpEnm9nIguXarPLi166w55R0=",
-      "dev": true,
-      "requires": {
-        "array-iterate": "1.1.1"
-      }
-    },
-    "unist-util-remove-position": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/unist-util-remove-position/download/unist-util-remove-position-1.1.1.tgz",
-      "integrity": "sha1-WoXBVV/BugwQG4ZwfRXlD6TIcbs=",
-      "dev": true,
-      "requires": {
-        "unist-util-visit": "1.3.0"
-      }
-    },
-    "unist-util-stringify-position": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npm.taobao.org/unist-util-stringify-position/download/unist-util-stringify-position-1.1.1.tgz",
-      "integrity": "sha1-PMvcU2ee7W7PN3fdf14yKcG2qjw=",
-      "dev": true
-    },
-    "unist-util-visit": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/unist-util-visit/download/unist-util-visit-1.3.0.tgz",
-      "integrity": "sha1-Qcp8gpgf0c5sdiqsOX/CTjVxFEQ=",
-      "dev": true,
-      "requires": {
-        "unist-util-is": "2.1.1"
-      }
-    },
-    "universalify": {
-      "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/universalify/download/universalify-0.1.1.tgz",
-      "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
-      "dev": true
-    },
-    "unpipe": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
-      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
-      "dev": true
-    },
-    "upper-case": {
-      "version": "1.1.3",
-      "resolved": "http://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz",
-      "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
-      "dev": true
-    },
-    "url": {
-      "version": "0.11.0",
-      "resolved": "http://registry.npm.taobao.org/url/download/url-0.11.0.tgz",
-      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
-      "dev": true,
-      "requires": {
-        "punycode": "1.3.2",
-        "querystring": "0.2.0"
-      },
-      "dependencies": {
-        "punycode": {
-          "version": "1.3.2",
-          "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz",
-          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
-          "dev": true
-        }
-      }
-    },
-    "url-loader": {
-      "version": "0.6.2",
-      "resolved": "http://registry.npm.taobao.org/url-loader/download/url-loader-0.6.2.tgz",
-      "integrity": "sha1-oAenEJYg6dmI0UvOZ3od7Lmpk/c=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "1.1.0",
-        "mime": "1.6.0",
-        "schema-utils": "0.3.0"
-      }
-    },
-    "url-parse": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/url-parse/download/url-parse-1.2.0.tgz",
-      "integrity": "sha1-OhnoqqbQI93SfcxEy0/I9/7COYY=",
-      "dev": true,
-      "requires": {
-        "querystringify": "1.0.0",
-        "requires-port": "1.0.0"
-      },
-      "dependencies": {
-        "querystringify": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/querystringify/download/querystringify-1.0.0.tgz",
-          "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=",
-          "dev": true
-        }
-      }
-    },
-    "urlgrey": {
-      "version": "0.4.4",
-      "resolved": "http://registry.npm.taobao.org/urlgrey/download/urlgrey-0.4.4.tgz",
-      "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=",
-      "dev": true
-    },
-    "useragent": {
-      "version": "2.2.1",
-      "resolved": "http://registry.npm.taobao.org/useragent/download/useragent-2.2.1.tgz",
-      "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=",
-      "dev": true,
-      "requires": {
-        "lru-cache": "2.2.4",
-        "tmp": "0.0.31"
-      },
-      "dependencies": {
-        "lru-cache": {
-          "version": "2.2.4",
-          "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-2.2.4.tgz",
-          "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=",
-          "dev": true
-        }
-      }
-    },
-    "util": {
-      "version": "0.10.3",
-      "resolved": "http://registry.npm.taobao.org/util/download/util-0.10.3.tgz",
-      "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.1"
-      },
-      "dependencies": {
-        "inherits": {
-          "version": "2.0.1",
-          "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz",
-          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
-          "dev": true
-        }
-      }
-    },
-    "util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
-      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
-      "dev": true
-    },
-    "utila": {
-      "version": "0.4.0",
-      "resolved": "http://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz",
-      "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
-      "dev": true
-    },
-    "utils-merge": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz",
-      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
-      "dev": true
-    },
-    "uuid": {
-      "version": "3.1.0",
-      "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.1.0.tgz",
-      "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=",
-      "dev": true
-    },
-    "v8flags": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/v8flags/download/v8flags-3.0.1.tgz",
-      "integrity": "sha1-3Oj8N5wX2fLJ6e142JzgAFKxt2s=",
-      "dev": true,
-      "requires": {
-        "homedir-polyfill": "1.0.1"
-      }
-    },
-    "validate-npm-package-license": {
-      "version": "3.0.1",
-      "resolved": "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.1.tgz",
-      "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
-      "dev": true,
-      "requires": {
-        "spdx-correct": "1.0.2",
-        "spdx-expression-parse": "1.0.4"
-      }
-    },
-    "vargs": {
-      "version": "0.1.0",
-      "resolved": "http://registry.npm.taobao.org/vargs/download/vargs-0.1.0.tgz",
-      "integrity": "sha1-a2GE2mUgzDIEzhtAfKwm2SYJ6/8=",
-      "dev": true
-    },
-    "vary": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
-      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
-      "dev": true
-    },
-    "vendors": {
-      "version": "1.0.1",
-      "resolved": "http://registry.npm.taobao.org/vendors/download/vendors-1.0.1.tgz",
-      "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=",
-      "dev": true
-    },
-    "verror": {
-      "version": "1.10.0",
-      "resolved": "http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz",
-      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "1.0.0",
-        "core-util-is": "1.0.2",
-        "extsprintf": "1.3.0"
-      },
-      "dependencies": {
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true
-        }
-      }
-    },
-    "vfile": {
-      "version": "2.3.0",
-      "resolved": "http://registry.npm.taobao.org/vfile/download/vfile-2.3.0.tgz",
-      "integrity": "sha1-5i2OcrIOg8MkvGxnJ47ickiL+Eo=",
-      "dev": true,
-      "requires": {
-        "is-buffer": "1.1.6",
-        "replace-ext": "1.0.0",
-        "unist-util-stringify-position": "1.1.1",
-        "vfile-message": "1.0.0"
-      },
-      "dependencies": {
-        "replace-ext": {
-          "version": "1.0.0",
-          "resolved": "http://registry.npm.taobao.org/replace-ext/download/replace-ext-1.0.0.tgz",
-          "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
-          "dev": true
-        }
-      }
-    },
-    "vfile-location": {
-      "version": "2.0.2",
-      "resolved": "http://registry.npm.taobao.org/vfile-location/download/vfile-location-2.0.2.tgz",
-      "integrity": "sha1-02dcWch3SY5JK0dW/2Xkrxp1IlU=",
-      "dev": true
-    },
-    "vfile-message": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/vfile-message/download/vfile-message-1.0.0.tgz",
-      "integrity": "sha1-pq2wR06kAPol2Snx1nOr6moX41k=",
-      "dev": true,
-      "requires": {
-        "unist-util-stringify-position": "1.1.1"
-      }
-    },
-    "vinyl": {
-      "version": "0.5.3",
-      "resolved": "http://registry.npm.taobao.org/vinyl/download/vinyl-0.5.3.tgz",
-      "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
-      "dev": true,
-      "requires": {
-        "clone": "1.0.3",
-        "clone-stats": "0.0.1",
-        "replace-ext": "0.0.1"
-      }
-    },
-    "vlq": {
-      "version": "0.2.3",
-      "resolved": "http://registry.npm.taobao.org/vlq/download/vlq-0.2.3.tgz",
-      "integrity": "sha1-jz5DKM9jsVQMDWfhsneDhviXWyY=",
-      "dev": true
-    },
-    "vm-browserify": {
-      "version": "0.0.4",
-      "resolved": "http://registry.npm.taobao.org/vm-browserify/download/vm-browserify-0.0.4.tgz",
-      "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
-      "dev": true,
-      "requires": {
-        "indexof": "0.0.1"
-      }
-    },
-    "void-elements": {
-      "version": "2.0.1",
-      "resolved": "http://registry.npm.taobao.org/void-elements/download/void-elements-2.0.1.tgz",
-      "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
-      "dev": true
-    },
-    "walkdir": {
-      "version": "0.0.11",
-      "resolved": "http://registry.npm.taobao.org/walkdir/download/walkdir-0.0.11.tgz",
-      "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=",
-      "dev": true
-    },
-    "watchpack": {
-      "version": "1.4.0",
-      "resolved": "http://registry.npm.taobao.org/watchpack/download/watchpack-1.4.0.tgz",
-      "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=",
-      "dev": true,
-      "requires": {
-        "async": "2.6.0",
-        "chokidar": "1.7.0",
-        "graceful-fs": "4.1.11"
-      }
-    },
-    "wbuf": {
-      "version": "1.7.2",
-      "resolved": "http://registry.npm.taobao.org/wbuf/download/wbuf-1.7.2.tgz",
-      "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=",
-      "dev": true,
-      "requires": {
-        "minimalistic-assert": "1.0.0"
-      }
-    },
-    "wd": {
-      "version": "1.5.0",
-      "resolved": "http://registry.npm.taobao.org/wd/download/wd-1.5.0.tgz",
-      "integrity": "sha1-RclqFv+fjA+efKkPgGqLSL0ANNY=",
-      "dev": true,
-      "requires": {
-        "archiver": "1.3.0",
-        "async": "2.0.1",
-        "lodash": "4.16.2",
-        "mkdirp": "0.5.1",
-        "q": "1.4.1",
-        "request": "2.79.0",
-        "underscore.string": "3.3.4",
-        "vargs": "0.1.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "async": {
-          "version": "2.0.1",
-          "resolved": "http://registry.npm.taobao.org/async/download/async-2.0.1.tgz",
-          "integrity": "sha1-twnMAoCpw28J9FNr6CPIOKkEniU=",
-          "dev": true,
-          "requires": {
-            "lodash": "4.16.2"
-          }
-        },
-        "caseless": {
-          "version": "0.11.0",
-          "resolved": "http://registry.npm.taobao.org/caseless/download/caseless-0.11.0.tgz",
-          "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          }
-        },
-        "har-validator": {
-          "version": "2.0.6",
-          "resolved": "http://registry.npm.taobao.org/har-validator/download/har-validator-2.0.6.tgz",
-          "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
-          "dev": true,
-          "requires": {
-            "chalk": "1.1.3",
-            "commander": "2.12.2",
-            "is-my-json-valid": "2.16.1",
-            "pinkie-promise": "2.0.1"
-          }
-        },
-        "lodash": {
-          "version": "4.16.2",
-          "resolved": "http://registry.npm.taobao.org/lodash/download/lodash-4.16.2.tgz",
-          "integrity": "sha1-PmJtuCcEimmSgaihJSJjJs/A5lI=",
-          "dev": true
-        },
-        "q": {
-          "version": "1.4.1",
-          "resolved": "http://registry.npm.taobao.org/q/download/q-1.4.1.tgz",
-          "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
-          "dev": true
-        },
-        "qs": {
-          "version": "6.3.2",
-          "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.3.2.tgz",
-          "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
-          "dev": true
-        },
-        "request": {
-          "version": "2.79.0",
-          "resolved": "http://registry.npm.taobao.org/request/download/request-2.79.0.tgz",
-          "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
-          "dev": true,
-          "requires": {
-            "aws-sign2": "0.6.0",
-            "aws4": "1.6.0",
-            "caseless": "0.11.0",
-            "combined-stream": "1.0.5",
-            "extend": "3.0.1",
-            "forever-agent": "0.6.1",
-            "form-data": "2.1.4",
-            "har-validator": "2.0.6",
-            "hawk": "3.1.3",
-            "http-signature": "1.1.1",
-            "is-typedarray": "1.0.0",
-            "isstream": "0.1.2",
-            "json-stringify-safe": "5.0.1",
-            "mime-types": "2.1.17",
-            "oauth-sign": "0.8.2",
-            "qs": "6.3.2",
-            "stringstream": "0.0.5",
-            "tough-cookie": "2.3.3",
-            "tunnel-agent": "0.4.3",
-            "uuid": "3.1.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        },
-        "tunnel-agent": {
-          "version": "0.4.3",
-          "resolved": "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.4.3.tgz",
-          "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
-          "dev": true
-        }
-      }
-    },
-    "weather-icons": {
-      "version": "1.3.2",
-      "resolved": "http://registry.npm.taobao.org/weather-icons/download/weather-icons-1.3.2.tgz",
-      "integrity": "sha1-isAA+ShYQnJSuAzFega/qCeQCsA="
-    },
-    "webdriver-js-extender": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/webdriver-js-extender/download/webdriver-js-extender-1.0.0.tgz",
-      "integrity": "sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU=",
-      "dev": true,
-      "requires": {
-        "@types/selenium-webdriver": "2.53.43",
-        "selenium-webdriver": "2.53.3"
-      },
-      "dependencies": {
-        "adm-zip": {
-          "version": "0.4.4",
-          "resolved": "http://registry.npm.taobao.org/adm-zip/download/adm-zip-0.4.4.tgz",
-          "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=",
-          "dev": true
-        },
-        "sax": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/sax/download/sax-0.6.1.tgz",
-          "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=",
-          "dev": true
-        },
-        "selenium-webdriver": {
-          "version": "2.53.3",
-          "resolved": "http://registry.npm.taobao.org/selenium-webdriver/download/selenium-webdriver-2.53.3.tgz",
-          "integrity": "sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU=",
-          "dev": true,
-          "requires": {
-            "adm-zip": "0.4.4",
-            "rimraf": "2.6.2",
-            "tmp": "0.0.24",
-            "ws": "1.1.2",
-            "xml2js": "0.4.4"
-          }
-        },
-        "tmp": {
-          "version": "0.0.24",
-          "resolved": "http://registry.npm.taobao.org/tmp/download/tmp-0.0.24.tgz",
-          "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=",
-          "dev": true
-        },
-        "xml2js": {
-          "version": "0.4.4",
-          "resolved": "http://registry.npm.taobao.org/xml2js/download/xml2js-0.4.4.tgz",
-          "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=",
-          "dev": true,
-          "requires": {
-            "sax": "0.6.1",
-            "xmlbuilder": "9.0.4"
-          }
-        }
-      }
-    },
-    "webpack": {
-      "version": "3.10.0",
-      "resolved": "http://registry.npm.taobao.org/webpack/download/webpack-3.10.0.tgz",
-      "integrity": "sha1-UpG4dQeM8qv0K90jr+P4+WwX1yU=",
-      "dev": true,
-      "requires": {
-        "acorn": "5.2.1",
-        "acorn-dynamic-import": "2.0.2",
-        "ajv": "5.5.1",
-        "ajv-keywords": "2.1.1",
-        "async": "2.6.0",
-        "enhanced-resolve": "3.4.1",
-        "escope": "3.6.0",
-        "interpret": "1.1.0",
-        "json-loader": "0.5.7",
-        "json5": "0.5.1",
-        "loader-runner": "2.3.0",
-        "loader-utils": "1.1.0",
-        "memory-fs": "0.4.1",
-        "mkdirp": "0.5.1",
-        "node-libs-browser": "2.1.0",
-        "source-map": "0.5.7",
-        "supports-color": "4.5.0",
-        "tapable": "0.2.8",
-        "uglifyjs-webpack-plugin": "0.4.6",
-        "watchpack": "1.4.0",
-        "webpack-sources": "1.1.0",
-        "yargs": "8.0.2"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "camelcase": {
-          "version": "1.2.1",
-          "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz",
-          "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
-          "dev": true
-        },
-        "cliui": {
-          "version": "2.1.0",
-          "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz",
-          "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
-          "dev": true,
-          "requires": {
-            "center-align": "0.1.3",
-            "right-align": "0.1.3",
-            "wordwrap": "0.0.2"
-          }
-        },
-        "load-json-file": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz",
-          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "4.1.11",
-            "parse-json": "2.2.0",
-            "pify": "2.3.0",
-            "strip-bom": "3.0.0"
-          }
-        },
-        "os-locale": {
-          "version": "2.1.0",
-          "resolved": "http://registry.npm.taobao.org/os-locale/download/os-locale-2.1.0.tgz",
-          "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=",
-          "dev": true,
-          "requires": {
-            "execa": "0.7.0",
-            "lcid": "1.0.0",
-            "mem": "1.1.0"
-          }
-        },
-        "path-type": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz",
-          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
-          "dev": true,
-          "requires": {
-            "pify": "2.3.0"
-          }
-        },
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        },
-        "read-pkg": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz",
-          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
-          "dev": true,
-          "requires": {
-            "load-json-file": "2.0.0",
-            "normalize-package-data": "2.4.0",
-            "path-type": "2.0.0"
-          }
-        },
-        "read-pkg-up": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz",
-          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
-          "dev": true,
-          "requires": {
-            "find-up": "2.1.0",
-            "read-pkg": "2.0.0"
-          }
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz",
-          "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "2.0.0",
-            "strip-ansi": "4.0.0"
-          },
-          "dependencies": {
-            "is-fullwidth-code-point": {
-              "version": "2.0.0",
-              "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
-              "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-              "dev": true
-            },
-            "strip-ansi": {
-              "version": "4.0.0",
-              "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz",
-              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "3.0.0"
-              }
-            }
-          }
-        },
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
-        },
-        "uglify-js": {
-          "version": "2.8.29",
-          "resolved": "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz",
-          "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
-          "dev": true,
-          "requires": {
-            "source-map": "0.5.7",
-            "uglify-to-browserify": "1.0.2",
-            "yargs": "3.10.0"
-          },
-          "dependencies": {
-            "yargs": {
-              "version": "3.10.0",
-              "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz",
-              "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
-              "dev": true,
-              "requires": {
-                "camelcase": "1.2.1",
-                "cliui": "2.1.0",
-                "decamelize": "1.2.0",
-                "window-size": "0.1.0"
-              }
-            }
-          }
-        },
-        "uglifyjs-webpack-plugin": {
-          "version": "0.4.6",
-          "resolved": "http://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-0.4.6.tgz",
-          "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
-          "dev": true,
-          "requires": {
-            "source-map": "0.5.7",
-            "uglify-js": "2.8.29",
-            "webpack-sources": "1.1.0"
-          }
-        },
-        "which-module": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz",
-          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-          "dev": true
-        },
-        "yargs": {
-          "version": "8.0.2",
-          "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-8.0.2.tgz",
-          "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
-          "dev": true,
-          "requires": {
-            "camelcase": "4.1.0",
-            "cliui": "3.2.0",
-            "decamelize": "1.2.0",
-            "get-caller-file": "1.0.2",
-            "os-locale": "2.1.0",
-            "read-pkg-up": "2.0.0",
-            "require-directory": "2.1.1",
-            "require-main-filename": "1.0.1",
-            "set-blocking": "2.0.0",
-            "string-width": "2.1.1",
-            "which-module": "2.0.0",
-            "y18n": "3.2.1",
-            "yargs-parser": "7.0.0"
-          },
-          "dependencies": {
-            "camelcase": {
-              "version": "4.1.0",
-              "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz",
-              "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
-              "dev": true
-            },
-            "cliui": {
-              "version": "3.2.0",
-              "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz",
-              "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
-              "dev": true,
-              "requires": {
-                "string-width": "1.0.2",
-                "strip-ansi": "3.0.1",
-                "wrap-ansi": "2.1.0"
-              },
-              "dependencies": {
-                "string-width": {
-                  "version": "1.0.2",
-                  "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz",
-                  "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-                  "dev": true,
-                  "requires": {
-                    "code-point-at": "1.1.0",
-                    "is-fullwidth-code-point": "1.0.0",
-                    "strip-ansi": "3.0.1"
-                  }
-                }
-              }
-            }
-          }
-        },
-        "yargs-parser": {
-          "version": "7.0.0",
-          "resolved": "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-7.0.0.tgz",
-          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
-          "dev": true,
-          "requires": {
-            "camelcase": "4.1.0"
-          },
-          "dependencies": {
-            "camelcase": {
-              "version": "4.1.0",
-              "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz",
-              "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "webpack-bundle-analyzer": {
-      "version": "2.9.1",
-      "resolved": "http://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-2.9.1.tgz",
-      "integrity": "sha1-wsjgPo5XaO0oizmunieouNe51HY=",
-      "dev": true,
-      "requires": {
-        "acorn": "5.2.1",
-        "chalk": "1.1.3",
-        "commander": "2.12.2",
-        "ejs": "2.5.7",
-        "express": "4.16.2",
-        "filesize": "3.5.11",
-        "gzip-size": "3.0.0",
-        "lodash": "4.17.4",
-        "mkdirp": "0.5.1",
-        "opener": "1.4.3",
-        "ws": "3.3.2"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "2.2.1",
-            "escape-string-regexp": "1.0.5",
-            "has-ansi": "2.0.0",
-            "strip-ansi": "3.0.1",
-            "supports-color": "2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        },
-        "ultron": {
-          "version": "1.1.1",
-          "resolved": "http://registry.npm.taobao.org/ultron/download/ultron-1.1.1.tgz",
-          "integrity": "sha1-n+FTahCmZKZSZqHjzPhf02MCvJw=",
-          "dev": true
-        },
-        "ws": {
-          "version": "3.3.2",
-          "resolved": "http://registry.npm.taobao.org/ws/download/ws-3.3.2.tgz",
-          "integrity": "sha1-lsHQiz/v2h1cHjNwDTv6qb4tVgg=",
-          "dev": true,
-          "requires": {
-            "async-limiter": "1.0.0",
-            "safe-buffer": "5.1.1",
-            "ultron": "1.1.1"
-          }
-        }
-      }
-    },
-    "webpack-concat-plugin": {
-      "version": "1.4.2",
-      "resolved": "http://registry.npm.taobao.org/webpack-concat-plugin/download/webpack-concat-plugin-1.4.2.tgz",
-      "integrity": "sha1-tgu7YmzlABkRgJ1uIyn6MvSXiog=",
-      "dev": true,
-      "requires": {
-        "md5": "2.2.1",
-        "uglify-js": "2.8.29"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "1.2.1",
-          "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz",
-          "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
-          "dev": true
-        },
-        "cliui": {
-          "version": "2.1.0",
-          "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz",
-          "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
-          "dev": true,
-          "requires": {
-            "center-align": "0.1.3",
-            "right-align": "0.1.3",
-            "wordwrap": "0.0.2"
-          }
-        },
-        "uglify-js": {
-          "version": "2.8.29",
-          "resolved": "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz",
-          "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
-          "dev": true,
-          "requires": {
-            "source-map": "0.5.7",
-            "uglify-to-browserify": "1.0.2",
-            "yargs": "3.10.0"
-          }
-        },
-        "yargs": {
-          "version": "3.10.0",
-          "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz",
-          "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
-          "dev": true,
-          "requires": {
-            "camelcase": "1.2.1",
-            "cliui": "2.1.0",
-            "decamelize": "1.2.0",
-            "window-size": "0.1.0"
-          }
-        }
-      }
-    },
-    "webpack-core": {
-      "version": "0.6.9",
-      "resolved": "http://registry.npm.taobao.org/webpack-core/download/webpack-core-0.6.9.tgz",
-      "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=",
-      "dev": true,
-      "requires": {
-        "source-list-map": "0.1.8",
-        "source-map": "0.4.4"
-      },
-      "dependencies": {
-        "source-list-map": {
-          "version": "0.1.8",
-          "resolved": "http://registry.npm.taobao.org/source-list-map/download/source-list-map-0.1.8.tgz",
-          "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.4.4",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz",
-          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
-          "dev": true,
-          "requires": {
-            "amdefine": "1.0.1"
-          }
-        }
-      }
-    },
-    "webpack-dev-middleware": {
-      "version": "1.12.2",
-      "resolved": "http://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-1.12.2.tgz",
-      "integrity": "sha1-+PwRIM47T8VoDO7LQ9d3lmshEF4=",
-      "dev": true,
-      "requires": {
-        "memory-fs": "0.4.1",
-        "mime": "1.6.0",
-        "path-is-absolute": "1.0.1",
-        "range-parser": "1.2.0",
-        "time-stamp": "2.0.0"
-      }
-    },
-    "webpack-dev-server": {
-      "version": "2.9.7",
-      "resolved": "http://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-2.9.7.tgz",
-      "integrity": "sha1-EArWoUd1R4kk1BfKbc+51SqY+u0=",
-      "dev": true,
-      "requires": {
-        "ansi-html": "0.0.7",
-        "array-includes": "3.0.3",
-        "bonjour": "3.5.0",
-        "chokidar": "1.7.0",
-        "compression": "1.7.1",
-        "connect-history-api-fallback": "1.5.0",
-        "debug": "3.1.0",
-        "del": "3.0.0",
-        "express": "4.16.2",
-        "html-entities": "1.2.1",
-        "http-proxy-middleware": "0.17.4",
-        "import-local": "0.1.1",
-        "internal-ip": "1.2.0",
-        "ip": "1.1.5",
-        "killable": "1.0.0",
-        "loglevel": "1.6.0",
-        "opn": "5.1.0",
-        "portfinder": "1.0.13",
-        "selfsigned": "1.10.1",
-        "serve-index": "1.9.1",
-        "sockjs": "0.3.18",
-        "sockjs-client": "1.1.4",
-        "spdy": "3.4.7",
-        "strip-ansi": "3.0.1",
-        "supports-color": "4.5.0",
-        "webpack-dev-middleware": "1.12.2",
-        "yargs": "6.6.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz",
-          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
-          "dev": true
-        },
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
-          "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "yargs": {
-          "version": "6.6.0",
-          "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-6.6.0.tgz",
-          "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
-          "dev": true,
-          "requires": {
-            "camelcase": "3.0.0",
-            "cliui": "3.2.0",
-            "decamelize": "1.2.0",
-            "get-caller-file": "1.0.2",
-            "os-locale": "1.4.0",
-            "read-pkg-up": "1.0.1",
-            "require-directory": "2.1.1",
-            "require-main-filename": "1.0.1",
-            "set-blocking": "2.0.0",
-            "string-width": "1.0.2",
-            "which-module": "1.0.0",
-            "y18n": "3.2.1",
-            "yargs-parser": "4.2.1"
-          }
-        },
-        "yargs-parser": {
-          "version": "4.2.1",
-          "resolved": "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-4.2.1.tgz",
-          "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
-          "dev": true,
-          "requires": {
-            "camelcase": "3.0.0"
-          }
-        }
-      }
-    },
-    "webpack-merge": {
-      "version": "4.1.1",
-      "resolved": "http://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.1.1.tgz",
-      "integrity": "sha1-8Rl6Cpc+acb77rbWWCGaqMDBNVU=",
-      "dev": true,
-      "requires": {
-        "lodash": "4.17.4"
-      }
-    },
-    "webpack-sources": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.1.0.tgz",
-      "integrity": "sha1-oQHrrlnWUHNU1x2AE5UKOot6WlQ=",
-      "dev": true,
-      "requires": {
-        "source-list-map": "2.0.0",
-        "source-map": "0.6.1"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "webpack-subresource-integrity": {
-      "version": "1.0.3",
-      "resolved": "http://registry.npm.taobao.org/webpack-subresource-integrity/download/webpack-subresource-integrity-1.0.3.tgz",
-      "integrity": "sha1-wGBtQAkLBwzeQovsjfNgMhbkcus=",
-      "dev": true,
-      "requires": {
-        "webpack-core": "0.6.9"
-      }
-    },
-    "websocket-driver": {
-      "version": "0.7.0",
-      "resolved": "http://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.0.tgz",
-      "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
-      "dev": true,
-      "requires": {
-        "http-parser-js": "0.4.9",
-        "websocket-extensions": "0.1.3"
-      }
-    },
-    "websocket-extensions": {
-      "version": "0.1.3",
-      "resolved": "http://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz",
-      "integrity": "sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk=",
-      "dev": true
-    },
-    "when": {
-      "version": "3.6.4",
-      "resolved": "http://registry.npm.taobao.org/when/download/when-3.6.4.tgz",
-      "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=",
-      "dev": true
-    },
-    "whet.extend": {
-      "version": "0.9.9",
-      "resolved": "http://registry.npm.taobao.org/whet.extend/download/whet.extend-0.9.9.tgz",
-      "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
-      "dev": true
-    },
-    "which": {
-      "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/which/download/which-1.3.0.tgz",
-      "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=",
-      "dev": true,
-      "requires": {
-        "isexe": "2.0.0"
-      }
-    },
-    "which-module": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz",
-      "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
-      "dev": true
-    },
-    "wide-align": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/wide-align/download/wide-align-1.1.2.tgz",
-      "integrity": "sha1-Vx4PGwYEY268DfwhsDObvjE0FxA=",
-      "dev": true,
-      "requires": {
-        "string-width": "1.0.2"
-      }
-    },
-    "window-size": {
-      "version": "0.1.0",
-      "resolved": "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz",
-      "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
-      "dev": true
-    },
-    "wolfy87-eventemitter": {
-      "version": "5.2.4",
-      "resolved": "http://registry.npm.taobao.org/wolfy87-eventemitter/download/wolfy87-eventemitter-5.2.4.tgz",
-      "integrity": "sha1-UCHSlS02EcvNGVFJcR2bWVzRHUg="
-    },
-    "wordwrap": {
-      "version": "0.0.2",
-      "resolved": "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz",
-      "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
-      "dev": true
-    },
-    "worker-farm": {
-      "version": "1.5.2",
-      "resolved": "http://registry.npm.taobao.org/worker-farm/download/worker-farm-1.5.2.tgz",
-      "integrity": "sha1-MrMS5dw9XUXXnvRKzCWHSRzXKa4=",
-      "dev": true,
-      "requires": {
-        "errno": "0.1.6",
-        "xtend": "4.0.1"
-      }
-    },
-    "wrap-ansi": {
-      "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz",
-      "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
-      "dev": true,
-      "requires": {
-        "string-width": "1.0.2",
-        "strip-ansi": "3.0.1"
-      }
-    },
-    "wrappy": {
-      "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz",
-      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-      "dev": true
-    },
-    "write": {
-      "version": "0.2.1",
-      "resolved": "http://registry.npm.taobao.org/write/download/write-0.2.1.tgz",
-      "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
-      "dev": true,
-      "requires": {
-        "mkdirp": "0.5.1"
-      }
-    },
-    "ws": {
-      "version": "1.1.2",
-      "resolved": "http://registry.npm.taobao.org/ws/download/ws-1.1.2.tgz",
-      "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=",
-      "dev": true,
-      "requires": {
-        "options": "0.0.6",
-        "ultron": "1.0.2"
-      }
-    },
-    "wtf-8": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/wtf-8/download/wtf-8-1.0.0.tgz",
-      "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=",
-      "dev": true
-    },
-    "x-is-function": {
-      "version": "1.0.4",
-      "resolved": "http://registry.npm.taobao.org/x-is-function/download/x-is-function-1.0.4.tgz",
-      "integrity": "sha1-XSlNw9Joy90GJYDgxd93o5HR+h4=",
-      "dev": true
-    },
-    "x-is-string": {
-      "version": "0.1.0",
-      "resolved": "http://registry.npm.taobao.org/x-is-string/download/x-is-string-0.1.0.tgz",
-      "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=",
-      "dev": true
-    },
-    "xml-char-classes": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/xml-char-classes/download/xml-char-classes-1.0.0.tgz",
-      "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=",
-      "dev": true
-    },
-    "xml2js": {
-      "version": "0.4.19",
-      "resolved": "http://registry.npm.taobao.org/xml2js/download/xml2js-0.4.19.tgz",
-      "integrity": "sha1-aGwg8hMgnpSr8NG88e+qKRx4J6c=",
-      "dev": true,
-      "requires": {
-        "sax": "1.2.4",
-        "xmlbuilder": "9.0.4"
-      }
-    },
-    "xmlbuilder": {
-      "version": "9.0.4",
-      "resolved": "http://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.4.tgz",
-      "integrity": "sha1-UZy0ymhtAFqEINNJbz8MruzKWA8=",
-      "dev": true
-    },
-    "xmlhttprequest-ssl": {
-      "version": "1.5.3",
-      "resolved": "http://registry.npm.taobao.org/xmlhttprequest-ssl/download/xmlhttprequest-ssl-1.5.3.tgz",
-      "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=",
-      "dev": true
-    },
-    "xtend": {
-      "version": "4.0.1",
-      "resolved": "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz",
-      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
-      "dev": true
-    },
-    "xxhashjs": {
-      "version": "0.2.1",
-      "resolved": "http://registry.npm.taobao.org/xxhashjs/download/xxhashjs-0.2.1.tgz",
-      "integrity": "sha1-m76b6JYUKXbfo0wGGy0GjEPTDeA=",
-      "dev": true,
-      "requires": {
-        "cuint": "0.2.2"
-      }
-    },
-    "y18n": {
-      "version": "3.2.1",
-      "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz",
-      "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
-      "dev": true
-    },
-    "yallist": {
-      "version": "2.1.2",
-      "resolved": "http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
-      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
-      "dev": true
-    },
-    "yargs": {
-      "version": "7.1.0",
-      "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-7.1.0.tgz",
-      "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "camelcase": "3.0.0",
-        "cliui": "3.2.0",
-        "decamelize": "1.2.0",
-        "get-caller-file": "1.0.2",
-        "os-locale": "1.4.0",
-        "read-pkg-up": "1.0.1",
-        "require-directory": "2.1.1",
-        "require-main-filename": "1.0.1",
-        "set-blocking": "2.0.0",
-        "string-width": "1.0.2",
-        "which-module": "1.0.0",
-        "y18n": "3.2.1",
-        "yargs-parser": "5.0.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz",
-          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "yargs-parser": {
-      "version": "5.0.0",
-      "resolved": "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-5.0.0.tgz",
-      "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "camelcase": "3.0.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "3.0.0",
-          "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz",
-          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "yeast": {
-      "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/yeast/download/yeast-0.1.2.tgz",
-      "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
-      "dev": true
-    },
-    "yn": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/yn/download/yn-2.0.0.tgz",
-      "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
-      "dev": true
-    },
-    "zip-stream": {
-      "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/zip-stream/download/zip-stream-1.2.0.tgz",
-      "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=",
-      "dev": true,
-      "requires": {
-        "archiver-utils": "1.3.0",
-        "compress-commons": "1.2.2",
-        "lodash": "4.17.4",
-        "readable-stream": "2.3.3"
-      }
-    },
-    "zone.js": {
-      "version": "0.8.18",
-      "resolved": "http://registry.npm.taobao.org/zone.js/download/zone.js-0.8.18.tgz",
-      "integrity": "sha1-jOyzl3/NGzCQVi/0Vw4oR+dStI0="
-    }
-  }
-}
diff --git a/package.json b/package.json
index cdfaf25..ef3b7f9 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
-  "name": "screen-frontend",
-  "version": "1.0.0",
+  "name": "ng-alain",
+  "version": "0.6.0-rc.2",
   "description": "ng-zorro-antd admin panel front-end framework",
   "author": "cipchk",
   "homepage": "https://cipchk.github.io/ng-alain/",
@@ -24,8 +24,8 @@
     "lint:style": "stylelint \"{src}/**/*.less\" --syntax less",
     "lint-staged": "lint-staged",
     "e2e": "ng e2e",
-    "test": "ng test -sr",
-    "test-coverage": "ng test -sr -cc"
+    "test": "ng test -sr -sm=false",
+    "test-coverage": "ng test -sr -cc -sm=false"
   },
   "dependencies": {
     "@angular/animations": "^5.0.0",
@@ -37,30 +37,36 @@
     "@angular/platform-browser": "^5.0.0",
     "@angular/platform-browser-dynamic": "^5.0.0",
     "@angular/router": "^5.0.0",
-    "@antv/data-set": "^0.7.0",
+    "@antv/data-set": "^0.8.3",
     "@antv/g2": "^3.0.1",
     "@antv/g2-plugin-slider": "^2.0.0",
-    "@delon/abc": "^0.3.0-rc.1",
-    "@delon/acl": "^0.3.0-rc.1",
-    "@delon/theme": "^0.3.0-rc.1",
-    "@delon/auth": "^0.3.0-rc.1",
+    "@delon/abc": "^0.6.0-rc.2",
+    "@delon/acl": "^0.6.0-rc.2",
+    "@delon/auth": "^0.6.0-rc.2",
+    "@delon/theme": "^0.6.0-rc.2",
+    "@delon/mock": "^0.6.0-rc.2",
+    "@delon/cache": "^0.6.0-rc.2",
     "@ngx-translate/core": "^9.0.0",
     "@ngx-translate/http-loader": "^2.0.0",
     "angular-baidu-maps": "^1.0.1",
     "angular-qq-maps": "^1.0.1",
-    "angular-tree-component": "^6.1.0",
+    "angular-split": "^1.0.0-rc.0",
+    "angular-tree-component": "^7.0.1",
     "core-js": "^2.5.1",
     "file-saver": "^1.3.3",
     "font-awesome": "^4.7.0",
     "moment": "^2.19.3",
+    "ng-clipboard-antd": "^2.0.1",
     "ng-tree-antd": "^2.0.0",
     "ng-zorro-antd": "^0.6.5",
-    "ng-zorro-antd-extra": "^1.1.3",
+    "ng-zorro-antd-extra": "^1.1.6",
     "ng2-dnd": "^5.0.0",
     "ng2-file-upload": "^1.2.1",
     "ng2-img-cropper": "^0.9.0",
     "ngx-color-picker": "^5.0.0",
     "ngx-countdown": "^2.0.0",
+    "ngx-tinymce": "^1.0.1",
+    "ngx-ueditor": "^1.1.0",
     "rxjs": "^5.5.5",
     "screenfull": "^3.3.1",
     "simple-line-icons": "^2.4.1",
@@ -76,6 +82,7 @@
     "@angularclass/hmr-loader": "^3.0.4",
     "@types/jasmine": "~2.6.0",
     "@types/jasminewd2": "~2.0.3",
+    "@types/jszip": "^3.1.2",
     "@types/node": "~6.0.60",
     "codecov": "^3.0.0",
     "codelyzer": "~4.0.1",
@@ -97,7 +104,10 @@
     "ts-node": "~3.2.0",
     "tslint": "~5.7.0",
     "typescript": "~2.5.0",
-    "webpack-bundle-analyzer": "^2.9.0"
+    "webpack-bundle-analyzer": "^2.9.0",
+    "mockjs": "^1.0.1-beta3",
+    "@types/mockjs": "^1.0.0",
+    "xlsx": "^0.11.16"
   },
   "lint-staged": {
     "src/**/*.ts": "lint:ts",
diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts
index 213e0e0..38f388f 100644
--- a/src/app/app.component.spec.ts
+++ b/src/app/app.component.spec.ts
@@ -1,15 +1,13 @@
 import { TestBed, TestModuleMetadata } from '@angular/core/testing';
-import { setUpTestBed } from '../testing/common.spec';
+import { APP_BASE_HREF } from '@angular/common';
+import { setUpTestBed } from '@testing/common.spec';
 
 import { AppComponent } from './app.component';
-import { APP_BASE_HREF } from '@angular/common';
-import { ThemesService, TitleService } from '@delon/theme';
 
 describe('Component: App', () => {
     setUpTestBed(<TestModuleMetadata>{
         declarations: [ AppComponent ],
         providers: [
-            ThemesService, TitleService,
             { provide: APP_BASE_HREF, useValue: '/' }
         ]
     });
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index a5e4a7d..3061d6f 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -1,27 +1,26 @@
-import { DateService } from '@business/services/util/date.service';
-import { BrowserModule } from '@angular/platform-browser';
 import { NgModule, LOCALE_ID, APP_INITIALIZER, Injector } from '@angular/core';
+import { HttpClient, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
+import { BrowserModule } from '@angular/platform-browser';
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import { TranslateModule, TranslateLoader, TranslateService } from '@ngx-translate/core';
-import { TranslateHttpLoader } from '@ngx-translate/http-loader';
-import { HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';
+
+import { DelonModule } from './delon.module';
 import { CoreModule } from './core/core.module';
 import { SharedModule } from './shared/shared.module';
 import { AppComponent } from './app.component';
 import { RoutesModule } from './routes/routes.module';
 import { LayoutModule } from './layout/layout.module';
-import { StartupService } from './core/services/startup.service';
+import { StartupService } from '@core/startup/startup.service';
 import { DefaultInterceptor } from '@core/net/default.interceptor';
-import { AlainAuthModule, SimpleInterceptor } from '@delon/auth';
-
-// i18n
-import { I18NService } from './core/i18n/i18n.service';
-import { ALAIN_I18N_TOKEN } from '@delon/theme';
-
+import { SimpleInterceptor } from '@delon/auth';
+// angular i18n
 import { registerLocaleData } from '@angular/common';
 import localeZhHans from '@angular/common/locales/zh-Hans';
-
 registerLocaleData(localeZhHans);
+// i18n
+import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
+import { TranslateHttpLoader } from '@ngx-translate/http-loader';
+import { ALAIN_I18N_TOKEN } from '@delon/theme';
+import { I18NService } from '@core/i18n/i18n.service';
 
 // AoT requires an exported function for factories
 export function HttpLoaderFactory(http: HttpClient) {
@@ -39,14 +38,12 @@
     imports: [
         BrowserModule,
         BrowserAnimationsModule,
-        SharedModule.forRoot(),
+        HttpClientModule,
+        DelonModule,
         CoreModule,
+        SharedModule,
         LayoutModule,
         RoutesModule,
-        // auth
-        AlainAuthModule.forRoot({
-            login_url: `/pro/user/login`
-        }),
         // i18n
         TranslateModule.forRoot({
             loader: {
@@ -57,11 +54,11 @@
         })
     ],
     providers: [
-        { provide: LOCALE_ID, useValue: 'zh-Hans' },
-        { provide: HTTP_INTERCEPTORS, useClass: SimpleInterceptor, multi: true},
-        { provide: HTTP_INTERCEPTORS, useClass: DefaultInterceptor, multi: true},
+        { provide: LOCALE_ID, useValue: 'zh-Hans' }, 
+        // TODO ������������������������       
+        //{ provide: HTTP_INTERCEPTORS, useClass: SimpleInterceptor, multi: true},    
+        { provide: HTTP_INTERCEPTORS, useClass: DefaultInterceptor, multi: true},    
         { provide: ALAIN_I18N_TOKEN, useClass: I18NService, multi: false },
-        DateService,
         StartupService,
         {
             provide: APP_INITIALIZER,
diff --git a/src/app/core/README.md b/src/app/core/README.md
new file mode 100644
index 0000000..2d98e12
--- /dev/null
+++ b/src/app/core/README.md
@@ -0,0 +1,5 @@
+### CoreModule
+
+**���** ��������� `providers` ���������
+
+**���������**  ���������������������������������������������HTTP���������������
diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts
index ac8a35d..29760e9 100644
--- a/src/app/core/core.module.ts
+++ b/src/app/core/core.module.ts
@@ -1,16 +1,11 @@
 import { NgModule, Optional, SkipSelf } from '@angular/core';
 import { throwIfAlreadyLoaded } from './module-import-guard';
-import { AlainThemeModule } from '@delon/theme';
 
 import { I18NService } from './i18n/i18n.service';
-import { _HttpClient } from '@delon/theme/services/http/http.client';
 
 @NgModule({
-    imports: [
-       AlainThemeModule.forRoot()
-    ],
     providers: [
-        I18NService, _HttpClient
+        I18NService
     ]
 })
 export class CoreModule {
diff --git a/src/app/core/i18n/i18n.service.spec.ts b/src/app/core/i18n/i18n.service.spec.ts
index 926da94..9b75a0a 100644
--- a/src/app/core/i18n/i18n.service.spec.ts
+++ b/src/app/core/i18n/i18n.service.spec.ts
@@ -1,4 +1,3 @@
-import { SharedModule } from '@shared/shared.module';
 import { TestBed, async, inject } from '@angular/core/testing';
 import { TranslateService, TranslateModule, TranslateLoader } from '@ngx-translate/core';
 import { HttpClient, HttpClientModule } from '@angular/common/http';
@@ -6,13 +5,16 @@
 import { I18NService } from './i18n.service';
 import { HttpLoaderFactory } from '../../app.module';
 import { SettingsService } from '@delon/theme';
+import { DelonModule } from '../../delon.module';
+import { SharedModule } from '@shared/shared.module';
 
 describe('Service: I18n', () => {
     beforeEach(() => {
         TestBed.configureTestingModule({
             imports: [
                 HttpClientModule,
-                SharedModule.forRoot(),
+                DelonModule,
+                SharedModule,
                 TranslateModule.forRoot({
                     loader: {
                         provide: TranslateLoader,
diff --git a/src/app/core/i18n/i18n.service.ts b/src/app/core/i18n/i18n.service.ts
index 9e8fc05..b01d206 100644
--- a/src/app/core/i18n/i18n.service.ts
+++ b/src/app/core/i18n/i18n.service.ts
@@ -8,24 +8,25 @@
 @Injectable()
 export class I18NService implements AlainI18NService {
 
-    private _default = 'en';
+    private _default = 'zh-CN';
 
     private _langs = [
         { code: 'zh-CN', text: '������' },
         { code: 'en', text: 'English' }
     ];
 
-    constructor(settings: SettingsService,
+    constructor(
+        settings: SettingsService,
         private nzLocalService: NzLocaleService,
         private translate: TranslateService,
-        private injector: Injector) {
+        private injector: Injector
+    ) {
         this._default = settings.layout.lang || translate.getBrowserLang();
         const lans = this._langs.map(item => item.code);
         if (!lans.includes(this._default)) {
             this._default = lans[0];
         }
         translate.addLangs(lans);
-        translate.setDefaultLang(this._default);
     }
 
     use(lang: string = null, firstLoad = true): Observable<any> {
@@ -35,13 +36,20 @@
         if (!firstLoad) this.injector.get(Router).navigate([ '/' ]);
         return this.translate.use(lang);
     }
-
+    /** ������������������ */
     getLangs() {
         return this._langs;
     }
-
+    /** ������ */
     fanyi(key: string) {
         return this.translate.instant(key);
     }
-
+    /** ������������ */
+    get defaultLang() {
+        return this._default;
+    }
+    /** ������������ */
+    get currentLang() {
+        return this.translate.currentLang || this.translate.getDefaultLang() || this._default;
+    }
 }
diff --git a/src/app/core/net/default.interceptor.ts b/src/app/core/net/default.interceptor.ts
index 646fd59..7fa1f36 100644
--- a/src/app/core/net/default.interceptor.ts
+++ b/src/app/core/net/default.interceptor.ts
@@ -7,8 +7,7 @@
 import { ErrorObservable } from 'rxjs/observable/ErrorObservable';
 import { catchError } from 'rxjs/operators';
 import { map, mergeMap } from 'rxjs/operators';
-
-import { environment } from '../../../environments/environment';
+import { environment } from '@env/environment';
 
 /**
  * ������HTTP������������������������������ `app.module.ts`
@@ -27,13 +26,12 @@
 
         // TIPS������TOKEN��������������� `@delon/auth` ������
         // Document: http://ng-alain.com/docs/auth
-
         // ���������������������������
         let url = req.url;
+        
         if (!url.startsWith('https://') && !url.startsWith('http://')) {
             url = environment.SERVER_URL + url;
         }
-
         const newReq = req.clone({
             url: url
         });
diff --git a/src/app/core/services/startup.service.ts b/src/app/core/services/startup.service.ts
deleted file mode 100644
index f5e4bb7..0000000
--- a/src/app/core/services/startup.service.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { Router } from '@angular/router';
-import { Injectable, Injector } from '@angular/core';
-import { HttpClient, HttpErrorResponse } from '@angular/common/http';
-import { MenuService, SettingsService, TitleService } from '@delon/theme';
-import { ACLService } from '@delon/acl';
-import { I18NService } from '../i18n/i18n.service';
-
-/**
- * ���������������������
- * ���������������������������������������������������
- */
-@Injectable()
-export class StartupService {
-    constructor(
-        private menuService: MenuService,
-        private i18n: I18NService,
-        private settingService: SettingsService,
-        private aclService: ACLService,
-        private titleService: TitleService,
-        private httpClient: HttpClient,
-        private injector: Injector) { }
-
-    load(): Promise<any> {
-        // only works with promises
-        // https://github.com/angular/angular/issues/15088
-        return new Promise((resolve, reject) => {
-            this.httpClient.get('assets/app-data.json')
-                           .subscribe((res: any) => {
-                               // ������������������������������������������������
-                                this.settingService.setApp(res.app);
-                                // ���������������������������������������������������
-                                this.settingService.setUser(res.user);
-                                // ACL������������������������
-                                this.aclService.setFull(true);
-                                // ���������������
-                                this.menuService.add(res.menu);
-                                // i18n���������������������
-                                this.i18n.use(this.settingService.layout.lang);
-                                // ���������������������������
-                                this.titleService.suffix = res.app.name;
-
-                                resolve(res);
-                            }, (err: HttpErrorResponse) => {
-                                resolve(null);
-                            });
-        });
-    }
-}
diff --git a/src/app/core/startup/startup.service.ts b/src/app/core/startup/startup.service.ts
new file mode 100644
index 0000000..1cb67ee
--- /dev/null
+++ b/src/app/core/startup/startup.service.ts
@@ -0,0 +1,57 @@
+import { Injectable, Injector } from '@angular/core';
+import { Router } from '@angular/router';
+import { HttpClient, HttpErrorResponse } from '@angular/common/http';
+import { zip } from 'rxjs/observable/zip';
+import { TranslateService } from '@ngx-translate/core';
+import { MenuService, SettingsService, TitleService } from '@delon/theme';
+import { ACLService } from '@delon/acl';
+import { I18NService } from '../i18n/i18n.service';
+
+/**
+ * ���������������������
+ * ���������������������������������������������������
+ */
+@Injectable()
+export class StartupService {
+    constructor(
+        private menuService: MenuService,
+        private translate: TranslateService,
+        private i18n: I18NService,
+        private settingService: SettingsService,
+        private aclService: ACLService,
+        private titleService: TitleService,
+        private httpClient: HttpClient,
+        private injector: Injector) { }
+
+    load(): Promise<any> {
+        // only works with promises
+        // https://github.com/angular/angular/issues/15088
+        return new Promise((resolve, reject) => {
+            zip(
+                this.httpClient.get(`assets/i18n/${this.i18n.defaultLang}.json`),
+                this.httpClient.get('assets/app-data.json'),
+            ).subscribe(([langData, appData]) => {
+                // setting language data
+                this.translate.setTranslation(this.i18n.defaultLang, langData);
+                this.translate.setDefaultLang(this.i18n.defaultLang);
+
+                // application data
+                const res: any = appData;
+                // ������������������������������������������������
+                this.settingService.setApp(res.app);
+                // ���������������������������������������������������
+                this.settingService.setUser(res.user);
+                // ACL������������������������
+                this.aclService.setFull(true);
+                // ���������������
+                this.menuService.add(res.menu);
+                // ���������������������������
+                this.titleService.suffix = res.app.name;
+
+                resolve(res);
+            }, (err: HttpErrorResponse) => {
+                resolve(null);
+            });
+        });
+    }
+}
diff --git a/src/app/delon.module.ts b/src/app/delon.module.ts
new file mode 100644
index 0000000..ba076da
--- /dev/null
+++ b/src/app/delon.module.ts
@@ -0,0 +1,208 @@
+/**
+ * ���������������������������������������
+ * ������������������������������������������https://github.com/cipchk/ng-alain/issues/180
+ */
+import { NgModule, Optional, SkipSelf } from '@angular/core';
+import { throwIfAlreadyLoaded } from '@core/module-import-guard';
+
+// region: zorro modules
+
+import {
+    // LoggerModule,
+    // NzLocaleModule,
+    NzButtonModule,
+    NzAlertModule,
+    NzBadgeModule,
+    // NzCalendarModule,
+    NzCascaderModule,
+    NzCheckboxModule,
+    NzDatePickerModule,
+    NzFormModule,
+    NzInputModule,
+    NzInputNumberModule,
+    NzGridModule,
+    NzMessageModule,
+    NzModalModule,
+    NzNotificationModule,
+    NzPaginationModule,
+    NzPopconfirmModule,
+    NzPopoverModule,
+    NzRadioModule,
+    NzRateModule,
+    NzSelectModule,
+    NzSpinModule,
+    NzSliderModule,
+    NzSwitchModule,
+    NzProgressModule,
+    NzTableModule,
+    NzTabsModule,
+    NzTagModule,
+    NzTimePickerModule,
+    NzUtilModule,
+    NzStepsModule,
+    NzDropDownModule,
+    NzMenuModule,
+    NzBreadCrumbModule,
+    NzLayoutModule,
+    NzRootModule,
+    NzCarouselModule,
+    // NzCardModule,
+    NzCollapseModule,
+    NzTimelineModule,
+    NzToolTipModule,
+    // NzBackTopModule,
+    // NzAffixModule,
+    // NzAnchorModule,
+    NzAvatarModule,
+    // SERVICES
+    NzNotificationService,
+    NzMessageService
+} from 'ng-zorro-antd';
+export const ZORROMODULES = [
+    // LoggerModule,
+    // NzLocaleModule,
+    NzButtonModule,
+    NzAlertModule,
+    NzBadgeModule,
+    // NzCalendarModule,
+    NzCascaderModule,
+    NzCheckboxModule,
+    NzDatePickerModule,
+    NzFormModule,
+    NzInputModule,
+    NzInputNumberModule,
+    NzGridModule,
+    NzMessageModule,
+    NzModalModule,
+    NzNotificationModule,
+    NzPaginationModule,
+    NzPopconfirmModule,
+    NzPopoverModule,
+    NzRadioModule,
+    NzRateModule,
+    NzSelectModule,
+    NzSpinModule,
+    NzSliderModule,
+    NzSwitchModule,
+    NzProgressModule,
+    NzTableModule,
+    NzTabsModule,
+    NzTagModule,
+    NzTimePickerModule,
+    NzUtilModule,
+    NzStepsModule,
+    NzDropDownModule,
+    NzMenuModule,
+    NzBreadCrumbModule,
+    NzLayoutModule,
+    NzRootModule,
+    NzCarouselModule,
+    // NzCardModule,
+    NzCollapseModule,
+    NzTimelineModule,
+    NzToolTipModule,
+    // NzBackTopModule,
+    // NzAffixModule,
+    // NzAnchorModule,
+    NzAvatarModule
+];
+// endregion
+
+// region: @delon/abc modules
+import {
+    AdSimpleTableModule,
+    AdReuseTabModule,
+    AdAvatarListModule,
+    AdChartsModule,
+    AdCountDownModule,
+    AdDescListModule,
+    AdEllipsisModule,
+    AdErrorCollectModule,
+    AdExceptionModule,
+    AdFooterToolbarModule,
+    AdGlobalFooterModule,
+    AdNoticeIconModule,
+    AdNumberInfoModule,
+    AdProHeaderModule,
+    AdResultModule,
+    AdSidebarNavModule,
+    AdStandardFormRowModule,
+    AdTagSelectModule,
+    AdTrendModule,
+    AdDownFileModule,
+    AdImageModule,
+    AdUtilsModule,
+    AdFullContentModule,
+    AdXlsxModule,
+    AdZipModule
+} from '@delon/abc';
+export const ABCMODULES = [
+    AdSimpleTableModule,
+    AdReuseTabModule,
+    AdAvatarListModule,
+    AdChartsModule,
+    AdCountDownModule,
+    AdDescListModule,
+    AdEllipsisModule,
+    AdErrorCollectModule,
+    AdExceptionModule,
+    AdFooterToolbarModule,
+    AdGlobalFooterModule,
+    AdNoticeIconModule,
+    AdNumberInfoModule,
+    AdProHeaderModule,
+    AdResultModule,
+    AdSidebarNavModule,
+    AdStandardFormRowModule,
+    AdTagSelectModule,
+    AdTrendModule,
+    AdDownFileModule,
+    AdImageModule,
+    AdUtilsModule,
+    AdFullContentModule,
+    AdXlsxModule,
+    AdZipModule
+];
+// endregion
+
+import { NgZorroAntdModule } from 'ng-zorro-antd';
+import { NgZorroAntdExtraModule } from 'ng-zorro-antd-extra';
+import { AlainThemeModule } from '@delon/theme';
+import { AlainABCModule } from '@delon/abc';
+import { AlainAuthModule } from '@delon/auth';
+import { AlainACLModule } from '@delon/acl';
+import { DelonCacheModule } from '@delon/cache';
+// mock
+import { DelonMockModule } from '@delon/mock';
+import * as MOCKDATA from '../../_mock';
+import { environment } from '@env/environment';
+const MOCKMODULE = !environment.production || environment.chore === true ?
+                    [ DelonMockModule.forRoot({ data: MOCKDATA }) ] : [];
+
+@NgModule({
+    imports: [
+        NgZorroAntdModule.forRoot(),
+        NgZorroAntdExtraModule.forRoot(),
+        // theme
+        AlainThemeModule.forRoot(),
+        // abc
+        AlainABCModule.forRoot(),
+        // auth
+        AlainAuthModule.forRoot({
+            // ignores: [ `\\/login`, `assets\\/` ],
+            login_url: `/passport/login`,
+            allow_anonymous_key: `_allow_anonymous`
+        }),
+        // acl
+        AlainACLModule.forRoot(),
+        // cache
+        DelonCacheModule.forRoot(),
+        // mock
+        ...MOCKMODULE
+    ]
+})
+export class DelonModule {
+  constructor( @Optional() @SkipSelf() parentModule: DelonModule) {
+    throwIfAlreadyLoaded(parentModule, 'DelonModule');
+  }
+}
diff --git a/src/app/layout/layout.component.html b/src/app/layout/default/default.component.html
similarity index 60%
rename from src/app/layout/layout.component.html
rename to src/app/layout/default/default.component.html
index 796d712..89fde65 100644
--- a/src/app/layout/layout.component.html
+++ b/src/app/layout/default/default.component.html
@@ -2,5 +2,8 @@
     <div class="router-progress-bar" *ngIf="isFetching"></div>
     <app-header class="header"></app-header>
     <app-sidebar class="aside"></app-sidebar>
-    <section class="content"><router-outlet></router-outlet></section>
+    <section class="content">
+        <reuse-tab></reuse-tab>
+        <router-outlet></router-outlet>
+    </section>
 </div>
diff --git a/src/app/layout/default/default.component.spec.ts b/src/app/layout/default/default.component.spec.ts
new file mode 100644
index 0000000..cd26602
--- /dev/null
+++ b/src/app/layout/default/default.component.spec.ts
@@ -0,0 +1,17 @@
+import { TestBed, TestModuleMetadata } from '@angular/core/testing';
+
+import { setUpTestBed } from '@testing/common.spec';
+
+import { LayoutDefaultComponent } from './default.component';
+
+describe('Layout', () => {
+    setUpTestBed(<TestModuleMetadata>{
+        declarations: [LayoutDefaultComponent]
+    });
+
+    it('should create an instance', () => {
+        const fixture = TestBed.createComponent(LayoutDefaultComponent);
+        const comp = fixture.debugElement.componentInstance;
+        expect(comp).toBeTruthy();
+    });
+});
diff --git a/src/app/layout/layout.component.ts b/src/app/layout/default/default.component.ts
similarity index 90%
rename from src/app/layout/layout.component.ts
rename to src/app/layout/default/default.component.ts
index 79c0624..2055b6c 100644
--- a/src/app/layout/layout.component.ts
+++ b/src/app/layout/default/default.component.ts
@@ -4,10 +4,10 @@
 import { ScrollService, MenuService, SettingsService } from '@delon/theme';
 
 @Component({
-    selector: 'app-layout',
-    templateUrl: './layout.component.html'
+    selector: 'layout-default',
+    templateUrl: './default.component.html'
 })
-export class LayoutComponent {
+export class LayoutDefaultComponent {
     isFetching = false;
 
     constructor(
diff --git a/src/app/layout/header/components/fullscreen.component.ts b/src/app/layout/default/header/components/fullscreen.component.ts
similarity index 87%
rename from src/app/layout/header/components/fullscreen.component.ts
rename to src/app/layout/default/header/components/fullscreen.component.ts
index 4a0d8c4..58138f4 100644
--- a/src/app/layout/header/components/fullscreen.component.ts
+++ b/src/app/layout/default/header/components/fullscreen.component.ts
@@ -5,7 +5,7 @@
     selector: 'header-fullscreen',
     template: `
     <i class="anticon anticon-{{status ? 'shrink' : 'arrows-alt'}}"></i>
-    {{status ? 'fullscreen-exit' : 'fullscreen' | translate }}
+    {{(status ? 'fullscreen-exit' : 'fullscreen') | translate }}
     `
 })
 export class HeaderFullScreenComponent {
diff --git a/src/app/layout/header/components/icon.component.ts b/src/app/layout/default/header/components/icon.component.ts
similarity index 100%
rename from src/app/layout/header/components/icon.component.ts
rename to src/app/layout/default/header/components/icon.component.ts
diff --git a/src/app/layout/header/components/langs.component.ts b/src/app/layout/default/header/components/langs.component.ts
similarity index 100%
rename from src/app/layout/header/components/langs.component.ts
rename to src/app/layout/default/header/components/langs.component.ts
diff --git a/src/app/layout/header/components/notify.component.ts b/src/app/layout/default/header/components/notify.component.ts
similarity index 100%
rename from src/app/layout/header/components/notify.component.ts
rename to src/app/layout/default/header/components/notify.component.ts
diff --git a/src/app/layout/header/components/search.component.ts b/src/app/layout/default/header/components/search.component.ts
similarity index 100%
rename from src/app/layout/header/components/search.component.ts
rename to src/app/layout/default/header/components/search.component.ts
diff --git a/src/app/layout/header/components/storage.component.ts b/src/app/layout/default/header/components/storage.component.ts
similarity index 100%
rename from src/app/layout/header/components/storage.component.ts
rename to src/app/layout/default/header/components/storage.component.ts
diff --git a/src/app/layout/header/components/task.component.ts b/src/app/layout/default/header/components/task.component.ts
similarity index 100%
rename from src/app/layout/header/components/task.component.ts
rename to src/app/layout/default/header/components/task.component.ts
diff --git a/src/app/layout/header/components/theme.component.ts b/src/app/layout/default/header/components/theme.component.ts
similarity index 100%
rename from src/app/layout/header/components/theme.component.ts
rename to src/app/layout/default/header/components/theme.component.ts
diff --git a/src/app/layout/header/components/user.component.ts b/src/app/layout/default/header/components/user.component.ts
similarity index 95%
rename from src/app/layout/header/components/user.component.ts
rename to src/app/layout/default/header/components/user.component.ts
index f8a2271..6183373 100644
--- a/src/app/layout/header/components/user.component.ts
+++ b/src/app/layout/default/header/components/user.component.ts
@@ -30,6 +30,7 @@
         this.tokenService.change().subscribe((res: any) => {
             this.settings.setUser(res);
         });
+        // mock
         const token = this.tokenService.get() || {
             token: 'nothing',
             name: 'Admin',
@@ -41,6 +42,6 @@
 
     logout() {
         this.tokenService.clear();
-        this.router.navigateByUrl('/pro/user/login');
+        this.router.navigateByUrl(this.tokenService.login_url);
     }
 }
diff --git a/src/app/layout/header/header.component.html b/src/app/layout/default/header/header.component.html
similarity index 97%
rename from src/app/layout/header/header.component.html
rename to src/app/layout/default/header/header.component.html
index a738920..134ccc8 100644
--- a/src/app/layout/header/header.component.html
+++ b/src/app/layout/default/header/header.component.html
@@ -20,7 +20,7 @@
         </li>
         <!-- Lock Page -->
         <li class="hidden-xs">
-            <div class="item" [routerLink]="['/lock']">
+            <div class="item" [routerLink]="['/pages/lock']">
                 <i class="anticon anticon-lock"></i>
             </div>
         </li>
diff --git a/src/app/layout/header/header.component.spec.ts b/src/app/layout/default/header/header.component.spec.ts
similarity index 89%
rename from src/app/layout/header/header.component.spec.ts
rename to src/app/layout/default/header/header.component.spec.ts
index 5999222..4305fe5 100644
--- a/src/app/layout/header/header.component.spec.ts
+++ b/src/app/layout/default/header/header.component.spec.ts
@@ -1,6 +1,5 @@
 import { TestBed, TestModuleMetadata } from '@angular/core/testing';
-
-import { setUpTestBed } from 'testing/common.spec';
+import { setUpTestBed } from '@testing/common.spec';
 
 import { HeaderComponent } from './header.component';
 
diff --git a/src/app/layout/header/header.component.ts b/src/app/layout/default/header/header.component.ts
similarity index 100%
rename from src/app/layout/header/header.component.ts
rename to src/app/layout/default/header/header.component.ts
diff --git a/src/app/layout/header/index.md b/src/app/layout/default/header/index.md
similarity index 100%
rename from src/app/layout/header/index.md
rename to src/app/layout/default/header/index.md
diff --git a/src/app/layout/sidebar/sidebar.component.html b/src/app/layout/default/sidebar/sidebar.component.html
similarity index 100%
rename from src/app/layout/sidebar/sidebar.component.html
rename to src/app/layout/default/sidebar/sidebar.component.html
diff --git a/src/app/layout/sidebar/sidebar.component.spec.ts b/src/app/layout/default/sidebar/sidebar.component.spec.ts
similarity index 88%
rename from src/app/layout/sidebar/sidebar.component.spec.ts
rename to src/app/layout/default/sidebar/sidebar.component.spec.ts
index 0f07032..1afa67e 100644
--- a/src/app/layout/sidebar/sidebar.component.spec.ts
+++ b/src/app/layout/default/sidebar/sidebar.component.spec.ts
@@ -1,5 +1,5 @@
 import { TestBed, TestModuleMetadata } from '@angular/core/testing';
-import { setUpTestBed } from '../../../testing/common.spec';
+import { setUpTestBed } from '@testing/common.spec';
 
 import { SidebarComponent } from './sidebar.component';
 
diff --git a/src/app/layout/sidebar/sidebar.component.ts b/src/app/layout/default/sidebar/sidebar.component.ts
similarity index 100%
rename from src/app/layout/sidebar/sidebar.component.ts
rename to src/app/layout/default/sidebar/sidebar.component.ts
diff --git a/src/app/layout/fullscreen/fullscreen.component.ts b/src/app/layout/fullscreen/fullscreen.component.ts
index bae241a..0da593b 100644
--- a/src/app/layout/fullscreen/fullscreen.component.ts
+++ b/src/app/layout/fullscreen/fullscreen.component.ts
@@ -1,7 +1,7 @@
 import { Component } from '@angular/core';
 
 @Component({
-    selector: 'app-layout-fullscreen',
+    selector: 'layout-fullscreen',
     templateUrl: './fullscreen.component.html'
 })
 export class LayoutFullScreenComponent {
diff --git a/src/app/layout/layout.component.spec.ts b/src/app/layout/layout.component.spec.ts
deleted file mode 100644
index 03facd8..0000000
--- a/src/app/layout/layout.component.spec.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { TestBed, TestModuleMetadata } from '@angular/core/testing';
-
-import { setUpTestBed } from 'testing/common.spec';
-
-import { LayoutComponent } from './layout.component';
-
-describe('Layout', () => {
-    setUpTestBed(<TestModuleMetadata>{
-        declarations: [LayoutComponent]
-    });
-
-    it('should create an instance', () => {
-        const fixture = TestBed.createComponent(LayoutComponent);
-        const comp = fixture.debugElement.componentInstance;
-        expect(comp).toBeTruthy();
-    });
-});
diff --git a/src/app/layout/layout.module.ts b/src/app/layout/layout.module.ts
index 5c6b9c6..221d8ec 100644
--- a/src/app/layout/layout.module.ts
+++ b/src/app/layout/layout.module.ts
@@ -1,22 +1,22 @@
 import { NgModule } from '@angular/core';
-
 import { SharedModule } from '@shared/shared.module';
-import { LayoutComponent } from './layout.component';
+
+import { LayoutDefaultComponent } from './default/default.component';
 import { LayoutFullScreenComponent } from './fullscreen/fullscreen.component';
-import { HeaderComponent } from './header/header.component';
-import { SidebarComponent } from './sidebar/sidebar.component';
-import { HeaderSearchComponent } from './header/components/search.component';
-import { HeaderThemeComponent } from './header/components/theme.component';
-import { HeaderNotifyComponent } from './header/components/notify.component';
-import { HeaderTaskComponent } from './header/components/task.component';
-import { HeaderIconComponent } from './header/components/icon.component';
-import { HeaderFullScreenComponent } from './header/components/fullscreen.component';
-import { HeaderLangsComponent } from './header/components/langs.component';
-import { HeaderStorageComponent } from './header/components/storage.component';
-import { HeaderUserComponent } from './header/components/user.component';
+import { HeaderComponent } from './default/header/header.component';
+import { SidebarComponent } from './default/sidebar/sidebar.component';
+import { HeaderSearchComponent } from './default/header/components/search.component';
+import { HeaderThemeComponent } from './default/header/components/theme.component';
+import { HeaderNotifyComponent } from './default/header/components/notify.component';
+import { HeaderTaskComponent } from './default/header/components/task.component';
+import { HeaderIconComponent } from './default/header/components/icon.component';
+import { HeaderFullScreenComponent } from './default/header/components/fullscreen.component';
+import { HeaderLangsComponent } from './default/header/components/langs.component';
+import { HeaderStorageComponent } from './default/header/components/storage.component';
+import { HeaderUserComponent } from './default/header/components/user.component';
 
 const COMPONENTS = [
-    LayoutComponent,
+    LayoutDefaultComponent,
     LayoutFullScreenComponent,
     HeaderComponent,
     SidebarComponent
@@ -34,10 +34,10 @@
     HeaderUserComponent
 ];
 
-// pro
-import { ProUserLayoutComponent } from './pro/user/user.component';
-const PRO = [
-    ProUserLayoutComponent
+// passport
+import { LayoutPassportComponent } from './passport/passport.component';
+const PASSPORT = [
+    LayoutPassportComponent
 ];
 
 @NgModule({
@@ -46,11 +46,11 @@
     declarations: [
         ...COMPONENTS,
         ...HEADERCOMPONENTS,
-        ...PRO
+        ...PASSPORT
     ],
     exports: [
         ...COMPONENTS,
-        ...PRO
+        ...PASSPORT
     ]
 })
 export class LayoutModule { }
diff --git a/src/app/layout/pro/user/user.component.html b/src/app/layout/passport/passport.component.html
similarity index 100%
rename from src/app/layout/pro/user/user.component.html
rename to src/app/layout/passport/passport.component.html
diff --git a/src/app/layout/pro/user/user.component.less b/src/app/layout/passport/passport.component.less
similarity index 100%
rename from src/app/layout/pro/user/user.component.less
rename to src/app/layout/passport/passport.component.less
diff --git a/src/app/layout/pro/user/user.component.ts b/src/app/layout/passport/passport.component.ts
similarity index 64%
rename from src/app/layout/pro/user/user.component.ts
rename to src/app/layout/passport/passport.component.ts
index 46819db..f16be06 100644
--- a/src/app/layout/pro/user/user.component.ts
+++ b/src/app/layout/passport/passport.component.ts
@@ -1,11 +1,11 @@
 import { Component } from '@angular/core';
 
 @Component({
-    selector: 'pro-user-layout',
-    templateUrl: './user.component.html',
-    styleUrls: ['./user.component.less']
+    selector: 'layout-passport',
+    templateUrl: './passport.component.html',
+    styleUrls: ['./passport.component.less']
 })
-export class ProUserLayoutComponent {
+export class LayoutPassportComponent {
     links = [
         {
             title: '������',
diff --git a/src/app/routes/dashboard/analysis/analysis.component.ts b/src/app/routes/dashboard/analysis/analysis.component.ts
index cf7b128..8a196fb 100644
--- a/src/app/routes/dashboard/analysis/analysis.component.ts
+++ b/src/app/routes/dashboard/analysis/analysis.component.ts
@@ -1,7 +1,8 @@
+import { HttpClient } from '@angular/common/http';
 import { Component, OnInit } from '@angular/core';
 import { NzMessageService } from 'ng-zorro-antd';
 import { getTimeDistance, yuan } from '@delon/abc';
-import { getFakeChartData } from '../../../../../_mock/chart.service';
+import { _HttpClient } from '@delon/theme';
 
 @Component({
     selector: 'app-dashboard-analysis',
@@ -9,6 +10,7 @@
     styleUrls: ['./analysis.component.less']
 })
 export class DashboardAnalysisComponent implements OnInit {
+    
     data: any = {
         salesData: [],
         offlineData: []
@@ -25,17 +27,18 @@
         };
     });
 
-    constructor(public msg: NzMessageService) {}
+    constructor(private http: _HttpClient, public msg: NzMessageService,
+    private http2: HttpClient) {}
 
     ngOnInit() {
-        setTimeout(() => {
-            this.data = Object.assign({}, getFakeChartData);
-            this.data.offlineData.forEach((item: any) => {
-                item.chart = Object.assign([], getFakeChartData.offlineChartData);
+        this.http.get('/chart').subscribe((res: any) => {
+            res.offlineData.forEach((item: any) => {
+                item.chart = Object.assign([], res.offlineChartData);
             });
+            this.data = res;
             this.loading = false;
             this.changeSaleType();
-        }, 500);
+        });
     }
 
     setDate(type: any) {
diff --git a/src/app/routes/dashboard/monitor/monitor.component.ts b/src/app/routes/dashboard/monitor/monitor.component.ts
index 81ed1c2..7eca535 100644
--- a/src/app/routes/dashboard/monitor/monitor.component.ts
+++ b/src/app/routes/dashboard/monitor/monitor.component.ts
@@ -1,7 +1,8 @@
 import { Component, OnInit, OnDestroy } from '@angular/core';
 import { NzMessageService } from 'ng-zorro-antd';
+import { zip } from 'rxjs/observable/zip';
 import { getTimeDistance, yuan, fixedZero } from '@delon/abc';
-import { getFakeChartData } from '../../../../../_mock/chart.service';
+import { _HttpClient } from '@delon/theme';
 
 @Component({
     selector: 'app-dashboard-monitor',
@@ -9,525 +10,26 @@
     styleUrls: ['./monitor.component.less']
 })
 export class DashboardMonitorComponent implements OnInit, OnDestroy {
-    data: any = {
-    };
+    data: any = { };
+    tags = [];
     loading = true;
     q: any = {
         start: null,
         end: null
     };
 
-    // from [http://jsfiddle.net/uTSqT/12/]
-    tags = [
-        {
-            'name': '������������',
-            'value': 99,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 17,
-            'type': 0
-        },
-        {
-            'name': '������������',
-            'value': 92,
-            'type': 1
-        },
-        {
-            'name': '������������',
-            'value': 83,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 79,
-            'type': 1
-        },
-        {
-            'name': '���������������������',
-            'value': 92,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 78,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 86,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 18,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 13,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 17,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 52,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 82,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 3,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 62,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 38,
-            'type': 1
-        },
-        {
-            'name': '���������������',
-            'value': 35,
-            'type': 2
-        },
-        {
-            'name': '������������',
-            'value': 62,
-            'type': 2
-        },
-        {
-            'name': '���������������������',
-            'value': 51,
-            'type': 1
-        },
-        {
-            'name': '���������������������',
-            'value': 50,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 94,
-            'type': 1
-        },
-        {
-            'name': '������',
-            'value': 95,
-            'type': 0
-        },
-        {
-            'name': '���������������������',
-            'value': 37,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 44,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 49,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 95,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 1050,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 19,
-            'type': 2
-        },
-        {
-            'name': '���������������������������������',
-            'value': 86,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 97,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 42,
-            'type': 2
-        },
-        {
-            'name': '������������',
-            'value': 11,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 19,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 17,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 16,
-            'type': 1
-        },
-        {
-            'name': '������',
-            'value': 96,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 94,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 49,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 72,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 97,
-            'type': 2
-        },
-        {
-            'name': '���������������',
-            'value': 39,
-            'type': 0
-        },
-        {
-            'name': '������������',
-            'value': 92,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 66,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 11,
-            'type': 1
-        },
-        {
-            'name': '������������',
-            'value': 43,
-            'type': 0
-        },
-        {
-            'name': '���������������',
-            'value': 53,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 9,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 50,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 17,
-            'type': 1
-        },
-        {
-            'name': '������������',
-            'value': 2,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 93,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 3,
-            'type': 1
-        },
-        {
-            'name': '������������',
-            'value': 21,
-            'type': 1
-        },
-        {
-            'name': '���������������',
-            'value': 66,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 45,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 36,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 95,
-            'type': 2
-        },
-        {
-            'name': '���������������������������',
-            'value': 50,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 39,
-            'type': 2
-        },
-        {
-            'name': '������������',
-            'value': 36,
-            'type': 1
-        },
-        {
-            'name': '���������������������',
-            'value': 18,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 86,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 33,
-            'type': 1
-        },
-        {
-            'name': '������������',
-            'value': 66,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 41,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 8,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 38,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 96,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 52,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 68,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 20,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 50,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 41,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 26,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 58,
-            'type': 1
-        },
-        {
-            'name': '���������������',
-            'value': 80,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 70,
-            'type': 1
-        },
-        {
-            'name': '������������',
-            'value': 18,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 64,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 99,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 95,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 55,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 63,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 32,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 23,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 30,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 43,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 86,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 86,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 13,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 40,
-            'type': 1
-        },
-        {
-            'name': '���������',
-            'value': 72,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 9,
-            'type': 2
-        },
-        {
-            'name': '���������',
-            'value': 22,
-            'type': 2
-        },
-        {
-            'name': '������������',
-            'value': 81,
-            'type': 1
-        },
-        {
-            'name': '���������������',
-            'value': 3,
-            'type': 1
-        },
-        {
-            'name': '������������',
-            'value': 50,
-            'type': 0
-        },
-        {
-            'name': '���������',
-            'value': 74,
-            'type': 2
-        },
-        {
-            'name': '������',
-            'value': 50,
-            'type': 1
-        },
-        {
-            'name': '������������',
-            'value': 56,
-            'type': 1
-        }
-    ];
-
-    constructor(public msg: NzMessageService) {}
+    constructor(private http: _HttpClient, public msg: NzMessageService) {}
 
     ngOnInit() {
-        setTimeout(() => {
-            this.data = getFakeChartData;
+        zip(
+            this.http.get('/chart'),
+            this.http.get('/chart/tags')
+        ).subscribe(([ res, tags ]) => {
+            this.data = res;
+            tags.list[Math.floor(Math.random() * tags.list.length) + 1].value = 1000;
+            this.tags = tags.list;
             this.loading = false;
-        }, 500);
+        });
 
         // active chart
         this.genActiveData();
diff --git a/src/app/routes/dashboard/v1/v1.component.ts b/src/app/routes/dashboard/v1/v1.component.ts
index 4906f4b..eb0bf8e 100644
--- a/src/app/routes/dashboard/v1/v1.component.ts
+++ b/src/app/routes/dashboard/v1/v1.component.ts
@@ -1,16 +1,14 @@
 import { NzMessageService } from 'ng-zorro-antd';
-import { Component } from '@angular/core';
-import { getFakeChartData } from '../../../../../_mock/chart.service';
+import { Component, OnInit } from '@angular/core';
+import { _HttpClient } from '@delon/theme';
 
 @Component({
     selector: 'app-dashboard-v1',
     templateUrl: './v1.component.html'
 })
-export class DashboardV1Component {
+export class DashboardV1Component implements OnInit {
 
-    constructor(public msg: NzMessageService) {
-        console.log(this.offlineChartData);
-    }
+    constructor(private http: _HttpClient, public msg: NzMessageService) { }
 
     todoData: any[] = [
         { completed: true, avatar: '1', name: '���������', content: `������������������������������������������` },
@@ -23,7 +21,15 @@
 
     quickMenu = false;
 
-    webSite = [ ...getFakeChartData.visitData.slice(0, 10) ];
-    salesData =  [...getFakeChartData.salesData];
-    offlineChartData = Object.assign([], getFakeChartData.offlineChartData);
+    webSite: any[] = [ ];
+    salesData: any[] =  [ ];
+    offlineChartData: any[] = [];
+
+    ngOnInit() {
+        this.http.get('/chart').subscribe((res: any) => {
+            this.webSite = res.visitData.slice(0, 10);
+            this.salesData = res.salesData;
+            this.offlineChartData = res.offlineChartData;
+        });
+    }
 }
diff --git a/src/app/routes/dashboard/workplace/workplace.component.less b/src/app/routes/dashboard/workplace/workplace.component.less
index f9b26ae..aac89c7 100644
--- a/src/app/routes/dashboard/workplace/workplace.component.less
+++ b/src/app/routes/dashboard/workplace/workplace.component.less
@@ -1,5 +1,5 @@
 @import '~@delon/theme/styles/antd/themes/default.less';
-@import '~@delon/abc/components/utils/utils.less';
+@import '~@delon/abc/utils/utils.less';
 
 :host ::ng-deep {
 	.page-header {
diff --git a/src/app/routes/dashboard/workplace/workplace.component.ts b/src/app/routes/dashboard/workplace/workplace.component.ts
index bb72437..9b997a1 100644
--- a/src/app/routes/dashboard/workplace/workplace.component.ts
+++ b/src/app/routes/dashboard/workplace/workplace.component.ts
@@ -1,8 +1,8 @@
+import { zip } from 'rxjs/observable/zip';
 import { Component, OnInit, OnDestroy } from '@angular/core';
 import { NzMessageService } from 'ng-zorro-antd';
 import { getTimeDistance, yuan, fixedZero } from '@delon/abc';
-import { getNotice, getActivities } from '../../../../../_mock/api.service';
-import { getFakeChartData } from '../../../../../_mock/chart.service';
+import { _HttpClient } from '@delon/theme';
 
 @Component({
     selector: 'app-dashboard-workplace',
@@ -76,21 +76,25 @@
       ];
     // endregion
 
-    constructor(public msg: NzMessageService) {}
+    constructor(private http: _HttpClient, public msg: NzMessageService) {}
 
     ngOnInit() {
-        setTimeout(() => {
-            this.notice = getNotice();
-            this.activities = getActivities().map((item: any) => {
+        zip(
+            this.http.get('/chart'),
+            this.http.get('/api/notice'),
+            this.http.get('/api/activities')
+        ).subscribe(([ chart, notice, activities ]) => {
+            this.radarData = chart.radarData;
+            this.notice = notice;
+            this.activities = activities.map((item: any) => {
                 item.template = item.template.split(/@\{([^{}]*)\}/gi).map((key: string) => {
                     if (item[key]) return `<a>${item[key].name}</a>`;
                     return key;
                 });
                 return item;
             });
-            this.radarData = getFakeChartData.radarData;
             this.loading = false;
-        }, 500);
+        });
     }
 
     ngOnDestroy(): void {
diff --git a/src/app/routes/routes.ts b/src/app/routes/routes-routing.module.ts
similarity index 66%
rename from src/app/routes/routes.ts
rename to src/app/routes/routes-routing.module.ts
index f5f7144..891e3f5 100644
--- a/src/app/routes/routes.ts
+++ b/src/app/routes/routes-routing.module.ts
@@ -1,28 +1,40 @@
-import { LayoutComponent } from '../layout/layout.component';
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { environment } from '@env/environment';
+// layout
+import { LayoutDefaultComponent } from '../layout/default/default.component';
 import { LayoutFullScreenComponent } from '../layout/fullscreen/fullscreen.component';
+import { LayoutPassportComponent } from '../layout/passport/passport.component';
+// dashboard pages
 import { DashboardV1Component } from './dashboard/v1/v1.component';
 import { DashboardAnalysisComponent } from './dashboard/analysis/analysis.component';
 import { DashboardMonitorComponent } from './dashboard/monitor/monitor.component';
 import { DashboardWorkplaceComponent } from './dashboard/workplace/workplace.component';
 
-export const routes = [
+
+const routes: Routes = [
     {
         path: '',
-        component: LayoutComponent,
+        component: LayoutDefaultComponent,
         children: [
-            { path: '', redirectTo: 'dashboard/analysis', pathMatch: 'full' },
+            { path: '', redirectTo: 'dashboard/v1', pathMatch: 'full' },
             { path: 'dashboard', redirectTo: 'dashboard/v1', pathMatch: 'full' },
+            { path: 'dashboard/v1', component: DashboardV1Component, data: { translate: 'dashboard_v1' } },
+            { path: 'dashboard/analysis', component: DashboardAnalysisComponent, data: { translate: 'dashboard_analysis' } },
+            { path: 'dashboard/monitor', component: DashboardMonitorComponent, data: { translate: 'dashboard_monitor' } },
+            { path: 'dashboard/workplace', component: DashboardWorkplaceComponent, data: { translate: 'dashboard_workplace' } },
 
             { path: 'users', loadChildren: './users/users.module#UsersModule' },
             { path: 'devices', loadChildren: './devices/devices.module#DevicesModule' },
             { path: 'sensors', loadChildren: './sensors/sensors.module#SensorsModule' },
             { path: 'systems', loadChildren: './systems/systems.module#SystemsModule' },
-
-            { path: 'dashboard/v1', component: DashboardV1Component, data: { translate: 'dashboard_v1' } },
-            { path: 'dashboard/analysis', component: DashboardAnalysisComponent, data: { translate: 'dashboard_analysis' } },
-            { path: 'dashboard/monitor', component: DashboardMonitorComponent, data: { translate: 'dashboard_monitor' } },
-            { path: 'dashboard/workplace', component: DashboardWorkplaceComponent, data: { translate: 'dashboard_workplace' } }
         ]
     },
     { path: '**', redirectTo: 'dashboard' }
 ];
+
+@NgModule({
+    imports: [RouterModule.forRoot(routes, { useHash: environment.useHash })],
+    exports: [RouterModule]
+  })
+export class RouteRoutingModule { }
diff --git a/src/app/routes/routes.module.ts b/src/app/routes/routes.module.ts
index 53906ae..67e88d4 100644
--- a/src/app/routes/routes.module.ts
+++ b/src/app/routes/routes.module.ts
@@ -1,16 +1,16 @@
-import { DevicesModule } from './devices/devices.module';
+import { DateService } from '@business/services/util/date.service';
 import { _HttpClient } from '@delon/theme';
 import { NgModule } from '@angular/core';
 import { RouterModule } from '@angular/router';
+
 import { SharedModule } from '@shared/shared.module';
-import { environment } from '../../environments/environment';
-import { routes } from './routes';
+import { RouteRoutingModule } from './routes-routing.module';
+import { environment } from '@env/environment';
+// dashboard pages
 import { DashboardV1Component } from './dashboard/v1/v1.component';
 import { DashboardAnalysisComponent } from './dashboard/analysis/analysis.component';
 import { DashboardMonitorComponent } from './dashboard/monitor/monitor.component';
 import { DashboardWorkplaceComponent } from './dashboard/workplace/workplace.component';
-import { CoreModule } from '@core/core.module';
-// region: zorro modules
 // Statics
 import 'rxjs/add/observable/throw';
 
@@ -22,22 +22,18 @@
 import 'rxjs/add/operator/switchMap';
 import 'rxjs/add/operator/toPromise';
 import 'rxjs/add/operator/filter';
+
 @NgModule({
-    imports: [
-        SharedModule,
-        RouterModule.forRoot(routes, { useHash: environment.useHash })
-    ],
+    imports: [ SharedModule, RouteRoutingModule ],
     declarations: [
         DashboardV1Component,
         DashboardAnalysisComponent,
         DashboardMonitorComponent,
-        DashboardWorkplaceComponent
-    ],
-    exports: [
-        RouterModule
+        DashboardWorkplaceComponent,
     ],
     providers: [
-        _HttpClient
+        _HttpClient,
+        DateService
     ]
 })
 
diff --git a/src/app/shared/README.md b/src/app/shared/README.md
new file mode 100644
index 0000000..2819b60
--- /dev/null
+++ b/src/app/shared/README.md
@@ -0,0 +1,30 @@
+# ShareModule
+
+**���** ���������������
+
++ ���������������������������������
+
+**���** ������������������������������
+
+**������** ��� `providers` ���������
+
+## ������������������������������
+
+���������������������������������������������������������������**������**���������������������������������������
+
+```
+��������� components
+������� ��������� comp1
+������� ������� ��������� index.ts
+������� ������� ��������� README.md
+������� ��������� comp2
+������� ������� ��������� index.ts
+������� ������� ��������� README.md
+��������� directives
+������� ��������� dire1
+������� ������� ��������� index.ts
+������� ������� ��������� README.md
+������� ��������� dire2
+������� ������� ��������� index.ts
+������� ������� ��������� README.md
+```
diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts
index f2d4422..1df679d 100644
--- a/src/app/shared/shared.module.ts
+++ b/src/app/shared/shared.module.ts
@@ -1,169 +1,23 @@
-import { NgModule, ModuleWithProviders } from '@angular/core';
+import { NgModule } from '@angular/core';
 import { CommonModule } from '@angular/common';
 import { ReactiveFormsModule, FormsModule } from '@angular/forms';
-import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
 import { RouterModule } from '@angular/router';
-
+// delon
 import { NgZorroAntdExtraModule } from 'ng-zorro-antd-extra';
 import { AlainThemeModule } from '@delon/theme';
-import { AlainABCModule } from '@delon/abc';
 import { AlainACLModule } from '@delon/acl';
-
-// third libs
-import { CountdownModule } from 'ngx-countdown';
-
+import { ZORROMODULES, ABCMODULES } from '../delon.module';
 // i18n
 import { TranslateModule } from '@ngx-translate/core';
-import { I18NService } from '@core/i18n/i18n.service';
 
-import {
-    // LoggerModule,
-    // NzLocaleModule,
-    NzButtonModule,
-    NzAlertModule,
-    NzBadgeModule,
-    // NzCalendarModule,
-    NzCascaderModule,
-    NzCheckboxModule,
-    NzDatePickerModule,
-    NzFormModule,
-    NzInputModule,
-    NzInputNumberModule,
-    NzGridModule,
-    NzMessageModule,
-    NzModalModule,
-    NzNotificationModule,
-    NzPaginationModule,
-    NzPopconfirmModule,
-    NzPopoverModule,
-    NzRadioModule,
-    NzRateModule,
-    NzSelectModule,
-    NzSpinModule,
-    NzSliderModule,
-    NzSwitchModule,
-    NzProgressModule,
-    NzTableModule,
-    NzTabsModule,
-    NzTagModule,
-    NzTimePickerModule,
-    NzUtilModule,
-    NzStepsModule,
-    NzDropDownModule,
-    NzMenuModule,
-    NzBreadCrumbModule,
-    NzLayoutModule,
-    NzRootModule,
-    NzCarouselModule,
-    // NzCardModule,
-    NzCollapseModule,
-    NzTimelineModule,
-    NzToolTipModule,
-    // NzBackTopModule,
-    // NzAffixModule,
-    // NzAnchorModule,
-    NzAvatarModule,
-    // SERVICES
-    NzNotificationService,
-    NzMessageService
-} from 'ng-zorro-antd';
-const ZORROMODULES = [
-    // LoggerModule,
-    // NzLocaleModule,
-    NzButtonModule,
-    NzAlertModule,
-    NzBadgeModule,
-    // NzCalendarModule,
-    NzCascaderModule,
-    NzCheckboxModule,
-    NzDatePickerModule,
-    NzFormModule,
-    NzInputModule,
-    NzInputNumberModule,
-    NzGridModule,
-    NzMessageModule,
-    NzModalModule,
-    NzNotificationModule,
-    NzPaginationModule,
-    NzPopconfirmModule,
-    NzPopoverModule,
-    NzRadioModule,
-    NzRateModule,
-    NzSelectModule,
-    NzSpinModule,
-    NzSliderModule,
-    NzSwitchModule,
-    NzProgressModule,
-    NzTableModule,
-    NzTabsModule,
-    NzTagModule,
-    NzTimePickerModule,
-    NzUtilModule,
-    NzStepsModule,
-    NzDropDownModule,
-    NzMenuModule,
-    NzBreadCrumbModule,
-    NzLayoutModule,
-    NzRootModule,
-    NzCarouselModule,
-    // NzCardModule,
-    NzCollapseModule,
-    NzTimelineModule,
-    NzToolTipModule,
-    // NzBackTopModule,
-    // NzAffixModule,
-    // NzAnchorModule,
-    NzAvatarModule
-];
+// region: third libs
+import { CountdownModule } from 'ngx-countdown';
+const THIRDMODULES = [ CountdownModule ];
 // endregion
 
-// region: @delon/abc modules
-import {
-    AdAvatarListModule,
-    AdChartsModule,
-    AdCountDownModule,
-    AdDescListModule,
-    AdEllipsisModule,
-    AdErrorCollectModule,
-    AdExceptionModule,
-    AdFooterToolbarModule,
-    AdGlobalFooterModule,
-    AdNoticeIconModule,
-    AdNumberInfoModule,
-    AdProHeaderModule,
-    AdResultModule,
-    AdSidebarNavModule,
-    AdStandardFormRowModule,
-    AdTagSelectModule,
-    AdTrendModule,
-    AdDownFileModule,
-    AdImageModule,
-    AdUtilsModule
-} from '@delon/abc';
-import { _HttpClient } from '@delon/theme/services/http/http.client';
-import { CoreModule } from '@core/core.module';
-const ABCMODULES = [
-    AdAvatarListModule,
-    AdChartsModule,
-    AdCountDownModule,
-    AdDescListModule,
-    AdEllipsisModule,
-    AdErrorCollectModule,
-    AdExceptionModule,
-    AdFooterToolbarModule,
-    AdGlobalFooterModule,
-    AdNoticeIconModule,
-    AdNumberInfoModule,
-    AdProHeaderModule,
-    AdResultModule,
-    AdSidebarNavModule,
-    AdStandardFormRowModule,
-    AdTagSelectModule,
-    AdTrendModule,
-    AdDownFileModule,
-    AdImageModule,
-    AdUtilsModule
-];
+// region: your componets & directives
+const COMPONENTS = [];
+const DIRECTIVES = [];
 // endregion
 
 @NgModule({
@@ -172,14 +26,18 @@
         FormsModule,
         RouterModule,
         ReactiveFormsModule,
-        HttpClientModule,
         ...ZORROMODULES,
-        NgZorroAntdExtraModule.forRoot(),
+        NgZorroAntdExtraModule,
         AlainThemeModule.forChild(),
         ...ABCMODULES,
-        AlainACLModule.forRoot(),
+        AlainACLModule,
         // third libs
-        CountdownModule
+        ...THIRDMODULES
+    ],
+    declarations: [
+        // your components
+        ...COMPONENTS,
+        ...DIRECTIVES
     ],
     exports: [
         CommonModule,
@@ -190,22 +48,13 @@
         NgZorroAntdExtraModule,
         AlainThemeModule,
         ...ABCMODULES,
-        AlainACLModule,
         // i18n
         TranslateModule,
         // third libs
-        CountdownModule
+        ...THIRDMODULES,
+        // your components
+        ...COMPONENTS,
+        ...DIRECTIVES
     ]
 })
-export class SharedModule {
-    static forRoot(): ModuleWithProviders {
-        return {
-            ngModule: SharedModule,
-            providers: [
-                // ng-zorro-antd Services
-                NzNotificationService,
-                NzMessageService                
-            ]
-        };
-    }
-}
+export class SharedModule { }
diff --git a/src/assets/app-data.json b/src/assets/app-data.json
index 9c5afad..3a0906f 100644
--- a/src/assets/app-data.json
+++ b/src/assets/app-data.json
@@ -1,80 +1,101 @@
 {
-  "app": {
-  "name": "������������",
-  "description": "���������������������������������"
-},
-  "user": {
-  "name": "���������",
-  "avatar": "./assets/img/zorro.svg",
-  "email": "23420800@qq.com"
-},
-  "menu": [{
-  "text": "������������",
-  "translate": "main_navigation",
-  "group": true,
-  "children": [{
-    "text": "������",
-    "translate": "home",
-    "link": "/dashboard",
-    "icon": "icon-cup"
-  }, {
-    "text": "������������",
-    "translate": "user_management",
-    "link": "/",
-    "icon": "icon-user",
-    "children": [{
-      "text": "������������",
-      "link": "/users/installer",
-      "translate": "user_management_install"
-    }, {
-      "text": "������������",
-      "link": "/users/alarm-user",
-      "translate": "user_management_alarm-user"
-    }]
-  }, {
-    "text": "������������",
-    "translate": "device_management",
-    "link": "/",
-    "icon": "icon-grid",
-    "children": [{
-      "text": "������������",
-      "link": "/devices/basic",
-      "translate": "device_management_info"
-    }, {
-      "text": "������������",
-      "link": "/devices/version",
-      "translate": "device_management_version"
-    }, {
-      "text": "���������������",
-      "link": "/devices/monitor-point",
-      "translate": "device_management_point"
-    }]
-  }, {
-    "text": "���������������",
-    "translate": "sensor_management",
-    "link": "/",
-    "icon": "icon-note",
-    "children": [{
-      "text": "������������",
-      "link": "/sensors/basic",
-      "translate": "device_management_info"
-    }]
-  }, {
-    "text": "������������",
-    "translate": "system_management",
-    "link": "/",
-    "icon": "icon-note",
-    "children": [
-      {
-      "text": "������������",
-      "link": "/systems/account",
-      "translate": "system_management_account"
-      },
-      {
-        "text": "������������",
-        "link": "/systems/organization"
+    "app": {
+        "name": "Alain",
+        "description": "Ng-zorro admin panel front-end framework"
+    },
+    "user": {
+        "name": "Admin",
+        "avatar": "./assets/img/zorro.svg",
+        "email": "cipchk@qq.com"
+    },
+    "menu": [{
+            "text": "���������",
+            "translate": "main_navigation",
+            "group": true,
+            "children": [{
+                "text": "���������",
+                "link": "/dashboard",
+                "icon": "icon-speedometer",
+                "children": [{
+                    "text": "���������V1",
+                    "link": "/dashboard/v1",
+                    "translate": "dashboard_v1"
+                }, {
+                    "text": "���������",
+                    "link": "/dashboard/analysis"
+                }, {
+                    "text": "Monitor",
+                    "link": "/dashboard/monitor",
+                    "translate": "dashboard_monitor"
+                }, {
+                    "text": "Workplace",
+                    "link": "/dashboard/workplace",
+                    "translate": "dashboard_workplace"
+                }]
+            }, {
+                "text": "������������",
+                "translate": "shortcut",
+                "icon": "icon-rocket",
+                "shortcut_root": true,
+                "children": []
+            }]
+        }, {
+            "text": "������������",
+            "group": true,
+            "children": [{
+                "text": "������������",
+                "link": "/users",
+                "icon": "icon-user",
+                "children": [{
+                  "text": "������������",
+                  "link": "/users/installer"
+                }, {
+                  "text": "������������",
+                  "link": "/users/alarm-user"
+                }]
+              }, {
+                "text": "������������",
+                "link": "/devices",
+                "icon": "icon-grid",
+                "children": [{
+                  "text": "������������",
+                  "link": "/devices/basic"
+                }, {
+                  "text": "������������",
+                  "link": "/devices/version"
+                }, {
+                  "text": "���������������",
+                  "link": "/devices/monitor-point"
+                }]
+              }, {
+                "text": "���������������",
+                "link": "/sensors",
+                "icon": "icon-note",
+                "children": [{
+                  "text": "������������",
+                  "link": "/sensors/basic"
+                }]
+              }, {
+                "text": "������������",
+                "link": "/systems",
+                "icon": "icon-note",
+                "children": [
+                  {
+                  "text": "������������",
+                  "link": "/systems/account"
+                  },
+                  {
+                    "text": "������������",
+                    "link": "/systems/organization"
+                    }
+                ]
+              }
+
+            ]
+
+
         }
+
+
     ]
-  }]
-}]
 }
diff --git a/src/assets/demo.docx b/src/assets/demo.docx
new file mode 100644
index 0000000..06974cc
--- /dev/null
+++ b/src/assets/demo.docx
Binary files differ
diff --git a/src/assets/demo.pdf b/src/assets/demo.pdf
new file mode 100644
index 0000000..73d3d8c
--- /dev/null
+++ b/src/assets/demo.pdf
Binary files differ
diff --git a/src/assets/demo.pptx b/src/assets/demo.pptx
new file mode 100644
index 0000000..e794dac
--- /dev/null
+++ b/src/assets/demo.pptx
Binary files differ
diff --git a/src/assets/demo.xlsx b/src/assets/demo.xlsx
new file mode 100644
index 0000000..86371d1
--- /dev/null
+++ b/src/assets/demo.xlsx
Binary files differ
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index 0c09f52..34270db 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -1,8 +1,5 @@
 {
     "home": "Home",
-
-
-
     "settings": "Settings",
     "profile": "Profile",
     "login": "Login",
@@ -41,19 +38,25 @@
     "typography": "Typography",
     "iconsfont": "Iconsfont",
     "colors": "Colors",
+    "other": "Other",
+    "split": "Split",
+    "clipboard": "Clipboard",
     "forms": "Forms",
     "extended": "Extended",
     "standard": "Standard",
     "validation": "Validation",
     "upload": "Upload",
     "cropper": "Image Crop",
+    "editor": "Editor",
     "charts": "Charts",
     "tables": "Tables",
+    "fs-table": "Fullscreen Table",
     "maps": "Maps",
     "qq": "QQ",
     "baidu": "Baidu",
     "logics": "Logics",
     "guard": "Route Guard",
+    "cache": "Cache",
     "acl": "ACL",
     "downfile": "Down File",
     "report": "Report",
diff --git a/src/assets/i18n/zh-CN.json b/src/assets/i18n/zh-CN.json
index 386097b..255f31a 100644
--- a/src/assets/i18n/zh-CN.json
+++ b/src/assets/i18n/zh-CN.json
@@ -1,19 +1,5 @@
 {
     "home": "������",
-    "user_management": "������������",
-    "user_management_install": "������������",
-    "user_management_alarm-user": "������������",
-    "device_management": "������������",
-    "device_management_info": "������������",
-    "device_management_version": "������������",
-    "device_management_point": "���������������",
-
-    "sensor_management": "���������������",
-    "sensor_management_info": "������������",
-
-	"system_management":"������������",
-	"system_management_account":"������������",
-	
     "settings": "������",
     "profile": "������������",
     "login": "������",
@@ -52,19 +38,25 @@
     "typography": "������������",
     "iconsfont": "icon������",
     "colors": "������",
+    "other": "������",
+    "split": "������������",
+    "clipboard": "���������",
     "forms": "������",
     "standard": "������",
     "extended": "������",
     "validation": "������",
     "upload": "������",
     "cropper": "������������",
+    "editor": "���������",
     "charts": "������",
     "tables": "������",
+    "fs-table": "������������",
     "maps": "������",
     "qq": "QQ",
     "baidu": "������",
     "logics": "������������",
     "guard": "������������",
+    "cache": "������������",
     "acl": "������������������������",
     "downfile": "������������",
     "report": "������",
diff --git a/src/assets/iconsfont.json b/src/assets/iconsfont.json
new file mode 100644
index 0000000..0d6771e
--- /dev/null
+++ b/src/assets/iconsfont.json
@@ -0,0 +1,2310 @@
+[{
+        "title": "antd: Directional Icons",
+        "prefix": "anticon anticon-",
+        "tpl": "<i class=\"anticon anticon-{0}\"></i>",
+        "list": [{
+            "k": "step-backward"
+        }, {
+            "k": "step-forward"
+        }, {
+            "k": "fast-backward"
+        }, {
+            "k": "fast-forward"
+        }, {
+            "k": "shrink"
+        }, {
+            "k": "arrows-alt"
+        }, {
+            "k": "down"
+        }, {
+            "k": "up"
+        }, {
+            "k": "left"
+        }, {
+            "k": "right"
+        }, {
+            "k": "caret-up"
+        }, {
+            "k": "caret-down"
+        }, {
+            "k": "caret-left"
+        }, {
+            "k": "caret-right"
+        }, {
+            "k": "up-circle"
+        }, {
+            "k": "down-circle"
+        }, {
+            "k": "left-circle"
+        }, {
+            "k": "right-circle"
+        }, {
+            "k": "up-circle-o"
+        }, {
+            "k": "down-circle-o"
+        }, {
+            "k": "right-circle-o"
+        }, {
+            "k": "left-circle-o"
+        }, {
+            "k": "double-right"
+        }, {
+            "k": "double-left"
+        }, {
+            "k": "verticle-left"
+        }, {
+            "k": "verticle-right"
+        }, {
+            "k": "forward"
+        }, {
+            "k": "backward"
+        }, {
+            "k": "rollback"
+        }, {
+            "k": "enter"
+        }, {
+            "k": "retweet"
+        }, {
+            "k": "swap"
+        }, {
+            "k": "swap-left"
+        }, {
+            "k": "swap-right"
+        }, {
+            "k": "arrow-up"
+        }, {
+            "k": "arrow-down"
+        }, {
+            "k": "arrow-left"
+        }, {
+            "k": "arrow-right"
+        }, {
+            "k": "play-circle"
+        }, {
+            "k": "play-circle-o"
+        }, {
+            "k": "up-square"
+        }, {
+            "k": "down-square"
+        }, {
+            "k": "left-square"
+        }, {
+            "k": "right-square"
+        }, {
+            "k": "up-square-o"
+        }, {
+            "k": "down-square-o"
+        }, {
+            "k": "left-square-o"
+        }, {
+            "k": "right-square-o"
+        }, {
+            "k": "login"
+        }, {
+            "k": "logout"
+        }, {
+            "k": "menu-fold"
+        }, {
+            "k": "menu-unfold"
+        }]
+    },
+    {
+        "title": "antd: Suggested Icons",
+        "prefix": "anticon anticon-",
+        "tpl": "<i class=\"anticon anticon-{0}\"></i>",
+        "list": [{
+            "k": "question"
+        }, {
+            "k": "question-circle-o"
+        }, {
+            "k": "question-circle"
+        }, {
+            "k": "plus"
+        }, {
+            "k": "plus-circle-o"
+        }, {
+            "k": "plus-circle"
+        }, {
+            "k": "pause"
+        }, {
+            "k": "pause-circle-o"
+        }, {
+            "k": "pause-circle"
+        }, {
+            "k": "minus"
+        }, {
+            "k": "minus-circle-o"
+        }, {
+            "k": "minus-circle"
+        }, {
+            "k": "plus-square"
+        }, {
+            "k": "plus-square-o"
+        }, {
+            "k": "minus-square"
+        }, {
+            "k": "minus-square-o"
+        }, {
+            "k": "info"
+        }, {
+            "k": "info-circle-o"
+        }, {
+            "k": "info-circle"
+        }, {
+            "k": "exclamation"
+        }, {
+            "k": "exclamation-circle-o"
+        }, {
+            "k": "exclamation-circle"
+        }, {
+            "k": "close"
+        }, {
+            "k": "close-circle"
+        }, {
+            "k": "close-circle-o"
+        }, {
+            "k": "close-square"
+        }, {
+            "k": "close-square-o"
+        }, {
+            "k": "check"
+        }, {
+            "k": "check-circle"
+        }, {
+            "k": "check-circle-o"
+        }, {
+            "k": "check-square"
+        }, {
+            "k": "check-square-o"
+        }, {
+            "k": "clock-circle-o"
+        }, {
+            "k": "clock-circle"
+        }]
+    },
+    {
+        "title": "antd: Application Icons",
+        "prefix": "anticon anticon-",
+        "tpl": "<i class=\"anticon anticon-{0}\"></i>",
+        "list": [{
+            "k": "android"
+        }, {
+            "k": "android-o"
+        }, {
+            "k": "apple"
+        }, {
+            "k": "apple-o"
+        }, {
+            "k": "windows"
+        }, {
+            "k": "windows-o"
+        }, {
+            "k": "ie"
+        }, {
+            "k": "chrome"
+        }, {
+            "k": "github"
+        }, {
+            "k": "aliwangwang"
+        }, {
+            "k": "aliwangwang-o"
+        }, {
+            "k": "dingding"
+        }, {
+            "k": "dingding-o"
+        }]
+    },
+    {
+        "title": "antd: Application Icons",
+        "prefix": "anticon anticon-",
+        "tpl": "<i class=\"anticon anticon-{0}\"></i>",
+        "list": [{
+            "k": "lock"
+        }, {
+            "k": "unlock"
+        }, {
+            "k": "area-chart"
+        }, {
+            "k": "pie-chart"
+        }, {
+            "k": "bar-chart"
+        }, {
+            "k": "dot-chart"
+        }, {
+            "k": "bars"
+        }, {
+            "k": "book"
+        }, {
+            "k": "calendar"
+        }, {
+            "k": "cloud"
+        }, {
+            "k": "cloud-download"
+        }, {
+            "k": "code"
+        }, {
+            "k": "code-o"
+        }, {
+            "k": "copy"
+        }, {
+            "k": "credit-card"
+        }, {
+            "k": "delete"
+        }, {
+            "k": "desktop"
+        }, {
+            "k": "download"
+        }, {
+            "k": "edit"
+        }, {
+            "k": "ellipsis"
+        }, {
+            "k": "file"
+        }, {
+            "k": "file-text"
+        }, {
+            "k": "file-unknown"
+        }, {
+            "k": "file-pdf"
+        }, {
+            "k": "file-excel"
+        }, {
+            "k": "file-jpg"
+        }, {
+            "k": "file-ppt"
+        }, {
+            "k": "file-add"
+        }, {
+            "k": "folder"
+        }, {
+            "k": "folder-open"
+        }, {
+            "k": "folder-add"
+        }, {
+            "k": "hdd"
+        }, {
+            "k": "frown"
+        }, {
+            "k": "frown-o"
+        }, {
+            "k": "meh"
+        }, {
+            "k": "meh-o"
+        }, {
+            "k": "smile"
+        }, {
+            "k": "smile-o"
+        }, {
+            "k": "inbox"
+        }, {
+            "k": "laptop"
+        }, {
+            "k": "appstore-o"
+        }, {
+            "k": "appstore"
+        }, {
+            "k": "line-chart"
+        }, {
+            "k": "link"
+        }, {
+            "k": "mail"
+        }, {
+            "k": "mobile"
+        }, {
+            "k": "notification"
+        }, {
+            "k": "paper-clip"
+        }, {
+            "k": "picture"
+        }, {
+            "k": "poweroff"
+        }, {
+            "k": "reload"
+        }, {
+            "k": "search"
+        }, {
+            "k": "setting"
+        }, {
+            "k": "share-alt"
+        }, {
+            "k": "shopping-cart"
+        }, {
+            "k": "tablet"
+        }, {
+            "k": "tag"
+        }, {
+            "k": "tag-o"
+        }, {
+            "k": "tags"
+        }, {
+            "k": "tags-o"
+        }, {
+            "k": "to-top"
+        }, {
+            "k": "upload"
+        }, {
+            "k": "user"
+        }, {
+            "k": "video-camera"
+        }, {
+            "k": "home"
+        }, {
+            "k": "loading"
+        }, {
+            "k": "loading-3-quarters"
+        }, {
+            "k": "cloud-upload-o"
+        }, {
+            "k": "cloud-download-o"
+        }, {
+            "k": "cloud-upload"
+        }, {
+            "k": "cloud-o"
+        }, {
+            "k": "star-o"
+        }, {
+            "k": "star"
+        }, {
+            "k": "heart-o"
+        }, {
+            "k": "heart"
+        }, {
+            "k": "environment"
+        }, {
+            "k": "environment-o"
+        }, {
+            "k": "eye"
+        }, {
+            "k": "eye-o"
+        }, {
+            "k": "camera"
+        }, {
+            "k": "camera-o"
+        }, {
+            "k": "save"
+        }, {
+            "k": "team"
+        }, {
+            "k": "solution"
+        }, {
+            "k": "phone"
+        }, {
+            "k": "filter"
+        }, {
+            "k": "exception"
+        }, {
+            "k": "export"
+        }, {
+            "k": "customer-service"
+        }, {
+            "k": "qrcode"
+        }, {
+            "k": "scan"
+        }, {
+            "k": "like"
+        }, {
+            "k": "like-o"
+        }, {
+            "k": "dislike"
+        }, {
+            "k": "dislike-o"
+        }, {
+            "k": "message"
+        }, {
+            "k": "pay-circle"
+        }, {
+            "k": "pay-circle-o"
+        }, {
+            "k": "calculator"
+        }, {
+            "k": "pushpin"
+        }, {
+            "k": "pushpin-o"
+        }, {
+            "k": "bulb"
+        }, {
+            "k": "select"
+        }, {
+            "k": "switcher"
+        }, {
+            "k": "rocket"
+        }, {
+            "k": "bell"
+        }, {
+            "k": "disconnect"
+        }, {
+            "k": "database"
+        }, {
+            "k": "compass"
+        }, {
+            "k": "barcode"
+        }, {
+            "k": "hourglass"
+        }, {
+            "k": "key"
+        }, {
+            "k": "flag"
+        }, {
+            "k": "layout"
+        }, {
+            "k": "printer"
+        }, {
+            "k": "sound"
+        }, {
+            "k": "usb"
+        }, {
+            "k": "skin"
+        }, {
+            "k": "tool"
+        }, {
+            "k": "sync"
+        }, {
+            "k": "wifi"
+        }, {
+            "k": "car"
+        }, {
+            "k": "schedule"
+        }, {
+            "k": "user-add"
+        }, {
+            "k": "user-delete"
+        }, {
+            "k": "usergroup-add"
+        }, {
+            "k": "usergroup-delete"
+        }, {
+            "k": "man"
+        }, {
+            "k": "woman"
+        }, {
+            "k": "shop"
+        }, {
+            "k": "gift"
+        }, {
+            "k": "idcard"
+        }, {
+            "k": "medicine-box"
+        }, {
+            "k": "red-envelope"
+        }, {
+            "k": "coffee"
+        }, {
+            "k": "copyright"
+        }, {
+            "k": "trademark"
+        }, {
+            "k": "safety"
+        }, {
+            "k": "wallet"
+        }, {
+            "k": "bank"
+        }, {
+            "k": "trophy"
+        }, {
+            "k": "contacts"
+        }, {
+            "k": "global"
+        }, {
+            "k": "shake"
+        }, {
+            "k": "api"
+        }, {
+            "k": "fork"
+        }]
+    },
+    {
+        "title": "antd: Brand and Logos",
+        "prefix": "anticon anticon-",
+        "tpl": "<i class=\"anticon anticon-{0}\"></i>",
+        "list": [{
+            "k": "android"
+        }, {
+            "k": "android-o"
+        }, {
+            "k": "apple"
+        }, {
+            "k": "apple-o"
+        }, {
+            "k": "windows"
+        }, {
+            "k": "windows-o"
+        }, {
+            "k": "ie"
+        }, {
+            "k": "chrome"
+        }, {
+            "k": "github"
+        }, {
+            "k": "aliwangwang"
+        }, {
+            "k": "aliwangwang-o"
+        }, {
+            "k": "dingding"
+        }, {
+            "k": "dingding-o"
+        }]
+    },
+    {
+        "title": "Simple Line icons",
+        "prefix": "icon-",
+        "tpl": "<i class=\"icon-{0}\"></i>",
+        "list": [{
+            "k": "user"
+        }, {
+            "k": "people"
+        }, {
+            "k": "user-female"
+        }, {
+            "k": "user-follow"
+        }, {
+            "k": "user-following"
+        }, {
+            "k": "user-unfollow"
+        }, {
+            "k": "login"
+        }, {
+            "k": "logout"
+        }, {
+            "k": "emotsmile"
+        }, {
+            "k": "phone"
+        }, {
+            "k": "call-end"
+        }, {
+            "k": "call-in"
+        }, {
+            "k": "call-out"
+        }, {
+            "k": "map"
+        }, {
+            "k": "location-pin"
+        }, {
+            "k": "direction"
+        }, {
+            "k": "directions"
+        }, {
+            "k": "compass"
+        }, {
+            "k": "layers"
+        }, {
+            "k": "menu"
+        }, {
+            "k": "list"
+        }, {
+            "k": "options-vertical"
+        }, {
+            "k": "options"
+        }, {
+            "k": "arrow-down"
+        }, {
+            "k": "arrow-left"
+        }, {
+            "k": "arrow-right"
+        }, {
+            "k": "arrow-up"
+        }, {
+            "k": "arrow-up-circle"
+        }, {
+            "k": "arrow-left-circle"
+        }, {
+            "k": "arrow-right-circle"
+        }, {
+            "k": "arrow-down-circle"
+        }, {
+            "k": "check"
+        }, {
+            "k": "clock"
+        }, {
+            "k": "plus"
+        }, {
+            "k": "close"
+        }, {
+            "k": "trophy"
+        }, {
+            "k": "screen-smartphone"
+        }, {
+            "k": "screen-desktop"
+        }, {
+            "k": "plane"
+        }, {
+            "k": "notebook"
+        }, {
+            "k": "mustache"
+        }, {
+            "k": "mouse"
+        }, {
+            "k": "magnet"
+        }, {
+            "k": "energy"
+        }, {
+            "k": "disc"
+        }, {
+            "k": "cursor"
+        }, {
+            "k": "cursor-move"
+        }, {
+            "k": "crop"
+        }, {
+            "k": "chemistry"
+        }, {
+            "k": "speedometer"
+        }, {
+            "k": "shield"
+        }, {
+            "k": "screen-tablet"
+        }, {
+            "k": "magic-wand"
+        }, {
+            "k": "hourglass"
+        }, {
+            "k": "graduation"
+        }, {
+            "k": "ghost"
+        }, {
+            "k": "game-controller"
+        }, {
+            "k": "fire"
+        }, {
+            "k": "eyeglass"
+        }, {
+            "k": "envelope-open"
+        }, {
+            "k": "envelope-letter"
+        }, {
+            "k": "bell"
+        }, {
+            "k": "badge"
+        }, {
+            "k": "anchor"
+        }, {
+            "k": "wallet"
+        }, {
+            "k": "vector"
+        }, {
+            "k": "speech"
+        }, {
+            "k": "puzzle"
+        }, {
+            "k": "printer"
+        }, {
+            "k": "present"
+        }, {
+            "k": "playlist"
+        }, {
+            "k": "pin"
+        }, {
+            "k": "picture"
+        }, {
+            "k": "handbag"
+        }, {
+            "k": "globe-alt"
+        }, {
+            "k": "globe"
+        }, {
+            "k": "folder-alt"
+        }, {
+            "k": "folder"
+        }, {
+            "k": "film"
+        }, {
+            "k": "feed"
+        }, {
+            "k": "drop"
+        }, {
+            "k": "drawar"
+        }, {
+            "k": "docs"
+        }, {
+            "k": "doc"
+        }, {
+            "k": "diamond"
+        }, {
+            "k": "cup"
+        }, {
+            "k": "calculator"
+        }, {
+            "k": "bubbles"
+        }, {
+            "k": "briefcase"
+        }, {
+            "k": "book-open"
+        }, {
+            "k": "basket-loaded"
+        }, {
+            "k": "basket"
+        }, {
+            "k": "bag"
+        }, {
+            "k": "action-undo"
+        }, {
+            "k": "action-redo"
+        }, {
+            "k": "wrench"
+        }, {
+            "k": "umbrella"
+        }, {
+            "k": "trash"
+        }, {
+            "k": "tag"
+        }, {
+            "k": "support"
+        }, {
+            "k": "frame"
+        }, {
+            "k": "size-fullscreen"
+        }, {
+            "k": "size-actual"
+        }, {
+            "k": "shuffle"
+        }, {
+            "k": "share-alt"
+        }, {
+            "k": "share"
+        }, {
+            "k": "rocket"
+        }, {
+            "k": "question"
+        }, {
+            "k": "pie-chart"
+        }, {
+            "k": "pencil"
+        }, {
+            "k": "note"
+        }, {
+            "k": "loop"
+        }, {
+            "k": "home"
+        }, {
+            "k": "grid"
+        }, {
+            "k": "graph"
+        }, {
+            "k": "microphone"
+        }, {
+            "k": "music-tone-alt"
+        }, {
+            "k": "music-tone"
+        }, {
+            "k": "earphones-alt"
+        }, {
+            "k": "earphones"
+        }, {
+            "k": "equalizer"
+        }, {
+            "k": "like"
+        }, {
+            "k": "dislike"
+        }, {
+            "k": "control-start"
+        }, {
+            "k": "control-rewind"
+        }, {
+            "k": "control-play"
+        }, {
+            "k": "control-pause"
+        }, {
+            "k": "control-forward"
+        }, {
+            "k": "control-end"
+        }, {
+            "k": "volume-1"
+        }, {
+            "k": "volume-2"
+        }, {
+            "k": "volume-off"
+        }, {
+            "k": "calendar"
+        }, {
+            "k": "bulb"
+        }, {
+            "k": "chart"
+        }, {
+            "k": "ban"
+        }, {
+            "k": "bubble"
+        }, {
+            "k": "camrecorder"
+        }, {
+            "k": "camera"
+        }, {
+            "k": "cloud-download"
+        }, {
+            "k": "cloud-upload"
+        }, {
+            "k": "envelope"
+        }, {
+            "k": "eye"
+        }, {
+            "k": "flag"
+        }, {
+            "k": "heart"
+        }, {
+            "k": "info"
+        }, {
+            "k": "key"
+        }, {
+            "k": "link"
+        }, {
+            "k": "lock"
+        }, {
+            "k": "lock-open"
+        }, {
+            "k": "magnifier"
+        }, {
+            "k": "magnifier-add"
+        }, {
+            "k": "magnifier-remove"
+        }, {
+            "k": "paper-clip"
+        }, {
+            "k": "paper-plane"
+        }, {
+            "k": "power"
+        }, {
+            "k": "refresh"
+        }, {
+            "k": "reload"
+        }, {
+            "k": "settings"
+        }, {
+            "k": "star"
+        }, {
+            "k": "symble-female"
+        }, {
+            "k": "symbol-male"
+        }, {
+            "k": "target"
+        }, {
+            "k": "credit-card"
+        }, {
+            "k": "paypal"
+        }, {
+            "k": "social-tumblr"
+        }, {
+            "k": "social-twitter"
+        }, {
+            "k": "social-facebook"
+        }, {
+            "k": "social-instagram"
+        }, {
+            "k": "social-linkedin"
+        }, {
+            "k": "social-pinterest"
+        }, {
+            "k": "social-github"
+        }, {
+            "k": "social-gplus"
+        }, {
+            "k": "social-reddit"
+        }, {
+            "k": "social-skype"
+        }, {
+            "k": "social-dribbble"
+        }, {
+            "k": "social-behance"
+        }, {
+            "k": "social-foursqare"
+        }, {
+            "k": "social-soundcloud"
+        }, {
+            "k": "social-spotify"
+        }, {
+            "k": "social-stumbleupon"
+        }, {
+            "k": "social-youtube"
+        }, {
+            "k": "social-dropbox"
+        }]
+    },
+    {
+        "title": "fa: Web Application Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "list": [{
+            "k": "adjust"
+        }, {
+            "k": "anchor"
+        }, {
+            "k": "archive"
+        }, {
+            "k": "area-chart"
+        }, {
+            "k": "arrows"
+        }, {
+            "k": "arrows-h"
+        }, {
+            "k": "arrows-v"
+        }, {
+            "k": "asterisk"
+        }, {
+            "k": "at"
+        }, {
+            "k": "automobile",
+            "a": true
+        }, {
+            "k": "ban"
+        }, {
+            "k": "bank",
+            "a": true
+        }, {
+            "k": "bar-chart"
+        }, {
+            "k": "bar-chart-o",
+            "a": true
+        }, {
+            "k": "barcode"
+        }, {
+            "k": "bars"
+        }, {
+            "k": "beer"
+        }, {
+            "k": "bell"
+        }, {
+            "k": "bell-o"
+        }, {
+            "k": "bell-slash"
+        }, {
+            "k": "bell-slash-o"
+        }, {
+            "k": "bicycle"
+        }, {
+            "k": "binoculars"
+        }, {
+            "k": "birthday-cake"
+        }, {
+            "k": "bolt"
+        }, {
+            "k": "bomb"
+        }, {
+            "k": "book"
+        }, {
+            "k": "bookmark"
+        }, {
+            "k": "bookmark-o"
+        }, {
+            "k": "briefcase"
+        }, {
+            "k": "bug"
+        }, {
+            "k": "building"
+        }, {
+            "k": "building-o"
+        }, {
+            "k": "bullhorn"
+        }, {
+            "k": "bullseye"
+        }, {
+            "k": "bus"
+        }, {
+            "k": "cab",
+            "a": true
+        }, {
+            "k": "calculator"
+        }, {
+            "k": "calendar"
+        }, {
+            "k": "calendar-o"
+        }, {
+            "k": "camera"
+        }, {
+            "k": "camera-retro"
+        }, {
+            "k": "car"
+        }, {
+            "k": "caret-square-o-down"
+        }, {
+            "k": "caret-square-o-left"
+        }, {
+            "k": "caret-square-o-right"
+        }, {
+            "k": "caret-square-o-up"
+        }, {
+            "k": "cc"
+        }, {
+            "k": "certificate"
+        }, {
+            "k": "check"
+        }, {
+            "k": "check-circle"
+        }, {
+            "k": "check-circle-o"
+        }, {
+            "k": "check-square"
+        }, {
+            "k": "check-square-o"
+        }, {
+            "k": "child"
+        }, {
+            "k": "circle"
+        }, {
+            "k": "circle-o"
+        }, {
+            "k": "circle-o-notch"
+        }, {
+            "k": "circle-thin"
+        }, {
+            "k": "clock-o"
+        }, {
+            "k": "close",
+            "a": true
+        }, {
+            "k": "cloud"
+        }, {
+            "k": "cloud-download"
+        }, {
+            "k": "cloud-upload"
+        }, {
+            "k": "code"
+        }, {
+            "k": "code-fork"
+        }, {
+            "k": "coffee"
+        }, {
+            "k": "cog"
+        }, {
+            "k": "cogs"
+        }, {
+            "k": "comment"
+        }, {
+            "k": "comment-o"
+        }, {
+            "k": "comments"
+        }, {
+            "k": "comments-o"
+        }, {
+            "k": "compass"
+        }, {
+            "k": "copyright"
+        }, {
+            "k": "credit-card"
+        }, {
+            "k": "crop"
+        }, {
+            "k": "crosshairs"
+        }, {
+            "k": "cube"
+        }, {
+            "k": "cubes"
+        }, {
+            "k": "cutlery"
+        }, {
+            "k": "dashboard",
+            "a": true
+        }, {
+            "k": "database"
+        }, {
+            "k": "desktop"
+        }, {
+            "k": "dot-circle-o"
+        }, {
+            "k": "download"
+        }, {
+            "k": "edit",
+            "a": true
+        }, {
+            "k": "ellipsis-h"
+        }, {
+            "k": "ellipsis-v"
+        }, {
+            "k": "envelope"
+        }, {
+            "k": "envelope-o"
+        }, {
+            "k": "envelope-square"
+        }, {
+            "k": "eraser"
+        }, {
+            "k": "exchange"
+        }, {
+            "k": "exclamation"
+        }, {
+            "k": "exclamation-circle"
+        }, {
+            "k": "exclamation-triangle"
+        }, {
+            "k": "external-link"
+        }, {
+            "k": "external-link-square"
+        }, {
+            "k": "eye"
+        }, {
+            "k": "eye-slash"
+        }, {
+            "k": "eyedropper"
+        }, {
+            "k": "fax"
+        }, {
+            "k": "female"
+        }, {
+            "k": "fighter-jet"
+        }, {
+            "k": "file-archive-o"
+        }, {
+            "k": "file-audio-o"
+        }, {
+            "k": "file-code-o"
+        }, {
+            "k": "file-excel-o"
+        }, {
+            "k": "file-image-o"
+        }, {
+            "k": "file-movie-o",
+            "a": true
+        }, {
+            "k": "file-pdf-o"
+        }, {
+            "k": "file-photo-o",
+            "a": true
+        }, {
+            "k": "file-picture-o",
+            "a": true
+        }, {
+            "k": "file-powerpoint-o"
+        }, {
+            "k": "file-sound-o",
+            "a": true
+        }, {
+            "k": "file-video-o"
+        }, {
+            "k": "file-word-o"
+        }, {
+            "k": "file-zip-o",
+            "a": true
+        }, {
+            "k": "film"
+        }, {
+            "k": "filter"
+        }, {
+            "k": "fire"
+        }, {
+            "k": "fire-extinguisher"
+        }, {
+            "k": "flag"
+        }, {
+            "k": "flag-checkered"
+        }, {
+            "k": "flag-o"
+        }, {
+            "k": "flash",
+            "a": true
+        }, {
+            "k": "flask"
+        }, {
+            "k": "folder"
+        }, {
+            "k": "folder-o"
+        }, {
+            "k": "folder-open"
+        }, {
+            "k": "folder-open-o"
+        }, {
+            "k": "frown-o"
+        }, {
+            "k": "futbol-o"
+        }, {
+            "k": "gamepad"
+        }, {
+            "k": "gavel"
+        }, {
+            "k": "gear",
+            "a": true
+        }, {
+            "k": "gears",
+            "a": true
+        }, {
+            "k": "gift"
+        }, {
+            "k": "glass"
+        }, {
+            "k": "globe"
+        }, {
+            "k": "graduation-cap"
+        }, {
+            "k": "group",
+            "a": true
+        }, {
+            "k": "hdd-o"
+        }, {
+            "k": "headphones"
+        }, {
+            "k": "heart"
+        }, {
+            "k": "heart-o"
+        }, {
+            "k": "history"
+        }, {
+            "k": "home"
+        }, {
+            "k": "image",
+            "a": true
+        }, {
+            "k": "inbox"
+        }, {
+            "k": "info"
+        }, {
+            "k": "info-circle"
+        }, {
+            "k": "institution",
+            "a": true
+        }, {
+            "k": "key"
+        }, {
+            "k": "keyboard-o"
+        }, {
+            "k": "language"
+        }, {
+            "k": "laptop"
+        }, {
+            "k": "leaf"
+        }, {
+            "k": "legal",
+            "a": true
+        }, {
+            "k": "lemon-o"
+        }, {
+            "k": "level-down"
+        }, {
+            "k": "level-up"
+        }, {
+            "k": "life-bouy",
+            "a": true
+        }, {
+            "k": "life-buoy",
+            "a": true
+        }, {
+            "k": "life-ring"
+        }, {
+            "k": "life-saver",
+            "a": true
+        }, {
+            "k": "lightbulb-o"
+        }, {
+            "k": "line-chart"
+        }, {
+            "k": "location-arrow"
+        }, {
+            "k": "lock"
+        }, {
+            "k": "magic"
+        }, {
+            "k": "magnet"
+        }, {
+            "k": "mail-forward",
+            "a": true
+        }, {
+            "k": "mail-reply",
+            "a": true
+        }, {
+            "k": "mail-reply-all",
+            "a": true
+        }, {
+            "k": "male"
+        }, {
+            "k": "map-marker"
+        }, {
+            "k": "meh-o"
+        }, {
+            "k": "microphone"
+        }, {
+            "k": "microphone-slash"
+        }, {
+            "k": "minus"
+        }, {
+            "k": "minus-circle"
+        }, {
+            "k": "minus-square"
+        }, {
+            "k": "minus-square-o"
+        }, {
+            "k": "mobile"
+        }, {
+            "k": "mobile-phone",
+            "a": true
+        }, {
+            "k": "money"
+        }, {
+            "k": "moon-o"
+        }, {
+            "k": "mortar-board",
+            "a": true
+        }, {
+            "k": "music"
+        }, {
+            "k": "navicon",
+            "a": true
+        }, {
+            "k": "newspaper-o"
+        }, {
+            "k": "paint-brush"
+        }, {
+            "k": "paper-plane"
+        }, {
+            "k": "paper-plane-o"
+        }, {
+            "k": "paw"
+        }, {
+            "k": "pencil"
+        }, {
+            "k": "pencil-square"
+        }, {
+            "k": "pencil-square-o"
+        }, {
+            "k": "phone"
+        }, {
+            "k": "phone-square"
+        }, {
+            "k": "photo",
+            "a": true
+        }, {
+            "k": "picture-o"
+        }, {
+            "k": "pie-chart"
+        }, {
+            "k": "plane"
+        }, {
+            "k": "plug"
+        }, {
+            "k": "plus"
+        }, {
+            "k": "plus-circle"
+        }, {
+            "k": "plus-square"
+        }, {
+            "k": "plus-square-o"
+        }, {
+            "k": "power-off"
+        }, {
+            "k": "print"
+        }, {
+            "k": "puzzle-piece"
+        }, {
+            "k": "qrcode"
+        }, {
+            "k": "question"
+        }, {
+            "k": "question-circle"
+        }, {
+            "k": "quote-left"
+        }, {
+            "k": "quote-right"
+        }, {
+            "k": "random"
+        }, {
+            "k": "recycle"
+        }, {
+            "k": "refresh"
+        }, {
+            "k": "remove",
+            "a": true
+        }, {
+            "k": "reorder",
+            "a": true
+        }, {
+            "k": "reply"
+        }, {
+            "k": "reply-all"
+        }, {
+            "k": "retweet"
+        }, {
+            "k": "road"
+        }, {
+            "k": "rocket"
+        }, {
+            "k": "rss"
+        }, {
+            "k": "rss-square"
+        }, {
+            "k": "search"
+        }, {
+            "k": "search-minus"
+        }, {
+            "k": "search-plus"
+        }, {
+            "k": "send",
+            "a": true
+        }, {
+            "k": "send-o",
+            "a": true
+        }, {
+            "k": "share"
+        }, {
+            "k": "share-alt"
+        }, {
+            "k": "share-alt-square"
+        }, {
+            "k": "share-square"
+        }, {
+            "k": "share-square-o"
+        }, {
+            "k": "shield"
+        }, {
+            "k": "shopping-cart"
+        }, {
+            "k": "sign-in"
+        }, {
+            "k": "sign-out"
+        }, {
+            "k": "signal"
+        }, {
+            "k": "sitemap"
+        }, {
+            "k": "sliders"
+        }, {
+            "k": "smile-o"
+        }, {
+            "k": "soccer-ball-o",
+            "a": true
+        }, {
+            "k": "sort"
+        }, {
+            "k": "sort-alpha-asc"
+        }, {
+            "k": "sort-alpha-desc"
+        }, {
+            "k": "sort-amount-asc"
+        }, {
+            "k": "sort-amount-desc"
+        }, {
+            "k": "sort-asc"
+        }, {
+            "k": "sort-desc"
+        }, {
+            "k": "sort-down",
+            "a": true
+        }, {
+            "k": "sort-numeric-asc"
+        }, {
+            "k": "sort-numeric-desc"
+        }, {
+            "k": "sort-up",
+            "a": true
+        }, {
+            "k": "space-shuttle"
+        }, {
+            "k": "spinner"
+        }, {
+            "k": "spoon"
+        }, {
+            "k": "square"
+        }, {
+            "k": "square-o"
+        }, {
+            "k": "star"
+        }, {
+            "k": "star-half"
+        }, {
+            "k": "star-half-empty",
+            "a": true
+        }, {
+            "k": "star-half-full",
+            "a": true
+        }, {
+            "k": "star-half-o"
+        }, {
+            "k": "star-o"
+        }, {
+            "k": "suitcase"
+        }, {
+            "k": "sun-o"
+        }, {
+            "k": "support",
+            "a": true
+        }, {
+            "k": "tablet"
+        }, {
+            "k": "tachometer"
+        }, {
+            "k": "tag"
+        }, {
+            "k": "tags"
+        }, {
+            "k": "tasks"
+        }, {
+            "k": "taxi"
+        }, {
+            "k": "terminal"
+        }, {
+            "k": "thumb-tack"
+        }, {
+            "k": "thumbs-down"
+        }, {
+            "k": "thumbs-o-down"
+        }, {
+            "k": "thumbs-o-up"
+        }, {
+            "k": "thumbs-up"
+        }, {
+            "k": "ticket"
+        }, {
+            "k": "times"
+        }, {
+            "k": "times-circle"
+        }, {
+            "k": "times-circle-o"
+        }, {
+            "k": "tint"
+        }, {
+            "k": "toggle-down",
+            "a": true
+        }, {
+            "k": "toggle-left",
+            "a": true
+        }, {
+            "k": "toggle-off"
+        }, {
+            "k": "toggle-on"
+        }, {
+            "k": "toggle-right",
+            "a": true
+        }, {
+            "k": "toggle-up",
+            "a": true
+        }, {
+            "k": "trash"
+        }, {
+            "k": "trash-o"
+        }, {
+            "k": "tree"
+        }, {
+            "k": "trophy"
+        }, {
+            "k": "truck"
+        }, {
+            "k": "tty"
+        }, {
+            "k": "umbrella"
+        }, {
+            "k": "university"
+        }, {
+            "k": "unlock"
+        }, {
+            "k": "unlock-alt"
+        }, {
+            "k": "unsorted",
+            "a": true
+        }, {
+            "k": "upload"
+        }, {
+            "k": "user"
+        }, {
+            "k": "users"
+        }, {
+            "k": "video-camera"
+        }, {
+            "k": "volume-down"
+        }, {
+            "k": "volume-off"
+        }, {
+            "k": "volume-up"
+        }, {
+            "k": "warning",
+            "a": true
+        }, {
+            "k": "wheelchair"
+        }, {
+            "k": "wifi"
+        }, {
+            "k": "wrench"
+        }]
+    },
+    {
+        "title": "fa: File Type Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "list": [{
+            "k": "file"
+        }, {
+            "k": "file-archive-o"
+        }, {
+            "k": "file-audio-o"
+        }, {
+            "k": "file-code-o"
+        }, {
+            "k": "file-excel-o"
+        }, {
+            "k": "file-image-o"
+        }, {
+            "k": "file-movie-o",
+            "a": true
+        }, {
+            "k": "file-o"
+        }, {
+            "k": "file-pdf-o"
+        }, {
+            "k": "file-photo-o",
+            "a": true
+        }, {
+            "k": "file-picture-o",
+            "a": true
+        }, {
+            "k": "file-powerpoint-o"
+        }, {
+            "k": "file-sound-o",
+            "a": true
+        }, {
+            "k": "file-text"
+        }, {
+            "k": "file-text-o"
+        }, {
+            "k": "file-video-o"
+        }, {
+            "k": "file-word-o"
+        }, {
+            "k": "file-zip-o",
+            "a": true
+        }]
+    },
+    {
+        "title": "fa: Spinner Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "tip": "These icons work great with the <code>fa-spin</code> class.",
+        "list": [{
+            "k": "circle-o-notch"
+        }, {
+            "k": "cog"
+        }, {
+            "k": "gear",
+            "a": true
+        }, {
+            "k": "refresh"
+        }, {
+            "k": "spinner"
+        }]
+    },
+    {
+        "title": "fa: Form Control Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "list": [{
+            "k": "check-square"
+        }, {
+            "k": "check-square-o"
+        }, {
+            "k": "circle"
+        }, {
+            "k": "circle-o"
+        }, {
+            "k": "dot-circle-o"
+        }, {
+            "k": "minus-square"
+        }, {
+            "k": "minus-square-o"
+        }, {
+            "k": "plus-square"
+        }, {
+            "k": "plus-square-o"
+        }, {
+            "k": "square"
+        }, {
+            "k": "square-o"
+        }]
+    },
+    {
+        "title": "fa: Payment Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "list": [{
+            "k": "cc-amex"
+        }, {
+            "k": "cc-discover"
+        }, {
+            "k": "cc-mastercard"
+        }, {
+            "k": "cc-paypal"
+        }, {
+            "k": "cc-stripe"
+        }, {
+            "k": "cc-visa"
+        }, {
+            "k": "credit-card"
+        }, {
+            "k": "google-wallet"
+        }, {
+            "k": "paypal"
+        }]
+    },
+    {
+        "title": "fa: Chart Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "list": [{
+            "k": "area-chart"
+        }, {
+            "k": "bar-chart"
+        }, {
+            "k": "bar-chart-o",
+            "a": true
+        }, {
+            "k": "line-chart"
+        }, {
+            "k": "pie-chart"
+        }]
+    },
+    {
+        "title": "fa: Currency Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "list": [{
+            "k": "bitcoin",
+            "a": true
+        }, {
+            "k": "btc"
+        }, {
+            "k": "cny",
+            "a": true
+        }, {
+            "k": "dollar",
+            "a": true
+        }, {
+            "k": "eur"
+        }, {
+            "k": "euro",
+            "a": true
+        }, {
+            "k": "gbp"
+        }, {
+            "k": "ils"
+        }, {
+            "k": "inr"
+        }, {
+            "k": "jpy"
+        }, {
+            "k": "krw"
+        }, {
+            "k": "money"
+        }, {
+            "k": "rmb",
+            "a": true
+        }, {
+            "k": "rouble",
+            "a": true
+        }, {
+            "k": "rub"
+        }, {
+            "k": "ruble",
+            "a": true
+        }, {
+            "k": "rupee",
+            "a": true
+        }, {
+            "k": "shekel",
+            "a": true
+        }, {
+            "k": "sheqel",
+            "a": true
+        }, {
+            "k": "try"
+        }, {
+            "k": "turkish-lira",
+            "a": true
+        }, {
+            "k": "usd"
+        }, {
+            "k": "won",
+            "a": true
+        }, {
+            "k": "yen",
+            "a": true
+        }]
+    },
+    {
+        "title": "fa: Text Editor Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "list": [{
+            "k": "align-center"
+        }, {
+            "k": "align-justify"
+        }, {
+            "k": "align-left"
+        }, {
+            "k": "align-right"
+        }, {
+            "k": "bold"
+        }, {
+            "k": "chain",
+            "a": true
+        }, {
+            "k": "chain-broken"
+        }, {
+            "k": "clipboard"
+        }, {
+            "k": "columns"
+        }, {
+            "k": "copy",
+            "a": true
+        }, {
+            "k": "cut",
+            "a": true
+        }, {
+            "k": "dedent",
+            "a": true
+        }, {
+            "k": "eraser"
+        }, {
+            "k": "file"
+        }, {
+            "k": "file-o"
+        }, {
+            "k": "file-text"
+        }, {
+            "k": "file-text-o"
+        }, {
+            "k": "files-o"
+        }, {
+            "k": "floppy-o"
+        }, {
+            "k": "font"
+        }, {
+            "k": "header"
+        }, {
+            "k": "indent"
+        }, {
+            "k": "italic"
+        }, {
+            "k": "link"
+        }, {
+            "k": "list"
+        }, {
+            "k": "list-alt"
+        }, {
+            "k": "list-ol"
+        }, {
+            "k": "list-ul"
+        }, {
+            "k": "outdent"
+        }, {
+            "k": "paperclip"
+        }, {
+            "k": "paragraph"
+        }, {
+            "k": "paste",
+            "a": true
+        }, {
+            "k": "repeat"
+        }, {
+            "k": "rotate-left",
+            "a": true
+        }, {
+            "k": "rotate-right",
+            "a": true
+        }, {
+            "k": "save",
+            "a": true
+        }, {
+            "k": "scissors"
+        }, {
+            "k": "strikethrough"
+        }, {
+            "k": "subscript"
+        }, {
+            "k": "superscript"
+        }, {
+            "k": "table"
+        }, {
+            "k": "text-height"
+        }, {
+            "k": "text-width"
+        }, {
+            "k": "th"
+        }, {
+            "k": "th-large"
+        }, {
+            "k": "th-list"
+        }, {
+            "k": "underline"
+        }, {
+            "k": "undo"
+        }, {
+            "k": "unlink",
+            "a": true
+        }]
+    },
+    {
+        "title": "fa: Directional Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "list": [{
+            "k": "angle-double-down"
+        }, {
+            "k": "angle-double-left"
+        }, {
+            "k": "angle-double-right"
+        }, {
+            "k": "angle-double-up"
+        }, {
+            "k": "angle-down"
+        }, {
+            "k": "angle-left"
+        }, {
+            "k": "angle-right"
+        }, {
+            "k": "angle-up"
+        }, {
+            "k": "arrow-circle-down"
+        }, {
+            "k": "arrow-circle-left"
+        }, {
+            "k": "arrow-circle-o-down"
+        }, {
+            "k": "arrow-circle-o-left"
+        }, {
+            "k": "arrow-circle-o-right"
+        }, {
+            "k": "arrow-circle-o-up"
+        }, {
+            "k": "arrow-circle-right"
+        }, {
+            "k": "arrow-circle-up"
+        }, {
+            "k": "arrow-down"
+        }, {
+            "k": "arrow-left"
+        }, {
+            "k": "arrow-right"
+        }, {
+            "k": "arrow-up"
+        }, {
+            "k": "arrows"
+        }, {
+            "k": "arrows-alt"
+        }, {
+            "k": "arrows-h"
+        }, {
+            "k": "arrows-v"
+        }, {
+            "k": "caret-down"
+        }, {
+            "k": "caret-left"
+        }, {
+            "k": "caret-right"
+        }, {
+            "k": "caret-square-o-down"
+        }, {
+            "k": "caret-square-o-left"
+        }, {
+            "k": "caret-square-o-right"
+        }, {
+            "k": "caret-square-o-up"
+        }, {
+            "k": "caret-up"
+        }, {
+            "k": "chevron-circle-down"
+        }, {
+            "k": "chevron-circle-left"
+        }, {
+            "k": "chevron-circle-right"
+        }, {
+            "k": "chevron-circle-up"
+        }, {
+            "k": "chevron-down"
+        }, {
+            "k": "chevron-left"
+        }, {
+            "k": "chevron-right"
+        }, {
+            "k": "chevron-up"
+        }, {
+            "k": "hand-o-down"
+        }, {
+            "k": "hand-o-left"
+        }, {
+            "k": "hand-o-right"
+        }, {
+            "k": "hand-o-up"
+        }, {
+            "k": "long-arrow-down"
+        }, {
+            "k": "long-arrow-left"
+        }, {
+            "k": "long-arrow-right"
+        }, {
+            "k": "long-arrow-up"
+        }, {
+            "k": "toggle-down",
+            "a": true
+        }, {
+            "k": "toggle-left",
+            "a": true
+        }, {
+            "k": "toggle-right",
+            "a": true
+        }, {
+            "k": "toggle-up",
+            "a": true
+        }]
+    },
+    {
+        "title": "fa: Video Player Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "list": [{
+            "k": "arrows-alt"
+        }, {
+            "k": "backward"
+        }, {
+            "k": "compress"
+        }, {
+            "k": "eject"
+        }, {
+            "k": "expand"
+        }, {
+            "k": "fast-backward"
+        }, {
+            "k": "fast-forward"
+        }, {
+            "k": "forward"
+        }, {
+            "k": "pause"
+        }, {
+            "k": "play"
+        }, {
+            "k": "play-circle"
+        }, {
+            "k": "play-circle-o"
+        }, {
+            "k": "step-backward"
+        }, {
+            "k": "step-forward"
+        }, {
+            "k": "stop"
+        }, {
+            "k": "youtube-play"
+        }]
+    },
+    {
+        "title": "fa: Brand Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "list": [{
+            "k": "adn"
+        }, {
+            "k": "android"
+        }, {
+            "k": "angellist"
+        }, {
+            "k": "apple"
+        }, {
+            "k": "behance"
+        }, {
+            "k": "behance-square"
+        }, {
+            "k": "bitbucket"
+        }, {
+            "k": "bitbucket-square"
+        }, {
+            "k": "bitcoin",
+            "a": true
+        }, {
+            "k": "btc"
+        }, {
+            "k": "cc-amex"
+        }, {
+            "k": "cc-discover"
+        }, {
+            "k": "cc-mastercard"
+        }, {
+            "k": "cc-paypal"
+        }, {
+            "k": "cc-stripe"
+        }, {
+            "k": "cc-visa"
+        }, {
+            "k": "codepen"
+        }, {
+            "k": "css3"
+        }, {
+            "k": "delicious"
+        }, {
+            "k": "deviantart"
+        }, {
+            "k": "digg"
+        }, {
+            "k": "dribbble"
+        }, {
+            "k": "dropbox"
+        }, {
+            "k": "drupal"
+        }, {
+            "k": "empire"
+        }, {
+            "k": "facebook"
+        }, {
+            "k": "facebook-square"
+        }, {
+            "k": "flickr"
+        }, {
+            "k": "foursquare"
+        }, {
+            "k": "ge",
+            "a": true
+        }, {
+            "k": "git"
+        }, {
+            "k": "git-square"
+        }, {
+            "k": "github"
+        }, {
+            "k": "github-alt"
+        }, {
+            "k": "github-square"
+        }, {
+            "k": "gittip"
+        }, {
+            "k": "google"
+        }, {
+            "k": "google-plus"
+        }, {
+            "k": "google-plus-square"
+        }, {
+            "k": "google-wallet"
+        }, {
+            "k": "hacker-news"
+        }, {
+            "k": "html5"
+        }, {
+            "k": "instagram"
+        }, {
+            "k": "ioxhost"
+        }, {
+            "k": "joomla"
+        }, {
+            "k": "jsfiddle"
+        }, {
+            "k": "lastfm"
+        }, {
+            "k": "lastfm-square"
+        }, {
+            "k": "linkedin"
+        }, {
+            "k": "linkedin-square"
+        }, {
+            "k": "linux"
+        }, {
+            "k": "maxcdn"
+        }, {
+            "k": "meanpath"
+        }, {
+            "k": "openid"
+        }, {
+            "k": "pagelines"
+        }, {
+            "k": "paypal"
+        }, {
+            "k": "pied-piper"
+        }, {
+            "k": "pied-piper-alt"
+        }, {
+            "k": "pinterest"
+        }, {
+            "k": "pinterest-square"
+        }, {
+            "k": "qq"
+        }, {
+            "k": "ra",
+            "a": true
+        }, {
+            "k": "rebel"
+        }, {
+            "k": "reddit"
+        }, {
+            "k": "reddit-square"
+        }, {
+            "k": "renren"
+        }, {
+            "k": "share-alt"
+        }, {
+            "k": "share-alt-square"
+        }, {
+            "k": "skype"
+        }, {
+            "k": "slack"
+        }, {
+            "k": "slideshare"
+        }, {
+            "k": "soundcloud"
+        }, {
+            "k": "spotify"
+        }, {
+            "k": "stack-exchange"
+        }, {
+            "k": "stack-overflow"
+        }, {
+            "k": "steam"
+        }, {
+            "k": "steam-square"
+        }, {
+            "k": "stumbleupon"
+        }, {
+            "k": "stumbleupon-circle"
+        }, {
+            "k": "tencent-weibo"
+        }, {
+            "k": "trello"
+        }, {
+            "k": "tumblr"
+        }, {
+            "k": "tumblr-square"
+        }, {
+            "k": "twitch"
+        }, {
+            "k": "twitter"
+        }, {
+            "k": "twitter-square"
+        }, {
+            "k": "vimeo-square"
+        }, {
+            "k": "vine"
+        }, {
+            "k": "vk"
+        }, {
+            "k": "wechat",
+            "a": true
+        }, {
+            "k": "weibo"
+        }, {
+            "k": "weixin"
+        }, {
+            "k": "windows"
+        }, {
+            "k": "wordpress"
+        }, {
+            "k": "xing"
+        }, {
+            "k": "xing-square"
+        }, {
+            "k": "yahoo"
+        }, {
+            "k": "yelp"
+        }, {
+            "k": "youtube"
+        }, {
+            "k": "youtube-play"
+        }, {
+            "k": "youtube-square"
+        }]
+    },
+    {
+        "title": "fa: Medical Icons",
+        "prefix": "fa fa-",
+        "tpl": "<i class=\"fa fa-{0}\"></i>",
+        "list": [{
+            "k": "ambulance"
+        }, {
+            "k": "h-square"
+        }, {
+            "k": "hospital-o"
+        }, {
+            "k": "medkit"
+        }, {
+            "k": "plus-square"
+        }, {
+            "k": "stethoscope"
+        }, {
+            "k": "user-md"
+        }, {
+            "k": "wheelchair"
+        }]
+    }
+]
diff --git a/src/assets/users-installer-data.json b/src/assets/users-installer-data.json
deleted file mode 100644
index 3655a34..0000000
--- a/src/assets/users-installer-data.json
+++ /dev/null
@@ -1,605 +0,0 @@
-{
-  "total": 50,
-  "data": [
-    {
-      "key": 0,
-      "name": "������1",
-      "sex": "���",
-      "mobile": 13713713777,
-      "email": "test_1@test.com",
-      "weixin": "test1",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������1",
-      "nickname": "������1",
-      "updatedAt": "2017-06-30T16:00:00.000Z"
-    },
-    {
-      "key": 1,
-      "name": "������2",
-      "sex": "���",
-      "mobile": 13713713778,
-      "email": "test_2@test.com",
-      "weixin": "test2",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������2",
-      "nickname": "������2",
-      "updatedAt": "2017-06-30T16:00:00.000Z"
-    },
-    {
-      "key": 2,
-      "name": "������3",
-      "sex": "���",
-      "mobile": 13713713779,
-      "email": "test_3@test.com",
-      "weixin": "test3",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������3",
-      "nickname": "������3",
-      "updatedAt": "2017-07-01T16:00:00.000Z"
-    },
-    {
-      "key": 3,
-      "name": "������4",
-      "sex": "���",
-      "mobile": 13713713780,
-      "email": "test_4@test.com",
-      "weixin": "test4",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������4",
-      "nickname": "������4",
-      "updatedAt": "2017-07-01T16:00:00.000Z"
-    },
-    {
-      "key": 4,
-      "name": "������5",
-      "sex": "���",
-      "mobile": 13713713781,
-      "email": "test_5@test.com",
-      "weixin": "test5",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������5",
-      "nickname": "������5",
-      "updatedAt": "2017-07-02T16:00:00.000Z"
-    },
-    {
-      "key": 5,
-      "name": "������6",
-      "sex": "���",
-      "mobile": 13713713782,
-      "email": "test_6@test.com",
-      "weixin": "test6",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������6",
-      "nickname": "������6",
-      "updatedAt": "2017-07-02T16:00:00.000Z"
-    },
-    {
-      "key": 6,
-      "name": "������7",
-      "sex": "���",
-      "mobile": 13713713783,
-      "email": "test_7@test.com",
-      "weixin": "test7",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������7",
-      "nickname": "������7",
-      "updatedAt": "2017-07-03T16:00:00.000Z"
-    },
-    {
-      "key": 7,
-      "name": "������8",
-      "sex": "���",
-      "mobile": 13713713784,
-      "email": "test_8@test.com",
-      "weixin": "test8",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������8",
-      "nickname": "������8",
-      "updatedAt": "2017-07-03T16:00:00.000Z"
-    },
-    {
-      "key": 8,
-      "name": "������9",
-      "sex": "���",
-      "mobile": 13713713785,
-      "email": "test_9@test.com",
-      "weixin": "test9",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������9",
-      "nickname": "������9",
-      "updatedAt": "2017-07-04T16:00:00.000Z"
-    },
-    {
-      "key": 9,
-      "name": "������10",
-      "sex": "���",
-      "mobile": 13713713786,
-      "email": "test_10@test.com",
-      "weixin": "test10",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������10",
-      "nickname": "������10",
-      "updatedAt": "2017-07-04T16:00:00.000Z"
-    },
-    {
-      "key": 10,
-      "name": "������11",
-      "sex": "���",
-      "mobile": 13713713787,
-      "email": "test_11@test.com",
-      "weixin": "test11",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������11",
-      "nickname": "������11",
-      "updatedAt": "2017-07-05T16:00:00.000Z"
-    },
-    {
-      "key": 11,
-      "name": "������12",
-      "sex": "���",
-      "mobile": 13713713788,
-      "email": "test_12@test.com",
-      "weixin": "test12",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������12",
-      "nickname": "������12",
-      "updatedAt": "2017-07-05T16:00:00.000Z"
-    },
-    {
-      "key": 12,
-      "name": "������13",
-      "sex": "���",
-      "mobile": 13713713789,
-      "email": "test_13@test.com",
-      "weixin": "test13",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������13",
-      "nickname": "������13",
-      "updatedAt": "2017-07-06T16:00:00.000Z"
-    },
-    {
-      "key": 13,
-      "name": "������14",
-      "sex": "���",
-      "mobile": 13713713790,
-      "email": "test_14@test.com",
-      "weixin": "test14",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������14",
-      "nickname": "������14",
-      "updatedAt": "2017-07-06T16:00:00.000Z"
-    },
-    {
-      "key": 14,
-      "name": "������15",
-      "sex": "���",
-      "mobile": 13713713791,
-      "email": "test_15@test.com",
-      "weixin": "test15",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������15",
-      "nickname": "������15",
-      "updatedAt": "2017-07-07T16:00:00.000Z"
-    },
-    {
-      "key": 15,
-      "name": "������16",
-      "sex": "���",
-      "mobile": 13713713792,
-      "email": "test_16@test.com",
-      "weixin": "test16",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������16",
-      "nickname": "������16",
-      "updatedAt": "2017-07-07T16:00:00.000Z"
-    },
-    {
-      "key": 16,
-      "name": "������17",
-      "sex": "���",
-      "mobile": 13713713793,
-      "email": "test_17@test.com",
-      "weixin": "test17",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������17",
-      "nickname": "������17",
-      "updatedAt": "2017-07-08T16:00:00.000Z"
-    },
-    {
-      "key": 17,
-      "name": "������18",
-      "sex": "���",
-      "mobile": 13713713794,
-      "email": "test_18@test.com",
-      "weixin": "test18",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������18",
-      "nickname": "������18",
-      "updatedAt": "2017-07-08T16:00:00.000Z"
-    },
-    {
-      "key": 18,
-      "name": "������19",
-      "sex": "���",
-      "mobile": 13713713795,
-      "email": "test_19@test.com",
-      "weixin": "test19",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������19",
-      "nickname": "������19",
-      "updatedAt": "2017-07-10T00:00:00.000Z"
-    },
-    {
-      "key": 19,
-      "name": "������20",
-      "sex": "���",
-      "mobile": 13713713796,
-      "email": "test_20@test.com",
-      "weixin": "test20",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������20",
-      "nickname": "������20",
-      "updatedAt": "2017-07-10T00:00:00.000Z"
-    },
-    {
-      "key": 20,
-      "name": "������21",
-      "sex": "���",
-      "mobile": 13713713797,
-      "email": "test_21@test.com",
-      "weixin": "test21",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������21",
-      "nickname": "������21",
-      "updatedAt": "2017-07-11T00:00:00.000Z"
-    },
-    {
-      "key": 21,
-      "name": "������22",
-      "sex": "���",
-      "mobile": 13713713798,
-      "email": "test_22@test.com",
-      "weixin": "test22",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������22",
-      "nickname": "������22",
-      "updatedAt": "2017-07-11T00:00:00.000Z"
-    },
-    {
-      "key": 22,
-      "name": "������23",
-      "sex": "���",
-      "mobile": 13713713799,
-      "email": "test_23@test.com",
-      "weixin": "test23",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������23",
-      "nickname": "������23",
-      "updatedAt": "2017-07-12T00:00:00.000Z"
-    },
-    {
-      "key": 23,
-      "name": "������24",
-      "sex": "���",
-      "mobile": 13713713800,
-      "email": "test_24@test.com",
-      "weixin": "test24",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������24",
-      "nickname": "������24",
-      "updatedAt": "2017-07-12T00:00:00.000Z"
-    },
-    {
-      "key": 24,
-      "name": "������25",
-      "sex": "���",
-      "mobile": 13713713801,
-      "email": "test_25@test.com",
-      "weixin": "test25",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������25",
-      "nickname": "������25",
-      "updatedAt": "2017-07-13T00:00:00.000Z"
-    },
-    {
-      "key": 25,
-      "name": "������26",
-      "sex": "���",
-      "mobile": 13713713802,
-      "email": "test_26@test.com",
-      "weixin": "test26",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������26",
-      "nickname": "������26",
-      "updatedAt": "2017-07-13T00:00:00.000Z"
-    },
-    {
-      "key": 26,
-      "name": "������27",
-      "sex": "���",
-      "mobile": 13713713803,
-      "email": "test_27@test.com",
-      "weixin": "test27",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������27",
-      "nickname": "������27",
-      "updatedAt": "2017-07-14T00:00:00.000Z"
-    },
-    {
-      "key": 27,
-      "name": "������28",
-      "sex": "���",
-      "mobile": 13713713804,
-      "email": "test_28@test.com",
-      "weixin": "test28",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������28",
-      "nickname": "������28",
-      "updatedAt": "2017-07-14T00:00:00.000Z"
-    },
-    {
-      "key": 28,
-      "name": "������29",
-      "sex": "���",
-      "mobile": 13713713805,
-      "email": "test_29@test.com",
-      "weixin": "test29",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������29",
-      "nickname": "������29",
-      "updatedAt": "2017-07-15T00:00:00.000Z"
-    },
-    {
-      "key": 29,
-      "name": "������30",
-      "sex": "���",
-      "mobile": 13713713806,
-      "email": "test_30@test.com",
-      "weixin": "test30",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������30",
-      "nickname": "������30",
-      "updatedAt": "2017-07-15T00:00:00.000Z"
-    },
-    {
-      "key": 30,
-      "name": "������31",
-      "sex": "���",
-      "mobile": 13713713807,
-      "email": "test_31@test.com",
-      "weixin": "test31",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������31",
-      "nickname": "������31",
-      "updatedAt": "2017-07-16T00:00:00.000Z"
-    },
-    {
-      "key": 31,
-      "name": "������32",
-      "sex": "���",
-      "mobile": 13713713808,
-      "email": "test_32@test.com",
-      "weixin": "test32",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������32",
-      "nickname": "������32",
-      "updatedAt": "2017-07-16T00:00:00.000Z"
-    },
-    {
-      "key": 32,
-      "name": "������33",
-      "sex": "���",
-      "mobile": 13713713809,
-      "email": "test_33@test.com",
-      "weixin": "test33",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������33",
-      "nickname": "������33",
-      "updatedAt": "2017-07-17T00:00:00.000Z"
-    },
-    {
-      "key": 33,
-      "name": "������34",
-      "sex": "���",
-      "mobile": 13713713810,
-      "email": "test_34@test.com",
-      "weixin": "test34",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������34",
-      "nickname": "������34",
-      "updatedAt": "2017-07-17T00:00:00.000Z"
-    },
-    {
-      "key": 34,
-      "name": "������35",
-      "sex": "���",
-      "mobile": 13713713811,
-      "email": "test_35@test.com",
-      "weixin": "test35",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������35",
-      "nickname": "������35",
-      "updatedAt": "2017-07-18T00:00:00.000Z"
-    },
-    {
-      "key": 35,
-      "name": "������36",
-      "sex": "���",
-      "mobile": 13713713812,
-      "email": "test_36@test.com",
-      "weixin": "test36",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������36",
-      "nickname": "������36",
-      "updatedAt": "2017-07-18T00:00:00.000Z"
-    },
-    {
-      "key": 36,
-      "name": "������37",
-      "sex": "���",
-      "mobile": 13713713813,
-      "email": "test_37@test.com",
-      "weixin": "test37",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������37",
-      "nickname": "������37",
-      "updatedAt": "2017-07-19T00:00:00.000Z"
-    },
-    {
-      "key": 37,
-      "name": "������38",
-      "sex": "���",
-      "mobile": 13713713814,
-      "email": "test_38@test.com",
-      "weixin": "test38",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������38",
-      "nickname": "������38",
-      "updatedAt": "2017-07-19T00:00:00.000Z"
-    },
-    {
-      "key": 38,
-      "name": "������39",
-      "sex": "���",
-      "mobile": 13713713815,
-      "email": "test_39@test.com",
-      "weixin": "test39",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������39",
-      "nickname": "������39",
-      "updatedAt": "2017-07-20T00:00:00.000Z"
-    },
-    {
-      "key": 39,
-      "name": "������40",
-      "sex": "���",
-      "mobile": 13713713816,
-      "email": "test_40@test.com",
-      "weixin": "test40",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������40",
-      "nickname": "������40",
-      "updatedAt": "2017-07-20T00:00:00.000Z"
-    },
-    {
-      "key": 40,
-      "name": "������41",
-      "sex": "���",
-      "mobile": 13713713817,
-      "email": "test_41@test.com",
-      "weixin": "test41",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������41",
-      "nickname": "������41",
-      "updatedAt": "2017-07-21T00:00:00.000Z"
-    },
-    {
-      "key": 41,
-      "name": "������42",
-      "sex": "���",
-      "mobile": 13713713818,
-      "email": "test_42@test.com",
-      "weixin": "test42",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������42",
-      "nickname": "������42",
-      "updatedAt": "2017-07-21T00:00:00.000Z"
-    },
-    {
-      "key": 42,
-      "name": "������43",
-      "sex": "���",
-      "mobile": 13713713819,
-      "email": "test_43@test.com",
-      "weixin": "test43",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������43",
-      "nickname": "������43",
-      "updatedAt": "2017-07-22T00:00:00.000Z"
-    },
-    {
-      "key": 43,
-      "name": "������44",
-      "sex": "���",
-      "mobile": 13713713820,
-      "email": "test_44@test.com",
-      "weixin": "test44",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������44",
-      "nickname": "������44",
-      "updatedAt": "2017-07-22T00:00:00.000Z"
-    },
-    {
-      "key": 44,
-      "name": "������45",
-      "sex": "���",
-      "mobile": 13713713821,
-      "email": "test_45@test.com",
-      "weixin": "test45",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������45",
-      "nickname": "������45",
-      "updatedAt": "2017-07-23T00:00:00.000Z"
-    },
-    {
-      "key": 45,
-      "name": "������46",
-      "sex": "���",
-      "mobile": 13713713822,
-      "email": "test_46@test.com",
-      "weixin": "test46",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������46",
-      "nickname": "������46",
-      "updatedAt": "2017-07-23T00:00:00.000Z"
-    },
-    {
-      "key": 46,
-      "name": "������47",
-      "sex": "���",
-      "mobile": 13713713823,
-      "email": "test_47@test.com",
-      "weixin": "test47",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������47",
-      "nickname": "������47",
-      "updatedAt": "2017-07-24T00:00:00.000Z"
-    },
-    {
-      "key": 47,
-      "name": "������48",
-      "sex": "���",
-      "mobile": 13713713824,
-      "email": "test_48@test.com",
-      "weixin": "test48",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������48",
-      "nickname": "������48",
-      "updatedAt": "2017-07-24T00:00:00.000Z"
-    },
-    {
-      "key": 48,
-      "name": "������49",
-      "sex": "���",
-      "mobile": 13713713825,
-      "email": "test_49@test.com",
-      "weixin": "test49",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������49",
-      "nickname": "������49",
-      "updatedAt": "2017-07-25T00:00:00.000Z"
-    },
-    {
-      "key": 49,
-      "name": "������50",
-      "sex": "���",
-      "mobile": 13713713826,
-      "email": "test_50@test.com",
-      "weixin": "test50",
-      "password": "ISGMyneATSuhkiwz4BURBQ==",
-      "organization": "������50",
-      "nickname": "������50",
-      "updatedAt": "2017-07-25T00:00:00.000Z"
-    }
-  ]
-}
diff --git a/src/environments/environment.chore.ts b/src/environments/environment.chore.ts
index 4c17d9f..206d19c 100644
--- a/src/environments/environment.chore.ts
+++ b/src/environments/environment.chore.ts
@@ -1,7 +1,7 @@
 export const environment = {
+    chore: true,
     SERVER_URL: `./`,
     production: true,
     hmr: false,
-    useHash: false,
-    SERVER_BASH_URL: 'http://47.96.171.62:8080/screen_api_v2'
+    useHash: false
 };
diff --git a/src/environments/environment.hmr.ts b/src/environments/environment.hmr.ts
index c4fce7c..72977ba 100644
--- a/src/environments/environment.hmr.ts
+++ b/src/environments/environment.hmr.ts
@@ -1,7 +1,7 @@
 export const environment = {
+    chore: false,
     SERVER_URL: `./`,
-    production: true,
+    production: false,
     hmr: true,
-    useHash: true,
-    SERVER_BASH_URL: 'http://47.96.171.62:8080/screen_api_v2'
+    useHash: true
 };
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
index 9298dc8..5be2215 100644
--- a/src/environments/environment.prod.ts
+++ b/src/environments/environment.prod.ts
@@ -1,7 +1,7 @@
 export const environment = {
+    chore: false,
     SERVER_URL: `./`,
     production: true,
     hmr: false,
-    useHash: true,
-    SERVER_BASH_URL: 'http://localhost:8080'
+    useHash: true
 };
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
index feeefdd..2a6fb94 100644
--- a/src/environments/environment.ts
+++ b/src/environments/environment.ts
@@ -4,9 +4,10 @@
 // The list of which env maps to which file can be found in `.angular-cli.json`.
 
 export const environment = {
+    chore: false,
     SERVER_URL: `./`,
     production: false,
     hmr: false,
     useHash: true,
-    SERVER_BASH_URL: 'http://47.96.171.62:8080/screen_api_v2'
+    SERVER_BASH_URL: `http://127.0.0.1:8001/`
 };
diff --git a/src/test.ts b/src/test.ts
index cd612ee..59871f7 100644
--- a/src/test.ts
+++ b/src/test.ts
@@ -1,5 +1,4 @@
 // This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
 import 'zone.js/dist/long-stack-trace-zone';
 import 'zone.js/dist/proxy.js';
 import 'zone.js/dist/sync-test';
@@ -26,6 +25,7 @@
 );
 // Then we find all the tests.
 const context = require.context('./', true, /\.spec\.ts$/);
+// const context = require.context('./', true, /qq\.component\.spec\.ts$/);
 // And load the modules.
 context.keys().map(context);
 // Finally, start Karma to run the tests.
diff --git a/src/testing/common.spec.ts b/src/testing/common.spec.ts
index 7aed99b..9aa9b27 100644
--- a/src/testing/common.spec.ts
+++ b/src/testing/common.spec.ts
@@ -2,15 +2,17 @@
 
 import { TestBed, async, TestModuleMetadata } from '@angular/core/testing';
 import { Type, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
-
-import { CoreModule } from '@core/core.module';
 import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
-import { HttpLoaderFactory } from 'app/app.module';
-import { HttpClient } from '@angular/common/http';
+import { RouterTestingModule } from '@angular/router/testing';
+import { HttpClientModule, HttpClient } from '@angular/common/http';
+
 import { ALAIN_I18N_TOKEN, ColorsService, SettingsService, MenuService, ScrollService, _HttpClient, ALAIN_THEME_OPTIONS } from '@delon/theme';
 import { I18NService } from '@core/i18n/i18n.service';
-import { RouterTestingModule } from '@angular/router/testing';
+import { CoreModule } from '@core/core.module';
 import { SharedModule } from '@shared/shared.module';
+import { DelonModule } from '../app/delon.module';
+import { AlainAuthModule } from '@delon/auth';
+import { HttpLoaderFactory } from '../app/app.module';
 
 const resetTestingModule = TestBed.resetTestingModule,
       preventAngularFromResetting = () => TestBed.resetTestingModule = () => TestBed;
@@ -29,7 +31,13 @@
         // region: imports
         if (!moduleDef.imports) moduleDef.imports = [];
         moduleDef.imports.push(RouterTestingModule);
-        moduleDef.imports.push(SharedModule.forRoot());
+        moduleDef.imports.push(HttpClientModule);
+        moduleDef.imports.push(DelonModule);
+        moduleDef.imports.push(SharedModule);
+        // auth
+        moduleDef.imports.push(AlainAuthModule.forRoot({
+            login_url: `/passport/login`
+        }));
         moduleDef.imports.push(TranslateModule.forRoot({
             loader: {
                 provide: TranslateLoader,
diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json
index de2e6ef..0903fbc 100644
--- a/src/tsconfig.app.json
+++ b/src/tsconfig.app.json
@@ -6,12 +6,16 @@
     "module": "es2015",
     "types": [],
     "paths": {
-      "@shared": [ "app/shared" ],
-      "@shared/*": [ "app/shared/*" ],
-      "@core": [ "app/core/" ],
-      "@core/*": [ "app/core/*" ],
-      "@business": [ "app/business/" ],
-      "@business/*": [ "app/business/*" ]
+        "@shared": [ "app/shared" ],
+        "@shared/*": [ "app/shared/*" ],
+        "@core": [ "app/core/" ],
+        "@core/*": [ "app/core/*" ],
+        "@testing": [ "testing/" ],
+        "@testing/*": [ "testing/*" ],
+        "@env": [ "environments/" ],
+        "@env/*": [ "environments/*" ],
+        "@business": [ "app/business" ],
+        "@business/*": [ "app/business/*" ]
     }
   },
   "exclude": [
diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json
index 34d8bf6..3c1fdec 100644
--- a/src/tsconfig.spec.json
+++ b/src/tsconfig.spec.json
@@ -10,12 +10,16 @@
       "node"
     ],
     "paths": {
-      "@shared": [ "app/shared" ],
-      "@shared/*": [ "app/shared/*" ],
-      "@core": [ "app/core/" ],
-      "@core/*": [ "app/core/*" ],
-      "@business": [ "app/business/" ],
-      "@business/*": [ "app/business/*" ]
+        "@shared": [ "app/shared" ],
+        "@shared/*": [ "app/shared/*" ],
+        "@core": [ "app/core/" ],
+        "@core/*": [ "app/core/*" ],
+        "@testing": [ "testing/" ],
+        "@testing/*": [ "testing/*" ],
+        "@env": [ "environments/" ],
+        "@env/*": [ "environments/*" ],
+        "@business": [ "app/business" ],
+        "@business/*": [ "app/business/*" ]
     }
   },
   "files": [
diff --git a/tsconfig.json b/tsconfig.json
index 448f1bd..e961ded 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -7,8 +7,6 @@
     "moduleResolution": "node",
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
-    "noUnusedLocals": false,
-    "noUnusedParameters": false,
     "target": "es5",
     "typeRoots": [
       "node_modules/@types"
@@ -23,7 +21,11 @@
         "@shared/*": [ "app/shared/*" ],
         "@core": [ "app/core/" ],
         "@core/*": [ "app/core/*" ],
-        "@business": [ "app/business/" ],
+        "@testing": [ "testing/" ],
+        "@testing/*": [ "testing/*" ],
+        "@env": [ "environments/" ],
+        "@env/*": [ "environments/*" ],
+        "@business": [ "app/business" ],
         "@business/*": [ "app/business/*" ]
     }
   }
diff --git a/yarn.lock b/yarn.lock
index 366cffd..73e87a9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -174,24 +174,25 @@
   version "2.1.3"
   resolved "http://registry.npm.taobao.org/@angularclass/hmr/download/@angularclass/hmr-2.1.3.tgz#34e658ed3da37f23b0a200e2da5a89be92bb209f"
 
-"@antv/data-set@^0.7.0":
-  version "0.7.0"
-  resolved "http://registry.npm.taobao.org/@antv/data-set/download/@antv/data-set-0.7.0.tgz#0e1ab3c88abe83ad668600de4e18b1637c0621a3"
+"@antv/data-set@^0.8.3":
+  version "0.8.3"
+  resolved "http://registry.npm.taobao.org/@antv/data-set/download/@antv/data-set-0.8.3.tgz#7f58207532a9de5d174b52676b876247b2acab02"
   dependencies:
-    d3-array "^1.2.0"
-    d3-composite-projections "^1.2.0"
-    d3-dsv "^1.0.5"
-    d3-geo "^1.6.4"
-    d3-geo-projection "^2.1.2"
-    d3-hierarchy "^1.1.5"
-    d3-sankey "^0.7.1"
-    d3-voronoi "^1.1.2"
-    lodash "^4.17.4"
-    point-at-length "^1.0.2"
-    regression "^2.0.0"
-    simple-statistics "^4.1.0"
-    topojson-client "^3.0.0"
-    wolfy87-eventemitter "^5.1.0"
+    d3-array "~1.2.0"
+    d3-composite-projections "~1.2.0"
+    d3-dsv "~1.0.5"
+    d3-geo "~1.6.4"
+    d3-geo-projection "~2.1.2"
+    d3-hexjson "^1.0.1"
+    d3-hierarchy "~1.1.5"
+    d3-sankey "~0.7.1"
+    d3-voronoi "~1.1.2"
+    lodash "~4.17.4"
+    point-at-length "~1.0.2"
+    regression "~2.0.0"
+    simple-statistics "~4.1.0"
+    topojson-client "~3.0.0"
+    wolfy87-eventemitter "~5.1.0"
 
 "@antv/g2-plugin-slider@^2.0.0":
   version "2.0.1"
@@ -218,21 +219,29 @@
     lodash "^4.17.4"
     wolfy87-eventemitter "^5.1.0"
 
-"@delon/abc@^0.3.0-rc.1":
-  version "0.3.2"
-  resolved "http://registry.npm.taobao.org/@delon/abc/download/@delon/abc-0.3.2.tgz#b0de2df6f262ae283721c40ea3806137ac172dd0"
+"@delon/abc@^0.6.0-rc.2":
+  version "0.6.0-rc.2"
+  resolved "http://registry.npm.taobao.org/@delon/abc/download/@delon/abc-0.6.0-rc.2.tgz#29042b329147492d2900eff5266dce2f760118c9"
 
-"@delon/acl@^0.3.0-rc.1":
-  version "0.3.2"
-  resolved "http://registry.npm.taobao.org/@delon/acl/download/@delon/acl-0.3.2.tgz#f9a507cbc2acb092d35c5ec51b402b4823bed466"
+"@delon/acl@^0.6.0-rc.2":
+  version "0.6.0-rc.2"
+  resolved "http://registry.npm.taobao.org/@delon/acl/download/@delon/acl-0.6.0-rc.2.tgz#3e62d7ea2b7b5faa03644354e9bc9c0e496baa8e"
 
-"@delon/auth@^0.3.0-rc.1":
-  version "0.3.2"
-  resolved "http://registry.npm.taobao.org/@delon/auth/download/@delon/auth-0.3.2.tgz#59b0273a8a17ad3e893633c8bd83de15d913eb9a"
+"@delon/auth@^0.6.0-rc.2":
+  version "0.6.0-rc.2"
+  resolved "http://registry.npm.taobao.org/@delon/auth/download/@delon/auth-0.6.0-rc.2.tgz#2aab1245f114845b29f3d127846efa19d617ce5c"
 
-"@delon/theme@^0.3.0-rc.1":
-  version "0.3.2"
-  resolved "http://registry.npm.taobao.org/@delon/theme/download/@delon/theme-0.3.2.tgz#7e7924c8c7524d937171b4ea08ff74f6be950be2"
+"@delon/cache@^0.6.0-rc.2":
+  version "0.6.0-rc.2"
+  resolved "http://registry.npm.taobao.org/@delon/cache/download/@delon/cache-0.6.0-rc.2.tgz#d65789d375c7939d398395e97adf66b9f87a2fa4"
+
+"@delon/mock@^0.6.0-rc.2":
+  version "0.6.0-rc.2"
+  resolved "http://registry.npm.taobao.org/@delon/mock/download/@delon/mock-0.6.0-rc.2.tgz#9e7b677c692241845425e82116755f3c0dfed439"
+
+"@delon/theme@^0.6.0-rc.2":
+  version "0.6.0-rc.2"
+  resolved "http://registry.npm.taobao.org/@delon/theme/download/@delon/theme-0.6.0-rc.2.tgz#906f81ba8fe292aa86dea2cb97f7dffff37ffef3"
 
 "@ngtools/json-schema@1.1.0", "@ngtools/json-schema@^1.1.0":
   version "1.1.0"
@@ -282,6 +291,20 @@
   resolved "http://registry.npm.taobao.org/@types/jasminewd2/download/@types/jasminewd2-2.0.3.tgz#0d2886b0cbdae4c0eeba55e30792f584bf040a95"
   dependencies:
     "@types/jasmine" "*"
+
+"@types/jszip@^3.1.2":
+  version "3.1.3"
+  resolved "http://registry.npm.taobao.org/@types/jszip/download/@types/jszip-3.1.3.tgz#5567e9f0a31012341cedcc707175f2c28a430005"
+  dependencies:
+    "@types/node" "*"
+
+"@types/mockjs@^1.0.0":
+  version "1.0.0"
+  resolved "http://registry.npm.taobao.org/@types/mockjs/download/@types/mockjs-1.0.0.tgz#a696e1f64c92e7bd6af6343bf8350d1b9d12b388"
+
+"@types/node@*":
+  version "9.3.0"
+  resolved "http://registry.npm.taobao.org/@types/node/download/@types/node-9.3.0.tgz#3a129cda7c4e5df2409702626892cb4b96546dd5"
 
 "@types/node@^6.0.46", "@types/node@~6.0.60":
   version "6.0.96"
@@ -334,6 +357,13 @@
 acorn@^5.0.0, acorn@^5.1.1:
   version "5.3.0"
   resolved "http://registry.npm.taobao.org/acorn/download/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822"
+
+adler-32@~1.1.0:
+  version "1.1.0"
+  resolved "http://registry.npm.taobao.org/adler-32/download/adler-32-1.1.0.tgz#03551a5c7f0edfbd4fc8fa12a6814978eab651c3"
+  dependencies:
+    exit-on-epipe "~1.0.1"
+    printj "~1.1.0"
 
 adm-zip@0.4.4:
   version "0.4.4"
@@ -398,9 +428,15 @@
   version "1.0.1"
   resolved "http://registry.npm.taobao.org/angular-qq-maps/download/angular-qq-maps-1.0.1.tgz#ba4f312f501bb208837081ed9dd7e595ba53c810"
 
-angular-tree-component@^6.1.0:
-  version "6.1.0"
-  resolved "http://registry.npm.taobao.org/angular-tree-component/download/angular-tree-component-6.1.0.tgz#9d9a6b28a6881c2072cd6306b55229579e894071"
+angular-split@^1.0.0-rc.0:
+  version "1.0.0-rc.0"
+  resolved "http://registry.npm.taobao.org/angular-split/download/angular-split-1.0.0-rc.0.tgz#d7ec2fcb2166ce0e63babe000e18126e6ee9a407"
+  dependencies:
+    tslib "^1.7.1"
+
+angular-tree-component@^7.0.1:
+  version "7.0.1"
+  resolved "http://registry.npm.taobao.org/angular-tree-component/download/angular-tree-component-7.0.1.tgz#fc8d0e72d8c34b87131a3ba2bd32ad20945689ac"
   dependencies:
     lodash "4.17.4"
     mobx ">=3"
@@ -1104,6 +1140,13 @@
     align-text "^0.1.3"
     lazy-cache "^1.0.3"
 
+cfb@~1.0.1:
+  version "1.0.1"
+  resolved "http://registry.npm.taobao.org/cfb/download/cfb-1.0.1.tgz#557bb24f67dae78803785a1595d365bc82c5fab4"
+  dependencies:
+    commander "^2.12.1"
+    printj "~1.1.0"
+
 chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
   version "1.1.3"
   resolved "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -1286,6 +1329,14 @@
     source-map "^0.5.6"
     sprintf-js "^1.0.3"
 
+codepage@~1.11.0:
+  version "1.11.1"
+  resolved "http://registry.npm.taobao.org/codepage/download/codepage-1.11.1.tgz#86472397ea5b2cdbb07b77016a512477a3cb8823"
+  dependencies:
+    commander "~2.11.0"
+    exit-on-epipe "~1.0.1"
+    voc "~1.0.0"
+
 collapse-white-space@^1.0.2:
   version "1.0.3"
   resolved "http://registry.npm.taobao.org/collapse-white-space/download/collapse-white-space-1.0.3.tgz#4b906f670e5a963a87b76b0e1689643341b6023c"
@@ -1342,9 +1393,13 @@
   dependencies:
     delayed-stream "~1.0.0"
 
-commander@2, commander@2.12.x, commander@^2.11.0, commander@^2.9.0, commander@~2.12.1:
+commander@*, commander@2, commander@2.12.x, commander@^2.11.0, commander@^2.12.1, commander@^2.9.0, commander@~2.12.1:
   version "2.12.2"
   resolved "http://registry.npm.taobao.org/commander/download/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555"
+
+commander@~2.11.0:
+  version "2.11.0"
+  resolved "http://registry.npm.taobao.org/commander/download/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
 
 common-tags@^1.3.1:
   version "1.7.0"
@@ -1518,6 +1573,13 @@
     js-yaml "^3.9.0"
     parse-json "^3.0.0"
     require-from-string "^2.0.1"
+
+crc-32@~1.1.1:
+  version "1.1.1"
+  resolved "http://registry.npm.taobao.org/crc-32/download/crc-32-1.1.1.tgz#5d739d5e4c6e352ad8304d73223d483fe55adb8d"
+  dependencies:
+    exit-on-epipe "~1.0.1"
+    printj "~1.1.0"
 
 crc32-stream@^2.0.0:
   version "2.0.0"
@@ -1720,7 +1782,7 @@
   version "0.2.2"
   resolved "http://registry.npm.taobao.org/cyclist/download/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
 
-d3-array@1, d3-array@^1.2.0:
+d3-array@1, d3-array@~1.2.0:
   version "1.2.1"
   resolved "http://registry.npm.taobao.org/d3-array/download/d3-array-1.2.1.tgz#d1ca33de2f6ac31efadb8e050a021d7e2396d5dc"
 
@@ -1732,14 +1794,14 @@
   version "1.0.3"
   resolved "http://registry.npm.taobao.org/d3-color/download/d3-color-1.0.3.tgz#bc7643fca8e53a8347e2fbdaffa236796b58509b"
 
-d3-composite-projections@^1.2.0:
+d3-composite-projections@~1.2.0:
   version "1.2.0"
   resolved "http://registry.npm.taobao.org/d3-composite-projections/download/d3-composite-projections-1.2.0.tgz#fa0e6f1442f17d04643843a3a883c7d94e0c27c0"
   dependencies:
     d3-geo "1.2.4"
     d3-path "^1.0.1"
 
-d3-dsv@^1.0.5:
+d3-dsv@~1.0.5:
   version "1.0.8"
   resolved "http://registry.npm.taobao.org/d3-dsv/download/d3-dsv-1.0.8.tgz#907e240d57b386618dc56468bacfe76bf19764ae"
   dependencies:
@@ -1751,13 +1813,13 @@
   version "1.0.3"
   resolved "http://registry.npm.taobao.org/d3-ease/download/d3-ease-1.0.3.tgz#68bfbc349338a380c44d8acc4fbc3304aa2d8c0e"
 
-d3-geo-projection@^2.1.2:
-  version "2.3.2"
-  resolved "http://registry.npm.taobao.org/d3-geo-projection/download/d3-geo-projection-2.3.2.tgz#72e559dc05d97fa9f218ccc9c537d329f4cfc474"
+d3-geo-projection@~2.1.2:
+  version "2.1.2"
+  resolved "http://registry.npm.taobao.org/d3-geo-projection/download/d3-geo-projection-2.1.2.tgz#7df8e1e9d046d631c6509f7e531357d4adc24aa3"
   dependencies:
     commander "2"
     d3-array "1"
-    d3-geo "^1.7.1"
+    d3-geo "^1.1.0"
 
 d3-geo@1.2.4:
   version "1.2.4"
@@ -1765,13 +1827,25 @@
   dependencies:
     d3-array "1"
 
-d3-geo@^1.6.4, d3-geo@^1.7.1:
+d3-geo@^1.1.0:
   version "1.9.1"
   resolved "http://registry.npm.taobao.org/d3-geo/download/d3-geo-1.9.1.tgz#157e3b0f917379d0f73bebfff3be537f49fa7356"
   dependencies:
     d3-array "1"
 
-d3-hierarchy@^1.1.5:
+d3-geo@~1.6.4:
+  version "1.6.4"
+  resolved "http://registry.npm.taobao.org/d3-geo/download/d3-geo-1.6.4.tgz#f20e1e461cb1845f5a8be55ab6f876542a7e3199"
+  dependencies:
+    d3-array "1"
+
+d3-hexjson@^1.0.1:
+  version "1.0.1"
+  resolved "http://registry.npm.taobao.org/d3-hexjson/download/d3-hexjson-1.0.1.tgz#6a23111e8359f1e214f5d0afa379c02b2b67df0b"
+  dependencies:
+    d3-array "1"
+
+d3-hierarchy@~1.1.5:
   version "1.1.5"
   resolved "http://registry.npm.taobao.org/d3-hierarchy/download/d3-hierarchy-1.1.5.tgz#a1c845c42f84a206bcf1c01c01098ea4ddaa7a26"
 
@@ -1785,7 +1859,7 @@
   version "1.0.5"
   resolved "http://registry.npm.taobao.org/d3-path/download/d3-path-1.0.5.tgz#241eb1849bd9e9e8021c0d0a799f8a0e8e441764"
 
-d3-sankey@^0.7.1:
+d3-sankey@~0.7.1:
   version "0.7.1"
   resolved "http://registry.npm.taobao.org/d3-sankey/download/d3-sankey-0.7.1.tgz#d229832268fc69a7fec84803e96c2256a614c521"
   dependencies:
@@ -1803,7 +1877,7 @@
   version "1.0.7"
   resolved "http://registry.npm.taobao.org/d3-timer/download/d3-timer-1.0.7.tgz#df9650ca587f6c96607ff4e60cc38229e8dd8531"
 
-d3-voronoi@^1.1.2:
+d3-voronoi@~1.1.2:
   version "1.1.2"
   resolved "http://registry.npm.taobao.org/d3-voronoi/download/d3-voronoi-1.1.2.tgz#1687667e8f13a2d158c80c1480c5a29cb0d8973c"
 
@@ -2426,6 +2500,10 @@
   version "1.1.1"
   resolved "http://registry.npm.taobao.org/exit-hook/download/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
 
+exit-on-epipe@~1.0.1:
+  version "1.0.1"
+  resolved "http://registry.npm.taobao.org/exit-on-epipe/download/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692"
+
 exit@^0.1.2:
   version "0.1.2"
   resolved "http://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
@@ -2736,6 +2814,12 @@
 forwarded@~0.1.2:
   version "0.1.2"
   resolved "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+
+frac@~1.1.0:
+  version "1.1.0"
+  resolved "http://registry.npm.taobao.org/frac/download/frac-1.1.0.tgz#dc437e9c6a646b60b127d82ac4902464445cc1e3"
+  dependencies:
+    voc "~1.0.0"
 
 fresh@0.5.2:
   version "0.5.2"
@@ -4625,6 +4709,12 @@
   version "3.4.1"
   resolved "http://registry.npm.taobao.org/mobx/download/mobx-3.4.1.tgz#37abe5ee882d401828d9f26c6c1a2f47614bbbef"
 
+mockjs@^1.0.1-beta3:
+  version "1.0.1-beta3"
+  resolved "http://registry.npm.taobao.org/mockjs/download/mockjs-1.0.1-beta3.tgz#d234f3c27256397564f2c955142e891909537209"
+  dependencies:
+    commander "*"
+
 moment@^2.18.1, moment@^2.19.3:
   version "2.20.1"
   resolved "http://registry.npm.taobao.org/moment/download/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd"
@@ -4683,6 +4773,25 @@
   version "0.6.1"
   resolved "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
 
+ng-clipboard-antd@^2.0.1:
+  version "2.0.1"
+  resolved "http://registry.npm.taobao.org/ng-clipboard-antd/download/ng-clipboard-antd-2.0.1.tgz#2f200b8d22ecb6d5360408d6985df3f51abd7cf6"
+  dependencies:
+    "@angular/animations" "^5.0.0"
+    "@angular/common" "^5.0.0"
+    "@angular/compiler" "^5.0.0"
+    "@angular/core" "^5.0.0"
+    "@angular/forms" "^5.0.0"
+    "@angular/http" "^5.0.0"
+    "@angular/platform-browser" "^5.0.0"
+    "@angular/platform-browser-dynamic" "^5.0.0"
+    "@angular/router" "^5.0.0"
+    core-js "^2.4.1"
+    ng-zorro-antd "^0.6.7"
+    ngx-highlight-js "^1.0.3"
+    rxjs "^5.5.2"
+    zone.js "^0.8.14"
+
 ng-tree-antd@^2.0.0:
   version "2.1.0"
   resolved "http://registry.npm.taobao.org/ng-tree-antd/download/ng-tree-antd-2.1.0.tgz#4cbb93ad3c7a2bddc6c329d788e767777481dcbb"
@@ -4701,11 +4810,11 @@
     rxjs "^5.5.2"
     zone.js "^0.8.14"
 
-ng-zorro-antd-extra@^1.1.3:
+ng-zorro-antd-extra@^1.1.6:
   version "1.1.6"
   resolved "http://registry.npm.taobao.org/ng-zorro-antd-extra/download/ng-zorro-antd-extra-1.1.6.tgz#b69ba30603843ffd6ded09a46dd2038542251e40"
 
-ng-zorro-antd@^0.6.5:
+ng-zorro-antd@^0.6.5, ng-zorro-antd@^0.6.7:
   version "0.6.10"
   resolved "http://registry.npm.taobao.org/ng-zorro-antd/download/ng-zorro-antd-0.6.10.tgz#0cf5ec5cb94e10226a2b2becff67debf0c8ad860"
   dependencies:
@@ -4736,6 +4845,42 @@
 ngx-highlight-js@^1.0.3:
   version "1.0.3"
   resolved "http://registry.npm.taobao.org/ngx-highlight-js/download/ngx-highlight-js-1.0.3.tgz#b46ef9069d443baae7a43e5e4217d64fb8049003"
+
+ngx-tinymce@^1.0.1:
+  version "1.0.1"
+  resolved "http://registry.npm.taobao.org/ngx-tinymce/download/ngx-tinymce-1.0.1.tgz#a5f04f71a6a393a8363690530c4d832fc39fc9f2"
+  dependencies:
+    "@angular/animations" "^5.0.0"
+    "@angular/common" "^5.0.0"
+    "@angular/compiler" "^5.0.0"
+    "@angular/core" "^5.0.0"
+    "@angular/forms" "^5.0.0"
+    "@angular/http" "^5.0.0"
+    "@angular/platform-browser" "^5.0.0"
+    "@angular/platform-browser-dynamic" "^5.0.0"
+    "@angular/router" "^5.0.0"
+    core-js "^2.4.1"
+    ngx-highlight-js "^1.0.3"
+    rxjs "^5.5.2"
+    zone.js "^0.8.14"
+
+ngx-ueditor@^1.1.0:
+  version "1.1.0"
+  resolved "http://registry.npm.taobao.org/ngx-ueditor/download/ngx-ueditor-1.1.0.tgz#0766acc6a8e8205661131c97be49c1e991c97c6c"
+  dependencies:
+    "@angular/animations" "^5.0.0"
+    "@angular/common" "^5.0.0"
+    "@angular/compiler" "^5.0.0"
+    "@angular/core" "^5.0.0"
+    "@angular/forms" "^5.0.0"
+    "@angular/http" "^5.0.0"
+    "@angular/platform-browser" "^5.0.0"
+    "@angular/platform-browser-dynamic" "^5.0.0"
+    "@angular/router" "^5.0.0"
+    core-js "^2.4.1"
+    ngx-highlight-js "^1.0.3"
+    rxjs "^5.5.2"
+    zone.js "^0.8.14"
 
 no-case@^2.2.0:
   version "2.3.2"
@@ -5301,9 +5446,9 @@
   dependencies:
     find-up "^2.1.0"
 
-point-at-length@^1.0.2:
-  version "1.1.0"
-  resolved "http://registry.npm.taobao.org/point-at-length/download/point-at-length-1.1.0.tgz#0ad72ebd0980d7f5a1ab12296c055f9eb6b30e57"
+point-at-length@~1.0.2:
+  version "1.0.2"
+  resolved "http://registry.npm.taobao.org/point-at-length/download/point-at-length-1.0.2.tgz#9176d8d6d7c8162f12b646f707db9f0ea728125e"
   dependencies:
     abs-svg-path "~0.1.1"
     isarray "~0.0.1"
@@ -5696,6 +5841,10 @@
     ansi-regex "^3.0.0"
     ansi-styles "^3.2.0"
 
+printj@~1.1.0:
+  version "1.1.0"
+  resolved "http://registry.npm.taobao.org/printj/download/printj-1.1.0.tgz#85487b5e8f96763b0b4a253613bef9dd9b387e3c"
+
 process-nextick-args@~1.0.6:
   version "1.0.7"
   resolved "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
@@ -6044,7 +6193,7 @@
   dependencies:
     jsesc "~0.5.0"
 
-regression@^2.0.0:
+regression@~2.0.0:
   version "2.0.1"
   resolved "http://registry.npm.taobao.org/regression/download/regression-2.0.1.tgz#8d29c3e8224a10850c35e337e85a8b2fac3b0c87"
 
@@ -6559,7 +6708,7 @@
   version "2.4.1"
   resolved "http://registry.npm.taobao.org/simple-line-icons/download/simple-line-icons-2.4.1.tgz#b75bc5a0d87e530928c2ccda5735274bb256f234"
 
-simple-statistics@^4.1.0:
+simple-statistics@~4.1.0:
   version "4.1.1"
   resolved "http://registry.npm.taobao.org/simple-statistics/download/simple-statistics-4.1.1.tgz#533c48d48336ba3d350d8135f20fa7138acb0c7d"
 
@@ -6763,6 +6912,12 @@
 sprintf-js@~1.0.2:
   version "1.0.3"
   resolved "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+
+ssf@~0.10.1:
+  version "0.10.1"
+  resolved "http://registry.npm.taobao.org/ssf/download/ssf-0.10.1.tgz#f23d82b63792ef56089089c1cd0c848e911cdba6"
+  dependencies:
+    frac "~1.1.0"
 
 sshpk@^1.7.0:
   version "1.13.1"
@@ -7198,7 +7353,7 @@
   version "1.0.3"
   resolved "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
 
-topojson-client@^3.0.0:
+topojson-client@~3.0.0:
   version "3.0.0"
   resolved "http://registry.npm.taobao.org/topojson-client/download/topojson-client-3.0.0.tgz#1f99293a77ef42a448d032a81aa982b73f360d2f"
   dependencies:
@@ -7643,6 +7798,10 @@
   dependencies:
     indexof "0.0.1"
 
+voc@~1.0.0:
+  version "1.0.0"
+  resolved "http://registry.npm.taobao.org/voc/download/voc-1.0.0.tgz#5465c0ce11d0881f7d8e36d8ca587043f33a25ae"
+
 void-elements@^2.0.0:
   version "2.0.1"
   resolved "http://registry.npm.taobao.org/void-elements/download/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
@@ -7863,6 +8022,10 @@
   version "5.2.4"
   resolved "http://registry.npm.taobao.org/wolfy87-eventemitter/download/wolfy87-eventemitter-5.2.4.tgz#5021d2952d3611cbcd195149711d9b595cd11d48"
 
+wolfy87-eventemitter@~5.1.0:
+  version "5.1.0"
+  resolved "http://registry.npm.taobao.org/wolfy87-eventemitter/download/wolfy87-eventemitter-5.1.0.tgz#35c1ac0dd1ac0c15e35d981508fc22084a13a011"
+
 wordwrap@0.0.2:
   version "0.0.2"
   resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
@@ -7933,6 +8096,18 @@
   version "0.1.0"
   resolved "http://registry.npm.taobao.org/x-is-string/download/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82"
 
+xlsx@^0.11.16:
+  version "0.11.17"
+  resolved "http://registry.npm.taobao.org/xlsx/download/xlsx-0.11.17.tgz#507461fb9783ad0afe1cf751aeb59956e93232da"
+  dependencies:
+    adler-32 "~1.1.0"
+    cfb "~1.0.1"
+    codepage "~1.11.0"
+    commander "~2.11.0"
+    crc-32 "~1.1.1"
+    exit-on-epipe "~1.0.1"
+    ssf "~0.10.1"
+
 xml-char-classes@^1.0.0:
   version "1.0.0"
   resolved "http://registry.npm.taobao.org/xml-char-classes/download/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d"

--
Gitblit v1.8.0