From c175998e7628f77210241a1cdcff3bb753730908 Mon Sep 17 00:00:00 2001 From: Sayll Date: Sat, 8 Apr 2017 02:47:44 +0800 Subject: [PATCH] add files --- .codeclimate.yml | 25 + .eslintignore | 4 + .eslintrc.yml | 48 + .gitignore | 6 + .travis.yml | 20 + LICENSE | 21 + README.md | 4 +- app/html/index.html | 27 + app/source/css/index.pcss | 22 + app/source/css/library/weui.css | 2832 +++++++++++++++++ app/source/css/parts/class.css | 42 + app/source/css/parts/normalize.css | 461 +++ app/source/css/parts/phoneReset.css | 89 + app/source/css/parts/reset.css | 101 + app/source/font/icon/demo.css | 370 +++ app/source/font/icon/demo_fontclass.html | 52 + app/source/font/icon/demo_symbol.html | 79 + app/source/font/icon/demo_unicode.html | 90 + app/source/font/icon/iconfont.css | 20 + app/source/font/icon/iconfont.eot | Bin 0 -> 5370 bytes app/source/font/icon/iconfont.js | 132 + app/source/font/icon/iconfont.svg | 43 + app/source/font/icon/iconfont.ttf | Bin 0 -> 5104 bytes app/source/font/icon/iconfont.woff | Bin 0 -> 3156 bytes app/source/img/avatar.jpg | Bin 0 -> 8250 bytes app/source/img/avatar2.jpg | Bin 0 -> 85302 bytes app/source/js/main.js | 0 app/static/index.js | 10 + app/static/tools/NodeList.min.js | 2 + app/static/tools/fetch.js | 458 +++ app/view/index/actions/index.jsx | 14 + app/view/index/components/AddTodo/Input.jsx | 10 + app/view/index/components/AddTodo/index.jsx | 37 + .../index/components/Button/ActiveButton.jsx | 24 + .../index/components/Button/DefaultButton.jsx | 24 + app/view/index/components/Button/index.jsx | 20 + app/view/index/components/Footer.jsx | 52 + app/view/index/components/Todo/index.jsx | 56 + app/view/index/components/Todo/index.pcss | 26 + app/view/index/containers/App.jsx | 31 + app/view/index/containers/TodoList.jsx | 72 + app/view/index/epics/index.jsx | 5 + app/view/index/epics/requestSignFromPosts.jsx | 20 + app/view/index/index.jsx | 27 + app/view/index/index.pcss | 8 + app/view/index/reducers/createReducer.jsx | 27 + app/view/index/reducers/index.jsx | 6 + app/view/index/reducers/todos.jsx | 61 + app/view/index/store.jsx | 33 + config/webpack/base/base.js | 8 + config/webpack/base/files.js | 32 + config/webpack/modules/babel.js | 35 + config/webpack/modules/entry.js | 23 + config/webpack/modules/externals.js | 7 + config/webpack/modules/loader.js | 81 + config/webpack/modules/plugins.js | 83 + config/webpack/modules/resolve.js | 11 + config/webpack/webpack.build.js | 23 + config/webpack/webpack.config.js | 192 ++ config/webpack/webpack.dev.js | 23 + config/webpack/webpack.dll.js | 66 + package.json | 121 + server/main.js | 50 + 63 files changed, 6264 insertions(+), 2 deletions(-) create mode 100644 .codeclimate.yml create mode 100644 .eslintignore create mode 100644 .eslintrc.yml create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 LICENSE create mode 100644 app/html/index.html create mode 100644 app/source/css/index.pcss create mode 100644 app/source/css/library/weui.css create mode 100644 app/source/css/parts/class.css create mode 100644 app/source/css/parts/normalize.css create mode 100644 app/source/css/parts/phoneReset.css create mode 100644 app/source/css/parts/reset.css create mode 100644 app/source/font/icon/demo.css create mode 100644 app/source/font/icon/demo_fontclass.html create mode 100644 app/source/font/icon/demo_symbol.html create mode 100644 app/source/font/icon/demo_unicode.html create mode 100644 app/source/font/icon/iconfont.css create mode 100644 app/source/font/icon/iconfont.eot create mode 100644 app/source/font/icon/iconfont.js create mode 100644 app/source/font/icon/iconfont.svg create mode 100644 app/source/font/icon/iconfont.ttf create mode 100644 app/source/font/icon/iconfont.woff create mode 100644 app/source/img/avatar.jpg create mode 100644 app/source/img/avatar2.jpg create mode 100644 app/source/js/main.js create mode 100644 app/static/index.js create mode 100644 app/static/tools/NodeList.min.js create mode 100644 app/static/tools/fetch.js create mode 100644 app/view/index/actions/index.jsx create mode 100644 app/view/index/components/AddTodo/Input.jsx create mode 100644 app/view/index/components/AddTodo/index.jsx create mode 100644 app/view/index/components/Button/ActiveButton.jsx create mode 100644 app/view/index/components/Button/DefaultButton.jsx create mode 100644 app/view/index/components/Button/index.jsx create mode 100644 app/view/index/components/Footer.jsx create mode 100644 app/view/index/components/Todo/index.jsx create mode 100644 app/view/index/components/Todo/index.pcss create mode 100644 app/view/index/containers/App.jsx create mode 100644 app/view/index/containers/TodoList.jsx create mode 100644 app/view/index/epics/index.jsx create mode 100644 app/view/index/epics/requestSignFromPosts.jsx create mode 100644 app/view/index/index.jsx create mode 100644 app/view/index/index.pcss create mode 100644 app/view/index/reducers/createReducer.jsx create mode 100644 app/view/index/reducers/index.jsx create mode 100644 app/view/index/reducers/todos.jsx create mode 100644 app/view/index/store.jsx create mode 100644 config/webpack/base/base.js create mode 100644 config/webpack/base/files.js create mode 100644 config/webpack/modules/babel.js create mode 100644 config/webpack/modules/entry.js create mode 100644 config/webpack/modules/externals.js create mode 100644 config/webpack/modules/loader.js create mode 100644 config/webpack/modules/plugins.js create mode 100644 config/webpack/modules/resolve.js create mode 100644 config/webpack/webpack.build.js create mode 100644 config/webpack/webpack.config.js create mode 100644 config/webpack/webpack.dev.js create mode 100644 config/webpack/webpack.dll.js create mode 100644 package.json create mode 100644 server/main.js diff --git a/.codeclimate.yml b/.codeclimate.yml new file mode 100644 index 0000000..cebb1c1 --- /dev/null +++ b/.codeclimate.yml @@ -0,0 +1,25 @@ +engines: + csslint: + enabled: true + duplication: + enabled: false + config: + languages: + - javascript + eslint: + enabled: true + checks: + linebreak-style: + enabled: false + global-require: + enabled: false + fixme: + enabled: true +ratings: + paths: + - app/**/* +exclude_paths: + - app/static/tools/**/* + - app/source/font/**/* + - app/source/css/library/**/* + - app/source/css/parts/**/* \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..e50c82f --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +node_modules +*.log +*.log.* +.idea \ No newline at end of file diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 0000000..e546e62 --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,48 @@ +env: + es6: true + node: true + mocha: true + jest: true + +extends: + - eslint:recommended + - airbnb + +parserOptions: + ecmaVersion: 7 + ecmaFeatures: + experimentalObjectRestSpread: true + jsx : true + sourceType: module + +plugins: + - react + +rules: + arrow-parens: + - warn + - as-needed + comma-dangle: + - error + - only-multiline + eol-last: off + import/no-unresolved: off + linebreak-style: off + no-console: off + no-plusplus: off + no-underscore-dangle: off + no-unused-vars: warn + quotes: + - error + - single + react/jsx-uses-vars: warn + # 非交互标签无法使用鼠标事件 + jsx-a11y/no-static-element-interactions: off + semi: + - error + - always + +globals: + document: false + window: false + fetch: true \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..75c1cba --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +node_modules +*.log +*.log.* +.idea +.happypack +build \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..21c3ed7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,20 @@ +language: node_js +sudo: required +dist: trusty +node_js: + - '7' +before_install: + - export CHROME_BIN=/usr/bin/google-chrome + - export DISPLAY=:99.0 + - sh -e /etc/init.d/xvfb start + - sudo apt-get update + - sudo apt-get install -y libappindicator1 fonts-liberation + - wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb + - sudo dpkg -i google-chrome*.deb +install: + - npm install + - npm install coveralls +script: + - npm run test +after_script: + - npm run test:coveralls \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..27b1c25 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Wait + +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.md b/README.md index 4edd8dc..9f6d6d6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# Todo-react-redux-immutable.js-reselect -使用react,redux,immutable.js,reselect,react-redux等工具库,完成一个Todos案例。 +# Todo-react-redux-reselect-immutable +使用react,redux,reselect,react-redux,immutable.js等工具库,完成一个Todos案例。 diff --git a/app/html/index.html b/app/html/index.html new file mode 100644 index 0000000..c7b51af --- /dev/null +++ b/app/html/index.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + React + + +
+
+ + + \ No newline at end of file diff --git a/app/source/css/index.pcss b/app/source/css/index.pcss new file mode 100644 index 0000000..1e77184 --- /dev/null +++ b/app/source/css/index.pcss @@ -0,0 +1,22 @@ +/*@import "../font/icon/iconfont.css";*/ +/*@import "./parts/phoneReset.css";*/ +@import "./parts/normalize.css"; +@import "./parts/class.css"; + +ol, ul { + padding: 0; + list-style: none; +} + +a{ + text-decoration: none; + color: #2d2d34; + &:hover{ + text-decoration: underline; + } +} + +img { + vertical-align: middle; + font-size: 0; +} \ No newline at end of file diff --git a/app/source/css/library/weui.css b/app/source/css/library/weui.css new file mode 100644 index 0000000..0754e31 --- /dev/null +++ b/app/source/css/library/weui.css @@ -0,0 +1,2832 @@ +/*! + * WeUI v1.1.0 (https://github.com/weui/weui) + * Copyright 2016 Tencent, Inc. + * Licensed under the MIT license + */ +html{ + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +body{ + line-height: 1.6; + font-family: -apple-system-font, "Helvetica Neue", sans-serif; +} + +*{ + margin: 0; + padding: 0; +} + +a img{ + border: 0; +} + +a{ + text-decoration: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +@font-face{ + font-weight: normal; + font-style: normal; + font-family: "weui"; + src: url('data:application/octet-stream;base64,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') format('truetype'); +} + +[class^="weui-icon-"], +[class*=" weui-icon-"]{ + display: inline-block; + vertical-align: middle; + font: normal normal normal 14px/1 "weui"; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; +} + +[class^="weui-icon-"]:before, +[class*=" weui-icon-"]:before{ + display: inline-block; + margin-left: .2em; + margin-right: .2em; +} + +.weui-icon-circle:before{ + content: "\EA01"; +} + +/* '' */ +.weui-icon-download:before{ + content: "\EA02"; +} + +/* '' */ +.weui-icon-info:before{ + content: "\EA03"; +} + +/* '' */ +.weui-icon-safe_success:before{ + content: "\EA04"; +} + +/* '' */ +.weui-icon-safe_warn:before{ + content: "\EA05"; +} + +/* '' */ +.weui-icon-success:before{ + content: "\EA06"; +} + +/* '' */ +.weui-icon-success-circle:before{ + content: "\EA07"; +} + +/* '' */ +.weui-icon-success-no-circle:before{ + content: "\EA08"; +} + +/* '' */ +.weui-icon-waiting:before{ + content: "\EA09"; +} + +/* '' */ +.weui-icon-waiting-circle:before{ + content: "\EA0A"; +} + +/* '' */ +.weui-icon-warn:before{ + content: "\EA0B"; +} + +/* '' */ +.weui-icon-info-circle:before{ + content: "\EA0C"; +} + +/* '' */ +.weui-icon-cancel:before{ + content: "\EA0D"; +} + +/* '' */ +.weui-icon-search:before{ + content: "\EA0E"; +} + +/* '' */ +.weui-icon-clear:before{ + content: "\EA0F"; +} + +/* '' */ +.weui-icon-back:before{ + content: "\EA10"; +} + +/* '' */ +.weui-icon-delete:before{ + content: "\EA11"; +} + +/* '' */ +[class^="weui-icon_"]:before, +[class*=" weui-icon_"]:before{ + margin: 0; +} + +.weui-icon-success{ + font-size: 46px; /*px*/ + color: #09BB07; +} + +.weui-icon-waiting{ + font-size: 46px; /*px*/ + color: #10AEFF; +} + +.weui-icon-warn{ + font-size: 46px; /*px*/ + color: #F43530; +} + +.weui-icon-info{ + font-size: 46px; /*px*/ + color: #10AEFF; +} + +.weui-icon-success-circle{ + font-size: 46px; /*px*/ + color: #09BB07; +} + +.weui-icon-success-no-circle{ + font-size: 46px; /*px*/ + color: #09BB07; +} + +.weui-icon-waiting-circle{ + font-size: 46px; /*px*/ + color: #10AEFF; +} + +.weui-icon-circle{ + font-size: 46px; /*px*/ + color: #C9C9C9; +} + +.weui-icon-download{ + font-size: 46px; /*px*/ + color: #09BB07; +} + +.weui-icon-info-circle{ + font-size: 46px; /*px*/ + color: #09BB07; +} + +.weui-icon-safe-success{ + color: #09BB07; +} + +.weui-icon-safe-warn{ + color: #FFBE00; +} + +.weui-icon-cancel{ + color: #F43530; + font-size: 44px; /*px*/ +} + +.weui-icon-search{ + color: #B2B2B2; + font-size: 28px; /*px*/ +} + +.weui-icon-clear{ + color: #B2B2B2; + font-size: 28px; /*px*/ +} + +.weui-icon-delete.weui-icon_gallery-delete{ + color: #FFFFFF; + font-size: 44px; /*px*/ +} + +.weui-icon_msg{ + font-size: 186px /*px*/ +} + +.weui-icon_msg.weui-icon-warn{ + color: #F76260; +} + +.weui-icon_msg-primary{ + font-size: 186px; /*px*/ +} + +.weui-icon_msg-primary.weui-icon-warn{ + color: #C9C9C9; +} + +.weui-btn{ + position: relative; + display: block; + margin-left: auto; + margin-right: auto; + padding-left: 28px; + padding-right: 28px; + box-sizing: border-box; + font-size: 28px;/*px*/ + text-align: center; + text-decoration: none; + color: #FFFFFF; + line-height: 2.55555556; + border-radius: 10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + overflow: hidden; +} + +.weui-btn:after{ + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-transform: scale(0.5); + transform: scale(0.5); + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + box-sizing: border-box; + border-radius: 20px; +} + +.weui-btn_inline{ + display: inline-block; +} + +.weui-btn_default{ + color: #000000; + background-color: #F8F8F8; +} + +.weui-btn_default:not(.weui-btn_disabled):visited{ + color: #000000; +} + +.weui-btn_default:not(.weui-btn_disabled):active{ + color: rgba(0, 0, 0, 0.6); + background-color: #DEDEDE; +} + +.weui-btn_primary{ + background-color: #1AAD19; +} + +.weui-btn_primary:not(.weui-btn_disabled):visited{ + color: #FFFFFF; +} + +.weui-btn_primary:not(.weui-btn_disabled):active{ + color: rgba(255, 255, 255, 0.6); + background-color: #179B16; +} + +.weui-btn_warn{ + background-color: #E64340; +} + +.weui-btn_warn:not(.weui-btn_disabled):visited{ + color: #FFFFFF; +} + +.weui-btn_warn:not(.weui-btn_disabled):active{ + color: rgba(255, 255, 255, 0.6); + background-color: #CE3C39; +} + +.weui-btn_disabled{ + color: rgba(255, 255, 255, 0.6); +} + +.weui-btn_disabled.weui-btn_default{ + color: rgba(0, 0, 0, 0.3); + background-color: #F7F7F7; +} + +.weui-btn_disabled.weui-btn_primary{ + background-color: #9ED99D; +} + +.weui-btn_disabled.weui-btn_warn{ + background-color: #EC8B89; +} + +.weui-btn_plain-primary{ + color: #1aad19; + border: 1px solid #1aad19; +} + +.weui-btn_plain-primary:not(.weui-btn_plain-disabled):active{ + color: rgba(26, 173, 25, 0.6); + border-color: rgba(26, 173, 25, 0.6); +} + +.weui-btn_plain-primary:after{ + border-width: 0; +} + +.weui-btn_plain-default{ + color: #353535; + border: 1px solid #353535; +} + +.weui-btn_plain-default:not(.weui-btn_plain-disabled):active{ + color: rgba(53, 53, 53, 0.6); + border-color: rgba(53, 53, 53, 0.6); +} + +.weui-btn_plain-default:after{ + border-width: 0; +} + +.weui-btn_plain-disabled{ + color: rgba(0, 0, 0, 0.2); + border-color: rgba(0, 0, 0, 0.2); +} + +button.weui-btn, +input.weui-btn{ + width: 100%; + border-width: 0; + outline: 0; + -webkit-appearance: none; +} + +button.weui-btn:focus, +input.weui-btn:focus{ + outline: 0; +} + +button.weui-btn_inline, +input.weui-btn_inline, +button.weui-btn_mini, +input.weui-btn_mini{ + width: auto; +} + +button.weui-btn_plain-primary, +input.weui-btn_plain-primary, +button.weui-btn_plain-default, +input.weui-btn_plain-default{ + border-width: 1px; + background-color: transparent; +} + +.weui-btn_mini{ + display: inline-block; + padding: 0 1.32em; + line-height: 2.3; + font-size: 26px; /*px*/ +} + +/*gap between btn*/ +.weui-btn + .weui-btn{ + margin-top: 30px; +} + +.weui-btn.weui-btn_inline + .weui-btn.weui-btn_inline{ + margin-top: auto; + margin-left: 30px; +} + +.weui-btn-area{ + margin: 1.17647059em 30px 0.3em; +} + +.weui-btn-area_inline{ + display: -webkit-box; + display: -webkit-flex; + display: flex; +} + +.weui-btn-area_inline .weui-btn{ + margin-top: auto; + margin-right: 30px; + width: 100%; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; +} + +.weui-btn-area_inline .weui-btn:last-child{ + margin-right: 0; +} + +.weui-cells{ + margin-top: 1.17647059em; + background-color: #FFFFFF; + line-height: 1.41176471; + font-size: 34px; /*px*/ + overflow: hidden; + position: relative; +} + +.weui-cells:before{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-cells:after{ + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-bottom: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-cells__title{ + margin-top: .77em; + margin-bottom: .3em; + padding-left: 30px; + padding-right: 30px; + color: #999999; + font-size: 28px; /*px*/ +} + +.weui-cells__title + .weui-cells{ + margin-top: 0; +} + +.weui-cells__tips{ + margin-top: .3em; + color: #999999; + padding-left: 30px; + padding-right: 30px; + font-size: 28px; /*px*/ +} + +.weui-cell{ + padding: 20px 30px; + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; +} + +.weui-cell:before{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); + left: 30px; +} + +.weui-cell:first-child:before{ + display: none; +} + +.weui-cell_primary{ + -webkit-box-align: start; + -webkit-align-items: flex-start; + align-items: flex-start; +} + +.weui-cell__bd{ + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; +} + +.weui-cell__ft{ + text-align: right; + color: #999999; +} + +.weui-cell_access{ + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + color: inherit; +} + +.weui-cell_access:active{ + background-color: #ECECEC; +} + +.weui-cell_access .weui-cell__ft{ + padding-right: 13px; + position: relative; +} + +.weui-cell_access .weui-cell__ft:after{ + content: " "; + display: inline-block; + height: 12px; + width: 12px; + border-width: 2px 2px 0 0; + border-color: #C8C8CD; + border-style: solid; + -webkit-transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0); + transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0); + position: relative; + top: -4px; + position: absolute; + top: 50%; + margin-top: -8px; + right: 4px; +} + +.weui-cell_link{ + color: #586C94; + font-size: 28px; /*px*/ +} + +.weui-cell_link:first-child:before{ + display: block; +} + +.weui-check__label{ + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +.weui-check__label:active{ + background-color: #ECECEC; +} + +.weui-check{ + position: absolute; + left: -9999em; +} + +.weui-cells_radio .weui-cell__ft{ + padding-left: 0.35em; +} + +.weui-cells_radio .weui-check:checked + .weui-icon-checked:before{ + display: block; + content: '\EA08'; + color: #09BB07; + font-size: 32px; /*px*/ +} + +.weui-cells_checkbox .weui-cell__hd{ + padding-right: 0.35em; +} + +.weui-cells_checkbox .weui-icon-checked:before{ + content: '\EA01'; + color: #C9C9C9; + font-size: 46px; /*px*/ + display: block; +} + +.weui-cells_checkbox .weui-check:checked + .weui-icon-checked:before{ + content: '\EA06'; + color: #09BB07; +} + +.weui-label{ + display: block; + width: 210px; /*px*/ + word-wrap: break-word; + word-break: break-all; +} + +.weui-input{ + width: 100%; + border: 0; + outline: 0; + -webkit-appearance: none; + background-color: transparent; + font-size: inherit; + color: inherit; + height: 1.41176471em; + line-height: 1.41176471; +} + +.weui-input::-webkit-outer-spin-button, +.weui-input::-webkit-inner-spin-button{ + -webkit-appearance: none; + margin: 0; +} + +.weui-textarea{ + display: block; + border: 0; + resize: none; + width: 100%; + color: inherit; + font-size: 1em; + line-height: inherit; + outline: 0; +} + +.weui-textarea-counter{ + color: #B2B2B2; + text-align: right; +} + +.weui-cell_warn .weui-textarea-counter{ + color: #E64340; +} + +.weui-toptips{ + display: none; + position: fixed; + -webkit-transform: translateZ(0); + transform: translateZ(0); + top: 0; + left: 0; + right: 0; + padding: 10px; + font-size: 28px; /*px*/ + text-align: center; + color: #FFF; + z-index: 5000; + word-wrap: break-word; + word-break: break-all; +} + +.weui-toptips_warn{ + background-color: #E64340; +} + +.weui-cells_form .weui-cell__ft{ + font-size: 0; +} + +.weui-cells_form .weui-icon-warn{ + display: none; +} + +.weui-cells_form input, +.weui-cells_form textarea, +.weui-cells_form label[for]{ + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +.weui-cell_warn{ + color: #E64340; +} + +.weui-cell_warn .weui-icon-warn{ + display: inline-block; +} + +.weui-form-preview{ + position: relative; + background-color: #FFFFFF; +} + +.weui-form-preview:before{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-form-preview:after{ + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-bottom: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-form-preview__hd{ + position: relative; + padding: 20px 30px; /*px*/ + text-align: right; + line-height: 2.5em; +} + +.weui-form-preview__hd:after{ + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-bottom: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); + left: 30px; /*px*/ +} + +.weui-form-preview__hd .weui-form-preview__value{ + font-style: normal; + font-size: 1.6em; +} + +.weui-form-preview__bd{ + padding: 20px 30px; + font-size: .9em; + text-align: right; + color: #999999; + line-height: 2; +} + +.weui-form-preview__ft{ + position: relative; + line-height: 100px; + display: -webkit-box; + display: -webkit-flex; + display: flex; +} + +.weui-form-preview__ft:after{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #D5D5D6; + color: #D5D5D6; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-form-preview__item{ + overflow: hidden; +} + +.weui-form-preview__label{ + float: left; + margin-right: 1em; + min-width: 4em; + color: #999999; + text-align: justify; + text-align-last: justify; +} + +.weui-form-preview__value{ + display: block; + overflow: hidden; + word-break: normal; + word-wrap: break-word; +} + +.weui-form-preview__btn{ + position: relative; + display: block; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + color: #3CC51F; + text-align: center; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +button.weui-form-preview__btn{ + background-color: transparent; + border: 0; + outline: 0; + line-height: inherit; + font-size: inherit; +} + +.weui-form-preview__btn:active{ + background-color: #EEEEEE; +} + +.weui-form-preview__btn:after{ + content: " "; + position: absolute; + left: 0; + top: 0; + width: 1px; + bottom: 0; + border-left: 1px solid #D5D5D6; + color: #D5D5D6; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleX(0.5); + transform: scaleX(0.5); +} + +.weui-form-preview__btn:first-child:after{ + display: none; +} + +.weui-form-preview__btn_default{ + color: #999999; +} + +.weui-form-preview__btn_primary{ + color: #0BB20C; +} + +.weui-cell_select{ + padding: 0; +} + +.weui-cell_select .weui-select{ + padding-right: 60px; +} + +.weui-cell_select .weui-cell__bd:after{ + content: " "; + display: inline-block; + height: 12px; + width: 12px; + border-width: 2px 2px 0 0; + border-color: #C8C8CD; + border-style: solid; + -webkit-transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0); + transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0); + position: relative; + top: -4px; + position: absolute; + top: 50%; + right: 30px; + margin-top: -8px; +} + +.weui-select{ + -webkit-appearance: none; + border: 0; + outline: 0; + background-color: transparent; + width: 100%; + font-size: inherit; + height: 88px; + line-height: 88px; + position: relative; + z-index: 1; + padding-left: 30px; +} + +.weui-cell_select-before{ + padding-right: 30px; +} + +.weui-cell_select-before .weui-select{ + width: 210px; + box-sizing: border-box; +} + +.weui-cell_select-before .weui-cell__hd{ + position: relative; +} + +.weui-cell_select-before .weui-cell__hd:after{ + content: " "; + position: absolute; + right: 0; + top: 0; + width: 1px; + bottom: 0; + border-right: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 100% 0; + transform-origin: 100% 0; + -webkit-transform: scaleX(0.5); + transform: scaleX(0.5); +} + +.weui-cell_select-before .weui-cell__hd:before{ + content: " "; + display: inline-block; + height: 12px; + width: 12px; + border-width: 2px 2px 0 0; + border-color: #C8C8CD; + border-style: solid; + -webkit-transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0); + transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0); + position: relative; + top: -4px; + position: absolute; + top: 50%; + right: 30px; + margin-top: -8px; +} + +.weui-cell_select-before .weui-cell__bd{ + padding-left: 30px; +} + +.weui-cell_select-before .weui-cell__bd:after{ + display: none; +} + +.weui-cell_select-after{ + padding-left: 30px; +} + +.weui-cell_select-after .weui-select{ + padding-left: 0; +} + +.weui-cell_vcode{ + padding-top: 0; + padding-right: 0; + padding-bottom: 0; +} + +.weui-vcode-img{ + margin-left: 10px; + height: 88px; + vertical-align: middle; +} + +.weui-vcode-btn{ + display: inline-block; + height: 88px; + margin-left: 10px; + padding: 0 0.6em 0 0.7em; + border-left: 1px solid #E5E5E5; + line-height: 88px; + vertical-align: middle; + font-size: 34px;/*px*/ + color: #3CC51F; +} + +button.weui-vcode-btn{ + background-color: transparent; + border-top: 0; + border-right: 0; + border-bottom: 0; + outline: 0; +} + +.weui-vcode-btn:active{ + color: #52a341; +} + +.weui-gallery{ + display: none; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: #000000; + z-index: 1000; +} + +.weui-gallery__img{ + position: absolute; + top: 0; + right: 0; + bottom: 120px; + left: 0; + background: center center no-repeat; + background-size: contain; +} + +.weui-gallery__opr{ + position: absolute; + right: 0; + bottom: 0; + left: 0; + background-color: #0D0D0D; + color: #FFFFFF; + line-height: 120px; + text-align: center; +} + +.weui-gallery__del{ + display: block; +} + +.weui-cell_switch{ + padding-top: 12px; + padding-bottom: 12px; +} + +.weui-switch{ + -webkit-appearance: none; + appearance: none; +} + +.weui-switch, +.weui-switch-cp__box{ + position: relative; + width: 104px; + height: 64px; + border: 1px solid #DFDFDF; + outline: 0; + border-radius: 32px; + box-sizing: border-box; + background-color: #DFDFDF; + -webkit-transition: background-color 0.1s, border 0.1s; + transition: background-color 0.1s, border 0.1s; +} + +.weui-switch:before, +.weui-switch-cp__box:before{ + content: " "; + position: absolute; + top: 0; + left: 0; + width: 100px; + height: 60px; + border-radius: 30px; + background-color: #FDFDFD; + -webkit-transition: -webkit-transform 0.35s cubic-bezier(0.45, 1, 0.4, 1); + transition: -webkit-transform 0.35s cubic-bezier(0.45, 1, 0.4, 1); + transition: transform 0.35s cubic-bezier(0.45, 1, 0.4, 1); + transition: transform 0.35s cubic-bezier(0.45, 1, 0.4, 1), -webkit-transform 0.35s cubic-bezier(0.45, 1, 0.4, 1); +} + +.weui-switch:after, +.weui-switch-cp__box:after{ + content: " "; + position: absolute; + top: 0; + left: 0; + width: 60px; + height: 60px; + border-radius: 30px; + background-color: #FFFFFF; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4); + -webkit-transition: -webkit-transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35); + transition: -webkit-transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35); + transition: transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35); + transition: transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35), -webkit-transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35); +} + +.weui-switch:checked, +.weui-switch-cp__input:checked ~ .weui-switch-cp__box{ + border-color: #04BE02; + background-color: #04BE02; +} + +.weui-switch:checked:before, +.weui-switch-cp__input:checked ~ .weui-switch-cp__box:before{ + -webkit-transform: scale(0); + transform: scale(0); +} + +.weui-switch:checked:after, +.weui-switch-cp__input:checked ~ .weui-switch-cp__box:after{ + -webkit-transform: translateX(40px); + transform: translateX(40px); +} + +.weui-switch-cp__input{ + position: absolute; + left: -9999px; +} + +.weui-switch-cp__box{ + display: block; +} + +.weui-uploader__hd{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + padding-bottom: 20px; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; +} + +.weui-uploader__title{ + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; +} + +.weui-uploader__info{ + color: #B2B2B2; +} + +.weui-uploader__bd{ + margin-bottom: -8px; + margin-right: -18px; + overflow: hidden; +} + +.weui-uploader__files{ + list-style: none; +} + +.weui-uploader__file{ + float: left; + margin-right: 18px; + margin-bottom: 18px; + width: 158px; + height: 158px; + background: no-repeat center center; + background-size: cover; +} + +.weui-uploader__file_status{ + position: relative; +} + +.weui-uploader__file_status:before{ + content: " "; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: rgba(0, 0, 0, 0.5); +} + +.weui-uploader__file_status .weui-uploader__file-content{ + display: block; +} + +.weui-uploader__file-content{ + display: none; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + color: #FFFFFF; +} + +.weui-uploader__file-content .weui-icon-warn{ + display: inline-block; +} + +.weui-uploader__input-box{ + float: left; + position: relative; + margin-right: 18px; + margin-bottom: 18px; + width: 154px; + height: 154px; + border: 1px solid #D9D9D9; +} + +.weui-uploader__input-box:before, +.weui-uploader__input-box:after{ + content: " "; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + background-color: #D9D9D9; +} + +.weui-uploader__input-box:before{ + width: 4px; + height: 80px; +} + +.weui-uploader__input-box:after{ + width: 80px; + height: 4px; +} + +.weui-uploader__input-box:active{ + border-color: #999999; +} + +.weui-uploader__input-box:active:before, +.weui-uploader__input-box:active:after{ + background-color: #999999; +} + +.weui-uploader__input{ + position: absolute; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +.weui-msg{ + padding-top: 72px; + text-align: center; +} + +.weui-msg__icon-area{ + margin-bottom: 60px; +} + +.weui-msg__text-area{ + margin-bottom: 50px; + padding: 0 40px; +} + +.weui-msg__text-area a{ + color: #586C94; +} + +.weui-msg__title{ + margin-bottom: 10px; + font-weight: 400; + font-size: 40px; /*px*/ +} + +.weui-msg__desc{ + font-size: 28px; /*px*/ + color: #999999; +} + +.weui-msg__opr-area{ + margin-bottom: 25px; +} + +.weui-msg__extra-area{ + margin-bottom: 30px; + font-size: 28px; /*px*/ + color: #999999; +} + +.weui-msg__extra-area a{ + color: #586C94; +} + +@media screen and (min-height: 438px){ + .weui-msg__extra-area{ + position: fixed; + left: 0; + bottom: 0; + width: 100%; + text-align: center; + } +} + +.weui-article{ + padding: 40px 30px; + font-size: 30px; /*px*/ +} + +.weui-article section{ + margin-bottom: 1.5em; +} + +.weui-article h1{ + font-size: 36px; /*px*/ + font-weight: 400; + margin-bottom: .9em; +} + +.weui-article h2{ + font-size: 32px; /*px*/ + font-weight: 400; + margin-bottom: .34em; +} + +.weui-article h3{ + font-weight: 400; + font-size: 30px; /*px*/ + margin-bottom: .34em; +} + +.weui-article *{ + max-width: 100%; + box-sizing: border-box; + word-wrap: break-word; +} + +.weui-article p{ + margin: 0 0 .8em; +} + +.weui-tabbar{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + position: absolute; + z-index: 500; + bottom: 0; + width: 100%; + background-color: #F7F7FA; +} + +.weui-tabbar:before{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #C0BFC4; + color: #C0BFC4; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-tabbar__item{ + display: block; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + padding: 10px 0 0; + font-size: 0; + color: #999999; + text-align: center; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +.weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon, +.weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon > i, +.weui-tabbar__item.weui-bar__item_on .weui-tabbar__label{ + color: #09BB07; +} + +.weui-tabbar__icon{ + display: inline-block; + width: 54px; + height: 54px; +} + +i.weui-tabbar__icon, +.weui-tabbar__icon > i{ + font-size: 48px;/*px*/ + color: #999999; +} + +.weui-tabbar__icon img{ + width: 100%; + height: 100%; +} + +.weui-tabbar__label{ + text-align: center; + color: #999999; + font-size: 20px;/*px*/ + line-height: 1.8; +} + +.weui-navbar{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + position: absolute; + z-index: 500; + top: 0; + width: 100%; + background-color: #FAFAFA; +} + +.weui-navbar:after{ + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-bottom: 1px solid #CCCCCC; + color: #CCCCCC; + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-navbar + .weui-tab__panel{ + padding-top: 100px; + padding-bottom: 0; +} + +.weui-navbar__item{ + position: relative; + display: block; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + padding: 26px 0; + text-align: center; + font-size: 30px; /*px*/ + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +.weui-navbar__item:active{ + background-color: #EDEDED; +} + +.weui-navbar__item.weui-bar__item_on{ + background-color: #EAEAEA; +} + +.weui-navbar__item:after{ + content: " "; + position: absolute; + right: 0; + top: 0; + width: 1px; + bottom: 0; + border-right: 1px solid #CCCCCC; + color: #CCCCCC; + -webkit-transform-origin: 100% 0; + transform-origin: 100% 0; + -webkit-transform: scaleX(0.5); + transform: scaleX(0.5); +} + +.weui-navbar__item:last-child:after{ + display: none; +} + +.weui-tab{ + position: relative; + height: 100%; +} + +.weui-tab__panel{ + box-sizing: border-box; + height: 100%; + padding-bottom: 100px; + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +.weui-tab__content{ + display: none; +} + +.weui-progress{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; +} + +.weui-progress__bar{ + background-color: #EBEBEB; + height: 6px; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; +} + +.weui-progress__inner-bar{ + width: 0; + height: 100%; + background-color: #09BB07; +} + +.weui-progress__opr{ + display: block; + margin-left: 30px; + font-size: 0; +} + +.weui-panel{ + background-color: #FFFFFF; + margin-top: 20px; + position: relative; + overflow: hidden; +} + +.weui-panel:first-child{ + margin-top: 0; +} + +.weui-panel:before{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #E5E5E5; + color: #E5E5E5; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-panel:after{ + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-bottom: 1px solid #E5E5E5; + color: #E5E5E5; + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-panel__hd{ + padding: 28px 30px 20px; + color: #999999; + font-size: 26px; /*px*/ + position: relative; +} + +.weui-panel__hd:after{ + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-bottom: 1px solid #E5E5E5; + color: #E5E5E5; + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); + left: 30px; +} + +.weui-media-box{ + padding: 30px; + position: relative; +} + +.weui-media-box:before{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #E5E5E5; + color: #E5E5E5; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); + left: 30px; +} + +.weui-media-box:first-child:before{ + display: none; +} + +a.weui-media-box{ + color: #000000; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +a.weui-media-box:active{ + background-color: #ECECEC; +} + +.weui-media-box__title{ + font-weight: 400; + font-size: 34px; /*px*/ + width: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + word-wrap: normal; + word-wrap: break-word; + word-break: break-all; +} + +.weui-media-box__desc{ + color: #999999; + font-size: 26px; /*px*/ + line-height: 1.2; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.weui-media-box__info{ + margin-top: 30px; + padding-bottom: 10px; + font-size: 26px; /*px*/ + color: #CECECE; + line-height: 1em; + list-style: none; + overflow: hidden; +} + +.weui-media-box__info__meta{ + float: left; + padding-right: 1em; +} + +.weui-media-box__info__meta_extra{ + padding-left: 1em; + border-left: 1px solid #CECECE; +} + +.weui-media-box_text .weui-media-box__title{ + margin-bottom: 16px; +} + +.weui-media-box_appmsg{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; +} + +.weui-media-box_appmsg .weui-media-box__hd{ + margin-right: .8em; + width: 120px; + height: 120px; + line-height: 120px; + text-align: center; +} + +.weui-media-box_appmsg .weui-media-box__thumb{ + width: 100%; + max-height: 100%; + vertical-align: top; +} + +.weui-media-box_appmsg .weui-media-box__bd{ + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + min-width: 0; +} + +.weui-media-box_small-appmsg{ + padding: 0; +} + +.weui-media-box_small-appmsg .weui-cells{ + margin-top: 0; +} + +.weui-media-box_small-appmsg .weui-cells:before{ + display: none; +} + +.weui-grids{ + position: relative; + overflow: hidden; +} + +.weui-grids:before{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-grids:after{ + content: " "; + position: absolute; + left: 0; + top: 0; + width: 1px; + bottom: 0; + border-left: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleX(0.5); + transform: scaleX(0.5); +} + +.weui-grid{ + position: relative; + float: left; + padding: 40px 20px; + width: 33.33333333%; + box-sizing: border-box; +} + +.weui-grid:before{ + content: " "; + position: absolute; + right: 0; + top: 0; + width: 1px; + bottom: 0; + border-right: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 100% 0; + transform-origin: 100% 0; + -webkit-transform: scaleX(0.5); + transform: scaleX(0.5); +} + +.weui-grid:after{ + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-bottom: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-grid:active{ + background-color: #ECECEC; +} + +.weui-grid__icon{ + width: 56px; + height: 56px; + margin: 0 auto; +} + +.weui-grid__icon img{ + display: block; + width: 100%; + height: 100%; +} + +.weui-grid__icon + .weui-grid__label{ + margin-top: 10px; +} + +.weui-grid__label{ + display: block; + text-align: center; + color: #000000; + font-size: 28px; /*px*/ + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.weui-footer{ + color: #999999; + font-size: 28px; /*px*/ + text-align: center; +} + +.weui-footer a{ + color: #586C94; +} + +.weui-footer_fixed-bottom{ + position: fixed; + bottom: .52em; + left: 0; + right: 0; +} + +.weui-footer__links{ + font-size: 0; +} + +.weui-footer__link{ + display: inline-block; + vertical-align: top; + margin: 0 .62em; + position: relative; + font-size: 28px; /*px*/ +} + +.weui-footer__link:before{ + content: " "; + position: absolute; + left: 0; + top: 0; + width: 1px; + bottom: 0; + border-left: 1px solid #C7C7C7; + color: #C7C7C7; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleX(0.5); + transform: scaleX(0.5); + left: -0.65em; + top: .36em; + bottom: .36em; +} + +.weui-footer__link:first-child:before{ + display: none; +} + +.weui-footer__text{ + padding: 0 .34em; + font-size: 24px; /*px*/ +} + +.weui-flex{ + display: -webkit-box; + display: -webkit-flex; + display: flex; +} + +.weui-flex__item{ + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; +} + +.weui-dialog{ + position: fixed; + z-index: 5000; + width: 80%; + max-width: 600px; /*px*/ + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + background-color: #FFFFFF; + text-align: center; + border-radius: 6px; + overflow: hidden; +} + +.weui-dialog__hd{ + padding: 1.3em 1.6em 0.5em; +} + +.weui-dialog__title{ + font-weight: 400; + font-size: 36px; /*px*/ +} + +.weui-dialog__bd{ + padding: 0 1.6em 0.8em; + min-height: 80px; + font-size: 30px; /*px*/ + line-height: 1.3; + word-wrap: break-word; + word-break: break-all; + color: #999999; +} + +.weui-dialog__bd:first-child{ + padding: 2.7em 40px 1.7em; + color: #353535; +} + +.weui-dialog__ft{ + position: relative; + line-height: 96px; + font-size: 36px; /*px*/ + display: -webkit-box; + display: -webkit-flex; + display: flex; +} + +.weui-dialog__ft:after{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #D5D5D6; + color: #D5D5D6; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-dialog__btn{ + display: block; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + color: #3CC51F; + text-decoration: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + position: relative; +} + +.weui-dialog__btn:active{ + background-color: #EEEEEE; +} + +.weui-dialog__btn:after{ + content: " "; + position: absolute; + left: 0; + top: 0; + width: 1px; + bottom: 0; + border-left: 1px solid #D5D5D6; + color: #D5D5D6; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleX(0.5); + transform: scaleX(0.5); +} + +.weui-dialog__btn:first-child:after{ + display: none; +} + +.weui-dialog__btn_default{ + color: #353535; +} + +.weui-dialog__btn_primary{ + color: #0BB20C; +} + +.weui-skin_android .weui-dialog{ + text-align: left; + box-shadow: 0 12px 60px 0 rgba(0, 0, 0, 0.1); +} + +.weui-skin_android .weui-dialog__title{ + font-size: 42px; /*px*/ +} + +.weui-skin_android .weui-dialog__hd{ + text-align: left; +} + +.weui-skin_android .weui-dialog__bd{ + color: #999999; + padding: 0.25em 1.6em 2em; + font-size: 34px; /*px*/ + text-align: left; +} + +.weui-skin_android .weui-dialog__bd:first-child{ + padding: 1.6em 1.6em 2em; + color: #353535; +} + +.weui-skin_android .weui-dialog__ft{ + display: block; + text-align: right; + line-height: 84px; + font-size: 32px; /*px*/ + padding: 0 1.6em 0.7em; +} + +.weui-skin_android .weui-dialog__ft:after{ + display: none; +} + +.weui-skin_android .weui-dialog__btn{ + display: inline-block; + vertical-align: top; + padding: 0 .8em; +} + +.weui-skin_android .weui-dialog__btn:after{ + display: none; +} + +.weui-skin_android .weui-dialog__btn:active{ + background-color: rgba(0, 0, 0, 0.06); +} + +.weui-skin_android .weui-dialog__btn:visited{ + background-color: rgba(0, 0, 0, 0.06); +} + +.weui-skin_android .weui-dialog__btn:last-child{ + margin-right: -0.8em; +} + +.weui-skin_android .weui-dialog__btn_default{ + color: #808080; +} + +@media screen and (min-width: 1024px){ + .weui-dialog{ + width: 35%; + } +} + +.weui-toast{ + position: fixed; + z-index: 5000; + width: 7.6em; + min-height: 7.6em; + top: 360px; + left: 50%; + margin-left: -3.8em; + background: rgba(40, 40, 40, 0.75); + text-align: center; + border-radius: 10px; + color: #FFFFFF; +} + +.weui-icon_toast{ + margin: 44px 0 0; + display: block; +} + +.weui-icon_toast.weui-icon-success-no-circle:before{ + color: #FFFFFF; + font-size: 110px; /*px*/ +} + +.weui-icon_toast.weui-loading{ + margin: 60px 0 0; + width: 76px; + height: 76px; + vertical-align: baseline; +} + +.weui-toast__content{ + margin: 0 0 30px; +} + +.weui-mask{ + position: fixed; + z-index: 1000; + top: 0; + right: 0; + left: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.6); +} + +.weui-mask_transparent{ + position: fixed; + z-index: 1000; + top: 0; + right: 0; + left: 0; + bottom: 0; +} + +.weui-actionsheet{ + position: fixed; + left: 0; + bottom: 0; + -webkit-transform: translate(0, 100%); + transform: translate(0, 100%); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 5000; + width: 100%; + background-color: #EFEFF4; + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; +} + +.weui-actionsheet__menu{ + background-color: #FFFFFF; +} + +.weui-actionsheet__action{ + margin-top: 12px; + background-color: #FFFFFF; +} + +.weui-actionsheet__cell{ + position: relative; + padding: 20px 0; + text-align: center; + font-size: 36px; /*px*/ +} + +.weui-actionsheet__cell:before{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #D9D9D9; + color: #D9D9D9; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-actionsheet__cell:active{ + background-color: #ECECEC; +} + +.weui-actionsheet__cell:first-child:before{ + display: none; +} + +.weui-skin_android .weui-actionsheet{ + position: fixed; + left: 50%; + top: 50%; + bottom: auto; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + width: 548px; + box-sizing: border-box; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + background: transparent; + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; +} + +.weui-skin_android .weui-actionsheet__action{ + display: none; +} + +.weui-skin_android .weui-actionsheet__menu{ + border-radius: 4px; + box-shadow: 0 12px 60px 0 rgba(0, 0, 0, 0.1); +} + +.weui-skin_android .weui-actionsheet__cell{ + padding: 26px 48px; + font-size: 32px; /*px*/ + line-height: 1.4; + text-align: left; +} + +.weui-skin_android .weui-actionsheet__cell:first-child{ + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.weui-skin_android .weui-actionsheet__cell:last-child{ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +.weui-actionsheet_toggle{ + -webkit-transform: translate(0, 0); + transform: translate(0, 0); +} + +.weui-loadmore{ + width: 65%; + margin: 1.5em auto; + line-height: 1.6em; + font-size: 28px; /*px*/ + text-align: center; +} + +.weui-loadmore__tips{ + display: inline-block; + vertical-align: middle; +} + +.weui-loadmore_line{ + border-top: 1px solid #E5E5E5; + margin-top: 2.4em; +} + +.weui-loadmore_line .weui-loadmore__tips{ + position: relative; + top: -0.9em; + padding: 0 .55em; + background-color: #FFFFFF; + color: #999999; +} + +.weui-loadmore_dot .weui-loadmore__tips{ + padding: 0 .16em; +} + +.weui-loadmore_dot .weui-loadmore__tips:before{ + content: " "; + width: 8px; + height: 8px; + border-radius: 50%; + background-color: #E5E5E5; + display: inline-block; + position: relative; + vertical-align: 0; + top: -0.16em; +} + +.weui-badge{ + display: inline-block; + padding: .15em .4em; + min-width: 8px; + border-radius: 18px; + background-color: #E64340; + color: #FFFFFF; + line-height: 1.2; + text-align: center; + font-size: 24px; /*px*/ + vertical-align: middle; +} + +.weui-badge_dot{ + padding: .4em; + min-width: 0; +} + +.weui-search-bar{ + position: relative; + padding: 16px 20px; + display: -webkit-box; + display: -webkit-flex; + display: flex; + box-sizing: border-box; + background-color: #EFEFF4; +} + +.weui-search-bar:before{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #D7D6DC; + color: #D7D6DC; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-search-bar:after{ + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-bottom: 1px solid #D7D6DC; + color: #D7D6DC; + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-search-bar.weui-search-bar_focusing .weui-search-bar__cancel-btn{ + display: block; +} + +.weui-search-bar.weui-search-bar_focusing .weui-search-bar__label{ + display: none; +} + +.weui-search-bar__form{ + position: relative; + -webkit-box-flex: 1; + -webkit-flex: auto; + flex: auto; + background-color: #EFEFF4; +} + +.weui-search-bar__form:after{ + content: ''; + position: absolute; + left: 0; + top: 0; + width: 200%; + height: 200%; + -webkit-transform: scale(0.5); + transform: scale(0.5); + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + border-radius: 20px; + border: 1px solid #E6E6EA; + box-sizing: border-box; + background: #FFFFFF; +} + +.weui-search-bar__box{ + position: relative; + padding-left: 60px; + padding-right: 60px; + height: 100%; + width: 100%; + box-sizing: border-box; + z-index: 1; +} + +.weui-search-bar__box .weui-search-bar__input{ + padding: 8px 0; + width: 100%; + height: 1.42857143em; + border: 0; + font-size: 28px; /*px*/ + line-height: 1.42857143em; + box-sizing: content-box; + background: transparent; +} + +.weui-search-bar__box .weui-search-bar__input:focus{ + outline: none; +} + +.weui-search-bar__box .weui-icon-search{ + position: absolute; + left: 20px; + top: 0; + line-height: 56px; +} + +.weui-search-bar__box .weui-icon-clear{ + position: absolute; + top: 0; + right: 0; + padding: 0 20px; + line-height: 56px; +} + +.weui-search-bar__label{ + position: absolute; + top: 2px; + right: 2px; + bottom: 2px; + left: 2px; + z-index: 2; + border-radius: 6px; + text-align: center; + color: #9B9B9B; + background: #FFFFFF; +} + +.weui-search-bar__label span{ + display: inline-block; + font-size: 28px; /*px*/ + vertical-align: middle; +} + +.weui-search-bar__label .weui-icon-search{ + margin-right: 10px; +} + +.weui-search-bar__cancel-btn{ + display: none; + margin-left: 20px; + line-height: 56px; + color: #09BB07; + white-space: nowrap; +} + +.weui-search-bar__input:not(:valid) ~ .weui-icon-clear{ + display: none; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-results-button, +input[type="search"]::-webkit-search-results-decoration{ + display: none; +} + +.weui-picker{ + position: fixed; + width: 100%; + left: 0; + bottom: 0; + z-index: 5000; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transform: translate(0, 100%); + transform: translate(0, 100%); + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; +} + +.weui-picker__hd{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + padding: 20px 30px; + background-color: #fbf9fe; + position: relative; + text-align: center; +} + +.weui-picker__hd:after{ + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-bottom: 1px solid #E5E5E5; + color: #E5E5E5; + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-picker__action{ + display: block; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + color: #586C94; +} + +.weui-picker__action:first-child{ + text-align: left; +} + +.weui-picker__action:last-child{ + text-align: right; +} + +.weui-picker__bd{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + position: relative; + background-color: #fff; + height: 476px; + overflow: hidden; +} + +.weui-picker__group{ + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + position: relative; + height: 100%; +} + +.weui-picker__mask{ + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin: 0 auto; + z-index: 3; + background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6)), -webkit-linear-gradient(bottom, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6)); + background: linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6)), linear-gradient(0deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6)); + background-position: top, bottom; + background-size: 100% 102px; + background-repeat: no-repeat; + -webkit-transform: translateZ(0); + transform: translateZ(0); +} + +.weui-picker__indicator{ + width: 100%; + height: 68px; + position: absolute; + left: 0; + top: 204px; + z-index: 3; +} + +.weui-picker__indicator:before{ + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #E5E5E5; + color: #E5E5E5; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-picker__indicator:after{ + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-bottom: 1px solid #E5E5E5; + color: #E5E5E5; + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +.weui-picker__content{ + position: absolute; + top: 0; + left: 0; + width: 100%; +} + +.weui-picker__item{ + padding: 10px 0 8px; + text-align: center; + color: #000; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.weui-picker__item_disabled{ + color: #999999; +} + +@-webkit-keyframes slideUp{ + from{ + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + to{ + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideUp{ + from{ + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + to{ + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.weui-animate-slide-up{ + -webkit-animation: slideUp ease .3s forwards; + animation: slideUp ease .3s forwards; +} + +@-webkit-keyframes slideDown{ + from{ + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + to{ + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes slideDown{ + from{ + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + to{ + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.weui-animate-slide-down{ + -webkit-animation: slideDown ease .3s forwards; + animation: slideDown ease .3s forwards; +} + +@-webkit-keyframes fadeIn{ + from{ + opacity: 0; + } + to{ + opacity: 1; + } +} + +@keyframes fadeIn{ + from{ + opacity: 0; + } + to{ + opacity: 1; + } +} + +.weui-animate-fade-in{ + -webkit-animation: fadeIn ease .3s forwards; + animation: fadeIn ease .3s forwards; +} + +@-webkit-keyframes fadeOut{ + from{ + opacity: 1; + } + to{ + opacity: 0; + } +} + +@keyframes fadeOut{ + from{ + opacity: 1; + } + to{ + opacity: 0; + } +} + +.weui-animate-fade-out{ + -webkit-animation: fadeOut ease .3s forwards; + animation: fadeOut ease .3s forwards; +} + +.weui-agree{ + display: block; + padding: .5em 30px; + font-size: 26px; /*px*/ +} + +.weui-agree a{ + color: #586C94; +} + +.weui-agree__text{ + color: #999999; +} + +.weui-agree__checkbox{ + -webkit-appearance: none; + appearance: none; + outline: 0; + font-size: 0; + border: 1px solid #D1D1D1; + background-color: #FFFFFF; + border-radius: 6px; + width: 26px; + height: 26px; + position: relative; + vertical-align: 0; + top: 4px; +} + +.weui-agree__checkbox:checked:before{ + font-family: "weui"; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + text-align: center; + speak: none; + display: inline-block; + vertical-align: middle; + text-decoration: inherit; + content: "\EA08"; + color: #09BB07; + font-size: 26px; /*px*/ + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -48%) scale(0.73); + transform: translate(-50%, -48%) scale(0.73); +} + +.weui-agree__checkbox:disabled{ + background-color: #E1E1E1; +} + +.weui-agree__checkbox:disabled:before{ + color: #ADADAD; +} + +.weui-loading{ + width: 40px; + height: 40px; + display: inline-block; + vertical-align: middle; + -webkit-animation: weuiLoading 1s steps(12, end) infinite; + animation: weuiLoading 1s steps(12, end) infinite; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat; + background-size: 100%; +} + +@-webkit-keyframes weuiLoading{ + 0%{ + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } + 100%{ + -webkit-transform: rotate3d(0, 0, 1, 360deg); + transform: rotate3d(0, 0, 1, 360deg); + } +} + +@keyframes weuiLoading{ + 0%{ + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } + 100%{ + -webkit-transform: rotate3d(0, 0, 1, 360deg); + transform: rotate3d(0, 0, 1, 360deg); + } +} + +.weui-slider{ + padding: 30px 36px; + -webkit-user-select: none; + user-select: none; +} + +.weui-slider__inner{ + position: relative; + height: 4px; + background-color: #E9E9E9; +} + +.weui-slider__track{ + height: 4px; + background-color: #1AAD19; + width: 0; +} + +.weui-slider__handler{ + position: absolute; + left: 0; + top: 50%; + width: 56px; + height: 56px; + margin-left: -28px; + margin-top: -28px; + border-radius: 50%; + background-color: #FFFFFF; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.2); +} + +.weui-slider-box{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; +} + +.weui-slider-box .weui-slider{ + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; +} + +.weui-slider-box__value{ + margin-left: .5em; + min-width: 48px; + color: #888888; + text-align: center; + font-size: 28px; /*px*/ +} + +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlL2Jhc2UvcmVzZXQubGVzcyIsInN0eWxlL3dldWkuY3NzIiwic3R5bGUvYmFzZS9taXhpbi9tb2JpbGUubGVzcyIsInN0eWxlL2ljb24vd2V1aS1mb250Lmxlc3MiLCJzdHlsZS9pY29uL3dldWktaWNvbl9mb250Lmxlc3MiLCJzdHlsZS93aWRnZXQvd2V1aS1idXR0b24vd2V1aS1idG5fZ2xvYmFsLmxlc3MiLCJzdHlsZS93aWRnZXQvd2V1aS1idXR0b24vd2V1aS1idG5fZGVmYXVsdC5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktYnV0dG9uL3dldWktYnRuX3ByaW1hcnkubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLWJ1dHRvbi93ZXVpLWJ0bl93YXJuLmxlc3MiLCJzdHlsZS93aWRnZXQvd2V1aS1idXR0b24vd2V1aS1idG5fZGlzYWJsZWQubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLWJ1dHRvbi93ZXVpLWJ0bl9wbGFpbi5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktYnV0dG9uL3dldWktYnV0dG9uLmxlc3MiLCJzdHlsZS93aWRnZXQvd2V1aS1jZWxsL3dldWktY2VsbF9nbG9iYWwubGVzcyIsInN0eWxlL2Jhc2UvbWl4aW4vc2V0T25lcHgubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLWNlbGwvd2V1aS1hY2Nlc3MubGVzcyIsInN0eWxlL2Jhc2UvbWl4aW4vc2V0QXJyb3cubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLWNlbGwvd2V1aS1jaGVjay93ZXVpLWNoZWNrX2NvbW1vbi5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktY2VsbC93ZXVpLWNoZWNrL3dldWktcmFkaW8ubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLWNlbGwvd2V1aS1jaGVjay93ZXVpLWNoZWNrYm94Lmxlc3MiLCJzdHlsZS93aWRnZXQvd2V1aS1jZWxsL3dldWktZm9ybS93ZXVpLWZvcm1fY29tbW9uLmxlc3MiLCJzdHlsZS9iYXNlL21peGluL3RleHQubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLWNlbGwvd2V1aS1mb3JtL3dldWktZm9ybS1wcmV2aWV3Lmxlc3MiLCJzdHlsZS93aWRnZXQvd2V1aS1jZWxsL3dldWktZm9ybS93ZXVpLXNlbGVjdC5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktY2VsbC93ZXVpLWZvcm0vd2V1aS12Y29kZS5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktY2VsbC93ZXVpLWdhbGxlcnkubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLWNlbGwvd2V1aS1zd2l0Y2gubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLWNlbGwvd2V1aS11cGxvYWRlci5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktcGFnZS93ZXVpLW1zZy5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktcGFnZS93ZXVpLWFydGljbGUubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLXRhYi93ZXVpLXRhYmJhci5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktdGFiL3dldWktbmF2YmFyLmxlc3MiLCJzdHlsZS93aWRnZXQvd2V1aS10YWIvd2V1aS10YWIubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLXByb2dyZXNzL3dldWktcHJvZ3Jlc3MubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLXBhbmVsL3dldWktcGFuZWwubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLW1lZGlhLWJveC93ZXVpLW1lZGlhLWJveC5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktZ3JpZC93ZXVpLWdyaWQubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLWZvb3Rlci93ZXVpLWZvb3Rlci5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktZmxleC93ZXVpLWZsZXgubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLXRpcHMvd2V1aS1kaWFsb2cubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLXRpcHMvd2V1aS10b2FzdC5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktdGlwcy93ZXVpLW1hc2subGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLXRpcHMvd2V1aS1hY3Rpb25zaGVldC5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktdGlwcy93ZXVpLWxvYWRtb3JlLmxlc3MiLCJzdHlsZS93aWRnZXQvd2V1aS10aXBzL3dldWktYmFkZ2UubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLXNlYXJjaGJhci93ZXVpLXNlYXJjaGJhci5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktcGlja2VyL3dldWktcGlja2VyLmxlc3MiLCJzdHlsZS93aWRnZXQvd2V1aS1hbmltYXRlL3dldWktYW5pbWF0ZS5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktYWdyZWUvd2V1aS1hZ3JlZS5sZXNzIiwic3R5bGUvd2lkZ2V0L3dldWktbG9hZGluZy93ZXVpLWxvYWRpbmcubGVzcyIsInN0eWxlL3dpZGdldC93ZXVpLXNsaWRlci93ZXVpLXNsaWRlci5sZXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUE7RUFDSSwyQkFBQTtFQUNBLCtCQUFBO0NDREg7QURJRDtFQUNJLGlCQUFBO0VBQ0EsOERBQUE7Q0NGSDtBREtEO0VBQ0ksVUFBQTtFQUNBLFdBQUE7Q0NISDtBRE1EO0VBQ0ksVUFBQTtDQ0pIO0FET0Q7RUFDSSxzQkFBQTtFRXJCQSw4Q0FBQTtDRGlCSDtBRWxCRDtFQUNJLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFQUNBLHFtTUFBQTtDRm9CSDtBRWhCRDs7RUFDSSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EseUNBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0Esb0NBQUE7Q0ZtQkg7QUVsQkc7O0VBRUksc0JBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0NGb0JQO0FFaEJEO0VBQTJCLGlCQUFBO0NGbUIxQjtBQUNELFNBQVM7QUVuQlQ7RUFBNkIsaUJBQUE7Q0ZzQjVCO0FBQ0QsU0FBUztBRXRCVDtFQUF5QixpQkFBQTtDRnlCeEI7QUFDRCxTQUFTO0FFekJUO0VBQWlDLGlCQUFBO0NGNEJoQztBQUNELFNBQVM7QUU1QlQ7RUFBOEIsaUJBQUE7Q0YrQjdCO0FBQ0QsU0FBUztBRS9CVDtFQUE0QixpQkFBQTtDRmtDM0I7QUFDRCxTQUFTO0FFbENUO0VBQW1DLGlCQUFBO0NGcUNsQztBQUNELFNBQVM7QUVyQ1Q7RUFBc0MsaUJBQUE7Q0Z3Q3JDO0FBQ0QsU0FBUztBRXhDVDtFQUE0QixpQkFBQTtDRjJDM0I7QUFDRCxTQUFTO0FFM0NUO0VBQW1DLGlCQUFBO0NGOENsQztBQUNELFNBQVM7QUU5Q1Q7RUFBeUIsaUJBQUE7Q0ZpRHhCO0FBQ0QsU0FBUztBRWpEVDtFQUFnQyxpQkFBQTtDRm9EL0I7QUFDRCxTQUFTO0FFcERUO0VBQTJCLGlCQUFBO0NGdUQxQjtBQUNELFNBQVM7QUV2RFQ7RUFBMkIsaUJBQUE7Q0YwRDFCO0FBQ0QsU0FBUztBRTFEVDtFQUEwQixpQkFBQTtDRjZEekI7QUFDRCxTQUFTO0FFN0RUO0VBQXlCLGlCQUFBO0NGZ0V4QjtBQUNELFNBQVM7QUVoRVQ7RUFBMkIsaUJBQUE7Q0ZtRTFCO0FBQ0QsU0FBUztBR3pHVDs7RUFDSSxVQUFBO0NINEdIO0FHMUdEO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0NINEdIO0FHMUdEO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0NINEdIO0FHMUdEO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0NINEdIO0FHMUdEO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0NINEdIO0FHekdEO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0NIMkdIO0FHekdEO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0NIMkdIO0FHekdEO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0NIMkdIO0FHekdEO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0NIMkdIO0FHekdEO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0NIMkdIO0FHeEdEO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0NIMEdIO0FHdkdEO0VBQ0ksZUFBQTtDSHlHSDtBR3ZHRDtFQUNJLGVBQUE7Q0h5R0g7QUd0R0Q7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7Q0h3R0g7QUdyR0Q7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7Q0h1R0g7QUdwR0Q7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7Q0hzR0g7QUdsR0c7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7Q0hvR1A7QUdoR0Q7RUFDSSxnQkFBQTtDSGtHSDtBR2pHRztFQUNJLGVBQUE7Q0htR1A7QUdoR0Q7RUFDSSxnQkFBQTtDSGtHSDtBR2pHRztFQUNJLGVBQUE7Q0htR1A7QUl2TEQ7RUFDSSxtQkFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFQUNBLHVCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLHdCQUFBO0VBQ0EsbUJBQUE7RUhkQSw4Q0FBQTtFR2dCQSxpQkFBQTtDSnlMSDtBSXhMRztFQUNJLGFBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxxQ0FBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSxvQkFBQTtDSjBMUDtBSXZMRDtFQUNJLHNCQUFBO0NKeUxIO0FLeE5EO0VBQ0ksZUFBQTtFQUNBLDBCQUFBO0NMME5IO0FLek5HO0VBQ0ksZUFBQTtDTDJOUDtBS3pORztFQUNJLDBCQUFBO0VBQ0EsMEJBQUE7Q0wyTlA7QU1uT0Q7RUFDSSwwQkFBQTtDTnFPSDtBTXBPRztFQUNJLGVBQUE7Q05zT1A7QU1wT0c7RUFDSSxnQ0FBQTtFQUNBLDBCQUFBO0NOc09QO0FPN09EO0VBQ0ksMEJBQUE7Q1ArT0g7QU85T0c7RUFDSSxlQUFBO0NQZ1BQO0FPOU9HO0VBQ0ksZ0NBQUE7RUFDQSwwQkFBQTtDUGdQUDtBUXZQRDtFQUNJLGdDQUFBO0NSeVBIO0FReFBHO0VBQ0ksMEJBQUE7RUFDQSwwQkFBQTtDUjBQUDtBUXhQRztFQUNJLDBCQUFBO0NSMFBQO0FReFBHO0VBQ0ksMEJBQUE7Q1IwUFA7QVNwUUQ7RUFDSSxlQUFBO0VBQ0EsMEJBQUE7Q1RzUUg7QVNyUUc7RUFDSSw4QkFBQTtFQUNBLHFDQUFBO0NUdVFQO0FTclFHO0VBQ0ksZ0JBQUE7Q1R1UVA7QVNuUUQ7RUFDSSxlQUFBO0VBQ0EsMEJBQUE7Q1RxUUg7QVNwUUc7RUFDSSw2QkFBQTtFQUNBLG9DQUFBO0NUc1FQO0FTcFFHO0VBQ0ksZ0JBQUE7Q1RzUVA7QVNuUUQ7RUFDSSwwQkFBQTtFQUNBLGlDQUFBO0NUcVFIO0FVdlJHOztFQUNJLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSx5QkFBQTtDVjBSUDtBVXpSTzs7RUFDSSxXQUFBO0NWNFJYO0FVelJHOzs7O0VBQ0ksWUFBQTtDVjhSUDtBVTVSRzs7OztFQUNJLGtCQUFBO0VBQ0EsOEJBQUE7Q1ZpU1A7QVU3UkQ7RUFDSSxzQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtDVitSSDtBQUNELG1CQUFtQjtBVTNSbkI7RUFDSSxpQkFBQTtDVjZSSDtBVTFSRDtFQUNJLGlCQUFBO0VBQ0Esa0JBQUE7Q1Y0Ukg7QVV6UkQ7RUFDSSxnQ0FBQTtDVjJSSDtBVXpSRDtFQUNJLHFCQUFBO0VBQUEsc0JBQUE7RUFBQSxjQUFBO0NWMlJIO0FVNVJEO0VBR1EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxvQkFBQTtFQUFBLGdCQUFBO1VBQUEsUUFBQTtDVjRSUDtBVTNSTztFQUNJLGdCQUFBO0NWNlJYO0FXblZEO0VBQ0kseUJBQUE7RUFDQSwwQkFBQTtFQUNBLHdCQUFBO0VBQ0EsZ0JBQUE7RUFFQSxpQkFBQTtFQUdBLG1CQUFBO0NYa1ZIO0FXalZHO0VDWEEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0NaK1ZIO0FXMVZHO0VDREEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLGlDQUFBO0VBQ0EsZUFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0NaOFZIO0FXaldEO0VBQ0ksa0JBQUE7RUFDQSxvQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7Q1htV0g7QVdqV0c7RUFDSSxjQUFBO0NYbVdQO0FXL1ZEO0VBQ0ksaUJBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFQUNBLGdCQUFBO0NYaVdIO0FXOVZEO0VBQ0ksbUJBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0VBQUEsc0JBQUE7RUFBQSxjQUFBO0VBQ0EsMEJBQUE7RUFBQSw0QkFBQTtVQUFBLG9CQUFBO0NYZ1dIO0FXL1ZHO0VDN0NBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFFBQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSw4QkFBQTtFQUNBLGVBQUE7RUFDQSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0EsK0JBQUE7VUFBQSx1QkFBQTtFRHNDSSxXQUFBO0NYMFdQO0FXdldPO0VBQ0ksY0FBQTtDWHlXWDtBV3JXRDtFQUNJLHlCQUFBO0VBQUEsZ0NBQUE7VUFBQSx3QkFBQTtDWHVXSDtBV3JXRDtFQUNJLG9CQUFBO0VBQUEsZ0JBQUE7VUFBQSxRQUFBO0NYdVdIO0FXcldEO0VBQ0ksa0JBQUE7RUFDQSxlQUFBO0NYdVdIO0FhcmFEO0VaREksOENBQUE7RVlHQSxlQUFBO0NidWFIO0FhdGFHO0VBQ0ksMEJBQUE7Q2J3YVA7QWE1YUQ7RUFPUSxvQkFBQTtFQUNBLG1CQUFBO0Nid2FQO0FhdmFPO0VBQ0ksYUFBQTtFQ1hSLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSwwQkFBQTtFQUNBLHNCQUFBO0VBQ0Esb0JBQUE7RUFVQSx5REFBQTtVQUFBLGlEQUFBO0VBRUEsbUJBQUE7RUFDQSxVQUFBO0VETFEsbUJBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0NiaWJYO0FhN2FEO0VBQ0ksZUFBQTtFQUNBLGdCQUFBO0NiK2FIO0FhM2FPO0VBQ0ksZUFBQTtDYjZhWDtBZXZjRDtFZERJLDhDQUFBO0NEMmNIO0FleGNHO0VBQ0ksMEJBQUE7Q2YwY1A7QWV0Y0Q7RUFDSSxtQkFBQTtFQUNBLGNBQUE7Q2Z3Y0g7QWdCaGREO0VBRVEscUJBQUE7Q2hCaWRQO0FnQnpjZTtFQUNJLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtDaEIyY25CO0FpQjFkRDtFQUVRLHNCQUFBO0NqQjJkUDtBaUJ4ZE87RUFDSSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7Q2pCMGRYO0FpQi9jZTtFQUNJLGlCQUFBO0VBQ0EsZUFBQTtDakJpZG5CO0FrQnZlRDtFQUNFLGVBQUE7RUFDQSxhQUFBO0VDWUUsc0JBQUE7RUFDQSxzQkFBQTtDbkI4ZEg7QWtCeGVEO0VBQ0ksWUFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSw4QkFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLHFCQUFBO0VBQ0Esd0JBQUE7Q2xCMGVIO0FrQnZlRzs7RUFDSSx5QkFBQTtFQUNBLFVBQUE7Q2xCMGVQO0FrQnZlRDtFQUNJLGVBQUE7RUFDQSxVQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtFQUNBLHFCQUFBO0VBQ0EsV0FBQTtDbEJ5ZUg7QWtCdGVEO0VBQ0ksZUFBQTtFQUNBLGtCQUFBO0NsQndlSDtBa0J2ZUc7RUFDSSxlQUFBO0NsQnllUDtBa0JyZUQ7RUFDSSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQ3RDQSxzQkFBQTtFQUNBLHNCQUFBO0NuQjhnQkg7QWtCdGVEO0VBQ0ksMEJBQUE7Q2xCd2VIO0FrQnRlRDtFQUVRLGFBQUE7Q2xCdWVQO0FrQnplRDtFQUtRLGNBQUE7Q2xCdWVQO0FrQjVlRDs7O0VqQjNESSw4Q0FBQTtDRDRpQkg7QWtCdGVEO0VBQ0ksZUFBQTtDbEJ3ZUg7QWtCemVEO0VBRW9CLHNCQUFBO0NsQjBlbkI7QW9CampCRDtFQUNJLG1CQUFBO0VBQ0EsMEJBQUE7Q3BCbWpCSDtBb0JsakJHO0VSSkEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0NaeWpCSDtBb0IzakJHO0VSTUEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLGlDQUFBO0VBQ0EsZUFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0Nad2pCSDtBb0Jua0JEO0VBQ0ksbUJBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7Q3BCcWtCSDtBb0Jwa0JHO0VSSEEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLGlDQUFBO0VBQ0EsZUFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0VRSkksV0FBQTtDcEIra0JQO0FvQnRsQkQ7RUFVUSxtQkFBQTtFQUNBLGlCQUFBO0NwQitrQlA7QW9CNWtCRDtFQUNJLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0NwQjhrQkg7QW9CNWtCRDtFQUNJLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtFQUFBLHNCQUFBO0VBQUEsY0FBQTtDcEI4a0JIO0FvQjdrQkc7RVJwQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0Nab25CSDtBb0JybEJEO0VBQ0ksaUJBQUE7Q3BCdWxCSDtBb0JybEJEO0VBQ0ksWUFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQTtFQUNBLHlCQUFBO0NwQnVsQkg7QW9CcmxCRDtFQUNJLGVBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7Q3BCdWxCSDtBb0JybEJEO0VBQ0ksbUJBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7RUFBQSxnQkFBQTtVQUFBLFFBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RW5COURBLDhDQUFBO0NEc3BCSDtBb0J0bEJHO0VBQ0ksOEJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLHFCQUFBO0VBQ0EsbUJBQUE7Q3BCd2xCUDtBb0J0bEJHO0VBQ0ksMEJBQUE7Q3BCd2xCUDtBb0J0bEJHO0VSaERBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFFBQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSwrQkFBQTtFQUNBLGVBQUE7RUFDQSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0EsK0JBQUE7VUFBQSx1QkFBQTtDWnlvQkg7QW9COWxCTztFQUNJLGNBQUE7Q3BCZ21CWDtBb0I1bEJEO0VBQ0ksZUFBQTtDcEI4bEJIO0FvQjVsQkQ7RUFDSSxlQUFBO0NwQjhsQkg7QXFCcHJCRDtFQUNJLFdBQUE7Q3JCc3JCSDtBcUJ2ckJEO0VBR1Esb0JBQUE7Q3JCdXJCUDtBcUJwckJPO0VBQ0ksYUFBQTtFUFJSLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSwwQkFBQTtFQUNBLHNCQUFBO0VBQ0Esb0JBQUE7RUFVQSx5REFBQTtVQUFBLGlEQUFBO0VBRUEsbUJBQUE7RUFDQSxVQUFBO0VPUFEsbUJBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0NyQjZyQlg7QXFCeHJCRDtFQUNJLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSw4QkFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0NyQjByQkg7QXFCdnJCRDtFQUNJLG9CQUFBO0NyQnlyQkg7QXFCMXJCRDtFQUdRLGFBQUE7RUFDQSx1QkFBQTtDckIwckJQO0FxQjlyQkQ7RUFPUSxtQkFBQTtDckIwckJQO0FxQnpyQk87RVRGSixhQUFBO0VBQ0EsbUJBQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsZ0NBQUE7RUFDQSxlQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtFQUNBLCtCQUFBO1VBQUEsdUJBQUE7Q1o4ckJIO0FxQmxzQk87RUFDSSxhQUFBO0VQN0NSLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSwwQkFBQTtFQUNBLHNCQUFBO0VBQ0Esb0JBQUE7RUFVQSx5REFBQTtVQUFBLGlEQUFBO0VBRUEsbUJBQUE7RUFDQSxVQUFBO0VPOEJRLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtDckIyc0JYO0FxQjd0QkQ7RUFzQlEsbUJBQUE7Q3JCMHNCUDtBcUJ6c0JPO0VBQ0ksY0FBQTtDckIyc0JYO0FxQnRzQkQ7RUFDSSxtQkFBQTtDckJ3c0JIO0FxQnpzQkQ7RUFHUSxnQkFBQTtDckJ5c0JQO0FzQnp3QkQ7RUFDSSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtDdEIyd0JIO0FzQnp3QkQ7RUFDSSxpQkFBQTtFQUNBLGFBQUE7RUFDQSx1QkFBQTtDdEIyd0JIO0FzQnh3QkQ7RUFDSSxzQkFBQTtFQUNBLGFBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0EsK0JBQUE7RUFDQSxrQkFBQTtFQUNBLHVCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0N0QjB3Qkg7QXNCendCRztFQUNJLDhCQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0N0QjJ3QlA7QXNCendCRztFQUNJLGVBQUE7Q3RCMndCUDtBdUJ2eUJEO0VBQ0ksY0FBQTtFQUNBLGdCQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQTtFQUNBLDBCQUFBO0VBQ0EsY0FBQTtDdkJ5eUJIO0F1QnZ5QkQ7RUFDSSxtQkFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsYUFBQTtFQUNBLFFBQUE7RUFDQSxvQ0FBQTtFQUNBLHlCQUFBO0N2Qnl5Qkg7QXVCdnlCRDtFQUNJLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxRQUFBO0VBQ0EsMEJBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtDdkJ5eUJIO0F1QnZ5QkQ7RUFDSSxlQUFBO0N2Qnl5Qkg7QXdCeDBCRDtFQUNJLGlCQUFBO0VBQ0Esb0JBQUE7Q3hCMDBCSDtBd0J4MEJEO0VBQ0kseUJBQUE7VUFBQSxpQkFBQTtDeEIwMEJIO0F3QngwQkQ7O0VBRUksbUJBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLDBCQUFBO0VBQ0EsV0FBQTtFQUNBLG9CQUFBO0VBQ0EsdUJBQUE7RUFDQSwwQkFBQTtFQUNBLHVEQUFBO0VBQUEsK0NBQUE7Q3hCMDBCSDtBd0J4MEJHOztFQUNJLGFBQUE7RUFDQSxtQkFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxvQkFBQTtFQUNBLDBCQUFBO0VBQ0EsMEVBQUE7RUFBQSxrRUFBQTtFQUFBLDBEQUFBO0VBQUEsaUhBQUE7Q3hCMjBCUDtBd0J6MEJHOztFQUNJLGFBQUE7RUFDQSxtQkFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxvQkFBQTtFQUNBLDBCQUFBO0VBQ0EseUNBQUE7RUFDQSwrRUFBQTtFQUFBLHVFQUFBO0VBQUEsK0RBQUE7RUFBQSwySEFBQTtDeEI0MEJQO0F3QnowQkQ7O0VBRUksc0JBQUE7RUFDQSwwQkFBQTtDeEIyMEJIO0F3QjEwQkc7O0VBQ0ksNEJBQUE7VUFBQSxvQkFBQTtDeEI2MEJQO0F3QjMwQkc7O0VBQ0ksb0NBQUE7VUFBQSw0QkFBQTtDeEI4MEJQO0F3QnowQkQ7RUFDSSxtQkFBQTtFQUNBLGNBQUE7Q3hCMjBCSDtBd0J6MEJEO0VBQ0ksZUFBQTtDeEIyMEJIO0F5QnY0QkQ7RUFDSSxxQkFBQTtFQUFBLHNCQUFBO0VBQUEsY0FBQTtFQUNBLHFCQUFBO0VBQ0EsMEJBQUE7RUFBQSw0QkFBQTtVQUFBLG9CQUFBO0N6Qnk0Qkg7QXlCdjRCRDtFQUNJLG9CQUFBO0VBQUEsZ0JBQUE7VUFBQSxRQUFBO0N6Qnk0Qkg7QXlCdjRCRDtFQUNJLGVBQUE7Q3pCeTRCSDtBeUJ0NEJEO0VBQ0ksb0JBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0N6Qnc0Qkg7QXlCdDRCRDtFQUNJLGlCQUFBO0N6Qnc0Qkg7QXlCdDRCRDtFQUNJLFlBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxvQ0FBQTtFQUNBLHVCQUFBO0N6Qnc0Qkg7QXlCdDRCRDtFQUNJLG1CQUFBO0N6Qnc0Qkg7QXlCdjRCRztFQUNJLGFBQUE7RUFDQSxtQkFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7RUFDQSxxQ0FBQTtDekJ5NEJQO0F5Qmw1QkQ7RUFZUSxlQUFBO0N6Qnk0QlA7QXlCdDRCRDtFQUNJLGNBQUE7RUFDQSxtQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EseUNBQUE7VUFBQSxpQ0FBQTtFQUNBLGVBQUE7Q3pCdzRCSDtBeUI5NEJEO0VBUVEsc0JBQUE7Q3pCeTRCUDtBeUJ0NEJEO0VBQ0ksWUFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsMEJBQUE7Q3pCdzRCSDtBeUJ2NEJHOztFQUNJLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EseUNBQUE7VUFBQSxpQ0FBQTtFQUNBLDBCQUFBO0N6QjA0QlA7QXlCeDRCRztFQUNJLFdBQUE7RUFDQSxlQUFBO0N6QjA0QlA7QXlCeDRCRztFQUNJLGNBQUE7RUFDQSxZQUFBO0N6QjA0QlA7QXlCeDRCRztFQUNJLHNCQUFBO0N6QjA0QlA7QXlCejRCTzs7RUFDSSwwQkFBQTtDekI0NEJYO0F5Qng0QkQ7RUFDSSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFeEIvRkEsOENBQUE7Q0QwK0JIO0EwQngrQkQ7RUFDSSxrQkFBQTtFQUNBLG1CQUFBO0MxQjArQkg7QTBCeCtCRDtFQUNJLG9CQUFBO0MxQjArQkg7QTBCeCtCRDtFQUNJLG9CQUFBO0VBQ0EsZ0JBQUE7QzFCMCtCSDtBMEJ4K0JEO0VBQ0ksZUFBQTtDMUIwK0JIO0EwQngrQkQ7RUFDSSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7QzFCMCtCSDtBMEJ4K0JEO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0MxQjArQkg7QTBCeCtCRDtFQUNJLG9CQUFBO0MxQjArQkg7QTBCeCtCRDtFQUNJLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0MxQjArQkg7QTBCNytCRDtFQUlNLGVBQUE7QzFCNCtCTDtBMEJ6K0JEO0VBQ0k7SUFDSSxnQkFBQTtJQUNBLFFBQUE7SUFDQSxVQUFBO0lBQ0EsWUFBQTtJQUNBLG1CQUFBO0cxQjIrQkw7Q0FDRjtBMkJwaENEO0VBQ0ksbUJBQUE7RUFDQSxnQkFBQTtDM0JzaENIO0EyQnhoQ0Q7RUFJUSxxQkFBQTtDM0J1aENQO0EyQjNoQ0Q7RUFPUSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7QzNCdWhDUDtBMkJoaUNEO0VBWVEsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0MzQnVoQ1A7QTJCcmlDRDtFQWlCUSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7QzNCdWhDUDtBMkIxaUNEO0VBc0JRLGdCQUFBO0VBQ0EsdUJBQUE7RUFDQSxzQkFBQTtDM0J1aENQO0EyQi9pQ0Q7RUEyQlEsaUJBQUE7QzNCdWhDUDtBNEJsakNEO0VBQ0kscUJBQUE7RUFBQSxzQkFBQTtFQUFBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLGFBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLDBCQUFBO0M1Qm9qQ0g7QTRCbGpDRztFaEJUQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxRQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsOEJBQUE7RUFDQSxlQUFBO0VBQ0EsOEJBQUE7VUFBQSxzQkFBQTtFQUNBLCtCQUFBO1VBQUEsdUJBQUE7Q1o4akNIO0E0QnpqQ0Q7RUFDSSxlQUFBO0VBQ0Esb0JBQUE7RUFBQSxnQkFBQTtVQUFBLFFBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RTNCcEJBLDhDQUFBO0NEZ2xDSDtBNEJ6akNHOzs7RUFJUSxlQUFBO0M1QjBqQ1g7QTRCcmpDRDtFQUNJLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7QzVCdWpDSDtBNEJyakNHOztFQUVJLGdCQUFBO0VBQ0EsZUFBQTtDNUJ1akNQO0E0Qi9qQ0Q7RUFZUSxZQUFBO0VBQ0EsYUFBQTtDNUJzakNQO0E0QmxqQ0Q7RUFDSSxtQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0M1Qm9qQ0g7QTZCeG1DRDtFQUNJLHFCQUFBO0VBQUEsc0JBQUE7RUFBQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0VBQ0EsT0FBQTtFQUNBLFlBQUE7RUFDQSwwQkFBQTtDN0IwbUNIO0E2QnhtQ0c7RWpCSUEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLGlDQUFBO0VBQ0EsZUFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0NadW1DSDtBNkJobkNHO0VBQ0ksa0JBQUE7RUFDQSxrQkFBQTtDN0JrbkNQO0E2QjltQ0Q7RUFDSSxtQkFBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQTtFQUFBLGdCQUFBO1VBQUEsUUFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFNUJ6QkEsOENBQUE7Q0Qwb0NIO0E2QjltQ0c7RUFDSSwwQkFBQTtDN0JnbkNQO0E2QjdtQ0c7RUFDSSwwQkFBQTtDN0IrbUNQO0E2QjVtQ0c7RWpCR0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLGdDQUFBO0VBQ0EsZUFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0NaNG1DSDtBNkJubkNPO0VBQ0ksY0FBQTtDN0JxbkNYO0E4QjVwQ0Q7RUFDSSxtQkFBQTtFQUNBLGFBQUE7QzlCOHBDSDtBOEIzcENEO0VBQ0ksdUJBQUE7RUFDQSxhQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0Esa0NBQUE7QzlCNnBDSDtBOEIzcENEO0VBQ0ksY0FBQTtDOUI2cENIO0ErQjVxQ0Q7RUFDSSxxQkFBQTtFQUFBLHNCQUFBO0VBQUEsY0FBQTtFQUNBLDBCQUFBO0VBQUEsNEJBQUE7VUFBQSxvQkFBQTtDL0I4cUNIO0ErQjNxQ0Q7RUFDSSwwQkFBQTtFQUNBLFlBQUE7RUFDQSxvQkFBQTtFQUFBLGdCQUFBO1VBQUEsUUFBQTtDL0I2cUNIO0ErQjFxQ0Q7RUFDSSxTQUFBO0VBQ0EsYUFBQTtFQUNBLDBCQUFBO0MvQjRxQ0g7QStCenFDRDtFQUNJLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7Qy9CMnFDSDtBZ0M5ckNEO0VBQ0ksMEJBQUE7RUFDQSxpQkFBQTtFQUtBLG1CQUFBO0VBQ0EsaUJBQUE7Q2hDNHJDSDtBZ0Nqc0NHO0VBQ0ksY0FBQTtDaENtc0NQO0FnQzlyQ0c7RXBCWEEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0NaNHNDSDtBZ0N2c0NHO0VwQkRBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSxpQ0FBQTtFQUNBLGVBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBQ0EsK0JBQUE7VUFBQSx1QkFBQTtDWjJzQ0g7QWdDOXNDRDtFQUNJLHdCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7Q2hDZ3RDSDtBZ0Mvc0NHO0VwQlhBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSxpQ0FBQTtFQUNBLGVBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBQ0EsK0JBQUE7VUFBQSx1QkFBQTtFb0JJSSxXQUFBO0NoQzB0Q1A7QWlDbnZDRDtFQUNJLGNBQUE7RUFDQSxtQkFBQTtDakNxdkNIO0FpQ3B2Q0c7RXJCSkEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0VxQkhJLFdBQUE7Q2pDK3ZDUDtBaUM1dkNPO0VBQ0ksY0FBQTtDakM4dkNYO0FpQzF2Q0c7RUFDSSxlQUFBO0VoQ2ZKLDhDQUFBO0NENHdDSDtBaUMzdkNPO0VBQ0ksMEJBQUE7Q2pDNnZDWDtBaUN6dkNEO0VBQ0ksaUJBQUE7RUFDQSxnQkFBQTtFZHhCQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSx3QkFBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RWNzQkEsc0JBQUE7RUFDQSxzQkFBQTtDakMrdkNIO0FpQzd2Q0Q7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFZHhCQSxpQkFBQTtFQUNBLHdCQUFBO0VBQ0EscUJBQUE7RUFDQSw2QkFBQTtFQUNBLHNCQUFBO0NuQnd4Q0g7QWlDandDRDtFQUNJLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7Q2pDbXdDSDtBaUNqd0NEO0VBQ0ksWUFBQTtFQUNBLG1CQUFBO0NqQ213Q0g7QWlDandDRDtFQUNJLGtCQUFBO0VBQ0EsK0JBQUE7Q2pDbXdDSDtBaUNqd0NEO0VBRVEsbUJBQUE7Q2pDa3dDUDtBaUMvdkNEO0VBQ0kscUJBQUE7RUFBQSxzQkFBQTtFQUFBLGNBQUE7RUFDQSwwQkFBQTtFQUFBLDRCQUFBO1VBQUEsb0JBQUE7Q2pDaXdDSDtBaUNud0NEO0VBSVEsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7Q2pDa3dDUDtBaUMxd0NEO0VBV1EsWUFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7Q2pDa3dDUDtBaUMvd0NEO0VBZ0JRLG9CQUFBO0VBQUEsZ0JBQUE7VUFBQSxRQUFBO0VBQ0EsYUFBQTtDakNrd0NQO0FpQy92Q0Q7RUFDSSxXQUFBO0NqQ2l3Q0g7QWlDbHdDRDtFQUdRLGNBQUE7Q2pDa3dDUDtBaUNqd0NPO0VBQ0ksY0FBQTtDakNtd0NYO0FrQ3AxQ0Q7RUFDSSxtQkFBQTtFQUNBLGlCQUFBO0NsQ3MxQ0g7QWtDcDFDRztFdEJMQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxRQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsOEJBQUE7RUFDQSxlQUFBO0VBQ0EsOEJBQUE7VUFBQSxzQkFBQTtFQUNBLCtCQUFBO1VBQUEsdUJBQUE7Q1o0MUNIO0FrQzcxQ0c7RXRCa0JBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFFBQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSwrQkFBQTtFQUNBLGVBQUE7RUFDQSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0EsK0JBQUE7VUFBQSx1QkFBQTtDWjgwQ0g7QWtDcDJDRDtFQUNJLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSx1QkFBQTtDbENzMkNIO0FrQ3AyQ0c7RXRCbUJBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxnQ0FBQTtFQUNBLGVBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBQ0EsK0JBQUE7VUFBQSx1QkFBQTtDWm8xQ0g7QWtDNzJDRztFdEJWQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxRQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsaUNBQUE7RUFDQSxlQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtFQUNBLCtCQUFBO1VBQUEsdUJBQUE7Q1owM0NIO0FrQ3IzQ0c7RUFDSSwwQkFBQTtDbEN1M0NQO0FrQ24zQ0Q7RUFDSSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGVBQUE7Q2xDcTNDSDtBa0N4M0NEO0VBTVEsZUFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0NsQ3EzQ1A7QWtDbDNDRztFQUNJLGdCQUFBO0NsQ28zQ1A7QWtDaDNDRDtFQUNJLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLG9CQUFBO0VBQ0Esd0JBQUE7RUFDQSxpQkFBQTtDbENrM0NIO0FtQ3g2Q0Q7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtDbkMwNkNIO0FtQzc2Q0Q7RUFLUSxlQUFBO0NuQzI2Q1A7QW1DeDZDRDtFQUNJLGdCQUFBO0VBQ0EsY0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0NuQzA2Q0g7QW1DeDZDRDtFQUNJLGFBQUE7Q25DMDZDSDtBbUN4NkNEO0VBQ0ksc0JBQUE7RUFDQSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtDbkMwNkNIO0FtQ3o2Q0c7RXZCRUEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLCtCQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0V1QlRJLGNBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtDbkNvN0NQO0FtQ2o3Q087RUFDSSxjQUFBO0NuQ203Q1g7QW1DLzZDRDtFQUNJLGlCQUFBO0VBQ0EsZ0JBQUE7Q25DaTdDSDtBb0N0OUNEO0VBQ0kscUJBQUE7RUFBQSxzQkFBQTtFQUFBLGNBQUE7Q3BDdzlDSDtBb0N0OUNEO0VBQ0ksb0JBQUE7RUFBQSxnQkFBQTtVQUFBLFFBQUE7Q3BDdzlDSDtBcUM1OUNEO0VBQ0ksZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSx5Q0FBQTtVQUFBLGlDQUFBO0VBRUEsMEJBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7Q3JDNjlDSDtBcUMzOUNEO0VBQ0ksMkJBQUE7Q3JDNjlDSDtBcUMzOUNEO0VBQ0ksaUJBQUE7RUFDQSxnQkFBQTtDckM2OUNIO0FxQzM5Q0Q7RUFDSSx1QkFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBQ0Esc0JBQUE7RUFDQSxlQUFBO0NyQzY5Q0g7QXFDNTlDRztFQUNJLDBCQUFBO0VBQ0EsZUFBQTtDckM4OUNQO0FxQzM5Q0Q7RUFDSSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtFQUFBLHNCQUFBO0VBQUEsY0FBQTtDckM2OUNIO0FxQzU5Q0c7RXpCeENBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFFBQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSw4QkFBQTtFQUNBLGVBQUE7RUFDQSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0EsK0JBQUE7VUFBQSx1QkFBQTtDWnVnREg7QXFDbitDRDtFQUNJLGVBQUE7RUFDQSxvQkFBQTtFQUFBLGdCQUFBO1VBQUEsUUFBQTtFQUNBLGVBQUE7RUFDQSxzQkFBQTtFcENqREEsOENBQUE7RW9DdURBLG1CQUFBO0NyQ2krQ0g7QXFDcitDRztFQUNJLDBCQUFBO0NyQ3UrQ1A7QXFDbitDRztFekI5QkEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLCtCQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0Nab2dESDtBcUMxK0NPO0VBQ0ksY0FBQTtDckM0K0NYO0FxQ3grQ0Q7RUFDSSxlQUFBO0NyQzArQ0g7QXFDeCtDRDtFQUNJLGVBQUE7Q3JDMCtDSDtBcUN2K0NEO0VBRVEsaUJBQUE7RUFDQSw0Q0FBQTtDckN3K0NQO0FxQzMrQ0Q7RUFNUSxnQkFBQTtDckN3K0NQO0FxQzkrQ0Q7RUFTUSxpQkFBQTtDckN3K0NQO0FxQ2ovQ0Q7RUFZUSxlQUFBO0VBQ0EsMEJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0NyQ3crQ1A7QXFDditDTztFQUNJLHlCQUFBO0VBQ0EsZUFBQTtDckN5K0NYO0FxQzMvQ0Q7RUFzQlEsZUFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0NyQ3crQ1A7QXFDditDTztFQUNJLGNBQUE7Q3JDeStDWDtBcUNyZ0REO0VBZ0NRLHNCQUFBO0VBQ0Esb0JBQUE7RUFDQSxnQkFBQTtDckN3K0NQO0FxQ3YrQ087RUFDSSxjQUFBO0NyQ3krQ1g7QXFDdCtDTztFQUNJLHNDQUFBO0NyQ3crQ1g7QXFDdCtDTztFQUNJLHNDQUFBO0NyQ3crQ1g7QXFDdCtDTztFQUNJLHFCQUFBO0NyQ3crQ1g7QXFDdGhERDtFQWtEUSxlQUFBO0NyQ3UrQ1A7QXFDbitDRDtFQUNJO0lBQ0ksV0FBQTtHckNxK0NMO0NBQ0Y7QXNDdG1ERDtFQUNJLGdCQUFBO0VBQ0EsY0FBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQ0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0N0Q3dtREg7QXNDdG1ERDtFQUNJLGlCQUFBO0VBQ0EsZUFBQTtDdEN3bURIO0FzQ3RtREs7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7Q3RDd21EVDtBc0NybURHO0VBQ0UsaUJBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLHlCQUFBO0N0Q3VtREw7QXNDbm1ERDtFQUNJLGlCQUFBO0N0Q3FtREg7QXVDcG9ERDtFQUNJLGdCQUFBO0VBQ0EsY0FBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSwrQkFBQTtDdkNzb0RIO0F1Q25vREQ7RUFDSSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0N2Q3FvREg7QXdDcHBERDtFQUNJLGdCQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSxzQ0FBQTtVQUFBLDhCQUFBO0VBQ0Esb0NBQUE7VUFBQSw0QkFBQTtFQUNBLGNBQUE7RUFDQSxZQUFBO0VBQ0EsMEJBQUE7RUFFQSwwQ0FBQTtFQUFBLGtDQUFBO0VBQUEsMEJBQUE7RUFBQSxpREFBQTtDeENxcERIO0F3Q25wREQ7RUFDSSwwQkFBQTtDeENxcERIO0F3Q25wREQ7RUFDSSxnQkFBQTtFQUNBLDBCQUFBO0N4Q3FwREg7QXdDbnBERDtFQUNJLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0N4Q3FwREg7QXdDcHBERztFNUIxQkEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0NaaXJESDtBd0M3cERHO0VBQ0ksMEJBQUE7Q3hDK3BEUDtBd0M1cERPO0VBQ0ksY0FBQTtDeEM4cERYO0F3Q3ZwREQ7RUFFUSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsYUFBQTtFQUNBLHlDQUFBO1VBQUEsaUNBQUE7RUFFQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxvQ0FBQTtVQUFBLDRCQUFBO0VBQ0Esd0JBQUE7RUFFQSwwQ0FBQTtFQUFBLGtDQUFBO0VBQUEsMEJBQUE7RUFBQSxpREFBQTtDeENzcERQO0F3Q25xREQ7RUFnQlEsY0FBQTtDeENzcERQO0F3Q3RxREQ7RUFtQlEsbUJBQUE7RUFDQSw0Q0FBQTtDeENzcERQO0F3QzFxREQ7RUF1QlEsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7Q3hDc3BEUDtBd0NycERPO0VBQ0ksNEJBQUE7RUFDQSw2QkFBQTtDeEN1cERYO0F3Q3JwRE87RUFDSSwrQkFBQTtFQUNBLGdDQUFBO0N4Q3VwRFg7QXdDanBERDtFQUNJLG1DQUFBO1VBQUEsMkJBQUE7Q3hDbXBESDtBeUNudUREO0VBQ0ksV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0N6Q3F1REg7QXlDbnVERDtFQUNJLHNCQUFBO0VBQ0EsdUJBQUE7Q3pDcXVESDtBeUNsdUREO0VBQ0ksOEJBQUE7RUFDQSxrQkFBQTtDekNvdURIO0F5Q3R1REQ7RUFJUSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLDBCQUFBO0VBQ0EsZUFBQTtDekNxdURQO0F5Q2x1REQ7RUFFUSxpQkFBQTtDekNtdURQO0F5Q2x1RE87RUFDSSxhQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFQUNBLDBCQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtDekNvdURYO0EwQ3Z3REQ7RUFDSSxzQkFBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLG9CQUFBO0VBQ0EsMEJBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7QzFDeXdESDtBMEN2d0REO0VBQ0ksY0FBQTtFQUNBLGFBQUE7QzFDeXdESDtBMkN4eEREO0VBQ0ksbUJBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0VBQUEsc0JBQUE7RUFBQSxjQUFBO0VBQ0EsdUJBQUE7RUFDQSwwQkFBQTtDM0MweERIO0EyQ3p4REc7RS9CTkEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0Naa3lESDtBMkNseURHO0UvQklBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSxpQ0FBQTtFQUNBLGVBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBQ0EsK0JBQUE7VUFBQSx1QkFBQTtDWml5REg7QTJDM3lERztFQUVRLGVBQUE7QzNDNHlEWDtBMkM5eURHO0VBS1EsY0FBQTtDM0M0eURYO0EyQ3h5REQ7RUFDSSxtQkFBQTtFQUNBLG9CQUFBO0VBQUEsbUJBQUE7VUFBQSxXQUFBO0VBQ0EsMEJBQUE7QzNDMHlESDtBMkN6eURHO0VBQ0ksWUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0Esb0JBQUE7RUFDQSwwQkFBQTtFQUNBLHVCQUFBO0VBQ0Esb0JBQUE7QzNDMnlEUDtBMkN4eUREO0VBQ0ksbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSx1QkFBQTtFQUNBLFdBQUE7QzNDMHlESDtBMkNqekREO0VBU1EsZUFBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtFQUNBLDBCQUFBO0VBQ0Esd0JBQUE7RUFDQSx3QkFBQTtDM0MyeURQO0EyQzF5RE87RUFDSSxjQUFBO0MzQzR5RFg7QTJDOXpERDtFQXNCUSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxPQUFBO0VBQ0Esa0JBQUE7QzNDMnlEUDtBMkNwMEREO0VBNEJRLG1CQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0MzQzJ5RFA7QTJDeHlERDtFQUNJLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLG9CQUFBO0MzQzB5REg7QTJDcHpERDtFQVlRLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtDM0MyeURQO0EyQ3p6REQ7RUFpQlEsa0JBQUE7QzNDMnlEUDtBMkN4eUREO0VBQ0ksY0FBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7QzNDMHlESDtBMkN4eUREO0VBQ0ksY0FBQTtDM0MweURIO0EyQ3R5REQ7Ozs7RUFJSSxjQUFBO0MzQ3d5REg7QTRDdDVERDtFQUNJLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsY0FBQTtFQUNBLG9DQUFBO1VBQUEsNEJBQUE7RUFDQSxzQ0FBQTtVQUFBLDhCQUFBO0VBRUEsMENBQUE7RUFBQSxrQ0FBQTtFQUFBLDBCQUFBO0VBQUEsaURBQUE7QzVDdTVESDtBNENwNUREO0VBQ0kscUJBQUE7RUFBQSxzQkFBQTtFQUFBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLDBCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtDNUNzNURIO0E0Q3I1REc7RWhDTkEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLGlDQUFBO0VBQ0EsZUFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0NaODVESDtBNEM1NUREO0VBQ0ksZUFBQTtFQUNBLG9CQUFBO0VBQUEsZ0JBQUE7VUFBQSxRQUFBO0VBQ0EsZUFBQTtDNUM4NURIO0E0QzU1REc7RUFDSSxpQkFBQTtDNUM4NURQO0E0QzU1REc7RUFDSSxrQkFBQTtDNUM4NURQO0E0QzE1REQ7RUFDSSxxQkFBQTtFQUFBLHNCQUFBO0VBQUEsY0FBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7QzVDNDVESDtBNEN6NUREO0VBQ0ksb0JBQUE7RUFBQSxnQkFBQTtVQUFBLFFBQUE7RUFDQSxtQkFBQTtFQUNBLGFBQUE7QzVDMjVESDtBNEN2NUREO0VBQ0ksbUJBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxvTEFBQTtFQUFBLHFLQUFBO0VBQ0EsaUNBQUE7RUFDQSw0QkFBQTtFQUNBLDZCQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtDNUN5NURIO0E0Q3Q1REQ7RUFDSSxZQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLFdBQUE7RUFDQSxXQUFBO0M1Q3c1REg7QTRDdjVERztFaEMxRUEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSwrQkFBQTtVQUFBLHVCQUFBO0NabytESDtBNENoNkRHO0VoQ2hFQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxRQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsaUNBQUE7RUFDQSxlQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtFQUNBLCtCQUFBO1VBQUEsdUJBQUE7Q1ptK0RIO0E0Q3Y2REQ7RUFDSSxtQkFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsWUFBQTtDNUN5NkRIO0E0Q3Q2REQ7RUFDSSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLHdCQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtDNUN3NkRIO0E0Q3I2REQ7RUFDSSxlQUFBO0M1Q3U2REg7QTZDemdFRDtFQUNJO0lBQ0ksMkNBQUE7WUFBQSxtQ0FBQTtHN0MyZ0VMO0U2Q3hnRUM7SUFDSSx3Q0FBQTtZQUFBLGdDQUFBO0c3QzBnRUw7Q0FDRjtBNkNqaEVEO0VBQ0k7SUFDSSwyQ0FBQTtZQUFBLG1DQUFBO0c3QzJnRUw7RTZDeGdFQztJQUNJLHdDQUFBO1lBQUEsZ0NBQUE7RzdDMGdFTDtDQUNGO0E2Q3ZnRUQ7RUFDSSw2Q0FBQTtVQUFBLHFDQUFBO0M3Q3lnRUg7QTZDdGdFRDtFQUNJO0lBQ0ksd0NBQUE7WUFBQSxnQ0FBQTtHN0N3Z0VMO0U2Q3JnRUM7SUFDSSwyQ0FBQTtZQUFBLG1DQUFBO0c3Q3VnRUw7Q0FDRjtBNkM5Z0VEO0VBQ0k7SUFDSSx3Q0FBQTtZQUFBLGdDQUFBO0c3Q3dnRUw7RTZDcmdFQztJQUNJLDJDQUFBO1lBQUEsbUNBQUE7RzdDdWdFTDtDQUNGO0E2Q3BnRUQ7RUFDSSwrQ0FBQTtVQUFBLHVDQUFBO0M3Q3NnRUg7QTZDbmdFRDtFQUNJO0lBQ0ksV0FBQTtHN0NxZ0VMO0U2Q25nRUM7SUFDSSxXQUFBO0c3Q3FnRUw7Q0FDRjtBNkMzZ0VEO0VBQ0k7SUFDSSxXQUFBO0c3Q3FnRUw7RTZDbmdFQztJQUNJLFdBQUE7RzdDcWdFTDtDQUNGO0E2Q2xnRUQ7RUFDSSw0Q0FBQTtVQUFBLG9DQUFBO0M3Q29nRUg7QTZDamdFRDtFQUNJO0lBQ0ksV0FBQTtHN0NtZ0VMO0U2Q2pnRUM7SUFDSSxXQUFBO0c3Q21nRUw7Q0FDRjtBNkN6Z0VEO0VBQ0k7SUFDSSxXQUFBO0c3Q21nRUw7RTZDamdFQztJQUNJLFdBQUE7RzdDbWdFTDtDQUNGO0E2Q2hnRUQ7RUFDSSw2Q0FBQTtVQUFBLHFDQUFBO0M3Q2tnRUg7QThDcmpFRDtFQUNJLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0M5Q3VqRUg7QThDMWpFRDtFQU1RLGVBQUE7QzlDdWpFUDtBOENwakVEO0VBQ0ksZUFBQTtDOUNzakVIO0E4Q3BqRUQ7RUFDSSx5QkFBQTtVQUFBLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLGFBQUE7RUFFQSwwQkFBQTtFQUNBLDBCQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBRUEsa0JBQUE7RUFDQSxTQUFBO0M5Q29qRUg7QThDampFTztFQUNJLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFQUNBLHFCQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUVBLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxxREFBQTtVQUFBLDZDQUFBO0M5Q2tqRVg7QThDL2lFRztFQUNJLDBCQUFBO0M5Q2lqRVA7QThDaGpFTztFQUNJLGVBQUE7QzlDa2pFWDtBK0N0bUVEO0VBQ0UsWUFBQTtFQUNBLGFBQUE7RUFDQSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EsMERBQUE7VUFBQSxrREFBQTtFQUNBLGs1REFBQTtFQUNBLHNCQUFBO0MvQ3dtRUQ7QStDcm1FRDtFQUNFO0lBQ0UsMkNBQUE7WUFBQSxtQ0FBQTtHL0N1bUVEO0UrQ3BtRUQ7SUFDRSw2Q0FBQTtZQUFBLHFDQUFBO0cvQ3NtRUQ7Q0FDRjtBK0NubUVEO0VBQ0U7SUFDRSwyQ0FBQTtZQUFBLG1DQUFBO0cvQ3FtRUQ7RStDbG1FRDtJQUNFLDZDQUFBO1lBQUEscUNBQUE7Ry9Db21FRDtDQUNGO0FnRC9uRUQ7RUFDSSxtQkFBQTtFQUNBLDBCQUFBO1VBQUEsa0JBQUE7Q2hEaW9FSDtBZ0Q5bkVEO0VBQ0ksbUJBQUE7RUFDQSxZQUFBO0VBQ0EsMEJBQUE7Q2hEZ29FSDtBZ0Q3bkVEO0VBQ0ksWUFBQTtFQUNBLDBCQUFBO0VBQ0EsU0FBQTtDaEQrbkVIO0FnRDVuRUQ7RUFDSSxtQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSwwQkFBQTtFQUNBLHVDQUFBO0NoRDhuRUg7QWdEMW5FRDtFQUNJLHFCQUFBO0VBQUEsc0JBQUE7RUFBQSxjQUFBO0VBQ0EsMEJBQUE7RUFBQSw0QkFBQTtVQUFBLG9CQUFBO0NoRDRuRUg7QWdEOW5FRDtFQUlRLG9CQUFBO0VBQUEsZ0JBQUE7VUFBQSxRQUFBO0NoRDZuRVA7QWdEMW5FRDtFQUNJLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtDaEQ0bkVIIiwiZmlsZSI6InN0eWxlL3dldWkuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcImZuXCI7XHJcblxyXG5odG1sIHtcclxuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xyXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xyXG59XHJcblxyXG5ib2R5IHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XHJcbiAgICBmb250LWZhbWlseTogQHdldWlGb250RGVmYXVsdDtcclxufVxyXG5cclxuKiB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG5hIGltZyB7XHJcbiAgICBib3JkZXI6IDA7XHJcbn1cclxuXHJcbmEge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgLnNldFRhcENvbG9yKCk7XHJcbn0iLCJodG1sIHtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbn1cbmJvZHkge1xuICBsaW5lLWhlaWdodDogMS42O1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbS1mb250LCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4qIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuYSBpbWcge1xuICBib3JkZXI6IDA7XG59XG5hIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWZhbWlseTogXCJ3ZXVpXCI7XG4gIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1IxTlZRckQrcyswQUFBRTRBQUFBUWs5VEx6SkFLRXgrQUFBQmZBQUFBRlpqYldGdzY1Y0ZIUUFBQWh3QUFBSlFaMng1WnZDUlIvRUFBQVNVQUFBS3RHaGxZV1FMS0lOOUFBQUE0QUFBQURab2FHVmhDQ3dEK2dBQUFMd0FBQUFrYUcxMGVFSm8vLzhBQUFIVUFBQUFTR3h2WTJFWXFoVzZBQUFFYkFBQUFDWnRZWGh3QVNFQVZRQUFBUmdBQUFBZ2JtRnRaZU5jSHRnQUFBOUlBQUFCNW5CdmMzVDZiTGhMQUFBUk1BQUFBT1lBQVFBQUErZ0FBQUJhQStqLy8vLy9BK2tBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQklBQVFBQUFBRUFBQ2tDajNkZkR6ejFBQXNENkFBQUFBRFVFUjlYQUFBQUFOUVJIMWYvL3dBQUEra0Q2Z0FBQUFnQUFnQUFBQUFBQUFBQkFBQUFFZ0JKQUFVQUFBQUFBQUlBQUFBS0FBb0FBQUQvQUFBQUFBQUFBQUVBQUFBS0FCNEFMQUFCUkVaTVZBQUlBQVFBQUFBQUFBQUFBUUFBQUFGc2FXZGhBQWdBQUFBQkFBQUFBUUFFQUFRQUFBQUJBQWdBQVFBR0FBQUFBUUFBQUFBQUFRT3dBWkFBQlFBSUFub0N2QUFBQUl3Q2VnSzhBQUFCNEFBeEFRSUFBQUlBQlFNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVR1pGWkFCQTZnSHFFUVBvQUFBQVdnUHFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBUG9BQUFENkFBQUErZ0FBQVBvQUFBRDZBQUFBK2dBQUFQb0FBQUQ2QUFBQStnQUFBUG9BQUFENkFBQUErZ0FBQVBvQUFBRDZBQUFBK2ovL3dQb0FBQUQ2QUFBQUFBQUJRQUFBQU1BQUFBc0FBQUFCQUFBQVhRQUFRQUFBQUFBYmdBREFBRUFBQUFzQUFNQUNnQUFBWFFBQkFCQ0FBQUFCQUFFQUFFQUFPb1IvLzhBQU9vQi8vOEFBQUFCQUFRQUFBQUJBQUlBQXdBRUFBVUFCZ0FIQUFnQUNRQUtBQXNBREFBTkFBNEFEd0FRQUJFQUFBRUdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd0FBQUFBQU53QUFBQUFBQUFBRVFBQTZnRUFBT29CQUFBQUFRQUE2Z0lBQU9vQ0FBQUFBZ0FBNmdNQUFPb0RBQUFBQXdBQTZnUUFBT29FQUFBQUJBQUE2Z1VBQU9vRkFBQUFCUUFBNmdZQUFPb0dBQUFBQmdBQTZnY0FBT29IQUFBQUJ3QUE2Z2dBQU9vSUFBQUFDQUFBNmdrQUFPb0pBQUFBQ1FBQTZnb0FBT29LQUFBQUNnQUE2Z3NBQU9vTEFBQUFDd0FBNmd3QUFPb01BQUFBREFBQTZnMEFBT29OQUFBQURRQUE2ZzRBQU9vT0FBQUFEZ0FBNmc4QUFPb1BBQUFBRHdBQTZoQUFBT29RQUFBQUVBQUE2aEVBQU9vUkFBQUFFUUFBQUFBQVJnQ01BTklCSmdGNEFjUUNNZ0pnQXFnQy9BTklBNllEL2dST0JLQUU5QVZhQUFBQUFnQUFBQUFEcndPdEFCUUFLUUFBQVNJSEJnY0dGQmNXRnhZeU56WTNOalFuSmljbUF5SW5KaWNtTkRjMk56WXlGeFlYRmhRSEJnY0dBZlY0WjJRN1BEdzdaR2Z3Wm1RN1BEdzdaR1o0Ymw1Yk5qYzNObHRlMjE1Yk5qYzNObHRlQTYwOE8yUm44R2RqT3p3OE8yTm44R2RrT3p6OHJ6YzFXMTdiWGx3MU56YzFYRjdiWGxzMU53QUFBQUFDQUFBQUFBT3pBN01BRndBdEFBQUJJZ2NHQndZVkZCY1dGeFl6TWpjMk56WTFOQ2NtSnlZVEJ3WWlMd0VtTmpzQkVUUTJPd0V5RmhVUk16SVdBZTUyWjJRN1BUMDdaR2QyZkdwbU96NCtPMlpwSVhZT0tBNTJEZzBYWFFzSEpnY0xYUmNOQTdNK08yWnFmSFpuWkRzOVBUdGtaM1o5YVdZN1B2M3dtaElTbWhJYUFSY0lDd3NJL3VrYUFBTUFBQUFBQStVRDVRQVhBQ01BTEFBQUFTSUhCZ2NHRlJRWEZoY1dNekkzTmpjMk5UUW5KaWNtQXhRckFTSTFBelE3QVRJSEp5SW1ORFl5RmhRR0FlNkVjbTlCUkVSQmIzS0VpWFp4UWtSRVFuRjFhUUl4QXdnQ1FnTUJJeElaR1NRWkdRUGtSRUp4ZG9tRWNtOUJSRVJCYjNLRWluVnhRa1Q5SFFJQ0FXSUNBakVaSXhrWkl4a0FBQUFBQXdBQUFBQURzUVBrQUJzQUtnQXpBQUFCQmdjR0J3WUhCamNSRkJjV0Z4WVhOamMyTnpZMUVTUVhKaWNtQnpNeUZoVURGQVlyQVNJbkF6UTJFeUltTkRZeUZoUUdBZlZCUVRnN0xEdC9JRWMrYkY1c2JGMXRQVWorMktoUVFWVnZOQVFHREFNQ0pnVUJDd1llRHhZV0hoVVZBK1FQRWc0U0RoSXBDdjZ0ajNWa1NUNGRIVDVKWkhXUEFWTmVOUmtTR1B3R0JQN0dBZ01GQVRvRUJ2NUFGUjhWRlI4VkFBQUFBZ0FBQUFBRHNRUGtBQmtBTGdBQUFRWUhCZ2MyQlJFVUZ4WVhGaGMyTnpZM05qVVJKQmNtSnlZVEFRWXZBU1kvQVRZeUh3RVdOamNsTmpJZkFSWUI5VlZWUWsrdi90RkhQbXhlYkd4ZGJUMUkvdEd2VDBKVm8vN1ZCQVNLQXdNU0FRVUJjUUVGQWdFU0FnVUJFUVFENHhNWUVoazNZUDZzam5WbFNEOGNIRDlJWlhXT0FWUmdOeGtTR1A2Mi90a0RBNDhFQkJrQ0FWWUNBUUhsQVFJUUJBQUFBQUFDQUFBQUFBUGtBK1FBRndBdEFBQUJJZ2NHQndZVkZCY1dGeFl6TWpjMk56WTFOQ2NtSnlZVEFRWWlMd0VtUHdFMk1oOEJGakkzQVRZeUh3RVdBZTZFY205QlEwTkNibk9EaVhWeFFrUkVRbkYxa2Y2Z0FRVUJvd01ERmdFRkFZVUNCUUVCUXdJRkFSVUVBK05FUW5GMWlZTnpia0pEUTBGdmNvU0pkWEZDUlA2ai9xVUJBYWdFQlI0Q0FXWUJBUUVOQWdJVkJBQUFBQVFBQUFBQUE2OERyUUFVQUNrQVB3QkRBQUFCSWdjR0J3WVVGeFlYRmpJM05qYzJOQ2NtSnlZRElpY21KeVkwTnpZM05qSVhGaGNXRkFjR0J3WVRCUTRCTHdFbUJnOEJCaFlmQVJZeU53RStBU1lpRnpBZkFRSDFlR2RrT3p3OE8yUm44R1prT3p3OE8yUm1lRzVlV3pZM056WmJYdHRlV3pZM056WmJYbW4rOWdZU0JtQUdEd1VEQlFFR2ZRVVFCZ0VsQlFFTEVCVUJBUU90UER0a1ovQm5ZenM4UER0alovQm5aRHM4L0s4M05WdGUyMTVjTlRjM05WeGUyMTViTlRjQ0p0MEZBUVZKQlFJR0JBY1JCb0FHQlFFaEJROExCQUVCQUFBQkFBQUFBQU83QXpvQUZ3QUFFeTRCUHdFK0FSOEJGalkzQVRZV0Z5Y1dGQWNCQmlJblBRb0dCd1VIR2d6TERDRUxBaDBMSHdzTkNncjl1UW9lQ2dHekN5RU9DdzBIQ1pNSkFRb0J2Z2tDQ2cwTEhRdjlzUXNLQUFBQUFBSUFBQUFBQStVRDVnQVhBQ3dBQUFFaUJ3WUhCaFVVRnhZWEZqTXlOelkzTmpVMEp5WW5KaE1IQmk4QkppY21OUk0wTmpzQk1oWVZFeGNlQVFIdmhISnZRVU5EUW01emc0bDFjVUpFUkVKeGRWY1FBd1Q2QXdJRUVBTUNLd0lERHNVQ0FRUGxSRUp4ZFltRGMyNUNRME5CYjNLRWlYVnhRa1Q5Vmh3RUFuY0NBZ01HQVhvQ0F3TUMvcTJGQWdRQUFBUUFBQUFBQTY4RHJRQURBQmdBTFFBekFBQUJNQjhCQXlJSEJnY0dGQmNXRnhZeU56WTNOalFuSmljbUF5SW5KaWNtTkRjMk56WXlGeFlYRmhRSEJnY0dBeU1WTXpVakF1VUJBZko0WjJRN1BEdzdaR2Z3Wm1RN1BEdzdaR1o0Ymw1Yk5qYzNObHRlMjE1Yk5qYzNObHRlbXlUOTJRS0RBUUVCTER3N1pHZndaMk03UER3N1kyZndaMlE3UFB5dk56VmJYdHRlWERVM056VmNYdHRlV3pVM0FqSDlKQUFBQUFNQUFBQUFBK1FENUFBWEFDY0FNQUFBQVNJSEJnY0dGUlFYRmhjV016STNOamMyTlRRbkppY21Bek15RmhVREZBWXJBU0ltTlFNME5oTWlKalEyTWhZVUJnSHVoSEp2UVVORFFtNXpnNGwxY1VKRVJFSnhkWjQyQkFZTUF3SW5Bd01NQmg4UEZoWWVGaFlENDBSQ2NYV0pnM051UWtORFFXOXloSWwxY1VKRS92WUdCZjdBQWdNREFnRkFCUWIrTmhZZkZoWWZGZ0FBQkFBQUFBQUR3QVBBQUFnQUVnQW9BRDBBQUFFeU5qUW1JZ1lVRmhjakZUTVJJeFV6TlNNRElnY0dCd1lWRkJZWEZqTXlOelkzTmpVMEp5NEJBeUluSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHQWZRWUlTRXdJU0ZSanprNXlUb3JoRzVyUFQ5OWFtK0RkbWhsUEQ0K1BNeUZiVjViTlRjM05WdGUybDViTlRjM05WdGVBcUFpTHlJaUx5STVIZjdFSEJ3Q3NUODlhMjZFZDh3OFBqNDhaV2gyZzI5cWZmeWpOelZiWHRwZVd6VTNOelZiWHRwZVd6VTNBQUFEQUFBQUFBT29BNmdBQ3dBZ0FEVUFBQUVISndjWEJ4YzNGemNuTndNaUJ3WUhCaFFYRmhjV01qYzJOelkwSnlZbkpnTWlKeVluSmpRM05qYzJNaGNXRnhZVUJ3WUhCZ0tPbXBvY21wb2NtcG9jbXBxMmRtWmlPanM3T21KbTdHWmlPanM3T21KbWRtdGRXVFEyTmpSWlhkWmRXVFEyTmpSWlhRS3FtcG9jbXBvY21wb2NtcG9CR1RzNlltYnNabUk2T3pzNlltYnNabUk2Ty96Q05qUlpYZFpkV1RRMk5qUlpYZFpkV1RRMkFBTUFBQUFBQStrRDZnQWFBQzhBTUFBQUFRWUhCaU1pSnlZbkpqUTNOamMyTWhjV0Z4WVZGQWNHQndFSEFUSTNOamMyTkNjbUp5WWlCd1lIQmhRWEZoY1dNd0tPTlVCQ1IyMWRXalUzTnpWYVhkcGRXelUyR0JjckFTTTUvZUJYUzBnckt5c3JTRXV1U2trcUxDd3FTVXBYQVNNckZ4ZzJOVnRkMmwxYU5UYzNOVnBkYlVkQ1FEWCszamtCR1NzclNFdXVTa2txTEN3cVNVcXVTMGdyS3dBQy8vOEFBQVBvQStnQUZBQXdBQUFCSWdjR0J3WVFGeFlYRmlBM05qYzJFQ2NtSnlZVEZnNEJJaThCQndZdUFUUS9BU2NtUGdFV0h3RTNOaDRCQmc4QkFmU0lkSEZEUkVSRGNYUUJFSFJ4UTBSRVEzRjBTUW9CRkJzS29xZ0tHeE1LcUtJS0FSUWJDcUtvQ2hzVUFRcW9BK2hFUTNGMC92QjBjVU5FUkVOeGRBRVFkSEZEUlAxakNoc1RDcWlpQ2dFVUd3cWlxQW9iRkFFS3FLSUtBUlFiQ3FJQUFBSUFBQUFBQStRRDVBQVhBRFFBQUFFaUJ3WUhCaFVVRnhZWEZqTXlOelkzTmpVMEp5WW5KaE1VQmlNRkZ4WVVEd0VHTHdFdUFUOEJOaDhCRmhRUEFRVXlGaDBCQWU2RWNtOUJRME5DYm5PRGlYVnhRa1JFUW5GMWZ3UUMvcEdEQVFFVkF3VHNBZ0VDN0FRRUZBSUJoQUZ3QWdNRDQwUkNjWFdKZzNOdVFrTkRRVzl5aElsMWNVSkUvZllDQXd1VkFnUUNGQVFFMEFJRkF0RUVCQlFDQlFHVkN3TURKd0FBQUFVQUFBQUFBOVFEMHdBakFDY0FOd0JIQUVnQUFBRVJGQVlqSVNJbU5SRWpJaVk5QVRRMk15RTFORFl6SVRJV0hRRWhNaFlkQVJRR0l5RVJJUkVISWdZVkVSUVdPd0V5TmpVUk5DWWpJU0lHRlJFVUZqc0JNalkxRVRRbUt3RURleVliL1hZYkprTUpEUTBKQVFZWkVnRXZFeGtCQmdrTkRRbjlDUUpjMFFrTkRRa3RDUTBOQ2Y3c0NRME5DUzBKRFEwSkxRTWkvVFFiSmlZYkFzd01DaXdKRFM0U0dSa1NMZzBKTEFvTS9Vd0N0R3NOQ2Y1TkNRME5DUUd6Q1EwTkNmNU5DUTBOQ1FHekNRMEFBQUFBRUFER0FBRUFBQUFBQUFFQUJBQUFBQUVBQUFBQUFBSUFCd0FFQUFFQUFBQUFBQU1BQkFBTEFBRUFBQUFBQUFRQUJBQVBBQUVBQUFBQUFBVUFDd0FUQUFFQUFBQUFBQVlBQkFBZUFBRUFBQUFBQUFvQUt3QWlBQUVBQUFBQUFBc0FFd0JOQUFNQUFRUUpBQUVBQ0FCZ0FBTUFBUVFKQUFJQURnQm9BQU1BQVFRSkFBTUFDQUIyQUFNQUFRUUpBQVFBQ0FCK0FBTUFBUVFKQUFVQUZnQ0dBQU1BQVFRSkFBWUFDQUNjQUFNQUFRUUpBQW9BVmdDa0FBTUFBUVFKQUFzQUpnRDZkMlYxYVZKbFozVnNZWEozWlhWcGQyVjFhVlpsY25OcGIyNGdNUzR3ZDJWMWFVZGxibVZ5WVhSbFpDQmllU0J6ZG1jeWRIUm1JR1p5YjIwZ1JtOXVkR1ZzYkc4Z2NISnZhbVZqZEM1b2RIUndPaTh2Wm05dWRHVnNiRzh1WTI5dEFIY0FaUUIxQUdrQVVnQmxBR2NBZFFCc0FHRUFjZ0IzQUdVQWRRQnBBSGNBWlFCMUFHa0FWZ0JsQUhJQWN3QnBBRzhBYmdBZ0FERUFMZ0F3QUhjQVpRQjFBR2tBUndCbEFHNEFaUUJ5QUdFQWRBQmxBR1FBSUFCaUFIa0FJQUJ6QUhZQVp3QXlBSFFBZEFCbUFDQUFaZ0J5QUc4QWJRQWdBRVlBYndCdUFIUUFaUUJzQUd3QWJ3QWdBSEFBY2dCdkFHb0FaUUJqQUhRQUxnQm9BSFFBZEFCd0FEb0FMd0F2QUdZQWJ3QnVBSFFBWlFCc0FHd0Fid0F1QUdNQWJ3QnRBQUFBQWdBQUFBQUFBQUFLQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVNBUUlCQXdFRUFRVUJCZ0VIQVFnQkNRRUtBUXNCREFFTkFRNEJEd0VRQVJFQkVnRVRBQVpqYVhKamJHVUlaRzkzYm14dllXUUVhVzVtYnd4ellXWmxYM04xWTJObGMzTUpjMkZtWlY5M1lYSnVCM04xWTJObGMzTU9jM1ZqWTJWemN5MWphWEpqYkdVUmMzVmpZMlZ6Y3kxdWJ5MWphWEpqYkdVSGQyRnBkR2x1Wnc1M1lXbDBhVzVuTFdOcGNtTnNaUVIzWVhKdUMybHVabTh0WTJseVkyeGxCbU5oYm1ObGJBWnpaV0Z5WTJnRlkyeGxZWElFWW1GamF3WmtaV3hsZEdVQUFBQUEnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG59XG5bY2xhc3NePVwid2V1aS1pY29uLVwiXSxcbltjbGFzcyo9XCIgd2V1aS1pY29uLVwiXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIFwid2V1aVwiO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cbltjbGFzc149XCJ3ZXVpLWljb24tXCJdOmJlZm9yZSxcbltjbGFzcyo9XCIgd2V1aS1pY29uLVwiXTpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAuMmVtO1xuICBtYXJnaW4tcmlnaHQ6IC4yZW07XG59XG4ud2V1aS1pY29uLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRUEwMVwiO1xufVxuLyogJ+6ggCcgKi9cbi53ZXVpLWljb24tZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEVBMDJcIjtcbn1cbi8qICfuoIAnICovXG4ud2V1aS1pY29uLWluZm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEVBMDNcIjtcbn1cbi8qICfuoIAnICovXG4ud2V1aS1pY29uLXNhZmVfc3VjY2VzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRUEwNFwiO1xufVxuLyogJ+6ggCcgKi9cbi53ZXVpLWljb24tc2FmZV93YXJuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFQTA1XCI7XG59XG4vKiAn7qCAJyAqL1xuLndldWktaWNvbi1zdWNjZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFQTA2XCI7XG59XG4vKiAn7qCAJyAqL1xuLndldWktaWNvbi1zdWNjZXNzLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRUEwN1wiO1xufVxuLyogJ+6ggCcgKi9cbi53ZXVpLWljb24tc3VjY2Vzcy1uby1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEVBMDhcIjtcbn1cbi8qICfuoIAnICovXG4ud2V1aS1pY29uLXdhaXRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEVBMDlcIjtcbn1cbi8qICfuoIAnICovXG4ud2V1aS1pY29uLXdhaXRpbmctY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFQTBBXCI7XG59XG4vKiAn7qCAJyAqL1xuLndldWktaWNvbi13YXJuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFQTBCXCI7XG59XG4vKiAn7qCAJyAqL1xuLndldWktaWNvbi1pbmZvLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRUEwQ1wiO1xufVxuLyogJ+6ggCcgKi9cbi53ZXVpLWljb24tY2FuY2VsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFQTBEXCI7XG59XG4vKiAn7qCAJyAqL1xuLndldWktaWNvbi1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEVBMEVcIjtcbn1cbi8qICfuoIAnICovXG4ud2V1aS1pY29uLWNsZWFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFQTBGXCI7XG59XG4vKiAn7qCAJyAqL1xuLndldWktaWNvbi1iYWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFQTEwXCI7XG59XG4vKiAn7qCAJyAqL1xuLndldWktaWNvbi1kZWxldGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEVBMTFcIjtcbn1cbi8qICfuoIAnICovXG5bY2xhc3NePVwid2V1aS1pY29uX1wiXTpiZWZvcmUsXG5bY2xhc3MqPVwiIHdldWktaWNvbl9cIl06YmVmb3JlIHtcbiAgbWFyZ2luOiAwO1xufVxuLndldWktaWNvbi1zdWNjZXNzIHtcbiAgZm9udC1zaXplOiAyM3B4O1xuICBjb2xvcjogIzA5QkIwNztcbn1cbi53ZXVpLWljb24td2FpdGluZyB7XG4gIGZvbnQtc2l6ZTogMjNweDtcbiAgY29sb3I6ICMxMEFFRkY7XG59XG4ud2V1aS1pY29uLXdhcm4ge1xuICBmb250LXNpemU6IDIzcHg7XG4gIGNvbG9yOiAjRjQzNTMwO1xufVxuLndldWktaWNvbi1pbmZvIHtcbiAgZm9udC1zaXplOiAyM3B4O1xuICBjb2xvcjogIzEwQUVGRjtcbn1cbi53ZXVpLWljb24tc3VjY2Vzcy1jaXJjbGUge1xuICBmb250LXNpemU6IDIzcHg7XG4gIGNvbG9yOiAjMDlCQjA3O1xufVxuLndldWktaWNvbi1zdWNjZXNzLW5vLWNpcmNsZSB7XG4gIGZvbnQtc2l6ZTogMjNweDtcbiAgY29sb3I6ICMwOUJCMDc7XG59XG4ud2V1aS1pY29uLXdhaXRpbmctY2lyY2xlIHtcbiAgZm9udC1zaXplOiAyM3B4O1xuICBjb2xvcjogIzEwQUVGRjtcbn1cbi53ZXVpLWljb24tY2lyY2xlIHtcbiAgZm9udC1zaXplOiAyM3B4O1xuICBjb2xvcjogI0M5QzlDOTtcbn1cbi53ZXVpLWljb24tZG93bmxvYWQge1xuICBmb250LXNpemU6IDIzcHg7XG4gIGNvbG9yOiAjMDlCQjA3O1xufVxuLndldWktaWNvbi1pbmZvLWNpcmNsZSB7XG4gIGZvbnQtc2l6ZTogMjNweDtcbiAgY29sb3I6ICMwOUJCMDc7XG59XG4ud2V1aS1pY29uLXNhZmUtc3VjY2VzcyB7XG4gIGNvbG9yOiAjMDlCQjA3O1xufVxuLndldWktaWNvbi1zYWZlLXdhcm4ge1xuICBjb2xvcjogI0ZGQkUwMDtcbn1cbi53ZXVpLWljb24tY2FuY2VsIHtcbiAgY29sb3I6ICNGNDM1MzA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbn1cbi53ZXVpLWljb24tc2VhcmNoIHtcbiAgY29sb3I6ICNCMkIyQjI7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi53ZXVpLWljb24tY2xlYXIge1xuICBjb2xvcjogI0IyQjJCMjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLndldWktaWNvbi1kZWxldGUud2V1aS1pY29uX2dhbGxlcnktZGVsZXRlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMjJweDtcbn1cbi53ZXVpLWljb25fbXNnIHtcbiAgZm9udC1zaXplOiA5M3B4O1xufVxuLndldWktaWNvbl9tc2cud2V1aS1pY29uLXdhcm4ge1xuICBjb2xvcjogI0Y3NjI2MDtcbn1cbi53ZXVpLWljb25fbXNnLXByaW1hcnkge1xuICBmb250LXNpemU6IDkzcHg7XG59XG4ud2V1aS1pY29uX21zZy1wcmltYXJ5LndldWktaWNvbi13YXJuIHtcbiAgY29sb3I6ICNDOUM5Qzk7XG59XG4ud2V1aS1idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE0cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBsaW5lLWhlaWdodDogMi41NTU1NTU1NjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ud2V1aS1idG46YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgd2lkdGg6IDIwMCU7XG4gIGhlaWdodDogMjAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4ud2V1aS1idG5faW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLndldWktYnRuX2RlZmF1bHQge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y4RjhGODtcbn1cbi53ZXVpLWJ0bl9kZWZhdWx0Om5vdCgud2V1aS1idG5fZGlzYWJsZWQpOnZpc2l0ZWQge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi53ZXVpLWJ0bl9kZWZhdWx0Om5vdCgud2V1aS1idG5fZGlzYWJsZWQpOmFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNERURFREU7XG59XG4ud2V1aS1idG5fcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQUFEMTk7XG59XG4ud2V1aS1idG5fcHJpbWFyeTpub3QoLndldWktYnRuX2Rpc2FibGVkKTp2aXNpdGVkIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4ud2V1aS1idG5fcHJpbWFyeTpub3QoLndldWktYnRuX2Rpc2FibGVkKTphY3RpdmUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc5QjE2O1xufVxuLndldWktYnRuX3dhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTY0MzQwO1xufVxuLndldWktYnRuX3dhcm46bm90KC53ZXVpLWJ0bl9kaXNhYmxlZCk6dmlzaXRlZCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLndldWktYnRuX3dhcm46bm90KC53ZXVpLWJ0bl9kaXNhYmxlZCk6YWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NFM0MzOTtcbn1cbi53ZXVpLWJ0bl9kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG59XG4ud2V1aS1idG5fZGlzYWJsZWQud2V1aS1idG5fZGVmYXVsdCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGN0Y3Rjc7XG59XG4ud2V1aS1idG5fZGlzYWJsZWQud2V1aS1idG5fcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5RUQ5OUQ7XG59XG4ud2V1aS1idG5fZGlzYWJsZWQud2V1aS1idG5fd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQzhCODk7XG59XG4ud2V1aS1idG5fcGxhaW4tcHJpbWFyeSB7XG4gIGNvbG9yOiAjMWFhZDE5O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMWFhZDE5O1xufVxuLndldWktYnRuX3BsYWluLXByaW1hcnk6bm90KC53ZXVpLWJ0bl9wbGFpbi1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMjYsIDE3MywgMjUsIDAuNik7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNiwgMTczLCAyNSwgMC42KTtcbn1cbi53ZXVpLWJ0bl9wbGFpbi1wcmltYXJ5OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAwO1xufVxuLndldWktYnRuX3BsYWluLWRlZmF1bHQge1xuICBjb2xvcjogIzM1MzUzNTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzM1MzUzNTtcbn1cbi53ZXVpLWJ0bl9wbGFpbi1kZWZhdWx0Om5vdCgud2V1aS1idG5fcGxhaW4tZGlzYWJsZWQpOmFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDUzLCA1MywgNTMsIDAuNik7XG4gIGJvcmRlci1jb2xvcjogcmdiYSg1MywgNTMsIDUzLCAwLjYpO1xufVxuLndldWktYnRuX3BsYWluLWRlZmF1bHQ6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDA7XG59XG4ud2V1aS1idG5fcGxhaW4tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbmJ1dHRvbi53ZXVpLWJ0bixcbmlucHV0LndldWktYnRuIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgb3V0bGluZTogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuYnV0dG9uLndldWktYnRuOmZvY3VzLFxuaW5wdXQud2V1aS1idG46Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuYnV0dG9uLndldWktYnRuX2lubGluZSxcbmlucHV0LndldWktYnRuX2lubGluZSxcbmJ1dHRvbi53ZXVpLWJ0bl9taW5pLFxuaW5wdXQud2V1aS1idG5fbWluaSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuYnV0dG9uLndldWktYnRuX3BsYWluLXByaW1hcnksXG5pbnB1dC53ZXVpLWJ0bl9wbGFpbi1wcmltYXJ5LFxuYnV0dG9uLndldWktYnRuX3BsYWluLWRlZmF1bHQsXG5pbnB1dC53ZXVpLWJ0bl9wbGFpbi1kZWZhdWx0IHtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLndldWktYnRuX21pbmkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAgMS4zMmVtO1xuICBsaW5lLWhlaWdodDogMi4zO1xuICBmb250LXNpemU6IDEzcHg7XG59XG4vKmdhcCBiZXR3ZWVuIGJ0biovXG4ud2V1aS1idG4gKyAud2V1aS1idG4ge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLndldWktYnRuLndldWktYnRuX2lubGluZSArIC53ZXVpLWJ0bi53ZXVpLWJ0bl9pbmxpbmUge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cbi53ZXVpLWJ0bi1hcmVhIHtcbiAgbWFyZ2luOiAxLjE3NjQ3MDU5ZW0gMTVweCAwLjNlbTtcbn1cbi53ZXVpLWJ0bi1hcmVhX2lubGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ud2V1aS1idG4tYXJlYV9pbmxpbmUgLndldWktYnRuIHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICB3aWR0aDogMTAwJTtcbiAgZmxleDogMTtcbn1cbi53ZXVpLWJ0bi1hcmVhX2lubGluZSAud2V1aS1idG46bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cbi53ZXVpLWNlbGxzIHtcbiAgbWFyZ2luLXRvcDogMS4xNzY0NzA1OWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBsaW5lLWhlaWdodDogMS40MTE3NjQ3MTtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ud2V1aS1jZWxsczpiZWZvcmUge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNEOUQ5RDk7XG4gIGNvbG9yOiAjRDlEOUQ5O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDAuNSk7XG59XG4ud2V1aS1jZWxsczphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Q5RDlEOTtcbiAgY29sb3I6ICNEOUQ5RDk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMC41KTtcbn1cbi53ZXVpLWNlbGxzX190aXRsZSB7XG4gIG1hcmdpbi10b3A6IC43N2VtO1xuICBtYXJnaW4tYm90dG9tOiAuM2VtO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIGNvbG9yOiAjOTk5OTk5O1xuICBmb250LXNpemU6IDE0cHg7XG59XG4ud2V1aS1jZWxsc19fdGl0bGUgKyAud2V1aS1jZWxscyB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4ud2V1aS1jZWxsc19fdGlwcyB7XG4gIG1hcmdpbi10b3A6IC4zZW07XG4gIGNvbG9yOiAjOTk5OTk5O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi53ZXVpLWNlbGwge1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi53ZXVpLWNlbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRDlEOUQ5O1xuICBjb2xvcjogI0Q5RDlEOTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgwLjUpO1xuICBsZWZ0OiAxNXB4O1xufVxuLndldWktY2VsbDpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndldWktY2VsbF9wcmltYXJ5IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4ud2V1aS1jZWxsX19iZCB7XG4gIGZsZXg6IDE7XG59XG4ud2V1aS1jZWxsX19mdCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjb2xvcjogIzk5OTk5OTtcbn1cbi53ZXVpLWNlbGxfYWNjZXNzIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi53ZXVpLWNlbGxfYWNjZXNzOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQ0VDRUM7XG59XG4ud2V1aS1jZWxsX2FjY2VzcyAud2V1aS1jZWxsX19mdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEzcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi53ZXVpLWNlbGxfYWNjZXNzIC53ZXVpLWNlbGxfX2Z0OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiA2cHg7XG4gIHdpZHRoOiA2cHg7XG4gIGJvcmRlci13aWR0aDogMnB4IDJweCAwIDA7XG4gIGJvcmRlci1jb2xvcjogI0M4QzhDRDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgdHJhbnNmb3JtOiBtYXRyaXgoMC43MSwgMC43MSwgLTAuNzEsIDAuNzEsIDAsIDApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTRweDtcbiAgcmlnaHQ6IDJweDtcbn1cbi53ZXVpLWNlbGxfbGluayB7XG4gIGNvbG9yOiAjNTg2Qzk0O1xuICBmb250LXNpemU6IDE0cHg7XG59XG4ud2V1aS1jZWxsX2xpbms6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ud2V1aS1jaGVja19fbGFiZWwge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4ud2V1aS1jaGVja19fbGFiZWw6YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VDRUNFQztcbn1cbi53ZXVpLWNoZWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtOTk5OWVtO1xufVxuLndldWktY2VsbHNfcmFkaW8gLndldWktY2VsbF9fZnQge1xuICBwYWRkaW5nLWxlZnQ6IDAuMzVlbTtcbn1cbi53ZXVpLWNlbGxzX3JhZGlvIC53ZXVpLWNoZWNrOmNoZWNrZWQgKyAud2V1aS1pY29uLWNoZWNrZWQ6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICdcXEVBMDgnO1xuICBjb2xvcjogIzA5QkIwNztcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLndldWktY2VsbHNfY2hlY2tib3ggLndldWktY2VsbF9faGQge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjM1ZW07XG59XG4ud2V1aS1jZWxsc19jaGVja2JveCAud2V1aS1pY29uLWNoZWNrZWQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcRUEwMSc7XG4gIGNvbG9yOiAjQzlDOUM5O1xuICBmb250LXNpemU6IDIzcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLndldWktY2VsbHNfY2hlY2tib3ggLndldWktY2hlY2s6Y2hlY2tlZCArIC53ZXVpLWljb24tY2hlY2tlZDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxFQTA2JztcbiAgY29sb3I6ICMwOUJCMDc7XG59XG4ud2V1aS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTA1cHg7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuLndldWktaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBoZWlnaHQ6IDEuNDExNzY0NzFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDExNzY0NzE7XG59XG4ud2V1aS1pbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbi53ZXVpLWlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4ud2V1aS10ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXI6IDA7XG4gIHJlc2l6ZTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIG91dGxpbmU6IDA7XG59XG4ud2V1aS10ZXh0YXJlYS1jb3VudGVyIHtcbiAgY29sb3I6ICNCMkIyQjI7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLndldWktY2VsbF93YXJuIC53ZXVpLXRleHRhcmVhLWNvdW50ZXIge1xuICBjb2xvcjogI0U2NDM0MDtcbn1cbi53ZXVpLXRvcHRpcHMge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogNXB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNGRkY7XG4gIHotaW5kZXg6IDUwMDA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuLndldWktdG9wdGlwc193YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U2NDM0MDtcbn1cbi53ZXVpLWNlbGxzX2Zvcm0gLndldWktY2VsbF9fZnQge1xuICBmb250LXNpemU6IDA7XG59XG4ud2V1aS1jZWxsc19mb3JtIC53ZXVpLWljb24td2FybiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ud2V1aS1jZWxsc19mb3JtIGlucHV0LFxuLndldWktY2VsbHNfZm9ybSB0ZXh0YXJlYSxcbi53ZXVpLWNlbGxzX2Zvcm0gbGFiZWxbZm9yXSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi53ZXVpLWNlbGxfd2FybiB7XG4gIGNvbG9yOiAjRTY0MzQwO1xufVxuLndldWktY2VsbF93YXJuIC53ZXVpLWljb24td2FybiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi53ZXVpLWZvcm0tcHJldmlldyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cbi53ZXVpLWZvcm0tcHJldmlldzpiZWZvcmUge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNEOUQ5RDk7XG4gIGNvbG9yOiAjRDlEOUQ5O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDAuNSk7XG59XG4ud2V1aS1mb3JtLXByZXZpZXc6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEOUQ5RDk7XG4gIGNvbG9yOiAjRDlEOUQ5O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDAuNSk7XG59XG4ud2V1aS1mb3JtLXByZXZpZXdfX2hkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBsaW5lLWhlaWdodDogMi41ZW07XG59XG4ud2V1aS1mb3JtLXByZXZpZXdfX2hkOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRDlEOUQ5O1xuICBjb2xvcjogI0Q5RDlEOTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgwLjUpO1xuICBsZWZ0OiAxNXB4O1xufVxuLndldWktZm9ybS1wcmV2aWV3X19oZCAud2V1aS1mb3JtLXByZXZpZXdfX3ZhbHVlIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDEuNmVtO1xufVxuLndldWktZm9ybS1wcmV2aWV3X19iZCB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgZm9udC1zaXplOiAuOWVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgY29sb3I6ICM5OTk5OTk7XG4gIGxpbmUtaGVpZ2h0OiAyO1xufVxuLndldWktZm9ybS1wcmV2aWV3X19mdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ud2V1aS1mb3JtLXByZXZpZXdfX2Z0OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRDVENUQ2O1xuICBjb2xvcjogI0Q1RDVENjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgwLjUpO1xufVxuLndldWktZm9ybS1wcmV2aWV3X19pdGVtIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi53ZXVpLWZvcm0tcHJldmlld19fbGFiZWwge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIG1pbi13aWR0aDogNGVtO1xuICBjb2xvcjogIzk5OTk5OTtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xufVxuLndldWktZm9ybS1wcmV2aWV3X192YWx1ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi53ZXVpLWZvcm0tcHJldmlld19fYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMTtcbiAgY29sb3I6ICMzQ0M1MUY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuYnV0dG9uLndldWktZm9ybS1wcmV2aWV3X19idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuLndldWktZm9ybS1wcmV2aWV3X19idG46YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTtcbn1cbi53ZXVpLWZvcm0tcHJldmlld19fYnRuOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMXB4O1xuICBib3R0b206IDA7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0Q1RDVENjtcbiAgY29sb3I6ICNENUQ1RDY7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMC41KTtcbn1cbi53ZXVpLWZvcm0tcHJldmlld19fYnRuOmZpcnN0LWNoaWxkOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi53ZXVpLWZvcm0tcHJldmlld19fYnRuX2RlZmF1bHQge1xuICBjb2xvcjogIzk5OTk5OTtcbn1cbi53ZXVpLWZvcm0tcHJldmlld19fYnRuX3ByaW1hcnkge1xuICBjb2xvcjogIzBCQjIwQztcbn1cbi53ZXVpLWNlbGxfc2VsZWN0IHtcbiAgcGFkZGluZzogMDtcbn1cbi53ZXVpLWNlbGxfc2VsZWN0IC53ZXVpLXNlbGVjdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG59XG4ud2V1aS1jZWxsX3NlbGVjdCAud2V1aS1jZWxsX19iZDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogNnB4O1xuICB3aWR0aDogNnB4O1xuICBib3JkZXItd2lkdGg6IDJweCAycHggMCAwO1xuICBib3JkZXItY29sb3I6ICNDOEM4Q0Q7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIHRyYW5zZm9ybTogbWF0cml4KDAuNzEsIDAuNzEsIC0wLjcxLCAwLjcxLCAwLCAwKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0ycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAxNXB4O1xuICBtYXJnaW4tdG9wOiAtNHB4O1xufVxuLndldWktc2VsZWN0IHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbn1cbi53ZXVpLWNlbGxfc2VsZWN0LWJlZm9yZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4ud2V1aS1jZWxsX3NlbGVjdC1iZWZvcmUgLndldWktc2VsZWN0IHtcbiAgd2lkdGg6IDEwNXB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLndldWktY2VsbF9zZWxlY3QtYmVmb3JlIC53ZXVpLWNlbGxfX2hkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLndldWktY2VsbF9zZWxlY3QtYmVmb3JlIC53ZXVpLWNlbGxfX2hkOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDFweDtcbiAgYm90dG9tOiAwO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRDlEOUQ5O1xuICBjb2xvcjogI0Q5RDlEOTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICB0cmFuc2Zvcm06IHNjYWxlWCgwLjUpO1xufVxuLndldWktY2VsbF9zZWxlY3QtYmVmb3JlIC53ZXVpLWNlbGxfX2hkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogNnB4O1xuICB3aWR0aDogNnB4O1xuICBib3JkZXItd2lkdGg6IDJweCAycHggMCAwO1xuICBib3JkZXItY29sb3I6ICNDOEM4Q0Q7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIHRyYW5zZm9ybTogbWF0cml4KDAuNzEsIDAuNzEsIC0wLjcxLCAwLjcxLCAwLCAwKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0ycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAxNXB4O1xuICBtYXJnaW4tdG9wOiAtNHB4O1xufVxuLndldWktY2VsbF9zZWxlY3QtYmVmb3JlIC53ZXVpLWNlbGxfX2JkIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xufVxuLndldWktY2VsbF9zZWxlY3QtYmVmb3JlIC53ZXVpLWNlbGxfX2JkOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi53ZXVpLWNlbGxfc2VsZWN0LWFmdGVyIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xufVxuLndldWktY2VsbF9zZWxlY3QtYWZ0ZXIgLndldWktc2VsZWN0IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLndldWktY2VsbF92Y29kZSB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cbi53ZXVpLXZjb2RlLWltZyB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIGhlaWdodDogNDRweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi53ZXVpLXZjb2RlLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiA0NHB4O1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBwYWRkaW5nOiAwIDAuNmVtIDAgMC43ZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0U1RTVFNTtcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgY29sb3I6ICMzQ0M1MUY7XG59XG5idXR0b24ud2V1aS12Y29kZS1idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBvdXRsaW5lOiAwO1xufVxuLndldWktdmNvZGUtYnRuOmFjdGl2ZSB7XG4gIGNvbG9yOiAjNTJhMzQxO1xufVxuLndldWktZ2FsbGVyeSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICB6LWluZGV4OiAxMDAwO1xufVxuLndldWktZ2FsbGVyeV9faW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDYwcHg7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG59XG4ud2V1aS1nYWxsZXJ5X19vcHIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwRDBEMEQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBsaW5lLWhlaWdodDogNjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLndldWktZ2FsbGVyeV9fZGVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ud2V1aS1jZWxsX3N3aXRjaCB7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG59XG4ud2V1aS1zd2l0Y2gge1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuLndldWktc3dpdGNoLFxuLndldWktc3dpdGNoLWNwX19ib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNERkRGREY7XG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtY29sb3I6ICNERkRGREY7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcywgYm9yZGVyIDAuMXM7XG59XG4ud2V1aS1zd2l0Y2g6YmVmb3JlLFxuLndldWktc3dpdGNoLWNwX19ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkRGREZEO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXMgY3ViaWMtYmV6aWVyKDAuNDUsIDEsIDAuNCwgMSk7XG59XG4ud2V1aS1zd2l0Y2g6YWZ0ZXIsXG4ud2V1aS1zd2l0Y2gtY3BfX2JveDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMzVzIGN1YmljLWJlemllcigwLjQsIDAuNCwgMC4yNSwgMS4zNSk7XG59XG4ud2V1aS1zd2l0Y2g6Y2hlY2tlZCxcbi53ZXVpLXN3aXRjaC1jcF9faW5wdXQ6Y2hlY2tlZCB+IC53ZXVpLXN3aXRjaC1jcF9fYm94IHtcbiAgYm9yZGVyLWNvbG9yOiAjMDRCRTAyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDRCRTAyO1xufVxuLndldWktc3dpdGNoOmNoZWNrZWQ6YmVmb3JlLFxuLndldWktc3dpdGNoLWNwX19pbnB1dDpjaGVja2VkIH4gLndldWktc3dpdGNoLWNwX19ib3g6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbn1cbi53ZXVpLXN3aXRjaDpjaGVja2VkOmFmdGVyLFxuLndldWktc3dpdGNoLWNwX19pbnB1dDpjaGVja2VkIH4gLndldWktc3dpdGNoLWNwX19ib3g6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG59XG4ud2V1aS1zd2l0Y2gtY3BfX2lucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtOTk5OXB4O1xufVxuLndldWktc3dpdGNoLWNwX19ib3gge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi53ZXVpLXVwbG9hZGVyX19oZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLndldWktdXBsb2FkZXJfX3RpdGxlIHtcbiAgZmxleDogMTtcbn1cbi53ZXVpLXVwbG9hZGVyX19pbmZvIHtcbiAgY29sb3I6ICNCMkIyQjI7XG59XG4ud2V1aS11cGxvYWRlcl9fYmQge1xuICBtYXJnaW4tYm90dG9tOiAtNHB4O1xuICBtYXJnaW4tcmlnaHQ6IC05cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ud2V1aS11cGxvYWRlcl9fZmlsZXMge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLndldWktdXBsb2FkZXJfX2ZpbGUge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiA5cHg7XG4gIG1hcmdpbi1ib3R0b206IDlweDtcbiAgd2lkdGg6IDc5cHg7XG4gIGhlaWdodDogNzlweDtcbiAgYmFja2dyb3VuZDogbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG4ud2V1aS11cGxvYWRlcl9fZmlsZV9zdGF0dXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ud2V1aS11cGxvYWRlcl9fZmlsZV9zdGF0dXM6YmVmb3JlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG4ud2V1aS11cGxvYWRlcl9fZmlsZV9zdGF0dXMgLndldWktdXBsb2FkZXJfX2ZpbGUtY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLndldWktdXBsb2FkZXJfX2ZpbGUtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLndldWktdXBsb2FkZXJfX2ZpbGUtY29udGVudCAud2V1aS1pY29uLXdhcm4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ud2V1aS11cGxvYWRlcl9faW5wdXQtYm94IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXJpZ2h0OiA5cHg7XG4gIG1hcmdpbi1ib3R0b206IDlweDtcbiAgd2lkdGg6IDc3cHg7XG4gIGhlaWdodDogNzdweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q5RDlEOTtcbn1cbi53ZXVpLXVwbG9hZGVyX19pbnB1dC1ib3g6YmVmb3JlLFxuLndldWktdXBsb2FkZXJfX2lucHV0LWJveDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDlEOUQ5O1xufVxuLndldWktdXBsb2FkZXJfX2lucHV0LWJveDpiZWZvcmUge1xuICB3aWR0aDogMnB4O1xuICBoZWlnaHQ6IDM5LjVweDtcbn1cbi53ZXVpLXVwbG9hZGVyX19pbnB1dC1ib3g6YWZ0ZXIge1xuICB3aWR0aDogMzkuNXB4O1xuICBoZWlnaHQ6IDJweDtcbn1cbi53ZXVpLXVwbG9hZGVyX19pbnB1dC1ib3g6YWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiAjOTk5OTk5O1xufVxuLndldWktdXBsb2FkZXJfX2lucHV0LWJveDphY3RpdmU6YmVmb3JlLFxuLndldWktdXBsb2FkZXJfX2lucHV0LWJveDphY3RpdmU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5OTk5O1xufVxuLndldWktdXBsb2FkZXJfX2lucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi53ZXVpLW1zZyB7XG4gIHBhZGRpbmctdG9wOiAzNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ud2V1aS1tc2dfX2ljb24tYXJlYSB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG4ud2V1aS1tc2dfX3RleHQtYXJlYSB7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIHBhZGRpbmc6IDAgMjBweDtcbn1cbi53ZXVpLW1zZ19fdGV4dC1hcmVhIGEge1xuICBjb2xvcjogIzU4NkM5NDtcbn1cbi53ZXVpLW1zZ19fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbi53ZXVpLW1zZ19fZGVzYyB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM5OTk5OTk7XG59XG4ud2V1aS1tc2dfX29wci1hcmVhIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbn1cbi53ZXVpLW1zZ19fZXh0cmEtYXJlYSB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM5OTk5OTk7XG59XG4ud2V1aS1tc2dfX2V4dHJhLWFyZWEgYSB7XG4gIGNvbG9yOiAjNTg2Qzk0O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi1oZWlnaHQ6IDQzOHB4KSB7XG4gIC53ZXVpLW1zZ19fZXh0cmEtYXJlYSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLndldWktYXJ0aWNsZSB7XG4gIHBhZGRpbmc6IDIwcHggMTVweDtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuLndldWktYXJ0aWNsZSBzZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG59XG4ud2V1aS1hcnRpY2xlIGgxIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBtYXJnaW4tYm90dG9tOiAuOWVtO1xufVxuLndldWktYXJ0aWNsZSBoMiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luLWJvdHRvbTogLjM0ZW07XG59XG4ud2V1aS1hcnRpY2xlIGgzIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAuMzRlbTtcbn1cbi53ZXVpLWFydGljbGUgKiB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLndldWktYXJ0aWNsZSBwIHtcbiAgbWFyZ2luOiAwIDAgLjhlbTtcbn1cbi53ZXVpLXRhYmJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNTAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjdGN0ZBO1xufVxuLndldWktdGFiYmFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0MwQkZDNDtcbiAgY29sb3I6ICNDMEJGQzQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMC41KTtcbn1cbi53ZXVpLXRhYmJhcl9faXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxO1xuICBwYWRkaW5nOiA1cHggMCAwO1xuICBmb250LXNpemU6IDA7XG4gIGNvbG9yOiAjOTk5OTk5O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi53ZXVpLXRhYmJhcl9faXRlbS53ZXVpLWJhcl9faXRlbV9vbiAud2V1aS10YWJiYXJfX2ljb24sXG4ud2V1aS10YWJiYXJfX2l0ZW0ud2V1aS1iYXJfX2l0ZW1fb24gLndldWktdGFiYmFyX19pY29uID4gaSxcbi53ZXVpLXRhYmJhcl9faXRlbS53ZXVpLWJhcl9faXRlbV9vbiAud2V1aS10YWJiYXJfX2xhYmVsIHtcbiAgY29sb3I6ICMwOUJCMDc7XG59XG4ud2V1aS10YWJiYXJfX2ljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyN3B4O1xuICBoZWlnaHQ6IDI3cHg7XG59XG5pLndldWktdGFiYmFyX19pY29uLFxuLndldWktdGFiYmFyX19pY29uID4gaSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgY29sb3I6ICM5OTk5OTk7XG59XG4ud2V1aS10YWJiYXJfX2ljb24gaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi53ZXVpLXRhYmJhcl9fbGFiZWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjOTk5OTk5O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG59XG4ud2V1aS1uYXZiYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDUwMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBRkFGQTtcbn1cbi53ZXVpLW5hdmJhcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQztcbiAgY29sb3I6ICNDQ0NDQ0M7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMC41KTtcbn1cbi53ZXVpLW5hdmJhciArIC53ZXVpLXRhYl9fcGFuZWwge1xuICBwYWRkaW5nLXRvcDogNTBweDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG4ud2V1aS1uYXZiYXJfX2l0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxO1xuICBwYWRkaW5nOiAxM3B4IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4ud2V1aS1uYXZiYXJfX2l0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VERURFRDtcbn1cbi53ZXVpLW5hdmJhcl9faXRlbS53ZXVpLWJhcl9faXRlbV9vbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQUVBRUE7XG59XG4ud2V1aS1uYXZiYXJfX2l0ZW06YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMXB4O1xuICBib3R0b206IDA7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIGNvbG9yOiAjQ0NDQ0NDO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDAuNSk7XG59XG4ud2V1aS1uYXZiYXJfX2l0ZW06bGFzdC1jaGlsZDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ud2V1aS10YWIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi53ZXVpLXRhYl9fcGFuZWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLndldWktdGFiX19jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi53ZXVpLXByb2dyZXNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi53ZXVpLXByb2dyZXNzX19iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJFQkVCO1xuICBoZWlnaHQ6IDNweDtcbiAgZmxleDogMTtcbn1cbi53ZXVpLXByb2dyZXNzX19pbm5lci1iYXIge1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDlCQjA3O1xufVxuLndldWktcHJvZ3Jlc3NfX29wciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgZm9udC1zaXplOiAwO1xufVxuLndldWktcGFuZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ud2V1aS1wYW5lbDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4ud2V1aS1wYW5lbDpiZWZvcmUge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFNUU1RTU7XG4gIGNvbG9yOiAjRTVFNUU1O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDAuNSk7XG59XG4ud2V1aS1wYW5lbDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0U1RTVFNTtcbiAgY29sb3I6ICNFNUU1RTU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMC41KTtcbn1cbi53ZXVpLXBhbmVsX19oZCB7XG4gIHBhZGRpbmc6IDE0cHggMTVweCAxMHB4O1xuICBjb2xvcjogIzk5OTk5OTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ud2V1aS1wYW5lbF9faGQ6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFNUU1RTU7XG4gIGNvbG9yOiAjRTVFNUU1O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDAuNSk7XG4gIGxlZnQ6IDE1cHg7XG59XG4ud2V1aS1tZWRpYS1ib3gge1xuICBwYWRkaW5nOiAxNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ud2V1aS1tZWRpYS1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRTVFNUU1O1xuICBjb2xvcjogI0U1RTVFNTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgwLjUpO1xuICBsZWZ0OiAxNXB4O1xufVxuLndldWktbWVkaWEtYm94OmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5hLndldWktbWVkaWEtYm94IHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbmEud2V1aS1tZWRpYS1ib3g6YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VDRUNFQztcbn1cbi53ZXVpLW1lZGlhLWJveF9fdGl0bGUge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE3cHg7XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuLndldWktbWVkaWEtYm94X19kZXNjIHtcbiAgY29sb3I6ICM5OTk5OTk7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG59XG4ud2V1aS1tZWRpYS1ib3hfX2luZm8ge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjQ0VDRUNFO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLndldWktbWVkaWEtYm94X19pbmZvX19tZXRhIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDFlbTtcbn1cbi53ZXVpLW1lZGlhLWJveF9faW5mb19fbWV0YV9leHRyYSB7XG4gIHBhZGRpbmctbGVmdDogMWVtO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNDRUNFQ0U7XG59XG4ud2V1aS1tZWRpYS1ib3hfdGV4dCAud2V1aS1tZWRpYS1ib3hfX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLndldWktbWVkaWEtYm94X2FwcG1zZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ud2V1aS1tZWRpYS1ib3hfYXBwbXNnIC53ZXVpLW1lZGlhLWJveF9faGQge1xuICBtYXJnaW4tcmlnaHQ6IC44ZW07XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ud2V1aS1tZWRpYS1ib3hfYXBwbXNnIC53ZXVpLW1lZGlhLWJveF9fdGh1bWIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi53ZXVpLW1lZGlhLWJveF9hcHBtc2cgLndldWktbWVkaWEtYm94X19iZCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cbi53ZXVpLW1lZGlhLWJveF9zbWFsbC1hcHBtc2cge1xuICBwYWRkaW5nOiAwO1xufVxuLndldWktbWVkaWEtYm94X3NtYWxsLWFwcG1zZyAud2V1aS1jZWxscyB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4ud2V1aS1tZWRpYS1ib3hfc21hbGwtYXBwbXNnIC53ZXVpLWNlbGxzOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ud2V1aS1ncmlkcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi53ZXVpLWdyaWRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0Q5RDlEOTtcbiAgY29sb3I6ICNEOUQ5RDk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMC41KTtcbn1cbi53ZXVpLWdyaWRzOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMXB4O1xuICBib3R0b206IDA7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0Q5RDlEOTtcbiAgY29sb3I6ICNEOUQ5RDk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMC41KTtcbn1cbi53ZXVpLWdyaWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ud2V1aS1ncmlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxcHg7XG4gIGJvdHRvbTogMDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0Q5RDlEOTtcbiAgY29sb3I6ICNEOUQ5RDk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMC41KTtcbn1cbi53ZXVpLWdyaWQ6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEOUQ5RDk7XG4gIGNvbG9yOiAjRDlEOUQ5O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDAuNSk7XG59XG4ud2V1aS1ncmlkOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQ0VDRUM7XG59XG4ud2V1aS1ncmlkX19pY29uIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG4ud2V1aS1ncmlkX19pY29uIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLndldWktZ3JpZF9faWNvbiArIC53ZXVpLWdyaWRfX2xhYmVsIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLndldWktZ3JpZF9fbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi53ZXVpLWZvb3RlciB7XG4gIGNvbG9yOiAjOTk5OTk5O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi53ZXVpLWZvb3RlciBhIHtcbiAgY29sb3I6ICM1ODZDOTQ7XG59XG4ud2V1aS1mb290ZXJfZml4ZWQtYm90dG9tIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IC41MmVtO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbn1cbi53ZXVpLWZvb3Rlcl9fbGlua3Mge1xuICBmb250LXNpemU6IDA7XG59XG4ud2V1aS1mb290ZXJfX2xpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1hcmdpbjogMCAuNjJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDE0cHg7XG59XG4ud2V1aS1mb290ZXJfX2xpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMXB4O1xuICBib3R0b206IDA7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0M3QzdDNztcbiAgY29sb3I6ICNDN0M3Qzc7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMC41KTtcbiAgbGVmdDogLTAuNjVlbTtcbiAgdG9wOiAuMzZlbTtcbiAgYm90dG9tOiAuMzZlbTtcbn1cbi53ZXVpLWZvb3Rlcl9fbGluazpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndldWktZm9vdGVyX190ZXh0IHtcbiAgcGFkZGluZzogMCAuMzRlbTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLndldWktZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ud2V1aS1mbGV4X19pdGVtIHtcbiAgZmxleDogMTtcbn1cbi53ZXVpLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogNTAwMDtcbiAgd2lkdGg6IDgwJTtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLndldWktZGlhbG9nX19oZCB7XG4gIHBhZGRpbmc6IDEuM2VtIDEuNmVtIDAuNWVtO1xufVxuLndldWktZGlhbG9nX190aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi53ZXVpLWRpYWxvZ19fYmQge1xuICBwYWRkaW5nOiAwIDEuNmVtIDAuOGVtO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICBjb2xvcjogIzk5OTk5OTtcbn1cbi53ZXVpLWRpYWxvZ19fYmQ6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nOiAyLjdlbSAyMHB4IDEuN2VtO1xuICBjb2xvcjogIzM1MzUzNTtcbn1cbi53ZXVpLWRpYWxvZ19fZnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ud2V1aS1kaWFsb2dfX2Z0OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRDVENUQ2O1xuICBjb2xvcjogI0Q1RDVENjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgwLjUpO1xufVxuLndldWktZGlhbG9nX19idG4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMTtcbiAgY29sb3I6ICMzQ0M1MUY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ud2V1aS1kaWFsb2dfX2J0bjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFO1xufVxuLndldWktZGlhbG9nX19idG46YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxcHg7XG4gIGJvdHRvbTogMDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRDVENUQ2O1xuICBjb2xvcjogI0Q1RDVENjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB0cmFuc2Zvcm06IHNjYWxlWCgwLjUpO1xufVxuLndldWktZGlhbG9nX19idG46Zmlyc3QtY2hpbGQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndldWktZGlhbG9nX19idG5fZGVmYXVsdCB7XG4gIGNvbG9yOiAjMzUzNTM1O1xufVxuLndldWktZGlhbG9nX19idG5fcHJpbWFyeSB7XG4gIGNvbG9yOiAjMEJCMjBDO1xufVxuLndldWktc2tpbl9hbmRyb2lkIC53ZXVpLWRpYWxvZyB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDMwcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4ud2V1aS1za2luX2FuZHJvaWQgLndldWktZGlhbG9nX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjFweDtcbn1cbi53ZXVpLXNraW5fYW5kcm9pZCAud2V1aS1kaWFsb2dfX2hkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi53ZXVpLXNraW5fYW5kcm9pZCAud2V1aS1kaWFsb2dfX2JkIHtcbiAgY29sb3I6ICM5OTk5OTk7XG4gIHBhZGRpbmc6IDAuMjVlbSAxLjZlbSAyZW07XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi53ZXVpLXNraW5fYW5kcm9pZCAud2V1aS1kaWFsb2dfX2JkOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZzogMS42ZW0gMS42ZW0gMmVtO1xuICBjb2xvcjogIzM1MzUzNTtcbn1cbi53ZXVpLXNraW5fYW5kcm9pZCAud2V1aS1kaWFsb2dfX2Z0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBsaW5lLWhlaWdodDogNDJweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiAwIDEuNmVtIDAuN2VtO1xufVxuLndldWktc2tpbl9hbmRyb2lkIC53ZXVpLWRpYWxvZ19fZnQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndldWktc2tpbl9hbmRyb2lkIC53ZXVpLWRpYWxvZ19fYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBwYWRkaW5nOiAwIC44ZW07XG59XG4ud2V1aS1za2luX2FuZHJvaWQgLndldWktZGlhbG9nX19idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndldWktc2tpbl9hbmRyb2lkIC53ZXVpLWRpYWxvZ19fYnRuOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNik7XG59XG4ud2V1aS1za2luX2FuZHJvaWQgLndldWktZGlhbG9nX19idG46dmlzaXRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNik7XG59XG4ud2V1aS1za2luX2FuZHJvaWQgLndldWktZGlhbG9nX19idG46bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogLTAuOGVtO1xufVxuLndldWktc2tpbl9hbmRyb2lkIC53ZXVpLWRpYWxvZ19fYnRuX2RlZmF1bHQge1xuICBjb2xvcjogIzgwODA4MDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAud2V1aS1kaWFsb2cge1xuICAgIHdpZHRoOiAzNSU7XG4gIH1cbn1cbi53ZXVpLXRvYXN0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA1MDAwO1xuICB3aWR0aDogNy42ZW07XG4gIG1pbi1oZWlnaHQ6IDcuNmVtO1xuICB0b3A6IDE4MHB4O1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMy44ZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoNDAsIDQwLCA0MCwgMC43NSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi53ZXVpLWljb25fdG9hc3Qge1xuICBtYXJnaW46IDIycHggMCAwO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi53ZXVpLWljb25fdG9hc3Qud2V1aS1pY29uLXN1Y2Nlc3Mtbm8tY2lyY2xlOmJlZm9yZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBmb250LXNpemU6IDU1cHg7XG59XG4ud2V1aS1pY29uX3RvYXN0LndldWktbG9hZGluZyB7XG4gIG1hcmdpbjogMzBweCAwIDA7XG4gIHdpZHRoOiAzOHB4O1xuICBoZWlnaHQ6IDM4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi53ZXVpLXRvYXN0X19jb250ZW50IHtcbiAgbWFyZ2luOiAwIDAgMTVweDtcbn1cbi53ZXVpLW1hc2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLndldWktbWFza190cmFuc3BhcmVudCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTAwMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xufVxuLndldWktYWN0aW9uc2hlZXQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwJSk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogNTAwMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRkVGRjQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3M7XG59XG4ud2V1aS1hY3Rpb25zaGVldF9fbWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG4ud2V1aS1hY3Rpb25zaGVldF9fYWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuLndldWktYWN0aW9uc2hlZXRfX2NlbGwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDE4cHg7XG59XG4ud2V1aS1hY3Rpb25zaGVldF9fY2VsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNEOUQ5RDk7XG4gIGNvbG9yOiAjRDlEOUQ5O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDAuNSk7XG59XG4ud2V1aS1hY3Rpb25zaGVldF9fY2VsbDphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUNFQ0VDO1xufVxuLndldWktYWN0aW9uc2hlZXRfX2NlbGw6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi53ZXVpLXNraW5fYW5kcm9pZCAud2V1aS1hY3Rpb25zaGVldCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgYm90dG9tOiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDI3NHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzO1xufVxuLndldWktc2tpbl9hbmRyb2lkIC53ZXVpLWFjdGlvbnNoZWV0X19hY3Rpb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndldWktc2tpbl9hbmRyb2lkIC53ZXVpLWFjdGlvbnNoZWV0X19tZW51IHtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3gtc2hhZG93OiAwIDZweCAzMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLndldWktc2tpbl9hbmRyb2lkIC53ZXVpLWFjdGlvbnNoZWV0X19jZWxsIHtcbiAgcGFkZGluZzogMTNweCAyNHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ud2V1aS1za2luX2FuZHJvaWQgLndldWktYWN0aW9uc2hlZXRfX2NlbGw6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycHg7XG59XG4ud2V1aS1za2luX2FuZHJvaWQgLndldWktYWN0aW9uc2hlZXRfX2NlbGw6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDtcbn1cbi53ZXVpLWFjdGlvbnNoZWV0X3RvZ2dsZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuLndldWktbG9hZG1vcmUge1xuICB3aWR0aDogNjUlO1xuICBtYXJnaW46IDEuNWVtIGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjZlbTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ud2V1aS1sb2FkbW9yZV9fdGlwcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi53ZXVpLWxvYWRtb3JlX2xpbmUge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0U1RTVFNTtcbiAgbWFyZ2luLXRvcDogMi40ZW07XG59XG4ud2V1aS1sb2FkbW9yZV9saW5lIC53ZXVpLWxvYWRtb3JlX190aXBzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0wLjllbTtcbiAgcGFkZGluZzogMCAuNTVlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgY29sb3I6ICM5OTk5OTk7XG59XG4ud2V1aS1sb2FkbW9yZV9kb3QgLndldWktbG9hZG1vcmVfX3RpcHMge1xuICBwYWRkaW5nOiAwIC4xNmVtO1xufVxuLndldWktbG9hZG1vcmVfZG90IC53ZXVpLWxvYWRtb3JlX190aXBzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTVFNUU1O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IDA7XG4gIHRvcDogLTAuMTZlbTtcbn1cbi53ZXVpLWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAuMTVlbSAuNGVtO1xuICBtaW4td2lkdGg6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U2NDM0MDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLndldWktYmFkZ2VfZG90IHtcbiAgcGFkZGluZzogLjRlbTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLndldWktc2VhcmNoLWJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRkVGRjQ7XG59XG4ud2V1aS1zZWFyY2gtYmFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0Q3RDZEQztcbiAgY29sb3I6ICNEN0Q2REM7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMC41KTtcbn1cbi53ZXVpLXNlYXJjaC1iYXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEN0Q2REM7XG4gIGNvbG9yOiAjRDdENkRDO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDAuNSk7XG59XG4ud2V1aS1zZWFyY2gtYmFyLndldWktc2VhcmNoLWJhcl9mb2N1c2luZyAud2V1aS1zZWFyY2gtYmFyX19jYW5jZWwtYnRuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ud2V1aS1zZWFyY2gtYmFyLndldWktc2VhcmNoLWJhcl9mb2N1c2luZyAud2V1aS1zZWFyY2gtYmFyX19sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ud2V1aS1zZWFyY2gtYmFyX19mb3JtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUZFRkY0O1xufVxuLndldWktc2VhcmNoLWJhcl9fZm9ybTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDIwMCU7XG4gIGhlaWdodDogMjAwJTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFNkU2RUE7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG4ud2V1aS1zZWFyY2gtYmFyX19ib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgei1pbmRleDogMTtcbn1cbi53ZXVpLXNlYXJjaC1iYXJfX2JveCAud2V1aS1zZWFyY2gtYmFyX19pbnB1dCB7XG4gIHBhZGRpbmc6IDRweCAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxLjQyODU3MTQzZW07XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0M2VtO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ud2V1aS1zZWFyY2gtYmFyX19ib3ggLndldWktc2VhcmNoLWJhcl9faW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLndldWktc2VhcmNoLWJhcl9fYm94IC53ZXVpLWljb24tc2VhcmNoIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICB0b3A6IDA7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLndldWktc2VhcmNoLWJhcl9fYm94IC53ZXVpLWljb24tY2xlYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG4ud2V1aS1zZWFyY2gtYmFyX19sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxcHg7XG4gIHJpZ2h0OiAxcHg7XG4gIGJvdHRvbTogMXB4O1xuICBsZWZ0OiAxcHg7XG4gIHotaW5kZXg6IDI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzlCOUI5QjtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi53ZXVpLXNlYXJjaC1iYXJfX2xhYmVsIHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi53ZXVpLXNlYXJjaC1iYXJfX2xhYmVsIC53ZXVpLWljb24tc2VhcmNoIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4ud2V1aS1zZWFyY2gtYmFyX19jYW5jZWwtYnRuIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBjb2xvcjogIzA5QkIwNztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi53ZXVpLXNlYXJjaC1iYXJfX2lucHV0Om5vdCg6dmFsaWQpIH4gLndldWktaWNvbi1jbGVhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi53ZXVpLXBpY2tlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogNTAwMDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDAlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcztcbn1cbi53ZXVpLXBpY2tlcl9faGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYmY5ZmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLndldWktcGlja2VyX19oZDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0U1RTVFNTtcbiAgY29sb3I6ICNFNUU1RTU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMC41KTtcbn1cbi53ZXVpLXBpY2tlcl9fYWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDE7XG4gIGNvbG9yOiAjNTg2Qzk0O1xufVxuLndldWktcGlja2VyX19hY3Rpb246Zmlyc3QtY2hpbGQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLndldWktcGlja2VyX19hY3Rpb246bGFzdC1jaGlsZCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLndldWktcGlja2VyX19iZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgaGVpZ2h0OiAyMzhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi53ZXVpLXBpY2tlcl9fZ3JvdXAge1xuICBmbGV4OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi53ZXVpLXBpY2tlcl9fbWFzayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgei1pbmRleDogMztcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KSk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCwgYm90dG9tO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAycHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbn1cbi53ZXVpLXBpY2tlcl9faW5kaWNhdG9yIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzRweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDEwMnB4O1xuICB6LWluZGV4OiAzO1xufVxuLndldWktcGlja2VyX19pbmRpY2F0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRTVFNUU1O1xuICBjb2xvcjogI0U1RTVFNTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgwLjUpO1xufVxuLndldWktcGlja2VyX19pbmRpY2F0b3I6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFNUU1RTU7XG4gIGNvbG9yOiAjRTVFNUU1O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDAuNSk7XG59XG4ud2V1aS1waWNrZXJfX2NvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4ud2V1aS1waWNrZXJfX2l0ZW0ge1xuICBwYWRkaW5nOiA1cHggMCA0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLndldWktcGlja2VyX19pdGVtX2Rpc2FibGVkIHtcbiAgY29sb3I6ICM5OTk5OTk7XG59XG5Aa2V5ZnJhbWVzIHNsaWRlVXAge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG4ud2V1aS1hbmltYXRlLXNsaWRlLXVwIHtcbiAgYW5pbWF0aW9uOiBzbGlkZVVwIGVhc2UgLjNzIGZvcndhcmRzO1xufVxuQGtleWZyYW1lcyBzbGlkZURvd24ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG4ud2V1aS1hbmltYXRlLXNsaWRlLWRvd24ge1xuICBhbmltYXRpb246IHNsaWRlRG93biBlYXNlIC4zcyBmb3J3YXJkcztcbn1cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLndldWktYW5pbWF0ZS1mYWRlLWluIHtcbiAgYW5pbWF0aW9uOiBmYWRlSW4gZWFzZSAuM3MgZm9yd2FyZHM7XG59XG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4ud2V1aS1hbmltYXRlLWZhZGUtb3V0IHtcbiAgYW5pbWF0aW9uOiBmYWRlT3V0IGVhc2UgLjNzIGZvcndhcmRzO1xufVxuLndldWktYWdyZWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogLjVlbSAxNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG4ud2V1aS1hZ3JlZSBhIHtcbiAgY29sb3I6ICM1ODZDOTQ7XG59XG4ud2V1aS1hZ3JlZV9fdGV4dCB7XG4gIGNvbG9yOiAjOTk5OTk5O1xufVxuLndldWktYWdyZWVfX2NoZWNrYm94IHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgb3V0bGluZTogMDtcbiAgZm9udC1zaXplOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDFEMUQxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IDA7XG4gIHRvcDogMnB4O1xufVxuLndldWktYWdyZWVfX2NoZWNrYm94OmNoZWNrZWQ6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwid2V1aVwiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBzcGVhazogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIGNvbnRlbnQ6IFwiXFxFQTA4XCI7XG4gIGNvbG9yOiAjMDlCQjA3O1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTQ4JSkgc2NhbGUoMC43Myk7XG59XG4ud2V1aS1hZ3JlZV9fY2hlY2tib3g6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTFFMUUxO1xufVxuLndldWktYWdyZWVfX2NoZWNrYm94OmRpc2FibGVkOmJlZm9yZSB7XG4gIGNvbG9yOiAjQURBREFEO1xufVxuLndldWktbG9hZGluZyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYW5pbWF0aW9uOiB3ZXVpTG9hZGluZyAxcyBzdGVwcygxMiwgZW5kKSBpbmZpbml0ZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeE1qQWlJR2hsYVdkb2REMGlNVEl3SWlCMmFXVjNRbTk0UFNJd0lEQWdNVEF3SURFd01DSStQSEJoZEdnZ1ptbHNiRDBpYm05dVpTSWdaRDBpVFRBZ01HZ3hNREIyTVRBd1NEQjZJaTgrUEhKbFkzUWdkMmxrZEdnOUlqY2lJR2hsYVdkb2REMGlNakFpSUhnOUlqUTJMalVpSUhrOUlqUXdJaUJtYVd4c1BTSWpSVGxGT1VVNUlpQnllRDBpTlNJZ2NuazlJalVpSUhSeVlXNXpabTl5YlQwaWRISmhibk5zWVhSbEtEQWdMVE13S1NJdlBqeHlaV04wSUhkcFpIUm9QU0kzSWlCb1pXbG5hSFE5SWpJd0lpQjRQU0kwTmk0MUlpQjVQU0kwTUNJZ1ptbHNiRDBpSXprNE9UWTVOeUlnY25nOUlqVWlJSEo1UFNJMUlpQjBjbUZ1YzJadmNtMDlJbkp2ZEdGMFpTZ3pNQ0F4TURVdU9UZ2dOalVwSWk4K1BISmxZM1FnZDJsa2RHZzlJamNpSUdobGFXZG9kRDBpTWpBaUlIZzlJalEyTGpVaUlIazlJalF3SWlCbWFXeHNQU0lqT1VJNU9UbEJJaUJ5ZUQwaU5TSWdjbms5SWpVaUlIUnlZVzV6Wm05eWJUMGljbTkwWVhSbEtEWXdJRGMxTGprNElEWTFLU0l2UGp4eVpXTjBJSGRwWkhSb1BTSTNJaUJvWldsbmFIUTlJakl3SWlCNFBTSTBOaTQxSWlCNVBTSTBNQ0lnWm1sc2JEMGlJMEV6UVRGQk1pSWdjbmc5SWpVaUlISjVQU0kxSWlCMGNtRnVjMlp2Y20wOUluSnZkR0YwWlNnNU1DQTJOU0EyTlNraUx6NDhjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJeU1DSWdlRDBpTkRZdU5TSWdlVDBpTkRBaUlHWnBiR3c5SWlOQlFrRTVRVUVpSUhKNFBTSTFJaUJ5ZVQwaU5TSWdkSEpoYm5ObWIzSnRQU0p5YjNSaGRHVW9NVEl3SURVNExqWTJJRFkxS1NJdlBqeHlaV04wSUhkcFpIUm9QU0kzSWlCb1pXbG5hSFE5SWpJd0lpQjRQU0kwTmk0MUlpQjVQU0kwTUNJZ1ptbHNiRDBpSTBJeVFqSkNNaUlnY25nOUlqVWlJSEo1UFNJMUlpQjBjbUZ1YzJadmNtMDlJbkp2ZEdGMFpTZ3hOVEFnTlRRdU1ESWdOalVwSWk4K1BISmxZM1FnZDJsa2RHZzlJamNpSUdobGFXZG9kRDBpTWpBaUlIZzlJalEyTGpVaUlIazlJalF3SWlCbWFXeHNQU0lqUWtGQ09FSTVJaUJ5ZUQwaU5TSWdjbms5SWpVaUlIUnlZVzV6Wm05eWJUMGljbTkwWVhSbEtERTRNQ0ExTUNBMk5Ta2lMejQ4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSXlNQ0lnZUQwaU5EWXVOU0lnZVQwaU5EQWlJR1pwYkd3OUlpTkRNa013UXpFaUlISjRQU0kxSWlCeWVUMGlOU0lnZEhKaGJuTm1iM0p0UFNKeWIzUmhkR1VvTFRFMU1DQTBOUzQ1T0NBMk5Ta2lMejQ4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSXlNQ0lnZUQwaU5EWXVOU0lnZVQwaU5EQWlJR1pwYkd3OUlpTkRRa05DUTBJaUlISjRQU0kxSWlCeWVUMGlOU0lnZEhKaGJuTm1iM0p0UFNKeWIzUmhkR1VvTFRFeU1DQTBNUzR6TkNBMk5Ta2lMejQ4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSXlNQ0lnZUQwaU5EWXVOU0lnZVQwaU5EQWlJR1pwYkd3OUlpTkVNa1F5UkRJaUlISjRQU0kxSWlCeWVUMGlOU0lnZEhKaGJuTm1iM0p0UFNKeWIzUmhkR1VvTFRrd0lETTFJRFkxS1NJdlBqeHlaV04wSUhkcFpIUm9QU0kzSWlCb1pXbG5hSFE5SWpJd0lpQjRQU0kwTmk0MUlpQjVQU0kwTUNJZ1ptbHNiRDBpSTBSQlJFRkVRU0lnY25nOUlqVWlJSEo1UFNJMUlpQjBjbUZ1YzJadmNtMDlJbkp2ZEdGMFpTZ3ROakFnTWpRdU1ESWdOalVwSWk4K1BISmxZM1FnZDJsa2RHZzlJamNpSUdobGFXZG9kRDBpTWpBaUlIZzlJalEyTGpVaUlIazlJalF3SWlCbWFXeHNQU0lqUlRKRk1rVXlJaUJ5ZUQwaU5TSWdjbms5SWpVaUlIUnlZVzV6Wm05eWJUMGljbTkwWVhSbEtDMHpNQ0F0TlM0NU9DQTJOU2tpTHo0OEwzTjJaejQ9KSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbn1cbkAtd2Via2l0LWtleWZyYW1lcyB3ZXVpTG9hZGluZyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMzYwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyB3ZXVpTG9hZGluZyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMzYwZGVnKTtcbiAgfVxufVxuLndldWktc2xpZGVyIHtcbiAgcGFkZGluZzogMTVweCAxOHB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi53ZXVpLXNsaWRlcl9faW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFOUU5O1xufVxuLndldWktc2xpZGVyX190cmFjayB7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUFBRDE5O1xuICB3aWR0aDogMDtcbn1cbi53ZXVpLXNsaWRlcl9faGFuZGxlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTRweDtcbiAgbWFyZ2luLXRvcDogLTE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMCAwIDRweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG4ud2V1aS1zbGlkZXItYm94IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi53ZXVpLXNsaWRlci1ib3ggLndldWktc2xpZGVyIHtcbiAgZmxleDogMTtcbn1cbi53ZXVpLXNsaWRlci1ib3hfX3ZhbHVlIHtcbiAgbWFyZ2luLWxlZnQ6IC41ZW07XG4gIG1pbi13aWR0aDogMjRweDtcbiAgY29sb3I6ICM4ODg4ODg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuIiwiLnNldFRhcENvbG9yKEBjOnJnYmEoMCwwLDAsMCkpIHtcclxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogQGM7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiIsIkBmb250LWZhY2Uge1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtZmFtaWx5OiBcIndldWlcIjtcclxuICAgIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1IxTlZRckQrcyswQUFBRTRBQUFBUWs5VEx6SkFLRXgrQUFBQmZBQUFBRlpqYldGdzY1Y0ZIUUFBQWh3QUFBSlFaMng1WnZDUlIvRUFBQVNVQUFBS3RHaGxZV1FMS0lOOUFBQUE0QUFBQURab2FHVmhDQ3dEK2dBQUFMd0FBQUFrYUcxMGVFSm8vLzhBQUFIVUFBQUFTR3h2WTJFWXFoVzZBQUFFYkFBQUFDWnRZWGh3QVNFQVZRQUFBUmdBQUFBZ2JtRnRaZU5jSHRnQUFBOUlBQUFCNW5CdmMzVDZiTGhMQUFBUk1BQUFBT1lBQVFBQUErZ0FBQUJhQStqLy8vLy9BK2tBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQklBQVFBQUFBRUFBQ2tDajNkZkR6ejFBQXNENkFBQUFBRFVFUjlYQUFBQUFOUVJIMWYvL3dBQUEra0Q2Z0FBQUFnQUFnQUFBQUFBQUFBQkFBQUFFZ0JKQUFVQUFBQUFBQUlBQUFBS0FBb0FBQUQvQUFBQUFBQUFBQUVBQUFBS0FCNEFMQUFCUkVaTVZBQUlBQVFBQUFBQUFBQUFBUUFBQUFGc2FXZGhBQWdBQUFBQkFBQUFBUUFFQUFRQUFBQUJBQWdBQVFBR0FBQUFBUUFBQUFBQUFRT3dBWkFBQlFBSUFub0N2QUFBQUl3Q2VnSzhBQUFCNEFBeEFRSUFBQUlBQlFNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVR1pGWkFCQTZnSHFFUVBvQUFBQVdnUHFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBUG9BQUFENkFBQUErZ0FBQVBvQUFBRDZBQUFBK2dBQUFQb0FBQUQ2QUFBQStnQUFBUG9BQUFENkFBQUErZ0FBQVBvQUFBRDZBQUFBK2ovL3dQb0FBQUQ2QUFBQUFBQUJRQUFBQU1BQUFBc0FBQUFCQUFBQVhRQUFRQUFBQUFBYmdBREFBRUFBQUFzQUFNQUNnQUFBWFFBQkFCQ0FBQUFCQUFFQUFFQUFPb1IvLzhBQU9vQi8vOEFBQUFCQUFRQUFBQUJBQUlBQXdBRUFBVUFCZ0FIQUFnQUNRQUtBQXNBREFBTkFBNEFEd0FRQUJFQUFBRUdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd0FBQUFBQU53QUFBQUFBQUFBRVFBQTZnRUFBT29CQUFBQUFRQUE2Z0lBQU9vQ0FBQUFBZ0FBNmdNQUFPb0RBQUFBQXdBQTZnUUFBT29FQUFBQUJBQUE2Z1VBQU9vRkFBQUFCUUFBNmdZQUFPb0dBQUFBQmdBQTZnY0FBT29IQUFBQUJ3QUE2Z2dBQU9vSUFBQUFDQUFBNmdrQUFPb0pBQUFBQ1FBQTZnb0FBT29LQUFBQUNnQUE2Z3NBQU9vTEFBQUFDd0FBNmd3QUFPb01BQUFBREFBQTZnMEFBT29OQUFBQURRQUE2ZzRBQU9vT0FBQUFEZ0FBNmc4QUFPb1BBQUFBRHdBQTZoQUFBT29RQUFBQUVBQUE2aEVBQU9vUkFBQUFFUUFBQUFBQVJnQ01BTklCSmdGNEFjUUNNZ0pnQXFnQy9BTklBNllEL2dST0JLQUU5QVZhQUFBQUFnQUFBQUFEcndPdEFCUUFLUUFBQVNJSEJnY0dGQmNXRnhZeU56WTNOalFuSmljbUF5SW5KaWNtTkRjMk56WXlGeFlYRmhRSEJnY0dBZlY0WjJRN1BEdzdaR2Z3Wm1RN1BEdzdaR1o0Ymw1Yk5qYzNObHRlMjE1Yk5qYzNObHRlQTYwOE8yUm44R2RqT3p3OE8yTm44R2RrT3p6OHJ6YzFXMTdiWGx3MU56YzFYRjdiWGxzMU53QUFBQUFDQUFBQUFBT3pBN01BRndBdEFBQUJJZ2NHQndZVkZCY1dGeFl6TWpjMk56WTFOQ2NtSnlZVEJ3WWlMd0VtTmpzQkVUUTJPd0V5RmhVUk16SVdBZTUyWjJRN1BUMDdaR2QyZkdwbU96NCtPMlpwSVhZT0tBNTJEZzBYWFFzSEpnY0xYUmNOQTdNK08yWnFmSFpuWkRzOVBUdGtaM1o5YVdZN1B2M3dtaElTbWhJYUFSY0lDd3NJL3VrYUFBTUFBQUFBQStVRDVRQVhBQ01BTEFBQUFTSUhCZ2NHRlJRWEZoY1dNekkzTmpjMk5UUW5KaWNtQXhRckFTSTFBelE3QVRJSEp5SW1ORFl5RmhRR0FlNkVjbTlCUkVSQmIzS0VpWFp4UWtSRVFuRjFhUUl4QXdnQ1FnTUJJeElaR1NRWkdRUGtSRUp4ZG9tRWNtOUJSRVJCYjNLRWluVnhRa1Q5SFFJQ0FXSUNBakVaSXhrWkl4a0FBQUFBQXdBQUFBQURzUVBrQUJzQUtnQXpBQUFCQmdjR0J3WUhCamNSRkJjV0Z4WVhOamMyTnpZMUVTUVhKaWNtQnpNeUZoVURGQVlyQVNJbkF6UTJFeUltTkRZeUZoUUdBZlZCUVRnN0xEdC9JRWMrYkY1c2JGMXRQVWorMktoUVFWVnZOQVFHREFNQ0pnVUJDd1llRHhZV0hoVVZBK1FQRWc0U0RoSXBDdjZ0ajNWa1NUNGRIVDVKWkhXUEFWTmVOUmtTR1B3R0JQN0dBZ01GQVRvRUJ2NUFGUjhWRlI4VkFBQUFBZ0FBQUFBRHNRUGtBQmtBTGdBQUFRWUhCZ2MyQlJFVUZ4WVhGaGMyTnpZM05qVVJKQmNtSnlZVEFRWXZBU1kvQVRZeUh3RVdOamNsTmpJZkFSWUI5VlZWUWsrdi90RkhQbXhlYkd4ZGJUMUkvdEd2VDBKVm8vN1ZCQVNLQXdNU0FRVUJjUUVGQWdFU0FnVUJFUVFENHhNWUVoazNZUDZzam5WbFNEOGNIRDlJWlhXT0FWUmdOeGtTR1A2Mi90a0RBNDhFQkJrQ0FWWUNBUUhsQVFJUUJBQUFBQUFDQUFBQUFBUGtBK1FBRndBdEFBQUJJZ2NHQndZVkZCY1dGeFl6TWpjMk56WTFOQ2NtSnlZVEFRWWlMd0VtUHdFMk1oOEJGakkzQVRZeUh3RVdBZTZFY205QlEwTkNibk9EaVhWeFFrUkVRbkYxa2Y2Z0FRVUJvd01ERmdFRkFZVUNCUUVCUXdJRkFSVUVBK05FUW5GMWlZTnpia0pEUTBGdmNvU0pkWEZDUlA2ai9xVUJBYWdFQlI0Q0FXWUJBUUVOQWdJVkJBQUFBQVFBQUFBQUE2OERyUUFVQUNrQVB3QkRBQUFCSWdjR0J3WVVGeFlYRmpJM05qYzJOQ2NtSnlZRElpY21KeVkwTnpZM05qSVhGaGNXRkFjR0J3WVRCUTRCTHdFbUJnOEJCaFlmQVJZeU53RStBU1lpRnpBZkFRSDFlR2RrT3p3OE8yUm44R1prT3p3OE8yUm1lRzVlV3pZM056WmJYdHRlV3pZM056WmJYbW4rOWdZU0JtQUdEd1VEQlFFR2ZRVVFCZ0VsQlFFTEVCVUJBUU90UER0a1ovQm5ZenM4UER0alovQm5aRHM4L0s4M05WdGUyMTVjTlRjM05WeGUyMTViTlRjQ0p0MEZBUVZKQlFJR0JBY1JCb0FHQlFFaEJROExCQUVCQUFBQkFBQUFBQU83QXpvQUZ3QUFFeTRCUHdFK0FSOEJGalkzQVRZV0Z5Y1dGQWNCQmlJblBRb0dCd1VIR2d6TERDRUxBaDBMSHdzTkNncjl1UW9lQ2dHekN5RU9DdzBIQ1pNSkFRb0J2Z2tDQ2cwTEhRdjlzUXNLQUFBQUFBSUFBQUFBQStVRDVnQVhBQ3dBQUFFaUJ3WUhCaFVVRnhZWEZqTXlOelkzTmpVMEp5WW5KaE1IQmk4QkppY21OUk0wTmpzQk1oWVZFeGNlQVFIdmhISnZRVU5EUW01emc0bDFjVUpFUkVKeGRWY1FBd1Q2QXdJRUVBTUNLd0lERHNVQ0FRUGxSRUp4ZFltRGMyNUNRME5CYjNLRWlYVnhRa1Q5Vmh3RUFuY0NBZ01HQVhvQ0F3TUMvcTJGQWdRQUFBUUFBQUFBQTY4RHJRQURBQmdBTFFBekFBQUJNQjhCQXlJSEJnY0dGQmNXRnhZeU56WTNOalFuSmljbUF5SW5KaWNtTkRjMk56WXlGeFlYRmhRSEJnY0dBeU1WTXpVakF1VUJBZko0WjJRN1BEdzdaR2Z3Wm1RN1BEdzdaR1o0Ymw1Yk5qYzNObHRlMjE1Yk5qYzNObHRlbXlUOTJRS0RBUUVCTER3N1pHZndaMk03UER3N1kyZndaMlE3UFB5dk56VmJYdHRlWERVM056VmNYdHRlV3pVM0FqSDlKQUFBQUFNQUFBQUFBK1FENUFBWEFDY0FNQUFBQVNJSEJnY0dGUlFYRmhjV016STNOamMyTlRRbkppY21Bek15RmhVREZBWXJBU0ltTlFNME5oTWlKalEyTWhZVUJnSHVoSEp2UVVORFFtNXpnNGwxY1VKRVJFSnhkWjQyQkFZTUF3SW5Bd01NQmg4UEZoWWVGaFlENDBSQ2NYV0pnM051UWtORFFXOXloSWwxY1VKRS92WUdCZjdBQWdNREFnRkFCUWIrTmhZZkZoWWZGZ0FBQkFBQUFBQUR3QVBBQUFnQUVnQW9BRDBBQUFFeU5qUW1JZ1lVRmhjakZUTVJJeFV6TlNNRElnY0dCd1lWRkJZWEZqTXlOelkzTmpVMEp5NEJBeUluSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHQWZRWUlTRXdJU0ZSanprNXlUb3JoRzVyUFQ5OWFtK0RkbWhsUEQ0K1BNeUZiVjViTlRjM05WdGUybDViTlRjM05WdGVBcUFpTHlJaUx5STVIZjdFSEJ3Q3NUODlhMjZFZDh3OFBqNDhaV2gyZzI5cWZmeWpOelZiWHRwZVd6VTNOelZiWHRwZVd6VTNBQUFEQUFBQUFBT29BNmdBQ3dBZ0FEVUFBQUVISndjWEJ4YzNGemNuTndNaUJ3WUhCaFFYRmhjV01qYzJOelkwSnlZbkpnTWlKeVluSmpRM05qYzJNaGNXRnhZVUJ3WUhCZ0tPbXBvY21wb2NtcG9jbXBxMmRtWmlPanM3T21KbTdHWmlPanM3T21KbWRtdGRXVFEyTmpSWlhkWmRXVFEyTmpSWlhRS3FtcG9jbXBvY21wb2NtcG9CR1RzNlltYnNabUk2T3pzNlltYnNabUk2Ty96Q05qUlpYZFpkV1RRMk5qUlpYZFpkV1RRMkFBTUFBQUFBQStrRDZnQWFBQzhBTUFBQUFRWUhCaU1pSnlZbkpqUTNOamMyTWhjV0Z4WVZGQWNHQndFSEFUSTNOamMyTkNjbUp5WWlCd1lIQmhRWEZoY1dNd0tPTlVCQ1IyMWRXalUzTnpWYVhkcGRXelUyR0JjckFTTTUvZUJYUzBnckt5c3JTRXV1U2trcUxDd3FTVXBYQVNNckZ4ZzJOVnRkMmwxYU5UYzNOVnBkYlVkQ1FEWCszamtCR1NzclNFdXVTa2txTEN3cVNVcXVTMGdyS3dBQy8vOEFBQVBvQStnQUZBQXdBQUFCSWdjR0J3WVFGeFlYRmlBM05qYzJFQ2NtSnlZVEZnNEJJaThCQndZdUFUUS9BU2NtUGdFV0h3RTNOaDRCQmc4QkFmU0lkSEZEUkVSRGNYUUJFSFJ4UTBSRVEzRjBTUW9CRkJzS29xZ0tHeE1LcUtJS0FSUWJDcUtvQ2hzVUFRcW9BK2hFUTNGMC92QjBjVU5FUkVOeGRBRVFkSEZEUlAxakNoc1RDcWlpQ2dFVUd3cWlxQW9iRkFFS3FLSUtBUlFiQ3FJQUFBSUFBQUFBQStRRDVBQVhBRFFBQUFFaUJ3WUhCaFVVRnhZWEZqTXlOelkzTmpVMEp5WW5KaE1VQmlNRkZ4WVVEd0VHTHdFdUFUOEJOaDhCRmhRUEFRVXlGaDBCQWU2RWNtOUJRME5DYm5PRGlYVnhRa1JFUW5GMWZ3UUMvcEdEQVFFVkF3VHNBZ0VDN0FRRUZBSUJoQUZ3QWdNRDQwUkNjWFdKZzNOdVFrTkRRVzl5aElsMWNVSkUvZllDQXd1VkFnUUNGQVFFMEFJRkF0RUVCQlFDQlFHVkN3TURKd0FBQUFVQUFBQUFBOVFEMHdBakFDY0FOd0JIQUVnQUFBRVJGQVlqSVNJbU5SRWpJaVk5QVRRMk15RTFORFl6SVRJV0hRRWhNaFlkQVJRR0l5RVJJUkVISWdZVkVSUVdPd0V5TmpVUk5DWWpJU0lHRlJFVUZqc0JNalkxRVRRbUt3RURleVliL1hZYkprTUpEUTBKQVFZWkVnRXZFeGtCQmdrTkRRbjlDUUpjMFFrTkRRa3RDUTBOQ2Y3c0NRME5DUzBKRFEwSkxRTWkvVFFiSmlZYkFzd01DaXdKRFM0U0dSa1NMZzBKTEFvTS9Vd0N0R3NOQ2Y1TkNRME5DUUd6Q1EwTkNmNU5DUTBOQ1FHekNRMEFBQUFBRUFER0FBRUFBQUFBQUFFQUJBQUFBQUVBQUFBQUFBSUFCd0FFQUFFQUFBQUFBQU1BQkFBTEFBRUFBQUFBQUFRQUJBQVBBQUVBQUFBQUFBVUFDd0FUQUFFQUFBQUFBQVlBQkFBZUFBRUFBQUFBQUFvQUt3QWlBQUVBQUFBQUFBc0FFd0JOQUFNQUFRUUpBQUVBQ0FCZ0FBTUFBUVFKQUFJQURnQm9BQU1BQVFRSkFBTUFDQUIyQUFNQUFRUUpBQVFBQ0FCK0FBTUFBUVFKQUFVQUZnQ0dBQU1BQVFRSkFBWUFDQUNjQUFNQUFRUUpBQW9BVmdDa0FBTUFBUVFKQUFzQUpnRDZkMlYxYVZKbFozVnNZWEozWlhWcGQyVjFhVlpsY25OcGIyNGdNUzR3ZDJWMWFVZGxibVZ5WVhSbFpDQmllU0J6ZG1jeWRIUm1JR1p5YjIwZ1JtOXVkR1ZzYkc4Z2NISnZhbVZqZEM1b2RIUndPaTh2Wm05dWRHVnNiRzh1WTI5dEFIY0FaUUIxQUdrQVVnQmxBR2NBZFFCc0FHRUFjZ0IzQUdVQWRRQnBBSGNBWlFCMUFHa0FWZ0JsQUhJQWN3QnBBRzhBYmdBZ0FERUFMZ0F3QUhjQVpRQjFBR2tBUndCbEFHNEFaUUJ5QUdFQWRBQmxBR1FBSUFCaUFIa0FJQUJ6QUhZQVp3QXlBSFFBZEFCbUFDQUFaZ0J5QUc4QWJRQWdBRVlBYndCdUFIUUFaUUJzQUd3QWJ3QWdBSEFBY2dCdkFHb0FaUUJqQUhRQUxnQm9BSFFBZEFCd0FEb0FMd0F2QUdZQWJ3QnVBSFFBWlFCc0FHd0Fid0F1QUdNQWJ3QnRBQUFBQWdBQUFBQUFBQUFLQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVNBUUlCQXdFRUFRVUJCZ0VIQVFnQkNRRUtBUXNCREFFTkFRNEJEd0VRQVJFQkVnRVRBQVpqYVhKamJHVUlaRzkzYm14dllXUUVhVzVtYnd4ellXWmxYM04xWTJObGMzTUpjMkZtWlY5M1lYSnVCM04xWTJObGMzTU9jM1ZqWTJWemN5MWphWEpqYkdVUmMzVmpZMlZ6Y3kxdWJ5MWphWEpqYkdVSGQyRnBkR2x1Wnc1M1lXbDBhVzVuTFdOcGNtTnNaUVIzWVhKdUMybHVabTh0WTJseVkyeGxCbU5oYm1ObGJBWnpaV0Z5WTJnRlkyeGxZWElFWW1GamF3WmtaV3hsZEdVQUFBQUEnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XHJcbn1cclxuXHJcblxyXG5bY2xhc3NePVwid2V1aS1pY29uLVwiXSwgW2NsYXNzKj1cIiB3ZXVpLWljb24tXCJdIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgXCJ3ZXVpXCI7XHJcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICB0ZXh0LXJlbmRlcmluZzogYXV0bztcclxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgICAgLy8g5bmz5ruR5Y2H57qnXHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuMmVtO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogLjJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLndldWktaWNvbi1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDFcIiB9IC8qICfuoIAnICovXHJcbi53ZXVpLWljb24tZG93bmxvYWQ6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDJcIiB9IC8qICfuoIAnICovXHJcbi53ZXVpLWljb24taW5mbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUEwM1wiIH0gLyogJ+6ggCcgKi9cclxuLndldWktaWNvbi1zYWZlX3N1Y2Nlc3M6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDRcIiB9IC8qICfuoIAnICovXHJcbi53ZXVpLWljb24tc2FmZV93YXJuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTA1XCIgfSAvKiAn7qCAJyAqL1xyXG4ud2V1aS1pY29uLXN1Y2Nlc3M6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDZcIiB9IC8qICfuoIAnICovXHJcbi53ZXVpLWljb24tc3VjY2Vzcy1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDdcIiB9IC8qICfuoIAnICovXHJcbi53ZXVpLWljb24tc3VjY2Vzcy1uby1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDhcIiB9IC8qICfuoIAnICovXHJcbi53ZXVpLWljb24td2FpdGluZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUEwOVwiIH0gLyogJ+6ggCcgKi9cclxuLndldWktaWNvbi13YWl0aW5nLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUEwQVwiIH0gLyogJ+6ggCcgKi9cclxuLndldWktaWNvbi13YXJuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTBCXCIgfSAvKiAn7qCAJyAqL1xyXG4ud2V1aS1pY29uLWluZm8tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTBDXCIgfSAvKiAn7qCAJyAqL1xyXG4ud2V1aS1pY29uLWNhbmNlbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUEwRFwiIH0gLyogJ+6ggCcgKi9cclxuLndldWktaWNvbi1zZWFyY2g6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMEVcIiB9IC8qICfuoIAnICovXHJcbi53ZXVpLWljb24tY2xlYXI6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMEZcIiB9IC8qICfuoIAnICovXHJcbi53ZXVpLWljb24tYmFjazpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUExMFwiIH0gLyogJ+6ggCcgKi9cclxuLndldWktaWNvbi1kZWxldGU6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMTFcIiB9IC8qICfuoIAnICovIiwiQGltcG9ydCBcIndldWktZm9udFwiO1xyXG5cclxuW2NsYXNzXj1cIndldWktaWNvbl9cIl06YmVmb3JlLCBbY2xhc3MqPVwiIHdldWktaWNvbl9cIl06YmVmb3JlIHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG4ud2V1aS1pY29uLXN1Y2Nlc3Mge1xyXG4gICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgY29sb3I6ICMwOUJCMDc7XHJcbn1cclxuLndldWktaWNvbi13YWl0aW5nIHtcclxuICAgIGZvbnQtc2l6ZTogMjNweDtcclxuICAgIGNvbG9yOiAjMTBBRUZGO1xyXG59XHJcbi53ZXVpLWljb24td2FybiB7XHJcbiAgICBmb250LXNpemU6IDIzcHg7XHJcbiAgICBjb2xvcjogI0Y0MzUzMDtcclxufVxyXG4ud2V1aS1pY29uLWluZm8ge1xyXG4gICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgY29sb3I6ICMxMEFFRkY7XHJcbn1cclxuXHJcbi53ZXVpLWljb24tc3VjY2Vzcy1jaXJjbGUge1xyXG4gICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgY29sb3I6ICMwOUJCMDc7XHJcbn1cclxuLndldWktaWNvbi1zdWNjZXNzLW5vLWNpcmNsZSB7XHJcbiAgICBmb250LXNpemU6IDIzcHg7XHJcbiAgICBjb2xvcjogIzA5QkIwNztcclxufVxyXG4ud2V1aS1pY29uLXdhaXRpbmctY2lyY2xlIHtcclxuICAgIGZvbnQtc2l6ZTogMjNweDtcclxuICAgIGNvbG9yOiAjMTBBRUZGO1xyXG59XHJcbi53ZXVpLWljb24tY2lyY2xlIHtcclxuICAgIGZvbnQtc2l6ZTogMjNweDtcclxuICAgIGNvbG9yOiAjQzlDOUM5O1xyXG59XHJcbi53ZXVpLWljb24tZG93bmxvYWQge1xyXG4gICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgY29sb3I6ICMwOUJCMDc7XHJcbn1cclxuXHJcbi53ZXVpLWljb24taW5mby1jaXJjbGUge1xyXG4gICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgY29sb3I6ICMwOUJCMDc7XHJcbn1cclxuXHJcbi53ZXVpLWljb24tc2FmZS1zdWNjZXNzIHtcclxuICAgIGNvbG9yOiAjMDlCQjA3O1xyXG59XHJcbi53ZXVpLWljb24tc2FmZS13YXJuIHtcclxuICAgIGNvbG9yOiAjRkZCRTAwO1xyXG59XHJcblxyXG4ud2V1aS1pY29uLWNhbmNlbCB7XHJcbiAgICBjb2xvcjogI0Y0MzUzMDtcclxuICAgIGZvbnQtc2l6ZTogMjJweDtcclxufVxyXG5cclxuLndldWktaWNvbi1zZWFyY2gge1xyXG4gICAgY29sb3I6ICNCMkIyQjI7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbn1cclxuXHJcbi53ZXVpLWljb24tY2xlYXIge1xyXG4gICAgY29sb3I6ICNCMkIyQjI7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbn1cclxuXHJcbi53ZXVpLWljb24tZGVsZXRlIHtcclxuICAgICYud2V1aS1pY29uX2dhbGxlcnktZGVsZXRle1xyXG4gICAgICAgIGNvbG9yOiNGRkZGRkY7XHJcbiAgICAgICAgZm9udC1zaXplOjIycHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLWljb25fbXNnIHtcclxuICAgIGZvbnQtc2l6ZTogOTNweDtcclxuICAgICYud2V1aS1pY29uLXdhcm4ge1xyXG4gICAgICAgIGNvbG9yOiAjRjc2MjYwO1xyXG4gICAgfVxyXG59XHJcbi53ZXVpLWljb25fbXNnLXByaW1hcnkge1xyXG4gICAgZm9udC1zaXplOiA5M3B4O1xyXG4gICAgJi53ZXVpLWljb24td2FybiB7XHJcbiAgICAgICAgY29sb3I6ICNDOUM5Qzk7XHJcbiAgICB9XHJcbn0iLCJAaW1wb3J0IFwiLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktYnRuIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDE0cHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNHB4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGZvbnQtc2l6ZTogQHdldWlCdG5Gb250U2l6ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGNvbG9yOiBAd2V1aUJ0bkZvbnRDb2xvcjtcclxuICAgIGxpbmUtaGVpZ2h0OiB1bml0KEB3ZXVpQnRuSGVpZ2h0L0B3ZXVpQnRuRm9udFNpemUpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogQHdldWlCdG5Cb3JkZXJSYWRpdXM7XHJcbiAgICAuc2V0VGFwQ29sb3IoKTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIiBcIjtcclxuICAgICAgICB3aWR0aDogMjAwJTtcclxuICAgICAgICBoZWlnaHQ6IDIwMCU7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgLjIpO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjUpO1xyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IEB3ZXVpQnRuQm9yZGVyUmFkaXVzKjI7XHJcbiAgICB9XHJcbn1cclxuLndldWktYnRuX2lubGluZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn0iLCJAaW1wb3J0IFwiLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktYnRuX2RlZmF1bHQge1xyXG4gICAgY29sb3I6IEB3ZXVpQnRuRGVmYXVsdEZvbnRDb2xvcjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IEB3ZXVpQnRuRGVmYXVsdEJnO1xyXG4gICAgJjpub3QoLndldWktYnRuX2Rpc2FibGVkKTp2aXNpdGVkIHtcclxuICAgICAgICBjb2xvcjogQHdldWlCdG5EZWZhdWx0Rm9udENvbG9yO1xyXG4gICAgfVxyXG4gICAgJjpub3QoLndldWktYnRuX2Rpc2FibGVkKTphY3RpdmUge1xyXG4gICAgICAgIGNvbG9yOiBAd2V1aUJ0bkRlZmF1bHRBY3RpdmVGb250Q29sb3I7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHdldWlCdG5EZWZhdWx0QWN0aXZlQmc7XHJcbiAgICB9XHJcbn0iLCJAaW1wb3J0IFwiLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktYnRuX3ByaW1hcnkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHdldWlCdG5QcmltYXJ5Qmc7XHJcbiAgICAmOm5vdCgud2V1aS1idG5fZGlzYWJsZWQpOnZpc2l0ZWQge1xyXG4gICAgICAgIGNvbG9yOiBAd2V1aUJ0bkZvbnRDb2xvcjtcclxuICAgIH1cclxuICAgICY6bm90KC53ZXVpLWJ0bl9kaXNhYmxlZCk6YWN0aXZlIHtcclxuICAgICAgICBjb2xvcjogQHdldWlCdG5BY3RpdmVGb250Q29sb3I7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHdldWlCdG5QcmltYXJ5QWN0aXZlQmc7XHJcbiAgICB9XHJcbn1cclxuIiwiQGltcG9ydCBcIi4uLy4uL2Jhc2UvZm5cIjtcclxuXHJcbi53ZXVpLWJ0bl93YXJuIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IEB3ZXVpQnRuV2FybkJnO1xyXG4gICAgJjpub3QoLndldWktYnRuX2Rpc2FibGVkKTp2aXNpdGVkIHtcclxuICAgICAgICBjb2xvcjogQHdldWlCdG5Gb250Q29sb3I7XHJcbiAgICB9XHJcbiAgICAmOm5vdCgud2V1aS1idG5fZGlzYWJsZWQpOmFjdGl2ZSB7XHJcbiAgICAgICAgY29sb3I6IEB3ZXVpQnRuQWN0aXZlRm9udENvbG9yO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEB3ZXVpQnRuV2FybkFjdGl2ZUJnO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1idG5fZGlzYWJsZWQge1xyXG4gICAgY29sb3I6IEB3ZXVpQnRuRGlzYWJsZWRGb250Q29sb3I7XHJcbiAgICAmLndldWktYnRuX2RlZmF1bHQge1xyXG4gICAgICAgIGNvbG9yOiBAd2V1aUJ0bkRlZmF1bHREaXNhYmxlZEZvbnRDb2xvcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2V1aUJ0bkRlZmF1bHREaXNhYmxlZEJnO1xyXG4gICAgfVxyXG4gICAgJi53ZXVpLWJ0bl9wcmltYXJ5IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2V1aUJ0blByaW1hcnlEaXNhYmxlZEJnO1xyXG4gICAgfVxyXG4gICAgJi53ZXVpLWJ0bl93YXJuIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2V1aUJ0bndhcm5EaXNhYmxlZEJnO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1idG5fcGxhaW4tcHJpbWFyeSB7XHJcbiAgICBjb2xvcjogQHdldWlCdG5QbGFpblByaW1hcnlDb2xvcjtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIEB3ZXVpQnRuUGxhaW5QcmltYXJ5Qm9yZGVyQ29sb3I7XHJcbiAgICAmOm5vdCgud2V1aS1idG5fcGxhaW4tZGlzYWJsZWQpOmFjdGl2ZSB7XHJcbiAgICAgICAgY29sb3I6QHdldWlCdG5QbGFpblByaW1hcnlBY3RpdmVDb2xvcjtcclxuICAgICAgICBib3JkZXItY29sb3I6IEB3ZXVpQnRuUGxhaW5QcmltYXJ5QWN0aXZlQm9yZGVyQ29sb3I7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLWJ0bl9wbGFpbi1kZWZhdWx0IHtcclxuICAgIGNvbG9yOiBAd2V1aUJ0blBsYWluRGVmYXVsdENvbG9yO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgQHdldWlCdG5QbGFpbkRlZmF1bHRCb3JkZXJDb2xvcjtcclxuICAgICY6bm90KC53ZXVpLWJ0bl9wbGFpbi1kaXNhYmxlZCk6YWN0aXZlIHtcclxuICAgICAgICBjb2xvcjpAd2V1aUJ0blBsYWluRGVmYXVsdEFjdGl2ZUNvbG9yO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogQHdldWlCdG5QbGFpbkRlZmF1bHRBY3RpdmVCb3JkZXJDb2xvcjtcclxuICAgIH1cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcclxuICAgIH1cclxufVxyXG4ud2V1aS1idG5fcGxhaW4tZGlzYWJsZWR7XHJcbiAgICBjb2xvcjpyZ2JhKDAsMCwwLC4yKTtcclxuICAgIGJvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4yKTtcclxufSIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcbkBpbXBvcnQgXCJ3ZXVpLWJ0bl9nbG9iYWxcIjtcclxuQGltcG9ydCBcIndldWktYnRuX2RlZmF1bHRcIjtcclxuQGltcG9ydCBcIndldWktYnRuX3ByaW1hcnlcIjtcclxuQGltcG9ydCBcIndldWktYnRuX3dhcm5cIjtcclxuQGltcG9ydCBcIndldWktYnRuX2Rpc2FibGVkXCI7XHJcbkBpbXBvcnQgXCJ3ZXVpLWJ0bl9wbGFpblwiO1xyXG5cclxuYnV0dG9uLCBpbnB1dCB7XHJcbiAgICAmLndldWktYnRuIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDA7XHJcbiAgICAgICAgb3V0bGluZTogMDtcclxuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi53ZXVpLWJ0bl9pbmxpbmUsJi53ZXVpLWJ0bl9taW5pIHtcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgIH1cclxuICAgICYud2V1aS1idG5fcGxhaW4tcHJpbWFyeSwmLndldWktYnRuX3BsYWluLWRlZmF1bHR7XHJcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLWJ0bl9taW5pIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmc6IDAgMS4zMmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IEB3ZXVpQnRuTWluaUhlaWdodDtcclxuICAgIGZvbnQtc2l6ZTogQHdldWlCdG5NaW5pRm9udFNpemU7XHJcbn1cclxuXHJcblxyXG4vKmdhcCBiZXR3ZWVuIGJ0biovXHJcbi53ZXVpLWJ0biArIC53ZXVpLWJ0biB7XHJcbiAgICBtYXJnaW4tdG9wOiBAd2V1aUJ0bkRlZmF1bHRHYXA7XHJcbn1cclxuXHJcbi53ZXVpLWJ0bi53ZXVpLWJ0bl9pbmxpbmUgKyAud2V1aS1idG4ud2V1aS1idG5faW5saW5lIHtcclxuICAgIG1hcmdpbi10b3A6IGF1dG87XHJcbiAgICBtYXJnaW4tbGVmdDogQHdldWlCdG5EZWZhdWx0R2FwO1xyXG59XHJcblxyXG4ud2V1aS1idG4tYXJlYSB7XHJcbiAgICBtYXJnaW46IEB3ZXVpQ2VsbHNNYXJnaW5Ub3AgQHdldWlCdG5EZWZhdWx0R2FwIC4zZW07IFxyXG59XHJcbi53ZXVpLWJ0bi1hcmVhX2lubGluZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgLndldWktYnRuIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogQHdldWlCdG5EZWZhdWx0R2FwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuIiwiQGltcG9ydCBcIi4uLy4uL2Jhc2UvZm5cIjtcclxuXHJcbi53ZXVpLWNlbGxzIHtcclxuICAgIG1hcmdpbi10b3A6IEB3ZXVpQ2VsbHNNYXJnaW5Ub3A7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2V1aUNlbGxCZztcclxuICAgIGxpbmUtaGVpZ2h0OiBAd2V1aUNlbGxMaW5lSGVpZ2h0O1xyXG4gICAgZm9udC1zaXplOiBAd2V1aUNlbGxGb250U2l6ZTsgLy9jZWxs5Lit6Ze05pyJ5pWI6auY5bqmMjNweO+8jOi3n+WuouaIt+err+m7mOiupOWbvuagh+WwuuWvuOS4gOiHtFxyXG5cclxuICAgIG92ZXJmbG93OiBoaWRkZW47IC8v5Zug5Li65q+P5LiqY2VsbOeahGJvcmRlcuS9v+eUqGJlZm9yZeWFg+e0oGxlZnTmkJ7nmoTvvIxpZeS4i+S8quWFg+e0oOeahGNvbnRhaW5pbmcgYmxvY2vkvLDorqHot5/moIflh4bkuI3lkIzvvIzlnKhjZWxs5LiK55Sob2jkuI3nlJ/mlYhcclxuXHJcbiAgICAvLyBvbmVweFxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAgIC5zZXRUb3BMaW5lKEB3ZXVpQ2VsbEJvcmRlckNvbG9yKTtcclxuICAgIH1cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIC5zZXRCb3R0b21MaW5lKEB3ZXVpQ2VsbEJvcmRlckNvbG9yKTtcclxuICAgIH1cclxufVxyXG5cclxuLndldWktY2VsbHNfX3RpdGxlIHtcclxuICAgIG1hcmdpbi10b3A6IC43N2VtOyAvLyAxNXB4IC0g6KGM6auYXHJcbiAgICBtYXJnaW4tYm90dG9tOiAuM2VtOyAvLyA4cHggLSDooYzpq5hcclxuICAgIHBhZGRpbmctbGVmdDogQHdldWlDZWxsR2FwSDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IEB3ZXVpQ2VsbEdhcEg7XHJcbiAgICBjb2xvcjogQHdldWlUZXh0Q29sb3JHcmF5O1xyXG4gICAgZm9udC1zaXplOiBAd2V1aUNlbGxUaXBzRm9udFNpemU7XHJcblxyXG4gICAgJiArIC53ZXVpLWNlbGxzIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4ud2V1aS1jZWxsc19fdGlwcyB7XHJcbiAgICBtYXJnaW4tdG9wOiAuM2VtOyAvLyA4cHggLSDooYzpq5hcclxuICAgIGNvbG9yOiBAd2V1aVRleHRDb2xvckdyYXk7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IEB3ZXVpQ2VsbEdhcEg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiBAd2V1aUNlbGxHYXBIO1xyXG4gICAgZm9udC1zaXplOiBAd2V1aUNlbGxUaXBzRm9udFNpemU7XHJcbn1cclxuXHJcbi53ZXVpLWNlbGwge1xyXG4gICAgcGFkZGluZzogQHdldWlDZWxsR2FwViBAd2V1aUNlbGxHYXBIO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvL+i/meS4quaYr+S4uuS6huWFvOWuuWNlbGxz5a655Zmob25lcHjmlrnmoYjooqtiZWZvcmXmjKHkvY/ogIzlgZrnmoRcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAgIC5zZXRUb3BMaW5lKEB3ZXVpQ2VsbEJvcmRlckNvbG9yKTtcclxuICAgICAgICBsZWZ0OiBAd2V1aUNlbGxHYXBIO1xyXG4gICAgfVxyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ud2V1aS1jZWxsX3ByaW1hcnl7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG4ud2V1aS1jZWxsX19iZHtcclxuICAgIGZsZXg6IDE7XHJcbn1cclxuLndldWktY2VsbF9fZnQge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBjb2xvcjogQHdldWlUZXh0Q29sb3JHcmF5O1xyXG59IiwiLnNldFRvcExpbmUoQGM6ICNDN0M3QzcpIHtcclxuICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgQGM7XHJcbiAgICBjb2xvcjogQGM7XHJcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwLjUpO1xyXG59XHJcblxyXG4uc2V0Qm90dG9tTGluZShAYzogI0M3QzdDNykge1xyXG4gICAgY29udGVudDogXCIgXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAYztcclxuICAgIGNvbG9yOiBAYztcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGVZKDAuNSk7XHJcbn1cclxuXHJcbi5zZXRMZWZ0TGluZShAYzogI0M3QzdDNykge1xyXG4gICAgY29udGVudDogXCIgXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgd2lkdGg6IDFweDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgQGM7XHJcbiAgICBjb2xvcjogQGM7XHJcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjUpO1xyXG59XHJcblxyXG4uc2V0UmlnaHRMaW5lKEBjOiAjQzdDN0M3KSB7XHJcbiAgICBjb250ZW50OiBcIiBcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgd2lkdGg6IDFweDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIEBjO1xyXG4gICAgY29sb3I6IEBjO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC41KTtcclxufSIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1jZWxsX2FjY2VzcyB7XHJcbiAgICAuc2V0VGFwQ29sb3IoKTtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFQ0VDRUM7XHJcbiAgICB9XHJcbiAgICAud2V1aS1jZWxsX19mdCB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTNweDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgICAgICAgICAuc2V0QXJyb3cocmlnaHQsIDZweCwgI0M4QzhDRCwgMnB4KTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTRweDtcclxuICAgICAgICAgICAgcmlnaHQ6IDJweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLndldWktY2VsbF9saW5re1xyXG4gICAgY29sb3I6IEB3ZXVpTGlua0NvbG9yRGVmYXVsdDtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuXHJcbiAgICAvLyDnlLHkuo53ZXVpLWNlbGw6Zmlyc3QtY2hpbGTnmoQ6YmVmb3Jl5Li66ZqQ6JeP77yM5omA5Lul6L+Z6YeM6KaB6YeN5paw5pi+56S65Ye65p2lXHJcbiAgICAmOmZpcnN0LWNoaWxke1xyXG4gICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLl9zZXRBcnJvdyhAYXJyb3dzaXplLCBAYm9yZGVyQ29sb3IsIEBib3JkZXJXaWR0aCl7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBoZWlnaHQ6IEBhcnJvd3NpemU7XHJcbiAgICB3aWR0aDogQGFycm93c2l6ZTtcclxuICAgIGJvcmRlci13aWR0aDogQGJvcmRlcldpZHRoIEBib3JkZXJXaWR0aCAwIDA7XHJcbiAgICBib3JkZXItY29sb3I6IEBib3JkZXJDb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbn1cclxuXHJcbi5zZXRBcnJvdyhAZGlyZWN0aW9uLCBAYXJyb3dzaXplLCBAYm9yZGVyQ29sb3IsIEBib3JkZXJXaWR0aCkgd2hlbiAoQGRpcmVjdGlvbiA9IHRvcCkge1xyXG4gICAgLl9zZXRBcnJvdyhAYXJyb3dzaXplLCBAYm9yZGVyQ29sb3IsIEBib3JkZXJXaWR0aCk7XHJcbiAgICB0cmFuc2Zvcm06IG1hdHJpeCgwLjcxLC0wLjcxLDAuNzEsMC43MSwwLDApOyAvLyByb3RhdGUoLTQ1ZGVnKVxyXG59XHJcblxyXG4uc2V0QXJyb3coQGRpcmVjdGlvbiwgQGFycm93c2l6ZSwgQGJvcmRlckNvbG9yLEBib3JkZXJXaWR0aCkgd2hlbiAoQGRpcmVjdGlvbiA9IHJpZ2h0KSB7XHJcbiAgICAuX3NldEFycm93KEBhcnJvd3NpemUsIEBib3JkZXJDb2xvciwgQGJvcmRlcldpZHRoKTtcclxuICAgIHRyYW5zZm9ybTogbWF0cml4KDAuNzEsMC43MSwtMC43MSwwLjcxLDAsMCk7IC8vIHJvdGF0ZSg0NWRlZyk7XHJcblxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiAtMnB4O1xyXG59XHJcblxyXG4uc2V0QXJyb3coQGRpcmVjdGlvbiwgQGFycm93c2l6ZSwgQGJvcmRlckNvbG9yLEBib3JkZXJXaWR0aCkgd2hlbiAoQGRpcmVjdGlvbiA9IGRvd24pIHtcclxuICAgIC5fc2V0QXJyb3coQGFycm93c2l6ZSwgQGJvcmRlckNvbG9yLCBAYm9yZGVyV2lkdGgpO1xyXG4gICAgdHJhbnNmb3JtOiBtYXRyaXgoLTAuNzEsMC43MSwtMC43MSwtMC43MSwwLDApOyAvLyByb3RhdGUoMTM1ZGVnKTtcclxuXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IC0zcHg7XHJcbn1cclxuXHJcbi5zZXRBcnJvdyhAZGlyZWN0aW9uLCBAYXJyb3dzaXplLCBAYm9yZGVyQ29sb3IsQGJvcmRlcldpZHRoKSB3aGVuIChAZGlyZWN0aW9uID0gbGVmdCkge1xyXG4gICAgLl9zZXRBcnJvdyhAYXJyb3dzaXplLCBAYm9yZGVyQ29sb3IsIEBib3JkZXJXaWR0aCk7XHJcbiAgICB0cmFuc2Zvcm06IG1hdHJpeCgtMC43MSwtMC43MSwwLjcxLC0wLjcxLDAsMCk7IC8vIHJvdGF0ZSgtMTM1ZGVnKTtcclxuXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IC0ycHg7XHJcbn0iLCJAaW1wb3J0IFwiLi4vLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktY2hlY2tfX2xhYmVsIHtcclxuICAgIC5zZXRUYXBDb2xvcigpO1xyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFQ0VDRUM7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLWNoZWNre1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogLTk5OTllbTtcclxufVxyXG4iLCJAaW1wb3J0IFwiLi4vLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLy8gbWV0aG9kMiBhY2Nlc3NiaWxpdHlcclxuLndldWktY2VsbHNfcmFkaW97XHJcbiAgICAud2V1aS1jZWxsX19mdCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBAd2V1aUNlbGxJbm5lckdhcEg7XHJcbiAgICB9XHJcbn1cclxuLndldWktY2hlY2sge1xyXG4gICAgLy8gcmFkaW9cclxuICAgIC53ZXVpLWNlbGxzX3JhZGlvICYge1xyXG4gICAgICAgICY6Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgICYgKyAud2V1aS1pY29uLWNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXEVBMDgnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDlCQjA3O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIkBpbXBvcnQgXCIuLi8uLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1jZWxsc19jaGVja2JveCB7XHJcbiAgICAud2V1aS1jZWxsX19oZCB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogQHdldWlDZWxsSW5uZXJHYXBIO1xyXG4gICAgfVxyXG4gICAgLndldWktaWNvbi1jaGVja2VkIHtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXEVBMDEnO1xyXG4gICAgICAgICAgICBjb2xvcjogI0M5QzlDOTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIG1ldGhvZDIgYWNjZXNzYmlsaXR5XHJcbi53ZXVpLWNoZWNrIHtcclxuICAgIC8vIGNoZWNrYm94XHJcbiAgICAud2V1aS1jZWxsc19jaGVja2JveCAmIHtcclxuICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAmICsgLndldWktaWNvbi1jaGVja2VkIHtcclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxFQTA2JztcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzA5QkIwNztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIkBpbXBvcnQgXCIuLi8uLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1sYWJlbHtcclxuICBkaXNwbGF5OmJsb2NrO1xyXG4gIHdpZHRoOkB3ZXVpQ2VsbExhYmVsV2lkdGg7XHJcbiAgLnRleHRfd3JhcCgpO1xyXG59XHJcbi53ZXVpLWlucHV0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgb3V0bGluZTogMDtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICBoZWlnaHQ6IHVuaXQoQHdldWlDZWxsTGluZUhlaWdodCwgZW0pO1xyXG4gICAgbGluZS1oZWlnaHQ6IEB3ZXVpQ2VsbExpbmVIZWlnaHQ7XHJcblxyXG4gICAgLy8gaGlkZXMgdGhlIHNwaW4tYnV0dG9uXHJcbiAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9ue1xyXG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbn1cclxuLndldWktdGV4dGFyZWEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICByZXNpemU6IG5vbmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgIG91dGxpbmU6IDA7XHJcbn1cclxuXHJcbi53ZXVpLXRleHRhcmVhLWNvdW50ZXJ7XHJcbiAgICBjb2xvcjogQHdldWlUZXh0Q29sb3JUaXBzO1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAud2V1aS1jZWxsX3dhcm4gJntcclxuICAgICAgICBjb2xvcjogQHdldWlUZXh0Q29sb3JXYXJuO1xyXG4gICAgfVxyXG59XHJcblxyXG4ud2V1aS10b3B0aXBzIHtcclxuICAgIGRpc3BsYXk6bm9uZTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIHBhZGRpbmc6NXB4O1xyXG4gICAgZm9udC1zaXplOjE0cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogI0ZGRjtcclxuICAgIHotaW5kZXg6IDUwMDA7XHJcbiAgICAudGV4dF93cmFwKCk7XHJcbn1cclxuLndldWktdG9wdGlwc193YXJuIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IEB3ZXVpQ29sb3JXYXJuO1xyXG59XHJcbi53ZXVpLWNlbGxzX2Zvcm0ge1xyXG4gICAgLndldWktY2VsbF9fZnR7XHJcbiAgICAgICAgZm9udC1zaXplOjA7XHJcbiAgICB9XHJcbiAgICAud2V1aS1pY29uLXdhcm57XHJcbiAgICAgICAgZGlzcGxheTpub25lO1xyXG4gICAgfVxyXG4gICAgaW5wdXQsIHRleHRhcmVhLCBsYWJlbFtmb3Jde1xyXG4gICAgICAgIC5zZXRUYXBDb2xvcigpO1xyXG4gICAgfVxyXG59XHJcbi53ZXVpLWNlbGxfd2FybntcclxuICAgIGNvbG9yOkB3ZXVpVGV4dENvbG9yV2FybjtcclxuICAgIC53ZXVpLWljb24td2FybntkaXNwbGF5OmlubGluZS1ibG9jazt9XHJcbn1cclxuIiwiLmVsbGlwc2lzKEB3OmF1dG8pIHtcclxuICAgIHdpZHRoOiBAdztcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB3b3JkLXdyYXA6IG5vcm1hbDtcclxufVxyXG5cclxuLmVsbGlwc2lzTG4oQGxpbmUpIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcclxuICAgIC13ZWJraXQtbGluZS1jbGFtcDogQGxpbmU7XHJcbn1cclxuLnRleHRfd3JhcCgpIHtcclxuICAgIHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG4gICAgd29yZC1icmVhazpicmVhay1hbGw7XHJcbn1cclxuLmh5cGhlbnMoKSB7XHJcbiAgICB3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuICAgIC13ZWJraXQtaHlwaGVuczphdXRvO1xyXG4gICAgaHlwaGVuczphdXRvO1xyXG59IiwiQGltcG9ydCBcIi4uLy4uLy4uL2Jhc2UvZm5cIjtcclxuXHJcbi53ZXVpLWZvcm0tcHJldmlld3tcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcbiAgICAmOmJlZm9yZXtcclxuICAgICAgICAuc2V0VG9wTGluZShAd2V1aUNlbGxCb3JkZXJDb2xvcik7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVye1xyXG4gICAgICAgIC5zZXRCb3R0b21MaW5lKEB3ZXVpQ2VsbEJvcmRlckNvbG9yKTtcclxuICAgIH1cclxufVxyXG4ud2V1aS1mb3JtLXByZXZpZXdfX2hke1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgcGFkZGluZzogQHdldWlDZWxsR2FwViBAd2V1aUNlbGxHYXBIO1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBsaW5lLWhlaWdodDogMi41ZW07XHJcbiAgICAmOmFmdGVye1xyXG4gICAgICAgIC5zZXRCb3R0b21MaW5lKEB3ZXVpQ2VsbEJvcmRlckNvbG9yKTtcclxuICAgICAgICBsZWZ0OiBAd2V1aUNlbGxHYXBIO1xyXG4gICAgfVxyXG4gICAgLndldWktZm9ybS1wcmV2aWV3X192YWx1ZXtcclxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjZlbTtcclxuICAgIH1cclxufVxyXG4ud2V1aS1mb3JtLXByZXZpZXdfX2Jke1xyXG4gICAgcGFkZGluZzogQHdldWlDZWxsR2FwViBAd2V1aUNlbGxHYXBIO1xyXG4gICAgZm9udC1zaXplOiAuOWVtO1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBjb2xvcjogQHdldWlUZXh0Q29sb3JHcmF5O1xyXG4gICAgbGluZS1oZWlnaHQ6IDI7XHJcbn1cclxuLndldWktZm9ybS1wcmV2aWV3X19mdHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIC5zZXRUb3BMaW5lKEB3ZXVpRGlhbG9nTGluZUNvbG9yKTtcclxuICAgIH1cclxufVxyXG4ud2V1aS1mb3JtLXByZXZpZXdfX2l0ZW17XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcbi53ZXVpLWZvcm0tcHJldmlld19fbGFiZWx7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIG1hcmdpbi1yaWdodDogMWVtO1xyXG4gICAgbWluLXdpZHRoOiA0ZW07XHJcbiAgICBjb2xvcjogQHdldWlUZXh0Q29sb3JHcmF5O1xyXG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcclxuICAgIHRleHQtYWxpZ24tbGFzdDoganVzdGlmeTtcclxufVxyXG4ud2V1aS1mb3JtLXByZXZpZXdfX3ZhbHVle1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgd29yZC1icmVhazpub3JtYWw7XHJcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbn1cclxuLndldWktZm9ybS1wcmV2aWV3X19idG4ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgY29sb3I6IEB3ZXVpRGlhbG9nTGlua0NvbG9yO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgLnNldFRhcENvbG9yKCk7XHJcbiAgICBidXR0b24me1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICBvdXRsaW5lOiAwO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICAgIH1cclxuICAgICY6YWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2V1aURpYWxvZ0xpbmtBY3RpdmVCYztcclxuICAgIH1cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIC5zZXRMZWZ0TGluZShAd2V1aURpYWxvZ0xpbmVDb2xvcik7XHJcbiAgICB9XHJcbiAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLndldWktZm9ybS1wcmV2aWV3X19idG5fZGVmYXVsdCB7XHJcbiAgICBjb2xvcjogQHdldWlUZXh0Q29sb3JHcmF5O1xyXG59XHJcbi53ZXVpLWZvcm0tcHJldmlld19fYnRuX3ByaW1hcnkge1xyXG4gICAgY29sb3I6ICMwQkIyMEM7XHJcbn0iLCJAaW1wb3J0IFwiLi4vLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktY2VsbF9zZWxlY3Qge1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIC53ZXVpLXNlbGVjdCB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMzBweDtcclxuICAgIH1cclxuICAgIC53ZXVpLWNlbGxfX2Jke1xyXG4gICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgICAgICAgICAuc2V0QXJyb3cocmlnaHQsIDZweCwgI0M4QzhDRCwgMnB4KTtcclxuXHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgIHJpZ2h0OiBAd2V1aUNlbGxHYXBIO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtNHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLndldWktc2VsZWN0IHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIG91dGxpbmU6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgaGVpZ2h0OiBAd2V1aUNlbGxIZWlnaHQ7XHJcbiAgICBsaW5lLWhlaWdodDogQHdldWlDZWxsSGVpZ2h0O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIHBhZGRpbmctbGVmdDogQHdldWlDZWxsR2FwSDtcclxufVxyXG5cclxuLndldWktY2VsbF9zZWxlY3QtYmVmb3JlIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6QHdldWlDZWxsR2FwSDtcclxuICAgIC53ZXVpLXNlbGVjdHtcclxuICAgICAgICB3aWR0aDpAd2V1aUNlbGxMYWJlbFdpZHRoO1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcbiAgICAud2V1aS1jZWxsX19oZCB7XHJcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIC5zZXRSaWdodExpbmUoQHdldWlDZWxsQm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgICAgIC5zZXRBcnJvdyhyaWdodCwgNnB4LCAjQzhDOENELCAycHgpO1xyXG5cclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgcmlnaHQ6IEB3ZXVpQ2VsbEdhcEg7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC00cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLndldWktY2VsbF9fYmQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDpAd2V1aUNlbGxHYXBIO1xyXG4gICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLWNlbGxfc2VsZWN0LWFmdGVyIHtcclxuICAgIHBhZGRpbmctbGVmdDpAd2V1aUNlbGxHYXBIO1xyXG4gICAgLndldWktc2VsZWN0IHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6MDtcclxuICAgIH1cclxufSIsIkBpbXBvcnQgXCIuLi8uLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1jZWxsX3Zjb2RlIHtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG59XHJcbi53ZXVpLXZjb2RlLWltZ3tcclxuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgICBoZWlnaHQ6IEB3ZXVpQ2VsbEhlaWdodDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi53ZXVpLXZjb2RlLWJ0biB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBoZWlnaHQ6IEB3ZXVpQ2VsbEhlaWdodDtcclxuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgICBwYWRkaW5nOiAwIDAuNmVtIDAgMC43ZW07XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIEB3ZXVpTGluZUNvbG9yTGlnaHQ7XHJcbiAgICBsaW5lLWhlaWdodDogQHdldWlDZWxsSGVpZ2h0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIGZvbnQtc2l6ZTogQHdldWlDZWxsRm9udFNpemU7XHJcbiAgICBjb2xvcjogQHdldWlEaWFsb2dMaW5rQ29sb3I7XHJcbiAgICBidXR0b24me1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIGJvcmRlci10b3A6IDA7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICAgICAgb3V0bGluZTogMDtcclxuICAgIH1cclxuICAgICY6YWN0aXZlIHtcclxuICAgICAgICBjb2xvcjogZGVzYXR1cmF0ZShAd2V1aURpYWxvZ0xpbmtDb2xvciwgMzAlKTtcclxuICAgIH1cclxufSIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG5Ad2V1aUdhbGxlcnlPcHJIZWlnaHQ6IDYwcHg7XHJcbi53ZXVpLWdhbGxlcnkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XHJcbiAgICB6LWluZGV4OiAxMDAwO1xyXG59XHJcbi53ZXVpLWdhbGxlcnlfX2ltZyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogQHdldWlHYWxsZXJ5T3BySGVpZ2h0O1xyXG4gICAgbGVmdDogMDtcclxuICAgIGJhY2tncm91bmQ6IGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG59XHJcbi53ZXVpLWdhbGxlcnlfX29wciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMEQwRDBEO1xyXG4gICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICBsaW5lLWhlaWdodDogQHdldWlHYWxsZXJ5T3BySGVpZ2h0O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi53ZXVpLWdhbGxlcnlfX2RlbCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufSIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1jZWxsX3N3aXRjaHtcclxuICAgIHBhZGRpbmctdG9wOiAoQHdldWlDZWxsSGVpZ2h0IC0gQHdldWlTd2l0Y2hIZWlnaHQpIC8gMjtcclxuICAgIHBhZGRpbmctYm90dG9tOiAoQHdldWlDZWxsSGVpZ2h0IC0gQHdldWlTd2l0Y2hIZWlnaHQpIC8gMjtcclxufVxyXG4ud2V1aS1zd2l0Y2h7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG59XHJcbi53ZXVpLXN3aXRjaCxcclxuLndldWktc3dpdGNoLWNwX19ib3h7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogNTJweDtcclxuICAgIGhlaWdodDogQHdldWlTd2l0Y2hIZWlnaHQ7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjREZERkRGO1xyXG4gICAgb3V0bGluZTogMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0RGREZERjtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjFzLCBib3JkZXIgLjFzO1xyXG5cclxuICAgICY6YmVmb3Jle1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgICBoZWlnaHQ6IEB3ZXVpU3dpdGNoSGVpZ2h0IC0gMjtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGREZERkQ7XHJcbiAgICAgICAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1cyBjdWJpYy1iZXppZXIoMC40NSwgMSwgMC40LCAxKTtcclxuICAgIH1cclxuICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHdpZHRoOiBAd2V1aVN3aXRjaEhlaWdodCAtIDI7XHJcbiAgICAgICAgaGVpZ2h0OiBAd2V1aVN3aXRjaEhlaWdodCAtIDI7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNCk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1cyBjdWJpYy1iZXppZXIoMC40LCAwLjQsIDAuMjUsIDEuMzUpO1xyXG4gICAgfVxyXG59XHJcbi53ZXVpLXN3aXRjaDpjaGVja2VkLFxyXG4ud2V1aS1zd2l0Y2gtY3BfX2lucHV0OmNoZWNrZWQgfiAud2V1aS1zd2l0Y2gtY3BfX2JveHtcclxuICAgIGJvcmRlci1jb2xvcjogIzA0QkUwMjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwNEJFMDI7XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcclxuICAgIH1cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcclxuICAgIH1cclxufVxyXG5cclxuLy8g5YW85a65SUUgRWRnZeeahOeJiOacrFxyXG4ud2V1aS1zd2l0Y2gtY3BfX2lucHV0e1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogLTk5OTlweDtcclxufVxyXG4ud2V1aS1zd2l0Y2gtY3BfX2JveHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59IiwiQGltcG9ydCBcIi4uLy4uL2Jhc2UvZm5cIjtcclxuXHJcbi53ZXVpLXVwbG9hZGVye31cclxuLndldWktdXBsb2FkZXJfX2hke1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBhZGRpbmctYm90dG9tOiBAd2V1aUNlbGxHYXBWO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG4ud2V1aS11cGxvYWRlcl9fdGl0bGV7XHJcbiAgICBmbGV4OiAxO1xyXG59XHJcbi53ZXVpLXVwbG9hZGVyX19pbmZve1xyXG4gICAgY29sb3I6IEB3ZXVpVGV4dENvbG9yVGlwcztcclxufVxyXG5cclxuLndldWktdXBsb2FkZXJfX2Jke1xyXG4gICAgbWFyZ2luLWJvdHRvbTogQHdldWlDZWxsR2FwSCAtIChAd2V1aUNlbGxHYXBWICsgQHdldWlVcGxvYWRlckZpbGVTcGFjaW5nKTtcclxuICAgIG1hcmdpbi1yaWdodDogLUB3ZXVpVXBsb2FkZXJGaWxlU3BhY2luZztcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuLndldWktdXBsb2FkZXJfX2ZpbGVze1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG4ud2V1aS11cGxvYWRlcl9fZmlsZXtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBAd2V1aVVwbG9hZGVyRmlsZVNwYWNpbmc7XHJcbiAgICBtYXJnaW4tYm90dG9tOiBAd2V1aVVwbG9hZGVyRmlsZVNwYWNpbmc7XHJcbiAgICB3aWR0aDogQHdldWlVcGxvYWRlclNpemU7XHJcbiAgICBoZWlnaHQ6IEB3ZXVpVXBsb2FkZXJTaXplO1xyXG4gICAgYmFja2dyb3VuZDogbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG59XHJcbi53ZXVpLXVwbG9hZGVyX19maWxlX3N0YXR1c3tcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICY6YmVmb3Jle1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7XHJcbiAgICB9XHJcbiAgICAud2V1aS11cGxvYWRlcl9fZmlsZS1jb250ZW50e1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG59XHJcbi53ZXVpLXVwbG9hZGVyX19maWxlLWNvbnRlbnR7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4gICAgLndldWktaWNvbi13YXJue1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxufVxyXG4ud2V1aS11cGxvYWRlcl9faW5wdXQtYm94e1xyXG4gICAgZmxvYXQ6bGVmdDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1hcmdpbi1yaWdodDogQHdldWlVcGxvYWRlckZpbGVTcGFjaW5nO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogQHdldWlVcGxvYWRlckZpbGVTcGFjaW5nO1xyXG4gICAgd2lkdGg6IEB3ZXVpVXBsb2FkZXJTaXplIC0gQHdldWlVcGxvYWRlckJvcmRlcldpZHRoICogMjtcclxuICAgIGhlaWdodDogQHdldWlVcGxvYWRlclNpemUgLSBAd2V1aVVwbG9hZGVyQm9yZGVyV2lkdGggKiAyO1xyXG4gICAgYm9yZGVyOiBAd2V1aVVwbG9hZGVyQm9yZGVyV2lkdGggc29saWQgQHdldWlVcGxvYWRlckJvcmRlckNvbG9yO1xyXG4gICAgJjpiZWZvcmUsICY6YWZ0ZXJ7XHJcbiAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2V1aVVwbG9hZGVyQm9yZGVyQ29sb3I7XHJcbiAgICB9XHJcbiAgICAmOmJlZm9yZXtcclxuICAgICAgICB3aWR0aDogQHdldWlVcGxvYWRlckJvcmRlcldpZHRoICsgMTtcclxuICAgICAgICBoZWlnaHQ6IEB3ZXVpVXBsb2FkZXJTaXplIC8gMjtcclxuICAgIH1cclxuICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgd2lkdGg6IEB3ZXVpVXBsb2FkZXJTaXplIC8gMjtcclxuICAgICAgICBoZWlnaHQ6IEB3ZXVpVXBsb2FkZXJCb3JkZXJXaWR0aCArIDE7XHJcbiAgICB9XHJcbiAgICAmOmFjdGl2ZXtcclxuICAgICAgICBib3JkZXItY29sb3I6IEB3ZXVpVXBsb2FkZXJBY3RpdmVCb3JkZXJDb2xvcjtcclxuICAgICAgICAmOmJlZm9yZSwgJjphZnRlcntcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHdldWlVcGxvYWRlckFjdGl2ZUJvcmRlckNvbG9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ud2V1aS11cGxvYWRlcl9faW5wdXR7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIC5zZXRUYXBDb2xvcigpO1xyXG59IiwiQGltcG9ydCBcIi4uLy4uL2Jhc2UvZm5cIjtcclxuQGltcG9ydCBcIi4uL3dldWktYnV0dG9uL3dldWktYnV0dG9uXCI7XHJcblxyXG4ud2V1aS1tc2cge1xyXG4gICAgcGFkZGluZy10b3A6IEB3ZXVpTXNnUGFkZGluZ1RvcDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4ud2V1aS1tc2dfX2ljb24tYXJlYSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiBAd2V1aU1zZ0ljb25HYXA7XHJcbn1cclxuLndldWktbXNnX190ZXh0LWFyZWEge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogQHdldWlNc2dUZXh0R2FwO1xyXG4gICAgcGFkZGluZzowIDIwcHg7XHJcbn1cclxuLndldWktbXNnX190ZXh0LWFyZWEgYXtcclxuICAgIGNvbG9yOkB3ZXVpTGlua0NvbG9yRGVmYXVsdDtcclxufVxyXG4ud2V1aS1tc2dfX3RpdGxlIHtcclxuICAgIG1hcmdpbi1ib3R0b206IEB3ZXVpTXNnVGl0bGVHYXA7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG59XHJcbi53ZXVpLW1zZ19fZGVzYyB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogQHdldWlUZXh0Q29sb3JHcmF5O1xyXG59XHJcbi53ZXVpLW1zZ19fb3ByLWFyZWEge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogQHdldWlNc2dPcHJHYXA7XHJcbn1cclxuLndldWktbXNnX19leHRyYS1hcmVhIHtcclxuICAgIG1hcmdpbi1ib3R0b206IEB3ZXVpTXNnRXh0cmFBcmVhR2FwO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6IEB3ZXVpVGV4dENvbG9yR3JheTtcclxuICAgIGF7Y29sb3I6IEB3ZXVpTGlua0NvbG9yRGVmYXVsdDt9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4taGVpZ2h0OiBAd2V1aU1zZ0V4dHJhQXJlYU9mTWluSGVpZ2h0KSB7XHJcbiAgICAud2V1aS1tc2dfX2V4dHJhLWFyZWEge1xyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbn0iLCJAaW1wb3J0IFwiLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktYXJ0aWNsZSB7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDE1cHg7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBzZWN0aW9uIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcclxuICAgIH1cclxuICAgIGgxIHtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6NDAwO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC45ZW07XHJcbiAgICB9XHJcbiAgICBoMiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OjQwMDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAuMzRlbTtcclxuICAgIH1cclxuICAgIGgzIHtcclxuICAgICAgICBmb250LXdlaWdodDo0MDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC4zNGVtO1xyXG4gICAgfVxyXG4gICAgKiB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gICAgfVxyXG4gICAgcCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgLjhlbTtcclxuICAgIH1cclxufSIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS10YWJiYXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IDUwMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y3RjdGQTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgLnNldFRvcExpbmUoI0MwQkZDNCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLXRhYmJhcl9faXRlbSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZsZXg6IDE7XHJcbiAgICBwYWRkaW5nOiA1cHggMCAwO1xyXG4gICAgZm9udC1zaXplOiAwO1xyXG4gICAgY29sb3I6IEB3ZXVpVGV4dENvbG9yR3JheTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIC5zZXRUYXBDb2xvcigpO1xyXG5cclxuICAgICYud2V1aS1iYXJfX2l0ZW1fb24ge1xyXG4gICAgICAgIC53ZXVpLXRhYmJhcl9faWNvbixcclxuICAgICAgICAud2V1aS10YWJiYXJfX2ljb24gPiBpLFxyXG4gICAgICAgIC53ZXVpLXRhYmJhcl9fbGFiZWwge1xyXG4gICAgICAgICAgICBjb2xvcjogIzA5QkIwNztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLXRhYmJhcl9faWNvbiB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMjdweDtcclxuICAgIGhlaWdodDogMjdweDtcclxuXHJcbiAgICBpJixcclxuICAgID4gaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgIGNvbG9yOiBAd2V1aVRleHRDb2xvckdyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLXRhYmJhcl9fbGFiZWwge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6IEB3ZXVpVGV4dENvbG9yR3JheTtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XHJcbn0iLCJAaW1wb3J0IFwiLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktbmF2YmFyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB6LWluZGV4OiA1MDA7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGQUZBRkE7XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgLnNldEJvdHRvbUxpbmUoI0NDQ0NDQyk7XHJcbiAgICB9XHJcblxyXG4gICAgJiArIC53ZXVpLXRhYl9fcGFuZWwge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1MHB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4ud2V1aS1uYXZiYXJfX2l0ZW0ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgcGFkZGluZzogMTNweCAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgLnNldFRhcENvbG9yKCk7XHJcblxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFREVERUQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi53ZXVpLWJhcl9faXRlbV9vbiB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0VBRUFFQTtcclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICAuc2V0UmlnaHRMaW5lKCNDQ0NDQ0MpO1xyXG4gICAgfVxyXG5cclxuICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiQGltcG9ydCBcIi4uLy4uL2Jhc2UvZm5cIjtcclxuQGltcG9ydCBcIndldWktdGFiYmFyXCI7XHJcbkBpbXBvcnQgXCJ3ZXVpLW5hdmJhclwiO1xyXG5cclxuLndldWktdGFiIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLndldWktdGFiX19wYW5lbCB7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDUwcHg7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcclxufVxyXG4ud2V1aS10YWJfX2NvbnRlbnR7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59IiwiQGltcG9ydCBcIi4uLy4uL2Jhc2UvZm5cIjtcclxuXHJcbi53ZXVpLXByb2dyZXNzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4ud2V1aS1wcm9ncmVzc19fYmFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IEB3ZXVpUHJvZ3Jlc3NCZztcclxuICAgIGhlaWdodDogQHdldWlQcm9ncmVzc0hlaWdodDtcclxuICAgIGZsZXg6IDE7XHJcbn1cclxuXHJcbi53ZXVpLXByb2dyZXNzX19pbm5lci1iYXIge1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2V1aVByb2dyZXNzQ29sb3I7XHJcbn1cclxuXHJcbi53ZXVpLXByb2dyZXNzX19vcHIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgIGZvbnQtc2l6ZTogMDtcclxufSIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG5cclxuLndldWktcGFuZWwge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgLnNldFRvcExpbmUoQHdldWlMaW5lQ29sb3JMaWdodCk7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICAuc2V0Qm90dG9tTGluZShAd2V1aUxpbmVDb2xvckxpZ2h0KTtcclxuICAgIH1cclxufVxyXG5cclxuLndldWktcGFuZWxfX2hkIHtcclxuICAgIHBhZGRpbmc6IDE0cHggMTVweCAxMHB4O1xyXG4gICAgY29sb3I6IEB3ZXVpVGV4dENvbG9yR3JheTtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIC5zZXRCb3R0b21MaW5lKEB3ZXVpTGluZUNvbG9yTGlnaHQpO1xyXG4gICAgICAgIGxlZnQ6IDE1cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1tZWRpYS1ib3gge1xyXG4gICAgcGFkZGluZzogMTVweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICAuc2V0VG9wTGluZShAd2V1aUxpbmVDb2xvckxpZ2h0KTtcclxuICAgICAgICBsZWZ0OiAxNXB4O1xyXG4gICAgfVxyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGEme1xyXG4gICAgICAgIGNvbG9yOiMwMDAwMDA7XHJcbiAgICAgICAgLnNldFRhcENvbG9yKCk7XHJcbiAgICAgICAgJjphY3RpdmV7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6I0VDRUNFQztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLndldWktbWVkaWEtYm94X190aXRsZSB7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZm9udC1zaXplOiAxN3B4O1xyXG4gICAgLmVsbGlwc2lzKCk7XHJcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbn1cclxuLndldWktbWVkaWEtYm94X19kZXNjIHtcclxuICAgIGNvbG9yOiBAd2V1aVRleHRDb2xvckdyYXk7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yO1xyXG4gICAgLmVsbGlwc2lzTG4oMik7XHJcbn1cclxuLndldWktbWVkaWEtYm94X19pbmZvIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgY29sb3I6ICNDRUNFQ0U7XHJcbiAgICBsaW5lLWhlaWdodDogMWVtO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuLndldWktbWVkaWEtYm94X19pbmZvX19tZXRhIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgcGFkZGluZy1yaWdodDogMWVtO1xyXG59XHJcbi53ZXVpLW1lZGlhLWJveF9faW5mb19fbWV0YV9leHRyYSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0NFQ0VDRTtcclxufVxyXG4ud2V1aS1tZWRpYS1ib3hfdGV4dCB7XHJcbiAgICAud2V1aS1tZWRpYS1ib3hfX3RpdGxlIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XHJcbiAgICB9XHJcbn1cclxuLndldWktbWVkaWEtYm94X2FwcG1zZyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIC53ZXVpLW1lZGlhLWJveF9faGQge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogLjhlbTtcclxuICAgICAgICB3aWR0aDogNjBweDtcclxuICAgICAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG4gICAgLndldWktbWVkaWEtYm94X190aHVtYiB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgfVxyXG4gICAgLndldWktbWVkaWEtYm94X19iZCB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICBtaW4td2lkdGg6IDA7XHJcbiAgICB9XHJcbn1cclxuLndldWktbWVkaWEtYm94X3NtYWxsLWFwcG1zZyB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgLndldWktY2VsbHMge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1ncmlkcyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICAuc2V0VG9wTGluZShAd2V1aUdyaWRCb3JkZXJDb2xvcik7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICAuc2V0TGVmdExpbmUoQHdldWlHcmlkQm9yZGVyQ29sb3IpO1xyXG4gICAgfVxyXG59XHJcblxyXG4ud2V1aS1ncmlkIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgcGFkZGluZzogMjBweCAxMHB4O1xyXG4gICAgd2lkdGg6IDEwMCUgLyBAd2V1aUdyaWRDb2x1bW5Db3VudDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAgIC5zZXRSaWdodExpbmUoQHdldWlHcmlkQm9yZGVyQ29sb3IpO1xyXG4gICAgfVxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgLnNldEJvdHRvbUxpbmUoQHdldWlHcmlkQm9yZGVyQ29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgICY6YWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2V1aUJnQ29sb3JBY3RpdmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLWdyaWRfX2ljb24ge1xyXG4gICAgd2lkdGg6IEB3ZXVpR3JpZEljb25TaXplO1xyXG4gICAgaGVpZ2h0OiBAd2V1aUdyaWRJY29uU2l6ZTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG5cclxuICAgIGltZyB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICYgKyAud2V1aS1ncmlkX19sYWJlbHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLWdyaWRfX2xhYmVsIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6IEB3ZXVpVGV4dENvbG9yVGl0bGU7XHJcbiAgICBmb250LXNpemU6IEB3ZXVpR3JpZEZvbnRTaXplO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG4iLCJAaW1wb3J0IFwiLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktZm9vdGVyIHtcclxuICAgIGNvbG9yOiBAd2V1aVRleHRDb2xvckdyYXk7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBhe1xyXG4gICAgICAgIGNvbG9yOiBAd2V1aUxpbmtDb2xvckRlZmF1bHQ7XHJcbiAgICB9XHJcbn1cclxuLndldWktZm9vdGVyX2ZpeGVkLWJvdHRvbXtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGJvdHRvbTogLjUyZW07XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbn1cclxuLndldWktZm9vdGVyX19saW5rc3tcclxuICAgIGZvbnQtc2l6ZTogMDtcclxufVxyXG4ud2V1aS1mb290ZXJfX2xpbmt7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgbWFyZ2luOiAwIC42MmVtO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgICAgLnNldExlZnRMaW5lKCk7XHJcbiAgICAgICAgbGVmdDogLS42NWVtO1xyXG4gICAgICAgIHRvcDogLjM2ZW07XHJcbiAgICAgICAgYm90dG9tOiAuMzZlbTtcclxuICAgIH1cclxuICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi53ZXVpLWZvb3Rlcl9fdGV4dHtcclxuICAgIHBhZGRpbmc6IDAgLjM0ZW07XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbn0iLCJAaW1wb3J0IFwiLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktZmxleCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcbi53ZXVpLWZsZXhfX2l0ZW17XHJcbiAgICBmbGV4OiAxO1xyXG59IiwiQGltcG9ydCBcIi4uLy4uL2Jhc2UvZm5cIjtcclxuXHJcbi53ZXVpLWRpYWxvZyB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiA1MDAwO1xyXG4gICAgd2lkdGg6IDgwJTtcclxuICAgIG1heC13aWR0aDogMzAwcHg7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6IEB3ZXVpRGlhbG9nQmFja2dyb3VuZENvbG9yO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG4ud2V1aS1kaWFsb2dfX2hkIHtcclxuICAgIHBhZGRpbmc6IDEuM2VtIEB3ZXVpRGlhbG9nR2FwV2lkdGggLjVlbTtcclxufVxyXG4ud2V1aS1kaWFsb2dfX3RpdGxlIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbn1cclxuLndldWktZGlhbG9nX19iZCB7XHJcbiAgICBwYWRkaW5nOiAwIEB3ZXVpRGlhbG9nR2FwV2lkdGggLjhlbTtcclxuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zO1xyXG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICAgY29sb3I6IEB3ZXVpVGV4dENvbG9yR3JheTtcclxuICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgICAgcGFkZGluZzoyLjdlbSAyMHB4IDEuN2VtO1xyXG4gICAgICAgIGNvbG9yOiMzNTM1MzU7XHJcbiAgICB9XHJcbn1cclxuLndldWktZGlhbG9nX19mdCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBsaW5lLWhlaWdodDogNDhweDtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIiBcIjtcclxuICAgICAgICAuc2V0VG9wTGluZShAd2V1aURpYWxvZ0xpbmVDb2xvcik7XHJcbiAgICB9XHJcbn1cclxuLndldWktZGlhbG9nX19idG4ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgY29sb3I6IEB3ZXVpRGlhbG9nTGlua0NvbG9yO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgLnNldFRhcENvbG9yKCk7XHJcbiAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHdldWlEaWFsb2dMaW5rQWN0aXZlQmM7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgLnNldExlZnRMaW5lKEB3ZXVpRGlhbG9nTGluZUNvbG9yKTtcclxuICAgIH1cclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ud2V1aS1kaWFsb2dfX2J0bl9kZWZhdWx0IHtcclxuICAgIGNvbG9yOiAjMzUzNTM1O1xyXG59XHJcbi53ZXVpLWRpYWxvZ19fYnRuX3ByaW1hcnkge1xyXG4gICAgY29sb3I6ICMwQkIyMEM7XHJcbn1cclxuXHJcbi53ZXVpLXNraW5fYW5kcm9pZHtcclxuICAgIC53ZXVpLWRpYWxvZyB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDZweCAzMHB4IDAgcmdiYSgwLCAwLCAwLCAuMSk7XHJcbiAgICB9XHJcbiAgICAud2V1aS1kaWFsb2dfX3RpdGxle1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjFweDtcclxuICAgIH1cclxuICAgIC53ZXVpLWRpYWxvZ19faGR7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIH1cclxuICAgIC53ZXVpLWRpYWxvZ19fYmR7XHJcbiAgICAgICAgY29sb3I6QHdldWlUZXh0Q29sb3JHcmF5O1xyXG4gICAgICAgIHBhZGRpbmc6LjI1ZW0gQHdldWlEaWFsb2dHYXBXaWR0aCAyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZHtcclxuICAgICAgICAgICAgcGFkZGluZzoxLjZlbSBAd2V1aURpYWxvZ0dhcFdpZHRoIDJlbTtcclxuICAgICAgICAgICAgY29sb3I6IzM1MzUzNTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud2V1aS1kaWFsb2dfX2Z0e1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICBwYWRkaW5nOjAgQHdldWlEaWFsb2dHYXBXaWR0aCAuN2VtO1xyXG4gICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLndldWktZGlhbG9nX19idG57XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgcGFkZGluZzowIC44ZW07XHJcbiAgICAgICAgJjphZnRlcntcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWN0aXZle1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC4wNik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6dmlzaXRlZHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuMDYpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmxhc3QtY2hpbGR7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLS44ZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLndldWktZGlhbG9nX19idG5fZGVmYXVsdCB7XHJcbiAgICAgICAgY29sb3I6ICM4MDgwODA7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xyXG4gICAgLndldWktZGlhbG9nIHtcclxuICAgICAgICB3aWR0aDogMzUlO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS10b2FzdCB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiA1MDAwO1xyXG4gICAgd2lkdGg6IDcuNmVtO1xyXG4gICAgbWluLWhlaWdodDogNy42ZW07XHJcbiAgICB0b3A6IDE4MHB4O1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0zLjhlbTtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoNDAsIDQwLCA0MCwgMC43NSk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxufVxyXG4ud2V1aS1pY29uX3RvYXN0IHtcclxuICAgIG1hcmdpbjogMjJweCAwIDA7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICYud2V1aS1pY29uLXN1Y2Nlc3Mtbm8tY2lyY2xle1xyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogNTVweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi53ZXVpLWxvYWRpbmd7XHJcbiAgICAgIG1hcmdpbjozMHB4IDAgMDtcclxuICAgICAgd2lkdGg6MzhweDtcclxuICAgICAgaGVpZ2h0OjM4cHg7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxuICAgIH1cclxufVxyXG5cclxuLndldWktdG9hc3RfX2NvbnRlbnQge1xyXG4gICAgbWFyZ2luOiAwIDAgMTVweDtcclxufVxyXG4iLCJAaW1wb3J0IFwiLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktbWFzayB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuNik7XHJcbn1cclxuXHJcbi53ZXVpLW1hc2tfdHJhbnNwYXJlbnR7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG59IiwiQGltcG9ydCBcIi4uLy4uL2Jhc2UvZm5cIjtcclxuQHdldWlBY3Rpb25TaGVldEFuZHJvaWRCb3JkZXJSYWRpdXM6IDJweDtcclxuXHJcbi53ZXVpLWFjdGlvbnNoZWV0IHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDAlKTtcclxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIHotaW5kZXg6IDUwMDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IEB3ZXVpQmdDb2xvckRlZmF1bHQ7XHJcbiAgICAvL3NsaWRlIHVwIGFuaW1hdGlvblxyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcztcclxufVxyXG4ud2V1aS1hY3Rpb25zaGVldF9fbWVudXtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcbn1cclxuLndldWktYWN0aW9uc2hlZXRfX2FjdGlvbiB7XHJcbiAgICBtYXJnaW4tdG9wOiA2cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xyXG59XHJcbi53ZXVpLWFjdGlvbnNoZWV0X19jZWxsIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICAuc2V0VG9wTGluZShAd2V1aUNlbGxCb3JkZXJDb2xvcik7XHJcbiAgICB9XHJcbiAgICAmOmFjdGl2ZXtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2V1aUJnQ29sb3JBY3RpdmU7XHJcbiAgICB9XHJcbiAgICAmOmZpcnN0LWNoaWxke1xyXG4gICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8vYW5kcm9pZCBhY3Rpb25TaGVldFxyXG4ud2V1aS1za2luX2FuZHJvaWR7XHJcbiAgICAud2V1aS1hY3Rpb25zaGVldCB7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICBib3R0b206IGF1dG87XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgICAgLy9wYWRkaW5nOiAwIDQwcHg7XHJcbiAgICAgICAgd2lkdGg6IDI3NHB4O1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIC8vc2xpZGUgdXAgYW5pbWF0aW9uXHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcztcclxuICAgIH1cclxuICAgIC53ZXVpLWFjdGlvbnNoZWV0X19hY3Rpb257XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICAgIC53ZXVpLWFjdGlvbnNoZWV0X19tZW51IHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiBAd2V1aUFjdGlvblNoZWV0QW5kcm9pZEJvcmRlclJhZGl1cztcclxuICAgICAgICBib3gtc2hhZG93OiAwIDZweCAzMHB4IDAgcmdiYSgwLDAsMCwuMSk7XHJcbiAgICB9XHJcbiAgICAud2V1aS1hY3Rpb25zaGVldF9fY2VsbCB7XHJcbiAgICAgICAgcGFkZGluZzogMTNweCAyNHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IEB3ZXVpQWN0aW9uU2hlZXRBbmRyb2lkQm9yZGVyUmFkaXVzO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogQHdldWlBY3Rpb25TaGVldEFuZHJvaWRCb3JkZXJSYWRpdXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEB3ZXVpQWN0aW9uU2hlZXRBbmRyb2lkQm9yZGVyUmFkaXVzO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQHdldWlBY3Rpb25TaGVldEFuZHJvaWRCb3JkZXJSYWRpdXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vL2FjdGlvblNoZWV0IGFuaWFtdGlvblxyXG4ud2V1aS1hY3Rpb25zaGVldF90b2dnbGV7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxufSIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1sb2FkbW9yZXtcclxuICAgIHdpZHRoOiA2NSU7XHJcbiAgICBtYXJnaW46MS41ZW0gYXV0bztcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjZlbTtcclxuICAgIGZvbnQtc2l6ZToxNHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi53ZXVpLWxvYWRtb3JlX190aXBze1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuLndldWktbG9hZG1vcmVfbGluZXtcclxuICAgIGJvcmRlci10b3A6MXB4IHNvbGlkIEB3ZXVpTGluZUNvbG9yTGlnaHQ7XHJcbiAgICBtYXJnaW4tdG9wOjIuNGVtO1xyXG4gICAgLndldWktbG9hZG1vcmVfX3RpcHN7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHRvcDotLjllbTtcclxuICAgICAgICBwYWRkaW5nOjAgLjU1ZW07XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcclxuICAgICAgICBjb2xvcjpAd2V1aVRleHRDb2xvckdyYXk7XHJcbiAgICB9XHJcbn1cclxuLndldWktbG9hZG1vcmVfZG90e1xyXG4gICAgLndldWktbG9hZG1vcmVfX3RpcHN7XHJcbiAgICAgICAgcGFkZGluZzowIC4xNmVtO1xyXG4gICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcclxuICAgICAgICAgICAgd2lkdGg6NHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6NHB4O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOjUwJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHdldWlMaW5lQ29sb3JMaWdodDtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiAwO1xyXG4gICAgICAgICAgICB0b3A6LS4xNmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1iYWRnZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAuMTVlbSAuNGVtO1xyXG4gICAgbWluLXdpZHRoOiA4cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHdldWlDb2xvcldhcm47XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG59XHJcbi53ZXVpLWJhZGdlX2RvdCB7XHJcbiAgICBwYWRkaW5nOiAuNGVtO1xyXG4gICAgbWluLXdpZHRoOiAwO1xyXG59IiwiQGltcG9ydCBcIi4uLy4uL2Jhc2UvZm5cIjtcclxuLndldWktc2VhcmNoLWJhciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0VGRUZGNDtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICAuc2V0VG9wTGluZSgjRDdENkRDKTtcclxuICAgIH1cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIC5zZXRCb3R0b21MaW5lKCNEN0Q2REMpO1xyXG4gICAgfVxyXG4gICAgJi53ZXVpLXNlYXJjaC1iYXJfZm9jdXNpbmd7XHJcbiAgICAgICAgLndldWktc2VhcmNoLWJhcl9fY2FuY2VsLWJ0bntcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53ZXVpLXNlYXJjaC1iYXJfX2xhYmVse1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ud2V1aS1zZWFyY2gtYmFyX19mb3JtIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGZsZXg6IGF1dG87XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUZFRkY0O1xyXG4gICAgJjphZnRlcntcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB0b3A6MDtcclxuICAgICAgICB3aWR0aDogMjAwJTtcclxuICAgICAgICBoZWlnaHQ6IDIwMCU7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSguNSk7XHJcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0U2RTZFQTtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XHJcbiAgICB9XHJcbn1cclxuLndldWktc2VhcmNoLWJhcl9fYm94IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgLndldWktc2VhcmNoLWJhcl9faW5wdXQge1xyXG4gICAgICAgIHBhZGRpbmc6IDRweCAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMjAvMTRlbTtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMC8xNGVtO1xyXG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53ZXVpLWljb24tc2VhcmNoIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogMTBweDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XHJcbiAgICB9XHJcbiAgICAud2V1aS1pY29uLWNsZWFyIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcclxuICAgIH1cclxufVxyXG4ud2V1aS1zZWFyY2gtYmFyX19sYWJlbCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDFweDtcclxuICAgIHJpZ2h0OiAxcHg7XHJcbiAgICBib3R0b206IDFweDtcclxuICAgIGxlZnQ6IDFweDtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogIzlCOUI5QjtcclxuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XHJcbiAgICBzcGFuIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcbiAgICAud2V1aS1pY29uLXNlYXJjaCB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICB9XHJcbn1cclxuLndldWktc2VhcmNoLWJhcl9fY2FuY2VsLWJ0biB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMjhweDtcclxuICAgIGNvbG9yOiAjMDlCQjA3O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG4ud2V1aS1zZWFyY2gtYmFyX19pbnB1dDpub3QoOnZhbGlkKSB+IC53ZXVpLWljb24tY2xlYXIge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLy/lubLmjolpbnB1dFtzZWFyY2hd6buY6K6k55qEY2xlYXIgYnV0dG9uXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLFxyXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufSIsIkBpbXBvcnQgXCIuLi8uLi9iYXNlL2ZuXCI7XHJcblxyXG4ud2V1aS1waWNrZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgei1pbmRleDogNTAwMDtcclxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMCUpO1xyXG4gICAgLy9zbGlkZSB1cCBhbmltYXRpb25cclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3M7XHJcbn1cclxuXHJcbi53ZXVpLXBpY2tlcl9faGQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYmY5ZmU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICAuc2V0Qm90dG9tTGluZShAd2V1aUxpbmVDb2xvckxpZ2h0KTtcclxuICAgIH1cclxufVxyXG5cclxuLndldWktcGlja2VyX19hY3Rpb24ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgY29sb3I6IEB3ZXVpTGlua0NvbG9yRGVmYXVsdDtcclxuXHJcbiAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIH1cclxufVxyXG5cclxuLndldWktcGlja2VyX19iZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgIGhlaWdodDogMjM4cHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4ud2V1aS1waWNrZXJfX2dyb3VwIHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAvLy13ZWJraXQtbWFzay1ib3gtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSx0cmFuc3BhcmVudCx0cmFuc3BhcmVudCA1JSwjZmZmIDUwJSwjZmZmIDUwJSx0cmFuc3BhcmVudCA5NSUsdHJhbnNwYXJlbnQpO1xyXG59XHJcblxyXG4ud2V1aS1waWNrZXJfX21hc2sge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICB6LWluZGV4OiAzO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgaHNsYSgwLCAwJSwgMTAwJSwgLjk1KSwgaHNsYSgwLCAwJSwgMTAwJSwgLjYpKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIGhzbGEoMCwgMCUsIDEwMCUsIC45NSksIGhzbGEoMCwgMCUsIDEwMCUsIC42KSk7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AsIGJvdHRvbTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDJweDtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XHJcbn1cclxuXHJcbi53ZXVpLXBpY2tlcl9faW5kaWNhdG9yIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAzNHB4O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMTAycHg7XHJcbiAgICB6LWluZGV4OiAzO1xyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAgIC5zZXRUb3BMaW5lKEB3ZXVpTGluZUNvbG9yTGlnaHQpO1xyXG4gICAgfVxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgLnNldEJvdHRvbUxpbmUoQHdldWlMaW5lQ29sb3JMaWdodCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLXBpY2tlcl9fY29udGVudCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53ZXVpLXBpY2tlcl9faXRlbSB7XHJcbiAgICBwYWRkaW5nOiA1cHggMCA0cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi53ZXVpLXBpY2tlcl9faXRlbV9kaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogQHdldWlUZXh0Q29sb3JHcmF5O1xyXG59IiwiQGltcG9ydCBcIi4uLy4uL2Jhc2UvZm5cIjtcclxuXHJcbkBrZXlmcmFtZXMgc2xpZGVVcCB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHRvIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgfVxyXG59XHJcblxyXG4ud2V1aS1hbmltYXRlLXNsaWRlLXVwIHtcclxuICAgIGFuaW1hdGlvbjogc2xpZGVVcCBlYXNlIC4zcyBmb3J3YXJkcztcclxufVxyXG5cclxuQGtleWZyYW1lcyBzbGlkZURvd24ge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICAgIH1cclxuXHJcbiAgICB0byB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcclxuICAgIH1cclxufVxyXG5cclxuLndldWktYW5pbWF0ZS1zbGlkZS1kb3duIHtcclxuICAgIGFuaW1hdGlvbjogc2xpZGVEb3duIGVhc2UgLjNzIGZvcndhcmRzO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgfVxyXG4gICAgdG8ge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53ZXVpLWFuaW1hdGUtZmFkZS1pbiB7XHJcbiAgICBhbmltYXRpb246IGZhZGVJbiBlYXNlIC4zcyBmb3J3YXJkcztcclxufVxyXG5cclxuQGtleWZyYW1lcyBmYWRlT3V0IHtcclxuICAgIGZyb20ge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgICB0byB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgIH1cclxufVxyXG5cclxuLndldWktYW5pbWF0ZS1mYWRlLW91dCB7XHJcbiAgICBhbmltYXRpb246IGZhZGVPdXQgZWFzZSAuM3MgZm9yd2FyZHM7XHJcbn0iLCJAaW1wb3J0IFwiLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktYWdyZWV7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6IC41ZW0gMTVweDtcclxuICAgIGZvbnQtc2l6ZSA6MTNweDtcclxuXHJcbiAgICBhe1xyXG4gICAgICAgIGNvbG9yOiBAd2V1aUxpbmtDb2xvckRlZmF1bHQ7XHJcbiAgICB9XHJcbn1cclxuLndldWktYWdyZWVfX3RleHR7XHJcbiAgICBjb2xvcjogQHdldWlUZXh0Q29sb3JHcmF5O1xyXG59XHJcbi53ZXVpLWFncmVlX19jaGVja2JveHtcclxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICBvdXRsaW5lOiAwO1xyXG4gICAgZm9udC1zaXplOiAwO1xyXG5cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNEMUQxRDE7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xyXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgd2lkdGg6IDEzcHg7XHJcbiAgICBoZWlnaHQ6IDEzcHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgdmVydGljYWwtYWxpZ246IDA7XHJcbiAgICB0b3A6IDJweDtcclxuXHJcbiAgICAmOmNoZWNrZWR7XHJcbiAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIndldWlcIjtcclxuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgc3BlYWs6IG5vbmU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlxcRUEwOFwiO1xyXG4gICAgICAgICAgICBjb2xvcjogIzA5QkIwNztcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG5cclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC00OCUpIHNjYWxlKC43Myk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJjpkaXNhYmxlZHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiNFMUUxRTE7XHJcbiAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgIGNvbG9yOiNBREFEQUQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiQGltcG9ydCBcIi4uLy4uL2Jhc2UvZm5cIjtcclxuXHJcbi53ZXVpLWxvYWRpbmcge1xyXG4gIHdpZHRoOjIwcHg7XHJcbiAgaGVpZ2h0OjIwcHg7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgYW5pbWF0aW9uOiB3ZXVpTG9hZGluZyAxcyBzdGVwcygxMiwgZW5kKSBpbmZpbml0ZTtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l4TWpBaUlHaGxhV2RvZEQwaU1USXdJaUIyYVdWM1FtOTRQU0l3SURBZ01UQXdJREV3TUNJK1BIQmhkR2dnWm1sc2JEMGlibTl1WlNJZ1pEMGlUVEFnTUdneE1EQjJNVEF3U0RCNklpOCtQSEpsWTNRZ2QybGtkR2c5SWpjaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpRMkxqVWlJSGs5SWpRd0lpQm1hV3hzUFNJalJUbEZPVVU1SWlCeWVEMGlOU0lnY25rOUlqVWlJSFJ5WVc1elptOXliVDBpZEhKaGJuTnNZWFJsS0RBZ0xUTXdLU0l2UGp4eVpXTjBJSGRwWkhSb1BTSTNJaUJvWldsbmFIUTlJakl3SWlCNFBTSTBOaTQxSWlCNVBTSTBNQ0lnWm1sc2JEMGlJems0T1RZNU55SWdjbmc5SWpVaUlISjVQU0kxSWlCMGNtRnVjMlp2Y20wOUluSnZkR0YwWlNnek1DQXhNRFV1T1RnZ05qVXBJaTgrUEhKbFkzUWdkMmxrZEdnOUlqY2lJR2hsYVdkb2REMGlNakFpSUhnOUlqUTJMalVpSUhrOUlqUXdJaUJtYVd4c1BTSWpPVUk1T1RsQklpQnllRDBpTlNJZ2NuazlJalVpSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RZd0lEYzFMams0SURZMUtTSXZQanh5WldOMElIZHBaSFJvUFNJM0lpQm9aV2xuYUhROUlqSXdJaUI0UFNJME5pNDFJaUI1UFNJME1DSWdabWxzYkQwaUkwRXpRVEZCTWlJZ2NuZzlJalVpSUhKNVBTSTFJaUIwY21GdWMyWnZjbTA5SW5KdmRHRjBaU2c1TUNBMk5TQTJOU2tpTHo0OGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0l5TUNJZ2VEMGlORFl1TlNJZ2VUMGlOREFpSUdacGJHdzlJaU5CUWtFNVFVRWlJSEo0UFNJMUlpQnllVDBpTlNJZ2RISmhibk5tYjNKdFBTSnliM1JoZEdVb01USXdJRFU0TGpZMklEWTFLU0l2UGp4eVpXTjBJSGRwWkhSb1BTSTNJaUJvWldsbmFIUTlJakl3SWlCNFBTSTBOaTQxSWlCNVBTSTBNQ0lnWm1sc2JEMGlJMEl5UWpKQ01pSWdjbmc5SWpVaUlISjVQU0kxSWlCMGNtRnVjMlp2Y20wOUluSnZkR0YwWlNneE5UQWdOVFF1TURJZ05qVXBJaTgrUEhKbFkzUWdkMmxrZEdnOUlqY2lJR2hsYVdkb2REMGlNakFpSUhnOUlqUTJMalVpSUhrOUlqUXdJaUJtYVd4c1BTSWpRa0ZDT0VJNUlpQnllRDBpTlNJZ2NuazlJalVpSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RFNE1DQTFNQ0EyTlNraUx6NDhjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJeU1DSWdlRDBpTkRZdU5TSWdlVDBpTkRBaUlHWnBiR3c5SWlORE1rTXdRekVpSUhKNFBTSTFJaUJ5ZVQwaU5TSWdkSEpoYm5ObWIzSnRQU0p5YjNSaGRHVW9MVEUxTUNBME5TNDVPQ0EyTlNraUx6NDhjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJeU1DSWdlRDBpTkRZdU5TSWdlVDBpTkRBaUlHWnBiR3c5SWlORFFrTkNRMElpSUhKNFBTSTFJaUJ5ZVQwaU5TSWdkSEpoYm5ObWIzSnRQU0p5YjNSaGRHVW9MVEV5TUNBME1TNHpOQ0EyTlNraUx6NDhjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJeU1DSWdlRDBpTkRZdU5TSWdlVDBpTkRBaUlHWnBiR3c5SWlORU1rUXlSRElpSUhKNFBTSTFJaUJ5ZVQwaU5TSWdkSEpoYm5ObWIzSnRQU0p5YjNSaGRHVW9MVGt3SURNMUlEWTFLU0l2UGp4eVpXTjBJSGRwWkhSb1BTSTNJaUJvWldsbmFIUTlJakl3SWlCNFBTSTBOaTQxSWlCNVBTSTBNQ0lnWm1sc2JEMGlJMFJCUkVGRVFTSWdjbmc5SWpVaUlISjVQU0kxSWlCMGNtRnVjMlp2Y20wOUluSnZkR0YwWlNndE5qQWdNalF1TURJZ05qVXBJaTgrUEhKbFkzUWdkMmxrZEdnOUlqY2lJR2hsYVdkb2REMGlNakFpSUhnOUlqUTJMalVpSUhrOUlqUXdJaUJtYVd4c1BTSWpSVEpGTWtVeUlpQnllRDBpTlNJZ2NuazlJalVpSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0Mwek1DQXROUzQ1T0NBMk5Ta2lMejQ4TDNOMlp6ND0pIG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyB3ZXVpTG9hZGluZyB7XHJcbiAgMCUge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAzNjBkZWcpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyB3ZXVpTG9hZGluZyB7XHJcbiAgMCUge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAzNjBkZWcpO1xyXG4gIH1cclxufVxyXG4iLCJAaW1wb3J0IFwiLi4vLi4vYmFzZS9mblwiO1xyXG5cclxuLndldWktc2xpZGVyIHtcclxuICAgIHBhZGRpbmc6IDE1cHggMThweDtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG59XHJcblxyXG4ud2V1aS1zbGlkZXJfX2lubmVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGhlaWdodDogMnB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0U5RTlFOTtcclxufVxyXG5cclxuLndldWktc2xpZGVyX190cmFjayB7XHJcbiAgICBoZWlnaHQ6IDJweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IEB3ZXVpQ29sb3JQcmltYXJ5O1xyXG4gICAgd2lkdGg6IDA7XHJcbn1cclxuXHJcbi53ZXVpLXNsaWRlcl9faGFuZGxlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB3aWR0aDogMjhweDtcclxuICAgIGhlaWdodDogMjhweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMTRweDtcclxuICAgIG1hcmdpbi10b3A6IC0xNHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcclxuICAgIGJveC1zaGFkb3c6IDAgMCA0cHggcmdiYSgwLCAwLCAwLCAuMik7XHJcbn1cclxuXHJcblxyXG4ud2V1aS1zbGlkZXItYm94e1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAud2V1aS1zbGlkZXJ7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgIH1cclxufVxyXG4ud2V1aS1zbGlkZXItYm94X192YWx1ZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogLjVlbTtcclxuICAgIG1pbi13aWR0aDogMjRweDtcclxuICAgIGNvbG9yOiAjODg4ODg4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG59Il19 */ diff --git a/app/source/css/parts/class.css b/app/source/css/parts/class.css new file mode 100644 index 0000000..76b037a --- /dev/null +++ b/app/source/css/parts/class.css @@ -0,0 +1,42 @@ +.clear:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.lt { + float: left; +} + +.rt { + float: right; +} + +/* 居中 */ +.centerTranslate { + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.centerTranslateX { + left: 50%; + transform: translate(-50%, 0); +} + +.centerTranslateY { + top: 50%; + transform: translate(0, -50%); +} + +/* 扑克效果 */ +.poker { + transition: all .2s linear; +} + +.poker:hover { + box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1); + transform: translate3d(0, -2px, 0); +} \ No newline at end of file diff --git a/app/source/css/parts/normalize.css b/app/source/css/parts/normalize.css new file mode 100644 index 0000000..4cc15c1 --- /dev/null +++ b/app/source/css/parts/normalize.css @@ -0,0 +1,461 @@ +/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Change the default font family in all browsers (opinionated). + * 2. Correct the line height in all browsers. + * 3. Prevent adjustments of font size after orientation changes in + * IE on Windows Phone and in iOS. + */ + +html { + font-family: sans-serif; /* 1 */ + line-height: 1.15; /* 2 */ + -ms-text-size-adjust: 100%; /* 3 */ + -webkit-text-size-adjust: 100%; /* 3 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers (opinionated). + */ + +body { + margin: 0; +} + +/** + * Add the correct display in IE 9-. + */ + +article, +aside, +footer, +header, +nav, +section { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + * 1. Add the correct display in IE. + */ + +figcaption, +figure, +main { /* 1 */ + display: block; +} + +/** + * Add the correct margin in IE 8. + */ + +figure { + margin: 1em 40px; +} + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ + +a { + background-color: transparent; /* 1 */ + -webkit-text-decoration-skip: objects; /* 2 */ +} + +/** + * Remove the outline on focused links when they are also active or hovered + * in all browsers (opinionated). + */ + +a:active, +a:hover { + outline-width: 0; +} + +/** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ + +b, +strong { + font-weight: inherit; +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font style in Android 4.3-. + */ + +dfn { + font-style: italic; +} + +/** + * Add the correct background and color in IE 9-. + */ + +mark { + background-color: #ff0; + color: #000; +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + */ + +audio, +video { + display: inline-block; +} + +/** + * Add the correct display in iOS 4-7. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Remove the border on images inside links in IE 10-. + */ + +img { + border-style: none; +} + +/** + * Hide the overflow in IE. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: sans-serif; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ + +button, +html [type="button"], /* 1 */ +[type="reset"], +[type="submit"] { + -webkit-appearance: button; /* 2 */ +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Change the border, margin, and padding in all browsers (opinionated). + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * 1. Add the correct display in IE 9-. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Remove the default vertical scrollbar in IE. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in IE 9-. + * 1. Add the correct display in Edge, IE, and Firefox. + */ + +details, /* 1 */ +menu { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Scripting + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + */ + +canvas { + display: inline-block; +} + +/** + * Add the correct display in IE. + */ + +template { + display: none; +} + +/* Hidden + ========================================================================== */ + +/** + * Add the correct display in IE 10-. + */ + +[hidden] { + display: none; +} \ No newline at end of file diff --git a/app/source/css/parts/phoneReset.css b/app/source/css/parts/phoneReset.css new file mode 100644 index 0000000..be7dff4 --- /dev/null +++ b/app/source/css/parts/phoneReset.css @@ -0,0 +1,89 @@ +html { + color: #000; + background: #fff; + overflow-y: scroll; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100% +} + +html * { + outline: 0; + -webkit-text-size-adjust: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0) +} + +html, body { + font-family: sans-serif +} + +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td, hr, button, article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { + margin: 0; + padding: 0 +} + +input, select, textarea { + font-size: 100% +} + +table { + border-collapse: collapse; + border-spacing: 0 +} + +fieldset, img { + border: 0 +} + +abbr, acronym { + border: 0; + font-variant: normal +} + +del { + text-decoration: line-through +} + +address, caption, cite, code, dfn, em, th, var { + font-style: normal; + font-weight: 500 +} + +ol, ul { + list-style: none +} + +caption, th { + text-align: left +} + +h1, h2, h3, h4, h5, h6 { + font-size: 100%; + font-weight: 500 +} + +q:before, q:after { + content: '' +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline +} + +sup { + top: -.5em +} + +sub { + bottom: -.25em +} + +a:hover { + text-decoration: underline +} + +ins, a { + text-decoration: none +} \ No newline at end of file diff --git a/app/source/css/parts/reset.css b/app/source/css/parts/reset.css new file mode 100644 index 0000000..0305c63 --- /dev/null +++ b/app/source/css/parts/reset.css @@ -0,0 +1,101 @@ +@charset "UTF-8"; +/*html::-webkit-scrollbar{ // 控制栏 + height: map($scroll,size); + width: map($scroll,size); +} +html::-webkit-scrollbar-track { + background: map($scroll,size); + border-radius : map($scroll,size) / 2; +} +html::-webkit-scrollbar-thumb{ + background: map($scroll,color); + border-radius : map($scroll,size) / 2; +}*/ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, +menu, nav, output, ruby, section, summary, +time, mark, audio, video{ + margin: 0; + padding: 0; + border: 0; + vertical-align: baseline; +} + +article, aside, details, figcaption, figure, +footer, header, menu, nav, section{ + display: block; +} + +html, body, textarea, input, button, select, pre{ + font-family: "Microsoft Yahei", 'arial', "Hiragino Sans GB", '宋体', 'Tahoma'; +} + +html, body{ + height: 100%; + width: 100%; + font-size: 14px; + color: #2d2d34; +} + +pre{ + white-space: pre-wrap; + word-wrap: break-word; +} + +a{ + text-decoration: none; + color: #2d2d34; +} + +h1, h2, h3, h4, h5, h6{ + font-weight: normal; + font-size: 100%; +} + +ol, ul{ + list-style: none; +} + +button, input, textarea, select{ + outline: none; + border: 1px solid #c8c8c8; + padding: 5px; +} + +input[type='range']{ + padding: 0; +} + +input[type="text"]:focus, textarea:focus, select:focus{ + border: 1px solid #53a1f0; +} + +input[type="button"], button, select, label{ + cursor: pointer; +} + +input[disabled=disabled]{ + background: #fff; + cursor: no-drop; +} + +small{ font-size: 12px; } + + +fieldset, img{ border: none; } + +img{ vertical-align: middle; font-size: 0; } + +table{ + border-collapse: collapse; + border-spacing: 0; +} \ No newline at end of file diff --git a/app/source/font/icon/demo.css b/app/source/font/icon/demo.css new file mode 100644 index 0000000..3d9cbe7 --- /dev/null +++ b/app/source/font/icon/demo.css @@ -0,0 +1,370 @@ +*{margin: 0;padding: 0;list-style: none;} +/* +KISSY CSS Reset +理念:1. reset 的目的不是清除浏览器的默认样式,这仅是部分工作。清除和重置是紧密不可分的。 +2. reset 的目的不是让默认样式在所有浏览器下一致,而是减少默认样式有可能带来的问题。 +3. reset 期望提供一套普适通用的基础样式。但没有银弹,推荐根据具体需求,裁剪和修改后再使用。 +特色:1. 适应中文;2. 基于最新主流浏览器。 +维护:玉伯, 正淳 + */ + +/** 清除内外边距 **/ +body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 结构元素 */ +dl, dt, dd, ul, ol, li, /* list elements 列表元素 */ +pre, /* text formatting elements 文本格式元素 */ +form, fieldset, legend, button, input, textarea, /* form elements 表单元素 */ +th, td /* table elements 表格元素 */ { + margin: 0; + padding: 0; +} + +/** 设置默认字体 **/ +body, +button, input, select, textarea /* for ie */ { + font: 12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif; +} +h1, h2, h3, h4, h5, h6 { font-size: 100%; } +address, cite, dfn, em, var { font-style: normal; } /* 将斜体扶正 */ +code, kbd, pre, samp { font-family: courier new, courier, monospace; } /* 统一等宽字体 */ +small { font-size: 12px; } /* 小于 12px 的中文很难阅读,让 small 正常化 */ + +/** 重置列表元素 **/ +ul, ol { list-style: none; } + +/** 重置文本格式元素 **/ +a { text-decoration: none; } +a:hover { text-decoration: underline; } + + +/** 重置表单元素 **/ +legend { color: #000; } /* for ie6 */ +fieldset, img { border: 0; } /* img 搭车:让链接里的 img 无边框 */ +button, input, select, textarea { font-size: 100%; } /* 使得表单元素在 ie 下能继承字体大小 */ +/* 注:optgroup 无法扶正 */ + +/** 重置表格元素 **/ +table { border-collapse: collapse; border-spacing: 0; } + +/* 清除浮动 */ +.ks-clear:after, .clear:after { + content: '\20'; + display: block; + height: 0; + clear: both; +} +.ks-clear, .clear { + *zoom: 1; +} + +.main { + padding: 30px 100px; +width: 960px; +margin: 0 auto; +} +.main h1{font-size:36px; color:#333; text-align:left;margin-bottom:30px; border-bottom: 1px solid #eee;} + +.helps{margin-top:40px;} +.helps pre{ + padding:20px; + margin:10px 0; + border:solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists{ + width: 100% !important; + +} + +.icon_lists li{ + float:left; + width: 100px; + height:180px; + text-align: center; + list-style: none !important; +} +.icon_lists .icon{ + font-size: 42px; + line-height: 100px; + margin: 10px 0; + color:#333; + -webkit-transition: font-size 0.25s ease-out 0s; + -moz-transition: font-size 0.25s ease-out 0s; + transition: font-size 0.25s ease-out 0s; + +} +.icon_lists .icon:hover{ + font-size: 100px; +} + + + +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p, +.markdown pre { + margin: 1em 0; +} + +.markdown > p, +.markdown > blockquote, +.markdown > .highlight, +.markdown > ol, +.markdown > ul { + width: 80%; +} + +.markdown ul > li { + list-style: circle; +} + +.markdown > ul li, +.markdown blockquote ul > li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown > ul li p, +.markdown > ol li p { + margin: 0.6em 0; +} + +.markdown ol > li { + list-style: decimal; +} + +.markdown > ol li, +.markdown blockquote ol > li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown pre { + border-radius: 6px; + background: #f7f7f7; + padding: 20px; +} + +.markdown pre code { + border: none; + background: #f7f7f7; + margin: 0; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown > table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown > table th { + white-space: nowrap; + color: #333; + font-weight: 600; + +} + +.markdown > table th, +.markdown > table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown > table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; + font-style: italic; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown > br, +.markdown > p > br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +pre{ + background: #fff; +} + + + + + diff --git a/app/source/font/icon/demo_fontclass.html b/app/source/font/icon/demo_fontclass.html new file mode 100644 index 0000000..285a034 --- /dev/null +++ b/app/source/font/icon/demo_fontclass.html @@ -0,0 +1,52 @@ + + + + + + IconFont + + + + +
+

IconFont 图标

+
    + +
  • + +
    silder
    +
    .icon-sliderR
    +
  • + +
  • + +
    silder
    +
    .icon-sliderL
    +
  • + +
+ +

font-class引用

+
+ +

font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题。

+

与unicode使用方式相比,具有如下特点:

+
    +
  • 兼容性良好,支持ie8+,及所有现代浏览器。
  • +
  • 相比于unicode语意明确,书写更直观。可以很容易分辨这个icon是什么。
  • +
  • 因为使用class来定义图标,所以当要替换图标时,只需要修改class里面的unicode引用。
  • +
  • 不过因为本质上还是使用的字体,所以多色图标还是不支持的。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的fontclass代码:

+ + +
<link rel="stylesheet" type="text/css" href="./iconfont.css">
+

第二步:挑选相应图标并获取类名,应用于页面:

+
<i class="icon icon-xxx"></i>
+
+

"icon"是你项目下的font-family。可以通过编辑项目查看,默认是"iconfont"。

+
+
+ + diff --git a/app/source/font/icon/demo_symbol.html b/app/source/font/icon/demo_symbol.html new file mode 100644 index 0000000..a9cd40b --- /dev/null +++ b/app/source/font/icon/demo_symbol.html @@ -0,0 +1,79 @@ + + + + + + IconFont + + + + + + +
+

IconFont 图标

+
    + +
  • + +
    silder
    +
    #icon-sliderR
    +
  • + +
  • + +
    silder
    +
    #icon-sliderL
    +
  • + +
+ + +

symbol引用

+
+ +

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 + 这种用法其实是做了一个svg的集合,与另外两种相比具有如下特点:

+
    +
  • 支持多色图标了,不再受单色限制。
  • +
  • 通过一些技巧,支持像字体那样,通过font-size,color来调整样式。
  • +
  • 兼容性较差,支持 ie9+,及现代浏览器。
  • +
  • 浏览器渲染svg的性能一般,还不如png。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的symbol代码:

+
<script src="./iconfont.js"></script>
+

第二步:加入通用css代码(引入一次就行):

+
<style type="text/css">
+.icon {
+   width: 1em; height: 1em;
+   vertical-align: -0.15em;
+   fill: currentColor;
+   overflow: hidden;
+}
+</style>
+

第三步:挑选相应图标并获取类名,应用于页面:

+
<svg class="icon" aria-hidden="true">
+  <use xlink:href="#icon-xxx"></use>
+</svg>
+        
+
+ + diff --git a/app/source/font/icon/demo_unicode.html b/app/source/font/icon/demo_unicode.html new file mode 100644 index 0000000..ff57120 --- /dev/null +++ b/app/source/font/icon/demo_unicode.html @@ -0,0 +1,90 @@ + + + + + + IconFont + + + + + +
+

IconFont 图标

+
    + +
  • + +
    silder
    +
    &#xe60f;
    +
  • + +
  • + +
    silder
    +
    &#xe610;
    +
  • + +
+

unicode引用

+
+ +

unicode是字体在网页端最原始的应用方式,特点是:

+
    +
  • 兼容性最好,支持ie6+,及所有现代浏览器。
  • +
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • +
  • 但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
  • +
+
+

注意:新版iconfont支持多色图标,这些多色图标在unicode模式下将不能使用,如果有需求建议使用symbol的引用方式

+
+

unicode使用步骤如下:

+

第一步:拷贝项目下面生成的font-face

+
@font-face {
+  font-family: 'icon';
+  src: url('iconfont.eot');
+  src: url('iconfont.eot?#iefix') format('embedded-opentype'),
+  url('iconfont.woff') format('woff'),
+  url('iconfont.ttf') format('truetype'),
+  url('iconfont.svg#icon') format('svg');
+}
+
+

第二步:定义使用iconfont的样式

+
.icon{
+  font-family:"icon" !important;
+  font-size:16px;font-style:normal;
+  -webkit-font-smoothing: antialiased;
+  -webkit-text-stroke-width: 0.2px;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+

第三步:挑选相应图标并获取字体编码,应用于页面

+
<i class="icon">&#x33;</i>
+ +
+

"icon"是你项目下的font-family。可以通过编辑项目查看,默认是"iconfont"。

+
+
+ + + + diff --git a/app/source/font/icon/iconfont.css b/app/source/font/icon/iconfont.css new file mode 100644 index 0000000..f28b79e --- /dev/null +++ b/app/source/font/icon/iconfont.css @@ -0,0 +1,20 @@ +@font-face {font-family: "icon"; + src: url('iconfont.eot?t=1484123387614'); /* IE9*/ + src: url('iconfont.eot?t=1484123387614#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('iconfont.woff?t=1484123387614') format('woff'), /* chrome, firefox */ + url('iconfont.ttf?t=1484123387614') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ + url('iconfont.svg?t=1484123387614#icon') format('svg'); /* iOS 4.1- */ +} + +.icon { + font-family:"icon" !important; + font-size:16px; + font-style:normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-sliderR:before { content: "\e60f"; } + +.icon-sliderL:before { content: "\e610"; } + diff --git a/app/source/font/icon/iconfont.eot b/app/source/font/icon/iconfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..55614404f2847653060e26c0f0be17a81af5f68a GIT binary patch literal 5370 zcmd5=Yit|G5#GJyTO>ujNLiHQrA{xKcQi@sWl51~Qj}uLPV}%HGIktN5^1ZkEmcxt z6)9T(31Bcy(gJOoB5hElEsFkI+AWX(Mq(gnQJ?|(qXpU@ZPB7H6wQwYP0*l0q<(XJ z*pB;ffd0sdck|8c?9A-k?A+S_Y-Q|kEsSxdFuD|GQ%wNLyPVLmS(7m4tH?>Wa*Z8& z=gpez7Im-{w!~K1C5YVYI4iJaNS?64DSX#v&}r#(*~QS7do;Zer{_ zG%f)N*3X`VMuZ(?18gsNgI&OL#6;_O4q}v~(|E>#E8G^i7-rDOWjwnu-eqz{^SOa& zZjTf!$L+(z!r0W*iQ`Xf{`yA{x*_eHo=i`%1Iz}#AG~;IVSoJLw#=`x?C=G28bsK6D-e`)T!u;NJ${eg5L+mUoPIGiIl^;=i!E zlvg|XbKogH@5TJq8t-?7!H<9!m+}`2zj^U{d%$N9-v?`}8=J5H;+L@PJc03vwe`Z< zcV2tF$XE-;8RD$GyH%B*-IZ)Op3^?m*>Bo5_k z%3F{;QM(USSyH^`ZhZTTCyr1l#(PPrb5pg`H6kv%{o=yK+%w(%o5=9Ro+B zo$wt6b>Od3#;~!o0||q*MnXH!?0WAuON`UIG!;N;PGw$I0#X~iCHcQ0TEZvfvNC<= zcj^tbo%xZ$Q8v%c^2;-_Wj2#Is&MA8?+SJ-H1~8it6$`<_P+a` z-ae|l!rS&}Uhf{SFt(5AySrLpR_Hg&EzK&yieVrDM2sY=h4g^L=djd|*uUz3RLE-)Gp{9-|{65>^ zZ|U~>JdXAbkJi-E$}j(+p}obuyBBRzVejv}p{i3V7XmAKC?)7p%BJlD6ax%;(czk$hSowf+ zht0EHXo?8l#6P|Lr6%rc3Iu%os~neN<>wXd>-O-ceM)G*Z~I%@FZ&`*O+J2=D++fZ z#t(OHst$CaYK$ES2yr5mYK(|kQSs5D4#Jm#xpJIg?i>WX9%GlS&E^kq{{-*tb0W6B zUaiZHSi9^tJGYuK@|VmQx1Z;$)fl%|sxiK3#<=~I86$s`FPbrKZ&hNXE`|HecMgp` z);Rtis@!ZWcl2u=nZAKlP=Bm-Im}TH@4UgzRP@ywclA4KWd!C=LiaCB2me0%&@^v8 z_&9%#{}zy9u(8L`@##`nFFv~$fJ)96ObHzWUZ~oyd?jdx`5{2xu3(i3=Bi=~r2DGa z%F_7sS9ENUZ&1g#I3aQ1vtGdp?0>$BRhD4SRIvp*KdE9Xjvha&VjFYtM^~0sFC8x| zuRL*aYW33Q)av@Vf`~_=VpPxwNGxW=jCeFQO#G?B`o;>xu}E}GY;G3wPi(H9U%9j? z`k#zO4i4-U#sx7VjCC;>6~?rPM?tnkY(N;7Mb~tfFp9$1AVc-D(e3A=Df29}$%wAA zb2uT>oU>K^1X!!LY9ZW3@D;|pRM=^37}dUU zVP(0nK3}EB%rTCycjI02;w-MV5aa5k$+Hk&DAvxZc30XvqSJVLOhW;4>NC8bSE21B8&DH2(Azk{+iA>qfC$rtsQ_!{y*`UwNWo8yC!e9vU7E|ul%gmEHnJIfbDY#EcXE;mC zR(g`v6_;JWOISW04t8PvUWz+x z$VR=)iTd=iLbORQt3;divV~|15=*pIFWZQ=>18`nzg~6_4d`Vj(RN+h!}sWW7ksy4 zP6vDw4Z=6kPWUFe8@`F&2j4{Zz&B9=-$X<3O|%QXiE27l>dlE1vY4aP;WwAj#5h<@ zHWxan&JEeEOD!z5eTMAOg_uT#)QV5bk7%NFGV@U(-m@Wl>nY`a*|Sgbwy2rGzS~!P z=TN^c2F-o7S7%bKR5-Ru%^yMLr+-5+HaVe2!bqS~j6aYRtl%ApMMBZds?k-)ei z^?x&pm%juJ1NmeA9uX1K=B`tEj+9E%+B7y#W)W+U92;8aysZ^pBG_eq6d!)3inOJ} zg;GQlV!Q-f`)>`4NX3Sq@WMkxeF1(@wMr_=87nDkm)| z6e{)-3s-uTlFBV>QcdNTQTa+L9|X>2u@Rt_hhy|aZ7M$!)L>_dUY|2%+JcFSDR@9n z0E3)_r4`%4N^>y}oe+(JtmBCe7}P@9TNd&5qO=|XAJ*RLdbDvYGiHjV6PrYcDGhlG zqX-NcH^p!r)kx!A|^u~sCrD* z(wd_W16EPX{D7{B2rYjKU1~fVDR=W$6!&0VjO5=E57ot{c5Uh%I>Wk*gli*r7#-2& z{%{GeoZf8-#ebJ$Bs(Iz;s2nS5vrG30;v|TxkLn&TZwTL8xifSURbpy{_o0}{&>Yg z*`d8Uu8jmkx4pPfwi?M8ExDGuaav`F@=JkKqpdIOek`o5vSZMxu{l~IavwIx#D9<< zLLcC*Eiw$9gf0z`!<3sevL~j{$7|V0>Qq4}p11m$ABb zju=xrZz9rOG!dyT=`vndT_(mO>z<+XKhV-(?Vd}J2xY33y);vKv4E)b2xXM zME9z0^F^s>lh<8Nt0jEh)j&^gBc9o7mVRe?9wQ!`C0w@gNz~<49Dov6Gi94PS?(nc YXAWX' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + var script = function() { + var scripts = document.getElementsByTagName('script') + return scripts[scripts.length - 1] + }() + var shouldInjectCss = script.getAttribute("data-injectcss") + + /** + * document ready + */ + var ready = function(fn) { + if (document.addEventListener) { + if (~["complete", "loaded", "interactive"].indexOf(document.readyState)) { + setTimeout(fn, 0) + } else { + var loadFn = function() { + document.removeEventListener("DOMContentLoaded", loadFn, false) + fn() + } + document.addEventListener("DOMContentLoaded", loadFn, false) + } + } else if (document.attachEvent) { + IEContentLoaded(window, fn) + } + + function IEContentLoaded(w, fn) { + var d = w.document, + done = false, + // only fire once + init = function() { + if (!done) { + done = true + fn() + } + } + // polling for no errors + var polling = function() { + try { + // throws errors until after ondocumentready + d.documentElement.doScroll('left') + } catch (e) { + setTimeout(polling, 50) + return + } + // no errors, fire + + init() + }; + + polling() + // trying to always fire before onload + d.onreadystatechange = function() { + if (d.readyState == 'complete') { + d.onreadystatechange = null + init() + } + } + } + } + + /** + * Insert el before target + * + * @param {Element} el + * @param {Element} target + */ + + var before = function(el, target) { + target.parentNode.insertBefore(el, target) + } + + /** + * Prepend el to target + * + * @param {Element} el + * @param {Element} target + */ + + var prepend = function(el, target) { + if (target.firstChild) { + before(el, target.firstChild) + } else { + target.appendChild(el) + } + } + + function appendSvg() { + var div, svg + + div = document.createElement('div') + div.innerHTML = svgSprite + svgSprite = null + svg = div.getElementsByTagName('svg')[0] + if (svg) { + svg.setAttribute('aria-hidden', 'true') + svg.style.position = 'absolute' + svg.style.width = 0 + svg.style.height = 0 + svg.style.overflow = 'hidden' + prepend(svg, document.body) + } + } + + if (shouldInjectCss && !window.__iconfont__svg__cssinject__) { + window.__iconfont__svg__cssinject__ = true + try { + document.write(""); + } catch (e) { + console && console.log(e) + } + } + + ready(appendSvg) + + +})(window) \ No newline at end of file diff --git a/app/source/font/icon/iconfont.svg b/app/source/font/icon/iconfont.svg new file mode 100644 index 0000000..fc5f578 --- /dev/null +++ b/app/source/font/icon/iconfont.svg @@ -0,0 +1,43 @@ + + + + +Created by FontForge 20120731 at Wed Jan 11 16:29:47 2017 + By admin + + + + + + + + + + + + + + diff --git a/app/source/font/icon/iconfont.ttf b/app/source/font/icon/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e4cce6db8c8817bd0abd4de63923a30564d09712 GIT binary patch literal 5104 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 NZO>KgYznV~e*r+QAnE`B literal 0 HcmV?d00001 diff --git a/app/source/font/icon/iconfont.woff b/app/source/font/icon/iconfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..4eed925cf25040d05bbb34589a2487071ec00473 GIT binary patch literal 3156 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 literal 0 HcmV?d00001 diff --git a/app/source/img/avatar.jpg b/app/source/img/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a599d96a69bce9b9f6e819e4819b70f87b927bf7 GIT binary patch literal 8250 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 literal 0 HcmV?d00001 diff --git a/app/source/img/avatar2.jpg b/app/source/img/avatar2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f923b46f77d5df8f5c27ffd3b90f786a7620cfef GIT binary patch literal 85302 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 b=R4J88jg_xBGu2be}$uK1FWJ-{`>lWIxO7C literal 0 HcmV?d00001 diff --git a/app/source/js/main.js b/app/source/js/main.js new file mode 100644 index 0000000..e69de29 diff --git a/app/static/index.js b/app/static/index.js new file mode 100644 index 0000000..926142a --- /dev/null +++ b/app/static/index.js @@ -0,0 +1,10 @@ +/** + * 补丁 + **/ +import 'es6-promise/auto'; +import './tools/fetch'; + + +/*require.ensure([], function(require) { + require("./module"); +}, "name");*/ diff --git a/app/static/tools/NodeList.min.js b/app/static/tools/NodeList.min.js new file mode 100644 index 0000000..2b93db0 --- /dev/null +++ b/app/static/tools/NodeList.min.js @@ -0,0 +1,2 @@ +!function(){function f(a,b){for(var h,i,j,d=[],e=0,f=a.length;f>e;e++)if(j=a[e],j instanceof Node||null==j)d.indexOf(j)<0&&d.push(j);else{if(!(j instanceof window.NodeList||j instanceof g||j instanceof HTMLCollection||j instanceof Array))return a.get=c.get,a.set=c.set,a.call=c.call,a.owner=b,a;for(h=0,i=j.length;i>h;h++)d.push(j[h])}return new g([d,b])}function g(a){var c,b=0,d=a;"string"==typeof a[0]?d=(a[1]||document).querySelectorAll(a[0]):0 in a&&!(a[0]instanceof Node)&&"length"in a[0]&&(d=a[0],a[1]&&(this.owner=a[1]));for(c=this.length=d.length;c>b;b++)this[b]=d[b]}function h(a){d[a]instanceof Function?c[a]=function(){for(var g,b=[],c=!0,d=0,e=this.length;e>d;d++)g=this[d],g&&g[a]instanceof Function?(g=g[a].apply(g,arguments),b.push(g),c&&void 0!==g&&(c=!1)):b.push(void 0);return c?this:f(b,this)}:Object.defineProperty(c,a,{get:function(){for(var e,b=[],c=0,d=this.length;d>c;c++)e=this[c],null!=e&&(e=e[a]),b.push(e);return f(b,this)},set:function(b){for(var e,c=0,d=this.length;d>c;c++)e=this[c],e&&a in e&&(e[a]=b)}})}var c,d,e,a=Array.prototype,b=new Error("Passed arguments must be of Node");c=g.prototype={includes:a.includes||function(a,b){return this.indexOf(a,b)>-1},forEach:function(){return a.forEach.apply(this,arguments),this},push:function k(){for(var e,k=a.push.bind(this),c=0,d=arguments.length;d>c;c++){if(e=arguments[c],!(e instanceof Node))throw b;this.indexOf(e)<0&&k(e)}return this},pop:function l(b){"number"!=typeof b&&(b=1);var d,c=[],l=a.pop.bind(this);for(d=0;b>d;d++)c.push(l());return new g([c,this])},unshift:function m(){for(var e,m=a.unshift.bind(this),c=0,d=arguments.length;d>c;c++){if(e=arguments[c],!(e instanceof Node))throw b;this.indexOf(e)<0&&m(e)}return this},shift:function n(b){"number"!=typeof b&&(b=1);var d,c=[],n=a.shift.bind(this);for(d=0;b>d;d++)c.push(n());return new g([c,this])},splice:function(){for(var c=2,d=arguments.length;d>c;c++)if(!(arguments[c]instanceof Node))throw b;return new g([a.splice.apply(this,arguments),this])},slice:function(){return new g([a.slice.apply(this,arguments),this])},filter:function(){return new g([a.filter.apply(this,arguments),this])},map:function(){return f(a.map.apply(this,arguments),this)},concat:function(){function f(a){for(var c=0,d=a.length;d>c;c++)a[c]instanceof Node?b.indexOf(a[c])<0&&b.push(a[c]):a[c]&&f(a[c])}for(var e,b=a.slice.call(this),c=0,d=arguments.length;d>c;c++)if(e=arguments[c],e instanceof Node)b.indexOf(e)<0&&b.push(e);else{if(!(e instanceof window.NodeList||e instanceof g||e instanceof HTMLCollection||e instanceof Array))throw Error("Concat arguments must be of a Node, NodeList, HTMLCollection, or Array of (Node, NodeList, HTMLCollection, Array)");f(e)}return new g([b,this])},get:function(a){for(var e,b=[],c=0,d=this.length;d>c;c++)e=this[c],null!=e&&(e=e[a]),b.push(e);return f(b,this)},set:function(a,b){var e,f,c=0,d=this.length;if(a.constructor===Object){for(;d>c;c++)if(e=this[c])for(f in a)f in e&&(e[f]=a[f])}else for(;d>c;c++)e=this[c],e&&a in e&&(e[a]=b);return this},call:function(){for(var h,b=[],c=a.shift.call(arguments),d=!0,e=0,g=this.length;g>e;e++)h=this[e],h&&h[c]instanceof Function?(h=h[c].apply(h,arguments),b.push(h),d&&void 0!==h&&(d=!1)):b.push(void 0);return d?this:f(b,this)},item:function(a){return new g([[this[a]],this])},get asArray(){return a.slice.call(this)}},Object.getOwnPropertyNames(a).forEach(function(b){"join"!==b&&"copyWithin"!==b&&"fill"!==b&&void 0===c[b]&&(c[b]=a[b])}),window.Symbol&&Symbol.iterator&&(c[Symbol.iterator]=c.values=a[Symbol.iterator]),d=document.createElement("div");for(e in d)h(e);d=e=null,window.$$=function(){return new g(arguments)},window.$$.NL=c}(); +export {$$ as default}; diff --git a/app/static/tools/fetch.js b/app/static/tools/fetch.js new file mode 100644 index 0000000..279373c --- /dev/null +++ b/app/static/tools/fetch.js @@ -0,0 +1,458 @@ +(function(self) { + 'use strict'; + + if (self.fetch) { + return + } + + var support = { + searchParams: 'URLSearchParams' in self, + iterable: 'Symbol' in self && 'iterator' in Symbol, + blob: 'FileReader' in self && 'Blob' in self && (function() { + try { + new Blob() + return true + } catch(e) { + return false + } + })(), + formData: 'FormData' in self, + arrayBuffer: 'ArrayBuffer' in self + } + + if (support.arrayBuffer) { + var viewClasses = [ + '[object Int8Array]', + '[object Uint8Array]', + '[object Uint8ClampedArray]', + '[object Int16Array]', + '[object Uint16Array]', + '[object Int32Array]', + '[object Uint32Array]', + '[object Float32Array]', + '[object Float64Array]' + ] + + var isDataView = function(obj) { + return obj && DataView.prototype.isPrototypeOf(obj) + } + + var isArrayBufferView = ArrayBuffer.isView || function(obj) { + return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 + } + } + + function normalizeName(name) { + if (typeof name !== 'string') { + name = String(name) + } + if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) { + throw new TypeError('Invalid character in header field name') + } + return name.toLowerCase() + } + + function normalizeValue(value) { + if (typeof value !== 'string') { + value = String(value) + } + return value + } + + // Build a destructive iterator for the value list + function iteratorFor(items) { + var iterator = { + next: function() { + var value = items.shift() + return {done: value === undefined, value: value} + } + } + + if (support.iterable) { + iterator[Symbol.iterator] = function() { + return iterator + } + } + + return iterator + } + + function Headers(headers) { + this.map = {} + + if (headers instanceof Headers) { + headers.forEach(function(value, name) { + this.append(name, value) + }, this) + + } else if (headers) { + Object.getOwnPropertyNames(headers).forEach(function(name) { + this.append(name, headers[name]) + }, this) + } + } + + Headers.prototype.append = function(name, value) { + name = normalizeName(name) + value = normalizeValue(value) + var oldValue = this.map[name] + this.map[name] = oldValue ? oldValue+','+value : value + } + + Headers.prototype['delete'] = function(name) { + delete this.map[normalizeName(name)] + } + + Headers.prototype.get = function(name) { + name = normalizeName(name) + return this.has(name) ? this.map[name] : null + } + + Headers.prototype.has = function(name) { + return this.map.hasOwnProperty(normalizeName(name)) + } + + Headers.prototype.set = function(name, value) { + this.map[normalizeName(name)] = normalizeValue(value) + } + + Headers.prototype.forEach = function(callback, thisArg) { + for (var name in this.map) { + if (this.map.hasOwnProperty(name)) { + callback.call(thisArg, this.map[name], name, this) + } + } + } + + Headers.prototype.keys = function() { + var items = [] + this.forEach(function(value, name) { items.push(name) }) + return iteratorFor(items) + } + + Headers.prototype.values = function() { + var items = [] + this.forEach(function(value) { items.push(value) }) + return iteratorFor(items) + } + + Headers.prototype.entries = function() { + var items = [] + this.forEach(function(value, name) { items.push([name, value]) }) + return iteratorFor(items) + } + + if (support.iterable) { + Headers.prototype[Symbol.iterator] = Headers.prototype.entries + } + + function consumed(body) { + if (body.bodyUsed) { + return Promise.reject(new TypeError('Already read')) + } + body.bodyUsed = true + } + + function fileReaderReady(reader) { + return new Promise(function(resolve, reject) { + reader.onload = function() { + resolve(reader.result) + } + reader.onerror = function() { + reject(reader.error) + } + }) + } + + function readBlobAsArrayBuffer(blob) { + var reader = new FileReader() + var promise = fileReaderReady(reader) + reader.readAsArrayBuffer(blob) + return promise + } + + function readBlobAsText(blob) { + var reader = new FileReader() + var promise = fileReaderReady(reader) + reader.readAsText(blob) + return promise + } + + function readArrayBufferAsText(buf) { + var view = new Uint8Array(buf) + var chars = new Array(view.length) + + for (var i = 0; i < view.length; i++) { + chars[i] = String.fromCharCode(view[i]) + } + return chars.join('') + } + + function bufferClone(buf) { + if (buf.slice) { + return buf.slice(0) + } else { + var view = new Uint8Array(buf.byteLength) + view.set(new Uint8Array(buf)) + return view.buffer + } + } + + function Body() { + this.bodyUsed = false + + this._initBody = function(body) { + this._bodyInit = body + if (!body) { + this._bodyText = '' + } else if (typeof body === 'string') { + this._bodyText = body + } else if (support.blob && Blob.prototype.isPrototypeOf(body)) { + this._bodyBlob = body + } else if (support.formData && FormData.prototype.isPrototypeOf(body)) { + this._bodyFormData = body + } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { + this._bodyText = body.toString() + } else if (support.arrayBuffer && support.blob && isDataView(body)) { + this._bodyArrayBuffer = bufferClone(body.buffer) + // IE 10-11 can't handle a DataView body. + this._bodyInit = new Blob([this._bodyArrayBuffer]) + } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) { + this._bodyArrayBuffer = bufferClone(body) + } else { + throw new Error('unsupported BodyInit type') + } + + if (!this.headers.get('content-type')) { + if (typeof body === 'string') { + this.headers.set('content-type', 'text/plain;charset=UTF-8') + } else if (this._bodyBlob && this._bodyBlob.type) { + this.headers.set('content-type', this._bodyBlob.type) + } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { + this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8') + } + } + } + + if (support.blob) { + this.blob = function() { + var rejected = consumed(this) + if (rejected) { + return rejected + } + + if (this._bodyBlob) { + return Promise.resolve(this._bodyBlob) + } else if (this._bodyArrayBuffer) { + return Promise.resolve(new Blob([this._bodyArrayBuffer])) + } else if (this._bodyFormData) { + throw new Error('could not read FormData body as blob') + } else { + return Promise.resolve(new Blob([this._bodyText])) + } + } + + this.arrayBuffer = function() { + if (this._bodyArrayBuffer) { + return consumed(this) || Promise.resolve(this._bodyArrayBuffer) + } else { + return this.blob().then(readBlobAsArrayBuffer) + } + } + } + + this.text = function() { + var rejected = consumed(this) + if (rejected) { + return rejected + } + + if (this._bodyBlob) { + return readBlobAsText(this._bodyBlob) + } else if (this._bodyArrayBuffer) { + return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer)) + } else if (this._bodyFormData) { + throw new Error('could not read FormData body as text') + } else { + return Promise.resolve(this._bodyText) + } + } + + if (support.formData) { + this.formData = function() { + return this.text().then(decode) + } + } + + this.json = function() { + return this.text().then(JSON.parse) + } + + return this + } + + // HTTP methods whose capitalization should be normalized + var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'] + + function normalizeMethod(method) { + var upcased = method.toUpperCase() + return (methods.indexOf(upcased) > -1) ? upcased : method + } + + function Request(input, options) { + options = options || {} + var body = options.body + + if (typeof input === 'string') { + this.url = input + } else { + if (input.bodyUsed) { + throw new TypeError('Already read') + } + this.url = input.url + this.credentials = input.credentials + if (!options.headers) { + this.headers = new Headers(input.headers) + } + this.method = input.method + this.mode = input.mode + if (!body && input._bodyInit != null) { + body = input._bodyInit + input.bodyUsed = true + } + } + + this.credentials = options.credentials || this.credentials || 'omit' + if (options.headers || !this.headers) { + this.headers = new Headers(options.headers) + } + this.method = normalizeMethod(options.method || this.method || 'GET') + this.mode = options.mode || this.mode || null + this.referrer = null + + if ((this.method === 'GET' || this.method === 'HEAD') && body) { + throw new TypeError('Body not allowed for GET or HEAD requests') + } + this._initBody(body) + } + + Request.prototype.clone = function() { + return new Request(this, { body: this._bodyInit }) + } + + function decode(body) { + var form = new FormData() + body.trim().split('&').forEach(function(bytes) { + if (bytes) { + var split = bytes.split('=') + var name = split.shift().replace(/\+/g, ' ') + var value = split.join('=').replace(/\+/g, ' ') + form.append(decodeURIComponent(name), decodeURIComponent(value)) + } + }) + return form + } + + function parseHeaders(rawHeaders) { + var headers = new Headers() + rawHeaders.split('\r\n').forEach(function(line) { + var parts = line.split(':') + var key = parts.shift().trim() + if (key) { + var value = parts.join(':').trim() + headers.append(key, value) + } + }) + return headers + } + + Body.call(Request.prototype) + + function Response(bodyInit, options) { + if (!options) { + options = {} + } + + this.type = 'default' + this.status = 'status' in options ? options.status : 200 + this.ok = this.status >= 200 && this.status < 300 + this.statusText = 'statusText' in options ? options.statusText : 'OK' + this.headers = new Headers(options.headers) + this.url = options.url || '' + this._initBody(bodyInit) + } + + Body.call(Response.prototype) + + Response.prototype.clone = function() { + return new Response(this._bodyInit, { + status: this.status, + statusText: this.statusText, + headers: new Headers(this.headers), + url: this.url + }) + } + + Response.error = function() { + var response = new Response(null, {status: 0, statusText: ''}) + response.type = 'error' + return response + } + + var redirectStatuses = [301, 302, 303, 307, 308] + + Response.redirect = function(url, status) { + if (redirectStatuses.indexOf(status) === -1) { + throw new RangeError('Invalid status code') + } + + return new Response(null, {status: status, headers: {location: url}}) + } + + self.Headers = Headers + self.Request = Request + self.Response = Response + + self.fetch = function(input, init) { + return new Promise(function(resolve, reject) { + var request = new Request(input, init) + var xhr = new XMLHttpRequest() + + xhr.onload = function() { + var options = { + status: xhr.status, + statusText: xhr.statusText, + headers: parseHeaders(xhr.getAllResponseHeaders() || '') + } + options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL') + var body = 'response' in xhr ? xhr.response : xhr.responseText + resolve(new Response(body, options)) + } + + xhr.onerror = function() { + reject(new TypeError('Network request failed')) + } + + xhr.ontimeout = function() { + reject(new TypeError('Network request failed')) + } + + xhr.open(request.method, request.url, true) + + if (request.credentials === 'include') { + xhr.withCredentials = true + } + + if ('responseType' in xhr && support.blob) { + xhr.responseType = 'blob' + } + + request.headers.forEach(function(value, name) { + xhr.setRequestHeader(name, value) + }) + + xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit) + }) + } + self.fetch.polyfill = true +})(typeof self !== 'undefined' ? self : this); diff --git a/app/view/index/actions/index.jsx b/app/view/index/actions/index.jsx new file mode 100644 index 0000000..5d18b9c --- /dev/null +++ b/app/view/index/actions/index.jsx @@ -0,0 +1,14 @@ +import { createAction } from 'redux-actions'; + +let todoIdCount = 0; +export const ADD_TODO = createAction('ADD_TODO', text => ({ + text, + id: todoIdCount++, + isComplete: false +})); +export const DELETE_TODO = createAction('DELETE_TODO', id => id); +export const COMPLETE_TODO = createAction('COMPLETE_TODO', id => id); +export const FILTER_TODO = createAction('FILTER_TODO', filter => filter); +export const CLEAR_TODO = createAction('CLEAR_TODO', () => { + todoIdCount = 0; +}); \ No newline at end of file diff --git a/app/view/index/components/AddTodo/Input.jsx b/app/view/index/components/AddTodo/Input.jsx new file mode 100644 index 0000000..01868c3 --- /dev/null +++ b/app/view/index/components/AddTodo/Input.jsx @@ -0,0 +1,10 @@ +import styled from 'styled-components'; + +const Input = styled.input`{ + box-sizing: border-box; + width: 100%; + padding: 10px 20px; + outline: none; +}`; + +export default Input; \ No newline at end of file diff --git a/app/view/index/components/AddTodo/index.jsx b/app/view/index/components/AddTodo/index.jsx new file mode 100644 index 0000000..7a20021 --- /dev/null +++ b/app/view/index/components/AddTodo/index.jsx @@ -0,0 +1,37 @@ +import React, { PropTypes, Component } from 'react'; +import Input from './Input'; + +class AddTodo extends Component { + static propTypes() { + return { + $ADD_TODO: PropTypes.func.isRequired + }; + } + + static shouldComponentUpdate() { + return false; + } + + handleAddTodo(e) { + e.preventDefault(); + if (this.input.value) { + this.props.$ADD_TODO(this.input.value); + this.input.value = ''; + } + } + + render() { + return ( +
this.handleAddTodo(e)}> + { + this.input = e; + }} + /> +
+ ); + } +} + +export default AddTodo; \ No newline at end of file diff --git a/app/view/index/components/Button/ActiveButton.jsx b/app/view/index/components/Button/ActiveButton.jsx new file mode 100644 index 0000000..d5d2fab --- /dev/null +++ b/app/view/index/components/Button/ActiveButton.jsx @@ -0,0 +1,24 @@ +import styled from 'styled-components'; + +const ActiveButton = styled.a`{ + box-shadow: inset 0 1px 0 0 #fff; + background: linear-gradient(to bottom, #f0f0f0 5%, #f6f6f6 100%); + background-color: #fff; + border-radius: 6px; + border: 1px solid #dcdcdc; + display: inline-block; + cursor: pointer; + color: #666; + font-family: Arial; + font-size: 14px; + font-weight: bold; + padding: 9px 27px; + text-decoration: none; + text-shadow: 0 1px 0 #fff; + &:hover{ + background: linear-gradient(to bottom, #f6f6f6 5%, #fff 100%); + background-color: #f6f6f6; + } +}`; + +export default ActiveButton; \ No newline at end of file diff --git a/app/view/index/components/Button/DefaultButton.jsx b/app/view/index/components/Button/DefaultButton.jsx new file mode 100644 index 0000000..9059917 --- /dev/null +++ b/app/view/index/components/Button/DefaultButton.jsx @@ -0,0 +1,24 @@ +import styled from 'styled-components'; + +const DefaultButton = styled.a`{ + box-shadow: inset 0 1px 0 0 #fff; + background: linear-gradient(to bottom, #fff 5%, #f6f6f6 100%); + background-color: #fff; + border-radius: 6px; + border: 1px solid #dcdcdc; + display: inline-block; + cursor: pointer; + color: #666; + font-family: Arial; + font-size: 14px; + font-weight: bold; + padding: 9px 27px; + text-decoration: none; + text-shadow: 0 1px 0 #fff; + &:hover{ + background: linear-gradient(to bottom, #f6f6f6 5%, #fff 100%); + background-color: #f6f6f6; + } +}`; + +export default DefaultButton; \ No newline at end of file diff --git a/app/view/index/components/Button/index.jsx b/app/view/index/components/Button/index.jsx new file mode 100644 index 0000000..4a4b087 --- /dev/null +++ b/app/view/index/components/Button/index.jsx @@ -0,0 +1,20 @@ +import React, { PropTypes } from 'react'; +import ActiveButton from './ActiveButton'; +import DefaultButton from './DefaultButton'; + +function Button({ children, $click, isActiveButton }) { + const Node = isActiveButton ? ActiveButton : DefaultButton; + return ( + + {children} + + ); +} + +Button.propTypes = { + children: PropTypes.string.isRequired, + $click: PropTypes.func.isRequired, + isActiveButton: PropTypes.bool.isRequired +}; + +export default Button; \ No newline at end of file diff --git a/app/view/index/components/Footer.jsx b/app/view/index/components/Footer.jsx new file mode 100644 index 0000000..d6cbcaa --- /dev/null +++ b/app/view/index/components/Footer.jsx @@ -0,0 +1,52 @@ +import React, { PropTypes } from 'react'; +import Button from './Button'; + +function Footer({ todoFilter, handleFilterTodo, $CLEAR_TODO }) { + return ( +
+ + {' '} + + {' '} + + {' '} + +
+ ); +} + +Footer.propTypes = { + todoFilter: PropTypes.string.isRequired, + handleFilterTodo: PropTypes.func.isRequired, + $CLEAR_TODO: PropTypes.func.isRequired +}; + +export default Footer; \ No newline at end of file diff --git a/app/view/index/components/Todo/index.jsx b/app/view/index/components/Todo/index.jsx new file mode 100644 index 0000000..45f7a2f --- /dev/null +++ b/app/view/index/components/Todo/index.jsx @@ -0,0 +1,56 @@ +import React, { PropTypes, PureComponent } from 'react'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import './index.pcss'; + +class AddTodo extends PureComponent { + static propTypes() { + return { + todo: ImmutablePropTypes.list.isRequired, + $COMPLETE_TODO: PropTypes.func.isRequired, + $DELETE_TODO: PropTypes.func.isRequired + }; + } + + componentWillMount() { + console.info(`%cToDo mounting- ID: ${this.props.todo.get('id')}`, 'color:green; font-weight:bold;'); + } + + componentWillUpdate(nextProps) { + console.info(`%cToDo updating - ID: ' ${nextProps.todo.get('id')}`, 'color:blue; font-weight:bold;'); + } + + componentWillUnmount() { + console.info(`%cToDo unmounting - ID: ${this.props.todo.get('id')}`, 'color:orange; font-weight:bold;'); + } + + handleCompleteTodo(e) { + e.stopPropagation(); + this.props.$COMPLETE_TODO(this.props.todo.get('id')); + return false; + } + + handleDeleteTodo(e) { + e.stopPropagation(); + this.props.$DELETE_TODO(this.props.todo.get('id')); + return false; + } + + render() { + const { todo } = this.props; + return ( +
  • this.handleCompleteTodo(e)} + > + {todo.get('text')} + this.handleDeleteTodo(e)} + >x +
  • + ); + } +} + +export default AddTodo; \ No newline at end of file diff --git a/app/view/index/components/Todo/index.pcss b/app/view/index/components/Todo/index.pcss new file mode 100644 index 0000000..753aabe --- /dev/null +++ b/app/view/index/components/Todo/index.pcss @@ -0,0 +1,26 @@ +.todo { + padding: 10px 20px; + margin-top: -1px; + border: 1px solid #ddd; + background: #fff; + cursor: pointer; + &:hover { + background: #fcfcfc; + } + & a { + color: #bbb; + &:hover { + color: #2d2d34; + } + } +} + +.todoList { + & .complete { + background: rgba(255, 255, 0, 0.24); + & span { + text-decoration: line-through; + opacity: .3; + } + } +} \ No newline at end of file diff --git a/app/view/index/containers/App.jsx b/app/view/index/containers/App.jsx new file mode 100644 index 0000000..2365d69 --- /dev/null +++ b/app/view/index/containers/App.jsx @@ -0,0 +1,31 @@ +import React from 'react'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { connect } from 'react-redux'; +import TodoList from './TodoList'; + +function App({ todoList }) { + return ( +
    +
    + +
    +

    + + Sayll + + by  +

    +
    + ); +} + +App.propTypes = { + todoList: ImmutablePropTypes.list.isRequired +}; + +function mapStateToProps(state) { + return { + todoList: state.todos + }; +} +export default connect(mapStateToProps, {})(App); \ No newline at end of file diff --git a/app/view/index/containers/TodoList.jsx b/app/view/index/containers/TodoList.jsx new file mode 100644 index 0000000..e1e64bf --- /dev/null +++ b/app/view/index/containers/TodoList.jsx @@ -0,0 +1,72 @@ +import React, { PropTypes, PureComponent } from 'react'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { connect } from 'react-redux'; +import { DELETE_TODO, COMPLETE_TODO, ADD_TODO, FILTER_TODO, CLEAR_TODO } from '../actions'; +import Todo from '../components/Todo'; +import AddTodo from '../components/AddTodo'; +import Footer from '../components/Footer'; + +class TodoList extends PureComponent { + static propTypes() { + return { + todoList: ImmutablePropTypes.list.isRequired, + todoFilter: PropTypes.string.isRequired, + ADD_TODO: PropTypes.func.isRequired, + CLEAR_TODO: PropTypes.func.isRequired, + COMPLETE_TODO: PropTypes.func.isRequired, + DELETE_TODO: PropTypes.func.isRequired, + FILTER_TODO: PropTypes.func.isRequired, + }; + } + + handleFilterTodo(filter) { + switch (filter) { + case 'COMPLETE': + return this.props.todoList.filter(todo => todo.get('isComplete')); + case 'ACTION': + return this.props.todoList.filter(todo => !todo.get('isComplete')); + default: + return this.props.todoList; + } + } + + render() { + this.todos = this.handleFilterTodo(this.props.todoFilter); + return ( +
    +

    TODO LIST DEMO

    + +
      + { + this.todos.map(todo => ( + + )) + } +
    +
    this.props.FILTER_TODO(filter)} + todoFilter={this.props.todoFilter} + $FILTER_TODO={this.props.FILTER_TODO} + $CLEAR_TODO={this.props.CLEAR_TODO} + /> +
    + ); + } +} + +function mapStateToProps(state) { + return state; +} + +export default connect(mapStateToProps, { + ADD_TODO, + CLEAR_TODO, + COMPLETE_TODO, + DELETE_TODO, + FILTER_TODO, +})(TodoList); \ No newline at end of file diff --git a/app/view/index/epics/index.jsx b/app/view/index/epics/index.jsx new file mode 100644 index 0000000..ef65f3b --- /dev/null +++ b/app/view/index/epics/index.jsx @@ -0,0 +1,5 @@ +import { combineEpics } from 'redux-observable'; + +const epics = []; + +export default combineEpics(...epics); diff --git a/app/view/index/epics/requestSignFromPosts.jsx b/app/view/index/epics/requestSignFromPosts.jsx new file mode 100644 index 0000000..fcdf5ee --- /dev/null +++ b/app/view/index/epics/requestSignFromPosts.jsx @@ -0,0 +1,20 @@ +import { Observable } from 'rxjs/Observable'; +import * as Actions from '../actions'; + +Observable.of('start').subscribe((v) => { + console.log(v); + return v; +}); + +export default function requestSignFromPosts(action$, store, { getJSON }) { + return action$.filter(action => action.type === Actions.REQUEST_POSTS().type) + .switchMap(() => + getJSON('https://api.github.com/search/users?q=21') + .map(res => ({ + items: res.items + }))) + .map(res => ({ + type: Actions.REQUEST_TESTS, + items: res.items + })); +} diff --git a/app/view/index/index.jsx b/app/view/index/index.jsx new file mode 100644 index 0000000..c4be9fa --- /dev/null +++ b/app/view/index/index.jsx @@ -0,0 +1,27 @@ +import 'rxjs/Rx'; +import React from 'react'; +import { render } from 'react-dom'; +import { Provider } from 'react-redux'; +import { AppContainer } from 'react-hot-loader'; +import store from './store'; +import App from './containers/App'; + +// 创建app +function Render(Component) { + render( + + + + + , + document.getElementById('root') + ); +} +Render(App); + +// views 热替换 +if (process.env.NODE_ENV !== 'production' && module.hot) { + module.hot.accept('./containers/App', () => { + Render(App); + }); +} \ No newline at end of file diff --git a/app/view/index/index.pcss b/app/view/index/index.pcss new file mode 100644 index 0000000..ea3535e --- /dev/null +++ b/app/view/index/index.pcss @@ -0,0 +1,8 @@ +body { + background-color: rgb(252, 252, 252) !important; +} + +#root { + margin: 100px auto; + width: 600px; +} diff --git a/app/view/index/reducers/createReducer.jsx b/app/view/index/reducers/createReducer.jsx new file mode 100644 index 0000000..dc5a830 --- /dev/null +++ b/app/view/index/reducers/createReducer.jsx @@ -0,0 +1,27 @@ +import Immutable, { Map, List } from 'immutable'; +/* +const test = Immutable.fromJS({ a: { b: [10, 20, 30] }, c: 40 }, (key, value) => { + const isIndexed = Immutable.Iterable.isIndexed(value); + return isIndexed ? value.toList() : value.toOrderedMap(); +}); +console.log(test); +*/ + +export default function createReducer(initialState, handlers) { + return (State = initialState, action) => { + let state = State; + // 转化为 Immutable 类型数据 + if (!Map.isMap(state) && !List.isList(state)) { + state = Immutable.fromJS(state); + } + // 最终数据如果还不是 Immutable 类型,则抛出错误 + if (!Map.isMap(state) && !List.isList(state) && typeof state !== 'string') { + throw new TypeError('Reducers must return Immutable objects.'); + } + // Type 存在就输出对应的state + if (Object.prototype.hasOwnProperty.call(handlers, action.type)) { + return handlers[action.type](state, action); + } + return state; + }; +} diff --git a/app/view/index/reducers/index.jsx b/app/view/index/reducers/index.jsx new file mode 100644 index 0000000..32ac362 --- /dev/null +++ b/app/view/index/reducers/index.jsx @@ -0,0 +1,6 @@ +import { combineReducers } from 'redux'; +import todos from './todos'; + +export default combineReducers({ + ...todos +}); diff --git a/app/view/index/reducers/todos.jsx b/app/view/index/reducers/todos.jsx new file mode 100644 index 0000000..297636d --- /dev/null +++ b/app/view/index/reducers/todos.jsx @@ -0,0 +1,61 @@ +import { Map } from 'immutable'; +import createReducer from './createReducer'; +import { + ADD_TODO, + DELETE_TODO, + COMPLETE_TODO, + FILTER_TODO, + CLEAR_TODO +} from '../actions'; + +const todos = createReducer([], { + /** + * @AddTodo 组件的业务逻辑 + **/ + + [ADD_TODO](state, action) { + console.log(action); + return state.push(Map(action.payload)); + }, + + /** + * @TODO 组件的业务逻辑 + **/ + + [DELETE_TODO](state, action) { + return state.filter(todo => todo.get('id') !== action.payload); + }, + + [COMPLETE_TODO](state, action) { + return state.map(todo => { + // 切换 isComplete 状态 + if (todo.get('id') === action.payload) { + return todo.update('isComplete', v => !v); + } + return todo; + }); + }, + + /** + * Footer 组件业务逻辑 + * */ + + [CLEAR_TODO](state) { + return state.clear(); + } +}); + +const todoFilter = createReducer('ALL', { + /** + * @Footer 组件的业务逻辑 + **/ + + [FILTER_TODO](state, action) { + return action.payload; + }, +}); + +export default { + todos, + todoFilter +}; diff --git a/app/view/index/store.jsx b/app/view/index/store.jsx new file mode 100644 index 0000000..253f123 --- /dev/null +++ b/app/view/index/store.jsx @@ -0,0 +1,33 @@ +import { createStore, applyMiddleware, compose } from 'redux'; +import { createEpicMiddleware } from 'redux-observable'; +import { ajax } from 'rxjs/Observable/dom/ajax'; +import createLogger from 'redux-logger'; +import rootReducer from './reducers'; +import rootEpic from './epics'; + +// Redux DevTools +const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; +const epicMiddleware = createEpicMiddleware(rootEpic, { + dependencies: { + getJSON: ajax.getJSON, + post: ajax.post, + } +}); +const middleware = [epicMiddleware]; + +// 开发环境添加 Logger +if (process.env.NODE_ENV !== 'production') { + middleware.push(createLogger); + // Epic 热替换 + if (module.hot) { + module.hot.accept('./epics', () => { + epicMiddleware.replaceEpic(rootEpic); + }); + } +} + + +export default createStore( + rootReducer, + composeEnhancers(applyMiddleware(...middleware)) +); diff --git a/config/webpack/base/base.js b/config/webpack/base/base.js new file mode 100644 index 0000000..3ed1a5a --- /dev/null +++ b/config/webpack/base/base.js @@ -0,0 +1,8 @@ +module.exports = { + mainJS: false, // 添加公共main.js + devHost: '0.0.0.0', + devPort: '3000', + viewType: 'html', // pug,jade,html... + cssType: 'pcss', // sass,scss,less,pcss,css... + cdnPath: './', // 资源指向位置,可寄放CDN +}; diff --git a/config/webpack/base/files.js b/config/webpack/base/files.js new file mode 100644 index 0000000..1387888 --- /dev/null +++ b/config/webpack/base/files.js @@ -0,0 +1,32 @@ +const path = require('path'); + +module.exports = ((filesName) => { + const files = filesName; + const appPath = path.resolve(files.root, files.appName); + files.appPath = appPath; + files.buildPath = path.resolve(files.root, files.buildName); + files.dllPath = path.resolve(files.root, `${files.buildName}/dll`); + files.jsPath = path.resolve(appPath, files.jsName); + files.cssPath = path.resolve(appPath, files.cssName); + files.imgPath = path.resolve(appPath, files.imgName); + files.fontPath = path.resolve(appPath, files.fontName); + files.viewPath = path.resolve(appPath, files.viewName); + files.testPath = path.resolve(appPath, files.testName); + files.htmlPath = path.resolve(appPath, files.htmlName); + files.staticPath = path.resolve(appPath, files.staticName); + files.componentPath = path.resolve(appPath, files.componentName); + return files; +})({ + root: process.cwd(), // 根目录 + appName: 'app', + buildName: 'build', // 打包文件 + componentName: 'component', // 公共组件文件 + htmlName: 'html', // 视图文件 + cssName: 'source/css', // 公共样式文件 + fontName: 'source/font', // 公共字体文件 + imgName: 'source/img', // 公共图片文件 + jsName: 'source/js', // 公共脚本文件 + staticName: 'static', // 静态资源包文件 + viewName: 'view', // 视图模板文件 + testName: 'tests', // 测试文件 +}); diff --git a/config/webpack/modules/babel.js b/config/webpack/modules/babel.js new file mode 100644 index 0000000..91fbef8 --- /dev/null +++ b/config/webpack/modules/babel.js @@ -0,0 +1,35 @@ +const babel = { + + // cacheDirectory: true, + + 'presets': [ + [ + 'es2015', + { + 'modules': false, + } + ], + 'stage-2', + // Stage 2 is "draft", 4 is finished, 0 is strawMan. + 'react', + ], + + 'plugins': ['transform-runtime',], + + 'env': { + 'development': { + 'plugins': ['react-hot-loader/babel'], + }, + 'production': { + 'presets': [], + 'plugins': [], + } + }, + +}; + +if (process.env.NODE_TEST) { // 启用测试模式 + babel.plugins.push('istanbul'); +} + +module.exports = babel; \ No newline at end of file diff --git a/config/webpack/modules/entry.js b/config/webpack/modules/entry.js new file mode 100644 index 0000000..1727038 --- /dev/null +++ b/config/webpack/modules/entry.js @@ -0,0 +1,23 @@ +const base = require('../base/base'); + +module.exports = ((entry) => { + let All = {}; + + if (base.mainJS) { + const path = require('path'); + + const files = require('../base/files'); + + All = Object.assign(entry, { + 'Main': [path.resolve(files.jsPath, 'main.js')], + }); + } + + return base.mainJS ? All : entry; +})({ + 'Common': [ + 'lib', + 'css', + /* 'core-js', 'babel-polyfill' */ + ] +}); diff --git a/config/webpack/modules/externals.js b/config/webpack/modules/externals.js new file mode 100644 index 0000000..b4550b2 --- /dev/null +++ b/config/webpack/modules/externals.js @@ -0,0 +1,7 @@ +module.exports = { + /*lodash: { + commonjs: "lodash", + amd: "lodash", + root: "_" // indicates global variable + }*/ +}; diff --git a/config/webpack/modules/loader.js b/config/webpack/modules/loader.js new file mode 100644 index 0000000..a408c08 --- /dev/null +++ b/config/webpack/modules/loader.js @@ -0,0 +1,81 @@ +const base = require('../base/base'); +const files = require('../base/files'); + +module.exports = (dev) => { + return { + rules: [ + { + test: /\.jsx$|\.js$/, + enforce: "pre", + exclude: [], + include: [files.viewPath], + use: ['happypack/loader?id=ESLint'] + }, + { + test: /\.(js|jsx)$/, + include: [files.viewPath, files.staticPath, files.jsPath, files.htmlPath], + use: ['happypack/loader?id=JSX'] + }, + { + test: /\.(css|pcss)$/, // 标准的CSS编译 + include: [files.viewPath, files.cssPath], + use: require('extract-text-webpack-plugin').extract({ + fallback: 'style-loader', + use: [{ + loader: 'css-loader', + query: { + modules: false, + outputStyle: 'expanded', + sourceMap: dev, + sourceMapContents: dev + } + }, 'postcss-loader'] + }) + }, + + { + test: /\.(html)$/, + include: [files.htmlPath], + use: ['happypack/loader?id=HTML'] + }, + + { + test: /\.(jpg|jpeg|png|gif|svg)$/, + include: [files.appPath], + use: [ + { + loader: 'url-loader', + query: { + limit: 2000, + publicPath: '/', + name: 'assets/[name]-[hash:8].[ext]' + } + }, + { + loader: 'image-webpack-loader', + query: { + progressive: true, + pngquant: { + quality: '65-90', + speed: 4 + } + } + } + ] + }, + + { + test: /\.(svg|ico|woff|eot|ttf)$/, + include: [files.appPath], + use: [{ + loader: 'url-loader', + query: { + limit: 1, + publicPath: '/', + name: 'assets/[name]-[hash:8].[ext]' + } + }] + } + ] + }; +}; \ No newline at end of file diff --git a/config/webpack/modules/plugins.js b/config/webpack/modules/plugins.js new file mode 100644 index 0000000..a61ca77 --- /dev/null +++ b/config/webpack/modules/plugins.js @@ -0,0 +1,83 @@ +const base = require('../base/base'), + files = require('../base/files'), + HappyPack = require('happypack'), + webpack = require('webpack'); + +function cHappypack(id, loaders) { + return new HappyPack({ + id: id, + debug: false, + verbose: false, + cache: true, + threads: 4, + cacheContext: { + env: process.env.NODE_ENV + }, + loaders: loaders + }) +} + +const vendorsJson = files.dllPath + '/vendors.json'; + +module.exports = [ + + new webpack.LoaderOptionsPlugin({ + minimize: true, + debug: false, + options: { + context: files.appPath, + postcss: [ + /* function vr(css) { // postCss插件DEMO + // 设置 line-height. + var lineHeight = 32; + // 使用 PostCSS 的 `eachDecl()` 遍历每个 CSS 声明,并传入声明字符串 (`decl`)。 + css.eachDecl(function (decl) { + // 如果声明值匹配到了 `vr` 单位。 + if (decl.value.match(/vr/)) { + decl.value = lineHeight * parseFloat(decl.value) + 'px'; + } + }); + }*/ + require("postcss-cssnext")(({ + features: { + customProperties: false + } + })), + /** + * 以下部分为了针对mobile做处理 + * 牺牲了cssMaps,位置不要随意调整 + * */ + //require("postcss-import")({root: files.cssPath}), + //require("postcss-extend")(), + //require("postcss-url")(), + /*require("postcss-px2rem")({ + remUnit : 75, + remPrecision: 8, + baseDpr : 2 // 默认2倍视角 + })*/ + ] + } + }), + + new webpack.NoEmitOnErrorsPlugin(), + + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify(process.env.NODE_ENV), + }, + }), + + new webpack.DllReferencePlugin({ + context: '/', + manifest: require(vendorsJson) + }), + + cHappypack('ESLint', ['eslint-loader']), + + cHappypack('HTML', ['html-loader']), + + cHappypack('JSX', [{ + loader: 'babel-loader', + query: require('./babel') + }]), +]; \ No newline at end of file diff --git a/config/webpack/modules/resolve.js b/config/webpack/modules/resolve.js new file mode 100644 index 0000000..8ff9da5 --- /dev/null +++ b/config/webpack/modules/resolve.js @@ -0,0 +1,11 @@ +const base = require('../base/base'), + files = require('../base/files'), + path = require('path'); +module.exports = { + alias: { + 'lib': path.resolve(files.staticPath, 'index.js'), + 'css': path.resolve(files.cssPath, 'index.' + base.cssType) + }, + modules: ['node_modules'], + extensions: ['.js', '.jsx', '.json'] +}; \ No newline at end of file diff --git a/config/webpack/webpack.build.js b/config/webpack/webpack.build.js new file mode 100644 index 0000000..8be0f61 --- /dev/null +++ b/config/webpack/webpack.build.js @@ -0,0 +1,23 @@ +const webpack = require('webpack'), + merge = require('webpack-merge'), + WebpackMd5Hash = require('webpack-md5-hash'), + Visualizer = require('webpack-visualizer-plugin'); +let config = require('./webpack.config.js')({ dev: false }); + +/** -------------------- + * 打包资源,性能分析 + * */ +if (process.env.NODE_TEST === 'production') { + config.plugins.push( + new Visualizer({ + filename: './statistics.html' + }) + ) +} + +module.exports = merge(config, { + plugins: [ + new WebpackMd5Hash(), + new webpack.optimize.UglifyJsPlugin(), + ] +}); \ No newline at end of file diff --git a/config/webpack/webpack.config.js b/config/webpack/webpack.config.js new file mode 100644 index 0000000..f6d9d93 --- /dev/null +++ b/config/webpack/webpack.config.js @@ -0,0 +1,192 @@ +const base = require('./base/base.js'), + files = require('./base/files'), + path = require('path'), + glob = require('glob'), + HtmlWebpackPlugin = require('html-webpack-plugin'), + ExtractTextPlugin = require('extract-text-webpack-plugin'); + +module.exports = (option = { dev: process.env.NODE_ENV === 'development' }) => ((Glob, objConcat, createHtml) => { + /** + * 配置文件 + * */ + let Config = { + + entry: objConcat(Glob.fileCss, objConcat(Glob.fileJs, require('./modules/entry'))), + + output: { + filename: Glob.jsBundle, + path: path.join(files.root, files.buildName), + publicPath: base.cdnPath, //资源文件引用路径 + crossOriginLoading: false, // 是否允许跨域加载[anonymous,use-credentials,false] + chunkFilename: 'async/[name].js', + // library: 'x', 导出单文件库 + // libraryTarget: 'umd' + }, + + resolve: require('./modules/resolve'), + + externals: require('./modules/externals'), + + module: require('./modules/loader')(option.dev), + + plugins: require('./modules/plugins') + + }; + /** + * 插件 + * */ + Config.plugins.push(new ExtractTextPlugin(Glob.cssBundle)); + + /** + * 创建所有的视图模块 + * */ + createHtml(Config, Glob.fileHtml, files.htmlPath, base.viewType, option.dev); + + return Config; +})( + /** + * 处理所需文件的文件目录,输出对应文件的对象 + * */ + ((debug) => { + /** + * 此变量用于匹配储存HTML对应模块 + * 非模块内的资源文件不会被webpack引入 + * */ + let VIEWS = []; + + function getEntry(option, VIEWS) { + let pathDir = option.pathDir, + files = glob.sync(option.globPath); + + let entries = {}, + entry, // 文件完整路径 + dirName, // 传入的文件夹路径 + baseName, // 文件名 + pathName, // 文件夹路劲 + relativeName, // 键名所需,相对传入文件地址路径 + extName; // 文件格式 + + for (let i = 0; i < files.length; i++) { + entry = files[i]; + extName = path.extname(entry); + dirName = path.dirname(entry); + baseName = path.basename(entry, extName); + pathName = path.normalize(path.join(dirName, baseName)); + pathDir = path.normalize(pathDir); + if (extName === `.${base.viewType}`) { // 是否是view + pathName = pathName.substring(pathDir.length); + VIEWS.push(pathName); // 把VIEW相关的模块引入webpack + } + else { + relativeName = path.relative(pathDir, dirName); + pathName = path.basename(pathName); + if (VIEWS.indexOf(relativeName) === -1 || relativeName.indexOf(pathName) === -1) { + // 不属于HTML相关JS直接跳出循环 + continue; + } + else { + pathName = relativeName; + } + } + entries[pathName] = [entry]; + } + return entries; + } + + let fileHtml = Object.keys(getEntry({ + globPath: files.htmlPath + '/**/*', + pathDir: files.htmlPath + '/' + }, VIEWS)), + fileJs = getEntry({ + globPath: files.viewPath + '/**/*.?(js|jsx)', + pathDir: files.viewPath + '/' + }, VIEWS), + fileCss = getEntry({ + globPath: files.viewPath + '/**/*.?(css|pcss|sass|scss|less)', + pathDir: files.viewPath + '/' + }, VIEWS), + jsBundle = debug ? `${files.jsName}/[name].js` : `${files.jsName}/[name].[chunkhash:8].js`, + cssBundle = debug ? `${files.cssName}/[name].css` : `${files.cssName}/[name].[contenthash:8].css`; + return { + 'fileHtml': fileHtml, + 'fileJs': fileJs, + 'fileCss': fileCss, + 'jsBundle': jsBundle, + 'cssBundle': cssBundle + } + })(option.dev), + + /** + * 处理文件页面资源对应关系 + * */ + (obj1, obj2) => { + Object.keys(obj1).forEach(function (o) { + if (!!obj2[o] && obj2[o] !== obj1[o]) { + obj2[o] = obj2[o].concat(obj1[o]); + } + else { + obj2[o] = obj1[o] + } + }); + return obj2; + }, + + /** + * config:webpack的config + * htmlFiles: 某目录下的所有HTML对象 + * htmlPath:HTML视图地址 + * viewType:HTML模版引擎格式(如html,pug,jade) + * dev: 是否开发模式,对应引入热替换模块 + * */ + (config, htmlFiles, htmlPath, viewType, debug) => { + + if (debug) { + Object.keys(config.entry).forEach((e) => { + config.entry[e].unshift( + 'webpack-hot-middleware/client?reload=true' + //'eventsource-polyfill' // 热替换兼容IE + ) + }); + } + + // 遍历创建所有HTML + htmlFiles.forEach(function (pathname) { + let conf = { + filename: pathname + '.html', //生成的html存放路径,相对于path + template: path.resolve(htmlPath, pathname + '.' + viewType), //html模板路径 + minify: { + removeComments: true, + collapseWhitespace: true, + removeRedundantAttributes: true, + useShortDoctype: true, + removeEmptyAttributes: true, + removeStyleLinkTypeAttributes: true, + keepClosingSlash: true, + minifyJS: true, + minifyCSS: true, + minifyURLs: true + } + }; + if (pathname in config.entry) { // 同HTML文件名的JS分离出来 + conf.inject = 'body'; + conf.chunks = ['Common', 'Main', pathname]; + } + else { + conf.inject = 'body'; + conf.chunks = ['Common', 'Main']; + } + conf.chunksSortMode = function (a, b) { // 按照配置排序 + let index = {}, i = 1, + len = conf.chunks.length; + for (; i <= len; i++) { + index[conf.chunks[len - i]] = i; + } + let aI = index[a.origins[0].name], + bI = index[b.origins[0].name]; + return aI && bI ? bI - aI : -1; + }; + config.plugins.push(new HtmlWebpackPlugin(conf)); + }); + } +); + diff --git a/config/webpack/webpack.dev.js b/config/webpack/webpack.dev.js new file mode 100644 index 0000000..685060f --- /dev/null +++ b/config/webpack/webpack.dev.js @@ -0,0 +1,23 @@ +const webpack = require('webpack'); +const merge = require('webpack-merge'); +const base = require('./base/base.js'); + +let config = require('./webpack.config.js')({ dev: true }); + +module.exports = merge(config, { + + devtool: "inline-source-map", // inline-source-map.cheap-source-map + + performance: { // 关闭hot更新导致文件过大提示 + hints: false // 性能提示[warning,error,false] + }, + + plugins: [ + new webpack.HotModuleReplacementPlugin(), + // enable HMR globally + + new webpack.NamedModulesPlugin(), + // prints more readable module names in the browser console on HMR updates + ], + +}); \ No newline at end of file diff --git a/config/webpack/webpack.dll.js b/config/webpack/webpack.dll.js new file mode 100644 index 0000000..67b8e2a --- /dev/null +++ b/config/webpack/webpack.dll.js @@ -0,0 +1,66 @@ +const base = require('./base/base.js'), + files = require('./base/files'), + path = require('path'), + webpack = require('webpack'), + Visualizer = require('webpack-visualizer-plugin'); + +const vendors = [ + /** + * babel-polyfill 支持到es5 + * */ + 'babel-polyfill', + + // 其他依赖 + 'immutable', + 'react', + 'react-dom', + 'react-redux', + 'react-router', + 'react-immutable-proptypes', + 'redux', + 'redux-actions', + 'redux-observable', + 'rxjs', + 'styled-components' +]; + +if (process.env.NODE_ENV === 'development') { + const arr = [ + // 'react-hot-loader/patch', + 'react-hot-loader', + 'redux-logger', + ]; + vendors.push(...arr); +} + +let config = { + output: { + path: files.dllPath, + filename: '[name].js', + library: '[name]', + }, + entry: { + vendor: vendors, + }, + plugins: [ + new webpack.DllPlugin({ + path: path.join(files.dllPath, 'vendors.json'), + name: '[name]', + context: '/', + }), + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify(process.env.NODE_ENV), + } + }), + new Visualizer({ + filename: './vendors.html' + }) + ], +}; + +if (process.env.NODE_ENV === 'production') { + config.plugins.unshift(new webpack.optimize.UglifyJsPlugin()); +} + +module.exports = config; diff --git a/package.json b/package.json new file mode 100644 index 0000000..a08214d --- /dev/null +++ b/package.json @@ -0,0 +1,121 @@ +{ + "name": "react-webpack-start", + "version": "0.0.1", + "description": "react+redux+rxjs", + "author": { + "name": "Sayll", + "email": "kilol@qq.com", + "url": "https://github.com/sayll" + }, + "license": "ISC", + "scripts": { + "start": "better-npm-run dll:dev && npm run dev", + "dev": "better-npm-run dev", + "clean": "rimraf build", + "build": "better-npm-run build", + "deploy": "npm run clean && npm run dll && npm run build", + "dll": "better-npm-run dll", + "report-coverage": "codecov", + "cnpm": "npm install cnpm -g --registry=https://registry.npm.taobao.org" + }, + "betterScripts": { + "dev": { + "command": "node ./server/main", + "env": { + "NODE_ENV": "development" + } + }, + "build": { + "command": "webpack --config config/webpack/webpack.build", + "env": { + "NODE_ENV": "production" + } + }, + "dll": { + "command": "webpack --config config/webpack/webpack.dll", + "env": { + "NODE_ENV": "production" + } + }, + "dll:dev": { + "command": "webpack --config config/webpack/webpack.dll", + "env": { + "NODE_ENV": "development" + } + }, + "visualizer": { + "command": "webpack --config config/webpack/webpack.build", + "env": { + "NODE_ENV": "production", + "NODE_TEST": "production" + } + } + }, + "bugs": { + "url": "https://github.com/sayll/react-webpack-start/issues", + "email": "kilol@qq.com" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/sayll/react-webpack-start.git" + }, + "homepage": "https://github.com/sayll/react-webpack-start#readme", + "dependencies": { + "es6-promise": "^4.1.0", + "immutable": "^4.0.0-rc.2", + "react": "^15.4.2", + "react-dom": "^15.4.2", + "react-hot-loader": "^3.0.0-beta.6", + "react-immutable-proptypes": "^2.1.0", + "react-redux": "^5.0.3", + "react-router": "^4.0.0", + "redux": "^3.6.0", + "redux-actions": "^2.0.1", + "redux-logger": "^3.0.1", + "redux-observable": "^0.14.1", + "reselect": "^3.0.0", + "rxjs": "^5.3.0", + "styled-components": "^1.4.4" + }, + "devDependencies": { + "babel-core": "^6.24.0", + "babel-eslint": "^7.2.1", + "babel-loader": "^6.4.1", + "babel-plugin-istanbul": "^4.1.1", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-polyfill": "^6.23.0", + "babel-preset-es2015": "^6.24.0", + "babel-preset-react": "^6.23.0", + "babel-preset-stage-2": "^6.22.0", + "better-npm-run": "0.0.14", + "css-loader": "^0.28.0", + "eslint": "^3.19.0", + "eslint-config-airbnb": "^14.1.0", + "eslint-loader": "^1.7.1", + "eslint-plugin-import": "^2.2.0", + "eslint-plugin-jsx-a11y": "^4.0.0", + "eslint-plugin-react": "^6.10.3", + "express": "^4.15.2", + "extract-text-webpack-plugin": "^2.1.0", + "file-loader": "^0.10.1", + "glob": "^7.1.1", + "happypack": "^3.0.3", + "html-loader": "^0.4.5", + "html-webpack-plugin": "^2.28.0", + "image-webpack-loader": "^3.3.0", + "postcss-cssnext": "^2.10.0", + "postcss-loader": "^1.3.3", + "postcss-px2rem": "^0.3.0", + "rimraf": "^2.6.1", + "style-loader": "^0.16.1", + "url-loader": "^0.5.8", + "webpack": "^2.3.2", + "webpack-dashboard": "^0.3.0", + "webpack-dev-middleware": "^1.10.1", + "webpack-hot-middleware": "^2.18.0", + "webpack-md5-hash": "0.0.5", + "webpack-merge": "^4.1.0", + "webpack-visualizer-plugin": "^0.1.11" + }, + "peerDependencies": {} +} diff --git a/server/main.js b/server/main.js new file mode 100644 index 0000000..fdca266 --- /dev/null +++ b/server/main.js @@ -0,0 +1,50 @@ +const webpack = require('webpack'); +const express = require('express'); +const Dashboard = require('webpack-dashboard'); +const webpackDevMiddleware = require('webpack-dev-middleware'); +const webpackHotMiddleware = require('webpack-hot-middleware'); +const base = require('../config/webpack/base/base'); +const files = require('../config/webpack/base/files'); +const webpackConfig = require('../config/webpack/webpack.dev'); + +const app = express(); +const DashboardPlugin = require('webpack-dashboard/plugin'); + +/** + * Apply Webpack HMR Middleware + * */ + +if (process.env.NODE_ENV === 'development') { + const compiler = webpack(webpackConfig); + + compiler.apply( + new DashboardPlugin(new Dashboard({ + color: '#05ccfb', + minimal: true, + port: base.devPort + }).setData) + ); + + app.use(webpackDevMiddleware(compiler, { + publicPath: files.cdnPath, + stats: { colors: true }, + noInfo: false, + quiet: true, + hot: true, + })); + + app.use(webpackHotMiddleware(compiler)); + + app.use('/', express.static(files.buildPath)); + app.listen(base.devPort, () => { + console.log(`open localhost:${base.devPort}`); + }); +} +else { + console.log( + `Server not being run of live development mode, + Please use the NODE_ENV=development mode to run` + ); +} + +module.exports = app;