diff --git a/build.bat b/build.bat
new file mode 100644
index 0000000..20c5f6e
--- /dev/null
+++ b/build.bat
@@ -0,0 +1,8 @@
+rd /s/q release
+md release
+::go build -ldflags "-H windowsgui" -o chat.exe
+go build -o chat.exe
+COPY chat.exe release\
+COPY favicon.ico release\favicon.ico
+XCOPY asset\*.* release\asset\ /s /e
+XCOPY view\*.* release\view\ /s /e
\ No newline at end of file
diff --git a/build.sh b/build.sh
new file mode 100644
index 0000000..afea7c9
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+rm -rf ./release
+mkdir release
+go build -o chat
+chmod +x ./chat
+cp chat ./release/
+cp favicon.ico ./release/
+cp -arf ./asset ./release/
+cp -arf ./view ./release/
\ No newline at end of file
diff --git a/chat.exe b/chat.exe
new file mode 100644
index 0000000..307f1c3
Binary files /dev/null and b/chat.exe differ
diff --git a/docs/docs.go b/docs/docs.go
new file mode 100644
index 0000000..08c2424
--- /dev/null
+++ b/docs/docs.go
@@ -0,0 +1,205 @@
+// Package docs GENERATED BY SWAG; DO NOT EDIT
+// This file was generated by swaggo/swag
+package docs
+
+import "github.com/swaggo/swag"
+
+const docTemplate = `{
+ "schemes": {{ marshal .Schemes }},
+ "swagger": "2.0",
+ "info": {
+ "description": "{{escape .Description}}",
+ "title": "{{.Title}}",
+ "contact": {},
+ "version": "{{.Version}}"
+ },
+ "host": "{{.Host}}",
+ "basePath": "{{.BasePath}}",
+ "paths": {
+ "/index": {
+ "get": {
+ "tags": [
+ "首页"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "/user/createUser": {
+ "get": {
+ "tags": [
+ "用户模块"
+ ],
+ "summary": "新增用户",
+ "parameters": [
+ {
+ "type": "string",
+ "description": "用户名",
+ "name": "name",
+ "in": "query"
+ },
+ {
+ "type": "string",
+ "description": "密码",
+ "name": "password",
+ "in": "query"
+ },
+ {
+ "type": "string",
+ "description": "确认密码",
+ "name": "repassword",
+ "in": "query"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "code\",\"message\"}",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "/user/deleteUser": {
+ "get": {
+ "tags": [
+ "用户模块"
+ ],
+ "summary": "删除用户",
+ "parameters": [
+ {
+ "type": "string",
+ "description": "id",
+ "name": "id",
+ "in": "query"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "code\",\"message\"}",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "/user/findUserByNameAndPwd": {
+ "get": {
+ "tags": [
+ "用户模块"
+ ],
+ "summary": "所有用户",
+ "parameters": [
+ {
+ "type": "string",
+ "description": "用户名",
+ "name": "name",
+ "in": "query"
+ },
+ {
+ "type": "string",
+ "description": "密码",
+ "name": "password",
+ "in": "query"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "code\",\"message\"}",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "/user/getUserList": {
+ "get": {
+ "tags": [
+ "用户模块"
+ ],
+ "summary": "所有用户",
+ "responses": {
+ "200": {
+ "description": "code\",\"message\"}",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "/user/updateUser": {
+ "post": {
+ "tags": [
+ "用户模块"
+ ],
+ "summary": "修改用户",
+ "parameters": [
+ {
+ "type": "string",
+ "description": "id",
+ "name": "id",
+ "in": "formData"
+ },
+ {
+ "type": "string",
+ "description": "name",
+ "name": "name",
+ "in": "formData"
+ },
+ {
+ "type": "string",
+ "description": "password",
+ "name": "password",
+ "in": "formData"
+ },
+ {
+ "type": "string",
+ "description": "phone",
+ "name": "phone",
+ "in": "formData"
+ },
+ {
+ "type": "string",
+ "description": "email",
+ "name": "email",
+ "in": "formData"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "code\",\"message\"}",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+}`
+
+// SwaggerInfo holds exported Swagger Info so clients can modify it
+var SwaggerInfo = &swag.Spec{
+ Version: "",
+ Host: "",
+ BasePath: "",
+ Schemes: []string{},
+ Title: "",
+ Description: "",
+ InfoInstanceName: "swagger",
+ SwaggerTemplate: docTemplate,
+}
+
+func init() {
+ swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
+}
diff --git a/docs/swagger.json b/docs/swagger.json
new file mode 100644
index 0000000..aa133bf
--- /dev/null
+++ b/docs/swagger.json
@@ -0,0 +1,177 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "contact": {}
+ },
+ "paths": {
+ "/index": {
+ "get": {
+ "tags": [
+ "首页"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "/user/createUser": {
+ "get": {
+ "tags": [
+ "用户模块"
+ ],
+ "summary": "新增用户",
+ "parameters": [
+ {
+ "type": "string",
+ "description": "用户名",
+ "name": "name",
+ "in": "query"
+ },
+ {
+ "type": "string",
+ "description": "密码",
+ "name": "password",
+ "in": "query"
+ },
+ {
+ "type": "string",
+ "description": "确认密码",
+ "name": "repassword",
+ "in": "query"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "code\",\"message\"}",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "/user/deleteUser": {
+ "get": {
+ "tags": [
+ "用户模块"
+ ],
+ "summary": "删除用户",
+ "parameters": [
+ {
+ "type": "string",
+ "description": "id",
+ "name": "id",
+ "in": "query"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "code\",\"message\"}",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "/user/findUserByNameAndPwd": {
+ "get": {
+ "tags": [
+ "用户模块"
+ ],
+ "summary": "所有用户",
+ "parameters": [
+ {
+ "type": "string",
+ "description": "用户名",
+ "name": "name",
+ "in": "query"
+ },
+ {
+ "type": "string",
+ "description": "密码",
+ "name": "password",
+ "in": "query"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "code\",\"message\"}",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "/user/getUserList": {
+ "get": {
+ "tags": [
+ "用户模块"
+ ],
+ "summary": "所有用户",
+ "responses": {
+ "200": {
+ "description": "code\",\"message\"}",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "/user/updateUser": {
+ "post": {
+ "tags": [
+ "用户模块"
+ ],
+ "summary": "修改用户",
+ "parameters": [
+ {
+ "type": "string",
+ "description": "id",
+ "name": "id",
+ "in": "formData"
+ },
+ {
+ "type": "string",
+ "description": "name",
+ "name": "name",
+ "in": "formData"
+ },
+ {
+ "type": "string",
+ "description": "password",
+ "name": "password",
+ "in": "formData"
+ },
+ {
+ "type": "string",
+ "description": "phone",
+ "name": "phone",
+ "in": "formData"
+ },
+ {
+ "type": "string",
+ "description": "email",
+ "name": "email",
+ "in": "formData"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "code\",\"message\"}",
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
new file mode 100644
index 0000000..1c8dcd7
--- /dev/null
+++ b/docs/swagger.yaml
@@ -0,0 +1,111 @@
+info:
+ contact: {}
+paths:
+ /index:
+ get:
+ responses:
+ "200":
+ description: OK
+ schema:
+ type: string
+ tags:
+ - 首页
+ /user/createUser:
+ get:
+ parameters:
+ - description: 用户名
+ in: query
+ name: name
+ type: string
+ - description: 密码
+ in: query
+ name: password
+ type: string
+ - description: 确认密码
+ in: query
+ name: repassword
+ type: string
+ responses:
+ "200":
+ description: code","message"}
+ schema:
+ type: string
+ summary: 新增用户
+ tags:
+ - 用户模块
+ /user/deleteUser:
+ get:
+ parameters:
+ - description: id
+ in: query
+ name: id
+ type: string
+ responses:
+ "200":
+ description: code","message"}
+ schema:
+ type: string
+ summary: 删除用户
+ tags:
+ - 用户模块
+ /user/findUserByNameAndPwd:
+ get:
+ parameters:
+ - description: 用户名
+ in: query
+ name: name
+ type: string
+ - description: 密码
+ in: query
+ name: password
+ type: string
+ responses:
+ "200":
+ description: code","message"}
+ schema:
+ type: string
+ summary: 所有用户
+ tags:
+ - 用户模块
+ /user/getUserList:
+ get:
+ responses:
+ "200":
+ description: code","message"}
+ schema:
+ type: string
+ summary: 所有用户
+ tags:
+ - 用户模块
+ /user/updateUser:
+ post:
+ parameters:
+ - description: id
+ in: formData
+ name: id
+ type: string
+ - description: name
+ in: formData
+ name: name
+ type: string
+ - description: password
+ in: formData
+ name: password
+ type: string
+ - description: phone
+ in: formData
+ name: phone
+ type: string
+ - description: email
+ in: formData
+ name: email
+ type: string
+ responses:
+ "200":
+ description: code","message"}
+ schema:
+ type: string
+ summary: 修改用户
+ tags:
+ - 用户模块
+swagger: "2.0"
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..a547338
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,70 @@
+module ginchat
+
+go 1.17
+
+require (
+ github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d
+ github.com/gin-gonic/gin v1.7.7
+ github.com/go-redis/redis/v8 v8.11.5
+ github.com/gorilla/websocket v1.5.0
+ github.com/spf13/viper v1.11.0
+ github.com/swaggo/files v0.0.0-20210815190702-a29dd2bc99b2
+ github.com/swaggo/gin-swagger v1.4.3
+ github.com/swaggo/swag v1.8.2
+ gorm.io/driver/mysql v1.3.3
+ gorm.io/gorm v1.23.5
+)
+
+require (
+ github.com/KyleBanks/depth v1.2.1 // indirect
+ github.com/aliyun/aliyun-oss-go-sdk v2.2.4+incompatible // indirect
+ github.com/cespare/xxhash/v2 v2.1.2 // indirect
+ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
+ github.com/go-openapi/jsonpointer v0.19.5 // indirect
+ github.com/go-openapi/jsonreference v0.20.0 // indirect
+ github.com/go-openapi/spec v0.20.6 // indirect
+ github.com/go-openapi/swag v0.21.1 // indirect
+ github.com/gomodule/redigo v1.8.8 // indirect
+ github.com/josharian/intern v1.0.0 // indirect
+ github.com/mailru/easyjson v0.7.7 // indirect
+ golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 // indirect
+ golang.org/x/time v0.0.0-20191024005414-555d28b269f0 // indirect
+ golang.org/x/tools v0.1.10 // indirect
+ gopkg.in/fatih/set.v0 v0.2.1 // indirect
+)
+
+require (
+ github.com/fsnotify/fsnotify v1.5.1 // indirect
+ github.com/gin-contrib/sse v0.1.0 // indirect
+ github.com/go-playground/locales v0.14.0 // indirect
+ github.com/go-playground/universal-translator v0.18.0 // indirect
+ github.com/go-playground/validator/v10 v10.11.0 // indirect
+ github.com/go-sql-driver/mysql v1.6.0 // indirect
+ github.com/golang/protobuf v1.5.2 // indirect
+ github.com/hashicorp/hcl v1.0.0 // indirect
+ //github.com/jinzhu/gorm v1.9.16 // indirect
+ github.com/jinzhu/inflection v1.0.0 // indirect
+ github.com/jinzhu/now v1.1.4 // indirect
+ github.com/json-iterator/go v1.1.12 // indirect
+ github.com/leodido/go-urn v1.2.1 // indirect
+ github.com/magiconair/properties v1.8.6 // indirect
+ github.com/mattn/go-isatty v0.0.14 // indirect
+ github.com/mitchellh/mapstructure v1.4.3 // indirect
+ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
+ github.com/modern-go/reflect2 v1.0.2 // indirect
+ github.com/pelletier/go-toml v1.9.4 // indirect
+ github.com/pelletier/go-toml/v2 v2.0.0-beta.8 // indirect
+ github.com/spf13/afero v1.8.2 // indirect
+ github.com/spf13/cast v1.4.1 // indirect
+ github.com/spf13/jwalterweatherman v1.1.0 // indirect
+ github.com/spf13/pflag v1.0.5 // indirect
+ github.com/subosito/gotenv v1.2.0 // indirect
+ github.com/ugorji/go/codec v1.2.7 // indirect
+ golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898 // indirect
+ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect
+ golang.org/x/text v0.3.7 // indirect
+ google.golang.org/protobuf v1.28.0 // indirect
+ gopkg.in/ini.v1 v1.66.4 // indirect
+ gopkg.in/yaml.v2 v2.4.0 // indirect
+ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..5adcaf3
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,981 @@
+cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
+cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
+cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
+cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
+cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
+cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
+cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
+cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
+cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
+cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
+cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
+cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
+cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
+cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
+cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
+cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
+cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
+cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
+cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
+cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
+cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY=
+cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM=
+cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY=
+cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ=
+cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
+cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4=
+cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc=
+cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA=
+cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A=
+cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
+cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
+cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
+cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
+cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
+cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
+cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow=
+cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM=
+cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M=
+cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
+cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
+cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY=
+cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
+cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
+cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
+cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
+cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
+cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
+cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
+cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
+cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
+cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
+dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
+github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
+github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
+github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
+github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
+github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
+github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
+github.com/agiledragon/gomonkey/v2 v2.3.1/go.mod h1:ap1AmDzcVOAz1YpeJ3TCzIgstoaWLA6jbbgxfB4w2iY=
+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/aliyun/aliyun-oss-go-sdk v2.2.4+incompatible h1:cD1bK/FmYTpL+r5i9lQ9EU6ScAjA173EVsii7gAc6SQ=
+github.com/aliyun/aliyun-oss-go-sdk v2.2.4+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
+github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
+github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
+github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
+github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc=
+github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
+github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
+github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ=
+github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
+github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
+github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
+github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
+github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
+github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
+github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
+github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
+github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
+github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
+github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=
+github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
+github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
+github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
+github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
+github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
+github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
+github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
+github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
+github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
+github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
+github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
+github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
+github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
+github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
+github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+github.com/gin-contrib/gzip v0.0.5 h1:mhnVU32YnnBh2LPH2iqRqsA/eR7SAqRaD388jL2s/j0=
+github.com/gin-contrib/gzip v0.0.5/go.mod h1:OPIK6HR0Um2vNmBUTlayD7qle4yVVRZT0PyhdUigrKk=
+github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
+github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
+github.com/gin-gonic/gin v1.7.4/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY=
+github.com/gin-gonic/gin v1.7.7 h1:3DoBmSbJbZAWqXJC3SLjAPfutPJJRN1U5pALB7EeTTs=
+github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U=
+github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
+github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
+github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
+github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
+github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
+github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
+github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
+github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns=
+github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA=
+github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo=
+github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I=
+github.com/go-openapi/spec v0.20.6 h1:ich1RQ3WDbfoeTqTAb+5EIxNmpKVJZWBNah9RAT0jIQ=
+github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA=
+github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
+github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
+github.com/go-openapi/swag v0.21.1 h1:wm0rhTb5z7qpJRHBdPOMuY4QjVUMbF6/kwoYeRAOrKU=
+github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
+github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
+github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
+github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
+github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU=
+github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
+github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
+github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho=
+github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
+github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4=
+github.com/go-playground/validator/v10 v10.11.0 h1:0W+xRM511GY47Yy3bZUbJVitCNg2BOGlCyvTqsp/xIw=
+github.com/go-playground/validator/v10 v10.11.0/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU=
+github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI=
+github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
+github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
+github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
+github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
+github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
+github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
+github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
+github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
+github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
+github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
+github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
+github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
+github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
+github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
+github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
+github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/gomodule/redigo v1.8.8 h1:f6cXq6RRfiyrOJEV7p3JhLDlmawGBVBBP1MggY8Mo4E=
+github.com/gomodule/redigo v1.8.8/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE=
+github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=
+github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
+github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
+github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
+github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
+github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
+github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
+github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
+github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0=
+github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM=
+github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM=
+github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM=
+github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
+github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
+github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
+github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
+github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0=
+github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms=
+github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
+github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
+github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
+github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
+github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
+github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
+github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
+github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
+github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
+github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
+github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA=
+github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
+github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
+github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
+github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
+github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
+github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
+github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
+github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
+github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc=
+github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
+github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4=
+github.com/hashicorp/serf v0.9.7/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4=
+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
+github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
+github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
+github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
+github.com/jinzhu/now v1.1.4 h1:tHnRBy1i5F2Dh8BAFxqFzxKqqvezXrL2OW1TnX+Mlas=
+github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
+github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
+github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
+github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
+github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
+github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
+github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
+github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
+github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
+github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
+github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
+github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
+github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
+github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
+github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
+github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
+github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
+github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
+github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
+github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
+github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
+github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
+github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
+github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
+github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
+github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
+github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
+github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
+github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
+github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
+github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI=
+github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
+github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
+github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
+github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
+github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs=
+github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
+github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
+github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
+github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
+github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
+github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
+github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
+github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
+github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
+github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
+github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
+github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
+github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
+github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
+github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
+github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE=
+github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs=
+github.com/otiai10/copy v1.7.0/go.mod h1:rmRl6QPdJj6EiUqXQ/4Nn2lLXoNQjFCQbbNrxgc/t3U=
+github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE=
+github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs=
+github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo=
+github.com/otiai10/mint v1.3.3/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc=
+github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
+github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
+github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM=
+github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
+github.com/pelletier/go-toml/v2 v2.0.0-beta.8 h1:dy81yyLYJDwMTifq24Oi/IslOslRrDSb3jwDggjz3Z0=
+github.com/pelletier/go-toml/v2 v2.0.0-beta.8/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
+github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
+github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
+github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
+github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
+github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
+github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
+github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
+github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
+github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
+github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
+github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
+github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
+github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
+github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
+github.com/sagikazarmark/crypt v0.5.0/go.mod h1:l+nzl7KWh51rpzp2h7t4MZWyiEWdhNpOAnclKvg+mdA=
+github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
+github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
+github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
+github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
+github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
+github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
+github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
+github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo=
+github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo=
+github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA=
+github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
+github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
+github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
+github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
+github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/viper v1.11.0 h1:7OX/1FS6n7jHD1zGrZTM7WtY13ZELRyosK4k93oPr44=
+github.com/spf13/viper v1.11.0/go.mod h1:djo0X/bA5+tYVoCn+C7cAYJGcVn/qYLFTG8gdUsX7Zk=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
+github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
+github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
+github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
+github.com/swaggo/files v0.0.0-20210815190702-a29dd2bc99b2 h1:+iNTcqQJy0OZ5jk6a5NLib47eqXK8uYcPX+O4+cBpEM=
+github.com/swaggo/files v0.0.0-20210815190702-a29dd2bc99b2/go.mod h1:lKJPbtWzJ9JhsTN1k1gZgleJWY/cqq0psdoMmaThG3w=
+github.com/swaggo/gin-swagger v1.4.3 h1:mHJz+yzJne0udgYnC5qlDf4e7KuxUbVNX2dhD/cw2rU=
+github.com/swaggo/gin-swagger v1.4.3/go.mod h1:hBg6tGeKJsUu/P79BH+WGUR8nq2LuGE0O160+s4iefo=
+github.com/swaggo/swag v1.8.1/go.mod h1:ugemnJsPZm/kRwFUnzBlbHRd0JY9zE1M4F+uy2pAaPQ=
+github.com/swaggo/swag v1.8.2 h1:D4aBiVS2a65zhyk3WFqOUz7Rz0sOaUcgeErcid5uGL4=
+github.com/swaggo/swag v1.8.2/go.mod h1:jMLeXOOmYyjk8PvHTsXBdrubsNd9gUJTTCzL5iBnseg=
+github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
+github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
+github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo=
+github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M=
+github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
+github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0=
+github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=
+github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
+github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+go.etcd.io/etcd/api/v3 v3.5.2/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A=
+go.etcd.io/etcd/client/pkg/v3 v3.5.2/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
+go.etcd.io/etcd/client/v2 v2.305.2/go.mod h1:2D7ZejHVMIfog1221iLSYlQRzrtECw3kz4I4VAQm3qI=
+go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
+go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
+go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
+go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
+go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
+go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
+go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
+go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
+go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
+golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
+golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898 h1:SLP7Q4Di66FONjDJbCYrCRrh97focO6sLogHO7/g8F0=
+golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
+golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
+golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
+golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
+golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
+golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
+golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
+golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
+golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
+golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
+golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
+golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
+golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
+golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
+golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
+golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
+golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
+golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o=
+golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
+golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
+golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
+golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8=
+golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
+golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
+golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 h1:NWy5+hlRbC7HK+PmcXVUmW1IMyFce7to56IUvhUFm7Y=
+golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
+golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
+golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k=
+golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=
+golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
+golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
+golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
+golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
+golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
+golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
+golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
+golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
+golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
+golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
+golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20=
+golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f h1:GGU+dLjvlC3qDwqYgL6UgRmHXhOOgns0bZu2Ty5mm6U=
+golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
+google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
+google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
+google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
+google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
+google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
+google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
+google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
+google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
+google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
+google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
+google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
+google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
+google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
+google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
+google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
+google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo=
+google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4=
+google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw=
+google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU=
+google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k=
+google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
+google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
+google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI=
+google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU=
+google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I=
+google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo=
+google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g=
+google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA=
+google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8=
+google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs=
+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
+google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
+google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
+google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
+google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
+google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
+google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
+google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
+google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24=
+google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
+google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
+google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
+google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
+google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w=
+google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211028162531-8db9c33dc351/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
+google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
+google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
+google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
+google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
+google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
+google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
+google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
+google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
+google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
+google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
+google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
+google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
+google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
+google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
+google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
+google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
+google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
+google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
+google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+gopkg.in/fatih/set.v0 v0.2.1 h1:Xvyyp7LXu34P0ROhCyfXkmQCAoOUKb1E2JS9I7SE5CY=
+gopkg.in/fatih/set.v0 v0.2.1/go.mod h1:5eLWEndGL4zGGemXWrKuts+wTJR0y+w+auqUJZbmyBg=
+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4=
+gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gorm.io/driver/mysql v1.3.3 h1:jXG9ANrwBc4+bMvBcSl8zCfPBaVoPyBEBshA8dA93X8=
+gorm.io/driver/mysql v1.3.3/go.mod h1:ChK6AHbHgDCFZyJp0F+BmVGb06PSIoh9uVYKAlRbb2U=
+gorm.io/gorm v1.23.1/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk=
+gorm.io/gorm v1.23.5 h1:TnlF26wScKSvknUC/Rn8t0NLLM22fypYBlvj1+aH6dM=
+gorm.io/gorm v1.23.5/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk=
+honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
+honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
+honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
+rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
+rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
+rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..b8b45da
--- /dev/null
+++ b/index.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+ {{template "/chat/head.shtml"}}
+
+
+
+
+{{.}}
+
+
+
+
\ No newline at end of file
diff --git a/main b/main
new file mode 100644
index 0000000..227f0f0
Binary files /dev/null and b/main differ
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..eaecdcf
--- /dev/null
+++ b/main.go
@@ -0,0 +1,24 @@
+package main
+
+import (
+ "ginchat/models"
+ "ginchat/router" // router "ginchat/router"
+ "ginchat/utils"
+ "time"
+
+ "github.com/spf13/viper"
+)
+
+func main() {
+ utils.InitConfig()
+ utils.InitMySQL()
+ utils.InitRedis()
+ InitTimer()
+ r := router.Router() // router.Router()
+ r.Run(viper.GetString("port.server")) // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
+}
+
+//初始化定时器
+func InitTimer() {
+ utils.Timer(time.Duration(viper.GetInt("timeout.DelayHeartbeat"))*time.Second, time.Duration(viper.GetInt("timeout.HeartbeatHz"))*time.Second, models.CleanConnection, "")
+}
diff --git a/models/Community.go b/models/Community.go
new file mode 100644
index 0000000..98a284a
--- /dev/null
+++ b/models/Community.go
@@ -0,0 +1,72 @@
+/**
+* @Auth:ShenZ
+* @Description:
+* @CreateDate:2022/06/15 14:57:55
+ */
+package models
+
+import (
+ "fmt"
+ "ginchat/utils"
+
+ "gorm.io/gorm"
+)
+
+type Community struct {
+ gorm.Model
+ Name string
+ OwnerId uint
+ Img string
+ Desc string
+}
+
+func CreateCommunity(community Community) (int, string) {
+ tx := utils.DB.Begin()
+ //事务一旦开始,不论什么异常最终都会 Rollback
+ defer func() {
+ if r := recover(); r != nil {
+ tx.Rollback()
+ }
+ }()
+
+ if len(community.Name) == 0 {
+ return -1, "群名称不能为空"
+ }
+ if community.OwnerId == 0 {
+ return -1, "请先登录"
+ }
+ if err := utils.DB.Create(&community).Error; err != nil {
+ fmt.Println(err)
+ tx.Rollback()
+ return -1, "建群失败"
+ }
+ contact := Contact{}
+ contact.OwnerId = community.OwnerId
+ contact.TargetId = community.ID
+ contact.Type = 2 //群关系
+ if err := utils.DB.Create(&contact).Error; err != nil {
+ tx.Rollback()
+ return -1, "添加群关系失败"
+ }
+
+ tx.Commit()
+ return 0, "建群成功"
+
+}
+
+func LoadCommunity(ownerId uint) ([]*Community, string) {
+ contacts := make([]Contact, 0)
+ objIds := make([]uint64, 0)
+ utils.DB.Where("owner_id = ? and type=2", ownerId).Find(&contacts)
+ for _, v := range contacts {
+ objIds = append(objIds, uint64(v.TargetId))
+ }
+
+ data := make([]*Community, 10)
+ utils.DB.Where("id in ?", objIds).Find(&data)
+ for _, v := range data {
+ fmt.Println(v)
+ }
+ //utils.DB.Where()
+ return data, "查询成功"
+}
diff --git a/models/contact.go b/models/contact.go
new file mode 100644
index 0000000..ca6ba03
--- /dev/null
+++ b/models/contact.go
@@ -0,0 +1,94 @@
+/**
+* @Auth:ShenZ
+* @Description:
+* @CreateDate:2022/06/15 14:57:55
+ */
+package models
+
+import (
+ "ginchat/utils"
+
+ "gorm.io/gorm"
+)
+
+//人员关系
+type Contact struct {
+ gorm.Model
+ OwnerId uint //谁的关系信息
+ TargetId uint //对应的谁 /群 ID
+ Type int //对应的类型 1好友 2群 3xx
+ Desc string
+}
+
+func (table *Contact) TableName() string {
+ return "contact"
+}
+
+func SearchFriend(userId uint) []UserBasic {
+ contacts := make([]Contact, 0)
+ objIds := make([]uint64, 0)
+ utils.DB.Where("owner_id = ? and type=1", userId).Find(&contacts)
+ for _, v := range contacts {
+ objIds = append(objIds, uint64(v.TargetId))
+ }
+ users := make([]UserBasic, 0)
+ utils.DB.Where("id in ?", objIds).Find(&users)
+ return users
+}
+
+//添加好友 自己的ID , 好友的ID
+func AddFriend(userId uint, targetName string) (int, string) {
+ //user := UserBasic{}
+
+ if targetName != "" {
+ targetUser := FindUserByName(targetName)
+ //fmt.Println(targetUser, " userId ", )
+ if targetUser.Salt != "" {
+ if targetUser.ID == userId {
+ return -1, "不能加自己"
+ }
+ contact0 := Contact{}
+ utils.DB.Where("owner_id =? and target_id =? and type=1", userId, targetUser.ID).Find(&contact0)
+ if contact0.ID != 0 {
+ return -1, "不能重复添加"
+ }
+ tx := utils.DB.Begin()
+ //事务一旦开始,不论什么异常最终都会 Rollback
+ defer func() {
+ if r := recover(); r != nil {
+ tx.Rollback()
+ }
+ }()
+ contact := Contact{}
+ contact.OwnerId = userId
+ contact.TargetId = targetUser.ID
+ contact.Type = 1
+ if err := utils.DB.Create(&contact).Error; err != nil {
+ tx.Rollback()
+ return -1, "添加好友失败"
+ }
+ contact1 := Contact{}
+ contact1.OwnerId = targetUser.ID
+ contact1.TargetId = userId
+ contact1.Type = 1
+ if err := utils.DB.Create(&contact1).Error; err != nil {
+ tx.Rollback()
+ return -1, "添加好友失败"
+ }
+ tx.Commit()
+ return 0, "添加好友成功"
+ }
+ return -1, "没有找到此用户"
+ }
+ return -1, "好友ID不能为空"
+}
+
+func SearchUserByGroupId(communityId uint) []uint {
+ contacts := make([]Contact, 0)
+ objIds := make([]uint, 0)
+ utils.DB.Where("target_id = ? and type=2", communityId).Find(&contacts)
+ for _, v := range contacts {
+ objIds = append(objIds, uint(v.OwnerId))
+ }
+ return objIds
+}
diff --git a/models/group_basic.go b/models/group_basic.go
new file mode 100644
index 0000000..22d480a
--- /dev/null
+++ b/models/group_basic.go
@@ -0,0 +1,22 @@
+/**
+* @Auth:ShenZ
+* @Description:
+* @CreateDate:2022/06/15 14:57:55
+ */
+package models
+
+import "gorm.io/gorm"
+
+//群信息
+type GroupBasic struct {
+ gorm.Model
+ Name string
+ OwnerId uint
+ Icon string
+ Type int
+ Desc string
+}
+
+func (table *GroupBasic) TableName() string {
+ return "group_basic"
+}
diff --git a/models/message.go b/models/message.go
new file mode 100644
index 0000000..45741cd
--- /dev/null
+++ b/models/message.go
@@ -0,0 +1,378 @@
+package models
+
+import (
+ "context"
+ "encoding/json"
+ "fmt"
+ "ginchat/utils"
+ "net"
+ "net/http"
+ "strconv"
+ "sync"
+ "time"
+
+ "github.com/go-redis/redis/v8"
+ "github.com/gorilla/websocket"
+ "github.com/spf13/viper"
+ "gopkg.in/fatih/set.v0"
+ "gorm.io/gorm"
+)
+
+//消息
+type Message struct {
+ gorm.Model
+ UserId int64 //发送者
+ TargetId int64 //接受者
+ Type int //发送类型 1私聊 2群聊 3心跳
+ Media int //消息类型 1文字 2表情包 3语音 4图片 /表情包
+ Content string //消息内容
+ CreateTime uint64 //创建时间
+ ReadTime uint64 //读取时间
+ Pic string
+ Url string
+ Desc string
+ Amount int //其他数字统计
+}
+
+func (table *Message) TableName() string {
+ return "message"
+}
+
+// const (
+// HeartbeatMaxTime = 1 * 60
+// )
+
+type Node struct {
+ Conn *websocket.Conn //连接
+ Addr string //客户端地址
+ FirstTime uint64 //首次连接时间
+ HeartbeatTime uint64 //心跳时间
+ LoginTime uint64 //登录时间
+ DataQueue chan []byte //消息
+ GroupSets set.Interface //好友 / 群
+}
+
+//映射关系
+var clientMap map[int64]*Node = make(map[int64]*Node, 0)
+
+//读写锁
+var rwLocker sync.RWMutex
+
+// 需要 :发送者ID ,接受者ID ,消息类型,发送的内容,发送类型
+func Chat(writer http.ResponseWriter, request *http.Request) {
+ //1. 获取参数 并 检验 token 等合法性
+ //token := query.Get("token")
+ query := request.URL.Query()
+ Id := query.Get("userId")
+ userId, _ := strconv.ParseInt(Id, 10, 64)
+ //msgType := query.Get("type")
+ //targetId := query.Get("targetId")
+ // context := query.Get("context")
+ isvalida := true //checkToke() 待.........
+ conn, err := (&websocket.Upgrader{
+ //token 校验
+ CheckOrigin: func(r *http.Request) bool {
+ return isvalida
+ },
+ }).Upgrade(writer, request, nil)
+ if err != nil {
+ fmt.Println(err)
+ return
+ }
+ //2.获取conn
+ currentTime := uint64(time.Now().Unix())
+ node := &Node{
+ Conn: conn,
+ Addr: conn.RemoteAddr().String(), //客户端地址
+ HeartbeatTime: currentTime, //心跳时间
+ LoginTime: currentTime, //登录时间
+ DataQueue: make(chan []byte, 50),
+ GroupSets: set.New(set.ThreadSafe),
+ }
+ //3. 用户关系
+ //4. userid 跟 node绑定 并加锁
+ rwLocker.Lock()
+ clientMap[userId] = node
+ rwLocker.Unlock()
+ //5.完成发送逻辑
+ go sendProc(node)
+ //6.完成接受逻辑
+ go recvProc(node)
+ //7.加入在线用户到缓存
+ SetUserOnlineInfo("online_"+Id, []byte(node.Addr), time.Duration(viper.GetInt("timeout.RedisOnlineTime"))*time.Hour)
+
+ //sendMsg(userId, []byte("欢迎进入聊天系统"))
+
+}
+
+func sendProc(node *Node) {
+ for {
+ select {
+ case data := <-node.DataQueue:
+ fmt.Println("[ws]sendProc >>>> msg :", string(data))
+ err := node.Conn.WriteMessage(websocket.TextMessage, data)
+ if err != nil {
+ fmt.Println(err)
+ return
+ }
+ }
+ }
+}
+
+func recvProc(node *Node) {
+ for {
+ _, data, err := node.Conn.ReadMessage()
+ if err != nil {
+ fmt.Println(err)
+ return
+ }
+ msg := Message{}
+ err = json.Unmarshal(data, &msg)
+ if err != nil {
+ fmt.Println(err)
+ }
+ //心跳检测 msg.Media == -1 || msg.Type == 3
+ if msg.Type == 3 {
+ currentTime := uint64(time.Now().Unix())
+ node.Heartbeat(currentTime)
+ } else {
+ dispatch(data)
+ broadMsg(data) //todo 将消息广播到局域网
+ fmt.Println("[ws] recvProc <<<<< ", string(data))
+ }
+
+ }
+}
+
+var udpsendChan chan []byte = make(chan []byte, 1024)
+
+func broadMsg(data []byte) {
+ udpsendChan <- data
+}
+
+func init() {
+ go udpSendProc()
+ go udpRecvProc()
+ fmt.Println("init goroutine ")
+}
+
+//完成udp数据发送协程
+func udpSendProc() {
+ con, err := net.DialUDP("udp", nil, &net.UDPAddr{
+ IP: net.IPv4(192, 168, 0, 255),
+ Port: viper.GetInt("port.udp"),
+ })
+ defer con.Close()
+ if err != nil {
+ fmt.Println(err)
+ }
+ for {
+ select {
+ case data := <-udpsendChan:
+ fmt.Println("udpSendProc data :", string(data))
+ _, err := con.Write(data)
+ if err != nil {
+ fmt.Println(err)
+ return
+ }
+ }
+ }
+
+}
+
+//完成udp数据接收协程
+func udpRecvProc() {
+ con, err := net.ListenUDP("udp", &net.UDPAddr{
+ IP: net.IPv4zero,
+ Port: viper.GetInt("port.udp"),
+ })
+ if err != nil {
+ fmt.Println(err)
+ }
+ defer con.Close()
+ for {
+ var buf [512]byte
+ n, err := con.Read(buf[0:])
+ if err != nil {
+ fmt.Println(err)
+ return
+ }
+ fmt.Println("udpRecvProc data :", string(buf[0:n]))
+ dispatch(buf[0:n])
+ }
+}
+
+//后端调度逻辑处理
+func dispatch(data []byte) {
+ msg := Message{}
+ msg.CreateTime = uint64(time.Now().Unix())
+ err := json.Unmarshal(data, &msg)
+ if err != nil {
+ fmt.Println(err)
+ return
+ }
+ switch msg.Type {
+ case 1: //私信
+ fmt.Println("dispatch data :", string(data))
+ sendMsg(msg.TargetId, data)
+ case 2: //群发
+ sendGroupMsg(msg.TargetId, data) //发送的群ID ,消息内容
+ // case 4: // 心跳
+ // node.Heartbeat()
+ //case 4:
+ //
+ }
+}
+
+func sendGroupMsg(targetId int64, msg []byte) {
+ fmt.Println("开始群发消息")
+ userIds := SearchUserByGroupId(uint(targetId))
+ for i := 0; i < len(userIds); i++ {
+ //排除给自己的
+ if targetId != int64(userIds[i]) {
+ sendMsg(int64(userIds[i]), msg)
+ }
+
+ }
+}
+
+func JoinGroup(userId uint, comId string) (int, string) {
+ contact := Contact{}
+ contact.OwnerId = userId
+ //contact.TargetId = comId
+ contact.Type = 2
+ community := Community{}
+
+ utils.DB.Where("id=? or name=?", comId, comId).Find(&community)
+ if community.Name == "" {
+ return -1, "没有找到群"
+ }
+ utils.DB.Where("owner_id=? and target_id=? and type =2 ", userId, comId).Find(&contact)
+ if !contact.CreatedAt.IsZero() {
+ return -1, "已加过此群"
+ } else {
+ contact.TargetId = community.ID
+ utils.DB.Create(&contact)
+ return 0, "加群成功"
+ }
+}
+
+func sendMsg(userId int64, msg []byte) {
+
+ rwLocker.RLock()
+ node, ok := clientMap[userId]
+ rwLocker.RUnlock()
+ jsonMsg := Message{}
+ json.Unmarshal(msg, &jsonMsg)
+ ctx := context.Background()
+ targetIdStr := strconv.Itoa(int(userId))
+ userIdStr := strconv.Itoa(int(jsonMsg.UserId))
+ jsonMsg.CreateTime = uint64(time.Now().Unix())
+ r, err := utils.Red.Get(ctx, "online_"+userIdStr).Result()
+ if err != nil {
+ fmt.Println(err)
+ }
+ if r != "" {
+ if ok {
+ fmt.Println("sendMsg >>> userID: ", userId, " msg:", string(msg))
+ node.DataQueue <- msg
+ }
+ }
+ var key string
+ if userId > jsonMsg.UserId {
+ key = "msg_" + userIdStr + "_" + targetIdStr
+ } else {
+ key = "msg_" + targetIdStr + "_" + userIdStr
+ }
+ res, err := utils.Red.ZRevRange(ctx, key, 0, -1).Result()
+ if err != nil {
+ fmt.Println(err)
+ }
+ score := float64(cap(res)) + 1
+ ress, e := utils.Red.ZAdd(ctx, key, &redis.Z{score, msg}).Result() //jsonMsg
+ //res, e := utils.Red.Do(ctx, "zadd", key, 1, jsonMsg).Result() //备用 后续拓展 记录完整msg
+ if e != nil {
+ fmt.Println(e)
+ }
+ fmt.Println(ress)
+}
+
+//需要重写此方法才能完整的msg转byte[]
+func (msg Message) MarshalBinary() ([]byte, error) {
+ return json.Marshal(msg)
+}
+
+//获取缓存里面的消息
+func RedisMsg(userIdA int64, userIdB int64, start int64, end int64, isRev bool) []string {
+ rwLocker.RLock()
+ //node, ok := clientMap[userIdA]
+ rwLocker.RUnlock()
+ //jsonMsg := Message{}
+ //json.Unmarshal(msg, &jsonMsg)
+ ctx := context.Background()
+ userIdStr := strconv.Itoa(int(userIdA))
+ targetIdStr := strconv.Itoa(int(userIdB))
+ var key string
+ if userIdA > userIdB {
+ key = "msg_" + targetIdStr + "_" + userIdStr
+ } else {
+ key = "msg_" + userIdStr + "_" + targetIdStr
+ }
+ //key = "msg_" + userIdStr + "_" + targetIdStr
+ //rels, err := utils.Red.ZRevRange(ctx, key, 0, 10).Result() //根据score倒叙
+
+ var rels []string
+ var err error
+ if isRev {
+ rels, err = utils.Red.ZRange(ctx, key, start, end).Result()
+ } else {
+ rels, err = utils.Red.ZRevRange(ctx, key, start, end).Result()
+ }
+ if err != nil {
+ fmt.Println(err) //没有找到
+ }
+ // 发送推送消息
+ /**
+ // 后台通过websoket 推送消息
+ for _, val := range rels {
+ fmt.Println("sendMsg >>> userID: ", userIdA, " msg:", val)
+ node.DataQueue <- []byte(val)
+ }**/
+ return rels
+}
+
+//更新用户心跳
+func (node *Node) Heartbeat(currentTime uint64) {
+ node.HeartbeatTime = currentTime
+ return
+}
+
+//清理超时连接
+func CleanConnection(param interface{}) (result bool) {
+ result = true
+ defer func() {
+ if r := recover(); r != nil {
+ fmt.Println("cleanConnection err", r)
+ }
+ }()
+ //fmt.Println("定时任务,清理超时连接 ", param)
+ //node.IsHeartbeatTimeOut()
+ currentTime := uint64(time.Now().Unix())
+ for i := range clientMap {
+ node := clientMap[i]
+ if node.IsHeartbeatTimeOut(currentTime) {
+ fmt.Println("心跳超时..... 关闭连接:", node)
+ node.Conn.Close()
+ }
+ }
+ return result
+}
+
+//用户心跳是否超时
+func (node *Node) IsHeartbeatTimeOut(currentTime uint64) (timeout bool) {
+ if node.HeartbeatTime+viper.GetUint64("timeout.HeartbeatMaxTime") <= currentTime {
+ fmt.Println("心跳超时。。。自动下线", node)
+ timeout = true
+ }
+ return
+}
diff --git a/models/user_basic.go b/models/user_basic.go
new file mode 100644
index 0000000..350a1a5
--- /dev/null
+++ b/models/user_basic.go
@@ -0,0 +1,86 @@
+/**
+* @Auth:ShenZ
+* @Description:
+* @CreateDate:2022/06/15 14:57:55
+ */
+package models
+
+import (
+ "fmt"
+ "ginchat/utils"
+ "time"
+
+ "gorm.io/gorm"
+)
+
+type UserBasic struct {
+ gorm.Model
+ Name string
+ PassWord string
+ Phone string `valid:"matches(^1[3-9]{1}\\d{9}$)"`
+ Email string `valid:"email"`
+ Avatar string //头像
+ Identity string
+ ClientIp string
+ ClientPort string
+ Salt string
+ LoginTime time.Time
+ HeartbeatTime time.Time
+ LoginOutTime time.Time `gorm:"column:login_out_time" json:"login_out_time"`
+ IsLogout bool
+ DeviceInfo string
+}
+
+func (table *UserBasic) TableName() string {
+ return "user_basic"
+}
+
+func GetUserList() []*UserBasic {
+ data := make([]*UserBasic, 10)
+ utils.DB.Find(&data)
+ for _, v := range data {
+ fmt.Println(v)
+ }
+ return data
+}
+
+func FindUserByNameAndPwd(name string, password string) UserBasic {
+ user := UserBasic{}
+ utils.DB.Where("name = ? and pass_word=?", name, password).First(&user)
+
+ //token加密
+ str := fmt.Sprintf("%d", time.Now().Unix())
+ temp := utils.MD5Encode(str)
+ utils.DB.Model(&user).Where("id = ?", user.ID).Update("identity", temp)
+ return user
+}
+
+func FindUserByName(name string) UserBasic {
+ user := UserBasic{}
+ utils.DB.Where("name = ?", name).First(&user)
+ return user
+}
+func FindUserByPhone(phone string) *gorm.DB {
+ user := UserBasic{}
+ return utils.DB.Where("Phone = ?", phone).First(&user)
+}
+func FindUserByEmail(email string) *gorm.DB {
+ user := UserBasic{}
+ return utils.DB.Where("email = ?", email).First(&user)
+}
+func CreateUser(user UserBasic) *gorm.DB {
+ return utils.DB.Create(&user)
+}
+func DeleteUser(user UserBasic) *gorm.DB {
+ return utils.DB.Delete(&user)
+}
+func UpdateUser(user UserBasic) *gorm.DB {
+ return utils.DB.Model(&user).Updates(UserBasic{Name: user.Name, PassWord: user.PassWord, Phone: user.Phone, Email: user.Email, Avatar: user.Avatar})
+}
+
+//查找某个用户
+func FindByID(id uint) UserBasic {
+ user := UserBasic{}
+ utils.DB.Where("id = ?", id).First(&user)
+ return user
+}
diff --git a/models/user_cache.go b/models/user_cache.go
new file mode 100644
index 0000000..f2ba9df
--- /dev/null
+++ b/models/user_cache.go
@@ -0,0 +1,20 @@
+/**
+* @Auth:ShenZ
+* @Description:
+* @CreateDate:2022/06/15 14:57:55
+ */
+package models
+
+import (
+ "context"
+ "ginchat/utils"
+ "time"
+)
+
+/**
+设置在线用户到redis缓存
+**/
+func SetUserOnlineInfo(key string, val []byte, timeTTL time.Duration) {
+ ctx := context.Background()
+ utils.Red.Set(ctx, key, val, timeTTL)
+}
diff --git a/release/asset/attach/template.zip b/release/asset/attach/template.zip
new file mode 100644
index 0000000..1af5696
Binary files /dev/null and b/release/asset/attach/template.zip differ
diff --git a/release/asset/css/account_common.css b/release/asset/css/account_common.css
new file mode 100644
index 0000000..61675a5
--- /dev/null
+++ b/release/asset/css/account_common.css
@@ -0,0 +1,133 @@
+* {
+ margin: 0;
+ padding: 0;
+ font-family: 'Microsoft YaHei';
+ outline: none
+}
+
+ul {
+ list-style: none
+}
+
+#header {
+ width: 100%;
+ height: 74px;
+ border-bottom: 1px solid #e3e3e3;
+ background-color: #fff;
+ padding: 0px
+}
+
+#header .header-layout {
+ padding: 17px 0;
+ overflow: hidden
+}
+
+
+
+#header .header-layout .logo a {
+ float: left;
+ display: inline-block;
+ height: 40px;
+ width: 140px;
+ overflow: hidden;
+ text-indent: -999em
+}
+
+
+#header .header-layout .intl-logo a {
+ float: left;
+ display: inline-block;
+ height: 40px;
+ width: 170px;
+ overflow: hidden;
+ text-indent: -999em
+}
+
+#header .header-layout .logo-title {
+ float: left;
+ display: inline-block;
+ width: auto;
+ height: 30px;
+ line-height: 30px;
+ font-size: 20px;
+ font-weight: normal;
+ margin-top: 2px;
+ color: #3c3c3c
+}
+
+#header .header-layout .header-nav {
+ width: auto;
+ height: 14px;
+ float: right;
+ line-height: 14px;
+ margin-top: 10px
+}
+
+#header .header-layout .header-nav li {
+ float: left;
+ padding: 0 0 0 10px;
+ margin-right: 10px;
+ border-left: 1px solid #4d4d4d
+}
+
+#header .header-layout .header-nav li.nav-first {
+ border-left: 0
+}
+
+#header .header-layout .header-nav li a {
+ color: #666;
+ font-size: 12px;
+ text-decoration: none
+}
+
+.copyright-100 {
+ clear: both;
+ background: #fff;
+ border-top: 1px solid #e5e5e5
+}
+
+.copyright-100 .copyright {
+ text-align: center;
+ color: #999;
+ font-size: 12px;
+ padding: 35px 0 40px
+}
+
+.copyright-100 .copyright .img {
+ display: inline-block;
+ width: 22px;
+ height: 22px;
+ }
+
+.copyright-100 .copyright .img.img-1 {
+ background-position: 85px 113px
+}
+
+.copyright-100 .copyright .img.img-2 {
+ background-position: 85px 91px
+}
+
+.copyright-100 .copyright p {
+ padding: 5px 0
+}
+
+.copyright-100 .copyright p .link-item {
+ padding: 0 10px 0 5px
+}
+
+.copyright-100 .copyright p a {
+ padding: 0 5px;
+ color: #b3b3b3
+}
+
+.copyright-100 .copyright p.big {
+ font-size: 14px
+}
+
+.copyright-100 .copyright p.big a {
+ color: #666
+}
+
+.copyright-100 .copyright .link-wrap {
+ line-height: 24px
+}
diff --git a/release/asset/css/audio.css b/release/asset/css/audio.css
new file mode 100644
index 0000000..6d65eb8
--- /dev/null
+++ b/release/asset/css/audio.css
@@ -0,0 +1,92 @@
+/*录音*/
+.rprogress {
+
+ position: absolute;
+ left: 50%;
+ top: 45%;
+ width: 140px;
+ height: 140px;
+ margin-left: -70px;
+ margin-top: -70px;
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAxMC8yOS8xM1Wtm+8AAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAQMUlEQVR4nOWbaZBcV3XHz7n3vqVf78uMR4s1RpaQbNkiINuAbBMCGLuchMVFTCplhyxASMKSmKKSSlJkwYSlKnYVcT44AUzsSrFjxxBisIyNN7zIsq2RxhpppNmnp6f3fq/feu89+TA2BOMiKdJPgsrpT9Pd897v/ft/zz33vPuQiOD/c7AzDXCmQ5yJk/7xw6vjfTQvHkq9nxAti+FTBSYf+5f9E3OnmwVP5xD47Yfq57Ykf0+g2RWBTLYAsjwQIQAMLc4anNRDJiafu+dN2w6eLqbTJsC1DzavX4/0x4IkmYwDn7idRUgiSVwQR2YkcaC5nWUmx64F+tP3X7nlk6eD67TkgN94uPvBRqRuTwAmQUb+s0srD6BOmo1253jb9Z5T8bD7zPLa/QaDAUdWTpB/4pfvrX9m1z98G9NmS90B1/2ge1Vj4P9nqBVwZpCSSRID1AuMap7G0GagJFA+0dgocJqImGmBShAQQSN+4KErt96SJl+qDvjodJL14uSjJ1br7bXu4FgUeIPppfqzBYNvml6qz0dKRX3PxZPrvZM5DpsPnVo5Esdxb3l1bXa56y7Zwvjz/Xef3JImY6oCnOgPL2UAr62WyuFZpbwo5WxrvFoROYFYrtV4zRI85zh8ophHx+S8Nj5mjGcMs1KriM3FrMxy3MKE+PU0GVMVgJLg7ScWl72CbViOjieWmv3V82rZvdOLq4uTRWfS6/chSlS0JcN2HFtunjqvmtszt7raKtpmyZJhcbbeaBcs4xoASC0XpCZAJwZEYBcOmdXniAPFjCgA0TYYyg6aDQMh9Jk5AMZ7yHjSA7FuMZQDtNscmZ+gCEMQbQfpZe+4+2Q2Lc7UkuANRztiraseRoRXD3q9XsIMKtvCXu8PvfFqMdfrdgPTyRtCSxzEMhrLO85ap+9VK2Un9gYy5kLXioVSGIZLzcX5Vz/wrsvW0uBMzQHD9hAFEjqCw0zHX1nsh6cSpeQTy4MpA4kfarizbqyabT8ZTDWHMxyJPb7cP4pA8YmuvzLfj+ccIZADsDKLjLQ4U3PAp2d942Rz+PBw6O0jw/RMIIi15twwYopCi0wn4TLiCjkKBkrJRIBpxxhFhhSWNChGrdHhXDQGizP7v3H965fS4EzNAe/d4aDFtHH/qcZ800+aXT+MDhxvTTlAzleO1g9q0nS03ls70vLmpUzYV46sPelwtO6bbTznRvFgrR+43znZmrIFsEoukxZmeouh79YDYoypV+/YOlY1UBJa1ut22tssgeLKPWdvrwqyz99SrTIA5RjMuHrPlnMd1MZrdm7eMmaxbGLnWKGYtziDaHEodVqcqTngcMMlBFTnl53C8Xq7c6wxWB43oHzX1PIz5+SsiQdPrJ7yYxWFvo8PzrWOT2bFpjsPLx2uWSI/s9pszTQHK7sqzhgjgDE7vdk6NQcQcjA5gGAAY8WiiYzJXMZg59RKZt5E3FQrm9WMwTQJsVUzw7E4nDNWNUsWYq1UEgAAFmowGILFxS9eHfC751cxw7R46MRKq5BhmU22Hju40Fl5/WT+ggeOr5w6fzy3ZTjoUy+Ih3ur1vb7Z+onL5/M7352odGsOqJQEbryvRNrSyYHKIj0HJDakQtaIkNgPcmHoUQ/0Bh3YuwSclUPeAeI4r4WQzemQYIiWYtEiyGqZiR6sYLAAwxbIfYMBmgKnhZmetPgzYfbRp/wEWRwcbPT70nkVHMMe63rDycq+Vyr5wZOLsuFirEbqXhzIZtd7brDWrmQGXpuHDFBW8v5UhTFKysLi6+97ZqLl9PgTM0BcSwJCCDLGRysD5cPrgVzoSL5pen2YUSEe+YGJ5bcpLXgycG3T7ozEoh/6WjrcCR19FTdX3li1Z/LCo6aAHiKa4HUHPDZlcBYbQWP9LzhPuSGK1DyWAMZwiIVBxxMW6OMUTNOBkNI4gSZaWmKAgamTagT0oR2xjTWm0sL+//5bRf/YhVC796SQQFa3Dm9NneyFzYbbhR8cap52EZtfebgyiE/UfLgYnflkSV3zo8S/MenVg/aSOJrRxvTq17cX+j4gzuOrB8RDNhE1koLMz0HfHXBM6Z78aPz/WB31QLJgBudSPbPzoqxWVc1JvOs1gvBZ0A6a/P8spus78gbZy0MZXvMwqzUiD0J0WaHhetLS/tvfdtFv1gOON4JQClN51Wd3DOL7fZjS93FiqDivz6xdGgyb4zdc7Q+2w7jYX841N862pg+J8/Puv3gwjNlm2efWWytP7HSW9495tRiTaB1en271AqhCZvDaqQhkQqqpZIpGHJhmPzcrdWcwYltHi9nqrYwiQxjcszIMsbYyzbXchYHXqmUrQpoLqUEEwEKJktNgNQcMD9eoWGi8NFT9VbR4uaYkLXHFlrLl2/N7rr3WH1uV82Z6PYHtD4Mh3srfPLeY43Zy7fkdh46tb5Wsli2gkn5wZPNRUUA9Y6XFmZ6Ahw45OLdiwN8sKf9BDGMgMcdJbqKUM8FvJtoSnra8PsJDiPgciHmHQLUTSlcBRhH3AyfdWnwzYU++8b0amqcqR14a9ikgUJZzDrbDi3Wc5FW+i3bixeebA3aH9y36ZV+35Xn1ZzqxVVjS9uLhh965dhFc61u76qdtV1O4pvTXZ9lsvaeVT/RhpNaP2Q0OeB19yxdEQC7DBAtncSq21r/zD70G1bubIgJYMbTq+urUZLj/svXBvFzkWFfdv+CO79vq1UGGWWebUcLPop931nwjm312N7lTq8uLCfOOzBuc6A4cJPfm1Ziemntw4qwCkBRHARrz759xz/9XAjQDeM39mL1ZxoQKInA7/e+/tUPvbmx/auz6A+6cqKU38aV4m0/VpvKzsX3nKiHpWJh99G1lo6YwJItLvyP2UYwUS68qtntUi6X3+ZQDH2vHwphIOpItnpBZt0NPhwqGkPQQG5/GgD+zwKMZAgQQZeIXE0EmtDVUvsAAFrGPIySuQRwvReGvkY+FSTSSJR+GgGjbhjXgYs5N4w1MDyUSMXdWE4jsm7Ti/oJ4RHBkIVkoim41Ip6RAREJBXp9VGwj2YaROCkAQgAEAgMhgwAQDOharXaJlMnUpuWmbPNHYEfik218k4WR9lischyHJWnuLWp5OyKg8AYq1RfZujEkXYG8lknE/h+IMMhJABIALhRESAQ4Eh+vFE5AAkJCAkIAIFwY/HCkRJNuXq724ykmnM9v9AcDp9MkqS22unMaIJhs9fXbpIc8f1wbK03OKS1yjQ6nbVE6aVAUTXRGrK2ICCNBC+8NADQSBZIIxEAAYAINiygAeD560cCSBIJuVLZqRWyWeScb66NlQQQlmoT+bxglpHJmWPFQg4Q8ayJiZIBxHPlaqaSsx2VRECAwJGDInhxMTSS4mg0DgAC2BiboJE0IGkAAEpi4fc761oT73c6FTcI5uPQf3mz0z2BpMZbzWYipRoEg962gTuYoSja3mq3VkiR0223C57nzTGGqEwHGQFpIv18DgD6SUF+phhVHUCKEBQAaEJ4Ph2AJkCnWA5zGTtQwpLlUtnVjOlcpeYanCvMFcNCPuNLblCxOjZAhsoqVXzHNmJtOXGlVB4yIvSWV7XgAgGBKQDQGkgrPZL8NRoHaKoDkiQCICIbiOcBADQ3XG6IbV57vaBIKxW45/vuoGFo/UtepxlxhErU722O49jFJNrn9vsdg+FOr9MSpDXXABdEUg5h6tGBDtqOJu3Qxk+vtUo6o2AfURJUhwFoAEAAnJmUze/e+EQfjmIJATNWHCe7FGrUPFeY0UAUm9l5yzLbPjEvkyvMxooAnNwMQxZH3GxkM/ZCKBXIOJqng3clq4PkXKWxtnH1Okr84MAo2EciAAc2SxqWNwYmApr2GwAAlFTfZYyBky/uZqG3k5RSWcTXRIEbZzLWHvLcMc553pTR3iQJA8cwLpFen1umdTYyfqFSCiDy7wEAGETx5YnWJm0cuInD3n2jYB+JAEfe8fI+EU2/kKCAszdWbnuyRgoeAKKpKJFmZxh00TCnwiThIfCngSjqxUldmNYpN4q05uZTSibMkzSNjDVcpS0ZBt1kbeVuBIBAyrcpTYAIoGV0AhaOzI6CfWSLIQb0MPwoQ59NaP7B+rv2eKjlx1ErsEvVsYJlnKulZMVcYZdIItvO5sYzoDYD41bJsc8nmWAuX5jMWNZZkMRAvfZN/t9fP3vRt+bf4kvaD0CglQIVBI+6X7gxGg33iAJBf5MIjv/wb8Zv2HTH9AWtd73iy5BEf62UzLT7g0qo9ONJ5Jd6rjdDpN1uv6cU4dRg4FZcf/iUQpbt+UFBdxr/5n7kyhvfd9irNLzoU5HUiJyBjqNO0lz78qi4RyZA4/q9XYZ088Z6gEASVCLSn7v0WydK3Xdf9Hfa7X8ADTOqlst70LB5tjZecSzLZvmSVSnmy2BnoTi2aZepYjNZX/mEe8MV1wEAHJhZubUbJbuJAWipQHv928OP/ebx/4nnfxsj7Qc4Krwdtf7BRkFIkABdcrwXfWHfv8+VB3906S3QW/+1Ybf9tB+GKo6jyUEYj2tN5Z473JFEgQjb6yd787O/5X/kqr8gAtj99RM3N4P4HZo0IOOgfW9RL0zfNErmkXeFK7c+dlFiWPcSN0oEBEgAFoMnirb4yKlrz3sQAMC+8a5X8GxhLyHbrkgzTOIlDNyj4d9c+zgR6au/u3TBsZ5/YzNI3qpJAwoDIBxqaCxe6/3lNV8fJW8qbfHiLd9/s7LzXyTDqGwkRgCTo7Q5/1IlY97xxDU77ssBqBf/3xsOLF+y1Bte14/k77ixzAMgMCEAAl+q9ZU/DP/qrZ8dNWtq9wVKNx94bZItfJ7MzG5EANIb5xEI2uBs1mC4aAq+zAhIEU0kmraFWm+PpcooAODIgDEG4HtrUJ//gPe37/xaGpypbpV1bvzGdqxO3ERG5q0gOLywYCQiQADAF1a0SKA3mgmAwIAhACoJMBw8zldm3z/41O+ntns89b3C57zpWqPxq++7jiz7PWiYrwIhLEAORPpHdzwZAgKCVgqYUhqiYJr5/dtg6qHPeXd8sp8m32nbLm9OvkIY7/v4ZZTN/woAnUuZwhu1EBOIABDHAx4MvqeUfk743Uf4U9+/r3/nLeHp4DqtD0z89yh9/ulbfWDvRUQg3z1w9fsvu+KuM8By5p4ZEpwhblQMyDjefdUN6W0D+WkYZ+KkAACaSOjnJ0IkEo4NHF5iakw7fn6eGkv92ZCXjjMmwIuvl1FqeyF/apy5IQAUbrS4EVBTPLjz5vhMcKQmwOXfPF4BZDWGmHD8kdN8SUoBSIG8pCkBAgLO0Ln0a4cnfWFT2eQ/vBOqCLTUaAQycg+9/bx6GpypCfBcJ/zTSNOfEMCLGxeEADrWVAB4fiiY9iWHPXoSKAD68WFJiGCrwP92FvGdwxSmydQEiDU5Q6lypCn3EwOeAIAB4PMfaCLDi+XYSx4IAUAmxcmUOFMTgAGFuHEjK3nJL2y00H/8vZeaCQgNRBbOp1QkpeeAQWeZ4ngKATvws882GgCKQsuRNEBfKs5YKfzzEv8FGUtUoyXBL6YAAAAASUVORK5CYII=");
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-size: 30px 30px;
+ background-color: rgba(0, 0, 0, 0.7);
+ border-radius: 5px;
+ -webkit-transition: .15s;
+ z-index: 1000;
+}
+.rschedule {
+ background-color: rgba(0, 0, 0, 0);
+ border: 5px solid rgba(0, 183, 229, 0.9);
+ opacity: .9;
+ border-left: 5px solid rgba(0, 0, 0, 0);
+ border-right: 5px solid rgba(0, 0, 0, 0);
+ border-radius: 50px;
+ box-shadow: 0 0 15px #2187e7;
+ width: 46px;
+ height: 46px;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin-left: -23px;
+ margin-top: -23px;
+ -webkit-animation: spin 1s infinite linear;
+ animation: spin 1s infinite linear;
+ z-index: 1000;
+}
+.r-sigh {
+ display: none;
+ border-radius: 50px;
+ box-shadow: 0 0 15px #2187e7;
+ width: 46px;
+ height: 46px;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin-left: -23px;
+ margin-top: -23px;
+ text-align: center;
+ line-height: 46px;
+ font-size: 40px;
+ font-weight: bold;
+ color: #2187e7;
+}
+.rprogress-sigh {
+ background-image: none !important;
+}
+.rprogress-sigh .rschedule {
+ display: none !important;
+}
+.rprogress-sigh .r-sigh {
+ display: block !important;
+}
+.rsalert {
+ font-size: 12px;
+ color: #bbb;
+ text-align: center;
+ position: absolute;
+ border-radius: 5px;
+ width: 130px;
+ margin: 5px 5px;
+ padding: 5px;
+ left: 0px;
+ bottom: 0px;
+}
+@-webkit-keyframes spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ }
+}
+@keyframes spin {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
\ No newline at end of file
diff --git a/release/asset/css/chat.css b/release/asset/css/chat.css
new file mode 100644
index 0000000..3367744
--- /dev/null
+++ b/release/asset/css/chat.css
@@ -0,0 +1,251 @@
+body {
+ padding: 0;
+ margin: 0;
+ background-repeat: no-repeat;
+ background-attachment: fixed;
+}
+
+::-webkit-scrollbar {
+ width: 10px;
+}
+
+::-webkit-scrollbar-track {
+ border-radius: 10px;
+ background-color: rgba(25, 147, 147, 0.1);
+}
+
+::-webkit-scrollbar-thumb {
+ border-radius: 10px;
+ background-color: rgba(25, 147, 147, 0.2);
+}
+
+.chat-thread {
+ margin: 10px auto 0 auto;
+ padding: 0 10px 0 10px;
+ list-style: none;
+ overflow-y: scroll;
+ overflow-x: hidden;
+}
+
+
+.chat-window {
+ position: fixed;
+ bottom: 18px;
+}
+
+.chat-window-message {
+ width: 100%;
+ height: 48px;
+ font: 32px/48px 'Noto Sans', sans-serif;
+ background: none;
+ color: #0AD5C1;
+ border: 0;
+ border-bottom: 1px solid rgba(25, 147, 147, 0.2);
+ outline: none;
+}
+
+/* Small screens */
+@media all and (max-width: 767px) {
+ .chat-thread {
+ width: 100%;
+ height: 100%;
+ }
+
+ .chat-window {
+ left: 5%;
+ width: 90%;
+ }
+}
+/* Medium and large screens */
+@media all and (min-width: 768px) {
+ .chat-thread {
+ width: 100%;
+ height: 100%;
+ }
+
+ .chat-window {
+ left: 25%;
+ width: 50%;
+ }
+}
+@keyframes show-chat-even {
+ 0% {
+ margin-left: -480px;
+ }
+
+ 100% {
+ margin-left: 0;
+ }
+}
+@-moz-keyframes show-chat-even {
+ 0% {
+ margin-left: -480px;
+ }
+
+ 100% {
+ margin-left: 0;
+ }
+}
+@-webkit-keyframes show-chat-even {
+ 0% {
+ margin-left: -480px;
+ }
+
+ 100% {
+ margin-left: 0;
+ }
+}
+@keyframes show-chat-odd {
+ 0% {
+ margin-right: -480px;
+ }
+
+ 100% {
+ margin-right: 0;
+ }
+}
+@-moz-keyframes show-chat-odd {
+ 0% {
+ margin-right: -480px;
+ }
+
+ 100% {
+ margin-right: 0;
+ }
+}
+@-webkit-keyframes show-chat-odd {
+ 0% {
+ margin-right: -480px;
+ }
+
+ 100% {
+ margin-right: 0;
+ }
+}
+.credits{
+ text-align:center;
+ margin-top:35px;
+ color: rgba(255, 255, 255, 0.35);
+ font-family: 'Noto Sans', sans-serif;
+}
+.credits a{
+ text-decoration:none;
+ color: rgba(255, 255, 255, 0.35);
+}
+
+.mui-bar-tab .mui-tab-item.mui-active{
+ color:#fb3a4e;
+}
+.mui-bar-tab .mui-tab-item .mui-icon{
+ font-size: 20px;
+}
+
+.mui-table-view-cell:after{
+ background-color: #c4c4c4;
+}
+.mui-table-view:after{
+ background-color: #c4c4c4;
+}
+/* 个人中心样式 */
+.user-info .mui-table-view-cell{
+ font-size: 14px;
+}
+.user-info .mui-table-view-cell:after{
+ left: 0
+}
+/* 联系人 群聊列表 样式 */
+.tabbar-concat .mui-table-view-cell:after,.tabbar-group .mui-table-view-cell:after{
+ left: 60px;
+}
+
+.mui-content{
+ background-color: #f8f8f8;
+}
+
+.createcom{
+ padding: 10px;
+ background-color: #fff;
+ height: 100vh;
+ font-size: 14px;
+}
+.createcom .mui-table-view:before{
+ display: none;
+}
+.createcom .profile{
+ display:flex;
+ align-items: center;
+ justify-content: space-between;
+}
+.createcom .profile .mui-media-body{
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+.createcom .mui-input-row::after{
+ left: 0px;
+}
+.createcom .area{
+ min-height:100px;
+}
+
+.createcom .area .detail{
+ height:80px;
+ font-size: 14px;
+}
+
+.createcom .mui-media{
+ padding-right: 35px;
+}
+
+.mui-bar-nav a{
+ color:#fb3a4e;
+}
+.main-content{
+ padding-top: 0;
+}
+.main-content .text{
+ font-size: 14px;
+ margin-bottom: 0;
+}
+
+.main-content .text::placeholder{
+ color: #ccc;
+}
+
+.main-content .iconfont{
+ font-size: 32px;
+ color:#929292;
+}
+
+.main-content > div{
+ display: flex;
+ align-items: center;
+}
+
+.plugins .iconfont{
+ font-size: 30px;
+ color:#929292;
+}
+
+.plugins{
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-around;
+}
+
+.plugins .plugin{
+ width: 25%;
+ margin: 0;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ text-align: center;
+}
+.plugins .plugin p{
+ margin-top: 5px;
+}
+
+.mui-popup-button{
+ color: #fb3a4e;
+}
\ No newline at end of file
diff --git a/release/asset/css/chat1.css b/release/asset/css/chat1.css
new file mode 100644
index 0000000..478aabe
--- /dev/null
+++ b/release/asset/css/chat1.css
@@ -0,0 +1,202 @@
+body {
+ padding: 0;
+ margin: 0;
+ background-repeat: no-repeat;
+ background-attachment: fixed;
+}
+
+::-webkit-scrollbar {
+ width: 10px;
+}
+
+::-webkit-scrollbar-track {
+ border-radius: 10px;
+ background-color: rgba(25, 147, 147, 0.1);
+}
+
+::-webkit-scrollbar-thumb {
+ border-radius: 10px;
+ background-color: rgba(25, 147, 147, 0.2);
+}
+
+.chat-thread {
+ margin: 24px auto 0 auto;
+ padding: 0 20px 0 0;
+ list-style: none;
+ overflow-y: scroll;
+ overflow-x: hidden;
+}
+
+.chat-thread li {
+ position: relative;
+ clear: both;
+ display: inline-block;
+ padding: 16px 40px 16px 20px;
+ margin: 0 0 20px 0;
+ font: 16px/20px 'Noto Sans', sans-serif;
+ border-radius: 10px;
+ background-color: rgba(25, 147, 147, 0.2);
+}
+
+/* Chat - Avatar */
+.chat-thread li:before {
+ position: absolute;
+ top: 0;
+ width: 50px;
+ height: 50px;
+ border-radius: 50px;
+ content: '';
+}
+
+/* Chat - Speech Bubble Arrow */
+.chat-thread li:after {
+ position: absolute;
+ top: 15px;
+ content: '';
+ width: 0;
+ height: 0;
+ border-top: 15px solid rgba(25, 147, 147, 0.2);
+}
+
+.chat-thread li.myself {
+ animation: show-chat-odd 0.15s 1 ease-in;
+ -moz-animation: show-chat-odd 0.15s 1 ease-in;
+ -webkit-animation: show-chat-odd 0.15s 1 ease-in;
+ float: right;
+ margin-right: 80px;
+ color: #0AD5C1;
+}
+
+.chat-thread li.myself:before {
+ right: -80px;
+ background-image: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAASAAAATgAAAAAAAABgAAAAAQAAAGAAAAABUGFpbnQuTkVUIHYzLjUuMTAA/9sAQwAHBQUGBQQHBgUGCAcHCAoRCwoJCQoVDxAMERgVGhkYFRgXGx4nIRsdJR0XGCIuIiUoKSssKxogLzMvKjInKisq/9sAQwEHCAgKCQoUCwsUKhwYHCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq/8AAEQgAMgAyAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A8wre0/w55qLLqM62ysMrEWAdh+PSl8M6fFLMbu5K7YziNT3b1/CqniRLq98UA2SlhHGobnA55FdbajHmZwxTnLlRtm78NabDGhs/tEwchmVfMGD0znvn0pqahoN3fCH+z0RcHcWiKY4745/KuUVtTtdSFtJCvmxHmN+317Gp5dTthGZXUSXPJJVsh1PUH1rP2rZt7GKOi1LwxHIv2jRg20jPks4b64b+h/OuZZWRyrqVZTggjBBrZ0PWftFwkA8xImTpu7gVJr1kpX7UhzJ0cZ5I9a0umtDJxcWYVFFFBJ1WlKkOmQASYyoYjZnk81aukuLHTP7YFtDeW6zJEFmyu4555H8PQemaz9NmR9PhO45C7T+HFa1rrk9iwSZ3vLJU+WyaVUCsDncMjJI64H41riYRVHmS7E4KbliOWT7nPePtPvbm8j1trWSyF3GpkgkYEbl4BBHTjHBrn49GkfRLnUpn2tBgtFj76k4GD/e749K63xb4gtdTtp4LeRismGVyOmDnpWBq2pXd74ZsdPjG2GCTdHDEnzSN/ebHLH+VeXBuyR7E4wu35EXhKKObVCRnMKMwY+hwAPz5rrJ7bzYXTfu3Ag5yKwfC+nNZvcPPJHvdQDGnJjOehPTPsOlb0zLFA8m/hVJ/SvXo0oundnhV6slU5UcjRRRXPY3Luk3giYwSHCscqfetfULXOlR3TXIhZ2ZYfLILHHDkjsO3PJPSuXqeC5aPzd5ZjIQdxOcEDFa+0fJyEKmvac5myyQWJlRZnkkTHytjoeuPepLaa9vi4ib7LbOMyFG5KjtnrVMabPd30gcrCjMSZGPQf1NbF0i29pHBAUlbABVT8pPqSOwrljDW53c+lrl/RWxvymyDAWPjsPSpdVnVF8iNsk8tz0HpVFLloowEYvJjBkIwB7AdhUGSxJJyT1JrpU2o8py1IwlJS6hRS0VAiKiiikUKKUUUUxC0ooooAKKKKQH/2Q==);
+}
+
+.chat-thread li.myself:after {
+ border-right: 15px solid transparent;
+ right: -15px;
+}
+
+.chat-thread li.other {
+ animation: show-chat-even 0.15s 1 ease-in;
+ -moz-animation: show-chat-even 0.15s 1 ease-in;
+ -webkit-animation: show-chat-even 0.15s 1 ease-in;
+ float: left;
+ margin-left: 80px;
+ color: #0EC879;
+}
+
+.chat-thread li.other:before {
+ left: -80px;
+ background-image: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAASAAAATgAAAAAAAABgAAAAAQAAAGAAAAABUGFpbnQuTkVUIHYzLjUuMTAA/9sAQwAHBQUGBQQHBgUGCAcHCAoRCwoJCQoVDxAMERgVGhkYFRgXGx4nIRsdJR0XGCIuIiUoKSssKxogLzMvKjInKisq/9sAQwEHCAgKCQoUCwsUKhwYHCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq/8AAEQgAMgAyAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A8tq7pmj3urzbLKEsB95zwq/U1PoGjSa5qiWyErGPmlcfwr/jXZeMryHwp4VjtbECFrg+WgU4IXGWP17Z963lLWy3PNhC6uzhdSTTdIkMMty97MvDi3wqKfTcc5/KoLfUdDnkWOYXtpuOPNZlkVfcgAHFW9E8G6v4hAnXyrSBuVabOSPYdas618PNY0u3MiPb30ajJWMFW/AHrRzQ2ub+yfYS/wDDV3aQieBlu7cjcJIuePXH+FY1dR8O9SeYXGjzElYlMsIbqnOGX6c5/On+K9BWDN9artGf3qAf+PVKk1LlkZyp6XRymKKWitDG56h8N9OWPRJLsj57iU8/7K8D9c1lfE/TpZ/E3h9iC8EiumzHG4HP65FdL8PJFk8J2yr1jd1b67if61q+K9NS5023vjw+mzfaF4zkY2kfrn8K52/ebOyCXKjltJ1i5tpEimsY1ULuc7zlRnHpj8Kt6/qTzKI7aTyo9wV5VTecnpgH+dSXM0baJNcSFVC8t71HpNzaT31+IH8xAiNg467emPy5rDQ7LHHaNZ3Ft8ULPLfNPFI0jKu3zF2nkjtniu21W3WS3kjkGVZSpHtWZ4atP7Q8aahqshwLOEQRrju/P8h+ta+rSAKRWjd0jnkrNnkcsZimeNuqMVP4UVJesJL+4dejSsR+dFdi2PPe52Xw31xLO8m025cIk58yIscAMByPxAH5V1mufEDQLC1ltS51GWRChht+Rzxgt0H6144RVK5gmGWhOR6DqKjkTdzSnUsrHTm6c6kNP1jzMQgmNScoT159eOKLzVbG2xf27NBdoyqqR4G72OBg8U2yuLfxLbJFcOI79F2up4Lf7Qpt5olposf2q9n+XPyqzZYn2FYW1sdyloWvDfxAh0AXFrqljJ/pMnnNcxnLc8AFT2GO1aureKbG70559PuVlLfKoHBBPqOorze48/VbxpymxTgD0VR0FXbe3S3j2p1PU+tbezW5yzqW0RJRS0VocwtFFFMkQqpIJUEjpkUFFZtzKC3qRzRRS6mq+EWkNFFBmLRRRQB//9k=);
+}
+
+.chat-thread li.other:after {
+ border-left: 15px solid transparent;
+ left: -15px;
+}
+
+.chat-window {
+ position: fixed;
+ bottom: 18px;
+}
+
+.chat-window-message {
+ width: 100%;
+ height: 48px;
+ font: 32px/48px 'Noto Sans', sans-serif;
+ background: none;
+ color: #0AD5C1;
+ border: 0;
+ border-bottom: 1px solid rgba(25, 147, 147, 0.2);
+ outline: none;
+}
+
+/* Small screens */
+@media all and (max-width: 767px) {
+ .chat-thread {
+ width: 100%;
+ height: 100%;
+ }
+
+ .chat-window {
+ left: 5%;
+ width: 90%;
+ }
+}
+/* Medium and large screens */
+@media all and (min-width: 768px) {
+ .chat-thread {
+ width: 100%;
+ height: 100%;
+ }
+
+ .chat-window {
+ left: 25%;
+ width: 50%;
+ }
+}
+@keyframes show-chat-even {
+ 0% {
+ margin-left: -480px;
+ }
+
+ 100% {
+ margin-left: 0;
+ }
+}
+@-moz-keyframes show-chat-even {
+ 0% {
+ margin-left: -480px;
+ }
+
+ 100% {
+ margin-left: 0;
+ }
+}
+@-webkit-keyframes show-chat-even {
+ 0% {
+ margin-left: -480px;
+ }
+
+ 100% {
+ margin-left: 0;
+ }
+}
+@keyframes show-chat-odd {
+ 0% {
+ margin-right: -480px;
+ }
+
+ 100% {
+ margin-right: 0;
+ }
+}
+@-moz-keyframes show-chat-odd {
+ 0% {
+ margin-right: -480px;
+ }
+
+ 100% {
+ margin-right: 0;
+ }
+}
+@-webkit-keyframes show-chat-odd {
+ 0% {
+ margin-right: -480px;
+ }
+
+ 100% {
+ margin-right: 0;
+ }
+}
+.credits{
+ text-align:center;
+ margin-top:35px;
+ color: rgba(255, 255, 255, 0.35);
+ font-family: 'Noto Sans', sans-serif;
+}
+.credits a{
+ text-decoration:none;
+ color: rgba(255, 255, 255, 0.35);
+}
\ No newline at end of file
diff --git a/release/asset/css/common.css b/release/asset/css/common.css
new file mode 100644
index 0000000..f7a0f8b
--- /dev/null
+++ b/release/asset/css/common.css
@@ -0,0 +1,17 @@
+.mui-bar .mui-icon {
+ font-size: 18px;
+ position: relative;
+ z-index: 20;
+ padding-top: 14px;
+ padding-bottom: 10px;
+}
+.mui-bar{
+ background-color: #03a9f4;
+
+}
+.mui-title{
+ color:#ffffff;
+}
+header >a{
+ color:#ffffff;
+}
\ No newline at end of file
diff --git a/release/asset/css/concat.css b/release/asset/css/concat.css
new file mode 100644
index 0000000..e69de29
diff --git a/release/asset/css/dpl.css b/release/asset/css/dpl.css
new file mode 100644
index 0000000..01c4387
--- /dev/null
+++ b/release/asset/css/dpl.css
@@ -0,0 +1 @@
+@charset "utf-8";html{color:#333;background:#fff;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}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}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}body,button,input,select,textarea{font:12px/1.5 "\5FAE\8F6F\96C5\9ED1","Microsoft Yahei","Hiragino Sans GB",tahoma,arial,"\5B8B\4F53"}input,select,textarea{font-size:100%}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}iframe{display:block}abbr,acronym{border:0;font-variant:normal}del{text-decoration:line-through}i{font-style:normal}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-weight:500;color:#000}h1{font-size:24px}h2{font-size:16px}h3,h4,h5,h6{font-size:14px}q:before,q:after{content:''}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}ins,a{text-decoration:none}a,.y-lnk,.y-lnk-gray,.y-lnk-highlight{-webkit-transition:color .2s;-moz-transition:color .2s;-ms-transition:color .2s;-o-transition:color .2s}a,a:link,a:visited,a:hover{color:#00a2ca}.y-lnk-highlight,.y-lnk-highlight:link,.y-lnk-highlight:visited{color:#f60}.y-lnk-highlight:hover{color:#f60}.y-lnk,.y-lnk:link,.y-lnk:visited{color:#000}.y-lnk:hover{color:#00a2ca}.y-lnk-gray,.y-lnk-gray:link,.y-lnk-gray:visited{color:#666}.y-lnk-gray:hover{color:#00a2ca}.y-lnk-highlight,.y-lnk,.y-lnk-gray{cursor:pointer}a:hover,.y-lnk-highlight:hover,.y-lnk:hover,.y-lnk-gray:hover{text-decoration:underline}.y-clear:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.y-clear{zoom:1}.y-cny{font-family:arial}body .fn-hide{display:none}.y-align-right{text-align:right!important}.y-align-left{text-align:left!important}.y-align-center{text-align:center!important}.y-left,.y-right{display:inline}.y-left{float:left!important}.y-right{float:right!important}.y-hide{display:none!important}.y-red{color:#e00}.y-orange{color:#f60}.y-blue{color:#00a2ca}.y-green{color:#390}.y-black{color:#000}.y-dark{color:#333}.y-gray{color:#666}.y-pale{color:#999}.y-light{color:#ccc}.y-mt1{margin-top:4px}.y-mt2{margin-top:8px}.y-mt3{margin-top:12px}.y-mt4{margin-top:16px}.y-mt5{margin-top:20px}.y-mr1{margin-right:4px}.y-mr2{margin-right:8px}.y-mr3{margin-right:12px}.y-mr4{margin-right:16px}.y-mr5{margin-right:20px}.y-ml1{margin-left:4px}.y-ml2{margin-left:8px}.y-ml3{margin-left:12px}.y-ml4{margin-left:16px}.y-ml5{margin-left:20px}.y-pb1{padding-bottom:4px}.y-pb2{padding-bottom:8px}.y-pb3{padding-bottom:12px}.y-pb4{padding-bottom:16px}.y-pb5{padding-bottom:20px}.y-row{min-width:1000px;max-width:1200px;margin-left:auto;margin-right:auto;zoom:1;*width:1000px}.y-row:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.y-row-edge{padding-left:10px;padding-right:10px;*padding-left:0;*padding-right:0}.y-row .y-span1,.y-row .y-span2,.y-row .y-span3,.y-row .y-span4,.y-row .y-span5,.y-row .y-span6,.y-row .y-span7,.y-row .y-span8,.y-row .y-span9,.y-row .y-span10,.y-row .y-span11,.y-row .y-span12{float:left;display:inline;margin-right:2%;*margin-right:20px}.y-row .y-span1{width:6.5%;*width:65px}.y-row .y-span2{width:15%;*width:150px}.y-row .y-span3{width:23.5%;*width:235px}.y-row .y-span4{width:32%;*width:320px}.y-row .y-span5{width:40.5%;*width:405px}.y-row .y-span6{width:49%;*width:490px}.y-row .y-span7{width:57.5%;*width:575px}.y-row .y-span8{width:66%;*width:660px}.y-row .y-span9{width:74.5%;*width:745px}.y-row .y-span10{width:83%;*width:830px}.y-row .y-span11{width:91.5%;*width:915px}.y-row .y-span12{width:100%;*width:1000px}.y-row .y-last{margin-right:0!important}@font-face{font-family:'iconfont';src:url('aliyun/www-dpl/0.2.3/knight/fonts/iconfont.eot?rk2faw');src:url('aliyun/www-dpl/0.2.3/knight/fonts/iconfont.eot?#iefixrk2faw') format('embedded-opentype'),url('aliyun/www-dpl/0.2.3/knight/fonts/iconfont.woff?rk2faw') format('woff'),url('aliyun/www-dpl/0.2.3/knight/fonts/iconfont.ttf?rk2faw') format('truetype'),url('aliyun/www-dpl/0.2.3/knight/fonts/iconfont.svg?rk2faw#icofont') format('svg');font-weight:400;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:'iconfont';speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-ace-big:before{content:"\e600"}.icon-ace:before{content:"\e601"}.icon-add:before{content:"\e602"}.icon-ads-big:before{content:"\e603"}.icon-ads:before{content:"\e604"}.icon-appendix:before{content:"\e605"}.icon-arrow-left:before{content:"\e606"}.icon-arrow-right:before{content:"\e607"}.icon-bang:before{content:"\e608"}.icon-bang2:before{content:"\e609"}.icon-blow-up:before{content:"\e60a"}.icon-bullhorn:before{content:"\e60b"}.icon-caiyunjian-big:before{content:"\e60c"}.icon-caiyunjian:before{content:"\e60d"}.icon-calendar:before{content:"\e60e"}.icon-card:before{content:"\e60f"}.icon-cdn-big:before{content:"\e610"}.icon-cdn:before{content:"\e611"}.icon-clock:before{content:"\e612"}.icon-cloud:before{content:"\e613"}.icon-counter:before{content:"\e614"}.icon-customer:before{content:"\e615"}.icon-customers:before{content:"\e616"}.icon-dialog2:before{content:"\e617"}.icon-dianshang:before{content:"\e618"}.icon-down:before{content:"\e619"}.icon-down2:before{content:"\e61a"}.icon-down3:before{content:"\e61b"}.icon-download:before{content:"\e61c"}.icon-drds-big:before{content:"\e61d"}.icon-drds:before{content:"\e61e"}.icon-earth:before{content:"\e61f"}.icon-ecs-big:before{content:"\e620"}.icon-ecs:before{content:"\e621"}.icon-ess-big:before{content:"\e622"}.icon-ess:before{content:"\e623"}.icon-file:before{content:"\e624"}.icon-giving:before{content:"\e625"}.icon-gold:before{content:"\e626"}.icon-good:before{content:"\e627"}.icon-heart:before{content:"\e628"}.icon-heart2:before{content:"\e629"}.icon-help:before{content:"\e62a"}.icon-home:before{content:"\e62b"}.icon-info:before{content:"\e62c"}.icon-jinrong:before{content:"\e62d"}.icon-left:before{content:"\e62e"}.icon-left2:before{content:"\e62f"}.icon-lessen:before{content:"\e630"}.icon-link:before{content:"\e631"}.icon-loading:before{content:"\e632"}.icon-lock:before{content:"\e633"}.icon-logo:before{content:"\e634"}.icon-logo2:before{content:"\e635"}.icon-logo3:before{content:"\e636"}.icon-mail:before{content:"\e637"}.icon-medal-gold:before{content:"\e638"}.icon-medal-silver:before{content:"\e639"}.icon-medal-standard:before{content:"\e63a"}.icon-medal-strategy:before{content:"\e63b"}.icon-medal:before{content:"\e63c"}.icon-money:before{content:"\e63d"}.icon-money2:before{content:"\e63e"}.icon-mqs-big:before{content:"\e63f"}.icon-mqs:before{content:"\e640"}.icon-mts-big:before{content:"\e641"}.icon-mts:before{content:"\e642"}.icon-no3:before{content:"\e643"}.icon-oas-big:before{content:"\e644"}.icon-oas:before{content:"\e645"}.icon-ocs-big:before{content:"\e646"}.icon-ocs:before{content:"\e647"}.icon-odps-big:before{content:"\e648"}.icon-odps:before{content:"\e649"}.icon-ons-big:before{content:"\e64a"}.icon-ons:before{content:"\e64b"}.icon-opensearch-big:before{content:"\e64c"}.icon-opensearch:before{content:"\e64d"}.icon-order:before{content:"\e64e"}.icon-oss-big:before{content:"\e64f"}.icon-oss:before{content:"\e650"}.icon-ots-big:before{content:"\e651"}.icon-ots:before{content:"\e652"}.icon-pen:before{content:"\e653"}.icon-phone:before{content:"\e654"}.icon-pic:before{content:"\e655"}.icon-play:before{content:"\e656"}.icon-pts-big:before{content:"\e657"}.icon-pts:before{content:"\e658"}.icon-qingecs:before{content:"\e659"}.icon-rds-big:before{content:"\e65a"}.icon-rds:before{content:"\e65b"}.icon-reduce:before{content:"\e65c"}.icon-reload:before{content:"\e65d"}.icon-right:before{content:"\e65e"}.icon-right2:before{content:"\e65f"}.icon-rubbish:before{content:"\e660"}.icon-sale:before{content:"\e661"}.icon-Search:before{content:"\e662"}.icon-service:before{content:"\e663"}.icon-set:before{content:"\e664"}.icon-set2:before{content:"\e665"}.icon-shopping-cart:before{content:"\e666"}.icon-silver:before{content:"\e667"}.icon-slb-big:before{content:"\e668"}.icon-slb:before{content:"\e669"}.icon-sls-big:before{content:"\e66a"}.icon-sls:before{content:"\e66b"}.icon-standard:before{content:"\e66c"}.icon-star:before{content:"\e66d"}.icon-star2:before{content:"\e66e"}.icon-stop:before{content:"\e66f"}.icon-strap:before{content:"\e670"}.icon-strategy:before{content:"\e671"}.icon-tel:before{content:"\e672"}.icon-unlock:before{content:"\e673"}.icon-up:before{content:"\e674"}.icon-up2:before{content:"\e675"}.icon-upload:before{content:"\e676"}.icon-video:before{content:"\e677"}.icon-vpc-big:before{content:"\e678"}.icon-vpc:before{content:"\e679"}.icon-wrong-thin:before{content:"\e67a"}.icon-wrong:before{content:"\e67b"}.icon-yes2:before{content:"\e67c"}.icon-yes3:before{content:"\e67d"}.icon-youxi:before{content:"\e67e"}.icon-yundun-big:before{content:"\e67f"}.icon-yundun:before{content:"\e680"}.icon-yunjiankong-big:before{content:"\e681"}.icon-yunjiankong:before{content:"\e682"}.icon-zhuanxian:before{content:"\e683"}.y-btn-blue,a.y-btn-blue,.y-btn-white,a.y-btn-white,.y-btn-anti,a.y-btn-anti,.y-btn-trans,a.y-btn-trans{-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s}.y-btn-blue,.y-btn-white,.y-btn-anti,.y-btn-trans{display:inline-block;min-width:140px;height:36px;padding:0 30px 1px;background:#00a2ca;border:solid 1px #00a2ca;line-height:32px;font-size:14px;color:#fff;text-align:center;outline:none;cursor:pointer;border-radius:4px;*width:auto;*padding:0 15px}.y-btn-blue:hover,.y-btn-white:hover{background:#33b5d4;border-color:#33b5d4}.y-btn-blue:active,.y-btn-white:active{background:#008fb2;border-color:#008fb2}.y-btn-white{background:#fff;border-color:#00a2ca;color:#00a2ca}.y-btn-white:hover,.y-btn-white:active{color:#fff}.y-btn-anti{background:#fff;border-color:#fff;color:#00a2ca}.y-btn-anti:hover{background:#9cddf5;border-color:#9cddf5}.y-btn-anti:active{background:#5acbeb;border-color:#5acbeb;color:#fff}.y-btn-trans{background:0 0;border-color:#fff;color:#fff}.y-btn-trans:hover{background:#fff;color:#000}.y-btn-trans:active{background:#e7e7e7;border-color:#e7e7e7}.y-btn-blue.y-btn-l,.y-btn-white.y-btn-l,.y-btn-anti.y-btn-l,.y-btn-trans.y-btn-l{min-width:180px;height:42px;padding:0 40px;line-height:38px;font-size:18px;*padding:0 20px}.y-btn-blue.y-btn-s,.y-btn-white.y-btn-s,.y-btn-anti.y-btn-s,.y-btn-trans.y-btn-s{min-width:100px;height:26px;padding:0 20px;line-height:20px;font-size:12px;*padding:0 10px}.y-btn-blue.y-btn-disabled,.y-btn-white.y-btn-disabled,.y-btn-blue:hover.y-btn-disabled,.y-btn-white:hover.y-btn-disabled,.y-btn-blue:active.y-btn-disabled,.y-btn-white:active.y-btn-disabled{background:#efefef;border-color:#efefef;color:#ccc;cursor:default}.y-btn-anti.y-btn-disabled,.y-btn-trans.y-btn-disabled,.y-btn-anti:hover.y-btn-disabled,.y-btn-trans:hover.y-btn-disabled,.y-btn-anti:active.y-btn-disabled,.y-btn-trans:active.y-btn-disabled{background:#c4c4c4;border-color:#c4c4c4;color:#8d8d8d;cursor:default}a.y-btn-blue,a.y-btn-blue:link,a.y-btn-blue:visited,a.y-btn-white,a.y-btn-white:link,a.y-btn-white:visited,a.y-btn-anti,a.y-btn-anti:link,a.y-btn-anti:visited,a.y-btn-trans,a.y-btn-trans:link,a.y-btn-trans:visited{display:inline-block;min-width:78px;height:33px;padding:0 30px 1px;background:#00a2ca;line-height:33px;font-size:14px;color:#fff;text-align:center;outline:none;border-radius:4px;*width:auto}a.y-btn-blue:hover{background:#33b5d4;border-color:#33b5d4;text-decoration:none}a.y-btn-blue:active{background:#008fb2;border-color:#008fb2}a.y-btn-white,a.y-btn-white:link,a.y-btn-white:visited{background:#fff;border-color:#00a2ca;color:#00a2ca}a.y-btn-white:hover{background:#33b5d4;border-color:#33b5d4;color:#fff;text-decoration:none}a.y-btn-white:active{background:#008fb2;border-color:#008fb2;color:#fff}a.y-btn-anti,a.y-btn-anti:link,a.y-btn-anti:visited{background:#fff;border-color:#fff;color:#00a2ca}a.y-btn-anti:hover{background:#9cddf5;border-color:#9cddf5;text-decoration:none}a.y-btn-anti:active{background:#5acbeb;border-color:#5acbeb;color:#fff}a.y-btn-trans,a.y-btn-trans:link,a.y-btn-trans:visited{background:0 0;border-color:#fff;color:#fff}a.y-btn-trans:hover{background:#fff;color:#000;text-decoration:none}a.y-btn-trans:active{background:#e7e7e7;border-color:#e7e7e7}a.y-btn-blue.y-btn-l,a.y-btn-blue:link.y-btn-l,a.y-btn-blue:visited.y-btn-l,a.y-btn-blue:hover.y-btn-l,a.y-btn-white.y-btn-l,a.y-btn-white:link.y-btn-l,a.y-btn-white:visited.y-btn-l,a.y-btn-white:hover.y-btn-l,a.y-btn-anti.y-btn-l,a.y-btn-anti:link.y-btn-l,a.y-btn-anti:visited.y-btn-l,a.y-btn-anti:hover.y-btn-l,a.y-btn-trans.y-btn-l,a.y-btn-trans:link.y-btn-l,a.y-btn-trans:visited.y-btn-l,a.y-btn-trans:hover.y-btn-l{min-width:98px;height:40px;padding:0 40px;line-height:40px;font-size:18px}a.y-btn-blue.y-btn-s,a.y-btn-blue:link.y-btn-s,a.y-btn-blue:visited.y-btn-s,a.y-btn-blue:hover.y-btn-s,a.y-btn-white.y-btn-s,a.y-btn-white:link.y-btn-s,a.y-btn-white:visited.y-btn-s,a.y-btn-white:hover.y-btn-s,a.y-btn-anti.y-btn-s,a.y-btn-anti:link.y-btn-s,a.y-btn-anti:visited.y-btn-s,a.y-btn-anti:hover.y-btn-s,a.y-btn-trans.y-btn-s,a.y-btn-trans:link.y-btn-s,a.y-btn-trans:visited.y-btn-s,a.y-btn-trans:hover.y-btn-s{min-width:58px;height:24px;padding:0 20px;line-height:2;font-size:12px}a.y-btn-blue.y-btn-disabled,a.y-btn-blue:link.y-btn-disabled,a.y-btn-blue:visited.y-btn-disabled,a.y-btn-blue:hover.y-btn-disabled,a.y-btn-blue:active.y-btn-disabled,a.y-btn-white.y-btn-disabled,a.y-btn-white:link.y-btn-disabled,a.y-btn-white:visited.y-btn-disabled,a.y-btn-white:hover.y-btn-disabled,a.y-btn-white:active.y-btn-disabled{background:#efefef;border-color:#efefef;color:#ccc;cursor:default}a.y-btn-anti.y-btn-disabled,a.y-btn-anti:link.y-btn-disabled,a.y-btn-anti:visited.y-btn-disabled,a.y-btn-anti:hover.y-btn-disabled,a.y-btn-anti:active.y-btn-disabled,a.y-btn-trans.y-btn-disabled,a.y-btn-trans:link.y-btn-disabled,a.y-btn-trans:visited.y-btn-disabled,a.y-btn-trans:hover.y-btn-disabled,a.y-btn-trans:active.y-btn-disabled{background:#c4c4c4;border-color:#c4c4c4;color:#8d8d8d;cursor:default}.y-dlg{padding:4px;width:476px;background:#9cddf5;background:rgba(0,162,202,.5)}.y-dlg .y-box{padding:10px 10px 20px 20px;background:#fff;line-height:1.5;color:#333}.y-dlg .y-hd{height:34px}.y-dlg .y-hd .y-dlg-title{float:left;display:inline;margin-top:2px;font-size:16px;line-height:2;color:#000}.y-dlg .y-hd .y-dlg-close,.y-dlg .y-hd .y-dlg-close:link,.y-dlg .y-hd .y-dlg-close:visited{float:right;display:inline;height:12px;width:12px;padding:2px;font-size:12px;line-height:1;color:#999;cursor:pointer;-webkit-transition:color .3s;-moz-transition:color .3s;-ms-transition:color .3s;-o-transition:color .3s}.y-dlg .y-hd .y-dlg-close:hover{color:#363636}.y-dlg .y-bd{padding:8px 0 21px;margin-right:10px;border-top:solid 2px #f4f4f4;color:#666}.y-dlg .y-bd .y-dlg-part{padding-top:13px;padding-bottom:32px}.y-dlg .y-ft{padding-top:16px;margin-right:10px;border-top:solid 1px #f4f4f4;text-align:center;color:#999;line-height:1}.y-dlg .y-ft *{margin:0 4px;width:98px}.y-form .row{line-height:1.5;padding:8px 0;overflow:visible;font-size:12px;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s}.y-form .row-hide{padding:0;height:0;overflow:hidden;line-height:0}.y-form .row .row-name{float:left;display:inline;width:180px;height:18px;padding:4px 0;text-align:right;color:#666}.y-form .row .row-column{margin-left:184px;line-height:26px}.y-form .row .row-li{padding:0;line-height:26px}.y-form .row,.y-form .row .row-column,.y-form .row .row-li{zoom:1}.y-form .row:after,.y-form .row .row-column:after,.y-form .row .row-li:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.y-form .dashed{border-top:dashed 1px #d6d6d6;height:0;overflow:hidden;margin:10px 9px}.y-form .y-input,.y-input{height:18px;width:284px;padding:3px 7px;border:solid 1px #ccc;background:#fff;border-radius:4px;outline:none;line-height:1.5;color:#000;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s}.y-form textarea.y-input,textarea.y-input{height:auto;vertical-align:top}.y-form select{border:solid 1px #eee;padding:1px 0;background:#f8f8f8;height:26px;font-size:12px;line-height:2;outline:none;*margin-top:3px}.y-form .row-info{display:inline-block;padding:4px 8px;line-height:1.5;vertical-align:baseline;color:#999}.y-form .row-info .icon{float:left;display:inline;width:16px;height:16px;overflow:hidden;margin-right:4px;line-height:1;font-size:16px;color:#00a2ca}.y-form.y-form-l .row{line-height:2;padding:12px 0;font-size:14px}.y-form.y-form-l .row .row-name{height:28px;padding:4px 0}.y-form.y-form-l .row .row-li{line-height:2.57}.y-form.y-form-l .y-input{height:28px;line-height:2}.y-form.y-form-l textarea.y-input{height:auto;vertical-align:top}.y-form.y-form-l select{height:36px;padding:5px 0;font-size:14px;line-height:2.57;*margin-top:7px}.y-form.y-form-l .row-info{padding:9px 8px;line-height:1.5;font-size:12px}.y-form .y-input.y-input-tip{color:#ccc!important}.y-form .y-input.y-input-error{background:#fff8f3;border-color:#e00}.y-form .y-input.y-input-disabled{background:#f8f8f8;border-color:#eee;color:#ccc}.y-form .y-input:focus,.y-input:focus{background:#e9fbfe;border-color:#69c5dd}.y-form select:focus{border-color:#69c5dd;background:#e9fbfe}.y-form .row-info.row-info-warning .icon,.y-form .row-info.row-info-warning{color:#e00}.y-form .row-info.row-info-success .icon{color:#6c0}.y-msg{width:560px;margin:60px auto 0;padding-bottom:150px}.y-msg .y-icon{float:left;display:inline;width:48px;height:48px;font-size:48px;font-style:normal;line-height:1}.y-msg.y-msg-warning .y-icon{color:#e00}.y-msg.y-msg-success .y-icon{color:#6c0}.y-msg.y-msg-normal .y-icon{color:#00a2ca}.y-msg .y-msg-message{margin-left:64px}.y-msg.y-msg-no-icon .y-msg-message{margin-left:0}.y-msg .y-msg-message .y-msg-title{font-size:18px;font-weight:700;line-height:50px;color:#000}.y-msg .y-msg-message .y-msg-info{font-size:12px;line-height:2;color:#666}.y-msg .y-msg-message .y-msg-other{margin-top:18px}.y-msg .y-msg-other a,.y-msg .y-msg-other button{margin-right:8px}.y-msg.y-msg-s{width:auto;margin:16px 0 0;padding-bottom:32px}.y-msg.y-msg-s .y-icon{width:32px;height:32px;font-size:32px;line-height:1}.y-msg.y-msg-s .y-msg-message{margin-left:48px}.y-msg.y-msg-s .y-msg-message .y-msg-title{font-size:16px;line-height:34px;font-weight:400}.y-msg.y-msg-s .y-msg-message .y-msg-info{margin-top:3px;line-height:1.5}.y-tip{padding:3px 7px;border:solid 1px #ddd;background:#f9f9f9;line-height:2;color:#333}.y-tip .y-icon{float:left;display:inline;width:16px;height:16px;margin-top:4px;font-size:16px;font-style:normal;line-height:1}.y-tip .y-tip-message{margin:0 24px;line-height:2}.y-tip.y-tip-warning{background:#fff3e7;border-color:#f8e3d5;color:#e00}.y-tip.y-tip-warning .y-icon{color:#e00}.y-tip.y-tip-success{background:#f7ffee;border-color:#e7f3da;color:#666}.y-tip.y-tip-success .y-icon{color:#6c0}.y-tip.y-tip-normal{background:#f1f6fa;border-color:#e2eced;color:#666}.y-tip.y-tip-normal .y-icon{color:#00a2ca}.y-info{padding:20px 23px;border:solid 1px #ddd;background:#f9f9f9;line-height:2;color:#333}.y-bbl{position:relative;display:block;height:32px}.y-bbl .y-box{display:block;padding:3px 7px;overflow:visible;background:#f1f6fa;border:solid 1px #e1ebec;line-height:2;color:#333}.y-bbl .y-arrow{position:absolute;bottom:-6px;left:8px;display:block;width:14px;height:7px;overflow:hidden}.y-bbl .y-arrow .y-arr1,.y-bbl .y-arrow .y-arr2{position:absolute;top:0;left:0;height:0;overflow:hidden;display:block;border:solid 7px transparent;border-top-color:#e1ebec;_border-color:#000;_filter:chroma(color="black");_border-top-color:#e1ebec}.y-bbl .y-arrow .y-arr2{top:-1px;border-top-color:#f1f6fa;_border-top-color:#f1f6fa}.y-bbl.y-bbl-arrow-right .y-arrow{left:auto;right:8px}.y-bbl.y-bbl-arrow-top .y-arrow{bottom:auto;top:-6px}.y-bbl.y-bbl-arrow-top .y-arrow .y-arr1,.y-bbl.y-bbl-arrow-top .y-arrow .y-arr2{position:absolute;top:-7px;left:0;height:0;overflow:hidden;display:block;border:solid 7px transparent;border-bottom-color:#e1ebec;_border-color:#000;_filter:chroma(color="black");_border-bottom-color:#e1ebec}.y-bbl.y-bbl-arrow-top .y-arrow .y-arr2{top:-6px;border-bottom-color:#f1f6fa;_border-bottom-color:#f1f6fa}.y-bbl .y-icon{float:left;display:inline;width:16px;height:16px;margin-top:4px;font-size:16px;font-style:normal;line-height:1;color:#00a2ca}.y-bbl .y-bbl-message{display:block;margin-left:24px;line-height:2;white-space:nowrap}.y-bbl.y-bbl-no-icon .y-bbl-message{margin-left:0}.y-paging{display:inline-block;height:32px;overflow:visible;line-height:1.5;color:#333;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none}.y-paging .y-page-list{display:inline-block;height:32px}.y-paging .y-prev,.y-paging .y-next,.y-paging .y-page,.y-paging .y-omit{display:inline-block;height:18px;min-width:24px;padding:6px 3px;margin:0 4px;background:#fff;border:solid 1px #ddd;overflow:hidden;text-align:center;cursor:pointer;border-radius:4px;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s;*width:24px}.y-paging .y-omit{width:26px;padding:7px 3px;border-width:0;background:0 0;cursor:default}.y-paging .y-prev,.y-paging .y-prev:link,.y-paging .y-prev:visited,.y-paging .y-next,.y-paging .y-next:link,.y-paging .y-next:visited{width:60px;color:#333}.y-paging .y-prev,.y-paging .y-prev:link,.y-paging .y-prev:visited{margin:0 4px 0 0}.y-paging .y-next,.y-paging .y-next:link,.y-paging .y-next:visited{margin:0 0 0 4px}.y-paging .y-page,.y-paging .y-page:link,.y-paging .y-page:visited{background:#fff;color:#333}.y-paging .y-prev:hover,.y-paging .y-next:hover,.y-paging .y-page:hover{background:#33b5d4;border-color:#33b5d4;color:#fff;text-decoration:none}.y-paging .y-prev:active,.y-paging .y-next:active,.y-paging .y-page:active{background:#20a5c5;border-color:#20a5c5;color:#fff}.y-paging .y-current,.y-paging .y-current:link,.y-paging .y-current:visited,.y-paging .y-current:hover{background:#00a2ca;border-color:#00a2ca;color:#fff}.y-paging .y-disabled,.y-paging .y-disabled:link,.y-paging .y-disabled:visited,.y-paging .y-disabled:hover{background:#efefef;border-color:#efefef;color:#ccc;cursor:default}.y-paging.y-paging-rn .y-prev,.y-paging.y-paging-rn .y-next,.y-paging.y-paging-rn .y-page,.y-paging.y-paging-rn .y-omit{margin:0 0 0 4px}.y-paging .y-total,.y-paging .y-jump{display:inline-block;height:18px;padding:7px 0;margin:0 0 0 16px;overflow:hidden}.y-paging .y-jump{display:inline-block;height:24px;padding:4px 0;margin:0 0 0 16px;overflow:hidden}.y-paging .y-jump input{width:50px;text-align:center}.y-paging .y-jump .y-btn-white,.y-paging .y-jump .y-btn-white:link,.y-paging .y-jump .y-btn-white:visited{padding:0;width:38px;min-width:0;margin-left:4px;*vertical-align:top}.y-paging .y-jump .y-btn-white{width:40px}.y-process{height:26px}.y-process .y-unit{float:left;display:inline;height:26px;background:#ccc;overflow:hidden;text-align:center;color:#fff;font-size:14px;line-height:1.85}.y-process .y-current{background:#00a2ca}.y-process .y-complete{background:#9cddf5}.y-process .y-arrow{position:relative;float:left;display:inline;width:2%;height:26px;overflow:hidden;background:#ccc}.y-process .y-complete-current{background:#00a2ca}.y-process .y-complete-complete{background:#9cddf5}.y-process .y-arrow .y-next{position:absolute;display:block;left:0;top:-3px;height:0;width:0;overflow:hidden;border:solid 10px transparent;border-width:16px 10px;border-left-color:#fff;_border-color:#000;_filter:chroma(color=#000);_border-left-color:#fff}.y-process .y-arrow .y-prev{position:absolute;display:block;left:0;top:0;height:0;width:0;overflow:hidden;border:solid 10px transparent;border-width:13px 8px;border-left-color:#ccc;_border-color:#000;_filter:chroma(color=#000);_border-left-color:#ccc}.y-process .y-complete-current .y-prev{border-left-color:#9cddf5}.y-process .y-current-unit .y-prev{border-left-color:#00a2ca}.y-process .y-complete-complete .y-prev{border-left-color:#9cddf5}.y-process.y-process-2 .y-unit{width:49%;*width:48.9%}.y-process.y-process-3 .y-unit{width:32%;*width:31.9%}.y-process.y-process-4 .y-unit{width:23.5%;*width:23.4%}.y-process.y-process-5 .y-unit{width:18.4%;*width:18.3%}.y-tab{position:relative;height:47px;border-bottom:solid 1px #ddd;overflow:visible}.y-tab ul{position:absolute;height:48px;width:100%;max-width:100%;overflow:hidden}.y-tab li{float:left;display:inline;overflow:visible}.y-tab li a,.y-tab li span{position:relative;display:inline-block;font-size:14px;line-height:2.6;text-align:center;cursor:pointer;z-index:0;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s;*position:static}.y-tab li .y-item,.y-tab li .y-item:link,.y-tab li .y-item:visited{border:solid 1px #ddd;background:#fbfaf8;height:38px;min-width:130px;margin-left:-1px;padding:5px 23px 3px;color:#666;*width:auto}.y-tab .y-first .y-item,.y-tab .y-first .y-item:link,.y-tab .y-first .y-item:visited{margin-left:0!important}.y-tab li .y-item:hover{background:#fff;color:#00a2ca;text-decoration:none}.y-tab .y-current .y-item,.y-tab .y-current .y-item:link,.y-tab .y-current .y-item:visited,.y-tab .y-current .y-item:hover{background:#fff;border-top:solid 2px #00a2ca;border-bottom-width:0;padding:4px 23px 4px;color:#000;text-decoration:none;z-index:1}.y-tab .y-more{float:right;display:inline;white-space:nowrap;text-align:right}.y-tab .y-more a{display:inline-block;height:38px;margin-top:6px;margin-left:32px;font-size:14px;line-height:2.6}.y-tab.y-tab-l{height:74px;border-width:0;overflow:visible}.y-tab.y-tab-l ul{position:static;height:auto;overflow:visible}.y-tab.y-tab-2 li{width:50%;*width:49.9%}.y-tab.y-tab-3 li{width:33%;*width:32.9%}.y-tab.y-tab-3 .y-first{width:34%}.y-tab.y-tab-4 li{width:25%;*width:24.9%}.y-tab.y-tab-5 li{width:20%;*width:19.9%}.y-tab.y-tab-6 li{width:16.5%;*width:16.4%}.y-tab.y-tab-6 .y-first{width:17.5%}.y-tab.y-tab-7 li{width:14.3%;*width:14.2%}.y-tab.y-tab-7 .y-first{width:14.2%}.y-tab.y-tab-8 li{width:12.5%;*width:12.4%}.y-tab.y-tab-l li a,.y-tab.y-tab-l li span{position:relative;display:block;font-size:14px;line-height:1.5;text-align:center;cursor:pointer;z-index:0;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s;*position:static}.y-tab.y-tab-l li .y-item,.y-tab.y-tab-l li .y-item:link,.y-tab.y-tab-l li .y-item:visited{border:solid 1px #ddd;background:#fbfaf8;height:50px;margin-left:-1px;padding:12px 0 10px;color:#666;*width:auto}.y-tab.y-tab-l .y-item strong{display:block;text-align:center;font-size:18px;font-weight:400}.y-tab.y-tab-l .y-item i{font-size:14px}.y-tab.y-tab-l li .y-item:hover{background:#fff;color:#00a2ca;text-decoration:none}.y-tab.y-tab-l .y-current .y-item,.y-tab.y-tab-l .y-current .y-item:link,.y-tab.y-tab-l .y-current .y-item:visited,.y-tab.y-tab-l .y-current .y-item:hover{background:#fff;border-top:solid 2px #00a2ca;border-bottom-width:0;padding:11px 0;color:#000;text-decoration:none;z-index:1}.y-tab.y-tab-l .y-current .y-item i{color:#666}.y-tab.y-tab-s{height:48px;border-width:0;overflow:visible}.y-tab.y-tab-s ul{position:static;height:auto;overflow:visible}.y-tab.y-tab-s li a,.y-tab.y-tab-s li span{position:relative;display:block;font-size:14px;line-height:1.5;text-align:center;cursor:pointer;z-index:0;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s;*position:static}.y-tab.y-tab-s li .y-item,.y-tab.y-tab-s li .y-item:link,.y-tab.y-tab-s li .y-item:visited{border:solid 1px #ddd;background:#fbfaf8;height:22px;margin-left:-1px;padding:12px 0;color:#666;*width:auto}.y-tab.y-tab-s li .y-item:hover{background:#fff;color:#00a2ca;text-decoration:none}.y-tab.y-tab-s .y-current .y-item,.y-tab.y-tab-s .y-current .y-item:link,.y-tab.y-tab-s .y-current .y-item:visited,.y-tab.y-tab-s .y-current .y-item:hover{background:#fff;border:solid 1px #ddd;border-top:solid 2px #00a2ca;padding:11px 0 12px;color:#000;text-decoration:none;z-index:1}.y-tag{position:relative;height:32px}.y-tag .y-item,.y-tag .y-item:link,.y-tag .y-item:visited{float:left;display:inline;height:28px;padding:2px 0;font-size:16px;font-weight:700;color:#666;line-height:1.9;cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s}.y-tag .y-item:hover{color:#000;text-decoration:none}.y-tag .y-current,.y-tag .y-current:link,.y-tag .y-current:visited,.y-tag .y-current:hover{padding:2px 0 0;border-bottom:solid 2px #000;color:#000}.y-tag.y-tag-left .y-item{margin-right:32px}.y-tag.y-tag-right .y-item{float:right;margin-left:32px}.y-tag.y-tag-s{height:24px}.y-tag.y-tag-s .y-item,.y-tag.y-tag-s .y-item:link,.y-tag.y-tag-s .y-item:visited{float:left;display:inline;height:20px;padding:2px 0;font-size:12px;font-weight:700;color:#666;line-height:1.8;cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s}.y-tag.y-tag-s .y-item:hover{color:#000;text-decoration:none}.y-tag.y-tag-s .y-current,.y-tag.y-tag-s .y-current:link,.y-tag.y-tag-s .y-current:visited,.y-tag.y-tag-s .y-current:hover{padding:2px 0 0;border-bottom:solid 2px #000;color:#000}.y-tag.y-tag-s.y-tag-left .y-item{margin-right:24px}.y-tag.y-tag-s.y-tag-right .y-item{float:right;margin-left:24px}.y-tab-box{position:relative}.y-tab-box .y-hd{position:relative;height:48px;background:#fbfaf8;overflow:visible}.y-tab-box .y-tab{height:46px;border:solid 1px #ddd}.y-tab-box .y-tab ul{top:-1px;left:-1px}.y-tab-box .y-bd{border:solid 1px #ddd;border-top-width:0;background:#fff;padding:20px 23px}.y-table{width:100%;max-width:100%;border-collapse:collapse;border-spacing:0;font-size:12px;line-height:1.5;color:#333}.y-table th,.y-table td{padding:0 12px;vertical-align:middle;text-align:left;cursor:default}.y-table th{background:#eee;height:32px;font-weight:700;color:#000;white-space:nowrap}.y-table td{padding:17px 12px}.y-table tr{background:#fff;border-bottom:solid 1px #f6f6f6;-webkit-transition:background .3s;-moz-transition:background .3s;-ms-transition:background .3s;-o-transition:background .3s}.y-table.y-table-odd tr:nth-child(odd){background:#f9f9f9}.y-table.y-table-odd tr:nth-child(even){background:#fff}.y-table.y-table-odd tr{border-bottom-width:0}.y-table.y-table-odd{border-bottom:solid 1px #e3e3e3}.y-table tr:hover{background:#eafbfe}.y-table.y-table-odd tr:hover{background:#eafbfe}.y-table .y-nowrap{white-space:nowrap}.y-table .y-align-right{text-align:right}.y-table .y-align-center{text-align:center}.y-table.y-table-s td{padding:7px 12px}.y-title-loading .y-loading,.y-loading{background:url("aliyun/www-dpl/0.2.3/knight/images/loading-32-32.gif") no-repeat}.y-title{background:#ccc;padding:4px;width:430px;background:rgba(0,0,0,.2)}.y-title .y-box{padding:5px 20px 17px;background:#fff;line-height:1.5;color:#333}.y-title .y-hd{padding:7px 0 0;line-height:2;font-size:16px;font-weight:700;border-bottom:solid 1px #dedede}.y-title .y-bd{padding-top:12px}.y-title-loading{width:130px}.y-title-loading .y-loading{height:32px;min-height:32px;background-position:0 0;padding-left:40px;line-height:2.7;font-size:12px;color:#333}.y-loading{background-position:center center;min-height:300px}.y-page-title{min-width:1000px;height:56px;border-bottom:solid 1px #e5e5e5;z-index:9}.y-page-title h1{float:left;display:inline;height:20px;margin-top:18px;border-left:solid 4px #00a2ca;padding-left:8px;font-size:20px;line-height:20px;color:#00a2ca}.y-page-title .y-page-title-nav{float:right;display:inline;height:20px;margin-top:18px;font-size:12px;line-height:20px;color:#666;text-align:right}.y-page-title .y-lnk-gray:hover{text-decoration:none}.y-page-title .y-page-title-other-products i{display:inline-block;width:0;height:0;border:solid 4px transparent;border-top-color:#000;margin-left:8px;vertical-align:middle}.y-page-title .y-page-title-box{position:relative}.y-page-title .y-page-title-box:after{display:block;height:0;visibility:hidden;clear:both;font-size:0;content:" "}.y-page-title .y-page-title-other-list{position:absolute;right:0;top:40px;border:solid 1px #eee;background:#fff}.y-page-title .y-page-title-other-list li{vertical-align:middle}.y-page-title .y-page-title-other-item{display:block;padding:0 10px;height:28px;line-height:28px;font-size:12px;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s}.y-page-title .y-page-title-other-item:link,.y-page-title .y-page-title-other-item:visited{background:#fff;color:#666}.y-page-title .y-page-title-other-item:hover{text-decoration:none;background:#f4f4f4}
\ No newline at end of file
diff --git a/release/asset/css/index.min.css b/release/asset/css/index.min.css
new file mode 100644
index 0000000..ebc4cdd
--- /dev/null
+++ b/release/asset/css/index.min.css
@@ -0,0 +1,4041 @@
+
+/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss*/
+ html {
+ font-family:sans-serif;
+ line-height:1.15;
+ -ms-text-size-adjust:100%;
+ -webkit-text-size-adjust:100%
+}
+body {
+ margin:0
+}
+article,aside,footer,header,nav,section {
+ display:block
+}
+h1 {
+ font-size:2em;
+ margin:0.67em 0
+}
+figcaption,figure {
+ display:block
+}
+figure {
+ margin:1em 40px
+}
+hr {
+ box-sizing:content-box;
+ height:0;
+ overflow:visible
+}
+main {
+ display:block
+}
+pre {
+ font-family:monospace, monospace;
+ font-size:1em
+}
+a {
+ background-color:transparent;
+ -webkit-text-decoration-skip:objects
+}
+a:active,a:hover {
+ outline-width:0
+}
+abbr[title] {
+ border-bottom:none;
+ text-decoration:underline;
+ text-decoration:underline dotted
+}
+b,strong {
+ font-weight:inherit
+}
+b,strong {
+ font-weight:bolder
+}
+code,kbd,samp {
+ font-family:monospace, monospace;
+ font-size:1em
+}
+dfn {
+ font-style:italic
+}
+mark {
+ background-color:#ff0;
+ color:#000
+}
+small {
+ font-size:80%
+}
+sub,sup {
+ font-size:75%;
+ line-height:0;
+ position:relative;
+ vertical-align:baseline
+}
+sub {
+ bottom:-0.25em
+}
+sup {
+ top:-0.5em
+}
+audio,video {
+ display:inline-block
+}
+audio:not([controls]) {
+ display:none;
+ height:0
+}
+img {
+ border-style:none
+}
+svg:not(:root) {
+ overflow:hidden
+}
+button,input,optgroup,select,textarea {
+ font-family:sans-serif;
+ font-size:100%;
+ line-height:1.15;
+ margin:0
+}
+button {
+ overflow:visible
+}
+button,select {
+ text-transform:none
+}
+button,html [type="button"],[type="reset"],[type="submit"] {
+ -webkit-appearance:button
+}
+button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner {
+ border-style:none;
+ padding:0
+}
+button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring {
+ outline:1px dotted ButtonText
+}
+input {
+ overflow:visible
+}
+[type="checkbox"],[type="radio"] {
+ box-sizing:border-box;
+ padding:0
+}
+[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button {
+ height:auto
+}
+[type="search"] {
+ -webkit-appearance:textfield;
+ outline-offset:-2px
+}
+[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration {
+ -webkit-appearance:none
+}
+::-webkit-file-upload-button {
+ -webkit-appearance:button;
+ font:inherit
+}
+fieldset {
+ border:1px solid #c0c0c0;
+ margin:0 2px;
+ padding:0.35em 0.625em 0.75em
+}
+legend {
+ box-sizing:border-box;
+ display:table;
+ max-width:100%;
+ padding:0;
+ color:inherit;
+ white-space:normal
+}
+progress {
+ display:inline-block;
+ vertical-align:baseline
+}
+textarea {
+ overflow:auto
+}
+details {
+ display:block
+}
+summary {
+ display:list-item
+}
+menu {
+ display:block
+}
+canvas {
+ display:inline-block
+}
+template {
+ display:none
+}
+[hidden] {
+ display:none
+}
+.slide-in-down.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:translateY(-100%);
+ transition-property:transform, opacity;
+ backface-visibility:hidden
+}
+.slide-in-down.mui-enter.mui-enter-active {
+ transform:translateY(0)
+}
+.slide-in-left.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:translateX(-100%);
+ transition-property:transform, opacity;
+ backface-visibility:hidden
+}
+.slide-in-left.mui-enter.mui-enter-active {
+ transform:translateX(0)
+}
+.slide-in-up.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:translateY(100%);
+ transition-property:transform, opacity;
+ backface-visibility:hidden
+}
+.slide-in-up.mui-enter.mui-enter-active {
+ transform:translateY(0)
+}
+.slide-in-right.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:translateX(100%);
+ transition-property:transform, opacity;
+ backface-visibility:hidden
+}
+.slide-in-right.mui-enter.mui-enter-active {
+ transform:translateX(0)
+}
+.slide-out-down.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:translateY(0);
+ transition-property:transform, opacity;
+ backface-visibility:hidden
+}
+.slide-out-down.mui-leave.mui-leave-active {
+ transform:translateY(100%)
+}
+.slide-out-right.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:translateX(0);
+ transition-property:transform, opacity;
+ backface-visibility:hidden
+}
+.slide-out-right.mui-leave.mui-leave-active {
+ transform:translateX(100%)
+}
+.slide-out-up.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:translateY(0);
+ transition-property:transform, opacity;
+ backface-visibility:hidden
+}
+.slide-out-up.mui-leave.mui-leave-active {
+ transform:translateY(-100%)
+}
+.slide-out-left.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:translateX(0);
+ transition-property:transform, opacity;
+ backface-visibility:hidden
+}
+.slide-out-left.mui-leave.mui-leave-active {
+ transform:translateX(-100%)
+}
+.fade-in.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ opacity:0;
+ transition-property:opacity
+}
+.fade-in.mui-enter.mui-enter-active {
+ opacity:1
+}
+.fade-out.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ opacity:1;
+ transition-property:opacity
+}
+.fade-out.mui-leave.mui-leave-active {
+ opacity:0
+}
+.hinge-in-from-top.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotateX(-90deg);
+ transform-origin:top;
+ transition-property:transform, opacity;
+ opacity:0
+}
+.hinge-in-from-top.mui-enter.mui-enter-active {
+ transform:perspective(2000px) rotate(0deg);
+ opacity:1
+}
+.hinge-in-from-right.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotateY(-90deg);
+ transform-origin:right;
+ transition-property:transform, opacity;
+ opacity:0
+}
+.hinge-in-from-right.mui-enter.mui-enter-active {
+ transform:perspective(2000px) rotate(0deg);
+ opacity:1
+}
+.hinge-in-from-bottom.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotateX(90deg);
+ transform-origin:bottom;
+ transition-property:transform, opacity;
+ opacity:0
+}
+.hinge-in-from-bottom.mui-enter.mui-enter-active {
+ transform:perspective(2000px) rotate(0deg);
+ opacity:1
+}
+.hinge-in-from-left.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotateY(90deg);
+ transform-origin:left;
+ transition-property:transform, opacity;
+ opacity:0
+}
+.hinge-in-from-left.mui-enter.mui-enter-active {
+ transform:perspective(2000px) rotate(0deg);
+ opacity:1
+}
+.hinge-in-from-middle-x.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotateX(-90deg);
+ transform-origin:center;
+ transition-property:transform, opacity;
+ opacity:0
+}
+.hinge-in-from-middle-x.mui-enter.mui-enter-active {
+ transform:perspective(2000px) rotate(0deg);
+ opacity:1
+}
+.hinge-in-from-middle-y.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotateY(-90deg);
+ transform-origin:center;
+ transition-property:transform, opacity;
+ opacity:0
+}
+.hinge-in-from-middle-y.mui-enter.mui-enter-active {
+ transform:perspective(2000px) rotate(0deg);
+ opacity:1
+}
+.hinge-out-from-top.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotate(0deg);
+ transform-origin:top;
+ transition-property:transform, opacity;
+ opacity:1
+}
+.hinge-out-from-top.mui-leave.mui-leave-active {
+ transform:perspective(2000px) rotateX(-90deg);
+ opacity:0
+}
+.hinge-out-from-right.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotate(0deg);
+ transform-origin:right;
+ transition-property:transform, opacity;
+ opacity:1
+}
+.hinge-out-from-right.mui-leave.mui-leave-active {
+ transform:perspective(2000px) rotateY(-90deg);
+ opacity:0
+}
+.hinge-out-from-bottom.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotate(0deg);
+ transform-origin:bottom;
+ transition-property:transform, opacity;
+ opacity:1
+}
+.hinge-out-from-bottom.mui-leave.mui-leave-active {
+ transform:perspective(2000px) rotateX(90deg);
+ opacity:0
+}
+.hinge-out-from-left.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotate(0deg);
+ transform-origin:left;
+ transition-property:transform, opacity;
+ opacity:1
+}
+.hinge-out-from-left.mui-leave.mui-leave-active {
+ transform:perspective(2000px) rotateY(90deg);
+ opacity:0
+}
+.hinge-out-from-middle-x.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotate(0deg);
+ transform-origin:center;
+ transition-property:transform, opacity;
+ opacity:1
+}
+.hinge-out-from-middle-x.mui-leave.mui-leave-active {
+ transform:perspective(2000px) rotateX(-90deg);
+ opacity:0
+}
+.hinge-out-from-middle-y.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:perspective(2000px) rotate(0deg);
+ transform-origin:center;
+ transition-property:transform, opacity;
+ opacity:1
+}
+.hinge-out-from-middle-y.mui-leave.mui-leave-active {
+ transform:perspective(2000px) rotateY(-90deg);
+ opacity:0
+}
+.scale-in-up.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:scale(.5);
+ transition-property:transform, opacity;
+ opacity:0
+}
+.scale-in-up.mui-enter.mui-enter-active {
+ transform:scale(1);
+ opacity:1
+}
+.scale-in-down.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:scale(1.5);
+ transition-property:transform, opacity;
+ opacity:0
+}
+.scale-in-down.mui-enter.mui-enter-active {
+ transform:scale(1);
+ opacity:1
+}
+.scale-out-up.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:scale(1);
+ transition-property:transform, opacity;
+ opacity:1
+}
+.scale-out-up.mui-leave.mui-leave-active {
+ transform:scale(1.5);
+ opacity:0
+}
+.scale-out-down.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:scale(1);
+ transition-property:transform, opacity;
+ opacity:1
+}
+.scale-out-down.mui-leave.mui-leave-active {
+ transform:scale(.5);
+ opacity:0
+}
+.spin-in.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:rotate(-.75turn);
+ transition-property:transform, opacity;
+ opacity:0
+}
+.spin-in.mui-enter.mui-enter-active {
+ transform:rotate(0);
+ opacity:1
+}
+.spin-out.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:rotate(0);
+ transition-property:transform, opacity;
+ opacity:1
+}
+.spin-out.mui-leave.mui-leave-active {
+ transform:rotate(.75turn);
+ opacity:0
+}
+.spin-in-ccw.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:rotate(.75turn);
+ transition-property:transform, opacity;
+ opacity:0
+}
+.spin-in-ccw.mui-enter.mui-enter-active {
+ transform:rotate(0);
+ opacity:1
+}
+.spin-out-ccw.mui-leave {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:rotate(0);
+ transition-property:transform, opacity;
+ opacity:1
+}
+.spin-out-ccw.mui-leave.mui-leave-active {
+ transform:rotate(-.75turn);
+ opacity:0
+}
+.slow {
+ transition-duration:750ms !important
+}
+.fast {
+ transition-duration:250ms !important
+}
+.linear {
+ transition-timing-function:linear !important
+}
+.ease {
+ transition-timing-function:ease !important
+}
+.ease-in {
+ transition-timing-function:ease-in !important
+}
+.ease-out {
+ transition-timing-function:ease-out !important
+}
+.ease-in-out {
+ transition-timing-function:ease-in-out !important
+}
+.bounce-in {
+ transition-timing-function:cubic-bezier(0.485, 0.155, 0.24, 1.245) !important
+}
+.bounce-out {
+ transition-timing-function:cubic-bezier(0.485, 0.155, 0.515, 0.845) !important
+}
+.bounce-in-out {
+ transition-timing-function:cubic-bezier(0.76, -0.245, 0.24, 1.245) !important
+}
+.short-delay {
+ transition-delay:300ms !important
+}
+.long-delay {
+ transition-delay:700ms !important
+}
+.shake {
+ animation-name:shake-7
+}
+@keyframes shake-7 {
+ 0%,10%,20%,30%,40%,50%,60%,70%,80%,90% {
+ transform:translateX(7%)
+}
+5%,15%,25%,35%,45%,55%,65%,75%,85%,95% {
+ transform:translateX(-7%)
+}
+}.spin-cw {
+ animation-name:spin-cw-1turn
+}
+@keyframes spin-cw-1turn {
+ 0% {
+ transform:rotate(-1turn)
+}
+100% {
+ transform:rotate(0)
+}
+}.spin-ccw {
+ animation-name:spin-cw-1turn
+}
+@keyframes spin-cw-1turn {
+ 0% {
+ transform:rotate(0)
+}
+100% {
+ transform:rotate(1turn)
+}
+}.wiggle {
+ animation-name:wiggle-7deg
+}
+@keyframes wiggle-7deg {
+ 40%,50%,60% {
+ transform:rotate(7deg)
+}
+35%,45%,55%,65% {
+ transform:rotate(-7deg)
+}
+0%,30%,70%,100% {
+ transform:rotate(0)
+}
+}.shake,.spin-cw,.spin-ccw,.wiggle {
+ animation-duration:500ms
+}
+.infinite {
+ animation-iteration-count:infinite
+}
+.slow {
+ animation-duration:750ms !important
+}
+.fast {
+ animation-duration:250ms !important
+}
+.linear {
+ animation-timing-function:linear !important
+}
+.ease {
+ animation-timing-function:ease !important
+}
+.ease-in {
+ animation-timing-function:ease-in !important
+}
+.ease-out {
+ animation-timing-function:ease-out !important
+}
+.ease-in-out {
+ animation-timing-function:ease-in-out !important
+}
+.bounce-in {
+ animation-timing-function:cubic-bezier(0.485, 0.155, 0.24, 1.245) !important
+}
+.bounce-out {
+ animation-timing-function:cubic-bezier(0.485, 0.155, 0.515, 0.845) !important
+}
+.bounce-in-out {
+ animation-timing-function:cubic-bezier(0.76, -0.245, 0.24, 1.245) !important
+}
+.short-delay {
+ animation-delay:300ms !important
+}
+.long-delay {
+ animation-delay:700ms !important
+}
+@font-face {
+ font-family:'icomoon';
+ src:url("../fonts/icomoon.eot?hinku2");
+ src:url("../fonts/icomoon.eot?hinku2#iefix") format("embedded-opentype"),url("../fonts/icomoon.ttf?hinku2") format("truetype"),url("../fonts/icomoon.woff?hinku2") format("woff"),url("../fonts/icomoon.svg?hinku2#icomoon") format("svg");
+ font-weight:normal;
+ font-style:normal
+}
+[class^="xg-icon-"],[class*=" xg-icon-"] {
+ font-family:'icomoon' !important;
+ speak:none;
+ font-style:normal;
+ font-weight:normal;
+ font-variant:normal;
+ text-transform:none;
+ line-height:1;
+ -webkit-font-smoothing:antialiased;
+ -moz-osx-font-smoothing:grayscale
+}
+.xg-icon-arrow-next:before {
+ content:""
+}
+.xg-icon-arrow-pre:before {
+ content:""
+}
+.xg-icon-logo-csharp:before {
+ content:""
+}
+.xg-icon-logo-java:before {
+ content:""
+}
+.xg-icon-logo-php:before {
+ content:""
+}
+.xg-icon-logo-python:before {
+ content:""
+}
+.xg-icon-logo-restapi:before {
+ content:""
+}
+.xg-icon-logo_android:before {
+ content:""
+}
+.xg-icon-logo_apple:before {
+ content:""
+}
+.xg-icon-logo-csharp {
+ color:#953dac
+}
+.xg-icon-logo-java {
+ color:#e73846
+}
+.xg-icon-logo-php {
+ color:#388be9
+}
+.xg-icon-logo-python {
+ color:#4d689a
+}
+.xg-icon-logo-restapi {
+ color:#ffaa4e
+}
+.xg-icon-logo_android {
+ color:#87c643
+}
+.xg-icon-logo_apple {
+ color:#9e9fa1
+}
+body {
+ font-family:"microsoft yahei",\5b8b\4f53,PingFangSC-Regular,Arial,sans-serif;
+ font-size:14px;
+ min-width:1280px;
+ scrollbar-face-color:#fdfdfd;
+ scrollbar-highlight-color:#999999;
+ scrollbar-shadow-color:#999999;
+ scrollbar-3dlight-color:#fdfdfd;
+ scrollbar-arrow-color:#999999;
+ scrollbar-track-color:#fdfdfd;
+ scrollbar-darkshadow-color:#fdfdfd
+}
+::-webkit-scrollbar {
+ width:8px;
+ height:8px
+}
+::-webkit-scrollbar-thumb {
+ background:rgba(153,153,153,0.8);
+ border-radius:4px
+}
+::-webkit-scrollbar-thumb:hover {
+ background:#999999;
+ border-radius:4px
+}
+::-webkit-scrollbar-track-piece:decrement {
+ background:transparent
+}
+::-webkit-scrollbar-track-piece:increment {
+ background:transparent;
+ border-radius:0 0 4px 4px
+}
+h1,h2,h3,h4,h5,h6 {
+ font-weight:100
+}
+a {
+ text-decoration:none;
+ color:#08b2ff
+}
+* {
+ box-sizing:border-box
+}
+.hidden {
+ display:none
+}
+.logo-wrapper {
+ line-height:38px
+}
+.logo-wrapper .logo {
+ display:inline-block;
+ background-image:url(../images/logo.png);
+ background-size:100% 100%;
+ width:45px;
+ height:38px;
+ margin-right:10px;
+ vertical-align:middle
+}
+.logo-wrapper .text {
+ display:inline-block;
+ vertical-align:middle;
+ font-size:18px
+}
+.row {
+ max-width:120rem;
+ margin-right:auto;
+ margin-left:auto
+}
+.row::before,.row::after {
+ display:table;
+ content:' '
+}
+.row::after {
+ clear:both
+}
+.row.collapse>.column,.row.collapse>.columns {
+ padding-right:0;
+ padding-left:0
+}
+.row .row {
+ margin-right:-.625rem;
+ margin-left:-.625rem
+}
+@media print, screen and (min-width: 40em) {
+ .row .row {
+ margin-right:-.9375rem;
+ margin-left:-.9375rem
+}
+}@media print, screen and (min-width: 64em) {
+ .row .row {
+ margin-right:-.9375rem;
+ margin-left:-.9375rem
+}
+}.row .row.collapse {
+ margin-right:0;
+ margin-left:0
+}
+.row.expanded {
+ max-width:none
+}
+.row.expanded .row {
+ margin-right:auto;
+ margin-left:auto
+}
+.row:not(.expanded) .row {
+ max-width:none
+}
+.row.gutter-small>.column,.row.gutter-small>.columns {
+ padding-right:.625rem;
+ padding-left:.625rem
+}
+.row.gutter-medium>.column,.row.gutter-medium>.columns {
+ padding-right:.9375rem;
+ padding-left:.9375rem
+}
+.column,.columns {
+ width:100%;
+ float:left;
+ padding-right:.625rem;
+ padding-left:.625rem
+}
+@media print, screen and (min-width: 40em) {
+ .column,.columns {
+ padding-right:.9375rem;
+ padding-left:.9375rem
+}
+}.column.row.row,.row.row.columns {
+ float:none
+}
+.row .column.row.row,.row .row.row.columns {
+ margin-right:0;
+ margin-left:0;
+ padding-right:0;
+ padding-left:0
+}
+.small-1 {
+ width:8.33333%
+}
+.small-push-1 {
+ position:relative;
+ left:8.33333%
+}
+.small-pull-1 {
+ position:relative;
+ left:-8.33333%
+}
+.small-offset-0 {
+ margin-left:0%
+}
+.small-2 {
+ width:16.66667%
+}
+.small-push-2 {
+ position:relative;
+ left:16.66667%
+}
+.small-pull-2 {
+ position:relative;
+ left:-16.66667%
+}
+.small-offset-1 {
+ margin-left:8.33333%
+}
+.small-3 {
+ width:25%
+}
+.small-push-3 {
+ position:relative;
+ left:25%
+}
+.small-pull-3 {
+ position:relative;
+ left:-25%
+}
+.small-offset-2 {
+ margin-left:16.66667%
+}
+.small-4 {
+ width:33.33333%
+}
+.small-push-4 {
+ position:relative;
+ left:33.33333%
+}
+.small-pull-4 {
+ position:relative;
+ left:-33.33333%
+}
+.small-offset-3 {
+ margin-left:25%
+}
+.small-5 {
+ width:41.66667%
+}
+.small-push-5 {
+ position:relative;
+ left:41.66667%
+}
+.small-pull-5 {
+ position:relative;
+ left:-41.66667%
+}
+.small-offset-4 {
+ margin-left:33.33333%
+}
+.small-6 {
+ width:50%
+}
+.small-push-6 {
+ position:relative;
+ left:50%
+}
+.small-pull-6 {
+ position:relative;
+ left:-50%
+}
+.small-offset-5 {
+ margin-left:41.66667%
+}
+.small-7 {
+ width:58.33333%
+}
+.small-push-7 {
+ position:relative;
+ left:58.33333%
+}
+.small-pull-7 {
+ position:relative;
+ left:-58.33333%
+}
+.small-offset-6 {
+ margin-left:50%
+}
+.small-8 {
+ width:66.66667%
+}
+.small-push-8 {
+ position:relative;
+ left:66.66667%
+}
+.small-pull-8 {
+ position:relative;
+ left:-66.66667%
+}
+.small-offset-7 {
+ margin-left:58.33333%
+}
+.small-9 {
+ width:75%
+}
+.small-push-9 {
+ position:relative;
+ left:75%
+}
+.small-pull-9 {
+ position:relative;
+ left:-75%
+}
+.small-offset-8 {
+ margin-left:66.66667%
+}
+.small-10 {
+ width:83.33333%
+}
+.small-push-10 {
+ position:relative;
+ left:83.33333%
+}
+.small-pull-10 {
+ position:relative;
+ left:-83.33333%
+}
+.small-offset-9 {
+ margin-left:75%
+}
+.small-11 {
+ width:91.66667%
+}
+.small-push-11 {
+ position:relative;
+ left:91.66667%
+}
+.small-pull-11 {
+ position:relative;
+ left:-91.66667%
+}
+.small-offset-10 {
+ margin-left:83.33333%
+}
+.small-12 {
+ width:100%
+}
+.small-offset-11 {
+ margin-left:91.66667%
+}
+.small-up-1>.column,.small-up-1>.columns {
+ float:left;
+ width:100%
+}
+.small-up-1>.column:nth-of-type(1n),.small-up-1>.columns:nth-of-type(1n) {
+ clear:none
+}
+.small-up-1>.column:nth-of-type(1n+1),.small-up-1>.columns:nth-of-type(1n+1) {
+ clear:both
+}
+.small-up-1>.column:last-child,.small-up-1>.columns:last-child {
+ float:left
+}
+.small-up-2>.column,.small-up-2>.columns {
+ float:left;
+ width:50%
+}
+.small-up-2>.column:nth-of-type(1n),.small-up-2>.columns:nth-of-type(1n) {
+ clear:none
+}
+.small-up-2>.column:nth-of-type(2n+1),.small-up-2>.columns:nth-of-type(2n+1) {
+ clear:both
+}
+.small-up-2>.column:last-child,.small-up-2>.columns:last-child {
+ float:left
+}
+.small-up-3>.column,.small-up-3>.columns {
+ float:left;
+ width:33.33333%
+}
+.small-up-3>.column:nth-of-type(1n),.small-up-3>.columns:nth-of-type(1n) {
+ clear:none
+}
+.small-up-3>.column:nth-of-type(3n+1),.small-up-3>.columns:nth-of-type(3n+1) {
+ clear:both
+}
+.small-up-3>.column:last-child,.small-up-3>.columns:last-child {
+ float:left
+}
+.small-up-4>.column,.small-up-4>.columns {
+ float:left;
+ width:25%
+}
+.small-up-4>.column:nth-of-type(1n),.small-up-4>.columns:nth-of-type(1n) {
+ clear:none
+}
+.small-up-4>.column:nth-of-type(4n+1),.small-up-4>.columns:nth-of-type(4n+1) {
+ clear:both
+}
+.small-up-4>.column:last-child,.small-up-4>.columns:last-child {
+ float:left
+}
+.small-up-5>.column,.small-up-5>.columns {
+ float:left;
+ width:20%
+}
+.small-up-5>.column:nth-of-type(1n),.small-up-5>.columns:nth-of-type(1n) {
+ clear:none
+}
+.small-up-5>.column:nth-of-type(5n+1),.small-up-5>.columns:nth-of-type(5n+1) {
+ clear:both
+}
+.small-up-5>.column:last-child,.small-up-5>.columns:last-child {
+ float:left
+}
+.small-up-6>.column,.small-up-6>.columns {
+ float:left;
+ width:16.66667%
+}
+.small-up-6>.column:nth-of-type(1n),.small-up-6>.columns:nth-of-type(1n) {
+ clear:none
+}
+.small-up-6>.column:nth-of-type(6n+1),.small-up-6>.columns:nth-of-type(6n+1) {
+ clear:both
+}
+.small-up-6>.column:last-child,.small-up-6>.columns:last-child {
+ float:left
+}
+.small-up-7>.column,.small-up-7>.columns {
+ float:left;
+ width:14.28571%
+}
+.small-up-7>.column:nth-of-type(1n),.small-up-7>.columns:nth-of-type(1n) {
+ clear:none
+}
+.small-up-7>.column:nth-of-type(7n+1),.small-up-7>.columns:nth-of-type(7n+1) {
+ clear:both
+}
+.small-up-7>.column:last-child,.small-up-7>.columns:last-child {
+ float:left
+}
+.small-up-8>.column,.small-up-8>.columns {
+ float:left;
+ width:12.5%
+}
+.small-up-8>.column:nth-of-type(1n),.small-up-8>.columns:nth-of-type(1n) {
+ clear:none
+}
+.small-up-8>.column:nth-of-type(8n+1),.small-up-8>.columns:nth-of-type(8n+1) {
+ clear:both
+}
+.small-up-8>.column:last-child,.small-up-8>.columns:last-child {
+ float:left
+}
+.small-collapse>.column,.small-collapse>.columns {
+ padding-right:0;
+ padding-left:0
+}
+.small-collapse .row {
+ margin-right:0;
+ margin-left:0
+}
+.expanded.row .small-collapse.row {
+ margin-right:0;
+ margin-left:0
+}
+.small-uncollapse>.column,.small-uncollapse>.columns {
+ padding-right:.625rem;
+ padding-left:.625rem
+}
+.small-centered {
+ margin-right:auto;
+ margin-left:auto
+}
+.small-centered,.small-centered:last-child:not(:first-child) {
+ float:none;
+ clear:both
+}
+.small-uncentered,.small-push-0,.small-pull-0 {
+ position:static;
+ float:left;
+ margin-right:0;
+ margin-left:0
+}
+@media print, screen and (min-width: 40em) {
+ .medium-1 {
+ width:8.33333%
+}
+.medium-push-1 {
+ position:relative;
+ left:8.33333%
+}
+.medium-pull-1 {
+ position:relative;
+ left:-8.33333%
+}
+.medium-offset-0 {
+ margin-left:0%
+}
+.medium-2 {
+ width:16.66667%
+}
+.medium-push-2 {
+ position:relative;
+ left:16.66667%
+}
+.medium-pull-2 {
+ position:relative;
+ left:-16.66667%
+}
+.medium-offset-1 {
+ margin-left:8.33333%
+}
+.medium-3 {
+ width:25%
+}
+.medium-push-3 {
+ position:relative;
+ left:25%
+}
+.medium-pull-3 {
+ position:relative;
+ left:-25%
+}
+.medium-offset-2 {
+ margin-left:16.66667%
+}
+.medium-4 {
+ width:33.33333%
+}
+.medium-push-4 {
+ position:relative;
+ left:33.33333%
+}
+.medium-pull-4 {
+ position:relative;
+ left:-33.33333%
+}
+.medium-offset-3 {
+ margin-left:25%
+}
+.medium-5 {
+ width:41.66667%
+}
+.medium-push-5 {
+ position:relative;
+ left:41.66667%
+}
+.medium-pull-5 {
+ position:relative;
+ left:-41.66667%
+}
+.medium-offset-4 {
+ margin-left:33.33333%
+}
+.medium-6 {
+ width:50%
+}
+.medium-push-6 {
+ position:relative;
+ left:50%
+}
+.medium-pull-6 {
+ position:relative;
+ left:-50%
+}
+.medium-offset-5 {
+ margin-left:41.66667%
+}
+.medium-7 {
+ width:58.33333%
+}
+.medium-push-7 {
+ position:relative;
+ left:58.33333%
+}
+.medium-pull-7 {
+ position:relative;
+ left:-58.33333%
+}
+.medium-offset-6 {
+ margin-left:50%
+}
+.medium-8 {
+ width:66.66667%
+}
+.medium-push-8 {
+ position:relative;
+ left:66.66667%
+}
+.medium-pull-8 {
+ position:relative;
+ left:-66.66667%
+}
+.medium-offset-7 {
+ margin-left:58.33333%
+}
+.medium-9 {
+ width:75%
+}
+.medium-push-9 {
+ position:relative;
+ left:75%
+}
+.medium-pull-9 {
+ position:relative;
+ left:-75%
+}
+.medium-offset-8 {
+ margin-left:66.66667%
+}
+.medium-10 {
+ width:83.33333%
+}
+.medium-push-10 {
+ position:relative;
+ left:83.33333%
+}
+.medium-pull-10 {
+ position:relative;
+ left:-83.33333%
+}
+.medium-offset-9 {
+ margin-left:75%
+}
+.medium-11 {
+ width:91.66667%
+}
+.medium-push-11 {
+ position:relative;
+ left:91.66667%
+}
+.medium-pull-11 {
+ position:relative;
+ left:-91.66667%
+}
+.medium-offset-10 {
+ margin-left:83.33333%
+}
+.medium-12 {
+ width:100%
+}
+.medium-offset-11 {
+ margin-left:91.66667%
+}
+.medium-up-1>.column,.medium-up-1>.columns {
+ float:left;
+ width:100%
+}
+.medium-up-1>.column:nth-of-type(1n),.medium-up-1>.columns:nth-of-type(1n) {
+ clear:none
+}
+.medium-up-1>.column:nth-of-type(1n+1),.medium-up-1>.columns:nth-of-type(1n+1) {
+ clear:both
+}
+.medium-up-1>.column:last-child,.medium-up-1>.columns:last-child {
+ float:left
+}
+.medium-up-2>.column,.medium-up-2>.columns {
+ float:left;
+ width:50%
+}
+.medium-up-2>.column:nth-of-type(1n),.medium-up-2>.columns:nth-of-type(1n) {
+ clear:none
+}
+.medium-up-2>.column:nth-of-type(2n+1),.medium-up-2>.columns:nth-of-type(2n+1) {
+ clear:both
+}
+.medium-up-2>.column:last-child,.medium-up-2>.columns:last-child {
+ float:left
+}
+.medium-up-3>.column,.medium-up-3>.columns {
+ float:left;
+ width:33.33333%
+}
+.medium-up-3>.column:nth-of-type(1n),.medium-up-3>.columns:nth-of-type(1n) {
+ clear:none
+}
+.medium-up-3>.column:nth-of-type(3n+1),.medium-up-3>.columns:nth-of-type(3n+1) {
+ clear:both
+}
+.medium-up-3>.column:last-child,.medium-up-3>.columns:last-child {
+ float:left
+}
+.medium-up-4>.column,.medium-up-4>.columns {
+ float:left;
+ width:25%
+}
+.medium-up-4>.column:nth-of-type(1n),.medium-up-4>.columns:nth-of-type(1n) {
+ clear:none
+}
+.medium-up-4>.column:nth-of-type(4n+1),.medium-up-4>.columns:nth-of-type(4n+1) {
+ clear:both
+}
+.medium-up-4>.column:last-child,.medium-up-4>.columns:last-child {
+ float:left
+}
+.medium-up-5>.column,.medium-up-5>.columns {
+ float:left;
+ width:20%
+}
+.medium-up-5>.column:nth-of-type(1n),.medium-up-5>.columns:nth-of-type(1n) {
+ clear:none
+}
+.medium-up-5>.column:nth-of-type(5n+1),.medium-up-5>.columns:nth-of-type(5n+1) {
+ clear:both
+}
+.medium-up-5>.column:last-child,.medium-up-5>.columns:last-child {
+ float:left
+}
+.medium-up-6>.column,.medium-up-6>.columns {
+ float:left;
+ width:16.66667%
+}
+.medium-up-6>.column:nth-of-type(1n),.medium-up-6>.columns:nth-of-type(1n) {
+ clear:none
+}
+.medium-up-6>.column:nth-of-type(6n+1),.medium-up-6>.columns:nth-of-type(6n+1) {
+ clear:both
+}
+.medium-up-6>.column:last-child,.medium-up-6>.columns:last-child {
+ float:left
+}
+.medium-up-7>.column,.medium-up-7>.columns {
+ float:left;
+ width:14.28571%
+}
+.medium-up-7>.column:nth-of-type(1n),.medium-up-7>.columns:nth-of-type(1n) {
+ clear:none
+}
+.medium-up-7>.column:nth-of-type(7n+1),.medium-up-7>.columns:nth-of-type(7n+1) {
+ clear:both
+}
+.medium-up-7>.column:last-child,.medium-up-7>.columns:last-child {
+ float:left
+}
+.medium-up-8>.column,.medium-up-8>.columns {
+ float:left;
+ width:12.5%
+}
+.medium-up-8>.column:nth-of-type(1n),.medium-up-8>.columns:nth-of-type(1n) {
+ clear:none
+}
+.medium-up-8>.column:nth-of-type(8n+1),.medium-up-8>.columns:nth-of-type(8n+1) {
+ clear:both
+}
+.medium-up-8>.column:last-child,.medium-up-8>.columns:last-child {
+ float:left
+}
+.medium-collapse>.column,.medium-collapse>.columns {
+ padding-right:0;
+ padding-left:0
+}
+.medium-collapse .row {
+ margin-right:0;
+ margin-left:0
+}
+.expanded.row .medium-collapse.row {
+ margin-right:0;
+ margin-left:0
+}
+.medium-uncollapse>.column,.medium-uncollapse>.columns {
+ padding-right:.9375rem;
+ padding-left:.9375rem
+}
+.medium-centered {
+ margin-right:auto;
+ margin-left:auto
+}
+.medium-centered,.medium-centered:last-child:not(:first-child) {
+ float:none;
+ clear:both
+}
+.medium-uncentered,.medium-push-0,.medium-pull-0 {
+ position:static;
+ float:left;
+ margin-right:0;
+ margin-left:0
+}
+}@media print, screen and (min-width: 64em) {
+ .large-1 {
+ width:8.33333%
+}
+.large-push-1 {
+ position:relative;
+ left:8.33333%
+}
+.large-pull-1 {
+ position:relative;
+ left:-8.33333%
+}
+.large-offset-0 {
+ margin-left:0%
+}
+.large-2 {
+ width:16.66667%
+}
+.large-push-2 {
+ position:relative;
+ left:16.66667%
+}
+.large-pull-2 {
+ position:relative;
+ left:-16.66667%
+}
+.large-offset-1 {
+ margin-left:8.33333%
+}
+.large-3 {
+ width:25%
+}
+.large-push-3 {
+ position:relative;
+ left:25%
+}
+.large-pull-3 {
+ position:relative;
+ left:-25%
+}
+.large-offset-2 {
+ margin-left:16.66667%
+}
+.large-4 {
+ width:33.33333%
+}
+.large-push-4 {
+ position:relative;
+ left:33.33333%
+}
+.large-pull-4 {
+ position:relative;
+ left:-33.33333%
+}
+.large-offset-3 {
+ margin-left:25%
+}
+.large-5 {
+ width:41.66667%
+}
+.large-push-5 {
+ position:relative;
+ left:41.66667%
+}
+.large-pull-5 {
+ position:relative;
+ left:-41.66667%
+}
+.large-offset-4 {
+ margin-left:33.33333%
+}
+.large-6 {
+ width:50%
+}
+.large-push-6 {
+ position:relative;
+ left:50%
+}
+.large-pull-6 {
+ position:relative;
+ left:-50%
+}
+.large-offset-5 {
+ margin-left:41.66667%
+}
+.large-7 {
+ width:58.33333%
+}
+.large-push-7 {
+ position:relative;
+ left:58.33333%
+}
+.large-pull-7 {
+ position:relative;
+ left:-58.33333%
+}
+.large-offset-6 {
+ margin-left:50%
+}
+.large-8 {
+ width:66.66667%
+}
+.large-push-8 {
+ position:relative;
+ left:66.66667%
+}
+.large-pull-8 {
+ position:relative;
+ left:-66.66667%
+}
+.large-offset-7 {
+ margin-left:58.33333%
+}
+.large-9 {
+ width:75%
+}
+.large-push-9 {
+ position:relative;
+ left:75%
+}
+.large-pull-9 {
+ position:relative;
+ left:-75%
+}
+.large-offset-8 {
+ margin-left:66.66667%
+}
+.large-10 {
+ width:83.33333%
+}
+.large-push-10 {
+ position:relative;
+ left:83.33333%
+}
+.large-pull-10 {
+ position:relative;
+ left:-83.33333%
+}
+.large-offset-9 {
+ margin-left:75%
+}
+.large-11 {
+ width:91.66667%
+}
+.large-push-11 {
+ position:relative;
+ left:91.66667%
+}
+.large-pull-11 {
+ position:relative;
+ left:-91.66667%
+}
+.large-offset-10 {
+ margin-left:83.33333%
+}
+.large-12 {
+ width:100%
+}
+.large-offset-11 {
+ margin-left:91.66667%
+}
+.large-up-1>.column,.large-up-1>.columns {
+ float:left;
+ width:100%
+}
+.large-up-1>.column:nth-of-type(1n),.large-up-1>.columns:nth-of-type(1n) {
+ clear:none
+}
+.large-up-1>.column:nth-of-type(1n+1),.large-up-1>.columns:nth-of-type(1n+1) {
+ clear:both
+}
+.large-up-1>.column:last-child,.large-up-1>.columns:last-child {
+ float:left
+}
+.large-up-2>.column,.large-up-2>.columns {
+ float:left;
+ width:50%
+}
+.large-up-2>.column:nth-of-type(1n),.large-up-2>.columns:nth-of-type(1n) {
+ clear:none
+}
+.large-up-2>.column:nth-of-type(2n+1),.large-up-2>.columns:nth-of-type(2n+1) {
+ clear:both
+}
+.large-up-2>.column:last-child,.large-up-2>.columns:last-child {
+ float:left
+}
+.large-up-3>.column,.large-up-3>.columns {
+ float:left;
+ width:33.33333%
+}
+.large-up-3>.column:nth-of-type(1n),.large-up-3>.columns:nth-of-type(1n) {
+ clear:none
+}
+.large-up-3>.column:nth-of-type(3n+1),.large-up-3>.columns:nth-of-type(3n+1) {
+ clear:both
+}
+.large-up-3>.column:last-child,.large-up-3>.columns:last-child {
+ float:left
+}
+.large-up-4>.column,.large-up-4>.columns {
+ float:left;
+ width:25%
+}
+.large-up-4>.column:nth-of-type(1n),.large-up-4>.columns:nth-of-type(1n) {
+ clear:none
+}
+.large-up-4>.column:nth-of-type(4n+1),.large-up-4>.columns:nth-of-type(4n+1) {
+ clear:both
+}
+.large-up-4>.column:last-child,.large-up-4>.columns:last-child {
+ float:left
+}
+.large-up-5>.column,.large-up-5>.columns {
+ float:left;
+ width:20%
+}
+.large-up-5>.column:nth-of-type(1n),.large-up-5>.columns:nth-of-type(1n) {
+ clear:none
+}
+.large-up-5>.column:nth-of-type(5n+1),.large-up-5>.columns:nth-of-type(5n+1) {
+ clear:both
+}
+.large-up-5>.column:last-child,.large-up-5>.columns:last-child {
+ float:left
+}
+.large-up-6>.column,.large-up-6>.columns {
+ float:left;
+ width:16.66667%
+}
+.large-up-6>.column:nth-of-type(1n),.large-up-6>.columns:nth-of-type(1n) {
+ clear:none
+}
+.large-up-6>.column:nth-of-type(6n+1),.large-up-6>.columns:nth-of-type(6n+1) {
+ clear:both
+}
+.large-up-6>.column:last-child,.large-up-6>.columns:last-child {
+ float:left
+}
+.large-up-7>.column,.large-up-7>.columns {
+ float:left;
+ width:14.28571%
+}
+.large-up-7>.column:nth-of-type(1n),.large-up-7>.columns:nth-of-type(1n) {
+ clear:none
+}
+.large-up-7>.column:nth-of-type(7n+1),.large-up-7>.columns:nth-of-type(7n+1) {
+ clear:both
+}
+.large-up-7>.column:last-child,.large-up-7>.columns:last-child {
+ float:left
+}
+.large-up-8>.column,.large-up-8>.columns {
+ float:left;
+ width:12.5%
+}
+.large-up-8>.column:nth-of-type(1n),.large-up-8>.columns:nth-of-type(1n) {
+ clear:none
+}
+.large-up-8>.column:nth-of-type(8n+1),.large-up-8>.columns:nth-of-type(8n+1) {
+ clear:both
+}
+.large-up-8>.column:last-child,.large-up-8>.columns:last-child {
+ float:left
+}
+.large-collapse>.column,.large-collapse>.columns {
+ padding-right:0;
+ padding-left:0
+}
+.large-collapse .row {
+ margin-right:0;
+ margin-left:0
+}
+.expanded.row .large-collapse.row {
+ margin-right:0;
+ margin-left:0
+}
+.large-uncollapse>.column,.large-uncollapse>.columns {
+ padding-right:.9375rem;
+ padding-left:.9375rem
+}
+.large-centered {
+ margin-right:auto;
+ margin-left:auto
+}
+.large-centered,.large-centered:last-child:not(:first-child) {
+ float:none;
+ clear:both
+}
+.large-uncentered,.large-push-0,.large-pull-0 {
+ position:static;
+ float:left;
+ margin-right:0;
+ margin-left:0
+}
+}.column-block {
+ margin-bottom:1.25rem
+}
+.column-block>:last-child {
+ margin-bottom:0
+}
+@media print, screen and (min-width: 40em) {
+ .column-block {
+ margin-bottom:1.875rem
+}
+.column-block>:last-child {
+ margin-bottom:0
+}
+}.float-left {
+ float:left !important
+}
+.float-right {
+ float:right !important
+}
+.float-center {
+ display:block;
+ margin-right:auto;
+ margin-left:auto
+}
+.clearfix::before,.clearfix::after {
+ display:table;
+ content:' '
+}
+.clearfix::after {
+ clear:both
+}
+.main-content {
+ background-color:#f4f6fb;
+ max-width:1920px;
+ margin:0 auto
+}
+.max-width-content {
+ max-width:1200px;
+ margin:0 auto
+}
+.fullscreen {
+ position:fixed;
+ top:0;
+ left:0;
+ bottom:0;
+ right:0;
+ overflow:auto
+}
+.text-hide {
+ font:0/0 a !important;
+ color:transparent !important;
+ text-shadow:none !important;
+ background-color:transparent !important;
+ border:0 !important
+}
+.text-truncate {
+ max-width:100% !important;
+ overflow:hidden !important;
+ text-overflow:ellipsis;
+ white-space:nowrap !important
+}
+.text-nowrap {
+ white-space:nowrap !important
+}
+.text-wrap {
+ word-wrap:break-word !important
+}
+.text-lowercase {
+ text-transform:lowercase !important
+}
+.text-uppercase {
+ text-transform:uppercase !important
+}
+.text-capitalize {
+ text-transform:capitalize !important
+}
+.text-overline {
+ text-decoration:overline !important
+}
+.text-underline {
+ text-decoration:underline !important
+}
+.text-line-through {
+ text-decoration:line-through !important
+}
+.font-wide {
+ letter-spacing:.25rem
+}
+.font-normal {
+ font-weight:normal
+}
+.font-bold {
+ font-weight:bold
+}
+.font-italic {
+ font-style:italic !important
+}
+ul.list-disc {
+ list-style-type:disc !important
+}
+ul.list-circle {
+ list-style-type:circle !important
+}
+ul.list-square {
+ list-style-type:square !important
+}
+ol.list-decimal {
+ list-style-type:decimal !important
+}
+ol.list-lower-alpha {
+ list-style-type:lower-alpha !important
+}
+ol.list-lower-latin {
+ list-style-type:lower-latin !important
+}
+ol.list-lower-roman {
+ list-style-type:lower-roman !important
+}
+ol.list-upper-alpha {
+ list-style-type:upper-alpha !important
+}
+ol.list-upper-latin {
+ list-style-type:upper-latin !important
+}
+ol.list-upper-roman {
+ list-style-type:upper-roman !important
+}
+.rounded {
+ border-radius:5000px !important
+}
+.radius {
+ border-radius:.1875rem
+}
+.bordered {
+ border:.0625rem solid #cacaca
+}
+.shadow {
+ box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)
+}
+.arrow-down {
+ display:block;
+ width:0;
+ height:0;
+ border:inset .4375rem;
+ content:'';
+ border-bottom-width:0;
+ border-top-style:solid;
+ border-color:#0a0a0a transparent transparent
+}
+.arrow-up {
+ display:block;
+ width:0;
+ height:0;
+ border:inset .4375rem;
+ content:'';
+ border-top-width:0;
+ border-bottom-style:solid;
+ border-color:transparent transparent #0a0a0a
+}
+.arrow-right {
+ display:block;
+ width:0;
+ height:0;
+ border:inset .4375rem;
+ content:'';
+ border-right-width:0;
+ border-left-style:solid;
+ border-color:transparent transparent transparent #0a0a0a
+}
+.arrow-left {
+ display:block;
+ width:0;
+ height:0;
+ border:inset .4375rem;
+ content:'';
+ border-left-width:0;
+ border-right-style:solid;
+ border-color:transparent #0a0a0a transparent transparent
+}
+.separator-center {
+ text-align:center !important
+}
+.separator-center::before,.separator-center::after {
+ display:table;
+ content:' '
+}
+.separator-center::after {
+ clear:both
+}
+.separator-center::after {
+ position:relative !important;
+ width:3rem;
+ border-bottom:.125rem solid #08b2ff;
+ margin:1rem auto 0
+}
+.separator-left {
+ text-align:left !important
+}
+.separator-left::before,.separator-left::after {
+ display:table;
+ content:' '
+}
+.separator-left::after {
+ clear:both
+}
+.separator-left::after {
+ position:relative !important;
+ width:3rem;
+ border-bottom:.125rem solid #08b2ff;
+ margin:1rem auto 0;
+ margin-left:0 !important
+}
+.separator-right {
+ text-align:right !important
+}
+.separator-right::before,.separator-right::after {
+ display:table;
+ content:' '
+}
+.separator-right::after {
+ clear:both
+}
+.separator-right::after {
+ position:relative !important;
+ width:3rem;
+ border-bottom:.125rem solid #08b2ff;
+ margin:1rem auto 0;
+ margin-right:0 !important
+}
+.overflow-visible {
+ overflow:visible !important
+}
+.overflow-x-visible {
+ overflow-x:visible !important
+}
+.overflow-y-visible {
+ overflow-y:visible !important
+}
+.overflow-hidden {
+ overflow:hidden !important
+}
+.overflow-x-hidden {
+ overflow-x:hidden !important
+}
+.overflow-y-hidden {
+ overflow-y:hidden !important
+}
+.overflow-scroll {
+ overflow:scroll !important
+}
+.overflow-x-scroll {
+ overflow-x:scroll !important
+}
+.overflow-y-scroll {
+ overflow-y:scroll !important
+}
+.display-inline {
+ display:inline !important
+}
+.display-inline-block {
+ display:inline-block !important
+}
+.display-block {
+ display:block !important
+}
+.display-table {
+ display:table !important
+}
+.display-table-cell {
+ display:table-cell !important
+}
+.position-static {
+ position:static !important
+}
+.position-relative {
+ position:relative !important
+}
+.position-absolute {
+ position:absolute !important
+}
+.position-fixed {
+ position:fixed !important
+}
+.position-fixed-top {
+ position:fixed !important;
+ top:0rem !important;
+ right:0rem !important;
+ left:0rem !important;
+ z-index:975
+}
+.position-fixed-bottom {
+ position:fixed !important;
+ right:0rem !important;
+ bottom:0rem !important;
+ left:0rem !important;
+ z-index:975
+}
+.border-box {
+ box-sizing:border-box !important
+}
+.border-none {
+ border:none !important
+}
+.width-25 {
+ width:25% !important
+}
+.width-50 {
+ width:50% !important
+}
+.width-75 {
+ width:75% !important
+}
+.width-100 {
+ width:100% !important
+}
+.height-25 {
+ height:25% !important
+}
+.height-50 {
+ height:50% !important
+}
+.height-75 {
+ height:75% !important
+}
+.height-100 {
+ height:100% !important
+}
+.max-width-100 {
+ max-width:100% !important
+}
+.max-height-100 {
+ max-height:100% !important
+}
+.margin-0 {
+ margin-top:0rem !important;
+ margin-right:0rem !important;
+ margin-bottom:0rem !important;
+ margin-left:0rem !important
+}
+.padding-0 {
+ padding-top:0rem !important;
+ padding-right:0rem !important;
+ padding-bottom:0rem !important;
+ padding-left:0rem !important
+}
+.margin-top-0 {
+ margin-top:0rem !important
+}
+.padding-top-0 {
+ padding-top:0rem !important
+}
+.margin-right-0 {
+ margin-right:0rem !important
+}
+.padding-right-0 {
+ padding-right:0rem !important
+}
+.margin-bottom-0 {
+ margin-bottom:0rem !important
+}
+.padding-bottom-0 {
+ padding-bottom:0rem !important
+}
+.margin-left-0 {
+ margin-left:0rem !important
+}
+.padding-left-0 {
+ padding-left:0rem !important
+}
+.margin-horizontal-0 {
+ margin-right:0rem !important;
+ margin-left:0rem !important
+}
+.padding-horizontal-0 {
+ padding-right:0rem !important;
+ padding-left:0rem !important
+}
+.margin-vertical-0 {
+ margin-top:0rem !important;
+ margin-bottom:0rem !important
+}
+.padding-vertical-0 {
+ padding-top:0rem !important;
+ padding-bottom:0rem !important
+}
+.margin-1 {
+ margin-top:1rem !important;
+ margin-right:1rem !important;
+ margin-bottom:1rem !important;
+ margin-left:1rem !important
+}
+.padding-1 {
+ padding-top:1rem !important;
+ padding-right:1rem !important;
+ padding-bottom:1rem !important;
+ padding-left:1rem !important
+}
+.margin-top-1 {
+ margin-top:1rem !important
+}
+.padding-top-1 {
+ padding-top:1rem !important
+}
+.margin-right-1 {
+ margin-right:1rem !important
+}
+.padding-right-1 {
+ padding-right:1rem !important
+}
+.margin-bottom-1 {
+ margin-bottom:1rem !important
+}
+.padding-bottom-1 {
+ padding-bottom:1rem !important
+}
+.margin-left-1 {
+ margin-left:1rem !important
+}
+.padding-left-1 {
+ padding-left:1rem !important
+}
+.margin-horizontal-1 {
+ margin-right:1rem !important;
+ margin-left:1rem !important
+}
+.padding-horizontal-1 {
+ padding-right:1rem !important;
+ padding-left:1rem !important
+}
+.margin-vertical-1 {
+ margin-top:1rem !important;
+ margin-bottom:1rem !important
+}
+.padding-vertical-1 {
+ padding-top:1rem !important;
+ padding-bottom:1rem !important
+}
+.margin-2 {
+ margin-top:2rem !important;
+ margin-right:2rem !important;
+ margin-bottom:2rem !important;
+ margin-left:2rem !important
+}
+.padding-2 {
+ padding-top:2rem !important;
+ padding-right:2rem !important;
+ padding-bottom:2rem !important;
+ padding-left:2rem !important
+}
+.margin-top-2 {
+ margin-top:2rem !important
+}
+.padding-top-2 {
+ padding-top:2rem !important
+}
+.margin-right-2 {
+ margin-right:2rem !important
+}
+.padding-right-2 {
+ padding-right:2rem !important
+}
+.margin-bottom-2 {
+ margin-bottom:2rem !important
+}
+.padding-bottom-2 {
+ padding-bottom:2rem !important
+}
+.margin-left-2 {
+ margin-left:2rem !important
+}
+.padding-left-2 {
+ padding-left:2rem !important
+}
+.margin-horizontal-2 {
+ margin-right:2rem !important;
+ margin-left:2rem !important
+}
+.padding-horizontal-2 {
+ padding-right:2rem !important;
+ padding-left:2rem !important
+}
+.margin-vertical-2 {
+ margin-top:2rem !important;
+ margin-bottom:2rem !important
+}
+.padding-vertical-2 {
+ padding-top:2rem !important;
+ padding-bottom:2rem !important
+}
+.margin-3 {
+ margin-top:3rem !important;
+ margin-right:3rem !important;
+ margin-bottom:3rem !important;
+ margin-left:3rem !important
+}
+.padding-3 {
+ padding-top:3rem !important;
+ padding-right:3rem !important;
+ padding-bottom:3rem !important;
+ padding-left:3rem !important
+}
+.margin-top-3 {
+ margin-top:3rem !important
+}
+.padding-top-3 {
+ padding-top:3rem !important
+}
+.margin-right-3 {
+ margin-right:3rem !important
+}
+.padding-right-3 {
+ padding-right:3rem !important
+}
+.margin-bottom-3 {
+ margin-bottom:3rem !important
+}
+.padding-bottom-3 {
+ padding-bottom:3rem !important
+}
+.margin-left-3 {
+ margin-left:3rem !important
+}
+.padding-left-3 {
+ padding-left:3rem !important
+}
+.margin-horizontal-3 {
+ margin-right:3rem !important;
+ margin-left:3rem !important
+}
+.padding-horizontal-3 {
+ padding-right:3rem !important;
+ padding-left:3rem !important
+}
+.margin-vertical-3 {
+ margin-top:3rem !important;
+ margin-bottom:3rem !important
+}
+.padding-vertical-3 {
+ padding-top:3rem !important;
+ padding-bottom:3rem !important
+}
+.menu {
+ padding:0;
+ margin:0;
+ list-style:none;
+ position:relative
+}
+[data-whatinput='mouse'] .menu li {
+ outline:0
+}
+.menu a,.menu .button {
+ line-height:1;
+ text-decoration:none;
+ display:block;
+ padding:0.7rem 1rem
+}
+.menu input,.menu select,.menu a,.menu button {
+ margin-bottom:0
+}
+.menu input {
+ display:inline-block
+}
+.menu li,.menu.horizontal li {
+ display:inline-block
+}
+.menu.vertical li {
+ display:block
+}
+.menu.expanded {
+ display:table;
+ width:100%
+}
+.menu.expanded>li {
+ display:table-cell;
+ vertical-align:middle
+}
+.menu.simple li+li {
+ margin-left:1rem
+}
+.menu.simple a {
+ padding:0
+}
+@media print, screen and (min-width: 40em) {
+ .menu.medium-horizontal li {
+ display:inline-block
+}
+.menu.medium-vertical li {
+ display:block
+}
+.menu.medium-expanded {
+ display:table;
+ width:100%
+}
+.menu.medium-expanded>li {
+ display:table-cell;
+ vertical-align:middle
+}
+.menu.medium-simple {
+ display:table;
+ width:100%
+}
+.menu.medium-simple>li {
+ display:table-cell;
+ vertical-align:middle
+}
+}@media print, screen and (min-width: 64em) {
+ .menu.large-horizontal li {
+ display:inline-block
+}
+.menu.large-vertical li {
+ display:block
+}
+.menu.large-expanded {
+ display:table;
+ width:100%
+}
+.menu.large-expanded>li {
+ display:table-cell;
+ vertical-align:middle
+}
+.menu.large-simple {
+ display:table;
+ width:100%
+}
+.menu.large-simple>li {
+ display:table-cell;
+ vertical-align:middle
+}
+}.menu.nested {
+ margin-right:0;
+ margin-left:1rem
+}
+.menu.icons img,.menu.icons i,.menu.icons svg {
+ vertical-align:middle
+}
+.menu.icons img+span,.menu.icons i+span,.menu.icons svg+span {
+ vertical-align:middle
+}
+.menu.icon-top img,.menu.icon-top i,.menu.icon-top svg,.menu.icon-right img,.menu.icon-right i,.menu.icon-right svg,.menu.icon-bottom img,.menu.icon-bottom i,.menu.icon-bottom svg,.menu.icon-left img,.menu.icon-left i,.menu.icon-left svg {
+ vertical-align:middle
+}
+.menu.icon-top img+span,.menu.icon-top i+span,.menu.icon-top svg+span,.menu.icon-right img+span,.menu.icon-right i+span,.menu.icon-right svg+span,.menu.icon-bottom img+span,.menu.icon-bottom i+span,.menu.icon-bottom svg+span,.menu.icon-left img+span,.menu.icon-left i+span,.menu.icon-left svg+span {
+ vertical-align:middle
+}
+.menu.icon-left li a img,.menu.icon-left li a i,.menu.icon-left li a svg {
+ margin-right:.25rem;
+ display:inline-block
+}
+.menu.icon-right li a img,.menu.icon-right li a i,.menu.icon-right li a svg {
+ margin-left:.25rem;
+ display:inline-block
+}
+.menu.icon-top li a {
+ text-align:center
+}
+.menu.icon-top li a img,.menu.icon-top li a i,.menu.icon-top li a svg {
+ display:block;
+ margin:0 auto .25rem
+}
+.menu.icon-bottom li a {
+ text-align:center
+}
+.menu.icon-bottom li a img,.menu.icon-bottom li a i,.menu.icon-bottom li a svg {
+ display:block;
+ margin:.25rem auto 0
+}
+.menu .is-active>a {
+ background:#08b2ff;
+ color:#fefefe
+}
+.menu .active>a {
+ background:#08b2ff;
+ color:#fefefe
+}
+.menu.align-left {
+ text-align:left
+}
+.menu.align-right {
+ text-align:right
+}
+.menu.align-right .submenu li {
+ text-align:left
+}
+.menu.align-right.vertical .submenu li {
+ text-align:right
+}
+.menu.align-right .nested {
+ margin-right:1rem;
+ margin-left:0
+}
+.menu.align-center {
+ text-align:center
+}
+.menu.align-center .submenu li {
+ text-align:left
+}
+.menu .menu-text {
+ padding:0.7rem 1rem;
+ font-weight:bold;
+ line-height:1;
+ color:inherit
+}
+.menu-centered>.menu {
+ text-align:center
+}
+.menu-centered>.menu .submenu li {
+ text-align:left
+}
+.no-js [data-responsive-menu] ul {
+ display:none
+}
+.dropdown.menu>li.opens-left>.is-dropdown-submenu {
+ top:100%;
+ right:0;
+ left:auto
+}
+.dropdown.menu>li.opens-right>.is-dropdown-submenu {
+ top:100%;
+ right:auto;
+ left:0
+}
+.dropdown.menu>li.is-dropdown-submenu-parent>a {
+ position:relative;
+ padding-right:1.5rem
+}
+.dropdown.menu>li.is-dropdown-submenu-parent>a::after {
+ display:block;
+ width:0;
+ height:0;
+ border:inset 6px;
+ content:'';
+ border-bottom-width:0;
+ border-top-style:solid;
+ border-color:#08b2ff transparent transparent;
+ right:5px;
+ left:auto;
+ margin-top:-3px
+}
+.dropdown.menu a {
+ padding:0.7rem 1rem
+}
+[data-whatinput='mouse'] .dropdown.menu a {
+ outline:0
+}
+.dropdown.menu .is-active>a {
+ background:rgba(0,0,0,0);
+ color:#08b2ff
+}
+.no-js .dropdown.menu ul {
+ display:none
+}
+.dropdown.menu .nested.is-dropdown-submenu {
+ margin-right:0;
+ margin-left:0
+}
+.dropdown.menu.vertical>li .is-dropdown-submenu {
+ top:0
+}
+.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu {
+ right:100%;
+ left:auto;
+ top:0
+}
+.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu {
+ right:auto;
+ left:100%
+}
+.dropdown.menu.vertical>li>a::after {
+ right:14px
+}
+.dropdown.menu.vertical>li.opens-left>a::after {
+ right:auto;
+ left:5px;
+ display:block;
+ width:0;
+ height:0;
+ border:inset 6px;
+ content:'';
+ border-left-width:0;
+ border-right-style:solid;
+ border-color:transparent #08b2ff transparent transparent
+}
+.dropdown.menu.vertical>li.opens-right>a::after {
+ display:block;
+ width:0;
+ height:0;
+ border:inset 6px;
+ content:'';
+ border-right-width:0;
+ border-left-style:solid;
+ border-color:transparent transparent transparent #08b2ff
+}
+@media print, screen and (min-width: 40em) {
+ .dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu {
+ top:100%;
+ right:0;
+ left:auto
+}
+.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu {
+ top:100%;
+ right:auto;
+ left:0
+}
+.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a {
+ position:relative;
+ padding-right:1.5rem
+}
+.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after {
+ display:block;
+ width:0;
+ height:0;
+ border:inset 6px;
+ content:'';
+ border-bottom-width:0;
+ border-top-style:solid;
+ border-color:#08b2ff transparent transparent;
+ right:5px;
+ left:auto;
+ margin-top:-3px
+}
+.dropdown.menu.medium-vertical>li .is-dropdown-submenu {
+ top:0
+}
+.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu {
+ right:100%;
+ left:auto;
+ top:0
+}
+.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu {
+ right:auto;
+ left:100%
+}
+.dropdown.menu.medium-vertical>li>a::after {
+ right:14px
+}
+.dropdown.menu.medium-vertical>li.opens-left>a::after {
+ right:auto;
+ left:5px;
+ display:block;
+ width:0;
+ height:0;
+ border:inset 6px;
+ content:'';
+ border-left-width:0;
+ border-right-style:solid;
+ border-color:transparent #08b2ff transparent transparent
+}
+.dropdown.menu.medium-vertical>li.opens-right>a::after {
+ display:block;
+ width:0;
+ height:0;
+ border:inset 6px;
+ content:'';
+ border-right-width:0;
+ border-left-style:solid;
+ border-color:transparent transparent transparent #08b2ff
+}
+}@media print, screen and (min-width: 64em) {
+ .dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu {
+ top:100%;
+ right:0;
+ left:auto
+}
+.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu {
+ top:100%;
+ right:auto;
+ left:0
+}
+.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a {
+ position:relative;
+ padding-right:1.5rem
+}
+.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after {
+ display:block;
+ width:0;
+ height:0;
+ border:inset 6px;
+ content:'';
+ border-bottom-width:0;
+ border-top-style:solid;
+ border-color:#08b2ff transparent transparent;
+ right:5px;
+ left:auto;
+ margin-top:-3px
+}
+.dropdown.menu.large-vertical>li .is-dropdown-submenu {
+ top:0
+}
+.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu {
+ right:100%;
+ left:auto;
+ top:0
+}
+.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu {
+ right:auto;
+ left:100%
+}
+.dropdown.menu.large-vertical>li>a::after {
+ right:14px
+}
+.dropdown.menu.large-vertical>li.opens-left>a::after {
+ right:auto;
+ left:5px;
+ display:block;
+ width:0;
+ height:0;
+ border:inset 6px;
+ content:'';
+ border-left-width:0;
+ border-right-style:solid;
+ border-color:transparent #08b2ff transparent transparent
+}
+.dropdown.menu.large-vertical>li.opens-right>a::after {
+ display:block;
+ width:0;
+ height:0;
+ border:inset 6px;
+ content:'';
+ border-right-width:0;
+ border-left-style:solid;
+ border-color:transparent transparent transparent #08b2ff
+}
+}.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
+ top:100%;
+ right:0;
+ left:auto
+}
+.is-dropdown-menu.vertical {
+ width:100px
+}
+.is-dropdown-menu.vertical.align-right {
+ float:right
+}
+.is-dropdown-submenu-parent {
+ position:relative
+}
+.is-dropdown-submenu-parent a::after {
+ position:absolute;
+ top:50%;
+ right:5px;
+ left:auto;
+ margin-top:-6px
+}
+.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu {
+ top:100%;
+ left:auto
+}
+.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu {
+ right:100%;
+ left:auto
+}
+.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu {
+ right:auto;
+ left:100%
+}
+.is-dropdown-submenu {
+ position:absolute;
+ top:0;
+ left:100%;
+ z-index:1;
+ display:none;
+ min-width:100%;
+ border:none;
+ background:#fefefe
+}
+.dropdown .is-dropdown-submenu a {
+ padding:0.7rem 1rem
+}
+.is-dropdown-submenu .is-dropdown-submenu-parent>a::after {
+ right:14px
+}
+.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after {
+ right:auto;
+ left:5px;
+ display:block;
+ width:0;
+ height:0;
+ border:inset 6px;
+ content:'';
+ border-left-width:0;
+ border-right-style:solid;
+ border-color:transparent #08b2ff transparent transparent
+}
+.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after {
+ display:block;
+ width:0;
+ height:0;
+ border:inset 6px;
+ content:'';
+ border-right-width:0;
+ border-left-style:solid;
+ border-color:transparent transparent transparent #08b2ff
+}
+.is-dropdown-submenu>li {
+ width:100%
+}
+.is-dropdown-submenu.js-dropdown-active {
+ display:block
+}
+.top-menu-wrapper {
+ width:100%;
+ height:56px;
+ z-index:100;
+ background-color:#fff;
+ padding:0 1%
+}
+.top-menu-wrapper .menu li {
+ vertical-align:top
+}
+.top-menu-wrapper .top-bar {
+ padding:.5rem
+}
+.top-menu-wrapper .top-bar::before,.top-menu-wrapper .top-bar::after {
+ display:table;
+ content:' '
+}
+.top-menu-wrapper .top-bar::after {
+ clear:both
+}
+.top-menu-wrapper .top-bar,.top-menu-wrapper .top-bar ul {
+ background-color:rgba(0,0,0,0)
+}
+.top-menu-wrapper .top-bar input {
+ max-width:200px;
+ margin-right:1rem
+}
+.top-menu-wrapper .top-bar .input-group-field {
+ width:100%;
+ margin-right:0
+}
+.top-menu-wrapper .top-bar input.button {
+ width:auto
+}
+.top-menu-wrapper .top-bar .top-bar-left,.top-menu-wrapper .top-bar .top-bar-right {
+ width:100%
+}
+@media print, screen and (min-width: 40em) {
+ .top-menu-wrapper .top-bar .top-bar-left,.top-menu-wrapper .top-bar .top-bar-right {
+ width:auto
+}
+}@media screen and (max-width: 63.9375em) {
+ .top-menu-wrapper .top-bar.stacked-for-medium .top-bar-left,.top-menu-wrapper .top-bar.stacked-for-medium .top-bar-right {
+ width:100%
+}
+}@media screen and (max-width: 74.9375em) {
+ .top-menu-wrapper .top-bar.stacked-for-large .top-bar-left,.top-menu-wrapper .top-bar.stacked-for-large .top-bar-right {
+ width:100%
+}
+}.top-menu-wrapper .top-bar-title {
+ display:inline-block;
+ float:left;
+ padding:0.5rem 1rem 0.5rem 0
+}
+.top-menu-wrapper .top-bar-title .menu-icon {
+ bottom:2px
+}
+.top-menu-wrapper .top-bar-left {
+ float:left
+}
+.top-menu-wrapper .top-bar-right {
+ float:right
+}
+.top-menu-wrapper .top-bar {
+ background-color:transparent;
+ max-width:1200px;
+ margin:0 auto
+}
+.top-menu-wrapper a {
+ color:#333
+}
+.top-menu-wrapper a.active {
+ color:#08b2ff
+}
+.top-menu-wrapper a:hover {
+ color:#08b2ff
+}
+.top-menu-wrapper .login-button {
+ color:#08b2ff;
+ border:1px solid #08b2ff;
+ margin-left:40px;
+ border-radius:2px
+}
+.top-menu-wrapper .login-button:hover {
+ color:#fff;
+ background-color:#08b2ff
+}
+.top-menu-wrapper .login-user {
+ min-width:120px;
+ max-width:160px;
+ overflow:hidden;
+ text-overflow:ellipsis;
+ white-space:nowrap
+}
+.top-menu-wrapper .dropdown.menu .submenu {
+ background-color:#fff
+}
+.top-menu-wrapper .dropdown.menu .is-active>a {
+ color:#333
+}
+.top-menu-wrapper .dropdown.menu>li.is-dropdown-submenu-parent>a::after {
+ border-color:#333 transparent transparent
+}
+.top-menu-wrapper.index-menu {
+ position:absolute;
+ top:1%;
+ left:0;
+ background-color:transparent
+}
+.top-menu-wrapper.index-menu .logo-wrapper .logo {
+ background-image:url(../images/logo-white-2.png)
+}
+.top-menu-wrapper.index-menu .top-bar {
+ max-width:none
+}
+.top-menu-wrapper.index-menu a {
+ color:#fff
+}
+.top-menu-wrapper.index-menu a:hover {
+ color:#fff
+}
+.top-menu-wrapper.index-menu .login-button {
+ color:#fff;
+ border:1px solid #fff
+}
+.top-menu-wrapper.index-menu .login-button:hover {
+ background-color:#fff;
+ color:#08b2ff
+}
+.top-menu-wrapper.index-menu .dropdown.menu .submenu {
+ background-color:transparent
+}
+.top-menu-wrapper.index-menu .dropdown.menu .is-active>a {
+ color:#fff
+}
+.top-menu-wrapper.index-menu .dropdown.menu>li.is-dropdown-submenu-parent>a::after {
+ border-color:#fff transparent transparent
+}
+.top-menu-wrapper .error-page-menu {
+ border-bottom:1px solid #e5e5e5
+}
+.banner-wrapper {
+ width:100%;
+ line-height:0
+}
+.banner-wrapper .banner-content {
+ position:relative
+}
+.banner--background-1,.banner--background-2,.banner--background-3 {
+ background-size:cover;
+ width:100%;
+ height:100%;
+ position:absolute;
+ top:0;
+ z-index:0
+}
+.mui-enter.banner--background-1,.mui-enter.banner--background-2,.mui-enter.banner--background-3 {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transition-duration:1s;
+ opacity:0;
+ transition-property:opacity
+}
+.mui-enter.mui-enter-active.banner--background-1,.mui-enter.mui-enter-active.banner--background-2,.mui-enter.mui-enter-active.banner--background-3 {
+ opacity:1
+}
+.banner--background-1 {
+ background-image:url(../images/banner-bg-1.jpg)
+}
+.banner--background-2 {
+ background-image:url(../images/banner-bg-2.jpg)
+}
+.banner--background-3 {
+ background-image:url(../images/banner-bg-3.jpg)
+}
+.banner--sides {
+ z-index:2;
+ position:relative
+}
+.banner--phone {
+ width:35%;
+ position:absolute;
+ bottom:0;
+ left:38%
+}
+.banner--phone img {
+ width:100%
+}
+.banner--notification {
+ width:60%;
+ position:absolute;
+ top:26%;
+ left:58%;
+ overflow:hidden;
+ transform:skew(-16deg, 0deg)
+}
+.banner--notification img {
+ position:absolute;
+ top:0;
+ left:0
+}
+.banner--notification img.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transform:translateX(100%);
+ transition-property:transform, opacity;
+ backface-visibility:hidden
+}
+.banner--notification img.mui-enter.mui-enter-active {
+ transform:translateX(0)
+}
+.banner--notification img:first-child {
+ position:relative
+}
+.banner--text-area {
+ width:40%;
+ position:absolute;
+ top:30%;
+ left:10%;
+ z-index:10;
+ line-height:1.2;
+ color:#fff
+}
+.banner--text-area .title {
+ font-size:42px;
+ letter-spacing:6px;
+ line-height:1;
+ margin:0 0 10px 0
+}
+.banner--text-area .subtitle {
+ font-size:26px;
+ letter-spacing:4px;
+ line-height:1;
+ margin:0 0 48px 0
+}
+.banner--text-area .details {
+ padding-left:18px;
+ font-size:16px;
+ letter-spacing:2px;
+ margin-bottom:64px
+}
+.banner--text-area .details li {
+ margin-bottom:10px
+}
+.banner--text-area .details li:last-child {
+ margin-bottom:0
+}
+.banner--text-area .index-button {
+ display:inline-block;
+ padding:16px 60px;
+ background:linear-gradient(90deg, #1cdbda, #08b2ff);
+ border-radius:32px;
+ color:#fff;
+ letter-spacing:2px;
+ font-size:18px
+}
+.banner--text-area .index-button:hover {
+ background:linear-gradient(90deg, #08b2ff, #9466fa)
+}
+.thin-top-banner-wrapper {
+ background-image:url(../images/support-bg.jpg);
+ background-size:cover;
+ height:280px;
+ padding-top:100px;
+ color:#fff
+}
+.thin-top-banner-wrapper .title {
+ margin:0 0 20px 0;
+ letter-spacing:2px;
+ font-size:24px
+}
+.thin-top-banner-wrapper .desc {
+ font-size:12px;
+ line-height:1.5;
+ letter-spacing:1px
+}
+.thin-top-banner-wrapper .button {
+ display:inline-block;
+ padding:10px 40px;
+ background:transparent;
+ border:1px solid #fff;
+ border-radius:20px;
+ color:#fff;
+ letter-spacing:2px;
+ line-height:1;
+ font-size:14px;
+ margin:30px 60px 0 0
+}
+.thin-top-banner-wrapper .button:hover {
+ border:1px solid #08b2ff;
+ background-color:#08b2ff
+}
+.function-wrapper {
+ position:relative;
+ background-color:#fff;
+ padding:120px 0;
+ overflow-x:hidden
+}
+.function-wrapper .function-content {
+ max-width:1200px
+}
+.function-wrapper .subtitle {
+ font-size:24px;
+ letter-spacing:3px;
+ color:#08b1ff;
+ margin:0;
+ padding:80px 0 100px 0
+}
+.function-wrapper .title {
+ font-size:32px;
+ letter-spacing:4px;
+ margin:0
+}
+.function-wrapper .divider {
+ width:50px;
+ border-top:3px solid #08b2ff;
+ margin-bottom:20px
+}
+.function-wrapper .desc {
+ font-size:16px;
+ letter-spacing:1px;
+ line-height:1.8;
+ color:#777777;
+ margin:0
+}
+.function-wrapper .control {
+ font-size:24px
+}
+.function-wrapper .control i {
+ color:#777777;
+ cursor:pointer
+}
+.function-wrapper .control i:hover {
+ color:#08b2ff
+}
+.function-wrapper .left .title-wrapper {
+ position:relative;
+ margin-bottom:30px
+}
+.function-wrapper .left .title {
+ position:absolute;
+ top:0;
+ left:0
+}
+.function-wrapper .left .title.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ transition-duration:1s;
+ opacity:0;
+ transition-property:opacity
+}
+.function-wrapper .left .title.mui-enter.mui-enter-active {
+ opacity:1
+}
+.function-wrapper .left .title.first {
+ position:relative
+}
+.function-wrapper .left .desc-wrapper {
+ position:relative;
+ margin-bottom:120px;
+ height:84px
+}
+.function-wrapper .left .desc {
+ position:absolute;
+ top:0;
+ left:0
+}
+.function-wrapper .left .desc.mui-enter {
+ transition-duration:500ms;
+ transition-timing-function:linear;
+ opacity:0;
+ transition-property:opacity
+}
+.function-wrapper .left .desc.mui-enter.mui-enter-active {
+ opacity:1
+}
+.function-wrapper .left .desc.first {
+ position:relative
+}
+.function-wrapper .right {
+ position:relative
+}
+.function-wrapper .function-iphone {
+ width:360px;
+ padding-top:16px;
+ position:relative;
+ z-index:3
+}
+.function-wrapper .function-screen {
+ position:absolute;
+ width:208px;
+ top:50%;
+ transform:translateY(-50%) translateX(30px);
+ transition:transform 1s;
+ z-index:1
+}
+.function-wrapper .carousel.present-screen-1 .screen-1 {
+ transform:translateY(-50%) translateX(-283px) scale(1.29);
+ z-index:2
+}
+.function-wrapper .carousel.present-screen-1 .screen-3 {
+ transform:translateY(-50%) translateX(290px)
+}
+.function-wrapper .carousel.present-screen-2 .screen-2 {
+ transform:translateY(-50%) translateX(-283px) scale(1.29);
+ z-index:2
+}
+.function-wrapper .carousel.present-screen-2 .screen-1 {
+ transform:translateY(-50%) translateX(290px)
+}
+.function-wrapper .carousel.present-screen-3 .screen-3 {
+ transform:translateY(-50%) translateX(-283px) scale(1.29);
+ z-index:2
+}
+.function-wrapper .carousel.present-screen-3 .screen-2 {
+ transform:translateY(-50%) translateX(290px)
+}
+.feature-wrapper {
+ position:relative;
+ background-color:#f4f6fb;
+ line-height:0
+}
+.feature-box {
+ position:absolute;
+ top:50%;
+ transform:translateY(-50%);
+ left:5%;
+ width:60%;
+ background-color:#fff;
+ line-height:1.15;
+ box-shadow:0 0 30px 0 rgba(0,0,0,0.1);
+ border-radius:4px;
+ overflow:hidden
+}
+.feature-item {
+ position:relative;
+ height:300px;
+ text-align:center
+}
+.feature-item .text-area {
+ display:none;
+ position:absolute;
+ width:100%;
+ height:100%;
+ padding:3rem 1.5rem;
+ color:#fff;
+ background-color:#9482e2;
+ transition:opacity 0.3s;
+ text-align:left
+}
+.feature-item .text-area .title {
+ margin:0 0 30px 0;
+ font-size:14px;
+ letter-spacing:2px
+}
+.feature-item .text-area .desc {
+ font-size:12px;
+ line-height:1.6;
+ letter-spacing:1px
+}
+.feature-item--icon {
+ margin-top:90px;
+ width:80px
+}
+.feature-item--title {
+ margin-top:20px;
+ font-size:16px;
+ letter-spacing:2px
+}
+.feature-backgroud {
+ position:relative
+}
+.feature-backgroud .text-area {
+ position:absolute;
+ top:28%;
+ width:100%;
+ text-align:center;
+ color:#fff
+}
+.feature-backgroud .title {
+ font-size:32px;
+ letter-spacing:5px;
+ margin:0 0 50px 0
+}
+.feature-backgroud .divider {
+ display:inline-block;
+ width:64px;
+ border-top:3px solid #9482e2;
+ margin-bottom:15px
+}
+.feature-backgroud .desc {
+ line-height:2;
+ letter-spacing:2px;
+ margin-bottom:120px;
+ font-size:16px
+}
+.feature-backgroud .feature-button {
+ display:inline-block;
+ padding:14px 50px;
+ background:transparent;
+ border:1px solid #fff;
+ border-radius:28px;
+ color:#fff;
+ letter-spacing:2px;
+ line-height:1.15;
+ font-size:16px
+}
+.feature-backgroud .feature-button:hover {
+ border:1px solid #9482e2;
+ background-color:#9482e2
+}
+.showcase-wrapper {
+ position:relative;
+ line-height:0;
+ margin-bottom:70px;
+ overflow:hidden
+}
+.showcase-wrapper .row>.showcase-item {
+ float:left;
+ width:12.5%
+}
+.showcase-wrapper .row>.showcase-item:nth-of-type(1n) {
+ clear:none
+}
+.showcase-wrapper .row>.showcase-item:nth-of-type(8n+1) {
+ clear:both
+}
+.showcase-wrapper .row>.showcase-item:last-child {
+ float:left
+}
+.showcase-wrapper .showcase-item {
+ position:relative;
+ transition:transform 0.5s
+}
+.showcase-wrapper .showcase-item .mask {
+ width:100%;
+ height:100%;
+ position:absolute;
+ top:0;
+ left:0;
+ background-color:rgba(0,0,0,0.5);
+ transition:opacity 0.5s
+}
+.showcase-wrapper .showcase-item img {
+ width:100%
+}
+.showcase-wrapper .showcase-item:hover {
+ transform:scale(1.04);
+ z-index:3
+}
+.showcase-wrapper .showcase-item:hover .mask {
+ opacity:0
+}
+.showcase-wrapper .text-area {
+ position:absolute;
+ top:20%;
+ left:37.5%;
+ width:25%;
+ height:60%;
+ line-height:1;
+ text-align:center;
+ color:#fff
+}
+.showcase-wrapper .text-area .title {
+ font-size:1.6rem;
+ letter-spacing:5px;
+ margin:20% 0 30px 0
+}
+.showcase-wrapper .text-area .divider {
+ display:block;
+ width:4rem;
+ border-top:3px solid #42d182;
+ margin:0 auto 16% auto
+}
+.showcase-wrapper .text-area .showcase-button {
+ display:inline-block;
+ padding:14px 50px;
+ background:transparent;
+ border:1px solid #fff;
+ border-radius:28px;
+ color:#fff;
+ letter-spacing:2px;
+ line-height:1.15;
+ font-size:16px
+}
+.showcase-wrapper .text-area .showcase-button:hover {
+ border:1px solid #42d182;
+ background-color:#42d182
+}
+.sdk-wrapper {
+ position:relative;
+ color:#fff;
+ background-image:url(../images/sdk-bg.jpg);
+ background-size:cover;
+ height:100px;
+ margin-bottom:120px
+}
+.sdk-wrapper a {
+ color:#fff
+}
+.sdk-wrapper a:hover {
+ color:#42d182
+}
+.sdk-wrapper .sdk-content {
+ max-width:1200px
+}
+.sdk-wrapper .title-box {
+ background-color:#42d182;
+ position:absolute;
+ top:-8px;
+ padding:36px;
+ letter-spacing:4px;
+ font-size:16px;
+ line-height:1.4
+}
+.sdk-wrapper .links-wrapper {
+ padding:26px 0 0 180px
+}
+.sdk-wrapper .links-wrapper.left {
+ line-height:24px
+}
+.sdk-wrapper .links-wrapper.right {
+ line-height:48px
+}
+.news-wrapper {
+ background-color:#fff;
+ max-width:1200px;
+ margin-right:auto;
+ margin-left:auto;
+ box-shadow:0 0 30px 0 rgba(0,0,0,0.1);
+ padding:40px;
+ margin-bottom:-80px;
+ z-index:2;
+ position:relative
+}
+.news-wrapper .thumbnail-wrapper {
+ padding-right:20px
+}
+.news-wrapper .orbit {
+ position:relative
+}
+.news-wrapper .orbit-container {
+ position:relative;
+ height:0;
+ margin:0;
+ list-style:none;
+ overflow:hidden;
+ padding:0
+}
+.news-wrapper .orbit-slide {
+ width:100%
+}
+.news-wrapper .orbit-slide.no-motionui.is-active {
+ top:0;
+ left:0
+}
+.news-wrapper .product-news-wrapper {
+ padding-left:20px
+}
+.news-wrapper .title {
+ font-size:16px;
+ margin-bottom:46px
+}
+.news-wrapper .news-list {
+ margin:0;
+ list-style:none;
+ padding-left:10px;
+ border-left:2px solid #08b2ff
+}
+.news-wrapper .news-list a {
+ color:#777777
+}
+.news-wrapper .news-list a:hover {
+ color:#08b2ff
+}
+.news-wrapper .news-list li {
+ margin-bottom:20px
+}
+.news-wrapper .news-title {
+ float:left;
+ width:70%;
+ text-overflow:ellipsis;
+ white-space:nowrap;
+ overflow:hidden
+}
+.support-wrapper {
+ background-image:url(../images/support-bg.jpg);
+ background-size:cover;
+ height:280px;
+ padding-top:120px
+}
+.support-wrapper .support-content {
+ max-width:1200px
+}
+.support-wrapper .title {
+ color:#fff;
+ font-size:16px;
+ letter-spacing:2px;
+ margin-bottom:20px
+}
+.support-wrapper .support-button {
+ display:inline-block;
+ text-align:center;
+ padding:10px 0;
+ width:140px;
+ background-color:rgba(255,255,255,0.2);
+ color:#fff
+}
+.footer-wrapper {
+ background-color:#25252c;
+ color:rgba(255,255,255,0.4);
+ padding:40px 0
+}
+.footer-wrapper .title {
+ margin-bottom:30px;
+ letter-spacing:2px;
+ font-size:16px;
+ color:#fff
+}
+.footer-wrapper ul {
+ margin:0;
+ padding:0;
+ list-style:none;
+ letter-spacing:1px
+}
+.footer-wrapper ul a {
+ font-size:12px;
+ color:rgba(255,255,255,0.4)
+}
+.footer-wrapper ul li {
+ margin-bottom:10px
+}
+.footer-wrapper .footer-content {
+ max-width:1200px;
+ margin:0 auto
+}
+.footer-wrapper .qrcode-wrapper {
+ text-align:right;
+ font-size:12px
+}
+.footer-wrapper .qrcode-wrapper img {
+ width:140px
+}
+.footer-wrapper .qrcode-wrapper .text {
+ display:inline-block;
+ width:140px;
+ text-align:center
+}
+.footer-wrapper .horizontal-list-wrapper a {
+ font-size:12px;
+ color:rgba(255,255,255,0.4)
+}
+.footer-wrapper .copyright {
+ text-align:center;
+ color:rgba(255,255,255,0.4);
+ margin-top:60px
+}
+.support-entries-wrapper {
+ position:fixed;
+ bottom:50px;
+ right:20px;
+ z-index:200
+}
+.support-entries-wrapper .qq {
+ display:block;
+ background-image:url(../images/support-qq.png);
+ background-size:100%;
+ height:56px;
+ width:56px
+}
+.sdk-download-page-wrapper {
+ padding-bottom:80px
+}
+.sdk-download-page-wrapper .thin-top-banner-wrapper {
+ background-image:url(../images/sdk-download-banner.jpg)
+}
+.sdk-download-page-wrapper .sdk-box-wrapper {
+ background-color:#fff;
+ box-shadow:0 0 30px 0 rgba(0,0,0,0.1);
+ max-width:1200px;
+ margin:-40px auto 0 auto;
+ padding:40px 40px 20px 40px
+}
+.sdk-download-page-wrapper .sdk-box-wrapper .title {
+ font-size:18px;
+ border-bottom:1px dashed #e5e5e5;
+ padding-bottom:20px;
+ margin-bottom:20px
+}
+.sdk-download-page-wrapper .sdk-box-wrapper .title .right-btn {
+ float:right;
+ font-size:14px;
+ line-height:22px
+}
+.sdk-download-page-wrapper .sdk-box-wrapper>.row>.columns {
+ padding-right:20px
+}
+.sdk-download-page-wrapper .sdk-box-wrapper>.row>.columns:nth-child(3n+3) {
+ padding-right:0
+}
+.sdk-download-page-wrapper .sdk-box {
+ border:1px solid #e5e5e5;
+ padding:20px;
+ position:relative;
+ margin-bottom:20px
+}
+.sdk-download-page-wrapper .sdk-box .right {
+ padding-left:60px;
+ margin-bottom:20px
+}
+.sdk-download-page-wrapper .sdk-box .foot {
+ line-height:30px
+}
+.sdk-download-page-wrapper .sdk-box--icon {
+ position:absolute;
+ font-size:40px
+}
+.sdk-download-page-wrapper .sdk-box--title {
+ font-size:16px;
+ margin-bottom:10px
+}
+.sdk-download-page-wrapper .sdk-box--tag {
+ font-size:12px;
+ background-color:#44b481;
+ color:#fff;
+ padding:0 4px;
+ border-radius:2px;
+ margin-left:5px
+}
+.sdk-download-page-wrapper .sdk-box--version {
+ display:inline-block;
+ width:80px
+}
+.sdk-download-page-wrapper .sdk-box--release {
+ display:inline-block;
+ color:#999999
+}
+.sdk-download-page-wrapper .sdk-box--desc {
+ border-bottom:1px dashed #e5e5e5;
+ padding-bottom:20px;
+ margin-bottom:20px;
+ line-height:1.5;
+ color:#777777
+}
+.sdk-download-page-wrapper .sdk-box--desc .scroll {
+ height:84px;
+ overflow-x:visible;
+ overflow-y:scroll
+}
+.sdk-download-page-wrapper .sdk-box--button {
+ display:inline-block;
+ padding:0 12px;
+ background:transparent;
+ border:1px solid #08b2ff;
+ border-radius:20px;
+ color:#08b2ff;
+ letter-spacing:2px;
+ line-height:24px
+}
+.sdk-download-page-wrapper .sdk-box--button:hover {
+ background-color:#08b2ff;
+ color:#fff
+}
+.sdk-download-page-wrapper .sdk-box.small .right {
+ margin-bottom:0
+}
+.sdk-download-page-wrapper .sdk-box.small .sdk-box--button {
+ position:absolute;
+ right:20px;
+ top:28px
+}
+.sdk-download-page-wrapper .button-group {
+ margin-bottom:1rem;
+ font-size:0;
+ text-align:center
+}
+.sdk-download-page-wrapper .button-group::before,.sdk-download-page-wrapper .button-group::after {
+ display:table;
+ content:' '
+}
+.sdk-download-page-wrapper .button-group::after {
+ clear:both
+}
+.sdk-download-page-wrapper .button-group .button {
+ margin:0;
+ margin-right:0;
+ margin-bottom:0;
+ font-size:0.9rem
+}
+.sdk-download-page-wrapper .button-group .button:last-child {
+ margin-right:0
+}
+.sdk-download-page-wrapper .button-group .button {
+ display:inline-block;
+ vertical-align:middle;
+ margin:0 0 1rem 0;
+ font-family:inherit;
+ padding:0.85em 1em;
+ -webkit-appearance:none;
+ border:1px solid transparent;
+ border-radius:0;
+ transition:background-color 0.25s ease-out,color 0.25s ease-out;
+ font-size:0.9rem;
+ line-height:1;
+ text-align:center;
+ cursor:pointer;
+ border:1px solid #2a3139;
+ color:#2a3139;
+ border-color:#d7d7d7;
+ min-width:100px
+}
+[data-whatinput='mouse'] .sdk-download-page-wrapper .button-group .button {
+ outline:0
+}
+.sdk-download-page-wrapper .button-group .button,.sdk-download-page-wrapper .button-group .button:hover,.sdk-download-page-wrapper .button-group .button:focus {
+ background-color:transparent
+}
+.sdk-download-page-wrapper .button-group .button.disabled,.sdk-download-page-wrapper .button-group .button.disabled:hover,.sdk-download-page-wrapper .button-group .button.disabled:focus,.sdk-download-page-wrapper .button-group .button[disabled],.sdk-download-page-wrapper .button-group .button[disabled]:hover,.sdk-download-page-wrapper .button-group .button[disabled]:focus {
+ background-color:transparent
+}
+.sdk-download-page-wrapper .button-group .button:hover,.sdk-download-page-wrapper .button-group .button:focus {
+ border-color:#15191d;
+ color:#15191d
+}
+.sdk-download-page-wrapper .button-group .button:hover.disabled,.sdk-download-page-wrapper .button-group .button:hover[disabled],.sdk-download-page-wrapper .button-group .button:focus.disabled,.sdk-download-page-wrapper .button-group .button:focus[disabled] {
+ border:1px solid #2a3139;
+ color:#2a3139
+}
+.sdk-download-page-wrapper .button-group .button:last-child {
+ border-left:0
+}
+.sdk-download-page-wrapper .button-group .button:hover {
+ color:#08b2ff;
+ border-color:#d7d7d7
+}
+.sdk-download-page-wrapper .button-group .button.is-active {
+ border-color:#08b2ff;
+ background-color:#08b2ff;
+ color:#fff
+}
+.sdk-download-page-wrapper .sdk-dialog-wrapper {
+ position:fixed;
+ top:0;
+ left:0;
+ width:100%;
+ height:100%;
+ background-color:rgba(0,0,0,0.4)
+}
+.sdk-download-page-wrapper .sdk-dialog {
+ position:relative;
+ top:10%;
+ width:680px;
+ margin:0 auto;
+ height:60%;
+ overflow:auto;
+ background:#fff
+}
+.sdk-download-page-wrapper .sdk-dialog--title {
+ position:relative;
+ padding:0 20px;
+ line-height:55px;
+ font-size:16px;
+ background-color:#f5f5f5;
+ margin-bottom:20px
+}
+.sdk-download-page-wrapper .sdk-dialog--close {
+ float:right;
+ font-size:24px;
+ color:#a2a2a2
+}
+.sdk-download-page-wrapper .sdk-dialog--close:hover {
+ color:#08b2ff
+}
+.sdk-download-page-wrapper .sdk-dialog--content {
+ padding:0 40px 20px 40px
+}
+.sdk-download-page-wrapper .sdk-history {
+ overflow:hidden
+}
+.sdk-download-page-wrapper .sdk-history .year {
+ position:relative
+}
+.sdk-download-page-wrapper .sdk-history h2 {
+ float:left;
+ margin:0 14px 0 0;
+ font-size:18px
+}
+.sdk-download-page-wrapper .sdk-history .timeline {
+ border-left:1px solid #e5e5e5;
+ float:left;
+ width:480px;
+ padding-bottom:80px
+}
+.sdk-download-page-wrapper .sdk-history dl {
+ margin:0;
+ padding-bottom:30px
+}
+.sdk-download-page-wrapper .sdk-history .sdk-date {
+ margin:0 0 0 -5px;
+ color:#08b2ff
+}
+.sdk-download-page-wrapper .sdk-history .sdk-date .dot {
+ display:block;
+ float:left;
+ margin:1px 10px 0 -3px;
+ width:15px;
+ height:15px;
+ border:3px solid #fff;
+ border-radius:50%;
+ background-color:#08b2ff
+}
+.sdk-download-page-wrapper .sdk-history .list {
+ font-size:12px;
+ overflow:hidden;
+ line-height:25px;
+ margin-left:0
+}
+.sdk-download-page-wrapper .sdk-history .text {
+ list-style:none;
+ padding-left:20px;
+ margin:10px 0
+}
+.product-page-wrapper {
+ padding-bottom:80px
+}
+.product-page-wrapper .thin-top-banner-wrapper {
+ background-image:url(../images/product-banner.jpg)
+}
+.product-page-wrapper .product-intro-wrapper {
+ background-color:#fff;
+ box-shadow:0 0 30px 0 rgba(0,0,0,0.1);
+ max-width:1200px;
+ margin:-40px auto 0 auto;
+ padding:40px;
+ text-align:center
+}
+.product-page-wrapper .product-intro-wrapper .section {
+ padding:60px 20px
+}
+.product-page-wrapper .product-intro-wrapper .title {
+ font-weight:bold;
+ font-size:24px;
+ margin:70px 0 30px 0;
+ letter-spacing:2px
+}
+.product-page-wrapper .product-intro-wrapper .desc {
+ font-size:16px;
+ line-height:1.8;
+ letter-spacing:1px;
+ margin:0
+}
+.product-page-wrapper .product-intro-wrapper .left {
+ text-align:right;
+ padding-right:20px
+}
+.product-page-wrapper .product-intro-wrapper .left .title,.product-page-wrapper .product-intro-wrapper .left .desc {
+ padding-right:40px
+}
+.product-page-wrapper .product-intro-wrapper .right {
+ text-align:left;
+ padding-left:20px
+}
+.product-page-wrapper .product-intro-wrapper .right .title,.product-page-wrapper .product-intro-wrapper .right .desc {
+ padding-left:40px
+}
+.product-page-wrapper .product-intro-wrapper .button {
+ display:inline-block;
+ padding:18px 80px;
+ background:#08b2ff;
+ border-radius:36px;
+ color:#fff;
+ letter-spacing:2px;
+ line-height:1;
+ font-size:20px
+}
+.product-page-wrapper .product-intro-wrapper .button:hover {
+ background-color:#18cff5
+}
+.rule-page-wrapper .rule-wrapper {
+ padding:40px 0;
+ max-width:1200px;
+ margin:0 auto
+}
+.rule-page-wrapper .rule-wrapper h2 {
+ text-align:center
+}
+.aisee-page-wrapper {
+ padding:40px 0
+}
+.aisee-page-wrapper .button-group {
+ margin-bottom:1rem;
+ font-size:0;
+ text-align:center
+}
+.aisee-page-wrapper .button-group::before,.aisee-page-wrapper .button-group::after {
+ display:table;
+ content:' '
+}
+.aisee-page-wrapper .button-group::after {
+ clear:both
+}
+.aisee-page-wrapper .button-group .button {
+ margin:0;
+ margin-right:0;
+ margin-bottom:0;
+ font-size:0.9rem
+}
+.aisee-page-wrapper .button-group .button:last-child {
+ margin-right:0
+}
+.aisee-page-wrapper .button-group .button {
+ display:inline-block;
+ vertical-align:middle;
+ margin:0 0 1rem 0;
+ font-family:inherit;
+ padding:0.85em 1em;
+ -webkit-appearance:none;
+ border:1px solid transparent;
+ border-radius:0;
+ transition:background-color 0.25s ease-out,color 0.25s ease-out;
+ font-size:0.9rem;
+ line-height:1;
+ text-align:center;
+ cursor:pointer;
+ border:1px solid #2a3139;
+ color:#2a3139;
+ border-color:#d7d7d7;
+ min-width:100px
+}
+[data-whatinput='mouse'] .aisee-page-wrapper .button-group .button {
+ outline:0
+}
+.aisee-page-wrapper .button-group .button,.aisee-page-wrapper .button-group .button:hover,.aisee-page-wrapper .button-group .button:focus {
+ background-color:transparent
+}
+.aisee-page-wrapper .button-group .button.disabled,.aisee-page-wrapper .button-group .button.disabled:hover,.aisee-page-wrapper .button-group .button.disabled:focus,.aisee-page-wrapper .button-group .button[disabled],.aisee-page-wrapper .button-group .button[disabled]:hover,.aisee-page-wrapper .button-group .button[disabled]:focus {
+ background-color:transparent
+}
+.aisee-page-wrapper .button-group .button:hover,.aisee-page-wrapper .button-group .button:focus {
+ border-color:#15191d;
+ color:#15191d
+}
+.aisee-page-wrapper .button-group .button:hover.disabled,.aisee-page-wrapper .button-group .button:hover[disabled],.aisee-page-wrapper .button-group .button:focus.disabled,.aisee-page-wrapper .button-group .button:focus[disabled] {
+ border:1px solid #2a3139;
+ color:#2a3139
+}
+.aisee-page-wrapper .button-group .button:last-child {
+ border-left:0
+}
+.aisee-page-wrapper .button-group .button:hover {
+ color:#08b2ff;
+ border-color:#d7d7d7
+}
+.aisee-page-wrapper .button-group .button.is-active {
+ border-color:#08b2ff;
+ background-color:#08b2ff;
+ color:#fff
+}
+.aisee-page-wrapper .iframe-wrapper {
+ box-shadow:0 0 30px 0 rgba(0,0,0,0.1)
+}
+.login-page-wrapper {
+ position:relative;
+ width:100%;
+ height:100%;
+ padding-top:8%;
+ background-image:url(../images/login-bg.jpg);
+ background-size:cover
+}
+.login-page-wrapper .logo-wrapper {
+ margin-bottom:60px
+}
+.login-page-wrapper .logo-wrapper .logo {
+ background-image:url(../images/logo-white.png)
+}
+.login-page-wrapper .logo-wrapper .text {
+ font-size:24px
+}
+.login-page-wrapper .intro-wrapper {
+ color:#fff
+}
+.login-page-wrapper .intro-wrapper a {
+ color:#fff
+}
+.login-page-wrapper .intro-wrapper a:hover {
+ color:#fff
+}
+.login-page-wrapper .intro-wrapper .title {
+ font-size:26px;
+ letter-spacing:4px;
+ line-height:1;
+ margin:0 0 36px 0
+}
+.login-page-wrapper .intro-wrapper .details {
+ padding-left:18px;
+ font-size:16px;
+ letter-spacing:2px;
+ margin-bottom:64px
+}
+.login-page-wrapper .intro-wrapper .details li {
+ margin-bottom:10px
+}
+.login-page-wrapper .intro-wrapper .details li:last-child {
+ margin-bottom:0
+}
+.login-page-wrapper .login-wrapper .login-box {
+ position:relative;
+ vertical-align:middle;
+ background-color:#fff;
+ padding:20px
+}
+.login-page-wrapper .login-wrapper .login-box .iframe-wrapper {
+ max-width:800px;
+ height:460px;
+ margin:0 auto
+}
+.login-page-wrapper .copyright {
+ width:100%;
+ position:absolute;
+ bottom:40px;
+ text-align:center;
+ color:rgba(255,255,255,0.3)
+}
+.active-email-page-wrapper {
+ position:relative;
+ width:100%;
+ height:100%;
+ background-image:url(../images/login-bg.jpg);
+ background-size:cover
+}
+.active-email-page-wrapper .logo-wrapper {
+ margin:20px 0 0 60px
+}
+.active-email-page-wrapper .logo-wrapper .logo {
+ background-image:url("../images/logo.png");
+ display:inline-block;
+ background-size:100% 100%;
+ width:45px;
+ height:38px;
+ margin-right:10px;
+ vertical-align:middle
+}
+.active-email-page-wrapper .logo-wrapper .text {
+ display:inline-block;
+ vertical-align:middle;
+ font-size:18px;
+ color:#2a3139
+}
+.active-email-page-wrapper .centre-box-wrapper {
+ max-width:700px;
+ margin:0 auto;
+ position:relative;
+ top:40%;
+ transform:translateY(-50%);
+ background-color:#fff;
+ padding:40px 20px;
+ box-shadow:0 10px 20px #d8e0e6
+}
+.active-email-page-wrapper .centre-box-wrapper .head-tips {
+ font-size:16px;
+ text-align:center;
+ margin-bottom:40px;
+ line-height:1.5
+}
+.active-email-page-wrapper .centre-box-wrapper .icon-info {
+ background-image:url("../images/icon-info.svg");
+ background-size:100% 100%;
+ width:45px;
+ height:45px;
+ margin:0 auto 20px auto
+}
+.active-email-page-wrapper .centre-box-wrapper .icon-success {
+ background-image:url("../images/icon-tick.svg");
+ background-size:100% 100%;
+ width:45px;
+ height:45px;
+ margin:0 auto 20px auto
+}
+.active-email-page-wrapper .copyright {
+ width:100%;
+ position:absolute;
+ bottom:40px;
+ text-align:center;
+ color:rgba(255,255,255,0.3)
+}
+.error-page-wrapper {
+ background-color:#fff;
+ text-align:center
+}
+.error-page-wrapper .error-img {
+ margin-top:5%;
+ width:428px
+}
+.error-page-wrapper .error-tips {
+ margin-top:36px;
+ font-size:16px;
+ color:#878e9b
+}
+.error-page-wrapper .error-button {
+ display:inline-block;
+ vertical-align:middle;
+ margin:0 0 1rem 0;
+ font-family:inherit;
+ padding:0.85em 1em;
+ -webkit-appearance:none;
+ border:1px solid transparent;
+ border-radius:0;
+ transition:background-color 0.25s ease-out,color 0.25s ease-out;
+ font-size:0.9rem;
+ line-height:1;
+ text-align:center;
+ cursor:pointer;
+ background-color:#08b2ff;
+ color:#fff
+}
+[data-whatinput='mouse'] .error-page-wrapper .error-button {
+ outline:0
+}
+.error-page-wrapper .error-button:hover,.error-page-wrapper .error-button:focus {
+ background-color:#2dbeff;
+ color:#fff
+}
+.alert-danger {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+}
+
+.alert {
+ padding: 15px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
\ No newline at end of file
diff --git a/release/asset/css/login.css b/release/asset/css/login.css
new file mode 100644
index 0000000..0429666
--- /dev/null
+++ b/release/asset/css/login.css
@@ -0,0 +1,132 @@
+.login-page,.register-page{
+ padding: 45px 40px 60px;
+ background-color: #fff;
+ height: 100vh;
+}
+.login-from .mui-input-row,.register-page .mui-input-row{
+ margin-top: 26px;
+ position: relative;
+ display: flex;
+ height: 41px;
+ line-height: 41px;
+ align-items: center;
+ padding: 0 20px;
+ color: #333;
+ background: #f8f8f8;
+ border-radius: 20px;
+ display: flex;
+ font-family: PingFang SC;
+ justify-content: space-between;
+}
+.login-from .mui-input-row input,.register-page .mui-input-row input,
+.createcom .mui-input-row input{
+ font-size: 14px;
+}
+.login-from .mui-input-row input::placeholder,.register-page .mui-input-row input::placeholder,
+.createcom .mui-input-row input::placeholder{
+ color: #ccc;
+}
+.login-from .mui-input-row::after,.register-page .mui-input-row::after{
+ display: none;
+}
+.mui-input-group::before,.mui-input-group::after{
+ display: none;
+}
+.area {
+ margin: 20px auto 0px auto;
+}
+
+
+.mui-input-group {
+ margin-top: 10px;
+}
+
+.mui-input-group:first-child {
+ margin-top: 20px;
+}
+
+.mui-input-group label {
+ width: 22%;
+}
+
+.mui-input-row label~input,
+.mui-input-row label~select,
+.mui-input-row label~textarea {
+ width: 78%;
+}
+
+.mui-checkbox input[type=checkbox],
+.mui-radio input[type=radio] {
+ top: 6px;
+}
+
+.mui-content-padded {
+ margin: 0;
+ margin-top: 25px;
+}
+
+.mui-content-padded .btn-login,.btn-register,.btn-confirm{
+ height: 41px;
+ line-height: 21px;
+ background: #fb3a4e;
+ border-radius: 20px;
+ font-size: 16px;
+ font-weight: 500;
+ color: #fff;
+ text-align: center;
+ border: none;
+}
+
+.mui-btn {
+ padding: 10px;
+}
+
+.link-area {
+ display: block;
+ margin-top: 25px;
+ text-align: center;
+}
+
+.link-area a{
+ font-size: 12px;
+ color: #4c90ff;
+}
+
+.spliter {
+ color: #bbb;
+ padding: 0px 8px;
+}
+
+
+
+.oauth-area {
+ position: absolute;
+ bottom: 20px;
+ left: 0px;
+ text-align: center;
+ width: 100%;
+ padding: 0px;
+ margin: 0px;
+}
+
+.oauth-area .oauth-btn {
+ display: inline-block;
+ width: 50px;
+ height: 50px;
+ background-size: 30px 30px;
+ background-position: center center;
+ background-repeat: no-repeat;
+ margin: 0px 20px;
+ /*-webkit-filter: grayscale(100%); */
+ border: solid 1px #ddd;
+ border-radius: 25px;
+}
+
+.oauth-area .oauth-btn:active {
+ border: solid 1px #aaa;
+}
+
+.oauth-area .oauth-btn.disabled {
+ background-color: #ddd;
+}
+
diff --git a/release/asset/css/login_mini_form_aliyun.css b/release/asset/css/login_mini_form_aliyun.css
new file mode 100644
index 0000000..888b8e1
--- /dev/null
+++ b/release/asset/css/login_mini_form_aliyun.css
@@ -0,0 +1,74 @@
+* {
+ font-family:'Microsoft Yahei'
+}
+#login-form #login-content .suggest-container {
+ width:246px;
+ top:46px
+}
+#login-form #login-content .suggest-container .suggest-item a {
+ padding:4px 6px;
+ color:#4d4d4d
+}
+#login-form #login-content .fm-text {
+ border-radius:3px;
+ line-height:16px;
+ padding:8px 5px;
+ margin-top:5px;
+ font-size:14px;
+ background:transparent
+}
+#login-form #login-content .fm-text:focus {
+ background-color:#e9fbfe;
+ border-color:#69c5dd
+}
+#login-form #login-content #fm-login-checkcode-update {
+ color:#00a2ca
+}
+#login-form #login-content .fm-field-wrap .fm-checkcode-update {
+ margin-top:10px
+}
+#login-form #login-content .fm-checkcode-img {
+ height:35px;
+ width:83px;
+ margin-top:7px;
+ opacity:0.7
+}
+#login-form #login-content #fm-login-checkcode {
+ min-width:80px
+}
+#login-form a:visited,#login-form a:link {
+ color:#08c
+}
+.input-focus {
+ border:1px solid #69C5DD
+}
+.fm-button {
+ display:inline-block;
+ min-width:140px;
+ height:36px;
+ padding:0 30px 1px;
+ background:#e4162d;
+ border:none;
+ line-height:32px;
+ font-size:14px;
+ color:#fff;
+ text-align:center;
+ outline:none;
+ cursor:pointer;
+ border-radius:4px
+}
+.fm-button:hover {
+ background:#e4162d;
+ border-color:#e4162d;
+ border:none
+}
+.fm-button:active {
+ background:#e4162d;
+ border-color:#e4162d
+}
+.icon-notice {
+ background-color:#f1f6fa
+}
+.icon-error {
+ background-color:#fff3e7
+}
diff --git a/release/asset/css/mini-login-form-min.css b/release/asset/css/mini-login-form-min.css
new file mode 100644
index 0000000..8e81f15
--- /dev/null
+++ b/release/asset/css/mini-login-form-min.css
@@ -0,0 +1 @@
+@charset "utf-8";blockquote,body,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:400}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}q:after,q:before{content:''}abbr,acronym{border:0}.ua-webkit input:focus,.ua-webkit textarea:focus{outline:0}html{overflow-y:scroll;overflow-x:auto}body{font:12px/1.6 Tahoma,Arial,Hiragino Sans GB,\5b8b\4f53;color:#4d4d4d;-webkit-text-size-adjust:none}a:link{color:#08c;text-decoration:none}a:visited{color:#306;text-decoration:none}a:active,a:hover{color:#08c;text-decoration:underline}input{outline:0}textarea{resize:none;outline:0;font-family:arial;overflow:hidden}button{cursor:pointer;line-height:1.2}a img{vertical-align:text-bottom}.ua-windows_nt input[type=checkbox],.ua-windows_nt input[type=radio]{vertical-align:-2px}.hide{position:absolute;visibility:hidden;left:-1000em;top:-1000em}.clr:after{content:".";display:block;height:0;clear:both;overflow:hidden}.clr{*zoom:1}.ms-yh{font-family:Microsoft YaHei,Hiragino Sans GB,\5b8b\4f53}.shadow{-webkit-box-shadow:0 1px 3px rgba(34,25,25,.4);-moz-box-shadow:0 1px 3px rgba(34,25,25,.4);-ms-box-shadow:0 1px 3px rgba(34,25,25,.4);-o-box-shadow:0 1px 3px rgba(34,25,25,.4);box-shadow:0 1px 3px rgba(34,25,25,.4)}.ua-ie .shadow{border:1px solid #d6d6d6}.split{margin:0 6px;color:#ccc}.form{width:100%}.form dd .form-error{display:block;float:left;margin-left:4px;border:1px solid #ffe1b9;padding:0 10px;line-height:32px;background-color:#fffaae}.form dd .form-info{margin-left:0}.form dd .form-success{border:none!important;background:none!important}.fm-split{margin:18px 0 0;color:#7c7c7c}.fm-field-wrap:after{content:"\0020";display:block;height:0;clear:both;overflow:hidden}.fm-field-wrap{*zoom:1}.fm-field-extra{margin-top:6px}.fm-field{padding:2px 0 8px}.fm-relative{position:relative}.fm-label{padding:8px 0 2px}.fm-label .noempty{margin-right:4px;color:red}.fm-label-extra{float:right}.fm-input-split{float:left;line-height:31px;margin:0 6px}.fm-text,.fm-textarea{float:left;padding:4px 6px;border:1px solid #ccc;line-height:17px;font-size:12px;color:#595959;background:#fff;vertical-align:middle;-webkit-box-shadow:0 1px 0 #ececec inset;-moz-box-shadow:0 1px 0 #ececec inset;-ms-box-shadow:0 1px 0 #ececec inset;-o-box-shadow:0 1px 0 #ececec inset;box-shadow:0 1px 0 #ececec inset;_padding:5px 6px}.fm-text:hover,.fm-textarea:hover{border:1px solid #a6a6a6}.fm-text:focus,.fm-textarea:focus{border-color:#70a5e0;-webkit-box-shadow:0 0 2px #a6cfff;-moz-box-shadow:0 0 2px #a6cfff;-ms-box-shadow:0 0 2px #a6cfff;-o-box-shadow:0 0 2px #a6cfff;box-shadow:0 0 2px #a6cfff}.fm-checkbox,.fm-radio{vertical-align:middle;margin-right:8px}.fm-checkcode{float:left;width:48px!important}.fm-checkcode-img{float:left;height:30px;margin:0 6px;cursor:pointer}.fm-checkcode-update{float:left;line-height:27px;color:#666}.fm-haserror{border:1px solid red!important;color:#FF5243}.fm-validator-result{display:none;clear:both;padding:6px 0 0 20px;line-height:17px}.fm-validator-result .icon-notice{margin-left:-20px}.fm-validator-success{display:block}.fm-validator-failure{display:block;color:#FF5243;background:#fff}.fm-button{height:30px;border:1px solid #e87b0e;font-size:14px;font-weight:700;text-align:center;color:#fff;cursor:pointer;background:url(../images/login-btn.png) repeat-x 0 -1px;font-family:Microsoft YaHei,Hiragino Sans GB,\5b8b\4f53;-webkit-box-shadow:0 1px 1px #ebe7e6;-moz-box-shadow:0 1px 1px #ebe7e6;-ms-box-shadow:0 1px 1px #ebe7e6;-o-box-shadow:0 1px 1px #ebe7e6;box-shadow:0 1px 1px #ebe7e6;zoom:100%;_overflow:visible}.fm-button:hover{border:1px solid #e87b0e;background-position:0 -31px}.fm-button:active{border:1px solid #e87b0e;background-position:0 -61px}a.fm-button{display:inline-block!important;height:28px;line-height:28px;text-align:center;text-decoration:none!important;color:#fff!important}input.fm-button{_border:1px solid #fff;_line-height:28px;_overflow-y:hidden;_background-color:#e87b0e}input.fm-button:active,input.fm-button:hover{_background-color:#e87b0e}.fm-button-cancel{height:30px;border:1px solid #bcbcbc;font-size:14px;font-weight:700;text-align:center;color:#333;cursor:pointer;background:url(../images/login-btn.png) repeat-x 0 -91px;-webkit-box-shadow:0 1px 1px #ebe7e6;-moz-box-shadow:0 1px 1px #ebe7e6;-ms-box-shadow:0 1px 1px #ebe7e6;-o-box-shadow:0 1px 1px #ebe7e6;box-shadow:0 1px 1px #ebe7e6;font-family:Microsoft YaHei,Hiragino Sans GB,\5b8b\4f53;zoom:100%;_overflow:visible}.fm-button-cancel:hover{background-position:0 -121px}.fm-button-cancel:active{background-position:0 -151px}a.fm-button-cancel{display:inline-block!important;height:28px;line-height:28px;text-align:center;text-decoration:none!important;color:#333!important}input.fm-button-cancel{_border:1px solid #fff;_line-height:28px;_overflow-y:hidden;_background-color:#bcbcbc}.fm-button-disabled,.fm-button-disabled:hover{border:1px solid #d4d4d4;color:#ccc!important;background:url(../images/login-btn.png) repeat-x 0 -181px!important;-webkit-text-shadow:0 1px 0 #fff;-moz-text-shadow:0 1px 0 #fff;-ms-text-shadow:0 1px 0 #fff;-o-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff}input.fm-button-disabled{_background-color:#d4d4d4}#login-form{position:relative;font:400 12px arial}#umFlash{position:absolute;top:-1000px;left:-1000px;width:1px;height:1px;display:block}#login-form .clearfix:after{content:"\0020";display:block;font-size:0;line-height:0;height:0;clear:both;visibility:hidden}#login-form .clearfix{zoom:1;_height:1%;display:block}#login-form a,#login-form a:hover,#login-form a:visited{text-decoration:none}#login-form .notice-descript a,#login-form .notice-descript a:hover,#login-form .notice-descript a:visited{text-decoration:underline}.login #content{padding-top:51px}#login-form #login-error{display:none}#login-form.is-error-show #login-error{display:block}#login-content label{font-weight:700}#login-content .fm-text{width:100%}#login-content .fm-text::selection{background:#1996e6;color:#fff}#login-content .fm-text::-webkit-selection{background:#1996e6;color:#fff}#login-content .fm-text::-moz-selection{background:#1996e6;color:#fff}#login-content .fm-text::-webkit-input-placeholder{color:#aaa}#login-content .fm-text:-moz-placeholder{color:#aaa}#login-content .fm-text:-ms-input-placeholder{color:#aaa}#login-content .fm-field-wrap{padding-right:14px}#login-content #fm-login-checkcode-update{color:#666;white-space:nowrap;word-break:keep-all}#lbl-activex-login,#lbl-keep-login{font-weight:400;vertical-align:middle}#fm-login-checkcode-title{display:none}#fm-login-submit-wrap{padding:8px 0}#login-extra{margin-top:10px}#login-extra .right-link{float:right}#login-form .loading-mask,#login-form .loading-mask .loading-icon,#login-form .loading-mask .loading-mask-body{height:100%;width:100%;position:absolute;left:0;top:0}#login-form .loading-mask .loading-icon{background:url(../images/ajax-loader-16x16.gif) no-repeat center center;z-index:2}#login-form .loading-mask .loading-mask-body{background-color:#fff;z-index:1;opacity:.8;filter:alpha(opacity=80)}#login-form #login-loading{display:none}#login-form.status-loading #login-loading{display:block}#login-form #account-check-loading{display:none}#login-form.status-account-check-loading #account-check-loading{display:block}#login-form.status-account-check-loading #fm-login-id-wrap .fm-field-wrap{position:relative}#has-login-user{padding:0 0 23px;width:250px}#has-login-user .user-name{display:block;line-height:20px;font-weight:700;color:#f60}#has-login-list{margin:24px 0}#has-login-field .fm-submit{width:250px}#login-other-sso{cursor:pointer}#login-other-sso .icon-question{margin:0 0 0 8px}.is-checkcode-show #login-content .about-checkcode{display:block}#login-form .about-checkcode{display:none}.style-type-vertical{width:250px}.style-type-vertical #fm-login-submit{width:100%;margin-top:10px}.style-type-auto{width:100%}.style-type-auto #fm-login-submit{width:100%;margin-top:10px}.style-type-horizontal{width:370px}.style-type-horizontal #login-error{margin-bottom:10px;width:312px}.style-type-horizontal #login-content .fm-label{float:left;clear:both;width:132px;padding-right:8px;text-align:right}.style-type-horizontal #login-content .fm-field{float:left;width:200px}.style-type-horizontal #login-content .fm-text{float:left}.style-type-horizontal #fm-login-submit{margin-left:140px;padding:0 25px}.style-type-horizontal #fm-login-id,.style-type-horizontal #fm-login-password{float:none!important}.style-type-horizontal #forgot-password-link{display:block;text-align:left;margin-top:3px}.style-type-horizontal .fm-checkcode{width:30px!important}.notice{padding:4px 12px;line-height:18px;font-family:Tahoma,Helvetica,Arial,\5b8b\4f53}.notice-wrapper{padding-left:20px}.notice-wrapper .icon-notice{margin-left:-42px}.notice-info,.notice-what{border:1px solid #c9d5e2;background:#e5f5ff}.notice-alert{border:1px solid #e7c560;background:#ffff8d}.notice-error,.notice-forbid{border:1px solid #f6c8b5;background:#fceee8}.notice-success{border:1px solid #B9E2A0;background:#E7FFCE}.notice-wait{border:1px solid #E6CBB1;background:#FFF9D9}.form-error{padding-left:32px}.form-error .icon-error{margin-left:-20px}.suggest-container{position:absolute;border:1px solid #ccc;background:#fff;top:30px;left:0;z-index:99}.input-with-completion{z-index:10}.suggest-item a{display:block;padding:4px 6px;color:#4d4d4d}.suggest-container .suggest-item-selected,.suggest-item a:active,.suggest-item a:hover{color:#fff;background-color:#1996e6;text-decoration:none}#login-content .suggest-container{width:250px;top:27px}#login-content .yun-account-notice{padding:4px 6px;text-align:right;color:#999}#accountName{display:inline;width:220px;word-wrap:break-word}#login-title{font-size:16px;font-weight:700;border-bottom:1px solid #ccc;padding-bottom:5px;margin-bottom:10px}#login-other{overflow:hidden;zoom:1;margin-top:10px}#login-other .login-login-links{float:left}#login-other .login-login-links a{padding-right:2px}#login-other .register{float:right; margin-bottom: 30px;}#login-other .register a{color:#08C}.yunmail #fm-login-id{width:142px;border:1px solid #ccc;height:17px;background:url(../images/yunmail_input_bj.png) no-repeat right #fff;padding:2px 100px 4px 6px;font-family:Arial}@font-face{font-family:iconfont;src:url(//at.alicdn.com/t/font_1428652832_452522.eot);src:url(//at.alicdn.com/t/font_1428652832_452522.eot?#iefix) format('embedded-opentype'),url(//at.alicdn.com/t/font_1428652832_452522.woff) format('woff'),url(//at.alicdn.com/t/font_1428652832_452522.ttf) format('truetype'),url(//at.alicdn.com/t/font_1428652832_452522.svg#iconfont) format('svg')}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}.qrcode-login{z-index:1;padding-top:20px}.qrcode-desc{text-align:center;padding-bottom:10px}.qrcode-main{position:relative;padding-bottom:15px;min-height:130px;_height:130px}.qrcode-img{width:115px;height:115px;margin:0 auto;padding:7px;box-shadow:0 0 8px #DDD}.qrcode-msg{margin-top:40px}.qrcode-msg h6{font-size:14px;color:#333;margin-top:15px;font-weight:700;text-align:center}.qrcode-msg p{margin-top:10px;text-align:center}.msg-err i,.msg-ok i{display:inline-block;_display:inline;font-size:32px;line-height:32px;margin:0 auto;text-align:center}.msg-ok i{color:#b5e163}.msg-err i{color:#f37c75}.qrcode-login .refresh{width:250px;text-align:center;font-size:16px;border-radius:3px;cursor:pointer;zoom:1}.qrcode-login .refresh:hover{color:#fff;text-decoration:none}.qrcode-login .qrcode-msg,.qrcode-login-error .qrcode-msg .msg-err,.qrcode-login-error .qrcode-msg .msg-ok{display:none}.qrcode-login-error .qrcode-msg,.qrcode-login-error .qrcode-msg .msg-err,.qrcode-login-ok .qrcode-msg,.qrcode-login-ok .qrcode-msg .msg-ok{display:block}.qrcode-login-error .qrcode-mod,.qrcode-login-ok .qrcode-mod,.qrcode-login-ok .qrcode-msg .msg-err{display:none}#login-wrap .hd{margin-bottom:20px;overflow:hidden}#login-wrap .hd h2{display:block;float:left;text-align:center;color:#999;font-size:12px;border-bottom:1px solid #dedede;width:50%;padding-bottom:12px;cursor:pointer}.login-static .qrcode-login{display:none}.login-quick .qrcode-login,.login-static #login-form{display:block}.login-quick #login-form{display:none}#login-wrap.login-quick .hd .quick,#login-wrap.login-static .hd .static{border-bottom:1px solid #f40;color:#333}.lang-ar_SA .fm-label,.lang-ar_SA .fm-text{direction:rtl}.icon,.icon-notice,.icon-site{display:inline-block;margin-right:6px;background-image:url(../images/icon.png);background-color:transparent;background-repeat:no-repeat;overflow:hidden;vertical-align:-2px;_vertical-align:-1px}.icon-notice{background-image:url(../images/notice.png)}.icon-info{width:14px;height:14px;background-position:0 -34px}.icon-info-l{width:32px;height:32px;background-position:0 0}.icon-alert{width:14px;height:14px;background-position:-15px -34px}.icon-alert-l{width:32px;height:32px;background-position:-33px 0}.icon-error{width:14px;height:14px;background-position:-30px -34px}.icon-error-l{width:32px;height:32px;background-position:-66px 0}.icon-success{width:14px;height:14px;background-position:-45px -34px}.icon-success-l{width:32px;height:32px;background-position:-99px 0}.icon-what{width:14px;height:14px;margin:0 6px;background-position:-60px -34px;cursor:pointer}.icon-what-l{width:32px;height:32px;margin:0 6px;background-position:-132px 0}.icon-forbid{width:14px;height:14px;background-position:-76px -34px}.icon-forbid-l{width:32px;height:32px;background-position:-165px 0}.icon-wait{width:14px;height:14px;background-position:-91px -34px}.icon-wait-l{width:32px;height:32px;background-position:-198px 0}.icon-site{margin-right:3px;background:url(../images/site.png) no-repeat;vertical-align:middle}.icon-taobao{width:16px;height:16px;background-position:0 0}.icon-alipay{width:16px;height:16px;background-position:0 -99px}.icon-aliyun,.icon-aliyunos{width:16px;height:16px;background-position:0 -19px}.icon-alibaba,.icon-alibabachina,.icon-aliexpress{width:16px;height:16px;background-position:0 -39px}.icon-yahoo{width:16px;height:16px;background-position:0 -60px}.icon-laiwang{width:16px;height:16px;background-position:0 -79px}.icon-facebook{width:16px;height:16px;background-position:0 -320px}
\ No newline at end of file
diff --git a/release/asset/css/mui.min.css b/release/asset/css/mui.min.css
new file mode 100644
index 0000000..b8ea8ef
--- /dev/null
+++ b/release/asset/css/mui.min.css
@@ -0,0 +1,5 @@
+/*!
+ * =====================================================
+ * Mui v3.7.2 (http://dev.dcloud.net.cn/mui)
+ * =====================================================
+ *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{font:inherit;margin:0;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{margin:0 2px;padding:.35em .625em .75em;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}*{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;outline:0;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}body{font-family:'Helvetica Neue',Helvetica,sans-serif;font-size:17px;line-height:21px;color:#000;background-color:#efeff4;-webkit-overflow-scrolling:touch}a{text-decoration:none;color:#007aff}a:active{color:#0062cc}.mui-content{background-color:#efeff4;-webkit-overflow-scrolling:touch}.mui-bar-nav~.mui-content{padding-top:44px}.mui-bar-nav~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{top:44px}.mui-bar-header-secondary~.mui-content{padding-top:88px}.mui-bar-header-secondary~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{top:88px}.mui-bar-footer~.mui-content{padding-bottom:44px}.mui-bar-footer~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:44px}.mui-bar-footer-secondary~.mui-content{padding-bottom:88px}.mui-bar-footer-secondary~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:88px}.mui-bar-tab~.mui-content{padding-bottom:50px}.mui-bar-tab~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:50px}.mui-bar-footer-secondary-tab~.mui-content{padding-bottom:94px}.mui-bar-footer-secondary-tab~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:94px}.mui-content-padded{margin:10px}.mui-inline{display:inline-block;vertical-align:top}.mui-block{display:block!important}.mui-visibility{visibility:visible!important}.mui-hidden{display:none!important}.mui-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mui-ellipsis-2{display:-webkit-box;overflow:hidden;white-space:normal!important;text-overflow:ellipsis;word-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mui-table{display:table;width:100%;table-layout:fixed}.mui-table-cell{position:relative;display:table-cell}.mui-text-left{text-align:left!important}.mui-text-center{text-align:center!important}.mui-text-justify{text-align:justify!important}.mui-text-right{text-align:right!important}.mui-pull-left{float:left}.mui-pull-right{float:right}.mui-list-unstyled{padding-left:0;list-style:none}.mui-list-inline{margin-left:-5px;padding-left:0;list-style:none}.mui-list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.mui-clearfix:after,.mui-clearfix:before{display:table;content:' '}.mui-clearfix:after{clear:both}.mui-bg-primary{background-color:#007aff}.mui-bg-positive{background-color:#4cd964}.mui-bg-negative{background-color:#dd524d}.mui-error{margin:88px 35px;padding:10px;border-radius:6px;background-color:#bbb}.mui-subtitle{font-size:15px}h1,h2,h3,h4,h5,h6{line-height:1;margin-top:5px;margin-bottom:5px}.mui-h1,h1{font-size:36px}.mui-h2,h2{font-size:30px}.mui-h3,h3{font-size:24px}.mui-h4,h4{font-size:18px}.mui-h5,h5{font-size:14px;font-weight:400;color:#8f8f94}.mui-h6,h6{font-size:12px;font-weight:400;color:#8f8f94}p{font-size:14px;margin-top:0;margin-bottom:10px;color:#8f8f94}.mui-row:after,.mui-row:before{display:table;content:' '}.mui-row:after{clear:both}.mui-col-sm-1,.mui-col-sm-10,.mui-col-sm-11,.mui-col-sm-12,.mui-col-sm-2,.mui-col-sm-3,.mui-col-sm-4,.mui-col-sm-5,.mui-col-sm-6,.mui-col-sm-7,.mui-col-sm-8,.mui-col-sm-9,.mui-col-xs-1,.mui-col-xs-10,.mui-col-xs-11,.mui-col-xs-12,.mui-col-xs-2,.mui-col-xs-3,.mui-col-xs-4,.mui-col-xs-5,.mui-col-xs-6,.mui-col-xs-7,.mui-col-xs-8,.mui-col-xs-9{position:relative;min-height:1px}.mui-row>[class*=mui-col-]{float:left}.mui-col-xs-12{width:100%}.mui-col-xs-11{width:91.66666667%}.mui-col-xs-10{width:83.33333333%}.mui-col-xs-9{width:75%}.mui-col-xs-8{width:66.66666667%}.mui-col-xs-7{width:58.33333333%}.mui-col-xs-6{width:50%}.mui-col-xs-5{width:41.66666667%}.mui-col-xs-4{width:33.33333333%}.mui-col-xs-3{width:25%}.mui-col-xs-2{width:16.66666667%}.mui-col-xs-1{width:8.33333333%}@media (min-width:400px){.mui-col-sm-12{width:100%}.mui-col-sm-11{width:91.66666667%}.mui-col-sm-10{width:83.33333333%}.mui-col-sm-9{width:75%}.mui-col-sm-8{width:66.66666667%}.mui-col-sm-7{width:58.33333333%}.mui-col-sm-6{width:50%}.mui-col-sm-5{width:41.66666667%}.mui-col-sm-4{width:33.33333333%}.mui-col-sm-3{width:25%}.mui-col-sm-2{width:16.66666667%}.mui-col-sm-1{width:8.33333333%}}.mui-scroll-wrapper{position:absolute;z-index:2;top:0;bottom:0;left:0;overflow:hidden;width:100%}.mui-scroll{position:absolute;z-index:1;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}.mui-scrollbar{position:absolute;z-index:9998;overflow:hidden;-webkit-transition:500ms;transition:500ms;transform:translateZ(0px);pointer-events:none;opacity:0}.mui-scrollbar-vertical{top:0;right:1px;bottom:2px;width:4px}.mui-scrollbar-vertical .mui-scrollbar-indicator{width:100%}.mui-scrollbar-horizontal{right:2px;bottom:0;left:2px;height:4px}.mui-scrollbar-horizontal .mui-scrollbar-indicator{height:100%}.mui-scrollbar-indicator{position:absolute;display:block;box-sizing:border-box;-webkit-transition:.01s cubic-bezier(.1,.57,.1,1);transition:.01s cubic-bezier(.1,.57,.1,1);transform:translate(0px,0) translateZ(0px);border:1px solid rgba(255,255,255,.80196);border-radius:2px;background:rgba(0,0,0,.39804)}.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll-wrapper,.mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll-wrapper{position:absolute;top:0;bottom:0;left:0;overflow:hidden;width:100%}.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll,.mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll{position:absolute;width:100%}.mui-plus-pullrefresh .mui-scroll-wrapper,.mui-plus-pullrefresh .mui-slider-group{position:static;top:auto;bottom:auto;left:auto;overflow:auto;width:auto}.mui-plus-pullrefresh .mui-slider-group{overflow:visible}.mui-plus-pullrefresh .mui-scroll{position:static;width:auto}.mui-off-canvas-wrap .mui-bar{position:absolute!important;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-box-shadow:none;box-shadow:none}.mui-off-canvas-wrap{position:relative;z-index:1;overflow:hidden;width:100%;height:100%}.mui-off-canvas-wrap .mui-inner-wrap{position:relative;z-index:1;width:100%;height:100%}.mui-off-canvas-wrap .mui-inner-wrap.mui-transitioning{-webkit-transition:-webkit-transform 350ms;transition:transform 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-left{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-right{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mui-off-canvas-wrap.mui-active{overflow:hidden;height:100%}.mui-off-canvas-wrap.mui-active .mui-off-canvas-backdrop{position:absolute;z-index:998;top:0;right:0;bottom:0;left:0;display:block;transition:background 350ms cubic-bezier(.165,.84,.44,1);background:rgba(0,0,0,.4);box-shadow:-4px 0 4px rgba(0,0,0,.5),4px 0 4px rgba(0,0,0,.5);-webkit-tap-highlight-color:transparent}.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-right{z-index:10000!important;-webkit-transform:translate3d(100%,0,0)}.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-left{z-index:10000!important;-webkit-transform:translate3d(-100%,0,0)}.mui-off-canvas-left,.mui-off-canvas-right{position:absolute;z-index:-1;top:0;bottom:0;visibility:hidden;box-sizing:content-box;width:70%;min-height:100%;background:#333;-webkit-overflow-scrolling:touch}.mui-off-canvas-left.mui-transitioning,.mui-off-canvas-right.mui-transitioning{-webkit-transition:-webkit-transform 350ms cubic-bezier(.165,.84,.44,1);transition:transform 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-left{left:0}.mui-off-canvas-right{right:0}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable{background-color:#333}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right{width:80%;-webkit-transform:scale(.8);transform:scale(.8);opacity:.1}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left.mui-transitioning,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right.mui-transitioning{-webkit-transition:-webkit-transform 350ms cubic-bezier(.165,.84,.44,1),opacity 350ms cubic-bezier(.165,.84,.44,1);transition:transform 350ms cubic-bezier(.165,.84,.44,1),opacity 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left{-webkit-transform-origin:-100%;transform-origin:-100%}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right{-webkit-transform-origin:200%;transform-origin:200%}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-inner-wrap{-webkit-transform:scale(.8);transform:scale(.8)}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-off-canvas-left,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-off-canvas-right{-webkit-transform:scale(1);transform:scale(1);opacity:1}.mui-loading .mui-spinner{display:block;margin:0 auto}.mui-spinner{display:inline-block;width:24px;height:24px;-webkit-transform-origin:50%;transform-origin:50%;-webkit-animation:spinner-spin 1s step-end infinite;animation:spinner-spin 1s step-end infinite}.mui-spinner:after{display:block;width:100%;height:100%;content:'';background-image:url('data:image/svg+xml;charset=utf-8, ');background-repeat:no-repeat;background-position:50%;background-size:100%}.mui-spinner-white:after{background-image:url('data:image/svg+xml;charset=utf-8, ')}@-webkit-keyframes spinner-spin{0%{-webkit-transform:rotate(0deg)}8.33333333%{-webkit-transform:rotate(30deg)}16.66666667%{-webkit-transform:rotate(60deg)}25%{-webkit-transform:rotate(90deg)}33.33333333%{-webkit-transform:rotate(120deg)}41.66666667%{-webkit-transform:rotate(150deg)}50%{-webkit-transform:rotate(180deg)}58.33333333%{-webkit-transform:rotate(210deg)}66.66666667%{-webkit-transform:rotate(240deg)}75%{-webkit-transform:rotate(270deg)}83.33333333%{-webkit-transform:rotate(300deg)}91.66666667%{-webkit-transform:rotate(330deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes spinner-spin{0%{transform:rotate(0deg)}8.33333333%{transform:rotate(30deg)}16.66666667%{transform:rotate(60deg)}25%{transform:rotate(90deg)}33.33333333%{transform:rotate(120deg)}41.66666667%{transform:rotate(150deg)}50%{transform:rotate(180deg)}58.33333333%{transform:rotate(210deg)}66.66666667%{transform:rotate(240deg)}75%{transform:rotate(270deg)}83.33333333%{transform:rotate(300deg)}91.66666667%{transform:rotate(330deg)}100%{transform:rotate(360deg)}}.mui-btn,button,input[type=button],input[type=reset],input[type=submit]{font-size:14px;font-weight:400;line-height:1.42;position:relative;display:inline-block;margin-bottom:0;padding:6px 12px;cursor:pointer;-webkit-transition:all;transition:all;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transition-duration:.2s;transition-duration:.2s;text-align:center;vertical-align:top;white-space:nowrap;color:#333;border:1px solid #ccc;border-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;background-color:#fff;background-clip:padding-box}.mui-btn.mui-active:enabled,.mui-btn:enabled:active,button.mui-active:enabled,button:enabled:active,input[type=button].mui-active:enabled,input[type=button]:enabled:active,input[type=reset].mui-active:enabled,input[type=reset]:enabled:active,input[type=submit].mui-active:enabled,input[type=submit]:enabled:active{color:#fff;background-color:#929292}.mui-btn.mui-disabled,.mui-btn:disabled,button.mui-disabled,button:disabled,input[type=button].mui-disabled,input[type=button]:disabled,input[type=reset].mui-disabled,input[type=reset]:disabled,input[type=submit].mui-disabled,input[type=submit]:disabled{opacity:.6}.mui-btn-blue,.mui-btn-primary,input[type=submit]{color:#fff;border:1px solid #007aff;background-color:#007aff}.mui-btn-blue.mui-active:enabled,.mui-btn-blue:enabled:active,.mui-btn-primary.mui-active:enabled,.mui-btn-primary:enabled:active,input[type=submit].mui-active:enabled,input[type=submit]:enabled:active{color:#fff;border:1px solid #0062cc;background-color:#0062cc}.mui-btn-green,.mui-btn-positive,.mui-btn-success{color:#fff;border:1px solid #4cd964;background-color:#4cd964}.mui-btn-green.mui-active:enabled,.mui-btn-green:enabled:active,.mui-btn-positive.mui-active:enabled,.mui-btn-positive:enabled:active,.mui-btn-success.mui-active:enabled,.mui-btn-success:enabled:active{color:#fff;border:1px solid #2ac845;background-color:#2ac845}.mui-btn-warning,.mui-btn-yellow{color:#fff;border:1px solid #f0ad4e;background-color:#f0ad4e}.mui-btn-warning.mui-active:enabled,.mui-btn-warning:enabled:active,.mui-btn-yellow.mui-active:enabled,.mui-btn-yellow:enabled:active{color:#fff;border:1px solid #ec971f;background-color:#ec971f}.mui-btn-danger,.mui-btn-negative,.mui-btn-red{color:#fff;border:1px solid #dd524d;background-color:#dd524d}.mui-btn-danger.mui-active:enabled,.mui-btn-danger:enabled:active,.mui-btn-negative.mui-active:enabled,.mui-btn-negative:enabled:active,.mui-btn-red.mui-active:enabled,.mui-btn-red:enabled:active{color:#fff;border:1px solid #cf2d28;background-color:#cf2d28}.mui-btn-purple,.mui-btn-royal{color:#fff;border:1px solid #8a6de9;background-color:#8a6de9}.mui-btn-purple.mui-active:enabled,.mui-btn-purple:enabled:active,.mui-btn-royal.mui-active:enabled,.mui-btn-royal:enabled:active{color:#fff;border:1px solid #6641e2;background-color:#6641e2}.mui-btn-grey{color:#fff;border:1px solid #c7c7cc;background-color:#c7c7cc}.mui-btn-grey.mui-active:enabled,.mui-btn-grey:enabled:active{color:#fff;border:1px solid #acacb4;background-color:#acacb4}.mui-btn-outlined{background-color:transparent}.mui-btn-outlined.mui-btn-blue,.mui-btn-outlined.mui-btn-primary{color:#007aff}.mui-btn-outlined.mui-btn-green,.mui-btn-outlined.mui-btn-positive,.mui-btn-outlined.mui-btn-success{color:#4cd964}.mui-btn-outlined.mui-btn-warning,.mui-btn-outlined.mui-btn-yellow{color:#f0ad4e}.mui-btn-outlined.mui-btn-danger,.mui-btn-outlined.mui-btn-negative,.mui-btn-outlined.mui-btn-red{color:#dd524d}.mui-btn-outlined.mui-btn-purple,.mui-btn-outlined.mui-btn-royal{color:#8a6de9}.mui-btn-outlined.mui-btn-blue:enabled:active,.mui-btn-outlined.mui-btn-danger:enabled:active,.mui-btn-outlined.mui-btn-green:enabled:active,.mui-btn-outlined.mui-btn-negative:enabled:active,.mui-btn-outlined.mui-btn-positive:enabled:active,.mui-btn-outlined.mui-btn-primary:enabled:active,.mui-btn-outlined.mui-btn-purple:enabled:active,.mui-btn-outlined.mui-btn-red:enabled:active,.mui-btn-outlined.mui-btn-royal:enabled:active,.mui-btn-outlined.mui-btn-success:enabled:active,.mui-btn-outlined.mui-btn-warning:enabled:active,.mui-btn-outlined.mui-btn-yellow:enabled:active{color:#fff}.mui-btn-link{padding-top:6px;padding-bottom:6px;color:#007aff;border:0;background-color:transparent}.mui-btn-link.mui-active:enabled,.mui-btn-link:enabled:active{color:#0062cc;background-color:transparent}.mui-btn-block{font-size:18px;display:block;width:100%;margin-bottom:10px;padding:15px 0}.mui-btn .mui-badge{font-size:14px;margin:-2px -4px -2px 4px;background-color:rgba(0,0,0,.15)}.mui-btn .mui-badge-inverted,.mui-btn:enabled:active .mui-badge-inverted{background-color:transparent}.mui-btn-negative:enabled:active .mui-badge-inverted,.mui-btn-positive:enabled:active .mui-badge-inverted,.mui-btn-primary:enabled:active .mui-badge-inverted{color:#fff}.mui-btn-block .mui-badge{position:absolute;right:0;margin-right:10px}.mui-btn .mui-icon{font-size:inherit}.mui-btn.mui-icon{font-size:14px;line-height:1.42}.mui-btn.mui-fab{width:56px;height:56px;padding:16px;border-radius:50%;outline:0}.mui-btn.mui-fab.mui-btn-mini{width:40px;height:40px;padding:8px}.mui-btn.mui-fab .mui-icon{font-size:24px;line-height:24px;width:24px;height:24px}.mui-btn .mui-spinner{width:14px;height:14px;vertical-align:text-bottom}.mui-btn-block .mui-spinner{width:22px;height:22px}.mui-bar{position:fixed;z-index:10;right:0;left:0;height:44px;padding-right:10px;padding-left:10px;border-bottom:0;background-color:#f7f7f7;-webkit-box-shadow:0 0 1px rgba(0,0,0,.85);box-shadow:0 0 1px rgba(0,0,0,.85);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mui-bar .mui-title{right:40px;left:40px;display:inline-block;overflow:hidden;width:auto;margin:0;text-overflow:ellipsis}.mui-bar .mui-backdrop{background:0 0}.mui-bar-header-secondary{top:44px}.mui-bar-footer{bottom:0}.mui-bar-footer-secondary{bottom:44px}.mui-bar-footer-secondary-tab{bottom:50px}.mui-bar-footer,.mui-bar-footer-secondary,.mui-bar-footer-secondary-tab{border-top:0}.mui-bar-transparent{top:0;background-color:rgba(247,247,247,0);-webkit-box-shadow:none;box-shadow:none}.mui-bar-nav{top:0;-webkit-box-shadow:0 1px 6px #ccc;box-shadow:0 1px 6px #ccc}.mui-bar-nav~.mui-content .mui-anchor{display:block;visibility:hidden;height:45px;margin-top:-45px}.mui-bar-nav.mui-bar .mui-icon{margin-right:-10px;margin-left:-10px;padding-right:10px;padding-left:10px}.mui-title{font-size:17px;font-weight:500;line-height:44px;position:absolute;display:block;width:100%;margin:0 -10px;padding:0;text-align:center;white-space:nowrap;color:#000}.mui-title a{color:inherit}.mui-bar-tab{bottom:0;display:table;width:100%;height:50px;padding:0;table-layout:fixed;border-top:0;border-bottom:0;-webkit-touch-callout:none}.mui-bar-tab .mui-tab-item{display:table-cell;overflow:hidden;width:1%;height:50px;text-align:center;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;color:#929292}.mui-bar-tab .mui-tab-item.mui-active{color:#007aff}.mui-bar-tab .mui-tab-item .mui-icon{top:3px;width:24px;height:24px;padding-top:0;padding-bottom:0}.mui-bar-tab .mui-tab-item .mui-icon~.mui-tab-label{font-size:11px;display:block;overflow:hidden;text-overflow:ellipsis}.mui-bar-tab .mui-tab-item .mui-icon:active{background:0 0}.mui-focusin>.mui-bar-header-secondary,.mui-focusin>.mui-bar-nav{position:absolute}.mui-focusin>.mui-bar~.mui-content{padding-bottom:0}.mui-bar .mui-btn{font-weight:400;position:relative;z-index:20;top:7px;margin-top:0;padding:6px 12px 7px}.mui-bar .mui-btn.mui-pull-right{margin-left:10px}.mui-bar .mui-btn.mui-pull-left{margin-right:10px}.mui-bar .mui-btn-link{font-size:16px;line-height:44px;top:0;padding:0;color:#007aff;border:0}.mui-bar .mui-btn-link.mui-active,.mui-bar .mui-btn-link:active{color:#0062cc}.mui-bar .mui-btn-block{font-size:16px;top:6px;margin-bottom:0;padding:5px 0}.mui-bar .mui-btn-nav.mui-pull-left{margin-left:-5px}.mui-bar .mui-btn-nav.mui-pull-left .mui-icon-left-nav{margin-right:-3px}.mui-bar .mui-btn-nav.mui-pull-right{margin-right:-5px}.mui-bar .mui-btn-nav.mui-pull-right .mui-icon-right-nav{margin-left:-3px}.mui-bar .mui-btn-nav:active{opacity:.3}.mui-bar .mui-icon{font-size:24px;position:relative;z-index:20;padding-top:10px;padding-bottom:10px}.mui-bar .mui-icon:active{opacity:.3}.mui-bar .mui-btn .mui-icon{top:1px;margin:0;padding:0}.mui-bar .mui-title .mui-icon{margin:0;padding:0}.mui-bar .mui-title .mui-icon.mui-icon-caret{top:4px;margin-left:-5px}.mui-bar input[type=search]{height:29px;margin:6px 0}.mui-bar .mui-input-row .mui-btn{padding:12px 10px}.mui-bar .mui-search:before{margin-top:-10px}.mui-bar .mui-input-row .mui-input-clear~.mui-icon-clear,.mui-bar .mui-input-row .mui-input-speech~.mui-icon-speech{top:0;right:12px}.mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-clear~.mui-icon-clear,.mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-speech~.mui-icon-speech{top:0;right:0}.mui-bar .mui-segmented-control{top:7px;width:auto;margin:0 auto}.mui-bar.mui-bar-header-secondary .mui-segmented-control{top:0}.mui-badge{font-size:12px;line-height:1;display:inline-block;padding:3px 6px;color:#333;border-radius:100px;background-color:rgba(0,0,0,.15)}.mui-badge.mui-badge-inverted{padding:0 5px 0 0;color:#929292;background-color:transparent}.mui-badge-blue,.mui-badge-primary{color:#fff;background-color:#007aff}.mui-badge-blue.mui-badge-inverted,.mui-badge-primary.mui-badge-inverted{color:#007aff;background-color:transparent}.mui-badge-green,.mui-badge-success{color:#fff;background-color:#4cd964}.mui-badge-green.mui-badge-inverted,.mui-badge-success.mui-badge-inverted{color:#4cd964;background-color:transparent}.mui-badge-warning,.mui-badge-yellow{color:#fff;background-color:#f0ad4e}.mui-badge-warning.mui-badge-inverted,.mui-badge-yellow.mui-badge-inverted{color:#f0ad4e;background-color:transparent}.mui-badge-danger,.mui-badge-red{color:#fff;background-color:#dd524d}.mui-badge-danger.mui-badge-inverted,.mui-badge-red.mui-badge-inverted{color:#dd524d;background-color:transparent}.mui-badge-purple,.mui-badge-royal{color:#fff;background-color:#8a6de9}.mui-badge-purple.mui-badge-inverted,.mui-badge-royal.mui-badge-inverted{color:#8a6de9;background-color:transparent}.mui-icon .mui-badge{font-size:10px;line-height:1.4;position:absolute;top:-2px;left:100%;margin-left:-10px;padding:1px 5px;color:#fff;background:red}.mui-card{font-size:14px;position:relative;overflow:hidden;margin:10px;border-radius:2px;background-color:#fff;background-clip:padding-box;box-shadow:0 1px 2px rgba(0,0,0,.3)}.mui-content>.mui-card:first-child{margin-top:15px}.mui-card .mui-input-group .mui-input-row:last-child:after,.mui-card .mui-input-group .mui-input-row:last-child:before,.mui-card .mui-input-group:after,.mui-card .mui-input-group:before{height:0}.mui-card .mui-table-view{margin-bottom:0;border-top:0;border-bottom:0;border-radius:6px}.mui-card .mui-table-view .mui-table-view-cell:first-child,.mui-card .mui-table-view .mui-table-view-divider:first-child{top:0;border-top-left-radius:6px;border-top-right-radius:6px}.mui-card .mui-table-view .mui-table-view-cell:last-child,.mui-card .mui-table-view .mui-table-view-divider:last-child{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.mui-card .mui-table-view:after,.mui-card .mui-table-view:before,.mui-card>.mui-table-view>.mui-table-view-cell:last-child:after,.mui-card>.mui-table-view>.mui-table-view-cell:last-child:before{height:0}.mui-card-footer,.mui-card-header{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;min-height:44px;padding:10px 15px;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-card-footer .mui-card-link,.mui-card-header .mui-card-link{line-height:44px;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:44px;margin-top:-10px;margin-bottom:-10px;-webkit-transition-duration:.3s;transition-duration:.3s;text-decoration:none;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-card-footer:before,.mui-card-header:after{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-card-header{font-size:17px;border-radius:2px 2px 0 0}.mui-card-header:after{top:auto;bottom:0}.mui-card-header>img:first-child{font-size:0;line-height:0;float:left;width:34px;height:34px}.mui-card-footer{color:#6d6d72;border-radius:0 0 2px 2px}.mui-card-content{font-size:14px;position:relative}.mui-card-content-inner{position:relative;padding:15px}.mui-card-media{vertical-align:bottom;color:#fff;background-position:center;background-size:cover}.mui-card-header.mui-card-media{display:block;padding:10px}.mui-card-header.mui-card-media .mui-media-body{font-size:14px;font-weight:500;line-height:17px;margin-bottom:0;margin-left:44px;color:#333}.mui-card-header.mui-card-media .mui-media-body p{font-size:13px;margin-bottom:0}.mui-table-view{position:relative;margin-top:0;margin-bottom:0;padding-left:0;list-style:none;background-color:#fff}.mui-table-view:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view:before{position:absolute;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc;top:-1px}.mui-table-view-icon .mui-table-view-cell .mui-navigate-right .mui-icon{font-size:20px;margin-top:-1px;margin-right:5px;margin-left:-5px}.mui-table-view-icon .mui-table-view-cell:after{left:40px}.mui-table-view-chevron .mui-table-view-cell{padding-right:65px}.mui-table-view-chevron .mui-table-view-cell>a:not(.mui-btn){margin-right:-65px}.mui-table-view-radio .mui-table-view-cell{padding-right:65px}.mui-table-view-radio .mui-table-view-cell>a:not(.mui-btn){margin-right:-65px}.mui-table-view-radio .mui-table-view-cell .mui-navigate-right:after{font-size:30px;font-weight:600;right:9px;content:'';color:#007aff}.mui-table-view-radio .mui-table-view-cell.mui-selected .mui-navigate-right:after{content:'\e472'}.mui-table-view-inverted{color:#fff;background:#333}.mui-table-view-inverted:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted .mui-table-view-cell.mui-active,.mui-table-view-inverted .mui-table-view-cell>a:not(.mui-btn).mui-active{background-color:#242424}.mui-table-view-cell{position:relative;overflow:hidden;padding:11px 15px;-webkit-touch-callout:none}.mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view-cell.mui-checkbox input[type=checkbox],.mui-table-view-cell.mui-radio input[type=radio]{top:8px}.mui-table-view-cell.mui-checkbox.mui-left,.mui-table-view-cell.mui-radio.mui-left{padding-left:58px}.mui-table-view-cell.mui-active{background-color:#eee}.mui-table-view-cell:last-child:after,.mui-table-view-cell:last-child:before{height:0}.mui-table-view-cell>a:not(.mui-btn){position:relative;display:block;overflow:hidden;margin:-11px -15px;padding:inherit;white-space:nowrap;text-overflow:ellipsis;color:inherit}.mui-table-view-cell>a:not(.mui-btn).mui-active{background-color:#eee}.mui-table-view-cell p{margin-bottom:0}.mui-table-view-cell.mui-transitioning>.mui-slider-handle,.mui-table-view-cell.mui-transitioning>.mui-slider-left .mui-btn,.mui-table-view-cell.mui-transitioning>.mui-slider-right .mui-btn{-webkit-transition:-webkit-transform 300ms ease;transition:transform 300ms ease}.mui-table-view-cell.mui-active>.mui-slider-handle{background-color:#eee}.mui-table-view-cell>.mui-slider-handle{position:relative;background-color:#fff}.mui-table-view-cell>.mui-slider-handle .mui-navigate-right:after,.mui-table-view-cell>.mui-slider-handle.mui-navigate-right:after{right:0}.mui-table-view-cell>.mui-slider-handle,.mui-table-view-cell>.mui-slider-left .mui-btn,.mui-table-view-cell>.mui-slider-right .mui-btn{-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease}.mui-table-view-cell>.mui-slider-left,.mui-table-view-cell>.mui-slider-right{position:absolute;top:0;display:-webkit-box;display:-webkit-flex;display:flex;height:100%}.mui-table-view-cell>.mui-slider-left>.mui-btn,.mui-table-view-cell>.mui-slider-right>.mui-btn{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:flex;padding:0 30px;color:#fff;border:0;border-radius:0;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-table-view-cell>.mui-slider-left>.mui-btn:after,.mui-table-view-cell>.mui-slider-right>.mui-btn:after{position:absolute;z-index:-1;top:0;width:600%;height:100%;content:'';background:inherit}.mui-table-view-cell>.mui-slider-left>.mui-btn.mui-icon,.mui-table-view-cell>.mui-slider-right>.mui-btn.mui-icon{font-size:30px}.mui-table-view-cell>.mui-slider-right{right:0;-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease;-webkit-transform:translateX(100%);transform:translateX(100%)}.mui-table-view-cell>.mui-slider-left{left:0;-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.mui-table-view-cell>.mui-slider-left>.mui-btn:after{right:100%;margin-right:-1px}.mui-table-view-divider{font-weight:500;position:relative;margin-top:-1px;margin-left:0;padding-top:6px;padding-bottom:6px;padding-left:15px;color:#999;background-color:#fafafa}.mui-table-view-divider:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view-divider:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view .mui-media,.mui-table-view .mui-media-body{overflow:hidden}.mui-table-view .mui-media-large .mui-media-object{line-height:80px;max-width:80px;height:80px}.mui-table-view .mui-media .mui-subtitle{color:#000}.mui-table-view .mui-media-object{line-height:42px;max-width:42px;height:42px}.mui-table-view .mui-media-object.mui-pull-left{margin-right:10px}.mui-table-view .mui-media-object.mui-pull-right{margin-left:10px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object{line-height:29px;max-width:29px;height:29px;margin:-4px 0}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object img{line-height:29px;max-width:29px;height:29px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object.mui-pull-left{margin-right:10px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object .mui-icon{font-size:29px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-body:after{position:absolute;right:0;bottom:0;left:55px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view .mui-table-view-cell.mui-media-icon:after{height:0!important}.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view{display:block}.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:after,.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:before{height:0!important}.mui-table-view.mui-unfold .mui-table-view-cell.mui-media-icon.mui-collapse .mui-media-body:after{position:absolute;right:0;bottom:0;left:70px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view-cell>.mui-badge,.mui-table-view-cell>.mui-btn,.mui-table-view-cell>.mui-switch,.mui-table-view-cell>a>.mui-badge,.mui-table-view-cell>a>.mui-btn,.mui-table-view-cell>a>.mui-switch{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mui-table-view-cell .mui-navigate-right>.mui-badge,.mui-table-view-cell .mui-navigate-right>.mui-btn,.mui-table-view-cell .mui-navigate-right>.mui-switch,.mui-table-view-cell .mui-push-left>.mui-badge,.mui-table-view-cell .mui-push-left>.mui-btn,.mui-table-view-cell .mui-push-left>.mui-switch,.mui-table-view-cell .mui-push-right>.mui-badge,.mui-table-view-cell .mui-push-right>.mui-btn,.mui-table-view-cell .mui-push-right>.mui-switch,.mui-table-view-cell>a .mui-navigate-right>.mui-badge,.mui-table-view-cell>a .mui-navigate-right>.mui-btn,.mui-table-view-cell>a .mui-navigate-right>.mui-switch,.mui-table-view-cell>a .mui-push-left>.mui-badge,.mui-table-view-cell>a .mui-push-left>.mui-btn,.mui-table-view-cell>a .mui-push-left>.mui-switch,.mui-table-view-cell>a .mui-push-right>.mui-badge,.mui-table-view-cell>a .mui-push-right>.mui-btn,.mui-table-view-cell>a .mui-push-right>.mui-switch{right:35px}.mui-content>.mui-table-view:first-child{margin-top:15px}.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:last-child:after,.mui-table-view-cell.mui-collapse .mui-table-view:after,.mui-table-view-cell.mui-collapse .mui-table-view:before{height:0}.mui-table-view-cell.mui-collapse>.mui-navigate-right:after,.mui-table-view-cell.mui-collapse>.mui-push-right:after{content:'\e581'}.mui-table-view-cell.mui-collapse.mui-active{margin-top:-1px}.mui-table-view-cell.mui-collapse.mui-active .mui-collapse-content,.mui-table-view-cell.mui-collapse.mui-active .mui-table-view{display:block}.mui-table-view-cell.mui-collapse.mui-active>.mui-navigate-right:after,.mui-table-view-cell.mui-collapse.mui-active>.mui-push-right:after{content:'\e580'}.mui-table-view-cell.mui-collapse.mui-active .mui-table-view-cell>a:not(.mui-btn).mui-active{margin-left:-31px;padding-left:47px}.mui-table-view-cell.mui-collapse .mui-collapse-content{position:relative;display:none;overflow:hidden;margin:11px -15px -11px;padding:8px 15px;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease;background:#fff}.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-input-group,.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-slider{width:auto;height:auto;margin:-8px -15px}.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-slider{margin:-8px -16px}.mui-table-view-cell.mui-collapse .mui-table-view{display:none;margin-top:11px;margin-right:-15px;margin-bottom:-11px;margin-left:-15px;border:0}.mui-table-view-cell.mui-collapse .mui-table-view.mui-table-view-chevron{margin-right:-65px}.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell{padding-left:31px;background-position:31px 100%}.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:30px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view.mui-grid-view{font-size:0;display:block;width:100%;padding:0 10px 10px 0;white-space:normal}.mui-table-view.mui-grid-view .mui-table-view-cell{font-size:17px;display:inline-block;margin-right:-4px;padding:10px 0 0 14px;text-align:center;vertical-align:middle;background:0 0}.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-object{width:100%;max-width:100%;height:auto}.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn){margin:-10px 0 0 -14px}.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn).mui-active,.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn):active{background:0 0}.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-body{font-size:15px;line-height:15px;display:block;width:100%;height:15px;margin-top:8px;text-overflow:ellipsis;color:#333}.mui-table-view.mui-grid-view .mui-table-view-cell:after,.mui-table-view.mui-grid-view .mui-table-view-cell:before{height:0}.mui-grid-view.mui-grid-9{margin:0;padding:0;border-top:1px solid #eee;border-left:1px solid #eee;background-color:#f2f2f2}.mui-grid-view.mui-grid-9:after,.mui-grid-view.mui-grid-9:before{display:table;content:' '}.mui-grid-view.mui-grid-9:after{clear:both;position:static}.mui-grid-view.mui-grid-9 .mui-table-view-cell{margin:0;padding:11px 15px;vertical-align:top;border-right:1px solid #eee;border-bottom:1px solid #eee}.mui-grid-view.mui-grid-9 .mui-table-view-cell.mui-active{background-color:#eee}.mui-grid-view.mui-grid-9 .mui-table-view-cell>a:not(.mui-btn){margin:0;padding:10px 0}.mui-grid-view.mui-grid-9:before{height:0}.mui-grid-view.mui-grid-9 .mui-media{color:#797979}.mui-grid-view.mui-grid-9 .mui-media .mui-icon{font-size:2.4em;position:relative}.mui-slider-cell{position:relative}.mui-slider-cell>.mui-slider-handle{z-index:1}.mui-slider-cell>.mui-slider-left,.mui-slider-cell>.mui-slider-right{position:absolute;z-index:0;top:0;bottom:0}.mui-slider-cell>.mui-slider-left{left:0}.mui-slider-cell>.mui-slider-right{right:0}input,select,textarea{font-family:'Helvetica Neue',Helvetica,sans-serif;font-size:17px;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}input:focus,select:focus,textarea:focus{-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent;-webkit-user-modify:read-write-plaintext-only}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{line-height:21px;width:100%;height:40px;margin-bottom:15px;padding:10px 15px;-webkit-user-select:text;border:1px solid rgba(0,0,0,.2);border-radius:3px;outline:0;background-color:#fff;-webkit-appearance:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}input[type=search]{font-size:16px;-webkit-box-sizing:border-box;box-sizing:border-box;height:34px;text-align:center;border:0;border-radius:6px;background-color:rgba(0,0,0,.1)}input[type=search]:focus{text-align:left}textarea{height:auto;resize:none}select{font-size:14px;height:auto;margin-top:1px;border:0!important;background-color:#fff}select:focus{-webkit-user-modify:read-only}.mui-input-group{position:relative;padding:0;border:0;background-color:#fff}.mui-input-group:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-group:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-group input,.mui-input-group textarea{margin-bottom:0;border:0;border-radius:0;background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.mui-input-group input[type=search]{background:0 0}.mui-input-group input:last-child{background-image:none}.mui-input-row{clear:left;overflow:hidden}.mui-input-row select{font-size:17px;height:37px;padding:0}.mui-input-row .mui-btn+input,.mui-input-row label+input,.mui-input-row:last-child{background:0 0}.mui-input-group .mui-input-row{height:40px}.mui-input-group .mui-input-row:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-row label{font-family:'Helvetica Neue',Helvetica,sans-serif;line-height:1.1;float:left;width:35%;padding:11px 15px}.mui-input-row label~input,.mui-input-row label~select,.mui-input-row label~textarea{float:right;width:65%;margin-bottom:0;padding-left:0;border:0}.mui-input-row .mui-btn{line-height:1.1;float:right;width:15%;padding:10px 15px}.mui-input-row .mui-btn~input,.mui-input-row .mui-btn~select,.mui-input-row .mui-btn~textarea{float:left;width:85%;margin-bottom:0;padding-left:0;border:0}.mui-button-row{position:relative;padding-top:5px;text-align:center}.mui-input-group .mui-button-row{height:45px}.mui-input-row{position:relative}.mui-input-row.mui-input-range{overflow:visible;padding-right:20px}.mui-input-row .mui-inline{padding:8px 0}.mui-input-row .mui-input-clear~.mui-icon-clear,.mui-input-row .mui-input-password~.mui-icon-eye,.mui-input-row .mui-input-speech~.mui-icon-speech{font-size:20px;position:absolute;z-index:1;top:10px;right:0;width:38px;height:38px;text-align:center;color:#999}.mui-input-row .mui-input-clear~.mui-icon-clear.mui-active,.mui-input-row .mui-input-password~.mui-icon-eye.mui-active,.mui-input-row .mui-input-speech~.mui-icon-speech.mui-active{color:#007aff}.mui-input-row .mui-input-speech~.mui-icon-speech{font-size:24px;top:8px}.mui-input-row .mui-input-clear~.mui-icon-clear~.mui-icon-speech{display:none}.mui-input-row .mui-input-clear~.mui-icon-clear.mui-hidden~.mui-icon-speech{display:inline-block}.mui-input-row .mui-icon-speech~.mui-placeholder{right:38px}.mui-input-row.mui-search .mui-icon-clear{top:7px}.mui-input-row.mui-search .mui-icon-speech{top:5px}.mui-checkbox,.mui-radio{position:relative}.mui-checkbox label,.mui-radio label{display:inline-block;float:none;width:100%;padding-right:58px}.mui-checkbox.mui-left input[type=checkbox],.mui-radio.mui-left input[type=radio]{left:20px}.mui-checkbox.mui-left label,.mui-radio.mui-left label{padding-right:15px;padding-left:58px}.mui-checkbox input[type=checkbox],.mui-radio input[type=radio]{position:absolute;top:4px;right:20px;display:inline-block;width:28px;height:26px;border:0;outline:0!important;background-color:transparent;-webkit-appearance:none}.mui-checkbox input[type=checkbox][disabled]:before,.mui-radio input[type=radio][disabled]:before{opacity:.3}.mui-checkbox input[type=checkbox]:before,.mui-radio input[type=radio]:before{font-family:Muiicons;font-size:28px;font-weight:400;line-height:1;text-decoration:none;color:#aaa;border-radius:0;background:0 0;-webkit-font-smoothing:antialiased}.mui-checkbox input[type=checkbox]:checked:before,.mui-radio input[type=radio]:checked:before{color:#007aff}.mui-checkbox label.mui-disabled,.mui-checkbox.mui-disabled label,.mui-radio label.mui-disabled,.mui-radio.mui-disabled label{opacity:.4}.mui-radio input[type=radio]:before{content:'\e411'}.mui-radio input[type=radio]:checked:before{content:'\e441'}.mui-checkbox input[type=checkbox]:before{content:'\e411'}.mui-checkbox input[type=checkbox]:checked:before{content:'\e442'}.mui-select{position:relative}.mui-select:before{font-family:Muiicons;position:absolute;top:8px;right:21px;content:'\e581';color:rgba(170,170,170,.6)}.mui-input-row .mui-switch{float:right;margin-top:5px;margin-right:20px}.mui-input-range input[type=range]{position:relative;width:100%;height:2px;margin:17px 0;padding:0;cursor:pointer;border:0;border-radius:3px;outline:0;background-color:#999;-webkit-appearance:none!important}.mui-input-range input[type=range]::-webkit-slider-thumb{width:28px;height:28px;border-color:#0062cc;border-radius:50%;background-color:#007aff;background-clip:padding-box;-webkit-appearance:none!important}.mui-input-range label~input[type=range]{width:65%}.mui-input-range .mui-tooltip{font-size:36px;line-height:64px;position:absolute;z-index:1;top:-70px;width:64px;height:64px;text-align:center;opacity:.8;color:#333;border:1px solid #ddd;border-radius:6px;background-color:#fff;text-shadow:0 1px 0 #f3f3f3}.mui-search{position:relative}.mui-search input[type=search]{padding-left:30px}.mui-search .mui-placeholder{font-size:16px;line-height:34px;position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:inline-block;height:34px;text-align:center;color:#999;border:0;border-radius:6px;background:0 0}.mui-search .mui-placeholder .mui-icon{font-size:20px;color:#333}.mui-search:before{font-family:Muiicons;font-size:20px;font-weight:400;position:absolute;top:50%;right:50%;display:none;margin-top:-18px;margin-right:31px;content:'\e466'}.mui-search.mui-active:before{font-size:20px;right:auto;left:5px;display:block;margin-right:0}.mui-search.mui-active input[type=search]{text-align:left}.mui-search.mui-active .mui-placeholder{display:none}.mui-segmented-control{font-size:15px;font-weight:400;position:relative;display:table;overflow:hidden;width:100%;table-layout:fixed;border:1px solid #007aff;border-radius:3px;background-color:transparent;-webkit-touch-callout:none}.mui-segmented-control.mui-segmented-control-vertical{border-collapse:collapse;border-width:0;border-radius:0}.mui-segmented-control.mui-segmented-control-vertical .mui-control-item{display:block;border-bottom:1px solid #c8c7cc;border-left-width:0}.mui-segmented-control.mui-scroll-wrapper{height:38px}.mui-segmented-control.mui-scroll-wrapper .mui-scroll{width:auto;height:40px;white-space:nowrap}.mui-segmented-control.mui-scroll-wrapper .mui-control-item{display:inline-block;width:auto;padding:0 20px;border:0}.mui-segmented-control .mui-control-item{line-height:38px;display:table-cell;overflow:hidden;width:1%;-webkit-transition:background-color .1s linear;transition:background-color .1s linear;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:#007aff;border-color:#007aff;border-left:1px solid #007aff}.mui-segmented-control .mui-control-item:first-child{border-left-width:0}.mui-segmented-control .mui-control-item.mui-active{color:#fff;background-color:#007aff}.mui-segmented-control.mui-segmented-control-inverted{width:100%;border:0;border-radius:0}.mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item,.mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item.mui-active{border-bottom:1px solid #c8c7cc}.mui-segmented-control.mui-segmented-control-inverted .mui-control-item{color:inherit;border:0}.mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active{color:#007aff;border-bottom:2px solid #007aff;background:0 0}.mui-segmented-control.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#007aff}.mui-segmented-control-positive{border:1px solid #4cd964}.mui-segmented-control-positive .mui-control-item{color:#4cd964;border-color:inherit}.mui-segmented-control-positive .mui-control-item.mui-active{color:#fff;background-color:#4cd964}.mui-segmented-control-positive.mui-segmented-control-inverted .mui-control-item.mui-active{color:#4cd964;border-bottom:2px solid #4cd964;background:0 0}.mui-segmented-control-positive.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#4cd964}.mui-segmented-control-negative{border:1px solid #dd524d}.mui-segmented-control-negative .mui-control-item{color:#dd524d;border-color:inherit}.mui-segmented-control-negative .mui-control-item.mui-active{color:#fff;background-color:#dd524d}.mui-segmented-control-negative.mui-segmented-control-inverted .mui-control-item.mui-active{color:#dd524d;border-bottom:2px solid #dd524d;background:0 0}.mui-segmented-control-negative.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#dd524d}.mui-control-content{position:relative;display:none}.mui-control-content.mui-active{display:block}.mui-popover{position:absolute;z-index:999;display:none;width:280px;-webkit-transition:opacity .3s;transition:opacity .3s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none;opacity:0;border-radius:7px;background-color:#f7f7f7;-webkit-box-shadow:0 0 15px rgba(0,0,0,.1);box-shadow:0 0 15px rgba(0,0,0,.1)}.mui-popover .mui-popover-arrow{position:absolute;z-index:1000;top:-25px;left:0;overflow:hidden;width:26px;height:26px}.mui-popover .mui-popover-arrow:after{position:absolute;top:19px;left:0;width:26px;height:26px;content:' ';-webkit-transform:rotate(45deg);transform:rotate(45deg);border-radius:3px;background:#f7f7f7}.mui-popover .mui-popover-arrow.mui-bottom{top:100%;left:-26px;margin-top:-1px}.mui-popover .mui-popover-arrow.mui-bottom:after{top:-19px;left:0}.mui-popover.mui-popover-action{bottom:0;width:100%;-webkit-transition:-webkit-transform .3s,opacity .3s;transition:transform .3s,opacity .3s;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);border-radius:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.mui-popover.mui-popover-action .mui-popover-arrow{display:none}.mui-popover.mui-popover-action.mui-popover-bottom{position:fixed}.mui-popover.mui-popover-action.mui-active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.mui-popover.mui-popover-action .mui-table-view{margin:8px;text-align:center;color:#007aff;border-radius:4px}.mui-popover.mui-popover-action .mui-table-view .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-popover.mui-popover-action .mui-table-view small{font-weight:400;line-height:1.3;display:block}.mui-popover.mui-active{display:block;opacity:1}.mui-popover .mui-bar~.mui-table-view{padding-top:44px}.mui-backdrop{position:fixed;z-index:998;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.3)}.mui-bar-backdrop.mui-backdrop{bottom:50px;background:0 0}.mui-backdrop-action.mui-backdrop{background-color:rgba(0,0,0,.3)}.mui-backdrop-action.mui-backdrop,.mui-bar-backdrop.mui-backdrop{opacity:0}.mui-backdrop-action.mui-backdrop.mui-active,.mui-bar-backdrop.mui-backdrop.mui-active{-webkit-transition:all .4s ease;transition:all .4s ease;opacity:1}.mui-popover .mui-btn-block{margin-bottom:5px}.mui-popover .mui-btn-block:last-child{margin-bottom:0}.mui-popover .mui-bar{-webkit-box-shadow:none;box-shadow:none}.mui-popover .mui-bar-nav{border-bottom:1px solid rgba(0,0,0,.15);border-top-left-radius:12px;border-top-right-radius:12px;-webkit-box-shadow:none;box-shadow:none}.mui-popover .mui-scroll-wrapper{margin:7px 0;border-radius:7px;background-clip:padding-box}.mui-popover .mui-scroll .mui-table-view{max-height:none}.mui-popover .mui-table-view{overflow:auto;max-height:300px;margin-bottom:0;border-radius:7px;background-color:#f7f7f7;background-image:none;-webkit-overflow-scrolling:touch}.mui-popover .mui-table-view:after,.mui-popover .mui-table-view:before{height:0}.mui-popover .mui-table-view .mui-table-view-cell:first-child,.mui-popover .mui-table-view .mui-table-view-cell:first-child>a:not(.mui-btn){border-top-left-radius:12px;border-top-right-radius:12px}.mui-popover .mui-table-view .mui-table-view-cell:last-child,.mui-popover .mui-table-view .mui-table-view-cell:last-child>a:not(.mui-btn){border-bottom-right-radius:12px;border-bottom-left-radius:12px}.mui-popover.mui-bar-popover .mui-table-view{width:106px}.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell{padding:11px 15px;background-position:0 100%}.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell>a:not(.mui-btn){margin:-11px -15px -11px -15px}.mui-popup-backdrop{position:fixed;z-index:998;top:0;right:0;bottom:0;left:0;-webkit-transition-duration:400ms;transition-duration:400ms;opacity:0;background:rgba(0,0,0,.4)}.mui-popup-backdrop.mui-active{opacity:1}.mui-popup{position:fixed;z-index:10000;top:50%;left:50%;display:none;overflow:hidden;width:270px;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-transform:translate3d(-50%,-50%,0) scale(1.185);transform:translate3d(-50%,-50%,0) scale(1.185);text-align:center;opacity:0;color:#000;border-radius:13px}.mui-popup.mui-popup-in{display:block;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1);opacity:1}.mui-popup.mui-popup-out{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1);opacity:0}.mui-popup-inner{position:relative;padding:15px;border-radius:13px 13px 0 0;background:rgba(255,255,255,.95)}.mui-popup-inner:after{position:absolute;z-index:15;top:auto;right:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;background-color:rgba(0,0,0,.2)}.mui-popup-title{font-size:18px;font-weight:500;text-align:center}.mui-popup-title+.mui-popup-text{font-family:inherit;font-size:14px;margin:5px 0 0}.mui-popup-buttons{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:44px;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.mui-popup-button{font-size:17px;line-height:44px;position:relative;display:block;overflow:hidden;box-sizing:border-box;width:100%;height:44px;padding:0 5px;cursor:pointer;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:#007aff;background:rgba(255,255,255,.95);-webkit-box-flex:1}.mui-popup-button:after{position:absolute;z-index:15;top:0;right:0;bottom:auto;left:auto;display:block;width:1px;height:100%;content:'';-webkit-transform:scaleX(.5);transform:scaleX(.5);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;background-color:rgba(0,0,0,.2)}.mui-popup-button:first-child{border-radius:0 0 0 13px}.mui-popup-button:first-child:last-child{border-radius:0 0 13px 13px}.mui-popup-button:last-child{border-radius:0 0 13px}.mui-popup-button:last-child:after{display:none}.mui-popup-button.mui-popup-button-bold{font-weight:600}.mui-popup-input input{font-size:14px;width:100%;height:26px;margin:15px 0 0;padding:0 5px;border:1px solid rgba(0,0,0,.3);border-radius:0;background:#fff}.mui-plus.mui-android .mui-popup-backdrop{-webkit-transition-duration:1ms;transition-duration:1ms}.mui-plus.mui-android .mui-popup{-webkit-transition-duration:1ms;transition-duration:1ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1)}.mui-progressbar{position:relative;display:block;overflow:hidden;width:100%;height:2px;-webkit-transform-origin:center top;transform-origin:center top;vertical-align:middle;border-radius:2px;background:#b6b6b6;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.mui-progressbar span{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transition:150ms;transition:150ms;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);background:#007aff}.mui-progressbar.mui-progressbar-infinite:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transform-origin:left center;transform-origin:left center;-webkit-animation:mui-progressbar-infinite 1s linear infinite;animation:mui-progressbar-infinite 1s linear infinite;background:#007aff}body>.mui-progressbar{position:absolute;z-index:10000;top:44px;left:0;border-radius:0}.mui-progressbar-in{-webkit-animation:mui-progressbar-in 300ms forwards;animation:mui-progressbar-in 300ms forwards}.mui-progressbar-out{-webkit-animation:mui-progressbar-out 300ms forwards;animation:mui-progressbar-out 300ms forwards}@-webkit-keyframes mui-progressbar-in{from{-webkit-transform:scaleY(0);opacity:0}to{-webkit-transform:scaleY(1);opacity:1}}@keyframes mui-progressbar-in{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@-webkit-keyframes mui-progressbar-out{from{-webkit-transform:scaleY(1);opacity:1}to{-webkit-transform:scaleY(0);opacity:0}}@keyframes mui-progressbar-out{from{transform:scaleY(1);opacity:1}to{transform:scaleY(0);opacity:0}}@-webkit-keyframes mui-progressbar-infinite{0%{-webkit-transform:translate3d(-50%,0,0) scaleX(.5)}100%{-webkit-transform:translate3d(100%,0,0) scaleX(.5)}}@keyframes mui-progressbar-infinite{0%{transform:translate3d(-50%,0,0) scaleX(.5)}100%{transform:translate3d(100%,0,0) scaleX(.5)}}.mui-pagination{display:inline-block;margin:0 auto;padding-left:0;border-radius:6px}.mui-pagination>li{display:inline}.mui-pagination>li>a,.mui-pagination>li>span{line-height:1.428571429;position:relative;float:left;margin-left:-1px;padding:6px 12px;text-decoration:none;color:#007aff;border:1px solid #ddd;background-color:#fff}.mui-pagination>li:first-child>a,.mui-pagination>li:first-child>span{margin-left:0;border-top-left-radius:6px;border-bottom-left-radius:6px;background-clip:padding-box}.mui-pagination>li:last-child>a,.mui-pagination>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px;background-clip:padding-box}.mui-pagination>li.mui-active>a,.mui-pagination>li.mui-active>a:active,.mui-pagination>li.mui-active>span,.mui-pagination>li.mui-active>span:active,.mui-pagination>li:active>a,.mui-pagination>li:active>a:active,.mui-pagination>li:active>span,.mui-pagination>li:active>span:active{z-index:2;cursor:default;color:#fff;border-color:#007aff;background-color:#007aff}.mui-pagination>li.mui-disabled>a,.mui-pagination>li.mui-disabled>a:active,.mui-pagination>li.mui-disabled>span,.mui-pagination>li.mui-disabled>span:active{opacity:.6;color:#777;border:1px solid #ddd;background-color:#fff}.mui-pagination-lg>li>a,.mui-pagination-lg>li>span{font-size:18px;padding:10px 16px}.mui-pagination-sm>li>a,.mui-pagination-sm>li>span{font-size:12px;padding:5px 10px}.mui-pager{padding-left:0;list-style:none;text-align:center}.mui-pager:after,.mui-pager:before{display:table;content:' '}.mui-pager:after{clear:both}.mui-pager li{display:inline}.mui-pager li>a,.mui-pager li>span{display:inline-block;padding:5px 14px;border:1px solid #ddd;border-radius:6px;background-color:#fff;background-clip:padding-box}.mui-pager li.mui-active>a,.mui-pager li.mui-active>span,.mui-pager li:active>a,.mui-pager li:active>span{cursor:default;text-decoration:none;color:#fff;border-color:#007aff;background-color:#007aff}.mui-pager .mui-next>a,.mui-pager .mui-next>span{float:right}.mui-pager .mui-previous>a,.mui-pager .mui-previous>span{float:left}.mui-pager .mui-disabled>a,.mui-pager .mui-disabled>a:active,.mui-pager .mui-disabled>span,.mui-pager .mui-disabled>span:active{opacity:.6;color:#777;border:1px solid #ddd;background-color:#fff}.mui-modal{position:fixed;z-index:999;top:0;overflow:hidden;width:100%;min-height:100%;-webkit-transition:-webkit-transform .25s,opacity 1ms .25s;transition:transform .25s,opacity 1ms .25s;-webkit-transition-timing-function:cubic-bezier(.1,.5,.1,1);transition-timing-function:cubic-bezier(.1,.5,.1,1);-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);opacity:0;background-color:#fff}.mui-modal.mui-active{height:100%;-webkit-transition:-webkit-transform .25s;transition:transform .25s;-webkit-transition-timing-function:cubic-bezier(.1,.5,.1,1);transition-timing-function:cubic-bezier(.1,.5,.1,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.mui-android .mui-modal .mui-bar{position:static}.mui-android .mui-modal .mui-bar-nav~.mui-content{padding-top:0}.mui-slider{position:relative;z-index:1;overflow:hidden;width:100%}.mui-slider .mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active{border-bottom:0}.mui-slider .mui-segmented-control.mui-segmented-control-inverted~.mui-slider-group .mui-slider-item{border-top:1px solid #c8c7cc;border-bottom:1px solid #c8c7cc}.mui-slider .mui-slider-group{font-size:0;position:relative;-webkit-transition:all 0s linear;transition:all 0s linear;white-space:nowrap}.mui-slider .mui-slider-group .mui-slider-item{font-size:14px;position:relative;display:inline-block;width:100%;height:100%;vertical-align:top;white-space:normal}.mui-slider .mui-slider-group .mui-slider-item>a:not(.mui-control-item){line-height:0;position:relative;display:block}.mui-slider .mui-slider-group .mui-slider-item img{width:100%}.mui-slider .mui-slider-group .mui-slider-item .mui-table-view:after,.mui-slider .mui-slider-group .mui-slider-item .mui-table-view:before{height:0}.mui-slider .mui-slider-group.mui-slider-loop{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}.mui-slider-title{line-height:30px;position:absolute;bottom:0;left:0;width:100%;height:30px;margin:0;text-align:left;text-indent:12px;opacity:.8;background-color:#000}.mui-slider-indicator{position:absolute;bottom:8px;width:100%;text-align:center;background:0 0}.mui-slider-indicator.mui-segmented-control{position:relative;bottom:auto}.mui-slider-indicator .mui-indicator{display:inline-block;width:6px;height:6px;margin:1px 6px;cursor:pointer;border-radius:50%;background:#aaa;-webkit-box-shadow:0 0 1px 1px rgba(130,130,130,.7);box-shadow:0 0 1px 1px rgba(130,130,130,.7)}.mui-slider-indicator .mui-active.mui-indicator{background:#fff}.mui-slider-indicator .mui-icon{font-size:20px;line-height:30px;width:40px;height:30px;margin:3px;text-align:center;border:1px solid #ddd}.mui-slider-indicator .mui-number{line-height:32px;display:inline-block;width:58px}.mui-slider-indicator .mui-number span{color:#ff5053}.mui-slider-progress-bar{z-index:1;height:2px;-webkit-transform:translateZ(0);transform:translateZ(0)}.mui-switch{position:relative;display:block;width:74px;height:30px;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:background-color,border;transition-property:background-color,border;border:2px solid #ddd;border-radius:20px;background-color:#fff;background-clip:padding-box}.mui-switch.mui-disabled{opacity:.3}.mui-switch .mui-switch-handle{position:absolute;z-index:1;top:-1px;left:-1px;width:28px;height:28px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out;-webkit-transition-property:-webkit-transform,width,left;transition-property:transform,width,left;border-radius:16px;background-color:#fff;background-clip:padding-box;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.4);box-shadow:0 2px 5px rgba(0,0,0,.4)}.mui-switch:before{font-size:13px;position:absolute;top:3px;right:11px;content:'Off';text-transform:uppercase;color:#999}.mui-switch.mui-dragging{border-color:#f7f7f7;background-color:#f7f7f7}.mui-switch.mui-dragging .mui-switch-handle{width:38px}.mui-switch.mui-dragging.mui-active .mui-switch-handle{left:-11px;width:38px}.mui-switch.mui-active{border-color:#4cd964;background-color:#4cd964}.mui-switch.mui-active .mui-switch-handle{-webkit-transform:translate(43px,0);transform:translate(43px,0)}.mui-switch.mui-active:before{right:auto;left:15px;content:'On';color:#fff}.mui-switch input[type=checkbox]{display:none}.mui-switch-mini{width:47px}.mui-switch-mini:before{display:none}.mui-switch-mini.mui-active .mui-switch-handle{-webkit-transform:translate(16px,0);transform:translate(16px,0)}.mui-switch-blue.mui-active{border:2px solid #007aff;background-color:#007aff}.mui-content.mui-fade{left:0;opacity:0}.mui-content.mui-fade.mui-in{opacity:1}.mui-content.mui-sliding{z-index:2;-webkit-transition:-webkit-transform .4s;transition:transform .4s;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.mui-content.mui-sliding.mui-left{z-index:1;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.mui-content.mui-sliding.mui-right{z-index:3;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mui-navigate-right:after,.mui-push-left:after,.mui-push-right:after{font-family:Muiicons;font-size:inherit;line-height:1;position:absolute;top:50%;display:inline-block;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-decoration:none;color:#bbb;-webkit-font-smoothing:antialiased}.mui-push-left:after{left:15px;content:'\e582'}.mui-navigate-right:after,.mui-push-right:after{right:15px;content:'\e583'}.mui-pull-bottom-pocket,.mui-pull-top-pocket{position:absolute;left:0;display:block;visibility:hidden;overflow:hidden;width:100%;height:50px}.mui-plus-pullrefresh .mui-pull-bottom-pocket,.mui-plus-pullrefresh .mui-pull-top-pocket{display:none;visibility:visible}.mui-pull-top-pocket{top:0}.mui-bar-nav~.mui-content .mui-pull-top-pocket{top:44px}.mui-bar-nav~.mui-bar-header-secondary~.mui-content .mui-pull-top-pocket{top:88px}.mui-pull-bottom-pocket{position:relative;bottom:0;height:40px}.mui-pull-bottom-pocket .mui-pull-loading{visibility:hidden}.mui-pull-bottom-pocket .mui-pull-loading.mui-in{display:inline-block}.mui-pull{font-weight:700;position:absolute;right:0;bottom:10px;left:0;text-align:center;color:#777}.mui-pull-loading{margin-right:10px;-webkit-transition:-webkit-transform .4s;transition:transform .4s;-webkit-transition-duration:400ms;transition-duration:400ms;vertical-align:middle}.mui-pull-loading.mui-reverse{-webkit-transform:rotate(180deg) translateZ(0);transform:rotate(180deg) translateZ(0)}.mui-pull-caption{font-size:15px;line-height:24px;position:relative;display:inline-block;overflow:visible;margin-top:0;vertical-align:middle}.mui-pull-caption span{display:none}.mui-pull-caption span.mui-in{display:inline}.mui-toast-container{line-height:17px;position:fixed;z-index:9999;bottom:50px;left:50%;-webkit-transition:opacity .3s;transition:opacity .3s;-webkit-transform:translate(-50%,0);transform:translate(-50%,0);opacity:0}.mui-toast-container.mui-active{opacity:.9}.mui-toast-message{font-size:14px;padding:10px 25px;text-align:center;color:#fff;border-radius:6px;background-color:#323232}.mui-numbox{position:relative;display:inline-block;overflow:hidden;width:120px;height:35px;padding:0 40px;vertical-align:top;vertical-align:middle;border:solid 1px #bbb;border-radius:3px;background-color:#efeff4}.mui-numbox [class*=btn-numbox],.mui-numbox [class*=numbox-btn]{font-size:18px;font-weight:400;line-height:100%;position:absolute;top:0;overflow:hidden;width:40px;height:100%;padding:0;color:#555;border:none;border-radius:0;background-color:#f9f9f9}.mui-numbox [class*=btn-numbox]:active,.mui-numbox [class*=numbox-btn]:active{background-color:#ccc}.mui-numbox [class*=btn-numbox][disabled],.mui-numbox [class*=numbox-btn][disabled]{color:silver}.mui-numbox .mui-btn-numbox-plus,.mui-numbox .mui-numbox-btn-plus{right:0;border-top-right-radius:3px;border-bottom-right-radius:3px}.mui-numbox .mui-btn-numbox-minus,.mui-numbox .mui-numbox-btn-minus{left:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.mui-numbox .mui-input-numbox,.mui-numbox .mui-numbox-input{display:inline-block;overflow:hidden;width:100%!important;height:100%;margin:0;padding:0 3px!important;text-align:center;text-overflow:ellipsis;word-break:normal;border:none!important;border-right:solid 1px #ccc!important;border-left:solid 1px #ccc!important;border-radius:0!important}.mui-input-row .mui-numbox{float:right;margin:2px 8px}@font-face{font-family:Muiicons;font-weight:400;font-style:normal;src:url(../fonts/mui.ttf) format('truetype')}.mui-icon{font-family:Muiicons;font-size:24px;font-weight:400;font-style:normal;line-height:1;display:inline-block;text-decoration:none;-webkit-font-smoothing:antialiased}.mui-icon.mui-active{color:#007aff}.mui-icon.mui-right:before{float:right;padding-left:.2em}.mui-icon-contact:before{content:'\e100'}.mui-icon-person:before{content:'\e101'}.mui-icon-personadd:before{content:'\e102'}.mui-icon-contact-filled:before{content:'\e130'}.mui-icon-person-filled:before{content:'\e131'}.mui-icon-personadd-filled:before{content:'\e132'}.mui-icon-phone:before{content:'\e200'}.mui-icon-email:before{content:'\e201'}.mui-icon-chatbubble:before{content:'\e202'}.mui-icon-chatboxes:before{content:'\e203'}.mui-icon-phone-filled:before{content:'\e230'}.mui-icon-email-filled:before{content:'\e231'}.mui-icon-chatbubble-filled:before{content:'\e232'}.mui-icon-chatboxes-filled:before{content:'\e233'}.mui-icon-weibo:before{content:'\e260'}.mui-icon-weixin:before{content:'\e261'}.mui-icon-pengyouquan:before{content:'\e262'}.mui-icon-chat:before{content:'\e263'}.mui-icon-qq:before{content:'\e264'}.mui-icon-videocam:before{content:'\e300'}.mui-icon-camera:before{content:'\e301'}.mui-icon-mic:before{content:'\e302'}.mui-icon-location:before{content:'\e303'}.mui-icon-mic-filled:before,.mui-icon-speech:before{content:'\e332'}.mui-icon-location-filled:before{content:'\e333'}.mui-icon-micoff:before{content:'\e360'}.mui-icon-image:before{content:'\e363'}.mui-icon-map:before{content:'\e364'}.mui-icon-compose:before{content:'\e400'}.mui-icon-trash:before{content:'\e401'}.mui-icon-upload:before{content:'\e402'}.mui-icon-download:before{content:'\e403'}.mui-icon-close:before{content:'\e404'}.mui-icon-redo:before{content:'\e405'}.mui-icon-undo:before{content:'\e406'}.mui-icon-refresh:before{content:'\e407'}.mui-icon-star:before{content:'\e408'}.mui-icon-plus:before{content:'\e409'}.mui-icon-minus:before{content:'\e410'}.mui-icon-checkbox:before,.mui-icon-circle:before{content:'\e411'}.mui-icon-clear:before,.mui-icon-close-filled:before{content:'\e434'}.mui-icon-refresh-filled:before{content:'\e437'}.mui-icon-star-filled:before{content:'\e438'}.mui-icon-plus-filled:before{content:'\e439'}.mui-icon-minus-filled:before{content:'\e440'}.mui-icon-circle-filled:before{content:'\e441'}.mui-icon-checkbox-filled:before{content:'\e442'}.mui-icon-closeempty:before{content:'\e460'}.mui-icon-refreshempty:before{content:'\e461'}.mui-icon-reload:before{content:'\e462'}.mui-icon-starhalf:before{content:'\e463'}.mui-icon-spinner:before{content:'\e464'}.mui-icon-spinner-cycle:before{content:'\e465'}.mui-icon-search:before{content:'\e466'}.mui-icon-plusempty:before{content:'\e468'}.mui-icon-forward:before{content:'\e470'}.mui-icon-back:before,.mui-icon-left-nav:before{content:'\e471'}.mui-icon-checkmarkempty:before{content:'\e472'}.mui-icon-home:before{content:'\e500'}.mui-icon-navigate:before{content:'\e501'}.mui-icon-gear:before{content:'\e502'}.mui-icon-paperplane:before{content:'\e503'}.mui-icon-info:before{content:'\e504'}.mui-icon-help:before{content:'\e505'}.mui-icon-locked:before{content:'\e506'}.mui-icon-more:before{content:'\e507'}.mui-icon-flag:before{content:'\e508'}.mui-icon-home-filled:before{content:'\e530'}.mui-icon-gear-filled:before{content:'\e532'}.mui-icon-info-filled:before{content:'\e534'}.mui-icon-help-filled:before{content:'\e535'}.mui-icon-more-filled:before{content:'\e537'}.mui-icon-settings:before{content:'\e560'}.mui-icon-list:before{content:'\e562'}.mui-icon-bars:before{content:'\e563'}.mui-icon-loop:before{content:'\e565'}.mui-icon-paperclip:before{content:'\e567'}.mui-icon-eye:before{content:'\e568'}.mui-icon-arrowup:before{content:'\e580'}.mui-icon-arrowdown:before{content:'\e581'}.mui-icon-arrowleft:before{content:'\e582'}.mui-icon-arrowright:before{content:'\e583'}.mui-icon-arrowthinup:before{content:'\e584'}.mui-icon-arrowthindown:before{content:'\e585'}.mui-icon-arrowthinleft:before{content:'\e586'}.mui-icon-arrowthinright:before{content:'\e587'}.mui-icon-pulldown:before{content:'\e588'}.mui-fullscreen{position:absolute;top:0;right:0;bottom:0;left:0}.mui-fullscreen.mui-slider .mui-slider-group{height:100%}.mui-fullscreen .mui-segmented-control~.mui-slider-group{position:absolute;top:40px;bottom:0;width:100%;height:auto}.mui-fullscreen.mui-slider .mui-slider-item>a{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mui-fullscreen .mui-off-canvas-wrap .mui-slider-item>a{top:auto;-webkit-transform:none;transform:none}.mui-bar-nav~.mui-content .mui-slider.mui-fullscreen{top:44px}.mui-bar-tab~.mui-content .mui-slider.mui-fullscreen .mui-segmented-control~.mui-slider-group{bottom:50px}.mui-android.mui-android-4-0 input:focus,.mui-android.mui-android-4-0 textarea:focus{-webkit-user-modify:inherit}.mui-android.mui-android-4-2 input,.mui-android.mui-android-4-2 textarea,.mui-android.mui-android-4-3 input,.mui-android.mui-android-4-3 textarea{-webkit-user-select:text}.mui-ios .mui-table-view-cell{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.mui-plus-visible,.mui-wechat-visible{display:none!important}.mui-plus-hidden,.mui-wechat-hidden{display:block!important}.mui-tab-item.mui-plus-hidden,.mui-tab-item.mui-wechat-hidden{display:table-cell!important}.mui-plus .mui-plus-visible,.mui-wechat .mui-wechat-visible{display:block!important}.mui-plus .mui-tab-item.mui-plus-visible,.mui-wechat .mui-tab-item.mui-wechat-visible{display:table-cell!important}.mui-plus .mui-plus-hidden,.mui-wechat .mui-wechat-hidden{display:none!important}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav{height:64px;padding-top:20px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav~.mui-content{padding-top:64px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary,.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav~.mui-content .mui-pull-top-pocket{top:64px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary~.mui-content{padding-top:94px}.mui-iframe-wrapper{position:absolute;right:0;left:0;-webkit-overflow-scrolling:touch}.mui-iframe-wrapper iframe{width:100%;height:100%;border:0}
\ No newline at end of file
diff --git a/release/asset/css/sweet-alert.css b/release/asset/css/sweet-alert.css
new file mode 100644
index 0000000..4469aea
--- /dev/null
+++ b/release/asset/css/sweet-alert.css
@@ -0,0 +1,715 @@
+body.stop-scrolling {
+ height: 100%;
+ overflow: hidden; }
+
+.sweet-overlay {
+ background-color: black;
+ /* IE8 */
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
+ /* IE8 */
+ background-color: rgba(0, 0, 0, 0.4);
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ display: none;
+ z-index: 10000; }
+
+.sweet-alert {
+ background-color: white;
+ font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ width: 478px;
+ padding: 17px;
+ border-radius: 5px;
+ text-align: center;
+ position: fixed;
+ left: 50%;
+ top: 50%;
+ margin-left: -256px;
+ margin-top: -200px;
+ overflow: hidden;
+ display: none;
+ z-index: 99999; }
+ @media all and (max-width: 540px) {
+ .sweet-alert {
+ width: auto;
+ margin-left: 0;
+ margin-right: 0;
+ left: 15px;
+ right: 15px; } }
+ .sweet-alert h2 {
+ color: #575757;
+ font-size: 30px;
+ text-align: center;
+ font-weight: 600;
+ text-transform: none;
+ position: relative;
+ margin: 25px 0;
+ padding: 0;
+ line-height: 40px;
+ display: block; }
+ .sweet-alert p {
+ color: #797979;
+ font-size: 16px;
+ text-align: center;
+ font-weight: 300;
+ position: relative;
+ text-align: inherit;
+ float: none;
+ margin: 0;
+ padding: 0;
+ line-height: normal; }
+ .sweet-alert fieldset {
+ border: none;
+ position: relative; }
+ .sweet-alert .sa-error-container {
+ background-color: #f1f1f1;
+ margin-left: -17px;
+ margin-right: -17px;
+ overflow: hidden;
+ padding: 0 10px;
+ max-height: 0;
+ webkit-transition: padding 0.15s, max-height 0.15s;
+ transition: padding 0.15s, max-height 0.15s; }
+ .sweet-alert .sa-error-container.show {
+ padding: 10px 0;
+ max-height: 100px;
+ webkit-transition: padding 0.2s, max-height 0.2s;
+ transition: padding 0.25s, max-height 0.25s; }
+ .sweet-alert .sa-error-container .icon {
+ display: inline-block;
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ background-color: #ea7d7d;
+ color: white;
+ line-height: 24px;
+ text-align: center;
+ margin-right: 3px; }
+ .sweet-alert .sa-error-container p {
+ display: inline-block; }
+ .sweet-alert .sa-input-error {
+ position: absolute;
+ top: 29px;
+ right: 26px;
+ width: 20px;
+ height: 20px;
+ opacity: 0;
+ -webkit-transform: scale(0.5);
+ transform: scale(0.5);
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-transition: all 0.1s;
+ transition: all 0.1s; }
+ .sweet-alert .sa-input-error::before, .sweet-alert .sa-input-error::after {
+ content: "";
+ width: 20px;
+ height: 6px;
+ background-color: #f06e57;
+ border-radius: 3px;
+ position: absolute;
+ top: 50%;
+ margin-top: -4px;
+ left: 50%;
+ margin-left: -9px; }
+ .sweet-alert .sa-input-error::before {
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg); }
+ .sweet-alert .sa-input-error::after {
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg); }
+ .sweet-alert .sa-input-error.show {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1); }
+ .sweet-alert input {
+ width: 100%;
+ box-sizing: border-box;
+ border-radius: 3px;
+ border: 1px solid #d7d7d7;
+ height: 43px;
+ margin-top: 10px;
+ margin-bottom: 17px;
+ font-size: 18px;
+ box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.06);
+ padding: 0 12px;
+ display: none;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s; }
+ .sweet-alert input:focus {
+ outline: none;
+ box-shadow: 0px 0px 3px #c4e6f5;
+ border: 1px solid #b4dbed; }
+ .sweet-alert input:focus::-moz-placeholder {
+ transition: opacity 0.3s 0.03s ease;
+ opacity: 0.5; }
+ .sweet-alert input:focus:-ms-input-placeholder {
+ transition: opacity 0.3s 0.03s ease;
+ opacity: 0.5; }
+ .sweet-alert input:focus::-webkit-input-placeholder {
+ transition: opacity 0.3s 0.03s ease;
+ opacity: 0.5; }
+ .sweet-alert input::-moz-placeholder {
+ color: #bdbdbd; }
+ .sweet-alert input:-ms-input-placeholder {
+ color: #bdbdbd; }
+ .sweet-alert input::-webkit-input-placeholder {
+ color: #bdbdbd; }
+ .sweet-alert.show-input input {
+ display: block; }
+ .sweet-alert button {
+ background-color: #AEDEF4;
+ color: white;
+ border: none;
+ box-shadow: none;
+ font-size: 17px;
+ font-weight: 500;
+ -webkit-border-radius: 4px;
+ border-radius: 5px;
+ padding: 10px 32px;
+ margin: 26px 5px 0 5px;
+ cursor: pointer; }
+ .sweet-alert button:focus {
+ outline: none;
+ box-shadow: 0 0 2px rgba(128, 179, 235, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.05); }
+ .sweet-alert button:hover {
+ background-color: #a1d9f2; }
+ .sweet-alert button:active {
+ background-color: #81ccee; }
+ .sweet-alert button.cancel {
+ background-color: #D0D0D0; }
+ .sweet-alert button.cancel:hover {
+ background-color: #c8c8c8; }
+ .sweet-alert button.cancel:active {
+ background-color: #b6b6b6; }
+ .sweet-alert button.cancel:focus {
+ box-shadow: rgba(197, 205, 211, 0.8) 0px 0px 2px, rgba(0, 0, 0, 0.0470588) 0px 0px 0px 1px inset !important; }
+ .sweet-alert button::-moz-focus-inner {
+ border: 0; }
+ .sweet-alert[data-has-cancel-button=false] button {
+ box-shadow: none !important; }
+ .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] {
+ padding-bottom: 40px; }
+ .sweet-alert .sa-icon {
+ width: 80px;
+ height: 80px;
+ border: 4px solid gray;
+ -webkit-border-radius: 40px;
+ border-radius: 40px;
+ border-radius: 50%;
+ margin: 20px auto;
+ padding: 0;
+ position: relative;
+ box-sizing: content-box; }
+ .sweet-alert .sa-icon.sa-error {
+ border-color: #F27474; }
+ .sweet-alert .sa-icon.sa-error .sa-x-mark {
+ position: relative;
+ display: block; }
+ .sweet-alert .sa-icon.sa-error .sa-line {
+ position: absolute;
+ height: 5px;
+ width: 47px;
+ background-color: #F27474;
+ display: block;
+ top: 37px;
+ border-radius: 2px; }
+ .sweet-alert .sa-icon.sa-error .sa-line.sa-left {
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg);
+ left: 17px; }
+ .sweet-alert .sa-icon.sa-error .sa-line.sa-right {
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ right: 16px; }
+ .sweet-alert .sa-icon.sa-warning {
+ border-color: #F8BB86; }
+ .sweet-alert .sa-icon.sa-warning .sa-body {
+ position: absolute;
+ width: 5px;
+ height: 47px;
+ left: 50%;
+ top: 10px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+ margin-left: -2px;
+ background-color: #F8BB86; }
+ .sweet-alert .sa-icon.sa-warning .sa-dot {
+ position: absolute;
+ width: 7px;
+ height: 7px;
+ -webkit-border-radius: 50%;
+ border-radius: 50%;
+ margin-left: -3px;
+ left: 50%;
+ bottom: 10px;
+ background-color: #F8BB86; }
+ .sweet-alert .sa-icon.sa-info {
+ border-color: #C9DAE1; }
+ .sweet-alert .sa-icon.sa-info::before {
+ content: "";
+ position: absolute;
+ width: 5px;
+ height: 29px;
+ left: 50%;
+ bottom: 17px;
+ border-radius: 2px;
+ margin-left: -2px;
+ background-color: #C9DAE1; }
+ .sweet-alert .sa-icon.sa-info::after {
+ content: "";
+ position: absolute;
+ width: 7px;
+ height: 7px;
+ border-radius: 50%;
+ margin-left: -3px;
+ top: 19px;
+ background-color: #C9DAE1; }
+ .sweet-alert .sa-icon.sa-success {
+ border-color: #A5DC86; }
+ .sweet-alert .sa-icon.sa-success::before, .sweet-alert .sa-icon.sa-success::after {
+ content: '';
+ -webkit-border-radius: 40px;
+ border-radius: 40px;
+ border-radius: 50%;
+ position: absolute;
+ width: 60px;
+ height: 120px;
+ background: white;
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg); }
+ .sweet-alert .sa-icon.sa-success::before {
+ -webkit-border-radius: 120px 0 0 120px;
+ border-radius: 120px 0 0 120px;
+ top: -7px;
+ left: -33px;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ -webkit-transform-origin: 60px 60px;
+ transform-origin: 60px 60px; }
+ .sweet-alert .sa-icon.sa-success::after {
+ -webkit-border-radius: 0 120px 120px 0;
+ border-radius: 0 120px 120px 0;
+ top: -11px;
+ left: 30px;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ -webkit-transform-origin: 0px 60px;
+ transform-origin: 0px 60px; }
+ .sweet-alert .sa-icon.sa-success .sa-placeholder {
+ width: 80px;
+ height: 80px;
+ border: 4px solid rgba(165, 220, 134, 0.2);
+ -webkit-border-radius: 40px;
+ border-radius: 40px;
+ border-radius: 50%;
+ box-sizing: content-box;
+ position: absolute;
+ left: -4px;
+ top: -4px;
+ z-index: 2; }
+ .sweet-alert .sa-icon.sa-success .sa-fix {
+ width: 5px;
+ height: 90px;
+ background-color: white;
+ position: absolute;
+ left: 28px;
+ top: 8px;
+ z-index: 1;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg); }
+ .sweet-alert .sa-icon.sa-success .sa-line {
+ height: 5px;
+ background-color: #A5DC86;
+ display: block;
+ border-radius: 2px;
+ position: absolute;
+ z-index: 2; }
+ .sweet-alert .sa-icon.sa-success .sa-line.sa-tip {
+ width: 25px;
+ left: 14px;
+ top: 46px;
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg); }
+ .sweet-alert .sa-icon.sa-success .sa-line.sa-long {
+ width: 47px;
+ right: 8px;
+ top: 38px;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg); }
+ .sweet-alert .sa-icon.sa-custom {
+ background-size: contain;
+ border-radius: 0;
+ border: none;
+ background-position: center center;
+ background-repeat: no-repeat; }
+
+/*
+ * Animations
+ */
+@-webkit-keyframes showSweetAlert {
+ 0% {
+ transform: scale(0.7);
+ -webkit-transform: scale(0.7); }
+ 45% {
+ transform: scale(1.05);
+ -webkit-transform: scale(1.05); }
+ 80% {
+ transform: scale(0.95);
+ -webkit-transform: scale(0.95); }
+ 100% {
+ transform: scale(1);
+ -webkit-transform: scale(1); } }
+
+@keyframes showSweetAlert {
+ 0% {
+ transform: scale(0.7);
+ -webkit-transform: scale(0.7); }
+ 45% {
+ transform: scale(1.05);
+ -webkit-transform: scale(1.05); }
+ 80% {
+ transform: scale(0.95);
+ -webkit-transform: scale(0.95); }
+ 100% {
+ transform: scale(1);
+ -webkit-transform: scale(1); } }
+
+@-webkit-keyframes hideSweetAlert {
+ 0% {
+ transform: scale(1);
+ -webkit-transform: scale(1); }
+ 100% {
+ transform: scale(0.5);
+ -webkit-transform: scale(0.5); } }
+
+@keyframes hideSweetAlert {
+ 0% {
+ transform: scale(1);
+ -webkit-transform: scale(1); }
+ 100% {
+ transform: scale(0.5);
+ -webkit-transform: scale(0.5); } }
+
+@-webkit-keyframes slideFromTop {
+ 0% {
+ top: 0%; }
+ 100% {
+ top: 50%; } }
+
+@keyframes slideFromTop {
+ 0% {
+ top: 0%; }
+ 100% {
+ top: 50%; } }
+
+@-webkit-keyframes slideToTop {
+ 0% {
+ top: 50%; }
+ 100% {
+ top: 0%; } }
+
+@keyframes slideToTop {
+ 0% {
+ top: 50%; }
+ 100% {
+ top: 0%; } }
+
+@-webkit-keyframes slideFromBottom {
+ 0% {
+ top: 70%; }
+ 100% {
+ top: 50%; } }
+
+@keyframes slideFromBottom {
+ 0% {
+ top: 70%; }
+ 100% {
+ top: 50%; } }
+
+@-webkit-keyframes slideToBottom {
+ 0% {
+ top: 50%; }
+ 100% {
+ top: 70%; } }
+
+@keyframes slideToBottom {
+ 0% {
+ top: 50%; }
+ 100% {
+ top: 70%; } }
+
+.showSweetAlert[data-animation=pop] {
+ -webkit-animation: showSweetAlert 0.3s;
+ animation: showSweetAlert 0.3s; }
+
+.showSweetAlert[data-animation=none] {
+ -webkit-animation: none;
+ animation: none; }
+
+.showSweetAlert[data-animation=slide-from-top] {
+ -webkit-animation: slideFromTop 0.3s;
+ animation: slideFromTop 0.3s; }
+
+.showSweetAlert[data-animation=slide-from-bottom] {
+ -webkit-animation: slideFromBottom 0.3s;
+ animation: slideFromBottom 0.3s; }
+
+.hideSweetAlert[data-animation=pop] {
+ -webkit-animation: hideSweetAlert 0.2s;
+ animation: hideSweetAlert 0.2s; }
+
+.hideSweetAlert[data-animation=none] {
+ -webkit-animation: none;
+ animation: none; }
+
+.hideSweetAlert[data-animation=slide-from-top] {
+ -webkit-animation: slideToTop 0.4s;
+ animation: slideToTop 0.4s; }
+
+.hideSweetAlert[data-animation=slide-from-bottom] {
+ -webkit-animation: slideToBottom 0.3s;
+ animation: slideToBottom 0.3s; }
+
+@-webkit-keyframes animateSuccessTip {
+ 0% {
+ width: 0;
+ left: 1px;
+ top: 19px; }
+ 54% {
+ width: 0;
+ left: 1px;
+ top: 19px; }
+ 70% {
+ width: 50px;
+ left: -8px;
+ top: 37px; }
+ 84% {
+ width: 17px;
+ left: 21px;
+ top: 48px; }
+ 100% {
+ width: 25px;
+ left: 14px;
+ top: 45px; } }
+
+@keyframes animateSuccessTip {
+ 0% {
+ width: 0;
+ left: 1px;
+ top: 19px; }
+ 54% {
+ width: 0;
+ left: 1px;
+ top: 19px; }
+ 70% {
+ width: 50px;
+ left: -8px;
+ top: 37px; }
+ 84% {
+ width: 17px;
+ left: 21px;
+ top: 48px; }
+ 100% {
+ width: 25px;
+ left: 14px;
+ top: 45px; } }
+
+@-webkit-keyframes animateSuccessLong {
+ 0% {
+ width: 0;
+ right: 46px;
+ top: 54px; }
+ 65% {
+ width: 0;
+ right: 46px;
+ top: 54px; }
+ 84% {
+ width: 55px;
+ right: 0px;
+ top: 35px; }
+ 100% {
+ width: 47px;
+ right: 8px;
+ top: 38px; } }
+
+@keyframes animateSuccessLong {
+ 0% {
+ width: 0;
+ right: 46px;
+ top: 54px; }
+ 65% {
+ width: 0;
+ right: 46px;
+ top: 54px; }
+ 84% {
+ width: 55px;
+ right: 0px;
+ top: 35px; }
+ 100% {
+ width: 47px;
+ right: 8px;
+ top: 38px; } }
+
+@-webkit-keyframes rotatePlaceholder {
+ 0% {
+ transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg); }
+ 5% {
+ transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg); }
+ 12% {
+ transform: rotate(-405deg);
+ -webkit-transform: rotate(-405deg); }
+ 100% {
+ transform: rotate(-405deg);
+ -webkit-transform: rotate(-405deg); } }
+
+@keyframes rotatePlaceholder {
+ 0% {
+ transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg); }
+ 5% {
+ transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg); }
+ 12% {
+ transform: rotate(-405deg);
+ -webkit-transform: rotate(-405deg); }
+ 100% {
+ transform: rotate(-405deg);
+ -webkit-transform: rotate(-405deg); } }
+
+.animateSuccessTip {
+ -webkit-animation: animateSuccessTip 0.75s;
+ animation: animateSuccessTip 0.75s; }
+
+.animateSuccessLong {
+ -webkit-animation: animateSuccessLong 0.75s;
+ animation: animateSuccessLong 0.75s; }
+
+.sa-icon.sa-success.animate::after {
+ -webkit-animation: rotatePlaceholder 4.25s ease-in;
+ animation: rotatePlaceholder 4.25s ease-in; }
+
+@-webkit-keyframes animateErrorIcon {
+ 0% {
+ transform: rotateX(100deg);
+ -webkit-transform: rotateX(100deg);
+ opacity: 0; }
+ 100% {
+ transform: rotateX(0deg);
+ -webkit-transform: rotateX(0deg);
+ opacity: 1; } }
+
+@keyframes animateErrorIcon {
+ 0% {
+ transform: rotateX(100deg);
+ -webkit-transform: rotateX(100deg);
+ opacity: 0; }
+ 100% {
+ transform: rotateX(0deg);
+ -webkit-transform: rotateX(0deg);
+ opacity: 1; } }
+
+.animateErrorIcon {
+ -webkit-animation: animateErrorIcon 0.5s;
+ animation: animateErrorIcon 0.5s; }
+
+@-webkit-keyframes animateXMark {
+ 0% {
+ transform: scale(0.4);
+ -webkit-transform: scale(0.4);
+ margin-top: 26px;
+ opacity: 0; }
+ 50% {
+ transform: scale(0.4);
+ -webkit-transform: scale(0.4);
+ margin-top: 26px;
+ opacity: 0; }
+ 80% {
+ transform: scale(1.15);
+ -webkit-transform: scale(1.15);
+ margin-top: -6px; }
+ 100% {
+ transform: scale(1);
+ -webkit-transform: scale(1);
+ margin-top: 0;
+ opacity: 1; } }
+
+@keyframes animateXMark {
+ 0% {
+ transform: scale(0.4);
+ -webkit-transform: scale(0.4);
+ margin-top: 26px;
+ opacity: 0; }
+ 50% {
+ transform: scale(0.4);
+ -webkit-transform: scale(0.4);
+ margin-top: 26px;
+ opacity: 0; }
+ 80% {
+ transform: scale(1.15);
+ -webkit-transform: scale(1.15);
+ margin-top: -6px; }
+ 100% {
+ transform: scale(1);
+ -webkit-transform: scale(1);
+ margin-top: 0;
+ opacity: 1; } }
+
+.animateXMark {
+ -webkit-animation: animateXMark 0.5s;
+ animation: animateXMark 0.5s; }
+
+@-webkit-keyframes pulseWarning {
+ 0% {
+ border-color: #F8D486; }
+ 100% {
+ border-color: #F8BB86; } }
+
+@keyframes pulseWarning {
+ 0% {
+ border-color: #F8D486; }
+ 100% {
+ border-color: #F8BB86; } }
+
+.pulseWarning {
+ -webkit-animation: pulseWarning 0.75s infinite alternate;
+ animation: pulseWarning 0.75s infinite alternate; }
+
+@-webkit-keyframes pulseWarningIns {
+ 0% {
+ background-color: #F8D486; }
+ 100% {
+ background-color: #F8BB86; } }
+
+@keyframes pulseWarningIns {
+ 0% {
+ background-color: #F8D486; }
+ 100% {
+ background-color: #F8BB86; } }
+
+.pulseWarningIns {
+ -webkit-animation: pulseWarningIns 0.75s infinite alternate;
+ animation: pulseWarningIns 0.75s infinite alternate; }
+
+/* Internet Explorer 9 has some special quirks that are fixed here */
+/* The icons are not animated. */
+/* This file is automatically merged into sweet-alert.min.js through Gulp */
+/* Error icon */
+.sweet-alert .sa-icon.sa-error .sa-line.sa-left {
+ -ms-transform: rotate(45deg) \9; }
+
+.sweet-alert .sa-icon.sa-error .sa-line.sa-right {
+ -ms-transform: rotate(-45deg) \9; }
+
+/* Success icon */
+.sweet-alert .sa-icon.sa-success {
+ border-color: transparent\9; }
+
+.sweet-alert .sa-icon.sa-success .sa-line.sa-tip {
+ -ms-transform: rotate(45deg) \9; }
+
+.sweet-alert .sa-icon.sa-success .sa-line.sa-long {
+ -ms-transform: rotate(-45deg) \9; }
diff --git a/release/asset/css/wxmenu.css b/release/asset/css/wxmenu.css
new file mode 100644
index 0000000..c433782
--- /dev/null
+++ b/release/asset/css/wxmenu.css
@@ -0,0 +1,817 @@
+
+.nav-full-title{ list-style:none; padding:0;}
+.nav-full-title li{ width:100%; text-overflow:ellipsis; overflow:hidden; white-space:nowrap;}
+/*控制图片的大小*/
+.huoDong-media img{ width:100px; height:100px;}
+.font-hdtime{ font-size:14px; color:#000;}
+
+
+/*页面默认设置*/
+body{
+ font-family:"ff-tisa-web-pro-1",
+ "ff-tisa-web-pro-2",
+ "Lucida Grande",
+ "Helvetica Neue",
+ Helvetica,
+ Arial,
+ "Hiragino Sans GB",
+ "Hiragino Sans GB W3",
+ "WenQuanYi Micro Hei",
+ sans-serif;
+}
+/*解决win8 IE10 兼容 s*/
+@-webkit-viewport { width: device-width; }
+@-moz-viewport { width: device-width; }
+@-ms-viewport { width: device-width; }
+@-o-viewport { width: device-width; }
+@viewport { width: device-width; }
+
+/*三大模块 共用样式*/
+body,html{
+
+ height:100%;
+ background-color:#f5f5f5;
+ font-family: "Microsoft YaHei";
+}
+
+/*重置导航栏下拉消息选框*/
+.dropdown-menu{
+ min-width: 0;
+ width:auto;
+ padding:3px;
+ margin:10px 0px;
+}
+ul.dropdown-menu li div{
+ margin: 10px 0;
+ font-family: "宋体";
+}
+ul.dropdown-menu li div{
+ border-bottom: 1px dotted #ccc;
+}
+ /*导航条 搜索框宽度*/
+ #search-box .popover { max-width: none !important;}
+
+ /*自定义徽标 - 标签*/
+.badge-bq{
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 8px;
+ font-size: 12px;
+ line-height: 1;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: middle;
+ border-radius: 10px;
+ background-color:#ececec;
+ color:#000;
+ font-family: "Microsoft YaHei";
+}
+.badge-zhiye{
+ border-radius: 4px !important;
+ color:#337ab7;
+ font-weight:blod;
+ cursor:default !important;
+}
+
+.badge-bq-huida-list{
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 6px;
+ font-size: 12px;
+ line-height: 1;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: middle;
+ border-radius: 10px;
+ background-color:#ececec;
+ color:#000;
+ font-family: "Microsoft YaHei";
+ font-weight:normal;
+}
+
+.badge-bq:hover{
+ text-decoration:none;
+}
+
+.badge-shengyu{
+ font-family: 'Arial Normal', 'Arial';
+ color:#333;
+ background:#ffcc99;
+ padding:0 5px;
+ text-align:center;
+ font-size:14px;
+}
+.badge-msg{
+ font-family:"宋体";
+ color:#fefefe;
+ background-color:#000;
+}
+
+.badge-more{
+ margin-top:10px;
+ color:#111;
+ padding:0 !important;
+}
+a.badge-more:hover {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ border-radius:25%;
+ background-color:#e4e4e4; !important;
+}
+
+.hide-hidden{
+ visibility:hidden;
+}
+
+.color-red{color:red;}
+
+.color-15c{ color:#1155cc;}
+
+.color-58{ color:#585858;}
+
+.color-heise{color:#000; }
+
+.color-gray{color:gray; }
+
+.color-black{color:#000; font-family:"黑体";}
+
+.pointer{
+ cursor:pointer;
+}
+.pointer:hover{
+ text-decoration:none;
+}
+ /*自定义徽标样式 start */
+.badge-self{
+
+ padding-left: 8px;
+ color:#fff;
+ background-size:100% 100%;
+ background-repeat: no-repeat;
+ background-image: url(../img/badgeBg.png);
+}
+
+/*面板鼠标悬停效果*/
+.panel-liubai{ margin-top:8px;}/*为panel区块顶部留白*/
+
+/*活动 问答 阅读 文字 的鼠标悬浮样式*/
+.btn-bankuai{
+
+ color:#000;
+ font-size:14px;
+}
+.btn-bankuai:hover{
+ color:#169bd5;
+ text-decoration:none;
+}
+/*textarea禁用重置*/
+.no-resize{resize:none;}
+
+.no-btmborder{ border-bottom:none;}
+
+.no-border{ border:none;}
+
+.no-row{ padding:0 15px;}
+
+/*名片 start*/
+.box-card{
+ position:absolute;
+ padding:0;
+ padding:0;
+ margin:0;
+ width:330px;
+ height:140px;
+ line-height:20px;
+ display:none;
+ font-size:14px;
+ z-index:10;
+}
+.panel-card-name{
+ top:34px;
+ left:94px;
+}
+
+.popover-usercard-head{
+ /*名片距离父级的距离*/
+ margin-top:75px;
+}
+.popover-usercard-content{
+ font-family:"微软雅黑";
+ padding:0;
+}
+.panel-card{
+ width:330px;
+ overflow:hidden;
+}
+img.userCard-head{
+ width:60px;
+ height:60px;
+}
+.card-title{
+ font-size:16px;
+ color:#898989;
+}
+.card-footer{
+ background-color:#e6e6e6;
+}
+.card-info{
+ font-size:14px;
+ color:#505050;
+}
+
+.card-content{
+ font-size:14px;
+ color:#8a8a8b;
+}
+
+/*名片 end */
+.ico{
+ width: 16px;
+ height: 16px;
+ background-image: url("../img/all.png");
+ background-repeat: no-repeat;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ico-huodong-over{
+ background-image: url("../img/over.gif");
+ background-position: 98% 2px;
+ background-repeat:no-repeat;
+}
+
+.ico-huodong-nostarted{
+ background-image: url("../img/nostarted.gif");
+ background-position: 98% 2px;
+ background-repeat:no-repeat;
+}
+
+.ico-huodong-begun{
+ background-image: url("../img/begun.gif");
+ background-position: 98% 2px;
+ background-repeat:no-repeat;
+}
+
+.hd_stat{
+ position:relative;
+ height:100%;
+ width:10%;
+ right:0;
+ top:0;
+ background-color:#666;
+}
+
+/*图标志 水平翻转*/
+.ico-flx {
+ -moz-transform:scaleX(-1);
+ -webkit-transform:scaleX(-1);
+ -o-transform:scaleX(-1);
+ transform:scaleX(-1);
+ /*IE*/
+ filter:FlipH;
+}
+
+/*垂直翻转*/
+.ico-fly {
+ -moz-transform:scaleY(-1);
+ -webkit-transform:scaleY(-1);
+ -o-transform:scaleY(-1);
+ transform:scaleY(-1);
+ /*IE*/
+ filter:FlipV;
+}
+
+/*性别图标*/
+.ico-na{
+ background-position: -145px -110px;
+}
+.ico-nv{
+ background-position: -128px -110px;
+}
+.ico-dizhi{
+ background-position: -58px -110px;
+}
+.ico-guanzhu-a{
+ background-position: -40px -18px;
+}
+.ico-guanzhu-b{
+ background-position: -40px -34px;
+}
+.ico-zhuiwen{
+ background-position: -225px -128px;
+}
+
+/*面板上的小件*/
+
+.box-wenti-xijie{ margin:5px 0 0 70px;}
+.xijie-time{ color:#ccc;}
+
+/*右侧导航区域 */
+.copyRight li{ padding:5px; }
+.nav-right p{ font-size:14px; font-weight:bold; line-height: 20px;}
+
+/*底部版权*/
+.navbar-yb-bottom .pull-right{
+ padding:0 8px;
+}
+.navbar-yb-bottom{
+ height:25px;
+ line-height:25px;
+}
+/*右侧导航区域 下的标签 start*/
+.box-biaoqian {
+ background-color:#fafafa;
+ border:1px solid #e6e6e6;
+}
+
+/*对字体图标大小的控制*/
+.font-logo{ font-size:10px; margin-right:2px;}
+
+/*免费标记样式*/
+sup span.mianfei{
+ background:#DFF0D8;
+ padding:0 5px;
+ border-radius:8px;
+ display:inherit;
+}
+
+/*返回顶部样式 start*/
+.backTop-arrow{
+ width: 0;
+ height: 0;
+ top: -1px;
+ margin-left:32%;
+ border: 9px solid transparent;
+ border-bottom-color: #aaa;
+}
+.backTop-stick{
+ width: 8px;
+ height: 14px;
+ top: 15px;
+ margin-left:43%;
+ border-radius: 1px;
+ background-color: #aaa;
+}
+.backTop{
+ position: fixed;
+ bottom: 113px;
+ right: 3%;
+ z-index: 333;
+ margin-left: 230px;
+ width:45px;
+ height:45px;
+ background-color:#ccc;
+ border-radius:30%;
+ cursor:pointer;
+}
+
+/*返回顶部样式 end*/
+.full{
+ width:100%;
+ height:100%;
+}
+/*css自定义隐藏*/
+.hide-self{ display:none; list-style:none;}
+
+.font-block{ color:#000;}
+
+.point-red{
+ height: 3px;
+ width: 3px;
+ background-color: red;
+ border-radius: 50%;
+ float: left;
+ margin-top: 15px;
+ margin-right: 5px;
+ margin-left: 5px;
+}
+
+.point-white{
+ height: 6px;
+ width: 6px;
+ background-color: none;
+ border-radius:50%;
+ float: left;
+ margin-top: 5px;
+ margin-right: 5px;
+}
+
+.check-width li{
+
+ width:100%;
+ line-height:30px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.float-left{ float:left;}
+.float-right{ float:right;}
+/*分割线*/
+.fenge-line,.splite-line{ width:100%; height:1px; border-bottom:1px solid #dbdcde; margin-bottom:8px;}
+/*搜索框容器 start*/
+
+#btn-search:active,#btn-search:hover{
+ border:none !important;
+ background:none !important;
+ background-color:none !important;
+}
+.popover{
+ border:none;
+ background-color:#f5f5f5;
+}
+.popover-search{
+ width:600px;
+ left:600px;
+ margin-right:45px;
+ color:red;
+}
+#biaoqian-box{ display:none;}
+
+/*搜索框容器 end*/
+
+p.font-customer-zhengwen{ font-size:16px; font-family:"宋体"; color:#555;}
+/*文章详情的标题*/
+.box-yuedu-title{ color:#333; font-family:"微软雅黑"; background-color:#fefefe;}
+.box-yuedu-title sub{ font-family:"宋体"; }
+
+/*文章图片大小控制*/
+img.wenzhang{
+ width:100%;
+ height:300px;
+}
+.img-huodongaddr-biaozhi{
+ width:50%;
+}
+.img-huodongaddr-baidu{
+ width:60%;
+}
+.img-full{
+ width:100%;
+ height:100%;
+}
+.box-huodong-jianjie{
+ padding-left:20px;
+ color:#223355;
+ font-family:"微软雅黑";
+
+}
+.box-huodong-jianjie h2{
+
+ font-family:"黑体";
+}
+.huodong-zhuban-logo{
+ width:40px;
+}
+#box-huodong-xunwenform{
+ display:none;
+}
+.no-border{
+ border:none;
+}
+.alert-default{ border-bottom:1px solid #c0c0c0; padding-bottom:5px;}
+.mouse-help{ cursor:help;}
+
+.no-padding,.no-Padding{ padding:0 !important; }
+.no-margin{margin:0; !important}
+.no-margin-b{margin-bottom:0; border:none;}
+.no-margin-c{margin-bottom:0; margin-top:3px; border:none;}
+.no-margin-d{margin-bottom:0; margin-top:10px;}
+
+.badge-yb{
+ font-family:'Arial Normal','Arial';
+ text-align:center;
+ cursor:pointer;
+ padding:2px 6px;
+ margin:3px 0;
+ background-color:#f5f5f5;
+ border:1px solid #fff;
+ border-radius:35px;
+}
+.badge-yb:hover{
+ border:1px solid #c0c0c0;
+}
+
+.badge-yb-more{
+
+ font-family:'Arial Normal','Arial';
+ text-align:center;
+ cursor:pointer;
+ padding:4px 12px;
+ margin:6px 0;
+ background-color:#fafafa;
+ border:1px solid #E6E6E6;
+ border-radius:35px;
+}
+.badge-yb-more:hover{
+ text-decoration:none;
+}
+
+.badge-yb-nobg{
+ background-color:#f5f5f5;
+}
+.btn-win-jibao{padding:6px 40px;}
+.checkbox label.check-btn{
+ margin-right:30px;
+}
+.huodong-title{
+ font-size:20px;
+ font-family:"微软雅黑";
+ font-weight:bold;
+}
+
+.dibu-banquan{
+ height:30px;
+ line-height:30px;
+ background:#ddd;
+ border-radius:6px;
+}
+
+.panel-huifu{
+ padding-left:40px;
+}
+.wenzhang-biaoti{
+ font-size:24px;
+ font-family:"Microsoft YaHei";
+ font-weight:700;
+}
+
+/*回答缩进*/
+.panel-huidalist,.panel-huidalist-a{
+ padding-left:3%;
+}
+.panel-huidalist-b{
+ margin-left:15px;
+}
+/*文章的标题*/
+span.text-info a{
+ font-size:14px;
+ font-family:"宋体";
+}
+
+/*鼠标悬浮提示框*/
+.tooltip-inner{
+ color:#000;
+ background-color:#f5f5f5;
+}
+.tooltip.in{
+ filter:alpha(opacity=100);
+ opacity:1.0;
+}
+/*活动相关横条*/
+.huodong-hengtiao{
+ padding:0px 15px;
+}
+.huodong-hengtiao .row{
+ background-color:#c0c0c0;
+}
+.huodong-hengtiao .row h3{
+ line-height:32px;
+}
+
+#win-update-pwd{
+ /*margin-top:5%;*/
+}
+
+/*活动描述加链接*/
+.media-body p a{
+
+ color: #000;
+ text-decoration:none;
+}
+.media-body p a:hover{
+
+ text-decoration:none;
+}
+
+.loaddiv span{
+ color: white;
+ font-size: 16px;
+ position: absolute;
+ width: 100%;
+ text-align: center;
+}
+
+.loaddiv{
+ margin: 0px;
+ padding: 0px;
+ width: 100%;
+ height: 100%;
+ background-color: black;
+ background-image: url(../img/loadicon.gif);
+ background-repeat: no-repeat;
+ background-position: 50% 0px;
+ background-size: 64px 64px;
+ position: fixed;
+ left: 0px;
+ top: 0px;
+ opacity: 0.4;
+ z-index: 999999;
+ display: none;
+}
+.removeoverflow
+{
+ overflow: hidden;
+}
+
+/*地图内部组件*/
+.mapbox-shuoming{width:120px; line-height:1.5;font-size:13px;text-indent:2em;}
+.mapbox-img{ width:80px; float:right; }
+#box-pic-map{ height:250px; width:250px;}
+
+/*协议盒子*/
+
+.no-line{
+ text-decoration:none;
+}
+.no-line:hover{
+ text-decoration:none;
+}
+.under-line{
+ text-decoration:underline;
+}
+.under-line:hover,.no-line:hover{
+ text-decoration:none;
+}
+.small-margin{
+ margin:5px 0;
+}
+/*百度地图 start */
+#box-baidu-map{
+
+ background-img:url(../img/load.gif);
+ background-repeat: no-repeat;
+}
+/*百度地图 end */
+
+.indent{
+ text-indent:2em;
+}
+/*新手帮助 start*/
+.pic{
+ width:100%;
+ height:520px;
+}
+/*新手帮助 end*/
+
+/*验证码 */
+#refRcode{ width:100%; height:35px; background-repeat:no-repeat; background-position:8px;}
+
+/*文字处理*/
+.warp{
+ word-wrap:break-word;
+ white-space:normal;
+}
+
+/*提问相关*/
+.wenti-fenlei-box .popover-content{
+ height:325px;
+ overflow-y:auto;
+}
+#searchTable{ height:600px; overflow-y:auto;}
+
+
+
+.dropdown-menu {
+ min-width: 100%;
+}
+
+/* 页面与通用元素样式 start */
+
+/* 页面与通用元素样式 end */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*禁止切换输入法*/
+.no-zh{
+ ime-mode:Disabled;
+}
+
+.yb-disabled{
+ cursor: not-allowed;
+}
+/*菜单,按钮*/
+.yb-menu,.yb-btn{
+ font-family: "Microsoft YaHei";
+ font-size:16px;
+}
+/*一级加粗*/
+.yb-bold{
+ font-weight:bold;
+}
+/*二级加粗*/
+.yb-bolder{
+ font-weight:bolder;
+}
+/*主强调*/
+.yb-qiangdiao-a{
+ color:#3e3d3d;
+}
+/*次强调*/
+.yb-qiangdiao-b{
+ color:#898989;
+}
+.yb-biaoti{
+ color:#505050;
+}
+/*正文*/
+.yb-zhengwen{
+ font-family: '宋体 Regular', '宋体';
+ color:#8a8a8b;
+}
+/*字体*/
+.yb-yahei{
+ font-family: '微软雅黑';
+ color:#8a8a8b;
+}
+/*消息提示*/
+.yb-tip{
+ color:#a0a0a0;
+ background:#f86100;
+ color:#fff;
+}
+/*警示性文本*/
+.yb-tip-warning{
+ color:#f86100;
+}
+/*提示性文本,带有链接*/
+.yb-tip a{
+ color:#29528b;
+ text-decoration:underline;
+}
+/*输入框高度*/
+.yb-input{
+ height:30px;
+}
+
+/*字体大小*/
+.yb-font6{ font-size:16px;}
+.yb-font4{ font-size:14px;}
+.yb-font2{ font-size:12px;}
+
+.head-self{
+ width:30px;
+ height:30px;
+}
+.yb-gongyue{
+ font-family:microsoft yahei;
+ border-top:none;
+ font-size: 20px;
+ line-height:48px;
+ background-color: #1392A1;
+ color: #000;
+ padding:0 8px;
+}
+
+html,body,p,h1,h2,h3,h4,h5,h6,form,input,textarea,select,button,fieldset,legend,img,ul,ol,li,dl,dt,dd,th,td,pre,blockquote{margin:0;padding:0}
+html{height:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased}
+body{background: #FFF;color:#000;}
+body,button,input,select,textarea,h2,h3,h4,h5,h6{font:14px 'Hiragino Sans GB', 'Microsoft Yahei', '微软雅黑', '宋体', \5b8b\4f53, Tahoma, Arial}
+img,fieldset{border:0;vertical-align:middle}
+input{padding:0;margin:0;outline:none;}
+a{text-decoration:none;color:#4c4c4c;}
+a:hover{text-decoration:none;}
+ul,li,ol{list-style:none}
+img{max-width:100%;}
+.clear{clear:both;height:0;line-height:0;font-size:0;visibility:hidden;overflow:hidden}
+.clearfix:after{visibility: hidden;display: block;font-size: 0;content: " ";clear: both;height: 0;zoom:1;}
+.l{float:left;}.r{float:right;}
+/*reset样式重置*/
+
+.menwrap{position:fixed;right:0;bottom:0;width:100%;height:50px;z-index:4;}
+/*.btn-open-close{margin-top:5px;margin-right:5px;float:right;width:40px;height:40px;line-height:50px;border-radius:20px;-webkit-border-radius:20px;background:#000 url(ex11.png) no-repeat center center;background-size:20px 20px;opacity:0.5;box-sizing:border-box;-webkit-box-sizing:border-box;}*/
+.expan3{width:50px;height:50px;margin-top:0;margin-right:0;border-radius:0;-webkit-border-radius:0;opacity:1;border-top:1px solid #b3b3b3;border-left:1px solid #b3b3b3;background:#e6e6e6;box-sizing:border-box;-webkit-box-sizing:border-box;}
+/*.expan4{width:40px;height:40px;margin-left:4px;margin-top:4px;background:#000 url(ex11.png) no-repeat center center;background-size:20px 20px;border-radius:20px;-webkit-border-radius:20px;opacity:0.5;display:none;}*/
+.btn4{position:relative;z-index:3;bottom:0;border-top:1px solid #b3b3b3;background:#e6e6e6;text-align:center;box-sizing:border-box;-webkit-box-sizing:border-box;display:block;}
+.menu{position:relative;float:left;width:25%;height:50px;line-height:40px;background:#e6e6e6;border-right:1px solid #b3b3b3;box-sizing:border-box;-webkit-box-sizing:border-box;}
+.menu:last-child{border-right:none;}
+.new-sub{position:absolute;bottom:50px;z-index:-1;width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;display:none;}
+.new-sub li{background:#e6e6e6;float:none;box-sizing:border-box;-webkit-box-sizing:border-box;border-bottom:1px solid #b3b3b3;border-top:1px solid #f2f2f2;}
+.new-sub li a{display:block;height:50px;line-height:50px;text-align:left;background:#e6e6e6;color:#333;border:none;text-align:center;font-size:16px;}
+.btn-fullbg{width:100%;height:100%;background:rgba(0,0,0,.2);position:fixed;top:0;left:0;z-index:2;display:none;}
+.sanjiao{position:absolute;bottom:5px;right:5px;width:0;height:0;border:5px solid transparent;border-right:5px solid #000;border-bottom:5px solid #000;opacity:.5;}
+.bt-name{font-size:16px;color:#000;}
+.bt-name a{display:block;font-size:16px;color:#000;}
diff --git a/release/asset/fonts/icomoon.ttf b/release/asset/fonts/icomoon.ttf
new file mode 100644
index 0000000..0e59e0d
Binary files /dev/null and b/release/asset/fonts/icomoon.ttf differ
diff --git a/release/asset/fonts/mui.ttf b/release/asset/fonts/mui.ttf
new file mode 100644
index 0000000..45d3b04
Binary files /dev/null and b/release/asset/fonts/mui.ttf differ
diff --git a/release/asset/iconfont/demo.css b/release/asset/iconfont/demo.css
new file mode 100644
index 0000000..a67054a
--- /dev/null
+++ b/release/asset/iconfont/demo.css
@@ -0,0 +1,539 @@
+/* Logo 字体 */
+@font-face {
+ font-family: "iconfont logo";
+ src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
+ src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
+}
+
+.logo {
+ font-family: "iconfont logo";
+ font-size: 160px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/* tabs */
+.nav-tabs {
+ position: relative;
+}
+
+.nav-tabs .nav-more {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ height: 42px;
+ line-height: 42px;
+ color: #666;
+}
+
+#tabs {
+ border-bottom: 1px solid #eee;
+}
+
+#tabs li {
+ cursor: pointer;
+ width: 100px;
+ height: 40px;
+ line-height: 40px;
+ text-align: center;
+ font-size: 16px;
+ border-bottom: 2px solid transparent;
+ position: relative;
+ z-index: 1;
+ margin-bottom: -1px;
+ color: #666;
+}
+
+
+#tabs .active {
+ border-bottom-color: #f00;
+ color: #222;
+}
+
+.tab-container .content {
+ display: none;
+}
+
+/* 页面布局 */
+.main {
+ padding: 30px 100px;
+ width: 960px;
+ margin: 0 auto;
+}
+
+.main .logo {
+ color: #333;
+ text-align: left;
+ margin-bottom: 30px;
+ line-height: 1;
+ height: 110px;
+ margin-top: -50px;
+ overflow: hidden;
+ *zoom: 1;
+}
+
+.main .logo a {
+ font-size: 160px;
+ color: #333;
+}
+
+.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;
+ overflow: hidden;
+ *zoom: 1;
+}
+
+.icon_lists li {
+ width: 100px;
+ margin-bottom: 10px;
+ margin-right: 20px;
+ text-align: center;
+ list-style: none !important;
+ cursor: default;
+}
+
+.icon_lists li .code-name {
+ line-height: 1.2;
+}
+
+.icon_lists .icon {
+ display: block;
+ height: 100px;
+ line-height: 100px;
+ font-size: 42px;
+ margin: 10px auto;
+ color: #333;
+ -webkit-transition: font-size 0.25s linear, width 0.25s linear;
+ -moz-transition: font-size 0.25s linear, width 0.25s linear;
+ transition: font-size 0.25s linear, width 0.25s linear;
+}
+
+.icon_lists .icon:hover {
+ font-size: 100px;
+}
+
+.icon_lists .svg-icon {
+ /* 通过设置 font-size 来改变图标大小 */
+ width: 1em;
+ /* 图标和文字相邻时,垂直对齐 */
+ vertical-align: -0.15em;
+ /* 通过设置 color 来改变 SVG 的颜色/fill */
+ fill: currentColor;
+ /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
+ normalize.css 中也包含这行 */
+ overflow: hidden;
+}
+
+.icon_lists li .name,
+.icon_lists li .code-name {
+ color: #666;
+}
+
+/* markdown 样式 */
+.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 {
+ 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 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;
+}
+
+.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;
+}
+
+/* 代码高亮 */
+/* PrismJS 1.15.0
+https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+code[class*="language-"],
+pre[class*="language-"] {
+ color: black;
+ background: none;
+ text-shadow: 0 1px white;
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ line-height: 1.5;
+
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection,
+pre[class*="language-"] ::-moz-selection,
+code[class*="language-"]::-moz-selection,
+code[class*="language-"] ::-moz-selection {
+ text-shadow: none;
+ background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection,
+pre[class*="language-"] ::selection,
+code[class*="language-"]::selection,
+code[class*="language-"] ::selection {
+ text-shadow: none;
+ background: #b3d4fc;
+}
+
+@media print {
+
+ code[class*="language-"],
+ pre[class*="language-"] {
+ text-shadow: none;
+ }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+ padding: 1em;
+ margin: .5em 0;
+ overflow: auto;
+}
+
+:not(pre)>code[class*="language-"],
+pre[class*="language-"] {
+ background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre)>code[class*="language-"] {
+ padding: .1em;
+ border-radius: .3em;
+ white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: slategray;
+}
+
+.token.punctuation {
+ color: #999;
+}
+
+.namespace {
+ opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+ color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+ color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+ color: #9a6e3a;
+ background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+ color: #07a;
+}
+
+.token.function,
+.token.class-name {
+ color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+ color: #e90;
+}
+
+.token.important,
+.token.bold {
+ font-weight: bold;
+}
+
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
diff --git a/release/asset/iconfont/demo_index.html b/release/asset/iconfont/demo_index.html
new file mode 100644
index 0000000..39d37f5
--- /dev/null
+++ b/release/asset/iconfont/demo_index.html
@@ -0,0 +1,483 @@
+
+
+
+
+ iconfont Demo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unicode
+ Font class
+ Symbol
+
+
+
+
+
+
+
+
+
+ 账户
+ 󰂻
+
+
+
+
+ 图片
+ 󰄷
+
+
+
+
+ 视频
+ 󰅢
+
+
+
+
+ 电话_填充
+ 
+
+
+
+
+ 加号
+ 
+
+
+
+
+ 红包
+ 
+
+
+
+
+ 语音
+ 
+
+
+
+
+ 键盘
+ 
+
+
+
+
+ Expression-1
+ 
+
+
+
+
+ 237拍照
+ 
+
+
+
+
+ 导航地址
+ 
+
+
+
+
+ 发送
+ 
+
+
+
+
+ 转账
+ 
+
+
+
+
+
Unicode 引用
+
+
+
Unicode 是字体在网页端最原始的应用方式,特点是:
+
+ 支持按字体的方式去动态调整图标大小,颜色等等。
+ 默认情况下不支持多色,直接添加多色图标会自动去色。
+
+
+ 注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)
+
+
Unicode 使用步骤如下:
+
第一步:拷贝项目下面生成的 @font-face
+
@font-face {
+ font-family: 'iconfont';
+ src: url('iconfont.ttf?t=1656507676256') format('truetype');
+}
+
+
第二步:定义使用 iconfont 的样式
+
.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+
第三步:挑选相应图标并获取字体编码,应用于页面
+
+<span class="iconfont">3</span>
+
+
+ "iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。
+
+
+
+
+
+
+
+
+
+ 账户
+
+ .icon-zhanghu
+
+
+
+
+
+
+ 图片
+
+ .icon-tupian
+
+
+
+
+
+
+ 视频
+
+ .icon-shipin
+
+
+
+
+
+
+ 电话_填充
+
+ .icon-dianhuatianchong
+
+
+
+
+
+
+ 加号
+
+ .icon-jiahao
+
+
+
+
+
+
+ 红包
+
+ .icon-hongbao
+
+
+
+
+
+
+ 语音
+
+ .icon-yuyin
+
+
+
+
+
+
+ 键盘
+
+ .icon-jianpan
+
+
+
+
+
+
+ Expression-1
+
+ .icon-7biaoqing-1
+
+
+
+
+
+
+ 237拍照
+
+ .icon-paizhao
+
+
+
+
+
+
+ 导航地址
+
+ .icon-daohangdizhi
+
+
+
+
+
+
+ 发送
+
+ .icon-fasong
+
+
+
+
+
+
+ 转账
+
+ .icon-zhuanzhang
+
+
+
+
+
+
font-class 引用
+
+
+
font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。
+
与 Unicode 使用方式相比,具有如下特点:
+
+ 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
+ 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
+
+
使用步骤如下:
+
第一步:引入项目下面生成的 fontclass 代码:
+
<link rel="stylesheet" href="./iconfont.css">
+
+
第二步:挑选相应图标并获取类名,应用于页面:
+
<span class="iconfont icon-xxx"></span>
+
+
+ "
+ iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。
+
+
+
+
+
+
+
+
+
+
+ 账户
+ #icon-zhanghu
+
+
+
+
+
+
+ 图片
+ #icon-tupian
+
+
+
+
+
+
+ 视频
+ #icon-shipin
+
+
+
+
+
+
+ 电话_填充
+ #icon-dianhuatianchong
+
+
+
+
+
+
+ 加号
+ #icon-jiahao
+
+
+
+
+
+
+ 红包
+ #icon-hongbao
+
+
+
+
+
+
+ 语音
+ #icon-yuyin
+
+
+
+
+
+
+ 键盘
+ #icon-jianpan
+
+
+
+
+
+
+ Expression-1
+ #icon-7biaoqing-1
+
+
+
+
+
+
+ 237拍照
+ #icon-paizhao
+
+
+
+
+
+
+ 导航地址
+ #icon-daohangdizhi
+
+
+
+
+
+
+ 发送
+ #icon-fasong
+
+
+
+
+
+
+ 转账
+ #icon-zhuanzhang
+
+
+
+
+
Symbol 引用
+
+
+
这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章
+ 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:
+
+ 支持多色图标了,不再受单色限制。
+ 通过一些技巧,支持像字体那样,通过 font-size
, color
来调整样式。
+ 兼容性较差,支持 IE9+,及现代浏览器。
+ 浏览器渲染 SVG 的性能一般,还不如 png。
+
+
使用步骤如下:
+
第一步:引入项目下面生成的 symbol 代码:
+
<script src="./iconfont.js"></script>
+
+
第二步:加入通用 CSS 代码(引入一次就行):
+
<style>
+.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/release/asset/iconfont/iconfont.css b/release/asset/iconfont/iconfont.css
new file mode 100644
index 0000000..9d73007
--- /dev/null
+++ b/release/asset/iconfont/iconfont.css
@@ -0,0 +1,65 @@
+@font-face {
+ font-family: "iconfont"; /* Project id */
+ src: url('iconfont.ttf?t=1656507676256') format('truetype');
+}
+
+.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-zhanghu:before {
+ content: "\f00bb";
+}
+
+.icon-tupian:before {
+ content: "\f0137";
+}
+
+.icon-shipin:before {
+ content: "\f0162";
+}
+
+.icon-dianhuatianchong:before {
+ content: "\e678";
+}
+
+.icon-jiahao:before {
+ content: "\e726";
+}
+
+.icon-hongbao:before {
+ content: "\e784";
+}
+
+.icon-yuyin:before {
+ content: "\e6e1";
+}
+
+.icon-jianpan:before {
+ content: "\e608";
+}
+
+.icon-7biaoqing-1:before {
+ content: "\e667";
+}
+
+.icon-paizhao:before {
+ content: "\e8d1";
+}
+
+.icon-daohangdizhi:before {
+ content: "\e65e";
+}
+
+.icon-fasong:before {
+ content: "\e6bd";
+}
+
+.icon-zhuanzhang:before {
+ content: "\e663";
+}
+
diff --git a/release/asset/iconfont/iconfont.js b/release/asset/iconfont/iconfont.js
new file mode 100644
index 0000000..8676de1
--- /dev/null
+++ b/release/asset/iconfont/iconfont.js
@@ -0,0 +1 @@
+!function(t){var l,c,a,e,o,i=' ',n=(n=document.getElementsByTagName("script"))[n.length-1].getAttribute("data-injectcss"),h=function(t,l){l.parentNode.insertBefore(t,l)};if(n&&!t.__iconfont__svg__cssinject__){t.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(t){console&&console.log(t)}}function s(){o||(o=!0,a())}function d(){try{e.documentElement.doScroll("left")}catch(t){return void setTimeout(d,50)}s()}l=function(){var t,l=document.createElement("div");l.innerHTML=i,i=null,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(t=document.body).firstChild?h(l,t.firstChild):t.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(c=function(){document.removeEventListener("DOMContentLoaded",c,!1),l()},document.addEventListener("DOMContentLoaded",c,!1)):document.attachEvent&&(a=l,e=t.document,o=!1,d(),e.onreadystatechange=function(){"complete"==e.readyState&&(e.onreadystatechange=null,s())})}(window);
\ No newline at end of file
diff --git a/release/asset/iconfont/iconfont.json b/release/asset/iconfont/iconfont.json
new file mode 100644
index 0000000..ede654a
--- /dev/null
+++ b/release/asset/iconfont/iconfont.json
@@ -0,0 +1,100 @@
+{
+ "id": "",
+ "name": "",
+ "font_family": "iconfont",
+ "css_prefix_text": "icon-",
+ "description": "",
+ "glyphs": [
+ {
+ "icon_id": "1116",
+ "name": "账户",
+ "font_class": "zhanghu",
+ "unicode": "f00bb",
+ "unicode_decimal": 983227
+ },
+ {
+ "icon_id": "1240",
+ "name": "图片",
+ "font_class": "tupian",
+ "unicode": "f0137",
+ "unicode_decimal": 983351
+ },
+ {
+ "icon_id": "1283",
+ "name": "视频",
+ "font_class": "shipin",
+ "unicode": "f0162",
+ "unicode_decimal": 983394
+ },
+ {
+ "icon_id": "145699",
+ "name": "电话_填充",
+ "font_class": "dianhuatianchong",
+ "unicode": "e678",
+ "unicode_decimal": 59000
+ },
+ {
+ "icon_id": "577312",
+ "name": "加号",
+ "font_class": "jiahao",
+ "unicode": "e726",
+ "unicode_decimal": 59174
+ },
+ {
+ "icon_id": "579598",
+ "name": "红包",
+ "font_class": "hongbao",
+ "unicode": "e784",
+ "unicode_decimal": 59268
+ },
+ {
+ "icon_id": "993873",
+ "name": "语音",
+ "font_class": "yuyin",
+ "unicode": "e6e1",
+ "unicode_decimal": 59105
+ },
+ {
+ "icon_id": "1025053",
+ "name": "键盘",
+ "font_class": "jianpan",
+ "unicode": "e608",
+ "unicode_decimal": 58888
+ },
+ {
+ "icon_id": "1299910",
+ "name": "Expression-1",
+ "font_class": "7biaoqing-1",
+ "unicode": "e667",
+ "unicode_decimal": 58983
+ },
+ {
+ "icon_id": "1727477",
+ "name": "237拍照",
+ "font_class": "paizhao",
+ "unicode": "e8d1",
+ "unicode_decimal": 59601
+ },
+ {
+ "icon_id": "5353505",
+ "name": "导航地址",
+ "font_class": "daohangdizhi",
+ "unicode": "e65e",
+ "unicode_decimal": 58974
+ },
+ {
+ "icon_id": "8361763",
+ "name": "发送",
+ "font_class": "fasong",
+ "unicode": "e6bd",
+ "unicode_decimal": 59069
+ },
+ {
+ "icon_id": "15727005",
+ "name": "转账",
+ "font_class": "zhuanzhang",
+ "unicode": "e663",
+ "unicode_decimal": 58979
+ }
+ ]
+}
diff --git a/release/asset/iconfont/iconfont.ttf b/release/asset/iconfont/iconfont.ttf
new file mode 100644
index 0000000..7625103
Binary files /dev/null and b/release/asset/iconfont/iconfont.ttf differ
diff --git a/release/asset/images/address.png b/release/asset/images/address.png
new file mode 100644
index 0000000..6c1ad15
Binary files /dev/null and b/release/asset/images/address.png differ
diff --git a/release/asset/images/api.png b/release/asset/images/api.png
new file mode 100644
index 0000000..cb1ad15
Binary files /dev/null and b/release/asset/images/api.png differ
diff --git a/release/asset/images/audio.png b/release/asset/images/audio.png
new file mode 100644
index 0000000..07a4a1a
Binary files /dev/null and b/release/asset/images/audio.png differ
diff --git a/release/asset/images/audiocall.png b/release/asset/images/audiocall.png
new file mode 100644
index 0000000..aeb7897
Binary files /dev/null and b/release/asset/images/audiocall.png differ
diff --git a/release/asset/images/audiol.png b/release/asset/images/audiol.png
new file mode 100644
index 0000000..b77bbbd
Binary files /dev/null and b/release/asset/images/audiol.png differ
diff --git a/release/asset/images/audiom.png b/release/asset/images/audiom.png
new file mode 100644
index 0000000..e79760f
Binary files /dev/null and b/release/asset/images/audiom.png differ
diff --git a/release/asset/images/audior.png b/release/asset/images/audior.png
new file mode 100644
index 0000000..2b0e32d
Binary files /dev/null and b/release/asset/images/audior.png differ
diff --git a/release/asset/images/avatar0.png b/release/asset/images/avatar0.png
new file mode 100644
index 0000000..fb95302
Binary files /dev/null and b/release/asset/images/avatar0.png differ
diff --git a/release/asset/images/avatar1.jpg b/release/asset/images/avatar1.jpg
new file mode 100644
index 0000000..99e1702
Binary files /dev/null and b/release/asset/images/avatar1.jpg differ
diff --git a/release/asset/images/avatar2.jpg b/release/asset/images/avatar2.jpg
new file mode 100644
index 0000000..1ef8da3
Binary files /dev/null and b/release/asset/images/avatar2.jpg differ
diff --git a/release/asset/images/avatar3.jpg b/release/asset/images/avatar3.jpg
new file mode 100644
index 0000000..8b076db
Binary files /dev/null and b/release/asset/images/avatar3.jpg differ
diff --git a/release/asset/images/avatar4.jpg b/release/asset/images/avatar4.jpg
new file mode 100644
index 0000000..3fdaec0
Binary files /dev/null and b/release/asset/images/avatar4.jpg differ
diff --git a/release/asset/images/avatar5.jpg b/release/asset/images/avatar5.jpg
new file mode 100644
index 0000000..39e9d8d
Binary files /dev/null and b/release/asset/images/avatar5.jpg differ
diff --git a/release/asset/images/banner-android8.jpg b/release/asset/images/banner-android8.jpg
new file mode 100644
index 0000000..51ec7f1
Binary files /dev/null and b/release/asset/images/banner-android8.jpg differ
diff --git a/release/asset/images/banner-api-cloud.jpg b/release/asset/images/banner-api-cloud.jpg
new file mode 100644
index 0000000..6d697ae
Binary files /dev/null and b/release/asset/images/banner-api-cloud.jpg differ
diff --git a/release/asset/images/banner-bg-1.jpg b/release/asset/images/banner-bg-1.jpg
new file mode 100644
index 0000000..5de354c
Binary files /dev/null and b/release/asset/images/banner-bg-1.jpg differ
diff --git a/release/asset/images/banner-bg-2.jpg b/release/asset/images/banner-bg-2.jpg
new file mode 100644
index 0000000..2936848
Binary files /dev/null and b/release/asset/images/banner-bg-2.jpg differ
diff --git a/release/asset/images/banner-bg-3.jpg b/release/asset/images/banner-bg-3.jpg
new file mode 100644
index 0000000..8753247
Binary files /dev/null and b/release/asset/images/banner-bg-3.jpg differ
diff --git a/release/asset/images/banner-phone-notification-1.png b/release/asset/images/banner-phone-notification-1.png
new file mode 100644
index 0000000..fbdaa7a
Binary files /dev/null and b/release/asset/images/banner-phone-notification-1.png differ
diff --git a/release/asset/images/banner-phone-notification-2.png b/release/asset/images/banner-phone-notification-2.png
new file mode 100644
index 0000000..061774a
Binary files /dev/null and b/release/asset/images/banner-phone-notification-2.png differ
diff --git a/release/asset/images/banner-phone-notification-3.png b/release/asset/images/banner-phone-notification-3.png
new file mode 100644
index 0000000..1966046
Binary files /dev/null and b/release/asset/images/banner-phone-notification-3.png differ
diff --git a/release/asset/images/banner-phone.png b/release/asset/images/banner-phone.png
new file mode 100644
index 0000000..27501a9
Binary files /dev/null and b/release/asset/images/banner-phone.png differ
diff --git a/release/asset/images/betatech.jpg b/release/asset/images/betatech.jpg
new file mode 100644
index 0000000..b42bb72
Binary files /dev/null and b/release/asset/images/betatech.jpg differ
diff --git a/release/asset/images/blockchain.png b/release/asset/images/blockchain.png
new file mode 100644
index 0000000..526df01
Binary files /dev/null and b/release/asset/images/blockchain.png differ
diff --git a/release/asset/images/camera.png b/release/asset/images/camera.png
new file mode 100644
index 0000000..30c46e9
Binary files /dev/null and b/release/asset/images/camera.png differ
diff --git a/release/asset/images/community.png b/release/asset/images/community.png
new file mode 100644
index 0000000..0e3ab71
Binary files /dev/null and b/release/asset/images/community.png differ
diff --git a/release/asset/images/docker.png b/release/asset/images/docker.png
new file mode 100644
index 0000000..7257cf2
Binary files /dev/null and b/release/asset/images/docker.png differ
diff --git a/release/asset/images/exchange.png b/release/asset/images/exchange.png
new file mode 100644
index 0000000..94041ec
Binary files /dev/null and b/release/asset/images/exchange.png differ
diff --git a/release/asset/images/favicon.ico b/release/asset/images/favicon.ico
new file mode 100644
index 0000000..f3f6942
Binary files /dev/null and b/release/asset/images/favicon.ico differ
diff --git a/release/asset/images/feature-bg.jpg b/release/asset/images/feature-bg.jpg
new file mode 100644
index 0000000..31f915b
Binary files /dev/null and b/release/asset/images/feature-bg.jpg differ
diff --git a/release/asset/images/feature-icon-1.png b/release/asset/images/feature-icon-1.png
new file mode 100644
index 0000000..84f64df
Binary files /dev/null and b/release/asset/images/feature-icon-1.png differ
diff --git a/release/asset/images/feature-icon-2.png b/release/asset/images/feature-icon-2.png
new file mode 100644
index 0000000..6c13f9d
Binary files /dev/null and b/release/asset/images/feature-icon-2.png differ
diff --git a/release/asset/images/feature-icon-3.png b/release/asset/images/feature-icon-3.png
new file mode 100644
index 0000000..49c32a3
Binary files /dev/null and b/release/asset/images/feature-icon-3.png differ
diff --git a/release/asset/images/feature-icon-4.png b/release/asset/images/feature-icon-4.png
new file mode 100644
index 0000000..473fb31
Binary files /dev/null and b/release/asset/images/feature-icon-4.png differ
diff --git a/release/asset/images/feature-icon-5.png b/release/asset/images/feature-icon-5.png
new file mode 100644
index 0000000..7515bce
Binary files /dev/null and b/release/asset/images/feature-icon-5.png differ
diff --git a/release/asset/images/feature-icon-6.png b/release/asset/images/feature-icon-6.png
new file mode 100644
index 0000000..f34079e
Binary files /dev/null and b/release/asset/images/feature-icon-6.png differ
diff --git a/release/asset/images/function-1.jpg b/release/asset/images/function-1.jpg
new file mode 100644
index 0000000..54ac960
Binary files /dev/null and b/release/asset/images/function-1.jpg differ
diff --git a/release/asset/images/function-2.jpg b/release/asset/images/function-2.jpg
new file mode 100644
index 0000000..9679bc1
Binary files /dev/null and b/release/asset/images/function-2.jpg differ
diff --git a/release/asset/images/function-3.jpg b/release/asset/images/function-3.jpg
new file mode 100644
index 0000000..1ecae22
Binary files /dev/null and b/release/asset/images/function-3.jpg differ
diff --git a/release/asset/images/function-iphone.png b/release/asset/images/function-iphone.png
new file mode 100644
index 0000000..1fb399f
Binary files /dev/null and b/release/asset/images/function-iphone.png differ
diff --git a/release/asset/images/g1.jpg b/release/asset/images/g1.jpg
new file mode 100644
index 0000000..b9b3466
Binary files /dev/null and b/release/asset/images/g1.jpg differ
diff --git a/release/asset/images/g2.png b/release/asset/images/g2.png
new file mode 100644
index 0000000..07f4ae4
Binary files /dev/null and b/release/asset/images/g2.png differ
diff --git a/release/asset/images/g3.png b/release/asset/images/g3.png
new file mode 100644
index 0000000..07f4ae4
Binary files /dev/null and b/release/asset/images/g3.png differ
diff --git a/release/asset/images/kbord.png b/release/asset/images/kbord.png
new file mode 100644
index 0000000..ec9a005
Binary files /dev/null and b/release/asset/images/kbord.png differ
diff --git a/release/asset/images/kf1.png b/release/asset/images/kf1.png
new file mode 100644
index 0000000..385ebf2
Binary files /dev/null and b/release/asset/images/kf1.png differ
diff --git a/release/asset/images/kf2.png b/release/asset/images/kf2.png
new file mode 100644
index 0000000..a94b951
Binary files /dev/null and b/release/asset/images/kf2.png differ
diff --git a/release/asset/images/login-baner.png b/release/asset/images/login-baner.png
new file mode 100644
index 0000000..b887a61
Binary files /dev/null and b/release/asset/images/login-baner.png differ
diff --git a/release/asset/images/logo-white-1.png b/release/asset/images/logo-white-1.png
new file mode 100644
index 0000000..c09c4c1
Binary files /dev/null and b/release/asset/images/logo-white-1.png differ
diff --git a/release/asset/images/logo-white-2.png b/release/asset/images/logo-white-2.png
new file mode 100644
index 0000000..6b8e0c5
Binary files /dev/null and b/release/asset/images/logo-white-2.png differ
diff --git a/release/asset/images/logo-white-3.png b/release/asset/images/logo-white-3.png
new file mode 100644
index 0000000..4986ea8
Binary files /dev/null and b/release/asset/images/logo-white-3.png differ
diff --git a/release/asset/images/logo-white.png b/release/asset/images/logo-white.png
new file mode 100644
index 0000000..19ad70e
Binary files /dev/null and b/release/asset/images/logo-white.png differ
diff --git a/release/asset/images/logo.jpg b/release/asset/images/logo.jpg
new file mode 100644
index 0000000..1979ea2
Binary files /dev/null and b/release/asset/images/logo.jpg differ
diff --git a/release/asset/images/mod.png b/release/asset/images/mod.png
new file mode 100644
index 0000000..8e7cf0d
Binary files /dev/null and b/release/asset/images/mod.png differ
diff --git a/release/asset/images/more.png b/release/asset/images/more.png
new file mode 100644
index 0000000..7160548
Binary files /dev/null and b/release/asset/images/more.png differ
diff --git a/release/asset/images/page.png b/release/asset/images/page.png
new file mode 100644
index 0000000..1fe8155
Binary files /dev/null and b/release/asset/images/page.png differ
diff --git a/release/asset/images/person.png b/release/asset/images/person.png
new file mode 100644
index 0000000..bf98d20
Binary files /dev/null and b/release/asset/images/person.png differ
diff --git a/release/asset/images/product-banner.jpg b/release/asset/images/product-banner.jpg
new file mode 100644
index 0000000..11ead54
Binary files /dev/null and b/release/asset/images/product-banner.jpg differ
diff --git a/release/asset/images/product-intro-1.png b/release/asset/images/product-intro-1.png
new file mode 100644
index 0000000..c10a213
Binary files /dev/null and b/release/asset/images/product-intro-1.png differ
diff --git a/release/asset/images/product-intro-2.png b/release/asset/images/product-intro-2.png
new file mode 100644
index 0000000..8a5c9da
Binary files /dev/null and b/release/asset/images/product-intro-2.png differ
diff --git a/release/asset/images/product-intro-3.png b/release/asset/images/product-intro-3.png
new file mode 100644
index 0000000..050251a
Binary files /dev/null and b/release/asset/images/product-intro-3.png differ
diff --git a/release/asset/images/product-intro-4.png b/release/asset/images/product-intro-4.png
new file mode 100644
index 0000000..9963dc6
Binary files /dev/null and b/release/asset/images/product-intro-4.png differ
diff --git a/release/asset/images/product-kefu-1.png b/release/asset/images/product-kefu-1.png
new file mode 100644
index 0000000..b42046a
Binary files /dev/null and b/release/asset/images/product-kefu-1.png differ
diff --git a/release/asset/images/product-kefu-2.png b/release/asset/images/product-kefu-2.png
new file mode 100644
index 0000000..20fa2ad
Binary files /dev/null and b/release/asset/images/product-kefu-2.png differ
diff --git a/release/asset/images/qrcode.jpg b/release/asset/images/qrcode.jpg
new file mode 100644
index 0000000..db457c6
Binary files /dev/null and b/release/asset/images/qrcode.jpg differ
diff --git a/release/asset/images/redpackage.png b/release/asset/images/redpackage.png
new file mode 100644
index 0000000..4368d66
Binary files /dev/null and b/release/asset/images/redpackage.png differ
diff --git a/release/asset/images/sdk-bg.jpg b/release/asset/images/sdk-bg.jpg
new file mode 100644
index 0000000..5523f9b
Binary files /dev/null and b/release/asset/images/sdk-bg.jpg differ
diff --git a/release/asset/images/send.png b/release/asset/images/send.png
new file mode 100644
index 0000000..984d3be
Binary files /dev/null and b/release/asset/images/send.png differ
diff --git a/release/asset/images/showcase-logo-1.png b/release/asset/images/showcase-logo-1.png
new file mode 100644
index 0000000..f55e52a
Binary files /dev/null and b/release/asset/images/showcase-logo-1.png differ
diff --git a/release/asset/images/showcase-logo-10.png b/release/asset/images/showcase-logo-10.png
new file mode 100644
index 0000000..64b3271
Binary files /dev/null and b/release/asset/images/showcase-logo-10.png differ
diff --git a/release/asset/images/showcase-logo-11.png b/release/asset/images/showcase-logo-11.png
new file mode 100644
index 0000000..a4f7eaa
Binary files /dev/null and b/release/asset/images/showcase-logo-11.png differ
diff --git a/release/asset/images/showcase-logo-12.png b/release/asset/images/showcase-logo-12.png
new file mode 100644
index 0000000..bfe7774
Binary files /dev/null and b/release/asset/images/showcase-logo-12.png differ
diff --git a/release/asset/images/showcase-logo-13.png b/release/asset/images/showcase-logo-13.png
new file mode 100644
index 0000000..2c77e5f
Binary files /dev/null and b/release/asset/images/showcase-logo-13.png differ
diff --git a/release/asset/images/showcase-logo-14.png b/release/asset/images/showcase-logo-14.png
new file mode 100644
index 0000000..ef856cb
Binary files /dev/null and b/release/asset/images/showcase-logo-14.png differ
diff --git a/release/asset/images/showcase-logo-15.png b/release/asset/images/showcase-logo-15.png
new file mode 100644
index 0000000..78a7536
Binary files /dev/null and b/release/asset/images/showcase-logo-15.png differ
diff --git a/release/asset/images/showcase-logo-16.png b/release/asset/images/showcase-logo-16.png
new file mode 100644
index 0000000..807fe91
Binary files /dev/null and b/release/asset/images/showcase-logo-16.png differ
diff --git a/release/asset/images/showcase-logo-17.png b/release/asset/images/showcase-logo-17.png
new file mode 100644
index 0000000..53da7db
Binary files /dev/null and b/release/asset/images/showcase-logo-17.png differ
diff --git a/release/asset/images/showcase-logo-18.png b/release/asset/images/showcase-logo-18.png
new file mode 100644
index 0000000..ce5e15a
Binary files /dev/null and b/release/asset/images/showcase-logo-18.png differ
diff --git a/release/asset/images/showcase-logo-19.png b/release/asset/images/showcase-logo-19.png
new file mode 100644
index 0000000..9c706da
Binary files /dev/null and b/release/asset/images/showcase-logo-19.png differ
diff --git a/release/asset/images/showcase-logo-2.png b/release/asset/images/showcase-logo-2.png
new file mode 100644
index 0000000..710a358
Binary files /dev/null and b/release/asset/images/showcase-logo-2.png differ
diff --git a/release/asset/images/showcase-logo-20.png b/release/asset/images/showcase-logo-20.png
new file mode 100644
index 0000000..04727ee
Binary files /dev/null and b/release/asset/images/showcase-logo-20.png differ
diff --git a/release/asset/images/showcase-logo-21.png b/release/asset/images/showcase-logo-21.png
new file mode 100644
index 0000000..7a0d0af
Binary files /dev/null and b/release/asset/images/showcase-logo-21.png differ
diff --git a/release/asset/images/showcase-logo-22.png b/release/asset/images/showcase-logo-22.png
new file mode 100644
index 0000000..27deb4f
Binary files /dev/null and b/release/asset/images/showcase-logo-22.png differ
diff --git a/release/asset/images/showcase-logo-23.png b/release/asset/images/showcase-logo-23.png
new file mode 100644
index 0000000..23c26ca
Binary files /dev/null and b/release/asset/images/showcase-logo-23.png differ
diff --git a/release/asset/images/showcase-logo-24.png b/release/asset/images/showcase-logo-24.png
new file mode 100644
index 0000000..edabd10
Binary files /dev/null and b/release/asset/images/showcase-logo-24.png differ
diff --git a/release/asset/images/showcase-logo-25.png b/release/asset/images/showcase-logo-25.png
new file mode 100644
index 0000000..ee3a010
Binary files /dev/null and b/release/asset/images/showcase-logo-25.png differ
diff --git a/release/asset/images/showcase-logo-26.png b/release/asset/images/showcase-logo-26.png
new file mode 100644
index 0000000..05888e6
Binary files /dev/null and b/release/asset/images/showcase-logo-26.png differ
diff --git a/release/asset/images/showcase-logo-27.png b/release/asset/images/showcase-logo-27.png
new file mode 100644
index 0000000..e3ccdf6
Binary files /dev/null and b/release/asset/images/showcase-logo-27.png differ
diff --git a/release/asset/images/showcase-logo-28.png b/release/asset/images/showcase-logo-28.png
new file mode 100644
index 0000000..4c39e31
Binary files /dev/null and b/release/asset/images/showcase-logo-28.png differ
diff --git a/release/asset/images/showcase-logo-29.png b/release/asset/images/showcase-logo-29.png
new file mode 100644
index 0000000..4481114
Binary files /dev/null and b/release/asset/images/showcase-logo-29.png differ
diff --git a/release/asset/images/showcase-logo-3.png b/release/asset/images/showcase-logo-3.png
new file mode 100644
index 0000000..7cfabf5
Binary files /dev/null and b/release/asset/images/showcase-logo-3.png differ
diff --git a/release/asset/images/showcase-logo-30.png b/release/asset/images/showcase-logo-30.png
new file mode 100644
index 0000000..44206cd
Binary files /dev/null and b/release/asset/images/showcase-logo-30.png differ
diff --git a/release/asset/images/showcase-logo-31.png b/release/asset/images/showcase-logo-31.png
new file mode 100644
index 0000000..394dd48
Binary files /dev/null and b/release/asset/images/showcase-logo-31.png differ
diff --git a/release/asset/images/showcase-logo-32.png b/release/asset/images/showcase-logo-32.png
new file mode 100644
index 0000000..f5ccc12
Binary files /dev/null and b/release/asset/images/showcase-logo-32.png differ
diff --git a/release/asset/images/showcase-logo-33.png b/release/asset/images/showcase-logo-33.png
new file mode 100644
index 0000000..ec45655
Binary files /dev/null and b/release/asset/images/showcase-logo-33.png differ
diff --git a/release/asset/images/showcase-logo-34.png b/release/asset/images/showcase-logo-34.png
new file mode 100644
index 0000000..f3a45a9
Binary files /dev/null and b/release/asset/images/showcase-logo-34.png differ
diff --git a/release/asset/images/showcase-logo-35.png b/release/asset/images/showcase-logo-35.png
new file mode 100644
index 0000000..49e44eb
Binary files /dev/null and b/release/asset/images/showcase-logo-35.png differ
diff --git a/release/asset/images/showcase-logo-36.png b/release/asset/images/showcase-logo-36.png
new file mode 100644
index 0000000..ac645d8
Binary files /dev/null and b/release/asset/images/showcase-logo-36.png differ
diff --git a/release/asset/images/showcase-logo-37.png b/release/asset/images/showcase-logo-37.png
new file mode 100644
index 0000000..afcc8be
Binary files /dev/null and b/release/asset/images/showcase-logo-37.png differ
diff --git a/release/asset/images/showcase-logo-38.png b/release/asset/images/showcase-logo-38.png
new file mode 100644
index 0000000..ee49221
Binary files /dev/null and b/release/asset/images/showcase-logo-38.png differ
diff --git a/release/asset/images/showcase-logo-39.png b/release/asset/images/showcase-logo-39.png
new file mode 100644
index 0000000..aa9cc01
Binary files /dev/null and b/release/asset/images/showcase-logo-39.png differ
diff --git a/release/asset/images/showcase-logo-4.png b/release/asset/images/showcase-logo-4.png
new file mode 100644
index 0000000..4c6b042
Binary files /dev/null and b/release/asset/images/showcase-logo-4.png differ
diff --git a/release/asset/images/showcase-logo-40.png b/release/asset/images/showcase-logo-40.png
new file mode 100644
index 0000000..575311b
Binary files /dev/null and b/release/asset/images/showcase-logo-40.png differ
diff --git a/release/asset/images/showcase-logo-5.png b/release/asset/images/showcase-logo-5.png
new file mode 100644
index 0000000..2a8b81a
Binary files /dev/null and b/release/asset/images/showcase-logo-5.png differ
diff --git a/release/asset/images/showcase-logo-6.png b/release/asset/images/showcase-logo-6.png
new file mode 100644
index 0000000..e2b6c07
Binary files /dev/null and b/release/asset/images/showcase-logo-6.png differ
diff --git a/release/asset/images/showcase-logo-7.png b/release/asset/images/showcase-logo-7.png
new file mode 100644
index 0000000..fe4225f
Binary files /dev/null and b/release/asset/images/showcase-logo-7.png differ
diff --git a/release/asset/images/showcase-logo-8.png b/release/asset/images/showcase-logo-8.png
new file mode 100644
index 0000000..971334a
Binary files /dev/null and b/release/asset/images/showcase-logo-8.png differ
diff --git a/release/asset/images/showcase-logo-9.png b/release/asset/images/showcase-logo-9.png
new file mode 100644
index 0000000..c890e52
Binary files /dev/null and b/release/asset/images/showcase-logo-9.png differ
diff --git a/release/asset/images/smile.png b/release/asset/images/smile.png
new file mode 100644
index 0000000..3073a8f
Binary files /dev/null and b/release/asset/images/smile.png differ
diff --git a/release/asset/images/support-bg.jpg b/release/asset/images/support-bg.jpg
new file mode 100644
index 0000000..3e1fc59
Binary files /dev/null and b/release/asset/images/support-bg.jpg differ
diff --git a/release/asset/images/upload.png b/release/asset/images/upload.png
new file mode 100644
index 0000000..585959f
Binary files /dev/null and b/release/asset/images/upload.png differ
diff --git a/release/asset/images/user.jpg b/release/asset/images/user.jpg
new file mode 100644
index 0000000..81be94d
Binary files /dev/null and b/release/asset/images/user.jpg differ
diff --git a/release/asset/images/videocall.png b/release/asset/images/videocall.png
new file mode 100644
index 0000000..24f289e
Binary files /dev/null and b/release/asset/images/videocall.png differ
diff --git a/release/asset/js/foundation.min.js b/release/asset/js/foundation.min.js
new file mode 100644
index 0000000..ab213a6
--- /dev/null
+++ b/release/asset/js/foundation.min.js
@@ -0,0 +1,5 @@
+!function(t){function e(n){if(i[n])return i[n].exports;var s=i[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,e),s.l=!0,s.exports}var i={};return e.m=t,e.c=i,e.i=function(t){return t},e.d=function(t,i,n){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=35)}([function(t,e){t.exports=jQuery},function(t,e,i){"use strict";function n(){return"rtl"===r()("html").attr("dir")}function s(t,e){return t=t||6,Math.round(Math.pow(36,t+1)-Math.random()*Math.pow(36,t)).toString(36).slice(1)+(e?"-"+e:"")}function o(t){var e,i={transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend"},n=document.createElement("div");for(var s in i)"undefined"!=typeof n.style[s]&&(e=i[s]);return e?e:(e=setTimeout(function(){t.triggerHandler("transitionend",[t])},1),"transitionend")}i.d(e,"b",function(){return n}),i.d(e,"a",function(){return s}),i.d(e,"c",function(){return o});var a=i(0),r=i.n(a)},function(t,e,i){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function o(t){return s("undefined"!=typeof t.constructor.name?t.constructor.name:t.className)}i.d(e,"a",function(){return u});var a=i(0),r=(i.n(a),i(1)),l=function(){function t(t,e){for(var i=0;i').appendTo(document.head);var i,s=o()(".foundation-mq").css("font-family");i=n(s);for(var a in i)i.hasOwnProperty(a)&&t.queries.push({name:a,value:"only screen and (min-width: "+i[a]+")"});this.current=this._getCurrentSize(),this._watcher()},atLeast:function(t){var e=this.get(t);return!!e&&a(e).matches},is:function(t){return t=t.trim().split(" "),t.length>1&&"only"===t[1]?t[0]===this._getCurrentSize():this.atLeast(t[0])},get:function(t){for(var e in this.queries)if(this.queries.hasOwnProperty(e)){var i=this.queries[e];if(t===i.name)return i.value}return null},_getCurrentSize:function(){for(var t,e=0;e1&&void 0!==arguments[1]?arguments[1]:"zf";t.attr("role","menubar");var i=t.find("li").attr({role:"menuitem"}),n="is-"+e+"-submenu",o=n+"-item",a="is-"+e+"-submenu-parent",r="accordion"!==e;i.each(function(){var t=s()(this),i=t.children("ul");i.length&&(t.addClass(a),i.addClass("submenu "+n).attr({"data-submenu":""}),r&&(t.attr({"aria-haspopup":!0,"aria-label":t.children("a:first").text()}),"drilldown"===e&&t.attr({"aria-expanded":!1})),i.addClass("submenu "+n).attr({"data-submenu":"",role:"menu"}),"drilldown"===e&&i.attr({"aria-hidden":!0})),t.parent("[data-submenu]").length&&t.addClass("is-submenu-item "+o)})},Burn:function(t,e){var i="is-"+e+"-submenu",n=i+"-item",s="is-"+e+"-submenu-parent";t.find(">li, .menu, .menu > li").removeClass(i+" "+n+" "+s+" is-submenu-item submenu is-active").removeAttr("data-submenu").css("display","")}}},function(t,e,i){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}i.d(e,"a",function(){return d});var a=i(0),r=i.n(a),l=i(4),u=i(1),c=i(2),h=function(){function t(t,e){for(var i=0;i")):n.attr({"aria-controls":o,"aria-expanded":a,id:e}),s.attr({"aria-labelledby":e,"aria-hidden":!a,role:"group",id:o})}),this.$element.find("li").attr({role:"treeitem"});var e=this.$element.find(".is-active");if(e.length){var t=this;e.each(function(){t.down(r()(this))})}this._events()}},{key:"_events",value:function(){var t=this;this.$element.find("li").each(function(){var e=r()(this).children("[data-submenu]");e.length&&(t.options.submenuToggle?r()(this).children(".submenu-toggle").off("click.zf.accordionMenu").on("click.zf.accordionMenu",function(i){t.toggle(e)}):r()(this).children("a").off("click.zf.accordionMenu").on("click.zf.accordionMenu",function(i){i.preventDefault(),t.toggle(e)}))}).on("keydown.zf.accordionmenu",function(e){var i,n,s=r()(this),o=s.parent("ul").children("li"),a=s.children("[data-submenu]");o.each(function(t){if(r()(this).is(s))return i=o.eq(Math.max(0,t-1)).find("a").first(),n=o.eq(Math.min(t+1,o.length-1)).find("a").first(),r()(this).children("[data-submenu]:visible").length&&(n=s.find("li:first-child").find("a").first()),r()(this).is(":first-child")?i=s.parents("li").first().find("a").first():i.parents("li").first().children("[data-submenu]:visible").length&&(i=i.parents("li").find("li:last-child").find("a").first()),void(r()(this).is(":last-child")&&(n=s.parents("li").first().next("li").find("a").first()))}),l.a.handleKey(e,"AccordionMenu",{open:function(){a.is(":hidden")&&(t.down(a),a.find("li").first().find("a").first().focus())},close:function(){a.length&&!a.is(":hidden")?t.up(a):s.parent("[data-submenu]").length&&(t.up(s.parent("[data-submenu]")),s.parents("li").first().find("a").first().focus())},up:function(){return i.focus(),!0},down:function(){return n.focus(),!0},toggle:function(){return!t.options.submenuToggle&&(s.children("[data-submenu]").length?(t.toggle(s.children("[data-submenu]")),!0):void 0)},closeAll:function(){t.hideAll()},handled:function(t){t&&e.preventDefault(),e.stopImmediatePropagation()}})})}},{key:"hideAll",value:function(){this.up(this.$element.find("[data-submenu]"))}},{key:"showAll",value:function(){this.down(this.$element.find("[data-submenu]"))}},{key:"toggle",value:function(t){t.is(":animated")||(t.is(":hidden")?this.down(t):this.up(t))}},{key:"down",value:function(t){var e=this;this.options.multiOpen||this.up(this.$element.find(".is-active").not(t.parentsUntil(this.$element).add(t))),t.addClass("is-active").attr({"aria-hidden":!1}),this.options.submenuToggle?t.prev(".submenu-toggle").attr({"aria-expanded":!0}):t.parent(".is-accordion-submenu-parent").attr({"aria-expanded":!0}),t.slideDown(e.options.slideSpeed,function(){e.$element.trigger("down.zf.accordionMenu",[t])})}},{key:"up",value:function(t){var e=this;t.slideUp(e.options.slideSpeed,function(){e.$element.trigger("up.zf.accordionMenu",[t])});var i=t.find("[data-submenu]").slideUp(0).addBack().attr("aria-hidden",!0);this.options.submenuToggle?i.prev(".submenu-toggle").attr("aria-expanded",!1):i.parent(".is-accordion-submenu-parent").attr("aria-expanded",!1)}},{key:"_destroy",value:function(){this.$element.find("[data-submenu]").slideDown(0).css("display",""),this.$element.find("a").off("click.zf.accordionMenu"),this.options.submenuToggle&&(this.$element.find(".has-submenu-toggle").removeClass("has-submenu-toggle"),this.$element.find(".submenu-toggle").remove()),u.a.Burn(this.$element,"accordion")}}]),e}(h.a);f.defaults={slideSpeed:250,submenuToggle:!1,submenuToggleText:"Toggle menu",multiOpen:!0}},function(t,e,i){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}i.d(e,"a",function(){return p});var a=i(0),r=i.n(a),l=i(4),u=i(9),c=i(1),h=i(7),d=i(2),f=function(){function t(t,e){for(var i=0;i