LI WENHAO

Merge remote-tracking branch 'remotes/origin/master' into dev-admin

Showing 126 changed files with 5216 additions and 25 deletions
1 -# **Running Football** 1 +# Running Football Blog
2 2
3 -## contents 3 +![](https://pic.51yuansu.com/backgd/cover/00/53/30/5c176880767a5.jpg!/fw/780/quality/90/unsharp/true/compress/true)
4 +
5 +## Table of Contents
4 * About the Project 6 * About the Project
5 * Getting Started 7 * Getting Started
6 * Usage 8 * Usage
...@@ -9,41 +11,219 @@ ...@@ -9,41 +11,219 @@
9 * License 11 * License
10 * Contact 12 * Contact
11 13
14 +
12 --- 15 ---
13 *** 16 ***
14 --- 17 ---
15 18
16 19
17 -## **About the Project** 20 +## About the Project
21 +
22 +​ A minimalistic version of PC football blog. The front-end project is mainly built using Vue2 and Element-UI; it is built and packaged using Webpack5. The back-end project is mainly designed using the Node framework Koa2 and the MongoDB database.
18 23
19 -A minimalistic version of PC football blog. The front-end project is mainly built using Vue2 and Element-UI; it is built and packaged using Webpack5. The back-end project is mainly designed using the Node framework Koa2 and the MongoDB database. 24 +### The main function
20 -###The main function
21 25
22 #### Client 26 #### Client
23 27
24 -1. Article function: the content of the article supports `Markdown` syntax and the code is highlighted; 28 + 1. Article function: the content of the article supports `Markdown` syntax and the code is highlighted;
25 -2. Tag function: retrieve article data by tag classification; 29 + 2. Tag function: retrieve article data by tag classification;
26 -3. Sidebar function: click ranking, webmaster recommendation, tag classification, etc.; 30 + 3. Sidebar function: click ranking, webmaster recommendation, tag classification, etc.;
27 -4. Search function: search the title and abstract of the article by keywords, and support search highlighting; 31 + 4. Search function: search the title and abstract of the article by keywords, and support search highlighting;
28 -5. Message function: you can like, reply to comments, count comments and the total number of replies, support `Emoji` emoticons; 32 + 5. Message function: you can like, reply to comments, count comments and the total number of replies, support `Emoji` emoticons;
29 -6. Other functions: image lazy loading, paging, sidebar top and one-click top, etc.; 33 + 6. Other functions: image lazy loading, paging, sidebar top and one-click top, etc.
34 +
35 +#### Management
36 +
37 + 1. Authority management: CRUD administrator, who can assign authority;
38 + 2. Article management: CRUD articles, article covers support local upload, article content supports `Markdown` syntax editing;
39 + 3. Label management: CRUD label, label background color supports custom selection with `Vue-Color` plug-in;
40 + 4. Message management: RD comments and replies
41 +
42 +
43 +#### Built With
44 +
45 +[Node.js](https://nodejs.org/zh-cn/)
46 +
47 +[Element-UI](https://element.eleme.cn/#/zh-CN)
48 +
49 +[Webpack5](https://webpack.docschina.org/)
50 +
51 +[MongoDB](https://www.mongodb.com/)
52 +
53 +[Koa2](https://www.koajs.com.cn/)
54 +
55 +[Vue2](https://cn.vuejs.org/)
56 +
57 +
58 +
59 +## Getting Started
60 +
61 +1. Install and configure the git environment, use the git clone command to download the project
62 +
63 +2. Install and configure node, vue, mongodb environment
64 +
65 +3. View the project structure, import related dependencies, load the project configuration
66 +
67 +4. Configure the database environment and initialize user information
68 +
69 +5. Start the project
70 +
71 +
72 +
73 +### Installation
74 +
75 +#### Environmental preparation
76 +
77 +`node.js` Environment configuration installation
78 +
79 +`vue``vue-cli` Environment configuration installation
80 +
81 +`mongodb``mongodb Compass` Environment configuration installation
82 +
83 +
84 +
85 +## Usage
86 +
87 +> `Vue` project configuration start
88 +
89 +```shell
90 +-- `yarn` Instruction to install
91 +npm install -g yarn
92 +npm install yarn --save
93 +
94 +-- `Vue` project dependency introduction
95 +npm install
96 +cnpm install
97 +
98 +-- Extension component dependency introduction
99 +`vue-lazyload` Plugin:yarn add vue-lazyload -S
100 +`vue-color` plugin:yarn add vue-color -S
101 +`style-resources-loader` plugin:yarn add style-resources-loader -D
102 +`mdrkdown` syntax support related plugins:marked、highlightJs yarn add marked highlightJs -S
103 +```
104 +
105 +
106 +
107 +>`mongodb` configuration:
108 +
109 +`Mongodb` configuration information correspondence:`code/server/config.js`File configuration database information
110 +
111 +
112 +```powershell
113 +// Enter the `mongodb` installation directory and execute the command to start the ‘mongo’ service
114 +> mongo
115 +
116 +// Display database list
117 +> show dbs
118 +
119 +// Create a new `rfBlog` database
120 +> use rfBlog
121 +
122 +// Create an rf user in the `rfBlog` database with a password of 123456
123 +> db.createUser({user:"rf",pwd:"123456",roles:[{role:"readWrite",db:'rfBlog'}]})
124 +
125 +// Show who the library has users
126 +> show users
127 +
128 +// The database authenticates the user and password, and the result returns 1 to indicate successful authentication
129 +> db.auth("rf", "123456");
130 +```
131 +
132 +
133 +
134 +> Initialize system user information
135 +
136 +```powershell
137 +// Start `mongo` service
138 +> mongo
139 +
140 +// Display database list
141 +> show dbs
142 +
143 +// Access to the `wallBlog` database
144 +> use rfBlog
145 +
146 +// Insert a piece of data into the `users` collection of the library, account number: admin password: 123456
147 +> db.users.insert({
148 + "pwd" : "e10adc3949ba59abbe56e057f20f883e",
149 + "username" : "admin",
150 + "roles" : [
151 + "admin"
152 + ]
153 +})
154 +
155 + // Query the collection under the library (similar to a relational data table)
156 +> show collections
157 +
158 +// Query all data in the ‘users’ collection
159 +> db.users.find()
160 +```
161 +
162 +
163 +
164 +> Project start (the concept of front-end and back-end separation, the front-end interface and back-end interface services need to be started respectively)
165 +
166 +```powershell
167 +// Local development management page
168 +yarn dev:admin
169 +// Local development of the client page
170 +yarn dev:client
171 +// Start the background interface service
172 +yarn server
173 +```
174 +
175 +
176 +
177 +> Project packaging
178 +
179 +```powershell
180 +// Project packaging-management side
181 +yarn build:admin
182 +// Project packaging-client
183 +yarn build:client
184 +// View packaging information
185 +yarn analyz
186 +```
187 +
188 +
189 +
190 +## Roadmap
191 +## Contributing
192 +## License
193 +## Contact
194 +
195 +### 项目展示
196 +## 后台管理
197 +
198 +
199 +
200 +#### 前台展示
201 +
202 +
203 +
204 +
205 +
206 +
207 +
208 +
209 +
210 +
211 +
212 +
213 +
214 +
215 +
216 +
217 +
218 +
219 +
220 +
221 +
222 +
223 +
30 224
31 -####Management
32 225
33 -1. Authority management: CRUD administrator, who can assign authority;
34 -2. Article management: CRUD articles, article covers support local upload, article content supports `Markdown` syntax editing;
35 -3. Label management: CRUD label, label background color supports custom selection with `Vue-Color` plug-in;
36 -4. Message management: RD comments and replies;
37 226
38 -####Built With
39 227
40 - * ![Node.js](https://nodejs.org/zh-cn/)
41 - * ![Element-UI](https://element.eleme.cn/#/zh-CN)
42 - * ![Webpack5](https://webpack.docschina.org/)
43 - * ![MongoDB](https://www.mongodb.com/)
44 - * ![Koa2](https://www.koajs.com.cn/)
45 - * ![Vue2](https://cn.vuejs.org/)
46 228
47 -## **Getting Started**
48 229
49 -### **Prerequisites**
......
File mode changed
1 +<!DOCTYPE html>
2 +<html>
3 + <head>
4 + <meta charset="UTF-8" />
5 + <meta
6 + name="viewport"
7 + content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=0"
8 + />
9 + <link rel="shortcut icon" href="./src/images/favicon.ico" />
10 + <title>rfBlog</title>
11 + </head>
12 + <body>
13 + <div id="app"></div>
14 + </body>
15 +</html>
16 +<script></script>
1 +<template>
2 + <div id="app">
3 + <Nav></Nav>
4 + <router-view></router-view>
5 + <CopyRight></CopyRight>
6 + <Top></Top>
7 + </div>
8 +</template>
9 +<script>
10 +import CopyRight from "components/copyRight";
11 +import Top from "components/top";
12 +import Nav from "components/nav";
13 +import { mapActions } from "vuex";
14 +export default {
15 + name: "app",
16 + components: {
17 + CopyRight,
18 + Top,
19 + Nav,
20 + },
21 + created() {
22 + this.getLabelList();
23 + },
24 + methods: {
25 + ...mapActions({
26 + getLabelList: "label/getLabelList",
27 + }),
28 + },
29 +};
30 +</script>
...\ No newline at end of file ...\ No newline at end of file
1 +import axios from "utils/request";
2 +
3 +/**
4 + * 获取博客列表
5 + * @param data
6 + * @returns {AxiosPromise}
7 + */
8 +export function apiGetBlogList(params) {
9 + return axios.get("/blog/list", params);
10 +}
11 +/**
12 + * 获取博客详情
13 + * @param data
14 + * @returns {AxiosPromise}
15 + */
16 +export function apiGetBlogDetail(params) {
17 + return axios.get("/blog/info", params);
18 +}
19 +/**
20 + * 点赞
21 + * @param data
22 + * @returns {AxiosPromise}
23 + */
24 +export function apiUpdateLikes(params) {
25 + return axios.post("/blog/updateLikes", params);
26 +}
27 +/**
28 + * 浏览量
29 + * @param data
30 + * @returns {AxiosPromise}
31 + */
32 +export function apiUpdatePV(params) {
33 + return axios.post("/blog/updatePV", params);
34 +}
1 +import axios from "utils/request";
2 +
3 +/**
4 + * 获取标签列表
5 + * @param data
6 + * @returns {AxiosPromise}
7 + */
8 +export function apiGetLabelList(params) {
9 + return axios.get("/label/list", params);
10 +}
1 +import axios from "utils/request";
2 +
3 +/**
4 + * 获取留言列表
5 + * @param data
6 + * @returns {AxiosPromise}
7 + */
8 +export function apiGetMessageList(params) {
9 + return axios.get("/message/list", params);
10 +}
11 +
12 +/**
13 + * 获取回复数量
14 + * @param data
15 + * @returns {AxiosPromise}
16 + */
17 +export function apiGetReplyCount(params) {
18 + return axios.get("/message/replyCount", params);
19 +}
20 +
21 +/**
22 + * 添加留言
23 + * @param data
24 + * @returns {AxiosPromise}
25 + */
26 +export function apiAddMessage(params) {
27 + return axios.post("/message/add", params);
28 +}
29 +
30 +/**
31 + * 点赞
32 + * @param data
33 + * @returns {AxiosPromise}
34 + */
35 +export function apiUpdateLikes(params) {
36 + return axios.post("/message/updateLikes", params);
37 +}
38 +
39 +/**
40 + * 回复
41 + * @param data
42 + * @returns {AxiosPromise}
43 + */
44 +export function apiUpdateReplys(params) {
45 + return axios.post("/message/updateReplys", params);
46 +}
1 +
2 +<template>
3 + <div class="bread-crumbs">{{ title }}</div>
4 +</template>
5 +
6 +<script>
7 +export default {
8 + name: "breadCrumbs",
9 + components: {},
10 + props: {},
11 + computed: {},
12 + data() {
13 + return {
14 + title: "首页",
15 + };
16 + },
17 + watch: {},
18 + created() {
19 + let matched = this.$route.matched;
20 + if (matched && matched.length) {
21 + this.title = matched[matched.length - 1].meta["title"];
22 + }
23 + },
24 + mounted() {},
25 + beforeDestroy() {},
26 + methods: {},
27 +};
28 +</script>
29 +
30 +<style lang="less" scoped>
31 +.bread-crumbs {
32 + background-color: #f7f7f7;
33 + padding: 10px 24px;
34 + color: @mainColor;
35 +}
36 +</style>
1 +/**
2 + * 注入公共组件
3 + */
4 +import Vue from "vue";
5 +// 检索当前目录的vue文件,便检索子文件夹
6 +const componentsContext = require.context("./", true, /.vue$/);
7 +componentsContext.keys().forEach((component) => {
8 + // 获取文件中的 default 模块
9 + const componentConfig = componentsContext(component).default;
10 + componentConfig.name && Vue.component(componentConfig.name, componentConfig);
11 +});
1 +<!-- PCloading -->
2 +<template>
3 + <div class="spinner">
4 + <div class="circle"></div>
5 + </div>
6 +</template>
7 +<script>
8 +export default {
9 + name: "Loading",
10 + components: {},
11 + props: {},
12 + computed: {},
13 + data() {
14 + return {};
15 + },
16 + watch: {},
17 + created() {},
18 + mounted() {},
19 + beforeDestroy() {},
20 + methods: {},
21 +};
22 +</script>
23 +<style lang="less" scoped>
24 +.circle {
25 + margin: 20px auto;
26 + width: 100px;
27 + height: 100px;
28 + border: 5px white solid;
29 + border-left-color: #ff5500;
30 + border-right-color: #0c80fe;
31 + border-radius: 100%;
32 + animation: loading 1s infinite linear;
33 +}
34 +@keyframes loading {
35 + from {
36 + transform: rotate(0deg);
37 + }
38 + to {
39 + transform: rotate(360deg);
40 + }
41 +}
42 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <div class="none-data-wrapper">
3 + <img src="../../images/none-data.jpg" alt="" />
4 + </div>
5 +</template>
6 +<script>
7 +export default {
8 + name: "NoneData",
9 +};
10 +</script>
11 +<style lang="less" scoped>
12 +.none-data-wrapper {
13 + text-align: center;
14 + margin-top: 160px;
15 + .none-data-icon {
16 + font-size: 100px;
17 + }
18 +}
19 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <div class="paging-container" v-if="total > 0">
3 + <ul class="mo-paging">
4 + <li
5 + :class="[
6 + 'paging-item',
7 + 'paging-item--defalut',
8 + { 'paging-item--disabled': index === 1 },
9 + ]"
10 + @click="prev"
11 + >
12 + < Previous
13 + </li>
14 + <li
15 + :class="[
16 + 'paging-item',
17 + 'paging-item--defalut',
18 + { 'paging-item--disabled': index === 1 },
19 + ]"
20 + @click="first"
21 + >
22 + first
23 + </li>
24 +
25 + <li :class="['paging-item', 'paging-item--more']" v-if="showPrevMore">
26 + ...
27 + </li>
28 +
29 + <li
30 + v-for="pager in pagers"
31 + :key="pager"
32 + :class="[
33 + 'paging-item',
34 + { 'paging-item--current': pageIndex === pager },
35 + ]"
36 + @click="go(pager)"
37 + >
38 + {{ pager }}
39 + </li>
40 +
41 + <li :class="['paging-item', 'paging-item--more']" v-if="showNextMore">
42 + ...
43 + </li>
44 + <li
45 + :class="[
46 + 'paging-item',
47 + 'paging-item--defalut',
48 + { 'paging-item--disabled': index === pages },
49 + ]"
50 + @click="last"
51 + >
52 + last
53 + </li>
54 + <li
55 + :class="[
56 + 'paging-item',
57 + 'paging-item--defalut',
58 + { 'paging-item--disabled': index === pages },
59 + ]"
60 + @click="next"
61 + >
62 + Next >
63 + </li>
64 + </ul>
65 + </div>
66 +</template>
67 +
68 +<script>
69 +export default {
70 + name: "Paging",
71 + props: {
72 + //页面中的可见页码,其他的以...替代, 必须是奇数
73 + perPages: {
74 + type: Number,
75 + default: 5,
76 + },
77 + pageIndex: {
78 + type: Number,
79 + default: 1,
80 + },
81 + pageSize: {
82 + type: Number,
83 + default: 10,
84 + },
85 + total: {
86 + type: Number,
87 + default: 0,
88 + },
89 + },
90 + computed: {
91 + //计算总页码
92 + pages() {
93 + return Math.ceil(this.size / this.limit);
94 + },
95 + //计算页码,当count等变化时自动计算
96 + pagers() {
97 + const array = [];
98 + const perPages = this.perPages;
99 + const pageCount = this.pages;
100 + let current = this.index;
101 + const _offset = (perPages - 1) / 2;
102 +
103 + const offset = {
104 + start: current - _offset,
105 + end: current + _offset,
106 + };
107 +
108 + //-1, 3
109 + if (offset.start < 1) {
110 + offset.end = offset.end + (1 - offset.start);
111 + offset.start = 1;
112 + }
113 + if (offset.end > pageCount) {
114 + offset.start = offset.start - (offset.end - pageCount);
115 + offset.end = pageCount;
116 + }
117 + if (offset.start < 1) offset.start = 1;
118 +
119 + this.showPrevMore = offset.start > 1;
120 + this.showNextMore = offset.end < pageCount;
121 +
122 + for (let i = offset.start; i <= offset.end; i++) {
123 + array.push(i);
124 + }
125 + return array;
126 + },
127 + },
128 + watch: {
129 + pageIndex(val) {
130 + this.index = val || 1;
131 + },
132 + pageSize(val) {
133 + this.limit = val || 10;
134 + },
135 + total(val) {
136 + this.size = val || 1;
137 + },
138 + },
139 + data() {
140 + return {
141 + index: this.pageIndex, //当前页码
142 + limit: this.pageSize, //每页显示条数
143 + size: this.total || 1, //总记录数
144 + showPrevMore: false,
145 + showNextMore: false,
146 + };
147 + },
148 + methods: {
149 + prev() {
150 + if (this.index > 1) {
151 + this.go(this.index - 1);
152 + }
153 + },
154 + next() {
155 + if (this.index < this.pages) {
156 + this.go(this.index + 1);
157 + }
158 + },
159 + first() {
160 + if (this.index !== 1) {
161 + this.go(1);
162 + }
163 + },
164 + last() {
165 + if (this.index !== this.pages) {
166 + this.go(this.pages);
167 + }
168 + },
169 + go(page) {
170 + if (this.index !== page) {
171 + this.index = page;
172 + this.$emit("change", this.index);
173 + }
174 + },
175 + },
176 +};
177 +</script>
178 +
179 +<style lang="less" scoped>
180 +.paging-container {
181 + display: flex;
182 + justify-content: center;
183 + .mo-paging {
184 + display: flex;
185 + align-items: center;
186 + .paging-item {
187 + font-size: 14px;
188 + padding: 6px 16px;
189 + margin-left: 4px;
190 + cursor: pointer;
191 + color: #24292e;
192 + border: none;
193 + border-radius: 3px;
194 + box-sizing: border-box;
195 + &:first-child {
196 + margin-left: 0;
197 + }
198 + &:hover {
199 + box-sizing: border-box;
200 + color: #fff !important;
201 + background: @thinHighlightColor;
202 + border-color: transparent;
203 + }
204 + &.paging-item--defalut {
205 + color: @thinHighlightColor;
206 + }
207 + &.paging-item--disabled,
208 + &.paging-item--more {
209 + color: #959da5;
210 + pointer-events: none;
211 + }
212 + //选中
213 + &.paging-item--current {
214 + background: @thinHighlightColor;
215 + color: #fff;
216 + border-color: transparent;
217 + position: relative;
218 + z-index: 1;
219 + border: none;
220 + }
221 + }
222 + }
223 +}
224 +</style>
1 +<template>
2 + <svg class="icon" aria-hidden="true">
3 + <use :xlink:href="iconName"></use>
4 + </svg>
5 +</template>
6 +
7 +<script>
8 +export default {
9 + name: "Icon",
10 + props: {
11 + name: {
12 + type: String,
13 + required: true,
14 + },
15 + },
16 + computed: {
17 + iconName() {
18 + return `#${this.name}`;
19 + },
20 + },
21 +};
22 +</script>
1 +<template>
2 + <router-link :to="path" :style="{ display: 'inline-block' }">
3 + <div class="tag-wrapper" :style="{ backgroundColor: color }">
4 + <i :style="{ borderRightColor: color }"></i>
5 + {{ text }}
6 + </div>
7 + </router-link>
8 +</template>
9 +
10 +<script>
11 +export default {
12 + name: "Tag",
13 + props: {
14 + path: {
15 + type: String,
16 + required: true,
17 + },
18 + text: {
19 + type: String,
20 + required: true,
21 + },
22 + color: {
23 + type: String,
24 + default: "@mainColor",
25 + },
26 + },
27 +};
28 +</script>
29 +<style lang="less" scoped>
30 +.tag-wrapper {
31 + font-size: 12px;
32 + display: inline-block;
33 + text-decoration: none;
34 + font-weight: normal;
35 + font-size: 10px;
36 + color: #fff;
37 + height: 18px;
38 + line-height: 18px;
39 + // float: left;
40 + padding: 0 5px 0px 10px;
41 + position: relative;
42 + border-radius: 0 5px 5px 0;
43 + margin: 5px 9px 5px 8px;
44 +
45 + i {
46 + position: absolute;
47 + right: 100%;
48 + font-size: 0;
49 + line-height: 0;
50 + border: 9px solid transparent;
51 + }
52 +
53 + &:after {
54 + content: " ";
55 + width: 4px;
56 + height: 4px;
57 + background-color: #fff;
58 + border-radius: 4px;
59 + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.3);
60 + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.3);
61 + position: absolute;
62 + top: 7px;
63 + left: 2px;
64 + }
65 +}
66 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <div class="copyright-wrapper">
3 + <span
4 + >Copyright © www.rasblog.com All rights reserved.<br />
5 + 备案号:<a href="https://beian.miit.gov.cn/" target="_blank"
6 + >粤ICP备2021121326号</a
7 + ></span
8 + >
9 + </div>
10 +</template>
11 +
12 +<style lang="less" scoped>
13 +.copyright-wrapper {
14 + height: 80px;
15 + background-color: @mainColor;
16 + color: #fff;
17 + display: flex;
18 + justify-content: center;
19 + align-items: center;
20 + span {
21 + text-align: center;
22 + line-height: 22px;
23 + font-size: 14px;
24 + a {
25 + color: @thinHighlightColor;
26 + text-decoration: underline;
27 + }
28 + }
29 +}
30 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <a
3 + :href="githubLink"
4 + target="_blank"
5 + class="github-corner"
6 + aria-label="View source on Github"
7 + >
8 + <svg
9 + width="80"
10 + height="80"
11 + viewBox="0 0 250 250"
12 + style=""
13 + aria-hidden="true"
14 + >
15 + <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
16 + <path
17 + d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
18 + fill="currentColor"
19 + style="transform-origin: 130px 106px"
20 + class="octo-arm"
21 + ></path>
22 + <path
23 + d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
24 + fill="currentColor"
25 + class="octo-body"
26 + ></path>
27 + </svg>
28 + </a>
29 +</template>
30 +<script>
31 +export default {
32 + name: "Github",
33 + props: {
34 + githubLink: {
35 + type: String,
36 + default: null,
37 + },
38 + },
39 +};
40 +</script>
41 +
42 +<style lang="less" scoped>
43 +.github-corner {
44 + fill: #4ab7bd;
45 + color: #fff;
46 + position: absolute;
47 + top: 50px;
48 + border: 0;
49 + right: 0;
50 +
51 + &:hover .octo-arm {
52 + animation: octocat-wave 560ms ease-in-out;
53 + }
54 +}
55 +
56 +@keyframes octocat-wave {
57 + 0%,
58 + 100% {
59 + transform: rotate(0);
60 + }
61 + 20%,
62 + 60% {
63 + transform: rotate(-25deg);
64 + }
65 + 40%,
66 + 80% {
67 + transform: rotate(10deg);
68 + }
69 +}
70 +</style>
71 +
1 +<template>
2 + <div class="label-container">
3 + <div class="side-title">
4 + <Icon name="icon-label"></Icon>
5 + 标签分类
6 + </div>
7 + <div class="label-content">
8 + <div
9 + class="label-item"
10 + v-for="item in labelList"
11 + :key="item.label"
12 + :style="{ backgroundColor: item.bgColor }"
13 + >
14 + <router-link :to="`/label/${item.label}`">
15 + {{ item.label }}
16 + </router-link>
17 + </div>
18 + </div>
19 + </div>
20 +</template>
21 +
22 +<script>
23 +import { mapGetters } from "vuex";
24 +export default {
25 + name: "labelClassify",
26 + components: {},
27 + props: {},
28 + computed: {
29 + ...mapGetters({ labelList: "label/labelList" }),
30 + },
31 + data() {
32 + return {};
33 + },
34 + watch: {},
35 + created() { },
36 + mounted() { },
37 + beforeDestroy() { },
38 + methods: {},
39 +};
40 +</script>
41 +
42 +<style lang="less" scoped>
43 +.label-container {
44 + background-color: #fff;
45 + margin-top: 20px;
46 + border-radius: 4px;
47 + .label-content {
48 + display: flex;
49 + align-items: center;
50 + flex-wrap: wrap;
51 + padding: 20px;
52 + .label-item {
53 + height: 30px;
54 + display: flex;
55 + justify-content: center;
56 + align-items: center;
57 + padding: 12px;
58 + color: #fff;
59 + margin: 4px;
60 + border-radius: 12px;
61 + transition: 1s ease all;
62 + position: relative;
63 + &:hover {
64 + border-radius: 0;
65 + cursor: pointer;
66 + }
67 + a {
68 + color: #fff;
69 + }
70 + }
71 + }
72 +}
73 +</style>
1 +<template>
2 + <div class="myself-container">
3 + <div class="header-bg">
4 + <img class="img-avatar" src="../images/avatar.png" />
5 + <img class="img-bg" src="../images/bg4.jpg" />
6 + </div>
7 + <div class="my-body">
8 + <div class="my-name">RF</div>
9 + <div class="my-job">Running | Football</div>
10 + <div class="my-desc">
11 + 个人博客
12 + </div>
13 + </div>
14 + </div>
15 +</template>
16 +
17 +<script>
18 +export default {
19 + name: "myself",
20 + components: {},
21 + props: {},
22 + computed: {},
23 + data() {
24 + return {};
25 + },
26 + watch: {},
27 + created() { },
28 + mounted() { },
29 + beforeDestroy() { },
30 + methods: {},
31 +};
32 +</script>
33 +
34 +<style lang="less" scoped>
35 +.myself-container {
36 + background-color: #fff;
37 + margin-top: 20px;
38 + border-radius: 4px;
39 + .header-bg {
40 + height: 150px;
41 + border-radius: 4px;
42 + position: relative;
43 + .img-avatar {
44 + width: 100px;
45 + height: 100px;
46 + position: absolute;
47 + bottom: -50px;
48 + left: calc(~"50% - 50px");
49 + border-radius: 50%;
50 + z-index: 99;
51 + &:hover {
52 + animation: btnGroups 1s linear;
53 + }
54 + }
55 + .img-bg {
56 + position: absolute;
57 + width: 100%;
58 + height: 100%;
59 + object-fit: cover;
60 + }
61 + }
62 + .my-body {
63 + margin-top: 74px;
64 + display: flex;
65 + flex-direction: column;
66 + align-items: center;
67 + .my-name {
68 + font-size: 16px;
69 + font-weight: bold;
70 + margin-bottom: 10px;
71 + }
72 + .my-job {
73 + font-size: 14px;
74 + color: @thinHighlightColor;
75 + }
76 + .my-desc {
77 + font-size: 14px;
78 + color: @assistColor;
79 + padding: 20px 40px;
80 + line-height: 26px;
81 + }
82 + }
83 +}
84 +</style>
1 +<template>
2 + <div class="nav-wrapper" :class="{ 'not-nav': showNav }" ref="header">
3 + <nav>
4 + <img src="../images/logo.png" alt="RF" />
5 + <ul>
6 + <li
7 + v-for="(item, index) in navList"
8 + :key="item.title"
9 + :class="{ active: currentIndex === index }"
10 + @click="goto(index, item.path)"
11 + >
12 + {{ item.title }}
13 + </li>
14 + </ul>
15 + </nav>
16 + </div>
17 +</template>
18 +<script>
19 +export default {
20 + name: "navComponent",
21 + components: {},
22 + props: {},
23 + computed: {},
24 + data() {
25 + return {
26 + currentIndex: -1,
27 + showNav: false,
28 + navList: [
29 + { title: "首页", path: "/index" },
30 + { title: "文章分类", path: "/label/all" },
31 + { title: "留言板", path: "/message" },
32 + { title: "关于我们", path: "/myself" },
33 + ],
34 + };
35 + },
36 + watch: {},
37 + created() { },
38 + mounted() {
39 + document.addEventListener("scroll", this.onScroll);
40 + },
41 + beforeDestroy() {
42 + document.removeEventListener("scroll", this.onScroll);
43 + },
44 + methods: {
45 + goto(index, path) {
46 + this.currentIndex = index;
47 + this.$router.push(path);
48 + },
49 + onScroll() {
50 + const scrollTop =
51 + document.documentElement.scrollTop + document.body.scrollTop;
52 + this.showNav = scrollTop >= 120;
53 + },
54 + },
55 +};
56 +</script>
57 +
58 +<style lang="less" scoped>
59 +.nav-wrapper {
60 + height: 50px;
61 + width: 100%;
62 + position: fixed;
63 + top: 0;
64 + left: 0;
65 + background-color: #fff;
66 + z-index: 100;
67 + transition: all 1.2s ease;
68 + transform: translate3d(0, 0, 0);
69 + box-shadow: 0 1px 1px @cuttingLineColor;
70 + &.not-nav {
71 + transform: translate3d(0, -50px, 0);
72 + opacity: 0;
73 + }
74 + nav {
75 + width: 1200px;
76 + height: 100%;
77 + margin: 0 auto;
78 + display: flex;
79 + justify-content: space-between;
80 + align-items: center;
81 + img {
82 + height: 98%;
83 + object-fit: contain;
84 + }
85 + ul {
86 + height: 100%;
87 + display: flex;
88 + justify-content: flex-end;
89 + align-items: center;
90 + color: #fff;
91 + li {
92 + padding: 0 22px;
93 + height: 100%;
94 + display: flex;
95 + justify-content: center;
96 + align-items: center;
97 + color: @mainColor;
98 + &:hover {
99 + cursor: pointer;
100 + color: @highlightColor;
101 + }
102 + }
103 + .active {
104 + color: @highlightColor;
105 + position: relative;
106 + &::before {
107 + content: "";
108 + width: 67%;
109 + height: 4px;
110 + background-color: @highlightColor;
111 + position: absolute;
112 + top: 0;
113 + }
114 + }
115 + }
116 + }
117 +}
118 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <div class="search-container">
3 + <input type="text" placeholder="请输入关键词" v-model="keyword" />
4 + <button
5 + :class="{ 'btn-disabled': !keyword }"
6 + :disabled="!keyword"
7 + @click="goto"
8 + >
9 + 搜索
10 + </button>
11 + </div>
12 +</template>
13 +
14 +<script>
15 +import { mapGetters, mapMutations } from 'vuex';
16 +export default {
17 + name: "search",
18 + components: {},
19 + props: {
20 + // 是否存储在vuex
21 + isCache: {
22 + type: Boolean,
23 + default: false,
24 + }
25 + },
26 + computed: {
27 + ...mapGetters({
28 + cacheKeyword: 'search/keyword'
29 + })
30 + },
31 + data() {
32 + return {
33 + keyword: "",
34 + };
35 + },
36 + watch: {},
37 + created() {
38 + if (!this.isCache) {
39 + this.keyword = this.cacheKeyword;
40 + }
41 + },
42 + mounted() { },
43 + beforeDestroy() {
44 + if (!this.isCache) {
45 + this.setKeyword('');
46 + }
47 + },
48 + methods: {
49 + ...mapMutations({
50 + setKeyword: 'search/setKeyword'
51 + }),
52 + goto() {
53 + if (this.isCache) {
54 + this.setKeyword(this.keyword);
55 + }
56 + this.$router.push({
57 + path: `/label/${this.keyword}`,
58 + query: {
59 + search: 'search'
60 + },
61 + });
62 + },
63 + },
64 +};
65 +</script>
66 +
67 +<style lang="less" scoped>
68 +.search-container {
69 + background-color: #fff;
70 + margin-top: 20px;
71 + padding: 20px;
72 + border-radius: 4px;
73 + display: flex;
74 + align-items: center;
75 + input {
76 + padding: 0 6px;
77 + border: 1px solid @borderColor;
78 + width: 80%;
79 + height: 26px;
80 + line-height: 26px;
81 + background-color: #f2f2f2;
82 + height: 28px;
83 + font-size: 14px;
84 + border-radius: 2px;
85 + &::placeholder {
86 + color: @assistColor;
87 + }
88 + &:focus {
89 + outline: none;
90 + color: #24292e;
91 + }
92 + }
93 + button {
94 + border-radius: 2px;
95 + background-color: #24292e;
96 + color: #fff;
97 + width: 20%;
98 + border: none;
99 + cursor: pointer;
100 + height: 28px;
101 + line-height: 28px;
102 + margin-left: 12px;
103 + a {
104 + color: #fff;
105 + }
106 + &.btn-disabled {
107 + cursor: not-allowed;
108 + opacity: 0.75;
109 + }
110 + }
111 +}
112 +</style>
1 +<template>
2 + <div class="side-article" v-loading="loading">
3 + <div class="side-title">
4 + <Icon
5 + :name="sideClassify === BROWSE_STATUS ? 'icon-hot' : 'icon-recommend'"
6 + ></Icon>
7 + {{ sideType[sideClassify] }}
8 + </div>
9 + <div class="side-list">
10 + <div class="list-item" v-for="(item, index) in blogList" :key="item._id">
11 + <div class="item-title" @click="goto(item._id)">
12 + <div
13 + :style="{ backgroundColor: getActiveColor(index) }"
14 + class="index"
15 + v-show="sideClassify === BROWSE_STATUS"
16 + >
17 + {{ index + 1 }}
18 + </div>
19 + <div class="title">{{ item.title }}</div>
20 + </div>
21 + <div class="item-content">
22 + <div class="item-img">
23 + <img v-lazy="item.fileCoverImgUrl" />
24 + </div>
25 + <div class="item-right">
26 + <div class="item-desc">
27 + {{ item.desc }}
28 + </div>
29 + <div class="item-func">
30 + <div class="func-box">
31 + <Icon name="icon-date02"></Icon>
32 + <div class="box-text">
33 + {{ item.releaseTime | formatTime("yyyy-MM-dd") }}
34 + </div>
35 + </div>
36 + <div class="func-box">
37 + <Icon name="icon-browse02"></Icon>
38 + <div class="box-text">{{ item.pv | formatNumber() }}</div>
39 + </div>
40 + </div>
41 + </div>
42 + </div>
43 + </div>
44 + </div>
45 + </div>
46 +</template>
47 +
48 +<script>
49 +import { apiGetBlogList } from "api/blog";
50 +import { sortType, sideType, BROWSE_STATUS } from "src/constant/side";
51 +export default {
52 + name: "sideArticle",
53 + components: {},
54 + props: {
55 + sideClassify: {
56 + type: Number,
57 + default: 1,
58 + },
59 + },
60 + computed: {
61 + getActiveColor() {
62 + return (index) => (index < 3 ? "#FF6701" : "#b1b1b1");
63 + },
64 + },
65 + data() {
66 + return {
67 + sideType,
68 + BROWSE_STATUS,
69 + loading: false,
70 + blogList: [],
71 + pageindex: 1,
72 + pagesize: 5,
73 + total: 0,
74 + };
75 + },
76 + watch: {},
77 + created() {
78 + this.getBlogList();
79 + },
80 + mounted() { },
81 + beforeDestroy() { },
82 + methods: {
83 + goto(id) {
84 + this.$router.push({
85 + path: `/article/detail/${id}`,
86 + query: {
87 + sortBy: sortType[this.sideClassify],
88 + pageindex: this.pageindex,
89 + pagesize: this.pagesize,
90 + },
91 + });
92 + },
93 + getBlogList() {
94 + let params = {
95 + sortBy: sortType[this.sideClassify],
96 + pageindex: this.pageindex,
97 + pagesize: this.pagesize,
98 + };
99 + this.loading = true;
100 + return apiGetBlogList(params)
101 + .then((res) => {
102 + let { list, total } = res.data;
103 + this.blogList = list;
104 + this.total = total;
105 + })
106 + .catch((err) => {
107 + console.log(err);
108 + })
109 + .finally(() => {
110 + this.loading = false;
111 + });
112 + },
113 + },
114 +};
115 +</script>
116 +
117 +<style lang="less" scoped>
118 +.side-article {
119 + background-color: #fff;
120 + margin-top: 20px;
121 + border-radius: 6px;
122 + .side-list {
123 + padding: 10px;
124 + .list-item {
125 + border-bottom: solid 1px @borderColor;
126 + font-size: 14px;
127 + margin-bottom: 10px;
128 + padding-bottom: 10px;
129 + &:hover .item-title .title {
130 + color: @mainColor;
131 + }
132 + &:hover .item-content .item-right .item-desc {
133 + color: @mainColor;
134 + }
135 + &:hover .item-content .item-right .item-func .func-box {
136 + color: @mainColor;
137 + }
138 + &:hover img {
139 + transform: scale(1.2);
140 + }
141 + .item-title {
142 + display: flex;
143 + align-items: center;
144 + margin-bottom: 10px;
145 + cursor: pointer;
146 + .index {
147 + color: #fff;
148 + font-size: 12px;
149 + margin-right: 4px;
150 + font-weight: normal;
151 + width: 16px;
152 + height: 16px;
153 + display: flex;
154 + justify-content: center;
155 + align-items: center;
156 + }
157 + .title {
158 + font-size: 14px;
159 + color: @thinColor;
160 + font-weight: bold;
161 + .ellipsis-line-clamp();
162 + }
163 + }
164 + .item-content {
165 + display: flex;
166 + align-items: flex-start;
167 + .item-img {
168 + width: 100px;
169 + height: 70px;
170 + margin-right: 10px;
171 + overflow: hidden;
172 + img {
173 + width: 100%;
174 + height: 100%;
175 + border-radius: 4px;
176 + transition: 0.4s ease all;
177 + object-fit: cover;
178 + }
179 + }
180 + .item-right {
181 + flex: 1;
182 + height: 70px;
183 + display: flex;
184 + flex-direction: column;
185 + justify-content: space-between;
186 + .item-desc {
187 + color: @assistColor;
188 + line-height: 24px;
189 + .ellipsis-line-clamp(2);
190 + }
191 + .item-func {
192 + margin-top: 10px;
193 + display: flex;
194 + justify-content: center;
195 + align-items: center;
196 + .func-box {
197 + display: flex;
198 + align-items: center;
199 + padding-left: 24px;
200 + color: @assistColor;
201 + .box-text {
202 + padding-left: 4px;
203 + }
204 + }
205 + }
206 + }
207 + }
208 + }
209 + }
210 +}
211 +</style>
1 +<template>
2 + <div class="top-wrapper" v-show="showTop" @click="goTop">
3 + <img src="../images/back-top.png" alt="Top" />
4 + </div>
5 +</template>
6 +
7 +<script>
8 +export default {
9 + name: "top",
10 + components: {},
11 + props: {},
12 + computed: {
13 + showTop() {
14 + return this.scrollTop > 300;
15 + },
16 + },
17 + data() {
18 + return {
19 + scrollTop: 0,
20 + };
21 + },
22 + watch: {},
23 + created() { },
24 + mounted() {
25 + window.addEventListener("scroll", () => {
26 + this.scrollTop =
27 + document.documentElement.scrollTop ||
28 + document.body.scrollTop;
29 + });
30 + },
31 + beforeDestroy() { },
32 + methods: {
33 + goTop() {
34 + let back = setInterval(() => {
35 + if (document.documentElement.scrollTop || document.body.scrollTop) {
36 + document.documentElement.scrollTop -= 80;
37 + document.body.scrollTop -= 80;
38 + } else {
39 + clearInterval(back);
40 + }
41 + }, 20);
42 + },
43 + },
44 +};
45 +</script>
46 +
47 +<style lang="less" scoped>
48 +.top-wrapper {
49 + img {
50 + position: fixed;
51 + bottom: 120px;
52 + right: 120px;
53 + width: 80px;
54 + object-fit: contain;
55 + border-radius: 50%;
56 + cursor: pointer;
57 + }
58 +}
59 +</style>
1 +export const colorList = [
2 + "#EB6841",
3 + "#3FB8AF",
4 + "#464646",
5 + "#FC9D9A",
6 + "#EDC951",
7 + "#C8C8A9",
8 + "#83AF9B",
9 + "#036564",
10 +];
1 +// 侧边栏文章类别
2 +const BROWSE_STATUS = 1; // 点击排行
3 +const RECOMMEND_STATUS = 2; // 站长推荐
4 +const sideType = {
5 + [BROWSE_STATUS]: "点击排行",
6 + [RECOMMEND_STATUS]: "站长推荐",
7 +};
8 +const sortType = {
9 + [BROWSE_STATUS]: "pv",
10 + [RECOMMEND_STATUS]: "level",
11 +};
12 +
13 +export { BROWSE_STATUS, RECOMMEND_STATUS, sideType, sortType };
1 +/**
2 + * 时间日期格式化
3 + * 用法 formatTime(new Date(), 'yyyy-MM-dd hh:mm:ss')
4 + * @param time
5 + * @param fmt
6 + */
7 +export function formatTime(time, fmt) {
8 + time = parseInt(time);
9 + if (!time) {
10 + return "";
11 + }
12 + const date = new Date(time);
13 + let o = {
14 + "M+": date.getMonth() + 1, // 月份
15 + "d+": date.getDate(), // 日
16 + "h+": date.getHours(), // 小时
17 + "m+": date.getMinutes(), // 分
18 + "s+": date.getSeconds(), // 秒
19 + "q+": Math.floor((date.getMonth() + 3) / 3), // 季度
20 + S: date.getMilliseconds(), // 毫秒
21 + };
22 + if (/(y+)/.test(fmt)) {
23 + fmt = fmt.replace(
24 + RegExp.$1,
25 + (date.getFullYear() + "").substr(4 - RegExp.$1.length)
26 + );
27 + }
28 + for (let k in o) {
29 + if (new RegExp("(" + k + ")").test(fmt)) {
30 + fmt = fmt.replace(
31 + RegExp.$1,
32 + RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)
33 + );
34 + }
35 + }
36 + return fmt;
37 +}
38 +
39 +/**
40 + * 数字转成 k、w 方式
41 + * @param num
42 + */
43 +export function formatNumber(num) {
44 + return num >= 1e3 && num < 1e4
45 + ? (num / 1e3).toFixed(1) + "k"
46 + : num >= 1e4
47 + ? (num / 1e4).toFixed(1) + "w"
48 + : num;
49 +}
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M5 21c0 2.209-1.119 4-2.5 4S0 23.209 0 21s1.119-4 2.5-4S5 18.791 5 21z"/><path fill="#FFDC5D" d="M3 18.562C3 10.037 8.373 3.125 15 3.125s12 6.912 12 15.438C27 27.088 21.627 34 15 34S3 27.088 3 18.562z"/><path fill="#DD2E44" d="M20 0c-.249 0-.478.007-.713.012C19.19.01 19.097 0 19 0 9 0 2 4.582 2 9s6.373 4 13 4c4.442 0 7.648 0 9.966-.086L25 13l6 15h2s.343-3.055 1-7c1-6 .533-21-14-21z"/><path fill="#FFDC5D" d="M30 21c0 2.209-1.119 4-2.5 4S25 23.209 25 21s1.119-4 2.5-4 2.5 1.791 2.5 4z"/><path fill="#662113" d="M10 21c-.552 0-1-.447-1-1v-2c0-.552.448-1 1-1s1 .448 1 1v2c0 .553-.448 1-1 1zm10 0c-.553 0-1-.447-1-1v-2c0-.552.447-1 1-1s1 .448 1 1v2c0 .553-.447 1-1 1z"/><path fill="#B7755E" d="M16 26h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.552 0 1 .447 1 1s-.448 1-1 1z"/><path fill="#E6E7E8" d="M27 25c0-2-2.293-.707-3 0-1 1-3 3-5 2-2.828-1.414-4-1-4-1s-1.171-.414-4 1c-2 1-4-1-5-2-.707-.707-3-2-3 0s1 2 1 2c-1 2 1 3 1 3 0 3 3 3 3 3 0 3 4 2 4 2 1 1 3 1 3 1s2 0 3-1c0 0 4 1 4-2 0 0 3 0 3-3 0 0 2-1 1-3 0 0 1 0 1-2z"/><path fill="#FFDC5D" d="M15 28c7 0 4 2 0 2s-7-2 0-2z"/><ellipse fill="#D1D3D4" cx="3" cy="14" rx="2" ry="4"/><ellipse fill="#D1D3D4" cx="26" cy="14" rx="2" ry="4"/><circle fill="#F1F2F2" cx="32" cy="29" r="4"/><path fill="#F1F2F2" d="M29 12c0 1.104-.896 2-2 2H2c-1.104 0-2-.896-2-2v-1c0-1.104.896-2 2-2h25c1.104 0 2 .896 2 2v1z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCB4E" d="M33 17c1.072-6.084 1.262-15.048 0-15.864C31.738.322 22.928 3.353 21.086 7.4 20.081 7.132 18 7 18 7s-2.013.132-3.017.399C13.14 3.352 4.261.321 3 1.136 1.738 1.952 1.926 10.916 3 17c0 0-.967 1.979-.967 8.95l16-3.967 16 4C34.033 18.979 33 17 33 17z"/><path fill="#FFD882" d="M23.946 19.282c-2.085 0-4.273.477-5.913 1.281-1.639-.805-3.827-1.281-5.912-1.281-9.932 0-10.088 5.1-10.088 6.664C2.033 27.505 4 35.979 18 35.979s16.033-8.441 16.033-10c0-1.564-.156-6.697-10.087-6.697z"/><path fill="#F28F20" d="M23.406 8.054c2.17-2.383 6.681-4.172 7.607-3.945.752.182.635 6.387.031 9.938-2.562-4.251-7.638-5.993-7.638-5.993zm-10.746 0c-2.168-2.383-6.68-4.172-7.606-3.945-.754.182-.637 6.387-.031 9.938 2.563-4.251 7.637-5.993 7.637-5.993z"/><path fill="#FAAA35" d="M22.04 20c0-4.693-1.809-13-4.04-13s-4.04 8.307-4.04 13c0 4.695 1.809 2 4.04 2s4.04 2.695 4.04-2z"/><path fill="#2A2F33" d="M15.019 16.999c0 1.105-.904 2-2.019 2s-2.019-.895-2.019-2c0-1.104.904-1.998 2.019-1.998s2.019.895 2.019 1.998zm10.02.001c0 1.105-.904 2-2.02 2C21.904 19 21 18.105 21 17c0-1.104.904-1.998 2.02-1.998 1.115 0 2.019.894 2.019 1.998z"/><path fill="#F28F20" d="M23.804 28.895c-3.488.696-4.55-.785-4.784-1.229V25c0-.553-.447-1-1-1-.553 0-1 .447-1 1v2.659c-.246.452-1.338 1.931-4.823 1.236-.548-.113-1.069.243-1.177.784-.108.542.243 1.068.784 1.177.79.158 1.495.227 2.127.227 2.078 0 3.339-.741 4.081-1.473.735.733 1.986 1.473 4.058 1.473.631 0 1.337-.068 2.126-.227.541-.108.893-.635.784-1.177-.107-.541-.629-.897-1.176-.784z"/><path fill="#292F33" d="M22.02 21.592c0 1.758-3.216 3.978-4.02 3.978-.803 0-4.019-2.221-4.019-3.978C13.981 19.832 16.225 20 18 20s4.02-.168 4.02 1.592z"/><path fill="#F39120" d="M34.021 31.935c-.277 0-.553-.115-.751-.339-.03-.035-3.181-3.502-10.41-4.624-.546-.085-.92-.596-.835-1.142.085-.546.597-.915 1.142-.835.366.057.724.119 1.072.187 7.242 1.404 10.399 4.939 10.536 5.096.362.416.319 1.048-.097 1.411-.189.165-.423.246-.657.246z"/><path fill="#F39120" d="M23.014 26.983c-.406 0-.789-.25-.939-.653-.191-.519.074-1.094.592-1.285 5.477-2.023 12.161-.189 12.45-.108.532.148.843.699.695 1.23-.146.532-.697.843-1.229.697-.064-.018-6.358-1.739-11.223.058-.114.042-.231.061-.346.061zM1.988 31.935c.277 0 .553-.115.751-.339.03-.035 3.181-3.502 10.41-4.624.546-.085.92-.596.835-1.142-.085-.546-.597-.915-1.142-.835-.366.057-.724.119-1.072.187-7.242 1.404-10.399 4.939-10.536 5.096-.362.416-.319 1.048.097 1.411.19.165.424.246.657.246z"/><path fill="#F39120" d="M12.996 26.983c.406 0 .789-.25.938-.653.191-.519-.074-1.094-.592-1.285-5.477-2.023-12.161-.189-12.45-.108-.532.148-.843.699-.695 1.23.146.532.697.843 1.229.697.064-.018 6.358-1.739 11.223.058.115.042.232.061.347.061z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M15 30v3s0 3 3 3 3-3 3-3v-3h-6z"/><path fill="#272B2B" d="M14 2c.041-3-14-2-14 8 0 4 0 14 3 14C7 24 13.945 6 14 2zm8 0c-.041-3 14-2 14 8 0 4 0 14-3 14-4 0-10.945-18-11-22z"/><path fill="#CCD6DD" d="M31 22c0 7-4 7-4 7H9s-4 0-4-7C5 22 6 0 18 0s13 22 13 22z"/><path fill="#8899A6" d="M23 22.025V22H13v.025c-2.803.253-5 2.606-5 5.475 0 3.037 2.462 5.5 5.5 5.5 1.862 0 3.505-.928 4.5-2.344.995 1.416 2.638 2.344 4.5 2.344 3.038 0 5.5-2.463 5.5-5.5 0-2.868-2.196-5.222-5-5.475z"/><path fill="#272B2B" d="M11 16s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2zm10 0s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2zm-6 8c-1 1 2 4 3 4s4-3 3-4-5-1-6 0z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M30 20.145s.094-2.362-1.791-3.068c-1.667-.625-2.309.622-2.309.622s.059-1.913-1.941-2.622c-1.885-.667-2.75.959-2.75.959s-.307-1.872-2.292-2.417C17.246 13.159 16 14.785 16 14.785V2.576C16 1.618 15.458.001 13.458 0S11 1.66 11 2.576v20.5c0 1-1 1-1 0V20.41c0-3.792-2.037-6.142-2.75-6.792-.713-.65-1.667-.98-2.82-.734-1.956.416-1.529 1.92-.974 3.197 1.336 3.078 2.253 7.464 2.533 9.538.79 5.858 5.808 10.375 11.883 10.381 6.626.004 12.123-5.298 12.128-11.924v-3.931z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M4 15.894s-.093 2.362 1.792 3.068c1.667.625 2.309-.622 2.309-.622s-.059 1.914 1.941 2.622c1.885.668 2.75-.958 2.75-.958s.307 1.871 2.292 2.417C16.755 22.88 18 21.254 18 21.254v12.208c0 .959.542 2.575 2.543 2.576 2 .002 2.457-1.659 2.457-2.576v-20.5c0-1 1-1 1 0v2.666c0 3.792 2.038 6.143 2.751 6.792.713.65 1.667.979 2.82.734 1.956-.415 1.529-1.92.975-3.197-1.337-3.078-2.254-7.464-2.533-9.538C27.222 4.562 22.204.044 16.129.038 9.503.034 4.005 5.336 4 11.962v3.932z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M20.145 31s-2.436-.167-3.068-1.792c-.646-1.659.622-2.309.622-2.309s-1.914.059-2.622-1.941c-.668-1.885.958-2.75.958-2.75s-1.871-.307-2.417-2.292C13.158 18.245 14.784 17 14.784 17H2.576C1.617 17 .001 16.458 0 14.457-.002 12.457 1.659 12 2.576 12h20.5c1 0 1-1 0-1H20.41c-3.792 0-6.143-2.038-6.792-2.751-.65-.713-.98-1.667-.734-2.82.415-1.956 1.92-1.529 3.197-.975 3.078 1.337 7.464 2.254 9.538 2.533 5.858.791 10.375 5.809 10.381 11.884.004 6.626-5.298 12.124-11.924 12.129h-3.931z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M15.856 31s2.394-.208 3.068-1.792c.697-1.639-.622-2.309-.622-2.309s1.914.059 2.622-1.941c.668-1.885-.958-2.75-.958-2.75s1.871-.307 2.417-2.292C22.842 18.245 21.216 17 21.216 17h12.208c.959 0 2.575-.542 2.576-2.543.002-2-1.659-2.457-2.576-2.457h-20.5c-1 0-1-1 0-1h2.666c3.792 0 6.143-2.038 6.792-2.751.65-.713.979-1.667.734-2.82-.415-1.956-1.92-1.529-3.197-.975-3.078 1.337-7.464 2.254-9.538 2.533C4.523 7.778.006 12.796 0 18.871-.004 25.497 5.298 30.995 11.924 31h3.932z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M32.942 11.244c-.041-.609-.284-1.18-.674-1.644l-.357-2.057c-.376-2.006-2.232-3.386-4.262-3.169L4.259 8.11C2.377 8.312.909 9.833.774 11.721l1.761 11.147c.305 2.169 2.151 3.788 4.341 3.813.677.008 1.238.017 1.463.027l9.483.463c-.363.483-.822 1.08-.822 1.718v.052c0 1.581 1.771 3.06 3.353 3.06h7.282c.76 0 1.488-.4 2.025-.938l4.424-4.472c.583-.584.887-1.416.832-2.24l-1.974-13.107z"/><path fill="#EF9645" d="M8.217 26.623c-.474 0-.895-.338-.983-.821L5.174 14.47c-.099-.543.262-1.064.805-1.163.546-.097 1.064.262 1.163.805l2.06 11.332c.099.543-.262 1.063-.805 1.162-.061.012-.121.017-.18.017zm6.181 0c-.517 0-.955-.398-.996-.923l-1.03-13.393c-.043-.551.37-1.031.92-1.074.549-.044 1.031.371 1.074.92l1.03 13.392c.043.551-.37 1.032-.92 1.074-.026.003-.053.004-.078.004zm7.207 1.106c-.508 0-.757-.001-.951-1.062l-.044-.003c.001-.055.007-.108.017-.161-.174-1.068-.309-3.069-.561-6.817-.235-3.49-.486-7.552-.486-8.485 0-.552.447-1 1-1 .553 0 1 .448 1 1 0 1.533.795 13.324.981 15.145.032.097.049.2.049.308 0 .266-.108.557-.295.744s-.444.331-.71.331z"/><path fill="#EF9645" d="M25.178 28.684H18.52c-.552 0-1-.447-1-1s.448-1 1-1h6.658c1.458 0 2.644-1.186 2.644-2.644V11.201c0-.552.447-1 1-1s1 .448 1 1V24.04c-.001 2.561-2.084 4.644-4.644 4.644z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EF9645" d="M24.997 28.5c-1.185 0-2.237-.846-2.457-2.053l-4-22c-.247-1.358.654-2.66 2.012-2.907 1.358-.251 2.66.654 2.907 2.012l4 22c.247 1.358-.654 2.66-2.013 2.907-.15.028-.3.041-.449.041z"/><path fill="#FFDC5D" d="M28.375 24.765c.239-.745.13-1.591-.375-2.265-.059-.078-.44-.585-1.017-1.34.005-.052.017-.112.017-.16 0-.458-1.913-2.623-3.74-4.586-1.587-1.965-3.261-3.951-4.492-5.182l-1.274-1.274-1.612.806c-5.718 2.859-8.647 3.855-8.672 3.864-1.31.437-2.018 1.852-1.581 3.162.437 1.31 1.852 2.015 3.162 1.582.117-.039 2.666-.899 7.65-3.311 1.094 1.23 2.378 2.795 3.574 4.296l.704 1.174c.169.282.146.639-.061.896l-3.513 4.392c-.095.119-.222.207-.365.255l-2.531.844c-.161.054-.336.054-.497 0l-4.73-1.576c-.676-2.082-.533-4.102-.531-4.124.12-1.376-.899-2.588-2.274-2.707-1.372-.128-2.587.897-2.707 2.273-.022.261-.51 6.424 3.313 10.594 2.208 2.408 5.296 3.63 9.178 3.63.66 0 1.283.009 1.871.018.529.008 1.042.016 1.537.016 2.764 0 5.004-.231 6.738-1.941 1.649-1.626 2.354-4.195 2.354-8.592-.001-.263-.052-.508-.126-.744z"/><path fill="#EF9645" d="M27.001 21c-.384 0-.749-.221-.915-.594l-4-9c-.224-.505.003-1.096.508-1.32.506-.226 1.096.003 1.32.507l4 9c.224.505-.003 1.096-.508 1.32-.132.06-.269.087-.405.087z"/><path fill="#FFDC5D" d="M24.766 34.38l-1.531-4.76s-.066.011-.175.066c.017-.009 1.821-.995 2.461-6.003.775-6.075-.774-9.6-.79-9.634l-.093-.231-3.5-10.104c-.452-1.305.239-2.729 1.544-3.181 1.303-.451 2.729.24 3.181 1.544l3.469 10.013c.377.887 2.035 5.285 1.148 12.226-1.042 8.163-4.943 9.816-5.714 10.064z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDB5E" d="M34.956 17.916c0-.503-.12-.975-.321-1.404-1.341-4.326-7.619-4.01-16.549-4.221-1.493-.035-.639-1.798-.115-5.668.341-2.517-1.282-6.382-4.01-6.382-4.498 0-.171 3.548-4.148 12.322-2.125 4.688-6.875 2.062-6.875 6.771v10.719c0 1.833.18 3.595 2.758 3.885C8.195 34.219 7.633 36 11.238 36h18.044c1.838 0 3.333-1.496 3.333-3.334 0-.762-.267-1.456-.698-2.018 1.02-.571 1.72-1.649 1.72-2.899 0-.76-.266-1.454-.696-2.015 1.023-.57 1.725-1.649 1.725-2.901 0-.909-.368-1.733-.961-2.336.757-.611 1.251-1.535 1.251-2.581z"/><path fill="#EE9547" d="M23.02 21.249h8.604c1.17 0 2.268-.626 2.866-1.633.246-.415.109-.952-.307-1.199-.415-.247-.952-.108-1.199.307-.283.479-.806.775-1.361.775h-8.81c-.873 0-1.583-.71-1.583-1.583s.71-1.583 1.583-1.583H28.7c.483 0 .875-.392.875-.875s-.392-.875-.875-.875h-5.888c-1.838 0-3.333 1.495-3.333 3.333 0 1.025.475 1.932 1.205 2.544-.615.605-.998 1.445-.998 2.373 0 1.028.478 1.938 1.212 2.549-.611.604-.99 1.441-.99 2.367 0 1.12.559 2.108 1.409 2.713-.524.589-.852 1.356-.852 2.204 0 1.838 1.495 3.333 3.333 3.333h5.484c1.17 0 2.269-.625 2.867-1.632.247-.415.11-.952-.305-1.199-.416-.245-.953-.11-1.199.305-.285.479-.808.776-1.363.776h-5.484c-.873 0-1.583-.71-1.583-1.583s.71-1.583 1.583-1.583h6.506c1.17 0 2.27-.626 2.867-1.633.247-.416.11-.953-.305-1.199-.419-.251-.954-.11-1.199.305-.289.487-.799.777-1.363.777h-7.063c-.873 0-1.583-.711-1.583-1.584s.71-1.583 1.583-1.583h8.091c1.17 0 2.269-.625 2.867-1.632.247-.415.11-.952-.305-1.199-.417-.246-.953-.11-1.199.305-.289.486-.799.776-1.363.776H23.02c-.873 0-1.583-.71-1.583-1.583s.709-1.584 1.583-1.584z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDB5E" d="M34.956 18.084c0 .503-.12.975-.321 1.404-1.341 4.326-7.619 4.01-16.549 4.221-1.493.035-.639 1.798-.115 5.668.341 2.517-1.282 6.382-4.01 6.382-4.498 0-.171-3.548-4.148-12.322-2.125-4.688-6.875-2.062-6.875-6.771V5.948c0-1.833.18-3.595 2.758-3.885C8.195 1.781 7.633 0 11.238 0h18.044c1.838 0 3.333 1.496 3.333 3.334 0 .762-.267 1.456-.698 2.018 1.02.571 1.72 1.649 1.72 2.899 0 .76-.266 1.454-.696 2.015 1.023.57 1.725 1.649 1.725 2.901 0 .909-.368 1.733-.961 2.336.757.611 1.251 1.535 1.251 2.581z"/><path fill="#EE9547" d="M23.02 14.751h8.604c1.17 0 2.268.626 2.866 1.633.246.415.109.952-.307 1.199-.415.247-.952.108-1.199-.307-.283-.479-.806-.775-1.361-.775h-8.81c-.873 0-1.583.71-1.583 1.583s.71 1.583 1.583 1.583H28.7c.483 0 .875.392.875.875s-.392.875-.875.875h-5.888c-1.838 0-3.333-1.495-3.333-3.333 0-1.025.475-1.932 1.205-2.544-.615-.605-.998-1.445-.998-2.373 0-1.028.478-1.938 1.212-2.549-.611-.604-.99-1.441-.99-2.367 0-1.12.559-2.108 1.409-2.713-.524-.589-.852-1.356-.852-2.204 0-1.838 1.495-3.333 3.333-3.333h5.484c1.17 0 2.269.625 2.867 1.632.247.415.11.952-.305 1.199-.416.245-.953.11-1.199-.305-.285-.479-.808-.776-1.363-.776h-5.484c-.873 0-1.583.71-1.583 1.583s.71 1.583 1.583 1.583h6.506c1.17 0 2.27.626 2.867 1.633.247.416.11.953-.305 1.199-.419.251-.954.11-1.199-.305-.289-.487-.799-.777-1.363-.777h-7.063c-.873 0-1.583.711-1.583 1.584s.71 1.583 1.583 1.583h8.091c1.17 0 2.269.625 2.867 1.632.247.415.11.952-.305 1.199-.417.246-.953.11-1.199-.305-.289-.486-.799-.776-1.363-.776H23.02c-.873 0-1.583.71-1.583 1.583s.709 1.584 1.583 1.584z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EF9645" d="M32.302 24.347c-.695-1.01-.307-2.47-.48-4.082-.178-2.63-1.308-5.178-3.5-7.216l-7.466-6.942s-1.471-1.369-2.841.103c-1.368 1.471.104 2.84.104 2.84l3.154 2.934 2.734 2.542s-.685.736-3.711-2.078l-10.22-9.506s-1.473-1.368-2.842.104c-1.368 1.471.103 2.84.103 2.84l9.664 8.989c-.021-.02-.731.692-.744.68L5.917 5.938s-1.472-1.369-2.841.103c-1.369 1.472.103 2.84.103 2.84L13.52 18.5c.012.012-.654.764-.634.783l-8.92-8.298s-1.472-1.369-2.841.103c-1.369 1.472.103 2.841.103 2.841l9.484 8.82c.087.081-.5.908-.391 1.009l-6.834-6.356s-1.472-1.369-2.841.104c-1.369 1.472.103 2.841.103 2.841L11.896 30.71c1.861 1.731 3.772 2.607 6.076 2.928.469.065 1.069.065 1.315.096.777.098 1.459.374 2.372.934 1.175.72 2.938 1.02 3.951-.063l3.454-3.695 3.189-3.412c1.012-1.082.831-2.016.049-3.151z"/><path d="M1.956 35.026c-.256 0-.512-.098-.707-.293-.391-.391-.391-1.023 0-1.414L4.8 29.77c.391-.391 1.023-.391 1.414 0s.391 1.023 0 1.414l-3.551 3.55c-.195.195-.451.292-.707.292zm6.746.922c-.109 0-.221-.018-.331-.056-.521-.182-.796-.752-.613-1.274l.971-2.773c.182-.521.753-.795 1.274-.614.521.183.796.753.613 1.274l-.971 2.773c-.144.412-.53.67-.943.67zm-7.667-7.667c-.412 0-.798-.257-.943-.667-.184-.521.089-1.092.61-1.276l2.495-.881c.523-.18 1.092.091 1.276.61.184.521-.089 1.092-.61 1.276l-2.495.881c-.111.039-.223.057-.333.057zm29.46-21.767c-.256 0-.512-.098-.707-.293-.391-.391-.391-1.024 0-1.415l3.552-3.55c.391-.39 1.023-.39 1.414 0s.391 1.024 0 1.415l-3.552 3.55c-.195.196-.451.293-.707.293zm-4.164-1.697c-.109 0-.221-.019-.33-.057-.521-.182-.796-.752-.614-1.274l.97-2.773c.183-.521.752-.796 1.274-.614.521.182.796.752.614 1.274l-.97 2.773c-.144.413-.531.671-.944.671zm6.143 5.774c-.412 0-.798-.257-.943-.667-.184-.521.09-1.092.61-1.276l2.494-.881c.522-.185 1.092.09 1.276.61.184.521-.09 1.092-.61 1.276l-2.494.881c-.111.039-.223.057-.333.057z" fill="#FA743E"/><path fill="#FFDB5E" d="M35.39 23.822c-.661-1.032-.224-2.479-.342-4.096-.09-2.634-1.133-5.219-3.255-7.33l-7.228-7.189s-1.424-1.417-2.843.008c-1.417 1.424.008 2.842.008 2.842l3.054 3.039 2.646 2.632s-.71.712-3.639-2.202c-2.931-2.915-9.894-9.845-9.894-9.845s-1.425-1.417-2.843.008c-1.418 1.424.007 2.841.007 2.841l9.356 9.31c-.02-.02-.754.667-.767.654L9.64 4.534s-1.425-1.418-2.843.007c-1.417 1.425.007 2.842.007 2.842l10.011 9.962c.012.012-.68.741-.66.761L7.52 9.513s-1.425-1.417-2.843.008.007 2.843.007 2.843l9.181 9.135c.084.083-.53.891-.425.996l-6.616-6.583s-1.425-1.417-2.843.008.007 2.843.007 2.843l10.79 10.732c1.802 1.793 3.682 2.732 5.974 3.131.467.081 1.067.101 1.311.14.773.124 1.445.423 2.34 1.014 1.15.759 2.902 1.118 3.951.07l3.577-3.576 3.302-3.302c1.049-1.05.9-1.99.157-3.15z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M6 20c0 2.209-1.119 4-2.5 4S1 22.209 1 20s1.119-4 2.5-4S6 17.791 6 20zm29 0c0 2.209-1.119 4-2.5 4S30 22.209 30 20s1.119-4 2.5-4 2.5 1.791 2.5 4z"/><path fill="#FFDC5D" d="M4 20.562c0-8.526 6.268-15.438 14-15.438s14 6.912 14 15.438S25.732 35 18 35 4 29.088 4 20.562z"/><path fill="#662113" d="M12 22c-.552 0-1-.447-1-1v-2c0-.552.448-1 1-1s1 .448 1 1v2c0 .553-.448 1-1 1zm12 0c-.553 0-1-.447-1-1v-2c0-.552.447-1 1-1s1 .448 1 1v2c0 .553-.447 1-1 1z"/><path fill="#C1694F" d="M18 30c-4.188 0-6.357-1.06-6.447-1.105-.494-.247-.694-.848-.447-1.342.247-.492.843-.692 1.337-.449.051.024 1.925.896 5.557.896 3.665 0 5.54-.888 5.559-.897.496-.241 1.094-.034 1.336.457.243.493.045 1.089-.447 1.335C24.356 28.94 22.188 30 18 30zm1-5h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.553 0 1 .447 1 1s-.447 1-1 1z"/><path fill="#FFAC33" d="M18 .354C8.77.354 3 6.816 3 12.2c0 5.385 1.154 7.539 2.308 5.385l2.308-4.308s3.791-.124 6.099-2.278c0 0-1.071 4 6.594.124 0 0-.166 3.876 5.191-.124 0 0 4.039 1.201 5.191 6.586.32 1.494 2.309 0 2.309-5.385C33 6.816 28.385.354 18 .354z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M29.96 23.087C34 27 34.043 34.021 33.021 34.021s-4.115-1.852-6.068-3.937C25 28 25.203 23.306 25.203 23.306l1.586-4.319c0-.001-.869.187 3.171 4.1z"/><path fill="#FFAC33" d="M26.96 23.087C31 27 31.043 34.021 30.021 34.021s-4.115-1.852-6.068-3.937C22 28 22.203 23.306 22.203 23.306l1.586-4.319c0-.001-.869.187 3.171 4.1zM3 34c-1 0-1-7 3-11s3-4 3-4l2 4s0 5-2 7-5 4-6 4z"/><path fill="#FFAC33" d="M6 34c-1 0-1-7 3-11s3-4 3-4l2 4s0 5-2 7-5 4-6 4z"/><path fill="#FFDC5D" d="M6.914 18.353c-.571-2.134-2.116-3.575-3.45-3.217-1.334.358-1.95 2.378-1.379 4.511.571 2.135 2.116 3.574 3.45 3.217 1.334-.358 1.951-2.378 1.379-4.511zm27.001 1.294c.571-2.134-.046-4.154-1.38-4.512-1.333-.356-2.878 1.083-3.449 3.218-.572 2.134.045 4.153 1.379 4.511 1.334.358 2.879-1.083 3.45-3.217z"/><path fill="#FFDC5D" d="M31 19c0-9.389-5.82-16-13-16S5 9.611 5 19s5.82 15 13 15 13-5.611 13-15z"/><path fill="#DF1F32" d="M18 27.651c-2.42 0-4.274-.687-4.352-.715-.517-.194-.779-.771-.584-1.288.194-.517.769-.779 1.286-.585.016.006 1.61.588 3.65.588 2.041 0 3.635-.582 3.65-.588.516-.194 1.094.071 1.285.587.193.517-.067 1.092-.584 1.286-.077.029-1.93.715-4.351.715z"/><path fill="#C1694F" d="M19 23h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.553 0 1 .447 1 1s-.447 1-1 1z"/><path fill="#662113" d="M12 20c-.552 0-1-.447-1-1v-2c0-.552.448-1 1-1s1 .448 1 1v2c0 .553-.448 1-1 1zm12 0c-.553 0-1-.447-1-1v-2c0-.552.447-1 1-1s1 .448 1 1v2c0 .553-.447 1-1 1z"/><path fill="#FFAC33" d="M32 10c-2-7-7-9-10-9-2 0-4 2-4 2s-2-2-4-2c-3 0-8 2-10 9-1.648 5.769 1 11 1 11 0-3.001 2-9 7-9s6-4 6-4 .786 4 5.786 4S31 18 31 21c0 0 2.648-5.231 1-11z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M8 19c0 2.209-1.119 4-2.5 4S3 21.209 3 19s1.119-4 2.5-4S8 16.791 8 19zm25 0c0 2.209-1.119 4-2.5 4S28 21.209 28 19s1.119-4 2.5-4 2.5 1.791 2.5 4z"/><path fill="#FFDC5D" d="M5 20.562c0-8.526 5.82-15.438 13-15.438s13 6.912 13 15.438S25.18 36 18 36 5 29.088 5 20.562z"/><path fill="#662113" d="M13 20c-.552 0-1-.447-1-1v-2c0-.552.448-1 1-1s1 .448 1 1v2c0 .553-.448 1-1 1zm10 0c-.553 0-1-.447-1-1v-2c0-.552.447-1 1-1s1 .448 1 1v2c0 .553-.447 1-1 1z"/><path fill="#C1694F" d="M19 24h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.553 0 1 .447 1 1s-.447 1-1 1z"/><path fill="#FFAC33" d="M25.274 27.038l-3.294-.941c.003-.034.02-.063.02-.097 0-.553-.447-1-1-1h-6c-.552 0-1 .447-1 1 0 .034.016.063.019.097l-3.294.941c-.531.152-.838.706-.686 1.236.125.44.525.726.961.726.091 0 .184-.013.275-.038l1.931-.552c-.216.293-.274.688-.1 1.037.175.351.528.553.895.553.15 0 .303-.034.446-.105l1.577-.788c.036.326.213.631.529.788.143.071.296.105.446.105.367 0 .72-.202.896-.553l.105-.211.105.211c.176.351.529.553.896.553.15 0 .303-.034.446-.105.315-.157.493-.462.529-.788l1.576.788c.144.071.297.105.447.105.367 0 .72-.202.896-.553.174-.349.116-.744-.1-1.037l1.931.552c.091.025.183.038.275.038.434 0 .835-.286.961-.726.151-.53-.156-1.084-.688-1.236zM18 0c8.615 0 14 6.358 14 11.656 0 5.298-1.077 7.417-2.154 5.298l-2.153-4.238s-6.462 0-8.615-2.12c0 0 3.23 6.358-3.231 0 0 0 1.077 4.239-5.385-1.06 0 0-3.23 2.12-4.308 7.417C5.855 18.423 4 16.954 4 11.656 4 6.357 8.308 0 18 0z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M18 3c6 0 16 3 16 16s0 16-3 16-7-3-13-3-9.915 3-13 3c-3.343 0-3-12-3-16C2 6 12 3 18 3z"/><path fill="#FFDC5D" d="M6 18.562c0-8.526 5.373-15.438 12-15.438s12 6.912 12 15.438S24.627 34 18 34 6 27.088 6 18.562z"/><path fill="#DF1F32" d="M18 30c-2.347 0-3.575-1.16-3.707-1.293-.391-.391-.391-1.023 0-1.414.387-.387 1.013-.39 1.404-.01.051.047.806.717 2.303.717 1.519 0 2.273-.69 2.305-.719.398-.373 1.027-.362 1.408.029.379.393.38 1.011-.006 1.397C21.575 28.84 20.347 30 18 30z"/><path fill="#C1694F" d="M19 25h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.553 0 1 .447 1 1s-.447 1-1 1z"/><path fill="#FFAC33" d="M3.064 24c-.03-.325-.064-.647-.064-1 0-5 3 .562 3-3 0-3.563 2-4 4-6l3-3s5 3 9 3 8 2 8 6 3-2 3 3c0 .355-.033.673-.058 1h1.049C34 22.523 34 20.868 34 19 34 6 24 1 18 1S2 6 2 19c0 1.158-.028 2.986.012 5h1.052z"/><path d="M13 22c-.552 0-1-.447-1-1v-2c0-.552.448-1 1-1s1 .448 1 1v2c0 .553-.448 1-1 1zm10 0c-.553 0-1-.447-1-1v-2c0-.552.447-1 1-1s1 .448 1 1v2c0 .553-.447 1-1 1z" fill="#662113"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M36 11c0-1.104-.896-2-2-2s-2 .896-2 2c0 0-.011 3.285-3 3.894V12c0-6.075-4.925-11-11-11S7 5.925 7 12v3.237C1.778 16.806 0 23.231 0 27c0 1.104.896 2 2 2s2-.896 2-2c0 0 .002-3.54 3.336-3.958C7.838 27.883 8.954 33 11 33h1c4 0 3 2 7 2s3-2 6-2 2.395 2 6 2c1.657 0 3-1.343 3-3 0-.675-2.274-4.994-3.755-9.268C35.981 21.348 36 14.58 36 11z"/><circle fill="#292F33" cx="13" cy="12" r="2"/><circle fill="#292F33" cx="23" cy="12" r="4"/><circle fill="#9AAAB4" cx="23" cy="13" r="2"/><path fill="#292F33" d="M22.192 19.491c2.65 1.987 3.591 5.211 2.1 7.199-1.491 1.988-4.849 1.988-7.5 0-2.65-1.987-3.591-5.211-2.1-7.199 1.492-1.989 4.849-1.988 7.5 0z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><g fill="#E75A70"><path d="M13.589 26.521c-.297-.495-.284-1.117.035-1.599l4.395-6.646-5.995-5.139c-.556-.476-.686-1.283-.31-1.911l4.304-7.172c-1.669-1.301-3.755-2.09-6.035-2.09-5.45 0-9.868 4.417-9.868 9.868 0 .772.098 1.52.266 2.241C1.751 22.587 11.216 31.568 18 34.034c.025-.009.052-.022.077-.032l-4.488-7.481z"/><path d="M26.018 1.966c-2.765 0-5.248 1.151-7.037 2.983l-4.042 6.737 6.039 5.176c.574.492.691 1.335.274 1.966l-4.604 6.962 4.161 6.935c6.338-3.529 13.621-11.263 14.809-18.649.17-.721.268-1.469.268-2.241-.001-5.452-4.419-9.869-9.868-9.869z"/></g></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BF6952" d="M33.541 23.198c.364-1.578.243-3.266-.458-4.946-.678-1.625-1.847-2.91-3.271-3.773.318-1.192.234-2.475-.324-3.75-.841-1.92-2.66-3.201-4.712-3.562.249-.572.329-1.289.036-2.167-1-3-5-1-8-4.999-2.44 1.464-2.97 3.64-2.878 5.487-2.421.412-3.8.936-3.8.936v.002c-1.36.55-2.322 1.883-2.322 3.442 0 .879.318 1.676.828 2.312l-.692.258.001.003c-2.33.871-3.975 2.976-3.975 5.439 0 1.047.3 2.027.82 2.878C1.971 22.027 0 24.781 0 28c0 4.418 3.691 8 8.244 8 3.269 0 6.559-.703 9.531-1.665C20.018 35.375 23.47 36 28.667 36 32.717 36 36 32.717 36 28.667c0-2.176-.953-4.125-2.459-5.469z"/><ellipse fill="#F5F8FA" cx="13.5" cy="15.5" rx="3.5" ry="4.5"/><ellipse fill="#F5F8FA" cx="23.5" cy="15.5" rx="3.5" ry="4.5"/><ellipse fill="#292F33" cx="14" cy="15.5" rx="2" ry="2.5"/><ellipse fill="#292F33" cx="23" cy="15.5" rx="2" ry="2.5"/><path fill="#292F33" d="M9.447 24.895C9.201 24.402 9.45 24 10 24h18c.55 0 .799.402.553.895C28.553 24.895 26 30 19 30s-9.553-5.105-9.553-5.105z"/><path fill="#F2ABBA" d="M19 26c-2.771 0-5.157.922-6.292 2.256C14.2 29.211 16.253 30 19 30s4.801-.789 6.292-1.744C24.157 26.922 21.771 26 19 26z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M12.43 22s-.717-3.641.298-10.873c1.4.454 2.814.873 3.272.873 1 0 4-1 4-2s-1-2-1-2l2-1c1-1 0-7-4-7-7 0-9.57 7-9.57 7l.007.011H7.43s-6 10.989-6 20c.065 0-1 5 0 6s5 1 5 1C16.43 38 35 35 35 26c0-13-19.57-10-22.57-4z"/><path fill="#EF9645" d="M19.494 32.252c-3.178 0-5.793-1.283-5.941-1.357-.493-.247-.693-.846-.447-1.34.246-.494.845-.695 1.34-.45.042.021 4.241 2.061 7.957.641 2.055-.785 3.625-2.507 4.669-5.116.205-.515.791-.763 1.3-.558.513.205.763.787.558 1.3-1.263 3.155-3.223 5.258-5.827 6.248-1.216.461-2.451.632-3.609.632z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M16 18c-.419 0-.809-.265-.949-.684C14.848 16.717 14.034 15 13 15c-1.062 0-1.888 1.827-2.051 2.316-.175.523-.738.808-1.265.632-.524-.174-.807-.741-.632-1.265C9.177 16.307 10.356 13 13 13s3.823 3.307 3.949 3.684c.175.524-.108 1.091-.632 1.265-.106.034-.213.051-.317.051zm10 0c-.419 0-.809-.265-.948-.684C24.849 16.717 24.033 15 23 15c-1.062 0-1.889 1.827-2.052 2.316-.175.523-.736.808-1.265.632-.523-.174-.807-.741-.632-1.265C19.177 16.307 20.355 13 23 13s3.823 3.307 3.948 3.684c.175.524-.108 1.091-.632 1.265-.105.034-.212.051-.316.051zm-8 4c-3.623 0-6.027-.422-9-1-.679-.131-2 0-2 2 0 4 4.595 9 11 9 6.404 0 11-5 11-9 0-2-1.321-2.132-2-2-2.973.578-5.377 1-9 1z"/><path fill="#FFF" d="M9 23s3 1 9 1 9-1 9-1-1.344 6.75-9 6.75S9 23 9 23z"/><path fill="#664500" d="M18 27.594c-3.596 0-6.272-.372-7.937-.745l-.825-1.871c.823.312 3.889.897 8.763.897 4.954 0 8.037-.616 8.864-.938l-.701 1.842c-1.634.38-4.419.815-8.164.815z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M28.457 17.797c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.145.591.175.142.426.147.61.014.012-.009 1.262-.902 3.702-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.177-.142.238-.386.145-.594zm-12 0c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.144.591.176.142.427.147.61.014.013-.009 1.262-.902 3.703-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.178-.142.237-.386.145-.594zM31 16c-.396 0-.772-.238-.929-.629-1.778-4.445-6.223-5.381-6.268-5.391-.541-.108-.893-.635-.784-1.177.108-.542.635-.891 1.177-.784.226.045 5.556 1.168 7.732 6.608.205.513-.045 1.095-.558 1.3-.12.05-.246.073-.37.073zM5 16c-.124 0-.249-.023-.371-.072-.513-.205-.762-.787-.557-1.3 2.176-5.44 7.506-6.563 7.732-6.608.543-.106 1.068.243 1.177.784.108.54-.242 1.066-.781 1.176-.185.038-4.506.98-6.271 5.391-.157.391-.533.629-.929.629zm13 6c-3.623 0-6.027-.422-9-1-.679-.131-2 0-2 2 0 4 4.595 9 11 9 6.404 0 11-5 11-9 0-2-1.321-2.132-2-2-2.973.578-5.377 1-9 1z"/><path fill="#FFF" d="M9 23s3 1 9 1 9-1 9-1-2 4-9 4-9-4-9-4z"/><path fill="#5DADEC" d="M10.847 28.229c-.68 2.677-3.4 4.295-6.077 3.615-2.676-.679-4.295-3.399-3.616-6.076.679-2.677 6.337-8.708 7.307-8.462.97.247 3.065 8.247 2.386 10.923zm14.286 0c.68 2.677 3.4 4.295 6.077 3.615 2.677-.679 4.296-3.399 3.616-6.076-.68-2.677-6.338-8.708-7.308-8.462-.968.247-3.064 8.247-2.385 10.923z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="12.5" rx="2.5" ry="5.5"/><ellipse fill="#664500" cx="24.5" cy="12.5" rx="2.5" ry="5.5"/><path fill="#664500" d="M18 22c-3.623 0-6.027-.422-9-1-.679-.131-2 0-2 2 0 4 4.595 9 11 9 6.404 0 11-5 11-9 0-2-1.321-2.132-2-2-2.973.578-5.377 1-9 1z"/><path fill="#FFF" d="M9 23s3 1 9 1 9-1 9-1-2 4-9 4-9-4-9-4z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M28.457 17.797c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.145.591.175.142.426.147.61.014.012-.009 1.262-.902 3.702-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.177-.142.238-.386.145-.594zm-12 0c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.144.591.176.142.427.147.61.014.013-.009 1.262-.902 3.703-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.178-.142.237-.386.145-.594zM18 22c-3.623 0-6.027-.422-9-1-.679-.131-2 0-2 2 0 4 4.595 9 11 9 6.404 0 11-5 11-9 0-2-1.321-2.132-2-2-2.973.578-5.377 1-9 1z"/><path fill="#FFF" d="M9 23s3 1 9 1 9-1 9-1-2 4-9 4-9-4-9-4z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="16.5" rx="2.5" ry="3.5"/><path fill="#664500" d="M28.457 17.797c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.145.591.175.142.426.147.61.014.012-.009 1.262-.902 3.702-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.177-.142.238-.386.145-.594zM5.999 12.458c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4 3.262-4.35 7.616-4.4 7.8-4.4.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.156.002-3.569.086-6.205 3.6-.195.262-.496.4-.8.4zm23.002 2.125c-.305 0-.604-.138-.801-.4-2.592-3.457-6.961-2.627-7.004-2.62-.547.108-1.068-.243-1.177-.784-.108-.542.243-1.068.784-1.177.231-.047 5.657-1.072 8.996 3.38.332.442.242 1.069-.2 1.4-.179.137-.389.201-.598.201zm-5.747 8.994c-.188-.11-.432-.087-.597.06-.01.008-1.013.863-4.657.863-3.641 0-4.646-.854-4.646-.854-.159-.16-.404-.19-.6-.082-.195.111-.293.339-.238.557.01.044 1.144 4.379 5.484 4.379s5.474-4.335 5.485-4.379c.053-.213-.044-.431-.231-.544z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><circle fill="#FF7892" cx="7" cy="18" r="5"/><circle fill="#FF7892" cx="29" cy="18" r="5"/><path fill="#664500" d="M27.335 21.629c-.178-.161-.444-.171-.635-.029-.039.029-3.922 2.9-8.7 2.9-4.766 0-8.662-2.871-8.7-2.9-.191-.142-.457-.13-.635.029-.177.16-.217.424-.094.628C8.7 22.472 11.788 27.5 18 27.5s9.301-5.028 9.429-5.243c.123-.205.084-.468-.094-.628zM7.999 15c-.15 0-.303-.034-.446-.106-.494-.247-.694-.848-.447-1.342C7.158 13.448 8.424 11 12 11c3.577 0 4.842 2.449 4.894 2.553.247.494.047 1.095-.447 1.342-.492.245-1.085.049-1.336-.436C15.068 14.379 14.281 13 12 13c-2.317 0-3.099 1.433-3.106 1.447-.175.351-.528.553-.895.553zm20.002 0c-.367 0-.72-.202-.896-.553C27.08 14.401 26.299 13 24 13s-3.08 1.401-3.112 1.46c-.26.481-.859.67-1.345.42-.485-.252-.682-.839-.438-1.328C19.157 13.449 20.423 11 24 11s4.843 2.449 4.895 2.553c.247.494.047 1.095-.447 1.342-.144.071-.297.105-.447.105z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M28.312 15.612c-.175-.142-.426-.147-.61-.014-.012.009-1.261.902-3.702.902-2.44 0-3.69-.893-3.7-.9-.183-.137-.435-.133-.611.009-.178.142-.238.386-.146.594.06.135 1.5 3.297 4.457 3.297 2.958 0 4.397-3.162 4.457-3.297.092-.207.032-.449-.145-.591zm-12.61-.014c-.012.009-1.26.902-3.702.902-2.441 0-3.69-.893-3.7-.9-.183-.137-.434-.133-.611.009-.178.142-.238.386-.146.594.06.135 1.5 3.297 4.457 3.297 2.958 0 4.397-3.162 4.457-3.297.092-.207.032-.449-.145-.591-.176-.143-.428-.147-.61-.014zM29.001 13c-.305 0-.604-.138-.801-.4-2.592-3.456-6.961-2.628-7.004-2.62-.547.108-1.068-.243-1.177-.784-.108-.541.243-1.068.784-1.177.231-.047 5.657-1.072 8.996 3.38.332.442.242 1.069-.2 1.4-.179.136-.389.201-.598.201zM6.999 13c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4 3.339-4.454 8.766-3.426 8.996-3.38.542.108.893.635.784 1.177-.108.54-.634.891-1.174.785-.186-.035-4.436-.808-7.006 2.618-.196.262-.497.4-.801.4zm16.255 10.577c-.188-.111-.432-.086-.597.06-.01.008-1.013.863-4.657.863-3.641 0-4.646-.854-4.646-.854-.159-.16-.404-.19-.6-.082-.195.111-.293.339-.238.557.01.044 1.144 4.379 5.484 4.379s5.474-4.335 5.485-4.379c.053-.213-.044-.431-.231-.544z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M18 21.849c-2.966 0-4.935-.346-7.369-.819-.557-.106-1.638 0-1.638 1.638 0 3.275 3.763 7.369 9.007 7.369s9.007-4.094 9.007-7.369c0-1.638-1.082-1.745-1.638-1.638-2.434.473-4.402.819-7.369.819"/><path fill="#E75A70" d="M16.65 3.281C15.791.85 13.126-.426 10.694.431c-1.476.52-2.521 1.711-2.928 3.104-1.191-.829-2.751-1.1-4.225-.58C1.111 3.813-.167 6.48.692 8.911c.122.344.284.663.472.958 1.951 3.582 7.588 6.1 11.001 6.131 2.637-2.167 5.446-7.665 4.718-11.677-.038-.348-.113-.698-.233-1.042zm2.7 0C20.209.85 22.875-.426 25.306.431c1.476.52 2.521 1.711 2.929 3.104 1.191-.829 2.751-1.1 4.225-.58 2.43.858 3.707 3.525 2.85 5.956-.123.344-.284.663-.473.958-1.951 3.582-7.588 6.1-11.002 6.131-2.637-2.167-5.445-7.665-4.717-11.677.037-.348.112-.698.232-1.042z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M24.327 23.622c-.153-.132-.368-.159-.551-.069l-4 2c-1.871.935-6.727.947-6.776.947-.276 0-.5.224-.5.5 0 .185.101.347.25.433v.001h.001v.001c.071.04.153.063.24.065h7.008c2.658 0 4.089-2.185 4.475-3.342.064-.192.006-.403-.147-.536zM31.001 16c-.305 0-.604-.138-.801-.4-2.641-3.521-6.061-3.599-6.206-3.6-.55-.006-.994-.456-.991-1.005.003-.551.447-.995.997-.995.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zM4.999 16c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C7.462 10.05 11.816 10 12 10c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.156.002-3.569.086-6.205 3.6-.195.262-.496.4-.8.4zm10.898 1.396c.023-.052.059-.096.073-.154.134-.536-.192-1.079-.727-1.213-.18-.045-4.467-1.08-7.797 1.138-.459.306-.583.927-.277 1.387.192.29.509.446.832.446.19 0 .383-.055.554-.168 1.092-.729 2.362-.995 3.468-1.061-.009.076-.023.151-.023.229 0 1.104.896 2 2 2s2-.896 2-2c0-.212-.042-.412-.103-.604zm11.999-.001c.023-.052.059-.095.073-.152.135-.536-.191-1.079-.727-1.213-.18-.045-4.466-1.08-7.797 1.138-.46.306-.584.927-.277 1.387.192.289.51.445.833.445.19 0 .383-.055.554-.168 1.092-.729 2.361-.994 3.469-1.06-.009.076-.024.15-.024.228 0 1.104.896 2 2 2s2-.896 2-2c0-.212-.042-.413-.104-.605z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M25.485 27.879C25.44 27.7 24.317 23.5 18 23.5c-6.318 0-7.44 4.2-7.485 4.379-.055.217.043.442.237.554.195.111.439.078.6-.077.019-.019 1.954-1.856 6.648-1.856s6.63 1.837 6.648 1.855c.096.095.224.145.352.145.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557zM29.001 14c-.305 0-.604-.138-.801-.4-2.432-3.244-6.514-.846-6.686-.743-.475.285-1.089.13-1.372-.343-.284-.474-.131-1.088.343-1.372 1.998-1.199 6.514-2.477 9.314 1.257.332.442.242 1.069-.2 1.4-.179.136-.389.201-.598.201zM6.999 14c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4 2.801-3.734 7.317-2.456 9.314-1.257.474.284.627.898.343 1.372-.284.473-.896.628-1.37.344-.179-.106-4.274-2.475-6.688.742-.195.261-.496.399-.8.399zM29 16c0-.552-.447-1-1-1h-7c-.553 0-1 .448-1 1s.447 1 1 1h5.092c.207.581.756 1 1.408 1 .828 0 1.5-.671 1.5-1.5 0-.11-.014-.217-.036-.321.012-.06.036-.116.036-.179zm-13 0c0-.552-.448-1-1-1H8c-.552 0-1 .448-1 1s.448 1 1 1h5.092c.207.581.756 1 1.408 1 .828 0 1.5-.671 1.5-1.5 0-.11-.014-.217-.036-.321.011-.06.036-.116.036-.179z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M28.457 17.797c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.145.591.175.142.426.147.61.014.012-.009 1.262-.902 3.702-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.177-.142.238-.386.145-.594zm-11 0c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.144.591.176.142.427.147.61.014.013-.009 1.262-.902 3.703-.902 2.426 0 3.674.881 3.702.901.089.066.194.099.298.099.11 0 .221-.037.312-.109.178-.142.237-.386.145-.594zM13 28s1-4 5-4 5 4 5 4-1-1-5-1-5 1-5 1z"/><path fill="#5DADEC" d="M11 11c0 2.762-2.238 5-5 5-2.761 0-5-2.238-5-5S5 1 6 1s5 7.238 5 10z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M17.312 17.612c-.176-.143-.427-.147-.61-.014-.012.009-1.26.902-3.702.902-2.441 0-3.69-.893-3.7-.9-.183-.137-.435-.133-.611.009-.178.142-.238.386-.146.594.06.135 1.5 3.297 4.457 3.297 2.958 0 4.397-3.162 4.457-3.297.092-.207.032-.449-.145-.591zm10 0c-.176-.143-.426-.148-.61-.014-.012.009-1.261.902-3.702.902-2.44 0-3.69-.893-3.7-.9-.183-.137-.434-.133-.611.009-.178.142-.238.386-.146.594.06.135 1.5 3.297 4.457 3.297 2.958 0 4.397-3.162 4.457-3.297.092-.207.032-.449-.145-.591zM22 28h-8c-.552 0-1-.447-1-1s.448-1 1-1h8c.553 0 1 .447 1 1s-.447 1-1 1zM6 14c-.552 0-1-.448-1-1 0-.551.445-.998.996-1 .156-.002 3.569-.086 6.205-3.6.331-.44.957-.532 1.4-.2.442.331.531.958.2 1.4C10.538 13.95 6.184 14 6 14zm24 0c-.184 0-4.537-.05-7.8-4.4-.332-.442-.242-1.069.2-1.4.441-.333 1.067-.242 1.399.2 2.641 3.521 6.061 3.599 6.206 3.6.55.006.994.456.991 1.005-.002.551-.446.995-.996.995z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M6 13c-.552 0-1-.448-1-1 0-.551.445-.998.996-1 .156-.002 3.569-.086 6.205-3.6.331-.44.957-.532 1.4-.2.442.331.531.958.2 1.4C10.538 12.95 6.184 13 6 13zm24 0c-.184 0-4.537-.05-7.8-4.4-.332-.442-.242-1.069.2-1.4.441-.333 1.067-.242 1.399.2 2.641 3.521 6.061 3.599 6.206 3.6.55.006.994.456.991 1.005-.002.551-.446.995-.996.995zm.6 7.2c-.114-.086-1.931-1.426-4.646-2.344.026-.115.046-.233.046-.356 0-.369-.139-.703-.359-.964 1.802-.52 3.334-.536 3.361-.536.551-.002.998-.45.997-1.002-.001-.551-.447-.998-.999-.998-.221 0-5.451.038-8.707 3.293-.286.286-.372.716-.217 1.09.154.374.52.617.924.617 4.59 0 8.363 2.772 8.401 2.801.18.134.39.198.598.198.305 0 .605-.139.802-.4.33-.443.24-1.068-.201-1.399zm-14.893-2.907C12.452 14.038 7.221 14 7 14c-.552 0-.999.447-.999.998-.001.552.446 1 .998 1.002.026 0 1.558.016 3.361.536-.221.261-.36.595-.36.964 0 .123.019.241.047.356-2.716.918-4.533 2.258-4.647 2.344-.442.331-.531.958-.2 1.399.196.263.497.401.801.401.208 0 .419-.065.599-.2.037-.028 3.787-2.8 8.4-2.8.404 0 .769-.243.924-.617.155-.374.069-.804-.217-1.09zM18 30c-.304 0-.591-.138-.781-.375l-3.194-3.992L11.8 28.6c-.174.232-.44.377-.729.397-.29.021-.574-.085-.778-.29l-1-1c-.391-.391-.391-1.023 0-1.414s1.023-.391 1.414 0l.185.185L13.2 23.4c.186-.248.475-.396.784-.4.295-.01.603.133.796.375L18 27.399l3.219-4.024c.193-.241.484-.375.797-.375.31.005.599.152.784.4l2.309 3.077.185-.185c.391-.391 1.023-.391 1.414 0s.391 1.023 0 1.414l-1 1c-.205.205-.479.314-.778.29-.289-.021-.555-.165-.729-.397l-2.226-2.967-3.193 3.992c-.191.238-.478.376-.782.376z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="15.5" rx="2.5" ry="3.5"/><path fill="#664500" d="M28.457 17.797c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.145.591.175.142.426.147.61.014.012-.009 1.262-.902 3.702-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.177-.142.238-.386.145-.594zM5.999 11c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C8.462 5.05 12.816 5 13 5c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4zm23.002 3c-.305 0-.604-.138-.801-.4-2.592-3.456-6.961-2.628-7.004-2.62-.547.11-1.068-.244-1.177-.784-.108-.541.243-1.068.784-1.177.231-.047 5.657-1.072 8.996 3.38.332.442.242 1.069-.2 1.4-.179.136-.389.201-.598.201zm-8.13 14c1.335-.412 2.629-1.156 2.629-2.5 0-2.619-4.912-2.968-5.472-2.999-.274-.026-.509.193-.527.468-.017.274.19.511.464.53.035.002 3.535.299 3.535 2.001s-3.5 1.999-3.535 2.001c-.014.001-.024.009-.037.011-.052.006-.101.018-.146.04l-.019.011c-.047.026-.088.057-.124.098-.014.015-.024.031-.036.048-.023.032-.044.063-.06.102-.012.029-.018.061-.024.092-.004.023-.016.044-.018.067 0 .011.004.021.004.031s-.005.021-.004.031c.001.024.013.045.018.068.006.031.011.061.023.09.013.03.031.057.049.084.017.024.032.05.052.071.023.023.05.041.078.061.024.017.046.034.074.047.032.015.066.021.101.027.024.006.044.018.069.02.035.001 3.535.298 3.535 2s-3.5 1.999-3.535 2.001c-.274.02-.481.257-.464.53.017.265.237.469.499.469l.028-.001c.56-.031 5.472-.38 5.472-2.999 0-1.344-1.294-2.088-2.629-2.5z"/><path fill="#E75A70" d="M35.404 27.222c.739-1.516.11-3.347-1.405-4.086-.922-.449-1.956-.391-2.793.06-.16-.936-.75-1.789-1.67-2.237-1.517-.74-3.348-.109-4.087 1.406-.105.215-.18.437-.23.659-.774 2.556.64 6.341 2.192 7.948 2.223.234 6.077-.979 7.615-3.161.145-.179.273-.374.378-.589z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><circle fill="#FF7892" cx="7" cy="21" r="5"/><circle fill="#FF7892" cx="29" cy="21" r="5"/><path fill="#664500" d="M28.416 17.723C28.355 17.632 26.901 15.5 24 15.5c-2.9 0-4.355 2.132-4.416 2.223-.135.202-.104.47.071.638.174.167.446.185.643.042.012-.01 1.262-.903 3.702-.903 2.426 0 3.674.881 3.702.901.089.066.194.099.298.099.124 0 .248-.046.344-.137.177-.167.207-.438.072-.64zM12 15.5c-2.9 0-4.355 2.132-4.416 2.223-.134.202-.104.47.071.638.175.167.447.185.642.042.013-.01 1.262-.903 3.703-.903 2.426 0 3.674.881 3.702.901.089.066.194.099.298.099.124 0 .248-.046.344-.137.177-.167.208-.438.072-.641-.061-.09-1.515-2.222-4.416-2.222zM21.871 27c1.335-.412 2.629-1.156 2.629-2.5 0-2.619-4.912-2.968-5.473-2.999-.277-.036-.51.194-.526.468-.017.274.19.511.464.53.035.002 3.535.299 3.535 2.001s-3.5 1.999-3.535 2.001c-.01.001-.017.006-.026.007-.124.008-.23.065-.31.159l-.015.021c-.029.039-.055.078-.073.125-.011.027-.016.057-.021.086-.005.024-.017.046-.019.07-.001.01.004.02.004.031s-.005.021-.004.031c.002.025.013.046.019.07.006.029.011.059.022.087.013.032.032.06.051.088.017.023.03.047.05.067.023.024.052.043.081.062.024.017.045.033.071.046.031.015.065.021.101.027.023.006.044.018.069.02.035.003 3.535.3 3.535 2.002s-3.5 1.999-3.535 2.001c-.273.02-.481.257-.464.53.017.265.236.469.499.469l.027-.001c.561-.031 5.473-.38 5.473-2.999 0-1.344-1.294-2.088-2.629-2.5zm9.13-11c-.305 0-.604-.138-.801-.4-2.641-3.521-6.061-3.599-6.206-3.6-.55-.006-.994-.456-.991-1.005.003-.551.447-.995.997-.995.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zM4.999 16c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C7.462 10.05 11.816 10 12 10c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.156.002-3.569.086-6.205 3.6-.195.262-.496.4-.8.4z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCB4C" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#65471B" d="M15.457 15.815c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.144.591.177.143.427.147.61.014.013-.009 1.262-.902 3.703-.902 2.426 0 3.674.881 3.702.901.088.066.193.099.298.099.11 0 .221-.037.311-.109.179-.142.238-.386.146-.594z"/><path fill="#F4F7F9" d="M31 13.5c0 3.59-2.91 6.5-6.5 6.5S18 17.09 18 13.5 20.91 7 24.5 7 31 9.91 31 13.5z"/><circle fill="#292F33" cx="24.5" cy="13.5" r="2.5"/><path fill="#65471B" d="M7 21.262c0 3.964 4.596 9 11 9s11-5 11-9c0 0-10.333 2.756-22 0z"/><path fill="#E8596E" d="M18.545 23.604l-1.091-.005c-3.216-.074-5.454-.596-5.454-.596v6.961c0 3 2 6 6 6s6-3 6-6v-6.92c-1.922.394-3.787.542-5.455.56z"/><path fill="#DD2F45" d="M18 31.843c.301 0 .545-.244.545-.545v-7.694l-1.091-.005v7.699c.001.301.245.545.546.545z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCB4C" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#65471B" d="M30.6 18.2c-.114-.085-1.931-1.426-4.646-2.344.026-.115.046-.233.046-.356 0-.369-.139-.703-.359-.964 1.802-.52 3.334-.536 3.361-.536.551-.002.998-.45.997-1.002-.001-.551-.447-.998-.999-.998-.221 0-5.451.038-8.707 3.293-.286.286-.372.716-.217 1.09.154.373.52.617.924.617 4.59 0 8.363 2.773 8.401 2.801.18.134.39.199.598.199.305 0 .605-.139.802-.401.33-.443.24-1.068-.201-1.399zm-14.893-2.907C12.452 12.038 7.221 12 7 12c-.552 0-.999.447-.999.998-.001.552.446 1 .998 1.002.026 0 1.558.016 3.361.536-.221.261-.36.595-.36.964 0 .123.019.241.047.356-2.716.918-4.533 2.259-4.647 2.344-.442.331-.531.958-.2 1.4.196.262.497.4.801.4.208 0 .419-.065.599-.2.037-.028 3.787-2.8 8.4-2.8.404 0 .769-.244.924-.617.155-.374.069-.804-.217-1.09zM7 21.263c0 3.964 4.596 9 11 9s11-5 11-9c0 0-10.333 2.756-22 0z"/><path fill="#E8596E" d="M18.545 23.604l-1.091-.005c-3.216-.074-5.454-.596-5.454-.596v6.961c0 3 2 6 6 6s6-3 6-6v-6.92c-1.922.395-3.787.543-5.455.56z"/><path fill="#DD2F45" d="M18 31.844c.301 0 .545-.244.545-.545v-7.694l-1.091-.005v7.699c.001.301.245.545.546.545z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M23.485 28.879C23.474 28.835 22.34 24.5 18 24.5s-5.474 4.335-5.485 4.379c-.053.213.044.431.232.544.188.112.433.086.596-.06.009-.008 1.013-.863 4.657-.863 3.59 0 4.617.83 4.656.863.095.09.219.137.344.137.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557zm2.295-13.238c-.341-.093-.692-.14-1.043-.14-2.345 0-4.053 2.06-4.125 2.147-.143.176-.148.425-.017.609.134.184.374.253.586.173.005-.002.572-.214 1.564-.214.714 0 1.469.107 2.244.319 2.342.638 3.313 1.818 3.334 1.844.098.124.243.191.394.191.066 0 .134-.014.197-.041.209-.09.331-.31.297-.534-.021-.146-.577-3.576-3.431-4.354zm-14.554-.129c-.317 0-.636.039-.947.116-2.87.707-3.513 4.121-3.539 4.267-.04.223.076.443.281.54.067.031.14.047.211.047.145 0 .287-.063.385-.18.01-.012 1.01-1.178 3.379-1.761.714-.176 1.412-.265 2.073-.265 1.104 0 1.732.253 1.735.254.067.028.131.04.207.04.272.012.509-.221.509-.5 0-.165-.08-.311-.203-.402-.367-.435-1.953-2.156-4.091-2.156z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M25.485 29.879C25.44 29.7 24.317 25.5 18 25.5c-6.318 0-7.44 4.2-7.485 4.379-.055.217.043.442.237.554.195.109.439.079.6-.077.019-.019 1.954-1.856 6.648-1.856s6.63 1.837 6.648 1.855c.096.095.224.145.352.145.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557zm-9.778-12.586C12.452 14.038 7.221 14 7 14c-.552 0-.999.447-.999.998-.001.552.446 1 .998 1.002.029 0 1.925.022 3.983.737-.593.64-.982 1.634-.982 2.763 0 1.934 1.119 3.5 2.5 3.5s2.5-1.566 2.5-3.5c0-.174-.019-.34-.037-.507.013 0 .025.007.037.007.256 0 .512-.098.707-.293.391-.391.391-1.023 0-1.414zM29 14c-.221 0-5.451.038-8.707 3.293-.391.391-.391 1.023 0 1.414.195.195.451.293.707.293.013 0 .024-.007.036-.007-.016.167-.036.333-.036.507 0 1.934 1.119 3.5 2.5 3.5s2.5-1.566 2.5-3.5c0-1.129-.389-2.123-.982-2.763 2.058-.715 3.954-.737 3.984-.737.551-.002.998-.45.997-1.002-.001-.551-.447-.998-.999-.998z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DA2F47" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#292F33" d="M25.485 29.879C25.44 29.7 24.317 25.5 18 25.5c-6.318 0-7.44 4.2-7.485 4.379-.055.217.043.442.237.554.195.109.439.079.6-.077.019-.019 1.954-1.856 6.648-1.856s6.63 1.837 6.648 1.855c.096.095.224.145.352.145.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557zm-9.778-12.586C12.452 14.038 7.221 14 7 14c-.552 0-.999.447-.999.998-.001.552.446 1 .998 1.002.029 0 1.925.022 3.983.737-.593.64-.982 1.634-.982 2.763 0 1.934 1.119 3.5 2.5 3.5s2.5-1.566 2.5-3.5c0-.174-.019-.34-.037-.507.013 0 .025.007.037.007.256 0 .512-.098.707-.293.391-.391.391-1.023 0-1.414zM29 14c-.221 0-5.451.038-8.707 3.293-.391.391-.391 1.023 0 1.414.195.195.451.293.707.293.013 0 .024-.007.036-.007-.016.167-.036.333-.036.507 0 1.934 1.119 3.5 2.5 3.5s2.5-1.566 2.5-3.5c0-1.129-.389-2.123-.982-2.763 2.058-.715 3.954-.737 3.984-.737.551-.002.998-.45.997-1.002-.001-.551-.447-.998-.999-.998z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="17" rx="2.5" ry="3.5"/><ellipse fill="#664500" cx="24.5" cy="17" rx="2.5" ry="3.5"/><path fill="#664500" d="M5.999 13.5c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4 3.262-4.35 7.616-4.4 7.8-4.4.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4zm24.002 0c-.305 0-.604-.138-.801-.4-2.641-3.521-6.061-3.599-6.206-3.6-.55-.006-.994-.456-.991-1.005.003-.551.447-.995.997-.995.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zm-6.516 14.879C23.474 28.335 22.34 24 18 24s-5.474 4.335-5.485 4.379c-.053.213.044.431.232.544.188.112.433.086.596-.06C13.352 28.855 14.356 28 18 28c3.59 0 4.617.83 4.656.863.095.09.219.137.344.137.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557z"/><path fill="#5DADEC" d="M16 31c0 2.762-2.238 5-5 5s-5-2.238-5-5 4-10 5-10 5 7.238 5 10z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M29 10c-5.554 0-7.802-4.367-7.895-4.553-.247-.494-.047-1.095.447-1.342.493-.246 1.092-.048 1.34.443C22.967 4.694 24.713 8 29 8c.553 0 1 .448 1 1s-.447 1-1 1zM7 10c-.552 0-1-.448-1-1s.448-1 1-1c5.083 0 5.996-3.12 6.033-3.253.145-.528.692-.848 1.219-.709.53.139.851.673.718 1.205C14.921 5.437 13.704 10 7 10zm-.999 13c-.304 0-.604-.138-.801-.4-.332-.441-.242-1.068.2-1.399.143-.107 2.951-2.183 6.856-2.933C9.781 17.027 7.034 17 6.999 17c-.552-.001-.999-.45-.998-1.002 0-.551.447-.998.999-.998.221 0 5.452.038 8.707 3.293.286.286.372.716.217 1.09-.155.374-.52.617-.924.617-4.613 0-8.363 2.772-8.4 2.8-.18.135-.391.2-.599.2zm23.998-.001c-.208 0-.418-.064-.598-.198C29.363 22.772 25.59 20 21 20c-.404 0-.77-.243-.924-.617-.155-.374-.069-.804.217-1.09C23.549 15.038 28.779 15 29 15c.552 0 .998.447.999.998.001.552-.446 1-.997 1.002-.036 0-2.783.027-5.258 1.268 3.905.75 6.713 2.825 6.855 2.933.441.331.531.956.201 1.398-.196.261-.496.4-.801.4zm-4.545 7.792c-.118-.257-2.938-6.291-7.21-6.291-4.249 0-7.546 6.007-7.684 6.262-.113.209-.063.469.119.621.093.078.207.117.321.117.11 0 .22-.036.311-.109.031-.024 3.163-2.479 6.933-2.479 3.743 0 6.388 2.43 6.414 2.454.175.162.442.18.634.04.194-.14.262-.397.162-.615z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="16.5" rx="2.5" ry="3.5"/><ellipse fill="#664500" cx="24.5" cy="16.5" rx="2.5" ry="3.5"/><path fill="#664500" d="M23.485 27.879C23.474 27.835 22.34 23.5 18 23.5s-5.474 4.335-5.485 4.379c-.053.213.044.431.232.544.188.112.433.086.596-.06.009-.007 1.013-.863 4.657-.863 3.59 0 4.617.83 4.656.863.095.091.219.137.344.137.084 0 .169-.021.246-.064.196-.111.294-.339.239-.557z"/><path fill="#5DADEC" d="M10 30c0 2.762-2.238 5-5 5s-5-2.238-5-5 4-10 5-10 5 7.238 5 10z"/><path fill="#664500" d="M30 13c-5.554 0-7.802-4.367-7.895-4.553-.247-.494-.047-1.095.447-1.342.492-.247 1.092-.048 1.34.443C23.967 7.694 25.713 11 30 11c.553 0 1 .448 1 1 0 .553-.447 1-1 1zM6 13c-.552 0-1-.448-1-1s.448-1 1-1c5.083 0 5.996-3.12 6.033-3.253.145-.528.69-.848 1.219-.709.53.139.851.673.718 1.205C13.921 8.437 12.704 13 6 13z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#BDDDF4" d="M18 11c8.749 0 16.033 4.509 17.656 10.484.222-1.128.344-2.292.344-3.484 0-9.94-8.059-18-18-18C8.06 0 0 8.06 0 18c0 1.192.123 2.356.344 3.484C1.967 15.509 9.252 11 18 11z"/><ellipse fill="#664500" cx="11.5" cy="16.5" rx="2.5" ry="3.5"/><ellipse fill="#664500" cx="24.5" cy="16.5" rx="2.5" ry="3.5"/><path fill="#664500" d="M5.999 12c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C8.462 6.05 12.816 6 13 6c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4zm24.002 0c-.305 0-.604-.138-.801-.4-2.64-3.521-6.061-3.598-6.206-3.6-.55-.006-.994-.456-.991-1.005C22.006 6.444 22.45 6 23 6c.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zm-6.516 15.879C23.474 27.835 22.34 23.5 18 23.5s-5.474 4.335-5.485 4.379c-.053.213.043.431.231.544.187.112.433.086.596-.06.011-.008 1.015-.863 4.658-.863 3.589 0 4.617.83 4.656.863.095.09.219.137.344.137.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M23.485 28.879C23.474 28.835 22.34 24.5 18 24.5s-5.474 4.335-5.485 4.379c-.053.213.044.431.232.544.188.112.433.086.596-.06.009-.008 1.013-.863 4.657-.863 3.59 0 4.617.83 4.656.863.095.09.219.137.344.137.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557zm-7.782-11.281c-.013.009-1.262.902-3.703.902-2.442 0-3.69-.893-3.7-.9-.194-.146-.466-.132-.644.037-.177.167-.208.438-.072.641.061.09 1.515 2.222 4.416 2.222 2.9 0 4.355-2.132 4.416-2.223.134-.202.104-.47-.071-.638-.176-.169-.449-.184-.642-.041zm12.642.042c-.175-.169-.447-.186-.643-.042-.012.009-1.262.902-3.702.902-2.441 0-3.69-.893-3.7-.9-.193-.146-.466-.132-.644.037-.177.167-.207.438-.072.641.061.09 1.515 2.222 4.416 2.222 2.9 0 4.355-2.132 4.416-2.223.135-.201.104-.469-.071-.637zM31.001 16c-.305 0-.604-.138-.801-.4-2.641-3.521-6.061-3.599-6.206-3.6-.55-.006-.994-.456-.991-1.005.003-.551.447-.995.997-.995.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zM4.999 16c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C7.462 10.05 11.816 10 12 10c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.156.002-3.569.086-6.205 3.6-.195.262-.496.4-.8.4z"/><path fill="#5DADEC" d="M23 23c6.211 0 13 4 13 9 0 4-3 4-3 4-8 0-1-9-10-13z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M22 27c0 2.763-1.791 3-4 3-2.21 0-4-.237-4-3 0-2.761 1.79-6 4-6 2.209 0 4 3.239 4 6zm8-12c-.124 0-.25-.023-.371-.072-5.229-2.091-7.372-5.241-7.461-5.374-.307-.46-.183-1.081.277-1.387.459-.306 1.077-.184 1.385.274.019.027 1.93 2.785 6.541 4.629.513.206.763.787.558 1.3-.157.392-.533.63-.929.63zM6 15c-.397 0-.772-.238-.929-.629-.205-.513.044-1.095.557-1.3 4.612-1.844 6.523-4.602 6.542-4.629.308-.456.929-.577 1.387-.27.457.308.581.925.275 1.383-.089.133-2.232 3.283-7.46 5.374C6.25 14.977 6.124 15 6 15z"/><path fill="#5DADEC" d="M24 16h4v19l-4-.046V16zM8 35l4-.046V16H8v19z"/><path fill="#664500" d="M14.999 18c-.15 0-.303-.034-.446-.105-3.512-1.756-7.07-.018-7.105 0-.495.249-1.095.046-1.342-.447-.247-.494-.047-1.095.447-1.342.182-.09 4.498-2.197 8.895 0 .494.247.694.848.447 1.342-.176.35-.529.552-.896.552zm14 0c-.15 0-.303-.034-.446-.105-3.513-1.756-7.07-.018-7.105 0-.494.248-1.094.047-1.342-.447-.247-.494-.047-1.095.447-1.342.182-.09 4.501-2.196 8.895 0 .494.247.694.848.447 1.342-.176.35-.529.552-.896.552z"/><ellipse fill="#5DADEC" cx="18" cy="34" rx="18" ry="2"/><ellipse fill="#E75A70" cx="18" cy="27" rx="3" ry="2"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="16.5" rx="2.5" ry="3.5"/><ellipse fill="#664500" cx="24.5" cy="16.5" rx="2.5" ry="3.5"/><path fill="#664500" d="M23.485 27.879C23.474 27.835 22.34 23.5 18 23.5s-5.474 4.335-5.484 4.379c-.053.213.043.431.231.544.187.112.433.086.596-.06.01-.008 1.014-.863 4.657-.863 3.59 0 4.617.83 4.656.863.095.09.219.137.344.137.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557z"/><path fill="#5DADEC" d="M10 30c0 2.762-2.238 5-5 5s-5-2.238-5-5 4-10 5-10 5 7.238 5 10z"/><path fill="#BDDDF4" d="M18 11c8.749 0 16.033 4.509 17.656 10.484.222-1.128.344-2.292.344-3.484 0-9.94-8.059-18-18-18C8.06 0 0 8.06 0 18c0 1.192.123 2.356.344 3.484C1.967 15.509 9.252 11 18 11z"/><path fill="#664500" d="M30 12c-5.554 0-7.802-4.367-7.895-4.553-.247-.494-.047-1.095.447-1.342.492-.247 1.092-.048 1.34.443C23.967 6.694 25.713 10 30 10c.553 0 1 .448 1 1s-.447 1-1 1zM6 12c-.552 0-1-.448-1-1s.448-1 1-1c5.083 0 5.996-3.12 6.033-3.253.145-.528.69-.848 1.219-.709.53.139.851.673.718 1.205C13.921 7.437 12.704 12 6 12z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M18 0C8.06 0 0 8.06 0 18c0 6.051 2.996 11.392 7.574 14.655C7.678 26.217 5.337 19 1.404 19c-.464 0-.84.066-1.153.183C.554 18.426 1.211 18 2.44 18c4.27 0 6.666 8.506 6.092 15.288C11.286 34.997 14.522 36 18 36c3.479 0 6.716-1.004 9.47-2.713C26.893 26.48 29.288 18 33.561 18c1.233 0 1.892.426 2.192 1.183-.314-.117-.691-.183-1.157-.183-3.938 0-6.278 7.199-6.17 13.655C33.005 29.392 36 24.051 36 18c0-9.94-8.059-18-18-18z"/><path fill="#BDDDF4" d="M18 0C8.06 0 0 8.06 0 18c0 1.192.123 2.356.344 3.484.234-.863.6-1.691 1.058-2.484-.463 0-.838.066-1.15.183.264-.659.822-1.048 1.768-1.142C5.012 13.862 11.037 11 18 11c6.964 0 12.988 2.861 15.98 7.04.95.094 1.51.482 1.772 1.143-.312-.117-.689-.183-1.153-.183.458.793.823 1.621 1.058 2.484.221-1.128.343-2.292.343-3.484 0-9.94-8.059-18-18-18z"/><path fill="#F5F8FA" d="M7.347 11.91c-.946 3.176.107 6.293 2.353 6.962 2.246.67 4.834-1.362 5.779-4.538.946-3.175-.106-6.293-2.351-6.962-2.246-.669-4.834 1.363-5.781 4.538zm21.305 0c.946 3.176-.107 6.293-2.352 6.962-2.246.67-4.834-1.362-5.779-4.538-.946-3.175.107-6.293 2.351-6.962 2.245-.669 4.833 1.363 5.78 4.538z"/><path fill="#664500" d="M18 18c-2.757 0-5 2.243-5 5v6c0 2.757 2.243 5 5 5s5-2.243 5-5v-6c0-2.757-2.243-5-5-5z"/><path fill="#FCAB40" d="M1.404 19c-.464 0-.84.066-1.153.183.072-.179.167-.336.281-.476C-1.33 20.998 2.849 28.54.818 36h6.46c1.19-6.96-1.235-17-5.874-17zm34.349.183c-.314-.117-.691-.183-1.157-.183-4.641 0-7.065 10.002-5.873 17h6.46c-1.906-7.045 1.656-14.089.57-16.817z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="18" cy="27" rx="5" ry="6"/><path fill="#664500" d="M5.999 11c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C8.462 5.05 12.816 5 13 5c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4zm24.002 0c-.305 0-.604-.138-.801-.4-2.64-3.521-6.061-3.598-6.206-3.6-.55-.006-.994-.456-.991-1.005C22.006 5.444 22.45 5 23 5c.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2z"/><path fill="#F5F8FA" d="M18 23c-1.657 0-3 1.79-3 4h6c0-2.21-1.343-4-3-4z"/><ellipse fill="#664500" cx="12" cy="14.5" rx="2.5" ry="3.5"/><ellipse fill="#664500" cx="24" cy="14.5" rx="2.5" ry="3.5"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><circle fill="#FF7892" cx="29" cy="23" r="5"/><circle fill="#FF7892" cx="7" cy="23" r="5"/><circle fill="#F5F8FA" cx="24.5" cy="16.5" r="5.5"/><circle fill="#F5F8FA" cx="11.5" cy="16.5" r="5.5"/><circle fill="#664500" cx="11.5" cy="16.5" r="2.5"/><circle fill="#664500" cx="24.5" cy="16.5" r="2.5"/><path fill="#664500" d="M22 30h-8c-.552 0-1-.447-1-1s.448-1 1-1h8c.553 0 1 .447 1 1s-.447 1-1 1zm8.001-19c-.305 0-.604-.138-.801-.4-2.64-3.521-6.061-3.598-6.206-3.6-.55-.006-.994-.456-.991-1.005C22.006 5.444 22.45 5 23 5c.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zM5.999 11c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C8.462 5.05 12.816 5 13 5c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M7.001 15c-.323 0-.64-.156-.833-.445-.306-.46-.182-1.081.277-1.387C6.578 13.08 9.746 11 14 11c.552 0 1 .448 1 1s-.448 1-1 1c-3.655 0-6.418 1.814-6.445 1.832-.171.114-.364.168-.554.168zm21.998 0c-.189 0-.382-.054-.552-.167C28.419 14.815 25.628 13 22 13c-.553 0-1-.448-1-1s.447-1 1-1c4.254 0 7.422 2.08 7.555 2.168.46.306.584.927.277 1.387-.192.289-.51.445-.833.445z"/><path fill="#F5F8FA" d="M27 22.091L36 18c0-.66-.041-1.309-.109-1.95L27 20.091V19c0-1.104-.896-2-2-2H11c-1.104 0-2 .896-2 2v1.091L.11 16.05C.041 16.691 0 17.34 0 18l9 4.091v4.546l-7.453-1.355c.341.77.741 1.507 1.183 2.215L9 28.637V30c0 1.104.896 2 2 2h14c1.104 0 2-.896 2-2v-1.363l6.271-1.141c.441-.708.841-1.445 1.182-2.215L27 26.637v-4.546z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EF9645" d="M18 10.087l5.007-.047h6.016c.973 0 2.265-.038 3.195.873-.81-1.187-2.172-1.967-3.718-1.967H28l-.243-.094H22.1l.016-4c0-.812.531-1.578.734-1.998-1.096.592-1.85 1.737-1.85 3.07l-.087.272v2.656L18 8.868c-1.201 0-2.182.427-2.915 1.266l-.016-1.375.016-4.828c0-.758.406-1.438.669-1.954C14.71 2.669 14 3.946 14 5.424v.522l-.181.978.031 8.022c0 .891-.414 1.576-1.031 2.125-.53.472-1.053.656-1.819.656-1.657 0-2.884-1.281-2.884-2.938L8.1 5.712c0-.816.453-1.391.756-1.861C7.757 4.441 7 5.588 7 6.924V8.81l-.072.214v6.058c0 1.989-1.891 2.786-2.828 2.786-1.719 0-3.1-1.203-3.1-2.786v2.645s.185.209.194.312c.881.882 2.156 1.016 2.984 1.016 1.594 0 2.684-.851 3.337-2.062.678 1.212 1.913 2.016 3.428 2.016s3.684-.738 4.056-3.344c.141.167.506.51.678.641.703.531 1.585.734 2.322.734l1.116-.031h1.734c-.535.27-.778.552-1.203.938-1.729 1.568-2.578 4.094-2.578 7.672 0 .276.317.562.594.562.276 0 .578-.317.578-.594 0-3.962.973-6.327 3.203-7.562 1.175-.651 2.626-.969 4.516-.969.059 0 .562-.031.562-.031.276 0 .594-.333.594-.609 0-.276-.271-.547-.547-.547H20.13L18 15.853c-1.657 0-2.915-1.281-2.915-2.938 0-1.657 1.258-2.828 2.915-2.828z"/><path fill="#FFDC5D" d="M4.124 18.946c1.474 0 2.738-.831 3.392-2.043.678 1.212 1.958 2.043 3.446 2.043h.076c1.153 0 2.169-.51 2.889-1.298.022-.025.051-.043.073-.068v-.014c.185-.212.343-.448.481-.695.04-.072.069-.151.105-.227.093-.194.176-.394.236-.606.052-.173.106-.344.134-.526.141.167.296.319.46.46.069.059.147.107.221.162.116.086.229.177.355.251.589.351 1.271.56 2.008.56h3.166c-.535.27-.999.614-1.424 1-1.729 1.568-2.579 4.085-2.579 7.663 0 .276.224.5.5.5s.5-.224.5-.5c0-3.962 1.01-6.427 3.24-7.663 1.175-.651 2.682-.967 4.571-.967.059 0 .526-.033.526-.033.276 0 .5-.224.5-.5s-.224-.5-.5-.5H18c-1.657 0-3-1.343-3-3s1.343-3 3-3h11c.973 0 2.288.056 3.218.967.325.318.604.736.803 1.297l1.659 5.472c.156.512.73 2.857.626 3.346 0 7.34-8.7 14.972-19.004 14.972C6.326 36 1 27.883 1 17.957v-.229c.01.01.021.016.031.026.881.882 1.799 1.192 2.845 1.192h.248z"/><path fill="#FFDC5D" d="M3.864 5.946h.271C5.718 5.946 7 7.229 7 8.81v6.273c0 1.582-1.282 2.864-2.864 2.864h-.272C2.282 17.946 1 16.664 1 15.082V8.81c0-1.581 1.282-2.864 2.864-2.864zM14 9.222v5.724c0 .891-.396 1.683-1.014 2.233-.53.472-1.221.767-1.986.767-1.657 0-3-1.343-3-3v-9c0-.816.328-1.554.857-2.095.544-.557 1.302-.905 2.143-.905 1.657 0 3 1.343 3 3v3.276zm4-.276c-1.201 0-2.267.541-3 1.38V3.947c0-.758.29-1.442.753-1.97C16.303 1.35 17.1.947 18 .947c1.657 0 3 1.343 3 3v5h-3zm4-4.007c0-.812.326-1.545.85-2.085.544-.559 1.301-.909 2.143-.909h.014C26.66 1.946 28 3.286 28 4.939v4.006h-6V4.939z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EF9645" d="M8.916 23.891s1.737.109 1.94-1.808l.016-4.161.128-.005v-.96c0-.952.572-1.769 1.389-2.133-.242.331-.283 7.176-.283 7.176 0 1.104.789 1.891 1.894 1.891.755 0 1.265-.314 1.606-.932-.458-.526-.734-1.206-.734-1.959 0-1.312.781-2.141 1.128-2.222 0 0 .056-.07.082-.084.368-.306.804-.535 1.291-.634l.02.001.261-.155h6.928c1.306 0 1.558.486 1.538.475l.02.011c.591.305 1.076.773 1.404 1.35-.025-.031-.681-.633-1.543-.633s-8-.047-8-.047c-1.104 0-1.925.833-1.925 1.938s.82 1.922 1.925 1.922l5.5-.016c.276 0 .591.317.591.594 0 .276-.314.578-.591.578 0 0-1.558-.069-2.847 1.25-1.209 1.238-2.078 3.803-2.078 5.672 0 .276-.299.578-.575.578s-.582-.302-.582-.578c0-3.01.941-5.525 2.75-6.891H18c-1 0-1.273-.244-1.474-.359.001.001-.701 1.359-2.526 1.359-.237 0-1.628-.047-2.487-1.266-1.125 1.422-2.575 1.266-2.575 1.266-.733 0-1.566-.328-1.91-.833C7.015 24.185 7 24.095 7 24v-1.917c0 1.059.857 1.808 1.916 1.808z"/><path fill="#FFDC5D" d="M24.581 18H18c-.208 0-.411.021-.607.061l-.073-.278-3.273-12.464s-.416-1.957 1.54-2.372c1.956-.416 2.372 1.54 2.372 1.54l3.097 11.569c.446.024.878.063 1.305.107l2.061-10.512s.188-1.991 2.18-1.804c1.991.188 1.803 2.179 1.803 2.179L26.34 17.187l-.221 1.194c-.464-.235-.982-.381-1.538-.381zM8.916 16h.168c1.059 0 1.916.858 1.916 1.917v4.166C11 23.142 10.143 24 9.084 24h-.168C7.857 24 7 23.142 7 22.083v-4.166C7 16.858 7.857 16 8.916 16zM15 21c0 .753.287 1.433.745 1.959C15.404 23.576 14.755 24 14 24c-1.104 0-2-.896-2-2v-6c0-.441.147-.845.389-1.176.364-.497.947-.824 1.611-.824 1.104 0 2 .896 2 2v2.778c-.609.549-1 1.336-1 2.222z"/><path fill="#FFDC5D" d="M9.062 25c1.024 0 1.925-.526 2.45-1.322.123.183.271.346.431.497.049.046.102.085.155.128.119.099.243.189.377.269.066.039.132.074.201.108.14.069.285.125.435.172.067.021.131.046.2.062.223.052.452.086.689.086.236 0 .461-.036.681-.089.076-.018.148-.042.223-.066.137-.044.269-.099.396-.161.082-.04.163-.076.24-.124.164-.1.318-.213.46-.341.202-.184.384-.387.53-.618l-.003-.003c.2.115.473.402 1.473.402h2.537c-1.809 1.365-3.037 3.99-3.037 7 0 .276.224.5.5.5s.5-.224.5-.5c0-3.859 2.187-7 4.875-7h.125c.276 0 .5-.224.5-.5s-.224-.5-.5-.5H18c-1.104 0-2-.896-2-2s.896-2 2-2h8c.032 0 .062.008.094.01.073.003.145.01.216.022.062.01.122.021.182.037.064.017.125.035.187.058.062.022.122.047.181.075.057.027.111.058.165.09.056.033.109.067.161.107.052.038.102.08.15.124.046.041.09.084.132.13.027.029.051.06.075.091l.052.063c.038.051.073.102.106.156.034.056.064.112.093.171.03.062.056.125.08.19.012.031.029.06.039.093L29 24c.103.335.479 1.871.411 2.191C29.411 31 24.715 36 19 36c-6.537 0-11.844-5.231-11.986-11.734l.014.01c.515.445 1.176.724 1.91.724h.124z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M35.885 11.833c0-5.45-4.418-9.868-9.867-9.868-3.308 0-6.227 1.633-8.018 4.129-1.791-2.496-4.71-4.129-8.017-4.129-5.45 0-9.868 4.417-9.868 9.868 0 .772.098 1.52.266 2.241C1.751 22.587 11.216 31.568 18 34.034c6.783-2.466 16.249-11.447 17.617-19.959.17-.721.268-1.469.268-2.242z"/></svg>
...\ No newline at end of file ...\ No newline at end of file
1 +<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22">
2 + <g fill="none" fill-rule="evenodd">
3 + <path d="M1 1h20v20H1z"/>
4 + <path fill="#027FFF" fill-rule="nonzero" d="M11 18.438a7.438 7.438 0 1 0 0-14.876 7.438 7.438 0 0 0 0 14.876zm0 1.062a8.5 8.5 0 1 1 0-17 8.5 8.5 0 0 1 0 17zM7.812 9.937a1.062 1.062 0 1 0 0-2.124 1.062 1.062 0 0 0 0 2.125zm6.375 0a1.063 1.063 0 1 0 0-2.125 1.063 1.063 0 0 0 0 2.125zM11 16.232a3.27 3.27 0 0 0 3.27-3.27H7.73a3.27 3.27 0 0 0 3.27 3.27z"/>
5 + </g>
6 +</svg>
No preview for this file type
1 +import Vue from "vue";
2 +import App from "./App.vue";
3 +import router from "./router";
4 +import store from "./store";
5 +import "element-ui/lib/theme-chalk/index.css";
6 +import "./style/index.less";
7 +
8 +import * as filters from "./filters";
9 +Object.keys(filters).forEach((key) => {
10 + Vue.filter(key, filters[key]);
11 +});
12 +import "./utils/iconfont";
13 +import "./components/common/index";
14 +
15 +import { Loading } from "element-ui";
16 +Vue.use(Loading.directive);
17 +
18 +import VueLazyload from "vue-lazyload";
19 +const loadimage = require("./images/loading.gif");
20 +const errorimage = require("./images/load-error.jpeg");
21 +
22 +Vue.use(VueLazyload, {
23 + preLoad: 1.3, // 提前加载高度(1 表示 1 屏的高度)
24 + error: errorimage,
25 + loading: loadimage,
26 + attempt: 1, // 加载错误后最大尝试次数
27 +});
28 +
29 +new Vue({
30 + router,
31 + store,
32 + render: (h) => h(App),
33 + created() {},
34 +}).$mount("#app");
1 +// 获取标签的背景色
2 +import { mapGetters } from "vuex";
3 +export default {
4 + computed: {
5 + ...mapGetters({
6 + labelList: "label/labelList",
7 + }),
8 + getLabelColor({ labelList }) {
9 + return (labelName) => {
10 + if (labelList && labelList.length) {
11 + let labelIndex = 0;
12 + labelList.forEach((item, index) => {
13 + if (labelName === item.label) {
14 + labelIndex = index;
15 + }
16 + });
17 + return labelList[labelIndex].bgColor;
18 + }
19 + return "";
20 + };
21 + },
22 + },
23 +};
1 +// 点赞操作
2 +
3 +import { apiUpdateLikes } from "api/blog";
4 +export default {
5 + computed: {
6 + getLikesNumber({ likeList }) {
7 + return (id, likes) => (likeList.includes(id) ? likes + 1 : likes);
8 + },
9 + getLikesColor({ likeList }) {
10 + return (id) => likeList.includes(id);
11 + },
12 + },
13 + data() {
14 + return {
15 + currentId: "", // 当前id
16 + isLike: false, // 是否点赞
17 + likeList: [],
18 + };
19 + },
20 + methods: {
21 + // 点赞
22 + handleLikes(id) {
23 + if (this.likeList.includes(id)) {
24 + this.isLike = true;
25 + this.likeList.splice(this.likeList.indexOf(id), 1);
26 + } else {
27 + this.isLike = false;
28 + this.likeList.push(id);
29 + }
30 + this.currentId = id;
31 + return apiUpdateLikes({ _id: id, isLike: this.isLike })
32 + .then((res) => {})
33 + .catch((err) => {
34 + console.log(err);
35 + })
36 + .finally(() => {});
37 + },
38 + },
39 +};
1 +import Vue from "vue";
2 +import Router from "vue-router";
3 +Vue.use(Router);
4 +
5 +// 解决同一页面,参数不同的路由报错
6 +const VueRouterPush = Router.prototype.push;
7 +Router.prototype.push = function push(to) {
8 + return VueRouterPush.call(this, to).catch((err) => err);
9 +};
10 +
11 +/**
12 + * 加载模块
13 + * @param {string | Component} component 路径或组件
14 + * @param {boolean} lazy 是否懒加载
15 + * @returns {Function | object} 懒加载方法或组件对象
16 + */
17 +const loadComponent = (component, lazy = true) =>
18 + lazy ? () => import(`views/${component}.vue`) : component;
19 +
20 +const router = new Router({
21 + // mode: 'history',
22 + routes: [
23 + {
24 + path: "/index",
25 + component: loadComponent("home/index"),
26 + meta: {
27 + title: "首页",
28 + },
29 + },
30 + {
31 + path: "/label",
32 + component: loadComponent("home/label"),
33 + children: [
34 + {
35 + path: ":keyword",
36 + component: loadComponent("home/components/blogClassify"),
37 + meta: {
38 + title: "文章分类",
39 + },
40 + },
41 + ],
42 + },
43 + {
44 + path: "/article/detail",
45 + component: loadComponent("article/detail"),
46 + children: [
47 + {
48 + path: ":id",
49 + component: loadComponent("article/components/detailContent"),
50 + meta: {
51 + title: "文章详情",
52 + },
53 + },
54 + ],
55 + },
56 + {
57 + path: "/message",
58 + component: loadComponent("message/index"),
59 + meta: {
60 + title: "留言板",
61 + },
62 + },
63 + {
64 + path: "/myself",
65 + component: loadComponent("myself/index"),
66 + meta: {
67 + title: "关于我们",
68 + },
69 + },
70 + {
71 + path: "*",
72 + redirect: "/index",
73 + },
74 + ],
75 +});
76 +
77 +router.beforeEach((to, from, next) => {
78 + /* 路由发生变化修改页面title */
79 + if (to.meta && to.meta.title) {
80 + document.title = to.meta.title;
81 + }
82 + next();
83 +});
84 +
85 +export default router;
1 +import Vue from "vue";
2 +import Vuex from "vuex";
3 +import label from "./modules/label";
4 +import search from "./modules/search";
5 +
6 +Vue.use(Vuex);
7 +
8 +const store = new Vuex.Store({
9 + state: {},
10 + mutations: {},
11 + actions: {},
12 + modules: {
13 + label,
14 + search,
15 + },
16 +});
17 +
18 +export default store;
1 +import { apiGetLabelList } from "src/api/label";
2 +export default {
3 + namespaced: true,
4 + state: {
5 + labelList: null,
6 + },
7 + mutations: {
8 + setLabelList(state, data) {
9 + state.labelList = data;
10 + },
11 + },
12 + actions: {
13 + getLabelList(context) {
14 + let params = {
15 + pageindex: 1,
16 + pagesize: 50,
17 + };
18 + return apiGetLabelList(params)
19 + .then((res) => {
20 + let { list } = res.data;
21 + context.commit("setLabelList", list);
22 + })
23 + .catch((err) => {
24 + console.log(err);
25 + });
26 + },
27 + },
28 + getters: {
29 + labelList(state) {
30 + return state.labelList;
31 + },
32 + },
33 +};
1 +export default {
2 + namespaced: true,
3 + state: {
4 + keyword: "",
5 + },
6 + mutations: {
7 + setKeyword(state, data) {
8 + state.keyword = data;
9 + },
10 + },
11 + actions: {},
12 + getters: {
13 + keyword(state) {
14 + return state.keyword;
15 + },
16 + },
17 +};
1 +@import "./less/function.less";
2 +@import "./less/animation.less";
3 +@import "./less/markdown.less";
4 +@import "./less/reset.less";
5 +@import "./less/init.less";
6 +@import "../../../../node_modules/highlight.js/styles/tomorrow-night-eighties.css";
1 +@keyframes easeBarrageMove {
2 + 100% {left: -50%;}
3 +}
4 +
5 +@keyframes btnGroups {
6 + 0% {transform: scale(1.2, 0.8);}
7 + 1% {transform: scale(1.18, 0.82);}
8 + 2% {transform: scale(1.16, 0.84);}
9 + 3% {transform: scale(1.13, 0.87);}
10 + 4% {transform: scale(1.1, 0.9);}
11 + 5% {transform: scale(1.07, 0.93);}
12 + 6% {transform: scale(1.04, 0.96);}
13 + 7% {transform: scale(1.01, 0.99);}
14 + 8% {transform: scale(0.99, 1.01);}
15 + 9% {transform: scale(0.97, 1.03);}
16 + 10% {transform: scale(0.95, 1.05);}
17 + 11% {transform: scale(0.94, 1.06);}
18 + 12% {transform: scale(0.93, 1.07);}
19 + 13% {transform: scale(0.93, 1.07);}
20 + 14% {transform: scale(0.93, 1.07);}
21 + 15% {transform: scale(0.93, 1.07);}
22 + 16% {transform: scale(0.94, 1.06);}
23 + 17% {transform: scale(0.94, 1.06);}
24 + 18% {transform: scale(0.95, 1.05);}
25 + 19% {transform: scale(0.96, 1.04);}
26 + 20% {transform: scale(0.98, 1.02);}
27 + 21% {transform: scale(0.99, 1.01);}
28 + 22% {transform: scale(1, 1);}
29 + 23% {transform: scale(1, 1);}
30 + 24% {transform: scale(1.01, 0.99);}
31 + 25% {transform: scale(1.02, 0.98);}
32 + 26% {transform: scale(1.02, 0.98);}
33 + 27% {transform: scale(1.02, 0.98);}
34 + 28% {transform: scale(1.03, 0.97);}
35 + 29% {transform: scale(1.03, 0.97);}
36 + 30% {transform: scale(1.02, 0.98);}
37 + 31% {transform: scale(1.02, 0.98);}
38 + 32% {transform: scale(1.02, 0.98);}
39 + 33% {transform: scale(1.02, 0.98);}
40 + 34% {transform: scale(1.01, 0.99);}
41 + 35% {transform: scale(1.01, 0.99);}
42 + 36% {transform: scale(1.01, 0.99);}
43 + 37% {transform: scale(1, 1);}
44 + 38% {transform: scale(1, 1);}
45 + 39% {transform: scale(1, 1);}
46 + 40% {transform: scale(0.99, 1.01);}
47 + 41% {transform: scale(0.99, 1.01);}
48 + 42% {transform: scale(0.99, 1.01);}
49 + 43% {transform: scale(0.99, 1.01);}
50 + 44% {transform: scale(0.99, 1.01);}
51 + 45% {transform: scale(0.99, 1.01);}
52 + 46% {transform: scale(0.99, 1.01);}
53 + 47% {transform: scale(0.99, 1.01);}
54 + 48% {transform: scale(0.99, 1.01);}
55 + 49% {transform: scale(1, 1);}
56 +}
...\ No newline at end of file ...\ No newline at end of file
1 +.home-wrapper {
2 + padding-top: 50px;
3 + min-height: @min-body-height;
4 + .home-body {
5 + width: 1200px;
6 + margin: 0 auto 20px;
7 + display: flex;
8 + }
9 +}
10 +.side-wrapper {
11 + flex: 1;
12 + margin-left: 24px;
13 +}
14 +
15 +.side-title {
16 + padding: 0 10px;
17 + line-height: 50px;
18 + height: 50px;
19 + font-size: 18px;
20 + border-bottom: 1px solid #e5e5e5;
21 + color: @mainColor;
22 + font-weight: bold;
23 + position: relative;
24 + display: flex;
25 + align-items: center;
26 + svg {
27 + margin-right: 6px;
28 + }
29 + &::after {
30 + content: " ";
31 + position: absolute;
32 + height: 2px;
33 + width: 10%;
34 + left: 0;
35 + bottom: -1px;
36 + background: @mainColor;
37 + transition: 2s ease all;
38 + }
39 + &:hover {
40 + &::after {
41 + width: 100%;
42 + }
43 + }
44 +}
1 +body {
2 + background: @backgroundColor;
3 + border-top: 1px solid transparent;
4 + margin-top: -1px;
5 + font-family: "Arial", "Microsoft YaHei", "黑体", "宋体", sans-serif;
6 +}
7 +
8 +button {
9 + border: none;
10 + background: none;
11 + outline: none;
12 +}
13 +input,
14 +textarea {
15 + -webkit-appearance: none;
16 +}
17 +
18 +.icon {
19 + width: 1em;
20 + height: 1em;
21 + vertical-align: -0.15em;
22 + fill: currentColor;
23 + overflow: hidden;
24 +}
25 +
26 +::-webkit-scrollbar {
27 + width: 4px;
28 + height: 4px;
29 +}
30 +
31 +::-webkit-scrollbar-thumb {
32 + opacity: 0.8;
33 + background: #ddd;
34 + border-radius: 4px;
35 + transition: all 0.5s;
36 +}
37 +
38 +/* nprogress styles */
39 +/* Make clicks pass-through */
40 +
41 +#nprogress {
42 + pointer-events: none;
43 +}
44 +#nprogress .bar {
45 + background: #dfa400;
46 + position: fixed;
47 + z-index: 1031;
48 + top: 0;
49 + left: 0;
50 + width: 100%;
51 + height: 2px;
52 +}
53 +
54 +/* Fancy blur effect */
55 +
56 +#nprogress .peg {
57 + display: block;
58 + position: absolute;
59 + right: 0px;
60 + width: 100px;
61 + height: 100%;
62 + box-shadow: 0 0 10px #dfa400, 0 0 5px #dfa400;
63 + opacity: 1;
64 + transform: rotate(3deg) translate(0px, -4px);
65 +}
66 +
67 +/* Remove these to get rid of the spinner */
68 +
69 +#nprogress .spinner {
70 + display: block;
71 + position: fixed;
72 + z-index: 1031;
73 + top: 15px;
74 + right: 15px;
75 +}
76 +
77 +#nprogress .spinner-icon {
78 + width: 18px;
79 + height: 18px;
80 + box-sizing: border-box;
81 + border: solid 2px transparent;
82 + border-top-color: #dfa400;
83 + border-left-color: #dfa400;
84 + border-radius: 50%;
85 + animation: nprogress-spinner 400ms linear infinite;
86 +}
87 +
88 +.nprogress-custom-parent {
89 + overflow: hidden;
90 + position: relative;
91 +}
92 +
93 +.nprogress-custom-parent #nprogress .spinner,
94 +.nprogress-custom-parent #nprogress .bar {
95 + position: absolute;
96 +}
97 +
98 +@keyframes nprogress-spinner {
99 + 0% {
100 + transform: rotate(0deg);
101 + }
102 + 100% {
103 + transform: rotate(360deg);
104 + }
105 +}
1 +.fmt {
2 + line-height: 1.6;
3 + word-wrap: break-word;
4 + color: @mainColor;
5 +}
6 +.fmt a {
7 + color: #009a61;
8 + text-decoration: none;
9 +}
10 +.fmt h1 {
11 + font-size: 2.25em;
12 +}
13 +
14 +.fmt h2 {
15 + font-size: 1.75em;
16 +}
17 +
18 +.fmt h3 {
19 + font-size: 1.5em;
20 +}
21 +
22 +.fmt h4 {
23 + font-size: 1.25em;
24 +}
25 +
26 +.fmt h5 {
27 + font-size: 1em;
28 +}
29 +
30 +.fmt h6 {
31 + font-size: 0.86em;
32 +}
33 +.fmt p {
34 + margin-top: 0.86em;
35 + line-height: 1.8em;
36 +}
37 +
38 +.fmt h1,
39 +.fmt h2,
40 +.fmt h3,
41 +.fmt h4,
42 +.fmt h5,
43 +.fmt h6 {
44 + margin-top: 1.2em;
45 +}
46 +
47 +.fmt h1 + .widget-codetool + pre,
48 +.fmt h2 + .widget-codetool + pre,
49 +.fmt h3 + .widget-codetool + pre {
50 + margin-top: 1.2em !important;
51 +}
52 +
53 +.fmt h1,
54 +.fmt h2 {
55 + border-bottom: 1px solid #eee;
56 + padding-bottom: 10px;
57 +}
58 +
59 +.fmt > h1:first-child,
60 +.fmt h2:first-child,
61 +.fmt h3:first-child,
62 +.fmt h4:first-child,
63 +.fmt p:first-child,
64 +.fmt ul:first-child,
65 +.fmt ol:first-child,
66 +.fmt blockquote:first-child {
67 + margin-top: 0;
68 +}
69 +
70 +.fmt ul,
71 +.fmt ol {
72 + margin-left: 2em;
73 + margin-top: 0.86em;
74 + padding-left: 0;
75 +}
76 +
77 +.fmt ul li,
78 +.fmt ol li {
79 + margin: 0.3em 0;
80 + list-style: unset;
81 +}
82 +
83 +.fmt ul ul,
84 +.fmt ul ol,
85 +.fmt ol ul,
86 +.fmt ol ol {
87 + margin-top: 0;
88 + margin-bottom: 0;
89 +}
90 +
91 +.fmt ul p,
92 +.fmt ol p {
93 + margin: 0;
94 +}
95 +
96 +.fmt p:last-child {
97 + margin-bottom: 0;
98 +}
99 +
100 +.fmt p > p:empty,
101 +.fmt div > p:empty,
102 +.fmt p > div:empty,
103 +.fmt div > div:empty,
104 +.fmt div > br:only-child,
105 +.fmt p + br,
106 +.fmt img + br {
107 + display: none;
108 +}
109 +
110 +.fmt img,
111 +.fmt video,
112 +.fmt audio {
113 + position: static !important;
114 + max-width: 100%;
115 +}
116 +
117 +.fmt img {
118 + padding: 3px;
119 + border: 1px solid #ddd;
120 +}
121 +
122 +.fmt img.emoji {
123 + padding: 0;
124 + border: none;
125 +}
126 +
127 +.fmt blockquote {
128 + border-left: 2px solid #009a61;
129 + background: @thinBgColor;
130 + color: @thinColor;
131 + font-size: 1em;
132 +}
133 +
134 +.fmt pre,
135 +.fmt code {
136 + font-size: 0.93em;
137 + margin-top: 0.86em;
138 +}
139 +
140 +.fmt pre {
141 + font-family: "Source Code Pro", Consolas, Menlo, Monaco, "Courier New",
142 + monospace;
143 + padding: 1em;
144 + margin-top: 0.86em;
145 + border: none;
146 + overflow: auto;
147 + line-height: 1.45;
148 + max-height: 35em;
149 + position: relative;
150 + background: url("../../images/blueprint.png") rgba(233, 234, 237, 0.5);
151 + background-size: 30px, 30px;
152 +
153 + font-size: 12px;
154 + -webkit-overflow-scrolling: touch;
155 + border-radius: 5px;
156 +}
157 +
158 +.fmt pre code {
159 + background: none;
160 + font-size: 1em;
161 + overflow-wrap: normal;
162 + white-space: inherit;
163 +}
164 +
165 +.fmt hr {
166 + margin: 1.5em auto;
167 + border-top: 2px dotted #eee;
168 +}
169 +
170 +.fmt kbd {
171 + margin: 0 4px;
172 + padding: 3px 4px;
173 + background: #eee;
174 + color: @thinColor;
175 +}
176 +
177 +.fmt .x-scroll {
178 + overflow-x: auto;
179 +}
180 +
181 +.fmt table {
182 + width: 100%;
183 +}
184 +
185 +.fmt table th,
186 +.fmt table td {
187 + border: 1px solid #e6e6e6;
188 + padding: 5px 8px;
189 + word-break: normal;
190 +}
191 +
192 +.fmt table th {
193 + background: #f3f3f3;
194 +}
195 +
196 +.fmt a:not(.btn) {
197 + border-bottom: 1px solid rgba(0, 154, 97, 0.25);
198 + padding-bottom: 1px;
199 +}
200 +
201 +.fmt a:not(.btn):hover {
202 + border-bottom: 1px solid #009a61;
203 + text-decoration: none;
204 +}
205 +
206 +/*
207 +
208 +github.com style (c) Vasily Polovnyov <vast@whiteants.net>
209 +
210 +*/
211 +
212 +.hljs {
213 + display: block;
214 + overflow-x: auto;
215 + padding: 0.5em;
216 + color: @mainColor;
217 + background: #f8f8f8;
218 +}
219 +
220 +.hljs-comment,
221 +.hljs-quote {
222 + color: #998;
223 + font-style: italic;
224 +}
225 +
226 +.hljs-keyword,
227 +.hljs-selector-tag,
228 +.hljs-subst {
229 + color: @mainColor;
230 + font-weight: bold;
231 +}
232 +
233 +.hljs-number,
234 +.hljs-literal,
235 +.hljs-variable,
236 +.hljs-template-variable,
237 +.hljs-tag .hljs-attr {
238 + color: #008080;
239 +}
240 +
241 +.hljs-string,
242 +.hljs-doctag {
243 + color: #d14;
244 +}
245 +
246 +.hljs-title,
247 +.hljs-section,
248 +.hljs-selector-id {
249 + color: #900;
250 + font-weight: bold;
251 +}
252 +
253 +.hljs-subst {
254 + font-weight: normal;
255 +}
256 +
257 +.hljs-type,
258 +.hljs-class .hljs-title {
259 + color: #458;
260 + font-weight: bold;
261 +}
262 +
263 +.hljs-tag,
264 +.hljs-name,
265 +.hljs-attribute {
266 + color: #000080;
267 + font-weight: normal;
268 +}
269 +
270 +.hljs-regexp,
271 +.hljs-link {
272 + color: #009926;
273 +}
274 +
275 +.hljs-symbol,
276 +.hljs-bullet {
277 + color: #990073;
278 +}
279 +
280 +.hljs-built_in,
281 +.hljs-builtin-name {
282 + color: #0086b3;
283 +}
284 +
285 +.hljs-meta {
286 + color: @assistColor;
287 + font-weight: bold;
288 +}
289 +
290 +.hljs-deletion {
291 + background: #fdd;
292 +}
293 +
294 +.hljs-addition {
295 + background: #dfd;
296 +}
297 +
298 +.hljs-emphasis {
299 + font-style: italic;
300 +}
301 +
302 +.hljs-strong {
303 + font-weight: bold;
304 +}
1 +/* normalize.css */
2 +html {
3 + line-height: 1.15; /* 1 */
4 + -ms-text-size-adjust: 100%; /* 2 */
5 + -webkit-text-size-adjust: 100%; /* 2 */
6 +}
7 +
8 +body {
9 + margin: 0;
10 +}
11 +
12 +article,
13 +aside,
14 +footer,
15 +header,
16 +nav,
17 +section {
18 + display: block;
19 +}
20 +
21 +h1 {
22 + font-size: 2em;
23 + margin: 0.67em 0;
24 +}
25 +
26 +figcaption,
27 +figure,
28 +main {
29 + /* 1 */
30 + display: block;
31 +}
32 +
33 +figure {
34 + margin: 1em 40px;
35 +}
36 +
37 +hr {
38 + box-sizing: content-box; /* 1 */
39 + height: 0; /* 1 */
40 + overflow: visible; /* 2 */
41 +}
42 +
43 +pre {
44 + font-family: monospace, monospace; /* 1 */
45 + font-size: 1em; /* 2 */
46 +}
47 +
48 +a {
49 + background-color: transparent; /* 1 */
50 + -webkit-text-decoration-skip: objects; /* 2 */
51 +}
52 +
53 +abbr[title] {
54 + border-bottom: none; /* 1 */
55 + text-decoration: underline; /* 2 */
56 + text-decoration: underline dotted; /* 2 */
57 +}
58 +
59 +b,
60 +strong {
61 + font-weight: inherit;
62 +}
63 +
64 +b,
65 +strong {
66 + font-weight: bolder;
67 +}
68 +
69 +code,
70 +kbd,
71 +samp {
72 + font-family: monospace, monospace; /* 1 */
73 + font-size: 1em; /* 2 */
74 +}
75 +
76 +dfn {
77 + font-style: italic;
78 +}
79 +
80 +mark {
81 + background-color: #ff0;
82 + color: @mainColor;
83 +}
84 +
85 +small {
86 + font-size: 80%;
87 +}
88 +
89 +sub,
90 +sup {
91 + font-size: 75%;
92 + line-height: 0;
93 + position: relative;
94 + vertical-align: baseline;
95 +}
96 +
97 +sub {
98 + bottom: -0.25em;
99 +}
100 +
101 +sup {
102 + top: -0.5em;
103 +}
104 +
105 +audio,
106 +video {
107 + display: inline-block;
108 +}
109 +audio:not([controls]) {
110 + display: none;
111 + height: 0;
112 +}
113 +
114 +img {
115 + border-style: none;
116 +}
117 +
118 +svg:not(:root) {
119 + overflow: hidden;
120 +}
121 +
122 +button,
123 +input,
124 +optgroup,
125 +select,
126 +textarea {
127 + font-family: sans-serif; /* 1 */
128 + font-size: 100%; /* 1 */
129 + line-height: 1.15; /* 1 */
130 + margin: 0; /* 2 */
131 +}
132 +button,
133 +input {
134 + /* 1 */
135 + overflow: visible;
136 +}
137 +button,
138 +select {
139 + /* 1 */
140 + text-transform: none;
141 +}
142 +
143 +button,
144 + html [type="button"], /* 1 */
145 + [type="reset"],
146 + [type="submit"] {
147 + -webkit-appearance: button; /* 2 */
148 +}
149 +
150 +button::-moz-focus-inner,
151 +[type="button"]::-moz-focus-inner,
152 +[type="reset"]::-moz-focus-inner,
153 +[type="submit"]::-moz-focus-inner {
154 + border-style: none;
155 + padding: 0;
156 +}
157 +
158 +button:-moz-focusring,
159 +[type="button"]:-moz-focusring,
160 +[type="reset"]:-moz-focusring,
161 +[type="submit"]:-moz-focusring {
162 + outline: 1px dotted ButtonText;
163 +}
164 +
165 +fieldset {
166 + padding: 0.35em 0.75em 0.625em;
167 +}
168 +
169 +legend {
170 + box-sizing: border-box; /* 1 */
171 + color: inherit; /* 2 */
172 + display: table; /* 1 */
173 + max-width: 100%; /* 1 */
174 + padding: 0; /* 3 */
175 + white-space: normal; /* 1 */
176 +}
177 +
178 +progress {
179 + display: inline-block; /* 1 */
180 + vertical-align: baseline; /* 2 */
181 +}
182 +
183 +textarea {
184 + overflow: auto;
185 +}
186 +
187 +[type="checkbox"],
188 +[type="radio"] {
189 + box-sizing: border-box; /* 1 */
190 + padding: 0; /* 2 */
191 +}
192 +
193 +[type="number"]::-webkit-inner-spin-button,
194 +[type="number"]::-webkit-outer-spin-button {
195 + height: auto;
196 +}
197 +
198 +[type="search"] {
199 + -webkit-appearance: textfield; /* 1 */
200 + outline-offset: -2px; /* 2 */
201 +}
202 +
203 +[type="search"]::-webkit-search-cancel-button,
204 +[type="search"]::-webkit-search-decoration {
205 + -webkit-appearance: none;
206 +}
207 +
208 +::-webkit-file-upload-button {
209 + -webkit-appearance: button; /* 1 */
210 + font: inherit; /* 2 */
211 +}
212 +
213 +details, /* 1 */
214 + menu {
215 + display: block;
216 +}
217 +
218 +summary {
219 + display: list-item;
220 +}
221 +
222 +canvas {
223 + display: inline-block;
224 +}
225 +
226 +template {
227 + display: none;
228 +}
229 +
230 +[hidden] {
231 + display: none;
232 +}
233 +
234 +/* reset */
235 +* {
236 + box-sizing: border-box;
237 +}
238 +html,
239 +body {
240 + font: Oswald, "Open Sans", Helvetica, Arial, sans-serif;
241 +}
242 +/* 禁止长按链接与图片弹出菜单 */
243 +a,
244 +img {
245 + -webkit-touch-callout: none;
246 +}
247 +
248 +/*ios android去除自带阴影的样式*/
249 +a,
250 +input {
251 + -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
252 +}
253 +
254 +input[type="text"] {
255 + -webkit-appearance: none;
256 +}
257 +
258 +html,
259 +body,
260 +h1,
261 +h2,
262 +h3,
263 +h4,
264 +h5,
265 +h6,
266 +div,
267 +dl,
268 +dt,
269 +dd,
270 +ul,
271 +ol,
272 +li,
273 +p,
274 +blockquote,
275 +pre,
276 +hr,
277 +figure,
278 +table,
279 +caption,
280 +th,
281 +td,
282 +form,
283 +fieldset,
284 +legend,
285 +input,
286 +button,
287 +textarea,
288 +menu {
289 + margin: 0;
290 + padding: 0;
291 +}
292 +header,
293 +footer,
294 +section,
295 +article,
296 +aside,
297 +nav,
298 +hgroup,
299 +address,
300 +figure,
301 +figcaption,
302 +menu,
303 +details {
304 + display: block;
305 +}
306 +table {
307 + border-collapse: collapse;
308 + border-spacing: 0;
309 +}
310 +caption,
311 +th {
312 + text-align: left;
313 + font-weight: normal;
314 +}
315 +html,
316 +body,
317 +fieldset,
318 +img,
319 +iframe,
320 +abbr {
321 + border: 0;
322 +}
323 +i,
324 +cite,
325 +em,
326 +var,
327 +address,
328 +dfn {
329 + font-style: normal;
330 +}
331 +[hidefocus],
332 +summary {
333 + outline: 0;
334 +}
335 +li {
336 + list-style: none;
337 +}
338 +h1,
339 +h2,
340 +h3,
341 +h4,
342 +h5,
343 +h6,
344 +small {
345 + font-size: 100%;
346 +}
347 +sup,
348 +sub {
349 + font-size: 83%;
350 +}
351 +pre,
352 +code,
353 +kbd,
354 +samp {
355 + font-family: inherit;
356 +}
357 +q:before,
358 +q:after {
359 + content: none;
360 +}
361 +textarea {
362 + overflow: auto;
363 + resize: none;
364 +}
365 +label,
366 +summary {
367 + cursor: default;
368 +}
369 +a,
370 +button {
371 + cursor: pointer;
372 +}
373 +h1,
374 +h2,
375 +h3,
376 +h4,
377 +h5,
378 +h6,
379 +em,
380 +strong,
381 +b {
382 + font-weight: bold;
383 +}
384 +del,
385 +ins,
386 +u,
387 +s,
388 +a,
389 +a:hover {
390 + text-decoration: none;
391 +}
1 +!function(l){var a,h,t,c,p,F='<svg><symbol id="icon-laborer" viewBox="0 0 1024 1024"><path d="M208 976v-33.39C208 810.83 344.11 704 512 704s304 106.83 304 238.61V976z" fill="#00B9FF" ></path><path d="M824 984H200v-41.39c0-66.24 32.71-128.4 92.1-175C350.92 721.43 429 696 512 696s161.08 25.43 219.9 71.59c59.39 46.62 92.1 108.78 92.1 175z m-608-16h592v-25.39C808 815.45 675.21 712 512 712S216 815.45 216 942.61z" fill="#222222" ></path><path d="M560 624h-96v90s0 54 48 54 48-54 48-54z" fill="#FFCEBF" ></path><path d="M512 776c-29.09 0-42.87-17.27-49.31-31.75A82.54 82.54 0 0 1 456 714v-98h112v98a82.54 82.54 0 0 1-6.69 30.25C554.87 758.73 541.09 776 512 776z m-40-144v82c0 1.86 0.69 46 40 46 16.69 0 28-7.28 34.69-22.25A67.2 67.2 0 0 0 552 714v-82z" fill="#222222" ></path><path d="M284.71 411.81m-58.14 0a58.14 58.14 0 1 0 116.28 0 58.14 58.14 0 1 0-116.28 0Z" fill="#FFCEBF" ></path><path d="M284.71 478a66.15 66.15 0 1 1 66.15-66.14A66.21 66.21 0 0 1 284.71 478z m0-116.29a50.15 50.15 0 1 0 50.15 50.15 50.21 50.21 0 0 0-50.15-50.2z" fill="#222222" ></path><path d="M739.29 411.81m-58.14 0a58.14 58.14 0 1 0 116.28 0 58.14 58.14 0 1 0-116.28 0Z" fill="#FFCEBF" ></path><path d="M739.29 478a66.15 66.15 0 1 1 66.14-66.14A66.22 66.22 0 0 1 739.29 478z m0-116.29a50.15 50.15 0 1 0 50.14 50.15 50.21 50.21 0 0 0-50.14-50.2z" fill="#222222" ></path><path d="M743.73 312.57l0.84 111.69C744.57 561.08 640.45 672 512 672S279.43 561.08 279.43 424.26l0.84-111.69S320 96 512 96s231.73 216.57 231.73 216.57z" fill="#FFCEBF" ></path><path d="M512 680c-64.35 0-124.83-26.67-170.29-75.09s-70.28-112.43-70.28-180.65l0.85-112.45 0.12-0.68c0.42-2.27 10.61-56.28 45-111.09 20.31-32.41 44.88-58.28 73-76.88C425.69 99.83 466.61 88 512 88s86.31 11.83 121.62 35.16c28.14 18.6 52.71 44.47 73 76.88 34.35 54.81 44.54 108.82 45 111.09l0.12 0.68 0.85 112.39c0 68.28-25 132.43-70.28 180.71S576.35 680 512 680zM288.27 313.38l-0.84 110.94C287.43 556.45 388.17 664 512 664s224.57-107.55 224.57-239.74l-0.84-110.88c-1.25-6.21-12-56.13-42.9-105.26C649.37 139 588.53 104 512 104s-137.37 35-180.83 104.12c-30.9 49.13-41.65 99.05-42.9 105.26z" fill="#222222" ></path><path d="M300.57 469.95a37 21.14 0 1 0 74 0 37 21.14 0 1 0-74 0Z" fill="#FFA096" ></path><path d="M649.43 469.95a37 21.14 0 1 0 74 0 37 21.14 0 1 0-74 0Z" fill="#FFA096" ></path><path d="M681.14 378.57h-16.58a31.7 31.7 0 0 0-51.4 0h-16.59a8 8 0 0 0 0 16h10.69c-0.07 0.85-0.12 1.71-0.12 2.57a31.72 31.72 0 1 0 63.43 0c0-0.86 0-1.72-0.11-2.57h10.68a8 8 0 0 0 0-16zM427.43 378.57h-16.59a31.7 31.7 0 0 0-51.4 0h-16.58a8 8 0 0 0 0 16h10.68c-0.07 0.85-0.11 1.71-0.11 2.57a31.72 31.72 0 1 0 63.43 0c0-0.86-0.05-1.72-0.12-2.57h10.69a8 8 0 0 0 0-16z" fill="#222222" ></path><path d="M427.43 576.86s28.19 10.57 84.57 10.57 84.57-10.57 84.57-10.57" fill="#FFCEBF" ></path><path d="M512 595.43c-57.17 0-86.17-10.63-87.38-11.08a8 8 0 0 1 5.6-15c0.27 0.1 27.87 10.07 81.78 10.07 54.3 0 81.49-10 81.76-10.06a8 8 0 0 1 5.62 15c-1.21 0.44-30.21 11.07-87.38 11.07z" fill="#222222" ></path><path d="M448 816l-48-96 48-16 64 64-64 48z" fill="#00B9FF" ></path><path d="M448 824a8.24 8.24 0 0 1-1.84-0.21 8 8 0 0 1-5.32-4.21l-48-96a8 8 0 0 1 4.63-11.17l48-16a8 8 0 0 1 8.19 1.93l64 64a8 8 0 0 1-0.86 12.06l-64 48a8 8 0 0 1-4.8 1.6z m-36.72-99.33l39.59 79.18 48.95-36.72-54-54z" fill="#222222" ></path><path d="M576 816l48-96-48-16-64 64 64 48z" fill="#00B9FF" ></path><path d="M576 824a8 8 0 0 1-4.8-1.6l-64-48a8 8 0 0 1-0.86-12.06l64-64a8 8 0 0 1 8.19-1.93l48 16a8 8 0 0 1 4.63 11.17l-48 96a8 8 0 0 1-5.32 4.21 8.24 8.24 0 0 1-1.84 0.21z m-51.82-56.87l49 36.72 39.59-79.18-34.56-11.52z" fill="#222222" ></path><path d="M720 976H304V752l64-32v192h288V720l64 32v224z" fill="#FFA041" ></path><path d="M720 984H304a8 8 0 0 1-8-8V752a8 8 0 0 1 4.42-7.16l64-32A8 8 0 0 1 376 720v184h272V720a8 8 0 0 1 11.58-7.16l64 32A8 8 0 0 1 728 752v224a8 8 0 0 1-8 8z m-408-16h400V756.94l-48-24V912a8 8 0 0 1-8 8H368a8 8 0 0 1-8-8V732.94l-48 24z" fill="#222222" ></path><path d="M753.55 307.44c0-65.12-484.3-65.12-484.3 0 0-133.73 108.42-242.14 242.15-242.14s242.15 108.41 242.15 242.14z" fill="#FFC841" ></path><path d="M761.55 307.44h-16c0-7.55-18.09-19.61-69.08-28.75-43.47-7.8-102.09-12.09-165.07-12.09s-121.6 4.29-165.06 12.09c-51 9.14-69.09 21.2-69.09 28.75h-16a250.15 250.15 0 0 1 500.3 0zM511.4 73.3c-120.92 0-220.73 92.13-232.9 209.89 13.54-8.19 35.13-14.9 65-20.25 44.37-8 104-12.34 167.89-12.34s123.53 4.4 167.9 12.34c29.88 5.35 51.47 12.06 65 20.25C732.13 165.43 632.32 73.3 511.4 73.3z" fill="#222222" ></path><path d="M442.22 256V117.19C442.22 79 462.8 48 511.4 48s69.19 31 69.19 69.19V256c0 29.37-138.37 29.37-138.37 0z" fill="#FFB441" ></path><path d="M511.4 286c-12.89 0-77.18-1.45-77.18-30V117.18c0-22.05 6.36-40.82 18.41-54.26C466.07 47.93 486.39 40 511.4 40s45.33 7.93 58.78 22.92c12 13.44 18.41 32.21 18.41 54.26V256c0 28.58-64.3 30-77.19 30z m0-230c-55.22 0-61.18 42.79-61.18 61.18V256c0 1.13 2.9 5.17 15.79 8.83 11.69 3.3 28.23 5.2 45.39 5.2s33.7-1.9 45.39-5.2c12.89-3.66 15.8-7.7 15.8-8.83V117.18c0-18.39-5.97-61.18-61.19-61.18zM355.73 264a8 8 0 0 1-8-8V128a8 8 0 0 1 16 0v128a8 8 0 0 1-8 8zM665.84 264a8 8 0 0 1-8-8V128a8 8 0 0 1 16 0v128a8 8 0 0 1-8 8z" fill="#222222" ></path><path d="M273.84 352c46.36-23.26 135.63-39 238.16-39s191.8 15.75 238.16 39c21.55-10.82 33.84-23.26 33.84-36.49 0-41.7-121.78-75.51-272-75.51s-272 33.81-272 75.51c0 13.23 12.29 25.67 33.84 36.49z" fill="#FFC841" ></path><path d="M750.16 361l-3.59-1.8C699.66 335.61 609.78 321 512 321s-187.66 14.62-234.57 38.16l-3.59 1.8-3.58-1.8C244.87 346.41 232 331.73 232 315.51 232 261.27 376.26 232 512 232s280 29.27 280 83.51c0 16.22-12.87 30.9-38.26 43.64zM512 305c97.65 0 188.17 14.53 238 38.06 16.78-9 26-18.73 26-27.54 0-15.78-27.59-32.86-73.81-45.69C651.5 255.75 584 248 512 248s-139.5 7.75-190.19 21.82C275.59 282.65 248 299.73 248 315.51c0 8.81 9.18 18.51 26 27.54C323.83 319.52 414.35 305 512 305z" fill="#222222" ></path><path d="M912 560v48l-24.91 40h-46.18L816 608v-48a80 80 0 0 0 16 137.33V928h64V697.33A80 80 0 0 0 912 560z" fill="#646464" ></path><path d="M896 936h-64a8 8 0 0 1-8-8V702.39a88 88 0 0 1-12.81-148.79A8 8 0 0 1 824 560v45.71L845.35 640h37.3L904 605.71V560a8 8 0 0 1 12.81-6.4A88 88 0 0 1 904 702.39V928a8 8 0 0 1-8 8z m-56-16h48V697.33a8 8 0 0 1 4.8-7.33A72.07 72.07 0 0 0 920 578.69V608a8 8 0 0 1-1.21 4.23l-24.9 40a8 8 0 0 1-6.8 3.77h-46.18a8 8 0 0 1-6.79-3.77l-24.91-40A8 8 0 0 1 808 608v-29.31A72.07 72.07 0 0 0 835.2 690a8 8 0 0 1 4.8 7.33z m72-312z" fill="#222222" ></path><path d="M800 784h160v48H800z" fill="#FFCEBF" ></path><path d="M968 840H792v-64h176z m-160-16h144v-32H808z" fill="#222222" ></path><path d="M800 832h160v48H800z" fill="#FFCEBF" ></path><path d="M968 888H792v-64h176z m-160-16h144v-32H808z" fill="#222222" ></path><path d="M800 880h160v48H800z" fill="#FFCEBF" ></path><path d="M968 936H792v-64h176z m-160-16h144v-32H808z" fill="#222222" ></path><path d="M800 928h160v48H800z" fill="#FFCEBF" ></path><path d="M968 984H792v-64h176z m-160-16h144v-32H808z" fill="#222222" ></path><path d="M864 784h96v192h-96" fill="#FFCEBF" ></path><path d="M968 984H864v-16h88V792h-88v-16h104v208z" fill="#222222" ></path><path d="M800 784v96h-48v-96z" fill="#FFCEBF" ></path><path d="M808 888h-64V776h64z m-48-16h32v-80h-32zM512 920a8 8 0 0 1-8-8V784a8 8 0 0 1 16 0v128a8 8 0 0 1-8 8z" fill="#222222" ></path></symbol><symbol id="icon-lakers" viewBox="0 0 1024 1024"><path d="M841.728 423.936V141.312l-161.28-43.008h-0.512c-13.312 36.352-83.456 64.512-167.936 64.512s-154.624-27.648-167.936-64l-163.328 43.52v281.6a199.68 199.68 0 0 1-29.184 103.936v422.912h720.384v-420.864a201.6256 201.6256 0 0 1-30.208-105.984z" fill="#FC9A0D" ></path><path d="M510.464 184.32c100.352 0 181.76-33.28 181.76-74.24a28.9792 28.9792 0 0 0-1.536-9.216l-10.24-2.56h-0.512c-13.312 36.352-83.456 64.512-167.936 64.512s-154.624-27.648-167.936-64l-14.336 3.584a39.5264 39.5264 0 0 0-1.024 7.68c0 40.96 81.408 74.24 181.76 74.24zM782.336 459.776V125.952l60.928 16.384v281.6a199.68 199.68 0 0 0 29.184 103.936v99.328a201.472 201.472 0 0 1-90.112-167.424z" fill="#FFFFFF" ></path><path d="M872.704 627.6608l-0.4096-0.256a201.7792 201.7792 0 0 1-90.2144-167.6288V125.5936h0.3072l61.1328 16.4352v281.6a199.168 199.168 0 0 0 29.1328 103.7824z m-90.112-501.4016V459.776a201.2672 201.2672 0 0 0 89.6 166.9632v-98.816a199.68 199.68 0 0 1-29.184-103.9872v-281.6z" ></path><path d="M827.904 138.24v315.904c3.072 25.088 15.872 82.432 44.544 110.592v37.888c-61.44-32.768-74.24-140.8-74.752-145.92V129.536z" fill="#2A1A5B" ></path><path d="M241.664 459.776V125.952l-60.928 16.384v281.6a199.68 199.68 0 0 1-29.184 103.936v99.328a200.2432 200.2432 0 0 0 90.112-167.424z" fill="#FFFFFF" ></path><path d="M151.296 627.6608v-99.84a199.2192 199.2192 0 0 0 29.184-103.8848v-281.6l61.44-16.4864V459.776a200.8576 200.8576 0 0 1-90.2144 167.6288z m0.512-99.7376v98.7648a200.3456 200.3456 0 0 0 89.6-166.912V126.3104l-60.416 16.2304v281.6a199.68 199.68 0 0 1-29.184 103.7824z" ></path><path d="M196.608 138.24v315.904c-3.072 25.088-15.872 82.432-44.544 110.592v37.888c61.44-32.768 74.24-140.8 74.752-145.92V129.536z" fill="#2A1A5B" ></path><path d="M512 285.696a196.352 196.352 0 0 0 195.584-180.224l-27.136-7.168h-0.512c-4.096 11.776-14.336 22.528-28.672 31.744a145.0496 145.0496 0 0 1-278.528 0c-14.336-9.216-24.576-19.968-28.672-31.744l-27.648 7.168A197.0688 197.0688 0 0 0 512 285.696z" fill="#FFFFFF" ></path><path d="M512 285.952a195.328 195.328 0 0 1-133.12-52.3776 197.5296 197.5296 0 0 1-62.72-128l27.904-7.2192c3.9424 11.3152 13.568 21.9648 28.5696 31.5904a144.7936 144.7936 0 0 0 278.016 0c15.0016-9.6768 24.6272-20.48 28.5696-31.5904h0.768l27.3408 7.2192A196.608 196.608 0 0 1 512 285.952zM316.672 105.6768a195.9936 195.9936 0 0 0 390.6048 0l-26.88-7.1168h-0.3072c-3.9936 11.3664-13.6192 21.9648-28.6208 31.6416a145.6128 145.6128 0 0 1-51.2 74.9056 145.2544 145.2544 0 0 1-176.0768 0 146.3296 146.3296 0 0 1-51.6608-74.9056c-14.9504-9.6256-24.576-20.48-28.6208-31.5904z" fill="#333333" ></path><path d="M512 270.336a180.8384 180.8384 0 0 0 180.224-168.96l-11.776-3.072h-0.512a47.5648 47.5648 0 0 1-9.728 15.872 160 160 0 0 1-316.416 0 47.2576 47.2576 0 0 1-9.216-15.36l-12.288 3.584A179.8656 179.8656 0 0 0 512 270.336z" fill="#2A1A5B" ></path><path d="M152.064 902.144h719.872v49.152H152.064z" fill="#C17111" ></path><path d="M501.1456 775.8848v40.96h-132.096v-34.3552q58.7264-96 69.7856-118.8352t11.0592-35.84a25.6 25.6 0 0 0-3.328-14.6432 11.5712 11.5712 0 0 0-10.24-4.8128 11.2128 11.2128 0 0 0-10.24 5.12 44.9536 44.9536 0 0 0-3.328 21.248v22.8864H369.0496v-8.7552a190.8224 190.8224 0 0 1 2.0992-31.8976 55.9616 55.9616 0 0 1 10.24-22.9376 51.2 51.2 0 0 1 21.248-17.1008 76.8 76.8 0 0 1 31.3344-5.7856q35.84 0 54.1696 17.7664a59.904 59.904 0 0 1 18.3296 44.9536 106.9568 106.9568 0 0 1-10.24 43.6736q-10.24 23.04-60.8768 97.792zM640.8704 576.3072v157.2352h17.1008v40.96h-17.1008v42.3424h-60.0576v-42.3424H509.4912v-40.96l51.8656-157.2352z m-60.0576 157.2352v-102.4l-26.5216 102.4z" fill="#FFFFFF" ></path><path d="M306.3296 465.3056H322.56a27.5456 27.5456 0 0 0 4.5056-0.3072 10.9056 10.9056 0 0 0 3.072-0.9728 7.936 7.936 0 0 0 2.304-1.792 13.9264 13.9264 0 0 0 1.9456-3.0208 29.5424 29.5424 0 0 0 1.792-4.7104q0.8192-2.8672 2.0992-8.5504h6.2976l-1.024 25.088h-56.32v-3.072a12.9024 12.9024 0 0 0 5.12-2.2016 6.0416 6.0416 0 0 0 1.7408-3.4816 42.3936 42.3936 0 0 0 0.4096-6.8608V401.3568a45.312 45.312 0 0 0-0.3072-6.2976 7.8848 7.8848 0 0 0-1.024-3.072 5.12 5.12 0 0 0-1.8944-1.7408 20.7872 20.7872 0 0 0-4.0448-1.4848v-3.072h26.3168v3.072a22.2208 22.2208 0 0 0-3.8912 1.3312 5.4272 5.4272 0 0 0-1.8944 1.5872 7.3728 7.3728 0 0 0-1.1264 3.072 40.96 40.96 0 0 0-0.3584 6.5536zM402.688 471.04v-3.072a20.48 20.48 0 0 0 4.6592-1.3824 5.12 5.12 0 0 0 2.304-2.0992 7.3728 7.3728 0 0 0 0.768-3.584 23.552 23.552 0 0 0-0.512-4.608q-0.512-2.4576-1.4336-5.5296l-2.304-8.0384h-29.184l-2.1504 6.144A60.7744 60.7744 0 0 0 372.736 455.68a21.0432 21.0432 0 0 0-0.512 4.3008 7.1168 7.1168 0 0 0 1.9456 5.9392 10.8032 10.8032 0 0 0 5.8368 2.304V471.04H353.28v-3.072a9.472 9.472 0 0 0 6.0928-4.0448 41.6768 41.6768 0 0 0 5.12-10.24l26.0608-69.1712h9.8304l21.248 69.6832a67.1744 67.1744 0 0 0 2.6624 7.424 11.5712 11.5712 0 0 0 2.7648 3.9936 10.24 10.24 0 0 0 4.4544 2.1504V471.04zM378.88 437.2992h26.112l-11.8784-40.2944zM461.6704 424.2944h1.8944a12.1344 12.1344 0 0 0 4.352-0.768 16.0768 16.0768 0 0 0 4.4032-2.816 87.552 87.552 0 0 0 7.424-7.68q5.9904-6.7072 8.192-9.6768a25.6 25.6 0 0 0 3.584-5.9904 9.1136 9.1136 0 0 0 0.768-3.4816 4.4032 4.4032 0 0 0-1.4336-3.6352 7.3216 7.3216 0 0 0-3.9424-1.3824v-3.072h27.2384v3.072a14.1824 14.1824 0 0 0-3.9424 1.536 20.9408 20.9408 0 0 0-3.9936 3.0208q-2.048 1.8944-5.9904 6.2976l-20.992 23.6544 22.7328 33.0752a59.5968 59.5968 0 0 0 5.6832 7.3216 16.0768 16.0768 0 0 0 3.9424 3.072 12.6464 12.6464 0 0 0 3.9936 1.28V471.04h-27.392v-3.072a7.5776 7.5776 0 0 0 3.3792-0.8704 2.304 2.304 0 0 0 1.0752-2.048 6.912 6.912 0 0 0-0.7168-2.7136 25.6 25.6 0 0 0-2.304-3.84l-14.5408-21.7088a43.8272 43.8272 0 0 0-3.7376-5.12 7.936 7.936 0 0 0-2.56-1.8432 9.472 9.472 0 0 0-3.6864-0.6144h-3.328v26.1632a46.7456 46.7456 0 0 0 0.3072 6.144 8.6016 8.6016 0 0 0 0.9216 3.072 5.12 5.12 0 0 0 1.9456 1.8944 17.4592 17.4592 0 0 0 4.1472 1.4848v3.072h-26.368v-3.072a12.9024 12.9024 0 0 0 5.12-2.2016 6.0928 6.0928 0 0 0 1.7408-3.4816 42.3936 42.3936 0 0 0 0.4096-6.8608V401.3568a44.3392 44.3392 0 0 0-0.3072-6.2976 7.8848 7.8848 0 0 0-1.024-3.072 5.12 5.12 0 0 0-1.8944-1.7408 20.992 20.992 0 0 0-4.0448-1.4848v-3.072h26.3168v3.072a17.152 17.152 0 0 0-3.9936 1.3824 5.7344 5.7344 0 0 0-1.9456 1.7408 7.68 7.68 0 0 0-1.0752 3.072 42.3936 42.3936 0 0 0-0.3584 6.3488zM584.8576 385.7408V404.48H578.56a52.2752 52.2752 0 0 0-1.9456-5.12 23.7568 23.7568 0 0 0-2.048-3.8912 10.24 10.24 0 0 0-2.3552-2.5088 7.5776 7.5776 0 0 0-3.0208-1.28 22.3744 22.3744 0 0 0-4.1984-0.3584h-19.7632v32.768h13.3632a9.728 9.728 0 0 0 4.3008-0.768 6.144 6.144 0 0 0 2.6112-2.6624 24.7296 24.7296 0 0 0 1.9456-5.888H573.44v24.0128h-5.888a22.6816 22.6816 0 0 0-1.9456-5.632 6.7072 6.7072 0 0 0-2.4064-3.072 9.3696 9.3696 0 0 0-4.4032-0.8192h-13.3632v35.84h19.456a18.9952 18.9952 0 0 0 5.12-0.512 7.7824 7.7824 0 0 0 3.2768-1.792 12.032 12.032 0 0 0 2.4576-3.328 28.672 28.672 0 0 0 1.792-4.3008q0.7168-2.2016 1.9456-6.4512h6.1952l-1.3824 22.3232h-57.856v-3.072a12.9024 12.9024 0 0 0 5.12-2.2016 6.0416 6.0416 0 0 0 1.7408-3.4816 42.3936 42.3936 0 0 0 0.4096-6.8608V401.3568a45.312 45.312 0 0 0-0.3072-6.2976 7.8848 7.8848 0 0 0-1.024-3.072 5.12 5.12 0 0 0-1.8944-1.7408 20.7872 20.7872 0 0 0-4.0448-1.4848v-3.072zM618.2912 433.9712v21.248a43.52 43.52 0 0 0 0.3584 6.5536 7.9872 7.9872 0 0 0 1.024 3.072 5.12 5.12 0 0 0 1.8944 1.6896 21.4016 21.4016 0 0 0 4.0448 1.4848V471.04H599.04v-3.072a12.9024 12.9024 0 0 0 5.12-2.2016 6.0416 6.0416 0 0 0 1.7408-3.4816 42.3936 42.3936 0 0 0 0.4096-6.8608V401.3568a45.312 45.312 0 0 0-0.3072-6.2976 7.8848 7.8848 0 0 0-1.024-3.072 5.12 5.12 0 0 0-1.8944-1.7408 20.7872 20.7872 0 0 0-4.0448-1.4848v-3.072h30.72a36.9664 36.9664 0 0 1 21.8624 5.12 19.0976 19.0976 0 0 1 7.2704 16.4864 22.784 22.784 0 0 1-4.7104 14.5408 30.72 30.72 0 0 1-14.1312 9.3696v0.512a18.3296 18.3296 0 0 1 6.5536 4.4544 44.9024 44.9024 0 0 1 6.4 9.2672l5.632 10.24a61.44 61.44 0 0 0 4.1984 6.8608 15.36 15.36 0 0 0 3.584 3.6352 11.9296 11.9296 0 0 0 4.8128 1.7408V471.04h-17.3056a74.0352 74.0352 0 0 1-4.5056-7.1168q-2.1504-3.7888-4.1984-7.7312l-5.4784-10.24a65.6896 65.6896 0 0 0-4.096-7.0144 12.544 12.544 0 0 0-2.9184-3.1744 8.4992 8.4992 0 0 0-2.8672-1.2288 23.04 23.04 0 0 0-4.608-0.3584z m0-42.496v37.12h7.0656a40.0896 40.0896 0 0 0 8.8064-0.768 16.2816 16.2816 0 0 0 6.2464-2.9696 15.0528 15.0528 0 0 0 4.608-6.0928 23.808 23.808 0 0 0 1.7408-9.5744 21.4016 21.4016 0 0 0-2.048-9.8816 13.5168 13.5168 0 0 0-6.144-5.9904 25.1392 25.1392 0 0 0-11.1104-2.048q-5.6832-0.0512-9.1648 0.2048zM687.872 451.584a26.2656 26.2656 0 0 0 3.3792 8.704 12.9024 12.9024 0 0 0 5.4784 4.7104 21.1456 21.1456 0 0 0 8.704 1.536 15.36 15.36 0 0 0 11.2128-3.7888 14.848 14.848 0 0 0 3.8912-11.1104 17.2544 17.2544 0 0 0-1.6384-7.8848 17.9712 17.9712 0 0 0-5.12-5.9904 72.4992 72.4992 0 0 0-11.264-6.5536 61.8496 61.8496 0 0 1-11.5712-7.1168 23.9616 23.9616 0 0 1-6.3488-7.5264 19.0976 19.0976 0 0 1-2.0992-8.8576 22.1696 22.1696 0 0 1 3.2768-12.1344 21.248 21.248 0 0 1 9.6256-7.9872 35.5328 35.5328 0 0 1 14.5408-2.816 73.5232 73.5232 0 0 1 20.48 2.7648V404.48h-6.1952a26.2656 26.2656 0 0 0-3.6352-8.5504 11.9808 11.9808 0 0 0-5.12-4.3008 20.0704 20.0704 0 0 0-7.6288-1.2288 17.0496 17.0496 0 0 0-7.2704 1.4848 11.6736 11.6736 0 0 0-5.12 4.5056 13.4656 13.4656 0 0 0-1.8944 7.2192 16.0768 16.0768 0 0 0 1.5872 7.4752 17.664 17.664 0 0 0 5.12 5.6832 59.5456 59.5456 0 0 0 10.24 5.888 76.3392 76.3392 0 0 1 12.0832 7.424 26.1632 26.1632 0 0 1 6.8608 7.8336 20.48 20.48 0 0 1 2.4576 10.24 26.7264 26.7264 0 0 1-2.048 11.1104 19.2512 19.2512 0 0 1-5.7344 7.3728 23.296 23.296 0 0 1-8.7552 4.1472 46.08 46.08 0 0 1-11.1616 1.28 92.16 92.16 0 0 1-22.6304-3.328V451.584z" fill="#2A1A5B" ></path><path d="M872.448 950.528v-420.864a201.6256 201.6256 0 0 1-30.208-105.984v-282.624l-161.28-43.008h-0.512c-13.312 36.352-83.456 64.512-167.936 64.512h-6.144v787.968z" opacity=".15" ></path></symbol><symbol id="icon-like02" viewBox="0 0 1024 1024"><path d="M604.2 184.56666667c16.2 8.4 30.4 22.7 42.8 41.5 20.1 31.1 32.4 75.8 35 126.3 1.9 40.8-2.6 82.9-13 119.8h154.2c36.3 0 67.4 9.1 90.7 25.9 24 17.5 37.6 42.8 38.2 70.6v0.6c0 21.4-8.4 47.3-20.7 64.1 13.6 15.5 20.7 36.3 20.7 61.5 0 29.8-20.7 57.7-41.5 72.5 5.2 11.7 7.1 25.3 7.1 34.3 0 33.7-20.1 60.2-55.1 74.5 3.2 7.8 4.5 16.2 4.5 26.6 0 31.7-13 57.7-37.6 74.5-24 16.8-58.3 25.3-101.7 25.3h-246c-27.2 0-57.7-5.8-80.3-14.9-9.1-3.9-17.5-7.8-23.3-11-1.3-0.6-3.2-1.3-4.5-1.9-1.3 0.6-1.9 1.9-3.2 2.6-1.9 1.3-3.9 3.2-5.8 4.5-14.3 10.4-29.8 20.1-48.6 20.7h-66.7c-28.5 0-51.8-9.1-68-26.6-14.9-16.2-24-39.5-25.9-68.7l-30.4-324.5v-1.3c0-30.4 9.1-57.6 25.9-77.7 17.5-20.7 42.1-31.7 69.3-31.7H338c16.2 0 42.8-5.2 77.1-30.4 24-18.1 38.9-36.3 42.1-42.1 11-26.6 21.4-55.7 21.4-125 0-8.4 0-34.3 11-57 9.1-20.1 29.8-43.4 72.6-43.4 14.8 0 28.4 3.9 42 10.4z" fill="#FF9D00" ></path><path d="M616.7 122.86666667a12.2 2.3 90 1 0 4.6 0 12.2 2.3 90 1 0-4.6 0Z" fill="#F07FFD" ></path><path d="M627.571704 121.32267867a12.2 2.3 60 1 0 3.983717-2.3 12.2 2.3 60 1 0-3.983717 2.3Z" fill="#F07FFD" ></path><path d="M636.311797 114.58635567a12.2 2.3 30 1 0 2.3-3.983717 12.2 2.3 30 1 0-2.3 3.983717Z" fill="#F07FFD" ></path><path d="M628.3 102.06666667a12.2 2.3 0 1 0 24.4 0 12.2 2.3 0 1 0-24.4 0Z" fill="#F07FFD" ></path><path d="M627.328131 97.54693467a2.3 12.2 60 1 0 21.13102-12.2 2.3 12.2 60 1 0-21.13102 12.2Z" fill="#F07FFD" ></path><path d="M624.189866 94.11262367a2.3 12.2 30 1 0 12.2-21.131019 2.3 12.2 30 1 0-12.2 21.131019Z" fill="#F07FFD" ></path><path d="M617.4 80.56666667a12.2 2.3 90 1 0 4.6 0 12.2 2.3 90 1 0-4.6 0Z" fill="#F07FFD" ></path><path d="M607.088802 84.31648967a12.2 2.3 60 1 0 3.983717-2.3 12.2 2.3 60 1 0-3.983717 2.3Z" fill="#F07FFD" ></path><path d="M600.042483 92.79750567a12.2 2.3 30 1 0 2.3-3.983717 12.2 2.3 30 1 0-2.3 3.983717Z" fill="#F07FFD" ></path><path d="M586 101.26666667a12.2 2.3 0 1 0 24.4 0 12.2 2.3 0 1 0-24.4 0Z" fill="#F07FFD" ></path><path d="M590.235205 118.07933667a2.3 12.2 60 1 0 21.13102-12.2 2.3 12.2 60 1 0-21.13102 12.2Z" fill="#F07FFD" ></path><path d="M602.351017 130.46853967a2.3 12.2 30 1 0 12.2-21.131019 2.3 12.2 30 1 0-12.2 21.131019Z" fill="#F07FFD" ></path><path d="M367.4 166.26666667m-14.8 0a14.8 14.8 0 1 0 29.6 0 14.8 14.8 0 1 0-29.6 0Z" fill="#2C65AF" ></path><path d="M737.5 143.46666667c2.3 0 4.2 1.9 4.2 4.2v45.5c0 2.3-1.9 4.2-4.2 4.2s-4.2-1.9-4.2-4.2V147.66666667c0-2.4 1.9-4.2 4.2-4.2z" fill="#EF8218" ></path><path d="M714.7 166.16666667h45.5c2.3 0 4.2 1.9 4.2 4.2 0 2.3-1.9 4.2-4.2 4.2h-45.5c-2.3 0-4.2-1.9-4.2-4.2 0.1-2.4 1.9-4.2 4.2-4.2z" fill="#EF8218" ></path><path d="M270.2 201.26666667c5.9-3 8.8-9 6.6-13.3l-43.4-84.1c-2.2-4.3-8.8-5.3-14.7-2.3-5.9 3-8.8 9-6.6 13.3l43.4 84.1c2.2 4.3 8.8 5.3 14.7 2.3z" fill="#7CCBE2" ></path><path d="M294.3 125.66666667c-3-5.9-9-8.8-13.3-6.6l-84.1 43.4c-4.3 2.2-5.3 8.8-2.3 14.7s9 8.8 13.3 6.6l84.1-43.4c4.3-2.2 5.3-8.8 2.3-14.7z" fill="#7CCBE2" ></path><path d="M442.8-13.13333333c20.8 0 37.7 16.8 37.7 37.4S463.6 61.66666667 442.8 61.66666667c-20.8 0-37.7-16.8-37.7-37.4S422-13.13333333 442.8-13.13333333z m0 64.8c15.3 0 27.8-12.3 27.8-27.5S458.1-3.33333333 442.8-3.33333333 415 8.96666667 415 24.16666667 427.5 51.66666667 442.8 51.66666667z" fill="#E62A52" ></path><path d="M674 984.76666667h-81.3c-8.3 0-15-6.7-15-15s6.7-15 15-15H674c40.5 0 71.8-7.6 93.1-22.5l0.2-0.1c20.3-13.9 31-35.4 31-62.1 0-8.8-1-15.2-3.4-20.8l-5.8-14 14-5.7c29.5-12 45.7-33.5 45.7-60.6 0-7-1.5-18.6-5.8-28.2l-5-11.2 9.9-7.1c17.5-12.6 35.2-36.1 35.2-60.4 0-21.4-5.7-38.8-17-51.7l-7.9-9 7.1-9.7c10.5-14.4 17.8-37.1 17.8-55.3v-0.5c-0.6-23.2-12-44-32.1-58.7-20.8-15.1-49.2-23-81.8-23h-174l5.3-19.1c9.9-35.1 14.3-76 12.4-115.1-2.5-47.9-14-90.1-32.6-118.9-11.1-17-23.5-29.2-36.8-36.2-12.7-6-23.9-8.8-35.4-8.8-35.8 0-51.8 18.8-58.9 34.6l-0.2 0.4c-9.5 19.6-9.5 42.8-9.5 50.5 0 70.6-10.7 102.1-22.5 130.8l-0.3 0.8-0.4 0.7c-4.4 7.9-20.8 27.6-46.2 46.8l-0.2 0.1c-37.5 27.6-67.4 33.4-86 33.4H166.2c-22.9 0-43.5 9.4-57.8 26.4C93.8 497.96666667 86 521.56666667 86 548.66666667v0.6l3.5 37.7c0.8 8.2-5.3 15.6-13.5 16.3-8.2 0.8-15.6-5.3-16.3-13.5L56 550.66666667v-2c0-34.2 10.2-64.4 29.4-87.4 20.2-23.9 48.9-37.1 80.8-37.1h117.9c14 0 37.2-4.8 68.1-27.5 21.4-16.2 34.6-32.1 37.6-36.8 10.9-26.4 19.8-53.9 19.8-118.3 0-9.3 0-37.6 12.4-63.4 6.5-14.2 16.3-26.3 28.5-35.1 15.7-11.3 35.1-17 57.6-17 16 0 31.8 3.9 48.6 11.8l0.5 0.2c18 9.4 34.3 25 48.4 46.5 21.4 33.5 34.7 81 37.4 134.1 1.7 35.4-1.4 72.2-8.7 105.6h135c39 0 73.4 9.9 99.5 28.8 27.9 20.4 43.7 49.6 44.4 82.4v1c0 20.6-6.8 44.7-17.4 63.4 11.6 17.1 17.4 38 17.4 62.3 0 32.2-19.3 60.3-38.7 77.5 4 13.5 4.4 25.4 4.4 29.4 0 35.3-18.8 64.9-52.1 82.6 1.1 5.6 1.6 11.7 1.6 18.4 0 36.5-15.6 67.4-44 86.8-26.6 18.5-63.7 27.9-110.4 27.9z" fill="" ></path><path d="M91.7 786.76666667c-7.7 0-14.2-5.8-14.9-13.6l-12-128.4c-0.8-8.2 5.3-15.6 13.5-16.3 8.3-0.8 15.6 5.3 16.3 13.5l12 128.4c0.8 8.2-5.3 15.6-13.5 16.3-0.4 0.1-0.9 0.1-1.4 0.1z" fill="" ></path><path d="M502.1 984.76666667h-74.2c-28.8 0-60.9-6-85.9-16l-0.3-0.1c-8-3.4-14.7-6.5-19.9-9.2-0.7 0.6-1.6 1.2-2.5 1.8-16.2 11.7-34.2 22.7-56.7 23.4h-67.2c-32.7 0-60-10.8-79-31.4-17.4-18.9-27.7-45.7-29.9-77.7L82.7 835.66666667c-0.8-8.2 5.3-15.6 13.5-16.3 8.2-0.8 15.6 5.3 16.3 13.5l3.8 40.7c1.7 25.1 9.3 45.7 22 59.5 13.3 14.4 32.5 21.7 57 21.7h66.4c13.6-0.5 25.8-7.5 40-17.9l0.5-0.4c0.3-0.2 1.1-0.8 1.6-1.3 1.1-0.9 2.4-2 3.9-3 1-1 2.7-2.5 5.1-3.7l6.7-3.4 6.7 3.4c0.3 0.1 0.7 0.3 1.1 0.5 1 0.4 2.2 0.9 3.4 1.5l0.6 0.3c4.8 2.7 12.3 6.2 21.8 10.3 21.3 8.5 49.9 13.8 74.6 13.8h74.2c8.3 0 15 6.7 15 15s-6.5 14.9-14.8 14.9z" fill="" ></path><path d="M320.7 948.66666667c-7.9 0-14.5-6.2-15-14.2l-26.5-495c-0.4-8.3 5.9-15.3 14.2-15.8 8.3-0.4 15.3 5.9 15.8 14.2l26.5 495c0.4 8.3-5.9 15.3-14.2 15.8h-0.8z" fill="" ></path><path d="M188.4 607.36666667c-7.9 0-14.5-6.2-15-14.2l-2.8-49.5c-0.5-8.3 5.9-15.3 14.1-15.8 8.3-0.5 15.3 5.9 15.8 14.1l2.8 49.5c0.5 8.3-5.9 15.3-14.1 15.8-0.3 0.1-0.5 0.1-0.8 0.1zM200.2 820.96666667c-7.9 0-14.5-6.2-15-14.2l-8.1-145.7c-0.5-8.3 5.9-15.3 14.1-15.8 8.3-0.5 15.3 5.9 15.8 14.1l8.1 145.7c0.5 8.3-5.9 15.3-14.1 15.8-0.2 0-0.5 0.1-0.8 0.1z" fill="#FFFFFF" ></path></symbol><symbol id="icon-date02" viewBox="0 0 1024 1024"><path d="M698.368 0m60.643556 0l0.113777 0q60.643556 0 60.643556 60.643556l0 64.512q0 60.643556-60.643556 60.643555l-0.113777 0q-60.643556 0-60.643556-60.643555l0-64.512q0-60.643556 60.643556-60.643556Z" fill="#3A77D9" ></path><path d="M204.344889 0m60.643555 0l0.113778 0q60.643556 0 60.643556 60.643556l0 64.512q0 60.643556-60.643556 60.643555l-0.113778 0q-60.643556 0-60.643555-60.643555l0-64.512q0-60.643556 60.643555-60.643556Z" fill="#3A77D9" ></path><path d="M885.76 56.888889h-35.726222v84.423111a91.022222 91.022222 0 0 1-91.022222 91.022222 91.022222 91.022222 0 0 1-91.022223-91.022222V56.888889H356.010667v84.423111a91.022222 91.022222 0 0 1-182.044445 0V56.888889H138.24A136.533333 136.533333 0 0 0 1.706667 193.422222v694.044445a136.533333 136.533333 0 0 0 136.533333 136.533333h747.52a136.533333 136.533333 0 0 0 136.533333-136.533333V193.422222a136.533333 136.533333 0 0 0-136.533333-136.533333z m98.986667 838.200889a86.471111 86.471111 0 0 1-86.243556 86.243555h-773.688889a86.471111 86.471111 0 0 1-85.560889-86.243555V380.131556a86.471111 86.471111 0 0 1 86.243556-86.243556h773.688889a86.471111 86.471111 0 0 1 86.243555 86.243556z" fill="#3A77D9" ></path><path d="M161.905778 392.305778h115.256889v115.256889H161.905778zM454.428444 392.305778h115.256889v115.256889H454.428444zM746.837333 392.305778h115.256889v115.256889H746.837333zM161.905778 576.512h115.256889V691.768889H161.905778zM454.428444 576.512h115.256889V691.768889H454.428444zM746.837333 576.512h115.256889V691.768889H746.837333zM161.905778 760.718222h115.256889v115.256889H161.905778zM454.428444 760.718222h115.256889v115.256889H454.428444zM746.837333 760.718222h115.256889v115.256889H746.837333z" fill="#3A77D9" ></path></symbol><symbol id="icon-reply02" viewBox="0 0 1024 1024"><path d="M170.666667 136.533333m136.533333 0l512 0q136.533333 0 136.533333 136.533334l0 307.2q0 136.533333-136.533333 136.533333l-512 0q-136.533333 0-136.533333-136.533333l0-307.2q0-136.533333 136.533333-136.533334Z" fill="#FC7300" ></path><path d="M170.666667 170.666667m136.533333 0l512 0q136.533333 0 136.533333 136.533333l0 307.2q0 136.533333-136.533333 136.533333l-512 0q-136.533333 0-136.533333-136.533333l0-307.2q0-136.533333 136.533333-136.533333Z" fill="#FA8511" ></path><path d="M170.666667 273.066667h512a136.533333 136.533333 0 0 1 136.533333 136.533333v307.2a136.533333 136.533333 0 0 1-136.533333 136.533333h-188.757334l-67.242666 67.4816L359.1168 853.333333H170.666667a136.533333 136.533333 0 0 1-136.533334-136.533333v-307.2a136.533333 136.533333 0 0 1 136.533334-136.533333z" fill="#FBC476" ></path><path d="M170.666667 307.2h512a136.533333 136.533333 0 0 1 136.533333 136.533333v307.2a136.533333 136.533333 0 0 1-136.533333 136.533334h-188.757334l-67.242666 67.4816L359.1168 887.466667H170.666667a136.533333 136.533333 0 0 1-136.533334-136.533334v-307.2a136.533333 136.533333 0 0 1 136.533334-136.533333z" fill="#FAB85F" ></path><path d="M204.8 477.866667m34.133333 0l375.466667 0q34.133333 0 34.133333 34.133333l0 0q0 34.133333-34.133333 34.133333l-375.466667 0q-34.133333 0-34.133333-34.133333l0 0q0-34.133333 34.133333-34.133333Z" fill="#FFFFFF" ></path><path d="M204.8 648.533333m34.133333 0l273.066667 0q34.133333 0 34.133333 34.133334l0 0q0 34.133333-34.133333 34.133333l-273.066667 0q-34.133333 0-34.133333-34.133333l0 0q0-34.133333 34.133333-34.133334Z" fill="#FFFFFF" ></path></symbol><symbol id="icon-browse02" viewBox="0 0 1024 1024"><path d="M414.5 75.1h196.1C579 68 546.2 64.3 512.5 64.3c-33.7 0.1-66.5 3.8-98 10.8z" fill="#00D995" ></path><path d="M363.4 89.8l298.3 0.1c-16.6-5.9-33.6-10.8-51.1-14.7H414.5c-17.4 3.8-34.5 8.7-51.1 14.6z" fill="#01D996" ></path><path d="M327.1 104.4l370.9 0.1c-11.8-5.4-24-10.3-36.3-14.7l-298.3-0.1c-12.3 4.4-24.5 9.3-36.3 14.7z" fill="#01D997" ></path><path d="M297.8 119.1l429.4 0.1c-9.5-5.2-19.3-10.1-29.3-14.7l-370.9-0.1c-9.9 4.6-19.6 9.4-29.2 14.7z" fill="#01D898" ></path><path d="M273 133.7l479.1 0.1c-8.1-5.1-16.4-10-24.8-14.7l-429.4-0.1c-8.5 4.7-16.8 9.6-24.9 14.7z" fill="#01D899" ></path><path d="M251.3 148.4l522.5 0.1c-7.1-5.1-14.3-10-21.7-14.7l-479.1-0.1c-7.4 4.7-14.6 9.6-21.7 14.7z" fill="#01D89A" ></path><path d="M232 163l561 0.1c-6.3-5.1-12.7-9.9-19.3-14.7l-522.5-0.1c-6.4 4.8-12.9 9.7-19.2 14.7z" fill="#01D79B" ></path><path d="M214.7 177.7l595.6 0.1c-5.6-5-11.4-9.9-17.3-14.7l-561-0.1c-5.8 4.8-11.6 9.6-17.3 14.7z" fill="#01D79C" ></path><path d="M199.1 192.3l627 0.1c-5.1-5-10.3-9.9-15.7-14.7l-595.6-0.1c-5.4 4.8-10.6 9.7-15.7 14.7z" fill="#02D79D" ></path><path d="M184.8 207l655.5 0.1c-4.7-5-9.4-9.9-14.3-14.7l-627-0.1c-4.8 4.8-9.6 9.7-14.2 14.7z" fill="#02D79E" ></path><path d="M171.7 221.6l681.6 0.1c-4.2-5-8.6-9.9-13-14.7H184.8c-4.5 4.8-8.8 9.6-13.1 14.6z" fill="#02D69F" ></path><path d="M159.7 236.3l705.6 0.1c-3.9-5-7.9-9.9-12-14.7l-681.6-0.1c-4.1 4.8-8.1 9.7-12 14.7z" fill="#02D6A0" ></path><path d="M148.7 250.9l727.6 0.1c-3.6-5-7.2-9.9-11-14.7l-705.6-0.1c-3.7 4.9-7.4 9.8-11 14.7z" fill="#02D6A1" ></path><path d="M138.6 265.6l747.8 0.1c-3.3-5-6.7-9.8-10.1-14.7l-727.6-0.1c-3.4 4.8-6.8 9.7-10.1 14.7z" fill="#02D5A2" ></path><path d="M129.3 280.2l766.4 0.2c-3-5-6.1-9.8-9.3-14.7l-747.8-0.1c-3.2 4.8-6.3 9.7-9.3 14.6z" fill="#02D5A3" ></path><path d="M120.8 294.9l783.4 0.2c-2.8-4.9-5.6-9.8-8.5-14.7l-766.4-0.2c-2.9 4.9-5.7 9.7-8.5 14.7z" fill="#02D5A4" ></path><path d="M113 309.5l799 0.2c-2.5-4.9-5.1-9.8-7.8-14.7l-783.4-0.2c-2.7 4.9-5.3 9.8-7.8 14.7z" fill="#03D4A5" ></path><path d="M105.9 324.2l813.2 0.2c-2.3-4.9-4.7-9.8-7.1-14.7l-799-0.2c-2.4 4.9-4.8 9.8-7.1 14.7z" fill="#03D4A6" ></path><path d="M99.4 338.8l826.2 0.2c-2.1-4.9-4.2-9.8-6.5-14.7l-813.2-0.2c-2.2 4.9-4.4 9.8-6.5 14.7z" fill="#03D4A7" ></path><path d="M93.6 353.5l837.9 0.2c-1.9-4.9-3.8-9.8-5.8-14.7l-826.2-0.2c-2.1 4.9-4.1 9.8-5.9 14.7z" fill="#03D4A8" ></path><path d="M88.3 368.2l848.4 0.2c-1.7-4.9-3.4-9.8-5.3-14.7l-837.9-0.2c-1.8 4.8-3.5 9.7-5.2 14.7z" fill="#03D3A9" ></path><path d="M83.6 382.8l857.8 0.2c-1.5-4.9-3-9.8-4.7-14.7l-848.4-0.2c-1.6 4.9-3.2 9.8-4.7 14.7z" fill="#03D3AA" ></path><path d="M79.5 397.5l866 0.2c-1.3-4.9-2.7-9.8-4.1-14.7l-857.8-0.2c-1.4 4.9-2.8 9.7-4.1 14.7z" fill="#03D3AB" ></path><path d="M75.9 412.1l873.2 0.2c-1.1-4.9-2.3-9.8-3.6-14.7l-866-0.2c-1.3 4.9-2.5 9.8-3.6 14.7z" fill="#04D2AC" ></path><path d="M72.8 426.8l879.4 0.2c-1-4.9-2-9.8-3.1-14.7l-873.2-0.2c-1.1 4.9-2.2 9.8-3.1 14.7z" fill="#04D2AD" ></path><path d="M70.2 441.4l884.6 0.2c-0.8-4.9-1.6-9.8-2.6-14.7l-879.4-0.2c-1 4.9-1.8 9.8-2.6 14.7z" fill="#04D2AE" ></path><path d="M68.1 456.1l888.7 0.2c-0.6-4.9-1.3-9.8-2.1-14.7l-884.6-0.2c-0.7 4.9-1.4 9.8-2 14.7z" fill="#04D1AF" ></path><path d="M66.5 470.7l891.9 0.2c-0.5-4.9-1-9.8-1.6-14.7L68.1 456c-0.6 4.9-1.1 9.8-1.6 14.7z" fill="#04D1B0" ></path><path d="M65.4 485.4l894.1 0.2c-0.3-4.9-0.7-9.8-1.1-14.6l-891.9-0.3c-0.4 4.9-0.8 9.8-1.1 14.7z" fill="#04D1B1" ></path><path d="M64.8 500l895.3 0.2c-0.1-4.9-0.3-9.8-0.6-14.6l-894.1-0.2c-0.3 4.9-0.5 9.7-0.6 14.6z" fill="#04D1B2" ></path><path d="M64.8 500c-0.1 4-0.2 8.1-0.2 12.2v2.5l895.6 0.2v-2.7c0-4-0.1-8-0.2-12" fill="#05D0B3" ></path><path d="M65 529.4l895 0.2c0.2-4.9 0.3-9.8 0.3-14.7l-895.6-0.2c0 4.9 0.1 9.8 0.3 14.7z" fill="#05D0B4" ></path><path d="M65.8 544l893.4 0.2c0.3-4.9 0.6-9.8 0.8-14.7l-895-0.2c0.1 5 0.4 9.8 0.8 14.7z" fill="#05D0B5" ></path><path d="M67 558.7l890.9 0.2c0.5-4.9 0.9-9.8 1.3-14.7L65.8 544c0.3 4.9 0.7 9.8 1.2 14.7z" fill="#05CFB6" ></path><path d="M68.8 573.3l887.4 0.2c0.7-4.9 1.2-9.8 1.8-14.7l-890.9-0.2c0.4 5 1 9.9 1.7 14.7z" fill="#05CFB7" ></path><path d="M71 588l882.9 0.2c0.8-4.9 1.6-9.7 2.3-14.7l-887.4-0.2c0.6 4.9 1.4 9.8 2.2 14.7z" fill="#05CFB8" ></path><path d="M73.8 602.6l877.4 0.2c1-4.9 1.9-9.7 2.8-14.7L71 588c0.9 4.9 1.8 9.8 2.8 14.6z" fill="#05CEB9" ></path><path d="M77 617.3l870.8 0.2c1.2-4.8 2.3-9.7 3.3-14.7l-877.4-0.2 3.3 14.7z" fill="#06CEBA" ></path><path d="M80.8 631.9l863.2 0.2c1.3-4.8 2.6-9.7 3.8-14.7L77 617.2c1.2 5 2.5 9.9 3.8 14.7z" fill="#06CEBB" ></path><path d="M85.1 646.6l854.6 0.2c1.5-4.8 3-9.7 4.3-14.7l-863.2-0.2c1.4 5 2.8 9.8 4.3 14.7z" fill="#06CEBD" ></path><path d="M90 661.2l844.8 0.2c1.7-4.8 3.3-9.7 4.9-14.7l-854.6-0.2c1.6 5 3.2 9.9 4.9 14.7z" fill="#06CDBE" ></path><path d="M95.5 675.9l833.9 0.2c1.9-4.8 3.7-9.7 5.5-14.7l-844.8-0.2c1.7 5 3.5 9.9 5.4 14.7z" fill="#06CDBF" ></path><path d="M101.6 690.6l821.8 0.2c2.1-4.8 4.1-9.7 6.1-14.7l-834-0.2c1.9 4.9 4 9.8 6.1 14.7z" fill="#06CDC0" ></path><path d="M108.2 705.2l808.4 0.2c2.3-4.8 4.5-9.7 6.7-14.7l-821.8-0.2c2.2 5 4.4 9.9 6.7 14.7z" fill="#06CCC1" ></path><path d="M115.6 719.9l793.7 0.2c2.5-4.8 5-9.7 7.3-14.7l-808.4-0.2c2.4 5 4.9 9.8 7.4 14.7z" fill="#07CCC2" ></path><path d="M123.6 734.5l777.6 0.2c2.8-4.8 5.5-9.7 8-14.7l-793.7-0.2c2.7 5 5.4 9.9 8.1 14.7z" fill="#07CCC3" ></path><path d="M132.4 749.2l760.1 0.2c3-4.8 5.9-9.7 8.8-14.7l-777.6-0.2c2.8 5 5.7 9.9 8.7 14.7z" fill="#07CBC4" ></path><path d="M142 763.8l740.9 0.2c3.3-4.8 6.5-9.7 9.6-14.7l-760.1-0.2c3.1 5 6.3 9.9 9.6 14.7z" fill="#07CBC5" ></path><path d="M152.4 778.5l720.1 0.2c3.6-4.8 7-9.7 10.4-14.7l-740.9-0.2c3.3 5 6.8 9.9 10.4 14.7z" fill="#07CBC6" ></path><path d="M163.7 793.2l697.4 0.1c3.9-4.8 7.7-9.7 11.3-14.7l-720.1-0.2c3.7 5.1 7.5 10 11.4 14.8z" fill="#07CBC7" ></path><path d="M176 807.8l672.7 0.1c4.2-4.8 8.3-9.7 12.4-14.7l-697.4-0.1c4 5 8.1 9.9 12.3 14.7z" fill="#07CAC8" ></path><path d="M189.5 822.5l645.8 0.1c4.6-4.8 9.1-9.7 13.5-14.7l-672.7-0.1c4.3 5 8.8 9.9 13.4 14.7z" fill="#08CAC9" ></path><path d="M204.3 837.1l616.3 0.1c5-4.8 10-9.7 14.8-14.7H189.5c4.8 5 9.7 9.9 14.8 14.6z" fill="#08CACA" ></path><path d="M220.5 851.8l583.8 0.1c5.5-4.8 10.9-9.6 16.2-14.7l-616.3-0.1c5.3 5 10.8 9.9 16.3 14.7z" fill="#08C9CB" ></path><path d="M238.4 866.4l547.9 0.1c6.1-4.7 12.1-9.6 18-14.7H220.5c5.8 5 11.8 9.9 17.9 14.6z" fill="#08C9CC" ></path><path d="M248.8 874.2l527.2 0.1c3.5-2.5 7-5.2 10.4-7.8l-547.9-0.1c3.3 2.7 6.8 5.3 10.3 7.8zM512.5 960.1c98.5 0 189.6-31.8 263.5-85.7l-527.2-0.1c74 53.9 165.1 85.8 263.7 85.8z" fill="#08C9CC" ></path><path d="M790.3 504.5C756.1 415.8 620.8 332 511.8 332c-115.8 0-238 75.6-278.3 172.1l-2.9 6.9 2.9 6.9C273.8 614.4 396 690 511.8 690c109 0 244.3-83.9 278.5-172.5l2.5-6.4-2.5-6.6zM511.8 622.1c-61.3 0-111.2-49.9-111.2-111.2 0-61.3 49.9-111.2 111.2-111.2S623 449.6 623 510.9c0 61.3-49.9 111.2-111.2 111.2z" fill="#FFFFFF" ></path><path d="M511.7 427.6c-45.9 0-83.2 37.4-83.2 83.3s37.3 83.3 83.2 83.3c45.9 0 83.3-37.3 83.3-83.3 0-45.9-37.4-83.3-83.3-83.3z m53.4 83.3c-6.6 0-11.9-5.3-11.9-11.9 0-13-10.6-23.7-23.7-23.7-6.6 0-11.9-5.3-11.9-11.9 0-6.6 5.3-11.9 11.9-11.9 26.2 0 47.5 21.3 47.5 47.5 0 6.5-5.3 11.9-11.9 11.9z" fill="#FFFFFF" ></path><path d="M517.6 502.7v-51.3h52.3c-15-14.7-35.6-23.8-58.2-23.8-14.9 0-28.8 3.9-40.9 10.8l46.8 64.3zM577 498.9v11.9h-53.5l44.6 61.2c16.5-15.2 26.9-37 26.9-61.2 0-19.4-6.7-37.3-17.9-51.5v39.6z" fill="#FFFFFF" ></path><path d="M577 498.9v-39.6c-2.2-2.8-4.6-5.5-7.1-7.9h-40.4c26.2 0 47.5 21.3 47.5 47.5zM565.1 510.9H577V499c0 6.5-5.3 11.9-11.9 11.9z" fill="#FFFFFF" ></path><path d="M553.2 498.9c0-13-10.6-23.7-23.7-23.7-6.6 0-11.9-5.3-11.9-11.9v39.4l4.1 5.6 1.9 2.5h41.6c-6.7 0.1-12-5.3-12-11.9zM529.5 451.4h-11.9v11.9c0-6.5 5.3-11.9 11.9-11.9zM517.6 502.7l4.1 5.6zM517.6 504.3v-1.6l-46.8-64.3c-0.3 0.2-0.6 0.3-0.8 0.5l47.6 65.4zM523.5 510.9h-1.2l45.1 61.9c0.2-0.2 0.5-0.4 0.7-0.7l-44.6-61.2zM523.5 510.9l-1.8-2.6z" fill="#FFFFFF" ></path><path d="M517.6 502.7v1.6l4.8 6.6h1.1l-1.8-2.6zM517.6 504.3l4.8 6.6-4.8-6.6z" fill="#FFFFFF" ></path><path d="M521.2 510.9l45.5 62.5c0.2-0.2 0.5-0.4 0.7-0.6l-45.1-61.9h-1.1zM517.6 504.3L470 438.9c-0.3 0.2-0.6 0.3-0.8 0.5l48.5 66.6v-1.7z" fill="#FDFFFF" ></path><path d="M517.6 506l3.6 4.9h1.2l-4.8-6.6z" fill="#FDFFFF" ></path><path d="M517.6 507.6V506l-48.5-66.6c-0.3 0.2-0.6 0.3-0.8 0.5l49.3 67.7zM521.2 510.9H520l46 63.1c0.2-0.2 0.5-0.4 0.7-0.6l-45.5-62.5zM517.6 506l3.6 4.9-3.6-4.9z" fill="#FCFFFE" ></path><path d="M517.6 507.6l0.6 0.8 1.8 2.5h1.2l-3.6-4.9zM517.6 507.6l0.6 0.8z" fill="#FCFFFE" ></path><path d="M520 510.9h-1.2l46.4 63.8c0.2-0.2 0.5-0.4 0.7-0.6L520 510.9zM517.6 507.6l-49.3-67.7c-0.3 0.2-0.5 0.3-0.8 0.5l50.1 68.8v-1.6zM520 510.9l-1.8-2.5z" fill="#FAFFFE" ></path><path d="M517.6 507.6v1.6l1.2 1.7h1.2l-1.8-2.5z" fill="#FAFFFE" ></path><path d="M518.8 510.9h-1.2l46.9 64.4c0.2-0.2 0.5-0.4 0.7-0.6l-46.4-63.8zM517.6 509.2l-50.1-68.8c-0.3 0.2-0.5 0.3-0.8 0.5l50.9 69.9v-1.6zM517.6 509.2l1.2 1.7-1.2-1.7z" fill="#F8FFFE" ></path><path d="M517.6 510.8v0.1h1.2l-1.2-1.7zM517.6 510.9v-0.1z" fill="#F8FFFE" ></path><path d="M517.6 510.9L466.7 441c-0.3 0.2-0.5 0.3-0.8 0.5l97.9 134.4c0.2-0.2 0.5-0.4 0.8-0.6l-47-64.4zM517.6 510.8zM517.6 510.8v0.1-0.1z" fill="#F6FEFD" ></path><path d="M465.1 442L563 576.4c0.3-0.2 0.5-0.4 0.8-0.6l-97.9-134.4c-0.3 0.2-0.6 0.4-0.8 0.6z" fill="#F5FEFD" ></path><path d="M464.3 442.5l98 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.4c-0.3 0.1-0.5 0.3-0.8 0.5z" fill="#F3FEFD" ></path><path d="M463.5 443.1l98 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.5c-0.3 0.2-0.5 0.4-0.8 0.6z" fill="#F1FEFC" ></path><path d="M462.7 443.6l98 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.5c-0.2 0.3-0.5 0.4-0.8 0.6z" fill="#F0FEFC" ></path><path d="M462 444.2l98 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.5c-0.3 0.2-0.6 0.4-0.8 0.6z" fill="#EEFEFC" ></path><path d="M461.2 444.8l98 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.5c-0.3 0.2-0.5 0.4-0.8 0.6z" fill="#ECFEFB" ></path><path d="M460.4 445.4l97.9 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.5c-0.2 0.2-0.4 0.4-0.7 0.6z" fill="#EAFEFB" ></path><path d="M459.7 446l97.9 134.4c0.3-0.2 0.5-0.3 0.8-0.5l-97.9-134.5c-0.3 0.2-0.6 0.4-0.8 0.6z" fill="#E9FEFB" ></path><path d="M458.9 446.5l97.8 134.3c0.3-0.2 0.5-0.3 0.8-0.5L459.7 446c-0.3 0.2-0.5 0.3-0.8 0.5z" fill="#E7FEFA" ></path><path d="M458.2 447.2L556 581.4c0.3-0.2 0.5-0.3 0.8-0.5L459 446.6c-0.3 0.2-0.5 0.4-0.8 0.6z" fill="#E5FDFA" ></path><path d="M457.5 447.8l97.7 134.1c0.3-0.2 0.5-0.3 0.8-0.5l-97.7-134.2c-0.3 0.2-0.6 0.4-0.8 0.6z" fill="#E4FDFA" ></path><path d="M456.8 448.4l97.6 134c0.3-0.2 0.6-0.3 0.8-0.5l-97.7-134.1c-0.3 0.2-0.5 0.4-0.7 0.6z" fill="#E2FDF9" ></path><path d="M456 449.1l97.5 133.8c0.3-0.2 0.6-0.3 0.8-0.5l-97.6-134-0.7 0.7z" fill="#E0FDF9" ></path><path d="M455.3 449.7l97.3 133.6c0.3-0.2 0.6-0.3 0.8-0.5L456 449.1c-0.2 0.2-0.4 0.4-0.7 0.6z" fill="#DEFDF9" ></path><path d="M454.6 450.4l97.2 133.5c0.3-0.2 0.6-0.3 0.8-0.5l-97.3-133.6c-0.2 0.1-0.4 0.4-0.7 0.6z" fill="#DDFDF8" ></path><path d="M453.9 451l97 133.3c0.3-0.2 0.6-0.3 0.8-0.5l-97.2-133.5c-0.1 0.3-0.3 0.5-0.6 0.7z" fill="#DBFDF8" ></path><path d="M453.2 451.7l96.9 133c0.3-0.1 0.6-0.3 0.9-0.4L454 451c-0.3 0.3-0.5 0.5-0.8 0.7z" fill="#D9FDF8" ></path><path d="M452.5 452.4l96.7 132.8c0.3-0.1 0.6-0.3 0.9-0.4l-96.9-133c-0.2 0.1-0.4 0.4-0.7 0.6z" fill="#D8FDF7" ></path><path d="M451.9 453.1l96.5 132.5c0.3-0.1 0.6-0.3 0.9-0.4l-96.7-132.8c-0.3 0.2-0.5 0.5-0.7 0.7z" fill="#D6FCF7" ></path><path d="M451.2 453.8l96.3 132.3c0.3-0.1 0.6-0.3 0.9-0.4l-96.5-132.5c-0.2 0.1-0.5 0.4-0.7 0.6z" fill="#D4FCF7" ></path><path d="M450.5 454.5l96.1 132c0.3-0.1 0.6-0.3 0.9-0.4l-96.3-132.3c-0.2 0.2-0.4 0.5-0.7 0.7z" fill="#D2FCF6" ></path><path d="M449.9 455.2l95.9 131.6c0.3-0.1 0.6-0.3 0.9-0.4l-96.1-132c-0.3 0.3-0.5 0.6-0.7 0.8z" fill="#D1FCF6" ></path><path d="M449.2 456l95.6 131.3c0.3-0.1 0.6-0.3 0.9-0.4l-95.9-131.6c-0.1 0.2-0.4 0.4-0.6 0.7z" fill="#CFFCF6" ></path><path d="M448.6 456.7l95.4 131c0.3-0.1 0.6-0.3 0.9-0.4L449.2 456c-0.2 0.2-0.4 0.5-0.6 0.7z" fill="#CDFCF5" ></path><path d="M447.9 457.5L543 588c0.3-0.1 0.6-0.2 0.9-0.4l-95.4-131c-0.1 0.4-0.3 0.6-0.6 0.9z" fill="#CCFCF5" ></path><path d="M447.3 458.2l94.8 130.2c0.3-0.1 0.6-0.2 0.9-0.4l-95.1-130.6c-0.2 0.3-0.4 0.6-0.6 0.8z" fill="#CAFCF5" ></path><path d="M446.7 459l94.5 129.8c0.3-0.1 0.6-0.2 0.9-0.4l-94.8-130.2c-0.2 0.3-0.4 0.5-0.6 0.8z" fill="#C8FCF4" ></path><path d="M446.1 459.8l94.2 129.3c0.3-0.1 0.6-0.2 0.9-0.4L446.7 459c-0.2 0.2-0.4 0.5-0.6 0.8z" fill="#C6FCF4" ></path><path d="M445.5 460.6l93.9 128.9 0.9-0.3-94.2-129.3c-0.2 0.1-0.4 0.4-0.6 0.7z" fill="#C5FBF4" ></path><path d="M444.9 461.3l93.5 128.4 0.9-0.3-93.9-128.9c-0.1 0.3-0.3 0.6-0.5 0.8z" fill="#C3FBF3" ></path><path d="M444.3 462.2l93.2 127.9 0.9-0.3-93.5-128.4c-0.2 0.2-0.4 0.5-0.6 0.8z" fill="#C1FBF3" ></path><path d="M443.7 463l92.8 127.4 0.9-0.3-93.2-127.9c-0.1 0.2-0.3 0.5-0.5 0.8z" fill="#C0FBF3" ></path><path d="M443.1 463.8l92.4 126.9c0.3-0.1 0.7-0.2 1-0.3L443.7 463c-0.2 0.3-0.4 0.5-0.6 0.8z" fill="#BEFBF2" ></path><path d="M442.5 464.6l92 126.3c0.3-0.1 0.7-0.2 1-0.3l-92.4-126.9c-0.2 0.4-0.4 0.7-0.6 0.9z" fill="#BCFBF2" ></path><path d="M442 465.5l91.6 125.7c0.3-0.1 0.7-0.2 1-0.3l-92-126.3c-0.3 0.3-0.4 0.6-0.6 0.9z" fill="#BAFBF2" ></path><path d="M441.4 466.4l91.1 125.1c0.3-0.1 0.7-0.2 1-0.3L442 465.5l-0.6 0.9z" fill="#B9FBF2" ></path><path d="M440.9 467.2l90.7 124.5c0.3-0.1 0.7-0.2 1-0.2l-91.1-125.1c-0.3 0.3-0.5 0.5-0.6 0.8z" fill="#B7FBF1" ></path><path d="M440.3 468.1L530.5 592c0.3-0.1 0.7-0.2 1-0.2l-90.7-124.5c-0.1 0.2-0.3 0.5-0.5 0.8z" fill="#B5FAF1" ></path><path d="M439.8 469l89.7 123.2c0.3-0.1 0.7-0.2 1-0.2l-90.2-123.9c-0.2 0.3-0.3 0.6-0.5 0.9z" fill="#B3FAF1" ></path><path d="M439.3 469.9l89.2 122.5c0.3-0.1 0.7-0.2 1-0.2L439.8 469c-0.2 0.3-0.3 0.6-0.5 0.9z" fill="#B2FAF0" ></path><path d="M438.8 470.8l88.7 121.8c0.3-0.1 0.7-0.1 1-0.2l-89.2-122.5c-0.2 0.3-0.4 0.6-0.5 0.9z" fill="#B0FAF0" ></path><path d="M438.3 471.8l88.2 121.1c0.3-0.1 0.7-0.1 1-0.2l-88.7-121.8c-0.2 0.3-0.4 0.6-0.5 0.9z" fill="#AEFAF0" ></path><path d="M437.8 472.7L525.4 593c0.4-0.1 0.7-0.1 1-0.2l-88.2-121.1c-0.1 0.4-0.3 0.7-0.4 1z" fill="#ADFAEF" ></path><path d="M437.3 473.7l87 119.5c0.4-0.1 0.7-0.1 1-0.2l-87.6-120.3c-0.1 0.4-0.3 0.7-0.4 1z" fill="#ABFAEF" ></path><path d="M436.8 474.6l86.4 118.7c0.4-0.1 0.7-0.1 1.1-0.1l-87-119.5c-0.2 0.3-0.4 0.6-0.5 0.9z" fill="#A9FAEF" ></path><path d="M436.3 475.6l85.8 117.8c0.4 0 0.7-0.1 1.1-0.1l-86.4-118.7c-0.2 0.4-0.3 0.7-0.5 1z" fill="#A7FAEE" ></path><path d="M435.9 476.6l85.2 117c0.4 0 0.7-0.1 1.1-0.1l-85.8-117.8c-0.2 0.3-0.4 0.6-0.5 0.9z" fill="#A6F9EE" ></path><path d="M435.4 477.6L520 593.7c0.4 0 0.7-0.1 1.1-0.1l-85.2-117c-0.2 0.4-0.3 0.7-0.5 1z" fill="#A4F9EE" ></path><path d="M435 478.6l83.9 115.2c0.4 0 0.7 0 1.1-0.1l-84.6-116.1c-0.1 0.4-0.3 0.7-0.4 1z" fill="#A2F9ED" ></path><path d="M434.6 479.7l83.2 114.2c0.4 0 0.7-0.1 1.1-0.1L435 478.6c-0.2 0.4-0.3 0.8-0.4 1.1z" fill="#A1F9ED" ></path><path d="M434.1 480.8L516.6 594c0.4 0 0.7-0.1 1.1-0.1l-83.2-114.2c-0.1 0.4-0.2 0.7-0.4 1.1z" fill="#9FF9ED" ></path><path d="M433.7 481.8l81.8 112.3c0.4 0 0.8 0 1.1-0.1l-82.5-113.2c-0.1 0.3-0.2 0.7-0.4 1z" fill="#9DF9EC" ></path><path d="M433.3 482.9l81 111.2h1.2l-81.8-112.3c-0.1 0.4-0.2 0.7-0.4 1.1z" fill="#9BF9EC" ></path><path d="M433 484l80.2 110.1h1.2l-81-111.2c-0.2 0.4-0.3 0.7-0.4 1.1z" fill="#9AF9EC" ></path><path d="M432.6 485.1l79.4 109h1.2L433 484c-0.2 0.4-0.3 0.7-0.4 1.1z" fill="#98F9EB" ></path><path d="M432.2 486.2l78.6 107.9h1.2l-79.4-109c-0.1 0.4-0.3 0.7-0.4 1.1z" fill="#96F9EB" ></path><path d="M431.9 487.4l77.7 106.7h1.2l-78.6-107.9-0.3 1.2z" fill="#95F8EB" ></path><path d="M431.5 488.6l76.8 105.5h1.2l-77.7-106.7c0 0.4-0.2 0.8-0.3 1.2z" fill="#93F8EA" ></path><path d="M431.2 489.7l76 104.3h1.2l-76.8-105.5c-0.2 0.4-0.3 0.8-0.4 1.2z" fill="#91F8EA" ></path><path d="M430.9 490.9l75 103c0.4 0 0.8 0.1 1.3 0.1l-76-104.3-0.3 1.2z" fill="#8FF8EA" ></path><path d="M430.6 492.2l74 101.7c0.4 0 0.8 0.1 1.3 0.1l-75-103c-0.1 0.3-0.2 0.8-0.3 1.2z" fill="#8EF8E9" ></path><path d="M430.3 493.4l73.1 100.3c0.4 0 0.8 0.1 1.3 0.1l-74-101.7c-0.2 0.5-0.3 0.9-0.4 1.3z" fill="#8CF8E9" ></path><path d="M430.1 494.7l72 98.9c0.4 0 0.9 0.1 1.3 0.2l-73.1-100.3c-0.1 0.3-0.1 0.7-0.2 1.2z" fill="#8AF8E9" ></path><path d="M429.8 496l71 97.4c0.4 0.1 0.9 0.1 1.3 0.2l-72-98.9c-0.1 0.4-0.2 0.8-0.3 1.3z" fill="#89F8E8" ></path><path d="M429.6 497.3l69.9 96c0.4 0.1 0.9 0.1 1.3 0.2l-71-97.4c0 0.3-0.1 0.7-0.2 1.2z" fill="#87F8E8" ></path><path d="M429.4 498.6l68.8 94.4c0.4 0.1 0.9 0.2 1.3 0.2l-69.9-96c-0.1 0.5-0.2 1-0.2 1.4z" fill="#85F7E8" ></path><path d="M429.2 500l67.6 92.8c0.5 0.1 0.9 0.2 1.4 0.2l-68.8-94.4c-0.1 0.5-0.1 0.9-0.2 1.4z" fill="#83F7E7" ></path><path d="M429 501.4l66.4 91.2c0.5 0.1 0.9 0.2 1.4 0.2L429.2 500c-0.1 0.4-0.1 0.9-0.2 1.4z" fill="#82F7E7" ></path><path d="M428.9 502.8l65.2 89.5c0.5 0.1 0.9 0.2 1.4 0.3L429 501.4c0 0.4-0.1 0.9-0.1 1.4z" fill="#80F7E7" ></path><path d="M428.8 504.2l63.9 87.7c0.5 0.1 0.9 0.2 1.4 0.3l-65.2-89.5c-0.1 0.6-0.1 1.1-0.1 1.5z" fill="#7EF7E6" ></path><path d="M428.6 505.7l62.5 85.9c0.5 0.1 0.9 0.2 1.4 0.3l-63.9-87.7c0.1 0.5 0.1 1 0 1.5z" fill="#7CF7E6" ></path><path d="M428.6 507.2l61.1 84c0.5 0.1 1 0.3 1.5 0.4l-62.5-85.9c-0.1 0.5-0.1 1-0.1 1.5z" fill="#7BF7E6" ></path><path d="M428.5 508.8l59.7 82c0.5 0.1 1 0.3 1.5 0.4l-61.1-84c-0.1 0.5-0.1 1.1-0.1 1.6z" fill="#79F7E5" ></path><path d="M428.5 510.4l58.2 79.9c0.5 0.2 1 0.3 1.5 0.4l-59.7-82v1.7z" fill="#77F7E5" ></path><path d="M428.5 510.9v1.1l56.6 77.8c0.5 0.2 1 0.4 1.6 0.5l-58.2-79.9v0.5z" fill="#76F7E5" ></path><path d="M428.5 513.7l55 75.6c0.5 0.2 1 0.4 1.6 0.5L428.5 512v1.7z" fill="#74F6E4" ></path><path d="M428.6 515.4l53.3 73.2c0.5 0.2 1.1 0.4 1.6 0.6l-55-75.6c0.1 0.7 0.1 1.2 0.1 1.8z" fill="#72F6E4" ></path><path d="M428.7 517.2l51.5 70.8c0.6 0.2 1.1 0.4 1.7 0.7l-53.3-73.2c0 0.5 0.1 1.1 0.1 1.7z" fill="#70F6E4" ></path><path d="M428.9 519l49.7 68.2c0.6 0.2 1.1 0.5 1.7 0.7l-51.5-70.8c0 0.7 0 1.3 0.1 1.9z" fill="#6FF6E3" ></path><path d="M429.1 521l47.7 65.5c0.6 0.3 1.2 0.5 1.8 0.8L428.9 519c0 0.7 0.1 1.3 0.2 2z" fill="#6DF6E3" ></path><path d="M476.8 586.5L429.1 521c3.5 29.1 22.1 53.6 47.7 65.5z" fill="#6DF6E3" ></path></symbol><symbol id="icon-reply" viewBox="0 0 1024 1024"><path d="M512 0C229.259636 0 0 229.236364 0 512s229.236364 512 512 512c109.381818 0 210.501818-34.536727 293.701818-92.974545l167.121455 41.774545-41.774546-167.121455A509.137455 509.137455 0 0 0 1024 512C1024 229.236364 794.786909 0 512 0m0 947.2C271.662545 947.2 76.8 752.337455 76.8 512S271.662545 76.8 512 76.8c240.384 0 435.223273 194.862545 435.223273 435.2a433.338182 433.338182 0 0 1-103.424 281.297455l25.041454 77.91709-76.8-26.274909A433.221818 433.221818 0 0 1 512 947.2" ></path><path d="M308.363636 525.568m-60.113454 0a60.113455 60.113455 0 1 0 120.226909 0 60.113455 60.113455 0 1 0-120.226909 0Z" ></path><path d="M517.818182 525.568m-60.113455 0a60.113455 60.113455 0 1 0 120.226909 0 60.113455 60.113455 0 1 0-120.226909 0Z" ></path><path d="M727.272727 525.568m-60.113454 0a60.113455 60.113455 0 1 0 120.226909 0 60.113455 60.113455 0 1 0-120.226909 0Z" ></path></symbol><symbol id="icon-comment" viewBox="0 0 1024 1024"><path d="M113.834667 291.84v449.194667a29.013333 29.013333 0 0 0 28.842666 29.013333h252.928v90.453333l160.597334-90.453333h252.928a29.013333 29.013333 0 0 0 29.013333-29.013333V291.84a29.013333 29.013333 0 0 0-29.013333-29.013333h-665.6a29.013333 29.013333 0 0 0-29.696 29.013333z" fill="#FFDEAD" ></path><path d="M809.130667 262.826667h-665.6a29.013333 29.013333 0 0 0-28.842667 29.013333v40.106667a29.013333 29.013333 0 0 1 28.842667-29.013334h665.6a29.013333 29.013333 0 0 1 29.013333 29.013334V291.84a29.013333 29.013333 0 0 0-29.013333-29.013333z" fill="#FFF3DB" ></path><path d="M556.202667 770.048h252.928a29.013333 29.013333 0 0 0 29.013333-29.013333V362.837333s-59.733333 392.533333-724.309333 314.709334v63.488a29.013333 29.013333 0 0 0 28.842666 29.013333h253.098667v90.453333z" fill="#F2C182" ></path><path d="M619.008 632.32l101.888-35.157333-131.754667-76.117334 29.866667 111.274667zM891.904 148.992a61.44 61.44 0 0 0-84.138667 22.528l-19.968 34.133333 106.666667 61.610667 19.968-34.133333a61.781333 61.781333 0 0 0-22.528-84.138667z" fill="#69BAF9" ></path><path d="M775.338667 198.775467l131.669333 76.032-186.026667 322.218666-131.6864-76.032z" fill="#F7FBFF" ></path><path d="M775.168 198.826667l-5.290667 9.216 59.221334 34.133333a34.133333 34.133333 0 0 1 12.458666 46.592l-139.946666 242.346667a34.133333 34.133333 0 0 1-46.762667 12.629333l-59.050667-34.133333-6.656 11.434666 88.746667 51.2L720.896 597.333333l186.026667-322.56z" fill="#D8E3F0" ></path><path d="M616.448 622.592l2.56 9.728 101.888-35.157333-44.885333-25.941334-59.562667 51.370667zM891.904 148.992c-1.024 0-2.218667-0.853333-3.242667-1.536A61.610667 61.610667 0 0 1 887.466667 204.8l-19.968 34.133333-73.728-42.496-5.12 8.704 106.666666 61.610667 19.968-34.133333a61.781333 61.781333 0 0 0-23.381333-83.626667z" fill="#599ED4" ></path><path d="M265.898667 417.621333H494.933333a17.066667 17.066667 0 1 0 0-34.133333H265.898667a17.066667 17.066667 0 1 0 0 34.133333zM265.898667 533.504H494.933333a17.066667 17.066667 0 0 0 0-34.133333H265.898667a17.066667 17.066667 0 0 0 0 34.133333z" fill="#3D3D63" ></path><path d="M959.488 354.645333a99.84 99.84 0 0 0-23.722667-127.488 78.677333 78.677333 0 0 0-142.848-64.170666l-11.605333 20.138666a17.066667 17.066667 0 0 0-20.821333 7.168l-32.085334 55.466667H142.677333a46.250667 46.250667 0 0 0-45.909333 46.08v449.194667a46.08 46.08 0 0 0 45.909333 46.08h236.032v73.386666a17.066667 17.066667 0 0 0 8.362667 14.848 17.066667 17.066667 0 0 0 8.704 2.218667 17.066667 17.066667 0 0 0 8.362667-2.218667l156.672-88.234666h248.32a46.08 46.08 0 0 0 46.08-46.08V398.677333L921.6 283.306667a17.066667 17.066667 0 0 0-4.266667-21.504l1.877334-3.413334a65.365333 65.365333 0 0 1 10.410666 79.189334l-53.077333 91.989333a56.832 56.832 0 0 0 20.821333 77.653333 17.066667 17.066667 0 0 0 24.234667-6.314666 17.066667 17.066667 0 0 0-6.997333-23.04 23.04 23.04 0 0 1-8.362667-31.061334z m-138.410667 386.389334a11.946667 11.946667 0 0 1-11.946666 11.946666H556.202667a17.066667 17.066667 0 0 0-8.362667 2.218667l-134.997333 76.117333v-61.269333a17.066667 17.066667 0 0 0-17.066667-17.066667H142.677333a11.946667 11.946667 0 0 1-11.776-11.946666V291.84a11.946667 11.946667 0 0 1 11.776-11.946667h565.930667L574.464 512a17.066667 17.066667 0 0 0-1.706667 12.970667L597.333333 615.253333H265.898667a17.066667 17.066667 0 1 0 0 34.133334h352.938666a17.066667 17.066667 0 0 0 5.802667 0l102.4-35.328a17.066667 17.066667 0 0 0 9.216-7.509334l85.333333-147.968z m-204.8-184.661334l63.829334 36.864-49.322667 17.066667z m206.848-170.666666v1.365333l-108.373333 186.709333-102.4-59.050666L781.482667 221.866667l102.4 59.050666z m76.458667-161.28L887.466667 244.224l-76.970667-44.373333 11.264-19.797334a44.544 44.544 0 1 1 77.141333 44.544z" fill="#3D3D63" ></path></symbol><symbol id="icon-wetchat" viewBox="0 0 1024 1024"><path d="M650.9 443.59c108.15 0 195.82 80.32 195.82 179.41 0 38.51-13.25 74.17-35.79 103.4l40.92 80.6-100.17-30.22a208.34 208.34 0 0 1-100.78 25.64c-108.15 0-195.82-80.33-195.82-179.42s87.67-179.41 195.82-179.41z" fill="#FDD668" ></path><path d="M598.8 590.15c0.08-19.87-14.7-35.26-33.92-35.32-19-0.07-34.67 15.76-34.7 35s15.5 35.41 34.27 35.49c19.03 0.05 34.27-15.54 34.35-35.17z m109.36 0.62c0.37 19.56 16 35 35 34.51 18.73-0.45 34.08-16.94 33.61-36.11s-16.32-34.82-35.2-34.42-33.77 16.25-33.41 36.02zM356.31 392.79c0.08-19.88-14.7-35.27-33.93-35.33-18.95-0.06-34.66 15.76-34.69 35s15.49 35.41 34.27 35.49c19.04 0.05 34.27-15.54 34.35-35.16z m109.36 0.61c0.36 19.56 16 35 35 34.51 18.73-0.45 34.08-16.94 33.61-36.11s-16.33-34.82-35.2-34.42c-19.08 0.4-33.77 16.28-33.41 36.02z" ></path><path d="M894.64 785.26l-28.26-55.69A214 214 0 0 0 894.72 623c0-107.34-80.25-197.34-187.67-221.09-3.41-25.37-16.85-57.18-19-62.1C653.83 261.53 533.7 177.7 409.48 177.7c-174.18 0-315.87 130.75-315.87 291.46 0 55.89 17 109.65 49.28 156.37L63.14 782.61l193.59-58.39c59.8 30.49 129.41 42.18 197.88 33.11 44.42 56.32 115.75 93.09 196.3 93.09a258.38 258.38 0 0 0 105-22.21L838 853l107.47 32.4zM270.86 677.37L262 672.5l-105.23 31.73 42.43-83.61-9.25-12c-31.62-41-48.34-89.26-48.34-139.46 0-134.24 120.16-243.46 267.87-243.46 100.91 0 207.07 70.41 234.6 133.35 2.62 6 8.26 23 12.26 36.79-1.82 0-3.61-0.25-5.43-0.25-134.46 0-243.83 102-243.83 227.41a213.23 213.23 0 0 0 19.37 88.79c-54.59 3.13-108.98-8.74-155.59-34.42z m480.81 99.41a208.29 208.29 0 0 1-100.76 25.64c-108.16 0-195.83-80.33-195.83-179.42s87.67-179.41 195.83-179.41S846.72 523.91 846.72 623c0 38.51-13.25 74.17-35.78 103.4l40.9 80.6z" ></path></symbol><symbol id="icon-message" viewBox="0 0 1024 1024"><path d="M914.23744 216.27904c0 75.74528-61.39904 137.14432-137.14432 137.14432H685.6704c-42.88512 0-80.68096-20.09088-105.8304-50.92352-41.60512 12.58496-91.68896 12.4416-153.21088-10.02496 68.4544 5.74464 94.43328 2.26304 130.65216-29.37856-5.35552-14.67392-8.74496-30.30016-8.74496-46.81728 0-75.74528 61.39904-137.14432 137.14432-137.14432h91.42272c75.73504 0 137.13408 61.39904 137.13408 137.14432zM304.72192 109.60896a91.42272 91.42272 0 1 1 0 182.85568 91.42272 91.42272 0 0 1 0-182.85568z m60.94848 213.32992a538.4704 538.4704 0 0 1-36.608 133.41696c0.95232-52.31616-9.10336-102.94272-9.10336-102.94272s15.23712-16.15872 15.23712-30.47424h-60.94848c0 14.31552 15.23712 30.47424 15.23712 30.47424s-10.0864 50.71872-9.10336 103.09632a540.08832 540.08832 0 0 1-36.608-133.57056c-30.47424 0-121.89696 0-121.89696 91.42272V536.2688c0 91.42272 60.94848 91.42272 60.94848 91.42272v274.2784a60.94848 60.94848 0 0 0 121.89696 0 60.94848 60.94848 0 0 0 121.89696 0V627.69152s60.94848 0 60.94848-91.42272V414.3616c0.01024-91.42272-91.41248-91.42272-121.89696-91.42272z m441.89696-152.3712h-152.3712c-8.42752 0-15.23712 6.8096-15.23712 15.23712s6.8096 15.23712 15.23712 15.23712h152.38144a15.22688 15.22688 0 1 0-0.01024-30.47424z m0 60.94848h-152.3712c-8.42752 0-15.23712 6.8096-15.23712 15.23712s6.8096 15.23712 15.23712 15.23712h152.38144a15.23712 15.23712 0 1 0-0.01024-30.47424z" fill="#333333" ></path></symbol><symbol id="icon-me" viewBox="0 0 1024 1024"><path d="M690.49344 296.66304c-4.83328-0.74752-9.65632 0-14.29504 1.50528 1.56672-29.48096 2.31424-61.02016 0.24576-84.41856-3.51232-37.87776-26.83904-78.01856-48.97792-94.19776-35.24608-25.58976-89.74336-37.376-110.31552-37.376-20.44928 0-75.06944 11.78624-110.25408 37.376-22.20032 16.1792-45.4656 56.32-48.91648 94.19776-2.12992 23.3984-1.3824 54.9376 0.18432 84.41856-4.63872-1.50528-9.46176-2.26304-14.35648-1.50528-14.17216 2.12992-23.9616 16.25088-16.9984 50.61632 6.90176 34.42688 16.93696 57.26208 33.87392 55.94112 1.00352-0.06144 1.56672-0.44032 2.5088-0.62464 5.59104 43.71456 48.7936 112.88576 86.23104 137.59488 9.53344 13.35296 36.31104 24.5248 67.7376 23.58272 31.42656 0.94208 58.32704-10.21952 67.7376-23.58272 37.56032-24.70912 80.65024-93.88032 86.23104-137.59488 0.94208 0.18432 1.50528 0.5632 2.5088 0.62464 16.9984 1.32096 27.0336-21.51424 33.87392-55.94112 7.00416-34.37568-2.77504-48.4864-17.01888-50.61632zM806.144 660.16256c-64.1536-32.11264-160.55296-64.21504-160.55296-64.21504-11.47904 70.99392-42.1376 153.40544-84.92032 225.14688a1344.64512 1344.64512 0 0 0-11.34592-122.4192c10.84416-17.05984 17.94048-31.10912 22.51776-42.27072 5.38624-13.60896-4.25984-28.34432-18.56512-28.34432h-72.12032c-14.42816 0-23.90016 14.92992-18.56512 28.34432 4.57728 11.1616 11.66336 25.21088 22.51776 42.27072-6.27712 44.40064-9.59488 86.29248-11.4176 122.4192-42.77248-71.61856-73.50272-154.15296-84.97152-225.14688 0 0-96.32768 32.11264-160.55296 64.21504-64.1536 32.11264-96.32768 75.25376-96.32768 160.55296v48.16896a80.2816 80.2816 0 0 0 80.34304 80.27136h609.95584a80.2816 80.2816 0 0 0 80.34304-80.27136v-48.16896c-0.01024-85.2992-32.18432-128.45056-96.33792-160.55296z" fill="#333333" ></path></symbol><symbol id="icon-user03" viewBox="0 0 1024 1024"><path d="M512 0c281.6 0 512 230.4 512 512s-230.4 512-512 512-512-230.4-512-512 230.4-512 512-512z m115.2 505.6c44.8-38.4 76.8-89.6 76.8-153.6 0-108.8-83.2-192-192-192s-192 83.2-192 192c0 64 32 115.2 76.8 153.6-102.4 44.8-172.8 147.2-172.8 262.4 0 19.2 12.8 32 32 32s32-12.8 32-32c0-121.6 102.4-224 224-224s224 102.4 224 224c0 19.2 12.8 32 32 32s32-12.8 32-32c0-115.2-70.4-217.6-172.8-262.4zM512 480c-70.4 0-128-57.6-128-128s57.6-128 128-128 128 57.6 128 128-57.6 128-128 128z" ></path></symbol><symbol id="icon-user02" viewBox="0 0 1024 1024"><path d="M956.696128 512.75827c0 245.270123-199.054545 444.137403-444.615287 444.137403-245.538229 0-444.522166-198.868303-444.522166-444.137403 0-188.264804 117.181863-349.108073 282.675034-413.747255 50.002834-20.171412 104.631012-31.311123 161.858388-31.311123 57.297984 0 111.87909 11.128455 161.928996 31.311123C839.504032 163.650197 956.696128 324.494489 956.696128 512.75827L956.696128 512.75827M341.214289 419.091984c0 74.846662 38.349423 139.64855 94.097098 171.367973 23.119557 13.155624 49.151443 20.742417 76.769454 20.742417 26.64894 0 51.773154-7.096628 74.286913-19.355837 57.06467-31.113625 96.650247-96.707552 96.650247-172.742273 0-105.867166-76.664054-192.039781-170.936137-192.039781C417.867086 227.053226 341.214289 313.226864 341.214289 419.091984L341.214289 419.091984M513.886977 928.114163c129.883139 0 245.746984-59.732429 321.688583-153.211451-8.971325-73.739445-80.824817-136.51314-182.517917-167.825286-38.407752 34.55091-87.478354 55.340399-140.989081 55.340399-54.698786 0-104.770182-21.907962-143.55144-57.96211-98.921987 28.234041-171.379229 85.823668-188.368158 154.831344C255.507278 861.657588 376.965537 928.114163 513.886977 928.114163L513.886977 928.114163M513.886977 928.114163 513.886977 928.114163z" ></path></symbol><symbol id="icon-label01" viewBox="0 0 1024 1024"><path d="M719.36 131.072l11.264 122.368c1.536 14.336 14.336 25.088 28.672 24.064 14.336-1.536 25.088-14.336 24.064-28.672l-11.264-122.368-52.736 4.608z" fill="#425768" ></path><path d="M930.816 219.648l-329.728 0.512L532.48 365.568V965.12h467.456V365.568z" fill="#87C596" ></path><path d="M761.344 647.168c-3.584-1.024-7.168-2.56-10.752-4.608-3.584-1.536-10.24-5.12-19.968-10.752s-17.408-11.776-23.04-18.944c-5.632-7.168-10.24-14.336-13.312-22.016-3.072-7.68-4.096-15.872-3.584-25.088 0.512-15.36 4.608-26.624 12.288-34.816 7.68-8.192 14.848-14.336 22.528-18.432 7.68-4.096 14.848-7.168 22.528-8.704l13.312-3.072V488.448h16.896v12.8c4.608 0 8.192 0.512 10.752 0.512 3.072 0 6.144 1.024 10.24 1.536 4.096 1.024 11.264 2.56 20.992 5.632 9.728 2.56 17.92 8.192 24.576 15.872s9.728 14.848 9.728 20.992c0 6.656-3.072 12.8-8.704 17.408-5.632 5.12-12.288 7.168-19.456 7.68-7.68 0-13.824-2.048-18.944-7.168-5.12-4.608-7.68-10.24-7.168-16.384 0-5.12 2.048-9.728 5.632-14.336 3.584-4.096 5.632-6.656 5.632-7.68 0-2.048-3.072-4.096-8.704-6.656s-10.752-4.096-14.848-4.608l-10.24-1.024v94.208c8.192 3.072 17.408 6.656 27.136 10.24s18.944 7.168 27.136 11.264c8.192 4.096 15.872 10.24 22.528 18.944 6.656 8.704 10.24 17.92 10.24 27.648 0 9.728-1.536 18.944-4.096 27.136-3.072 8.192-7.168 15.36-12.8 21.504-5.632 6.144-11.776 10.752-18.944 14.336-6.656 3.072-13.824 6.144-20.992 7.68s-14.336 3.584-21.504 4.096l-9.216 1.024v14.336h-16.896v-14.336c-5.632-1.024-10.752-1.536-14.336-2.56-4.096-1.024-8.704-2.048-13.824-4.096-5.12-2.048-10.24-4.096-14.336-6.144s-8.704-5.12-13.312-8.192c-4.608-3.584-9.216-7.68-13.312-13.824s-6.656-11.264-6.656-17.408c0-6.144 1.024-11.264 2.56-15.36 2.048-4.608 5.12-8.192 9.216-10.752s8.704-3.584 14.848-3.584c6.656 0 11.776 2.048 15.872 5.12 4.096 3.072 6.656 7.168 6.656 11.264 0.512 4.096 0 7.68-1.024 9.728-1.024 2.048-2.56 3.584-4.096 5.12l-8.192 5.12c-2.048 1.536-3.584 3.072-4.608 5.12-1.024 2.048 1.536 6.144 7.168 11.776 4.096 4.096 8.704 7.68 13.312 9.728s8.704 4.096 11.776 4.096l11.776 2.048V647.168z m0-132.608c-4.096 1.024-7.68 2.048-11.264 3.072-3.584 1.024-7.68 3.072-11.264 6.144-4.096 3.072-7.68 7.168-10.752 13.312-3.072 5.632-4.608 12.288-4.096 18.944 0 9.728 2.56 17.408 7.68 23.552s11.776 11.264 19.968 15.36l9.728 5.12V514.56z m16.384 225.28c5.632-1.024 12.288-2.048 20.48-4.096 7.68-2.048 14.336-6.656 19.456-13.824 5.12-7.168 7.68-14.848 7.68-23.552 0-8.704-1.536-15.36-5.12-19.968s-8.192-8.704-14.848-12.288c-6.144-3.584-12.8-6.144-18.944-8.704l-9.216-3.584v86.016z" fill="#FFFFFF" ></path><path d="M830.464 296.448l-253.952-210.432-145.92 68.096-382.976 461.824 359.936 298.496 382.976-461.824z" fill="#87C596" ></path><path d="M644.096 263.168m-30.208 0a30.208 30.208 0 1 0 60.416 0 30.208 30.208 0 1 0-60.416 0Z" fill="#528963" ></path><path d="M719.36 131.072l-78.848 94.72c-9.216 11.264-7.68 27.648 3.584 37.376 11.264 9.216 27.648 7.68 37.376-3.584l78.848-94.72-40.96-33.792z" fill="#425768" ></path><path d="M427.008 517.12c-2.048-3.072-3.584-6.656-5.632-10.24-2.048-3.584-4.608-10.752-8.192-20.992-3.584-10.24-5.632-19.968-5.632-29.184 0-9.216 1.536-17.408 4.096-25.088 2.56-7.68 7.168-14.848 13.312-21.504 10.24-11.264 20.992-17.408 31.744-18.944 10.752-1.536 20.48-1.536 29.184 0 8.192 1.536 15.872 4.096 22.528 7.68l12.288 6.144 7.68-9.728 12.8 10.752-8.192 9.728c3.584 3.072 6.144 5.12 8.192 7.168 2.048 2.048 4.608 4.608 7.168 7.68 2.56 3.072 6.656 9.216 12.8 17.408s8.704 17.92 8.704 28.16-2.048 17.92-5.632 22.528c-4.608 5.12-10.24 7.68-17.92 8.192-7.168 0.512-13.824-2.048-19.968-6.656-6.144-4.608-9.216-10.752-10.24-17.408-1.024-6.656 1.024-12.8 5.12-17.408 3.584-4.096 7.68-6.656 13.312-7.168 5.632-1.024 8.704-1.536 9.216-2.56 1.024-1.536 0.512-5.12-2.56-10.24-2.56-5.632-5.632-9.728-8.704-13.312L525.312 424.96 465.408 496.64c4.096 7.68 9.216 15.872 14.336 25.088 5.12 9.216 9.728 17.92 13.824 26.112 3.584 8.192 5.632 17.92 5.12 29.184-0.512 11.264-3.584 20.48-9.728 28.16s-12.8 13.824-20.48 17.92c-7.68 4.608-15.36 7.168-23.552 8.704-8.192 1.024-16.384 0.512-23.552-1.024-7.168-2.048-14.336-4.096-21.504-7.168-6.656-3.072-13.312-6.656-18.944-10.752l-7.68-5.12-9.216 11.264-12.8-10.752 9.216-11.264c-4.096-4.096-7.168-8.192-9.728-11.264-2.56-3.072-5.12-7.168-7.68-12.288s-5.12-9.728-7.168-13.824c-2.048-4.608-3.584-9.728-4.608-14.848-1.536-5.632-2.048-11.776-1.536-18.944s2.048-13.312 5.632-17.92c3.584-4.608 7.68-8.192 11.776-10.24 4.608-2.048 9.216-3.072 13.824-2.56 4.608 0.512 9.216 2.56 13.824 6.656 5.12 4.096 8.192 9.216 9.216 14.336 1.024 5.12 0.512 9.728-2.048 13.312s-4.608 5.632-7.168 7.168c-2.048 1.024-4.096 1.536-6.656 1.024l-9.216-1.536c-2.56 0-4.608 0-7.168 1.024-2.048 1.024-3.072 5.632-2.048 13.824 0.512 5.632 2.048 11.264 4.096 16.384s4.096 8.704 6.656 10.752l7.68 9.216L427.008 517.12z m-46.592 81.92c5.12 3.072 11.264 6.144 18.432 9.728s15.36 4.096 24.064 2.048c8.704-2.048 15.36-6.656 20.992-12.8 5.632-6.656 8.704-12.8 8.704-18.944 0.512-6.144-1.024-12.288-3.584-18.944-2.56-6.656-5.632-12.8-8.704-18.944l-4.608-8.704-55.296 66.56z m131.072-184.32c-3.584-1.536-7.168-3.584-10.752-4.608-3.584-1.536-7.68-2.048-12.8-2.56-5.12 0-10.752 1.024-16.384 3.584-6.144 2.56-11.264 6.656-15.36 11.776-6.144 7.68-9.216 15.36-8.704 23.04 0 7.68 2.048 15.872 5.632 24.576l4.096 10.24L511.488 414.72z" fill="#FFFFFF" ></path></symbol><symbol id="icon-recommend" viewBox="0 0 1024 1024"><path d="M524.288 106.496C472.064 106.496 430.08 144.896 430.08 192.512c0 122.88 94.208 299.52 94.208 299.52s94.208-177.664 94.208-299.52c-0.512-47.104-42.496-86.016-94.208-86.016M201.728 389.12C296.448 464.896 491.52 502.272 491.52 502.272S412.672 321.024 317.952 245.248c-36.864-29.696-92.672-20.992-124.928 18.432-31.744 39.424-27.648 95.744 8.704 125.44m562.688-101.888c6.144-4.608 13.824-7.168 21.504-7.168 14.336 0 28.672 7.68 38.912 20.48 15.872 20.48 14.336 48.128-3.072 61.44-45.568 34.304-119.296 59.392-178.176 75.776 32.768-54.784 76.8-117.76 120.832-150.528m84.992 111.104c37.888-28.16 43.008-84.48 11.776-125.44-18.944-25.088-47.616-38.4-75.264-38.4-17.408 0-34.816 5.12-49.152 16.384-97.792 73.728-181.76 253.44-181.76 253.44S752.64 471.04 849.408 398.336m21.504 117.248c-117.248-27.136-307.2 22.528-307.2 22.528s149.504 128 265.728 155.136c45.568 10.752 91.648-20.48 103.424-69.632 10.752-49.152-16.384-97.28-61.952-108.032m-333.312 41.984s-5.632 202.24 48.64 312.32c20.992 43.008 76.288 59.392 123.904 36.352 47.104-23.04 67.584-76.288 46.592-119.296-55.296-110.592-219.136-229.376-219.136-229.376m-245.76 228.864c-20.48 43.008 0.512 96.256 47.616 118.784 47.104 22.528 101.888 5.632 123.392-37.376 53.76-111.104 46.08-312.32 46.08-312.32s-163.84 120.832-217.088 230.912M174.08 510.464c-47.616 10.752-76.8 60.928-65.024 112.64 11.776 51.2 59.904 83.968 108.032 73.728 122.88-28.16 278.528-160.768 278.528-160.768s-199.168-53.76-321.536-25.6" fill="#FF6A00" ></path></symbol><symbol id="icon-date" viewBox="0 0 1024 1024"><path d="M521.9 92c132.957 0 251.507 61.844 328.48 158.462l2.32 2.938 56.4-44.1c5.137-4.05 12.715-0.488 12.993 5.963l0.007 0.237-0.8 180.9c0 5.016-4.74 8.775-9.654 7.755l-0.246-0.055-175.6-43c-6.417-1.58-8.253-9.786-3.2-13.94l0.2-0.16 60.2-47c-8.6-11-17.9-21.5-27.8-31.4-31.6-31.7-68.4-56.5-109.3-73.8-42.3-17.9-87.3-27-133.8-27-46.4 0-91.5 9.1-133.8 27-40.9 17.4-77.7 42.2-109.3 73.8-31.6 31.6-56.4 68.4-73.7 109.4-17.9 42.4-27 87.4-27 133.9s9.1 91.5 27 133.9c17.3 41 42.1 77.8 73.7 109.4 31.6 31.7 68.4 56.5 109.3 73.8 42.3 17.9 87.3 27 133.8 27 46.4 0 91.5-9.1 133.8-27 40.9-17.4 77.7-42.2 109.3-73.8 31.6-31.6 56.4-68.4 73.7-109.4 2.1-4.9 4.1-9.9 5.9-14.9 0.108-0.296 0.232-0.581 0.37-0.856C849.385 613.353 864.5 601 882.5 601c21.263 0 38.5 17.237 38.5 38.5a38.32 38.32 0 0 1-6.188 20.94C854.787 819.158 701.492 932 521.9 932 289.8 932 101.7 743.7 102 511.5 102.3 279.5 290 92 521.9 92zM514 280c17.673 0 32 14.327 32 32v225.126l126.248 88.4c14.477 10.137 17.996 30.09 7.859 44.567-10.137 14.477-30.09 17.996-44.568 7.859l-127.787-89.478a32.114 32.114 0 0 1-5.258-4.605C490.506 579.249 482 567.618 482 554V312c0-17.673 14.327-32 32-32z" ></path></symbol><symbol id="icon-hot" viewBox="0 0 1024 1024"><path d="M236.8512 392.0384s-34.304 179.9168 93.1328 274.9952c62.7712-112.4352 164.7104-137.5232 164.7104-137.5232s60.1088 183.1936 162.0992 208.7424c88.8832-39.8336 198.656-137.0112 218.2656-212.6336 14.1824 107.52 71.936 237.9264-232.6528 397.5168-86.1184-70.0416-166.0416-185.7536-172.544-228.7616-13.5168 116.5824-9.1648 207.7184 31.3856 248.3712-87.6032 14.4896-276.7872-65.3312-332.544-221.4912s68.1472-329.216 68.1472-329.216z" fill="#ffa115" ></path><path d="M791.04 327.7824a30.68928 30.68928 0 0 0-23.1424-10.5472h-0.1024c-8.9088 0-17.3568 3.9424-23.1936 10.7008l-5.4272 6.2976c-11.3152 13.2096-20.7872 24.2176-29.5424 33.8944 4.0448-24.7296 4.7616-51.9168-1.024-80.9984-16.64-83.5584-80.7936-159.7952-196.1472-233.0624-8.0384-5.12-18.0224-6.1952-26.9312-2.9184-8.96 3.2256-15.872 10.4448-18.7904 19.5584-0.3584 1.024-36.6592 111.616-159.1296 214.4768-140.5952 118.1184-201.216 197.4784-188.672 355.3792 13.056 164.0448 158.5664 332.8512 379.6992 332.8512h2.7648c10.7008-0.0512 20.6336-5.7344 26.1632-14.9504s5.8368-20.6336 0.8192-30.1056c-27.4432-52.1728-39.936-88.0128-41.8304-125.5936 33.8432 61.184 79.9744 120.32 143.4112 148.3776 6.7584 3.0208 14.3872 3.4304 21.4528 1.28 40.1408-12.3392 212.2752-97.024 258.048-257.536 32.9728-115.5072-6.8608-239.0528-118.4256-367.104z m59.3408 350.3104c-34.9184 122.4192-162.2016 193.1776-206.336 211.6608-54.3232-29.2864-100.9152-95.5392-145.7152-206.848a30.67392 30.67392 0 0 0-30.8224-19.1488 30.6688 30.6688 0 0 0-27.5456 23.6544c-20.5824 88.064-22.8352 141.9776 10.9568 221.44-158.5664-21.6064-260.8128-148.992-270.6944-273.1008-10.3424-129.8944 34.7648-192.4096 166.912-303.4624 92.5696-77.824 140.9024-159.9488 162.8672-206.08 188.6208 132.4544 143.9744 238.1312 113.9712 309.1968-2.2016 5.1712-4.2496 10.0864-6.144 14.7456a30.76096 30.76096 0 0 0 8.96 35.2256c10.3424 8.5504 25.0368 9.3184 36.3008 2.048 49.2544-32.0512 71.2704-53.9648 104.3456-91.904 79.7184 101.12 107.6224 196.0448 82.944 282.5728z" fill="#474A54" ></path><path d="M429.4144 330.496c-0.5632 0.512-57.8048 53.4016-117.1968 107.6224-65.536 59.8016-105.8304 187.2896-58.9824 274.5856a30.63296 30.63296 0 0 0 27.0848 16.1792c4.9152 0 9.8816-1.1776 14.4896-3.6352 14.9504-8.0384 20.5312-26.6752 12.544-41.6256-29.2352-54.4768-6.7584-151.7056 46.2848-200.1408C413.1328 429.1584 470.528 376.1664 471.0912 375.6032a30.78656 30.78656 0 0 0 1.7408-43.4176 30.74048 30.74048 0 0 0-43.4176-1.6896z" fill="#474A54" ></path></symbol><symbol id="icon-label" viewBox="0 0 1024 1024"><path d="M943.45 208.26L815.74 80.55a56.508 56.508 0 0 0-44.89-16.33L560.48 82.68a56.478 56.478 0 0 0-35.01 16.33L80.55 543.93c-22.07 22.07-22.07 57.84 0 79.9l319.62 319.62c22.07 22.07 57.84 22.07 79.9 0l444.92-444.92a56.503 56.503 0 0 0 16.33-35.01l18.46-210.37a56.508 56.508 0 0 0-16.33-44.89z" fill="#8C9EFF" ></path><path d="M739.76 284.24m-84 0a84 84 0 1 0 168 0 84 84 0 1 0-168 0Z" fill="#FFFFFF" ></path><path d="M440.04 792m-28 0a28 28 0 1 0 56 0 28 28 0 1 0-56 0Z" fill="#FFD600" ></path></symbol><symbol id="icon-browse" viewBox="0 0 1024 1024"><path d="M997 435.6c-28.2-36.7-65.4-81.4-107.4-122.2-54.6-53.2-110.5-95.6-166.1-126.3-71.2-39.2-142-59.1-210.7-59.1s-139.6 19.9-210.7 59.1c-55.5 30.7-111.4 73.1-166.1 126.3-42 40.8-79.3 85.5-107.5 122.1-34.8 45.3-34.8 107.8 0 153.1 28.2 36.7 65.4 81.4 107.4 122.2C190.5 764 246.5 806.4 302 837.1c71.2 39.2 142.1 59.1 210.7 59.1 68.7 0 139.6-19.9 210.8-59 55.5-30.7 111.4-73.1 166.1-126.3 42-40.8 79.3-85.6 107.4-122.2 34.8-45.3 34.8-107.8 0-153.1z m-37.3 99c-66.2 89-243.8 299-446.8 299-57.5 0-117.7-17.1-179-50.8-50.5-27.7-101.7-66.6-152.2-115.6-51.1-49.5-91-99.5-115.7-132.6-10-13.5-10-31.6 0-44.9 66.1-89 243.7-299 446.8-299 57.5 0 117.6 17.1 179 50.8 50.5 27.7 101.7 66.6 152.2 115.6 51.1 49.5 91 99.5 115.7 132.6 9.9 13.4 9.9 31.6 0 44.9z" ></path><path d="M512 321.7c-105.7 0-191.6 86-191.6 191.6 0 105.7 86 191.6 191.6 191.6s191.6-86 191.6-191.6c0-105.7-86-191.6-191.6-191.6z m0 319.2c-70.3 0-127.6-57.2-127.6-127.6S441.7 385.7 512 385.7s127.6 57.2 127.6 127.6S582.3 640.9 512 640.9z" ></path></symbol><symbol id="icon-like" viewBox="0 0 1024 1024"><path d="M598.354747 67.542626c-48.148687 0-90.130101 32.905051-98.960808 79.437576 0 0-14.312727 72.882424-21.798787 99.090101-12.308687 43.196768-55.363232 90.944646-86.522829 106.188283-23.531313 11.636364-110.99798 11.765657-116.350707 11.765656H155.707475c-32.762828 0-59.384242 26.479192-59.384243 59.384243v475.022222c0 32.762828 26.479192 59.384242 59.384243 59.384242h548.033939c88.126061 0 163.025455-64.452525 176.135758-151.647676l45.873131-305.713132c10.834747-71.809293-44.8-136.274747-117.423838-136.274747H673.254141s20.066263-66.469495 30.228687-178.669899c5.081212-56.837172-35.167677-110.99798-94.280404-117.152323-3.620202-0.54303-7.227475-0.814545-10.847677-0.814546zM333.705051 898.288485V421.533737c38.917172-2.534141 66.999596-8.016162 83.574949-16.316767 43.726869-21.669495 99.633131-81.040808 117.281616-143.088485 7.899798-27.681616 21.39798-96.155152 23.001212-104.184243 3.47798-17.92 20.596364-31.159596 40.649697-31.159596 1.603232 0 3.206465 0.129293 4.822627 0.271516 28.211717 2.947879 43.326061 29.698586 41.32202 52.686868-9.360808 103.912727-27.823838 166.503434-28.082425 166.904243l-23.130505 76.489697h215.182223c17.519192 0 33.564444 7.356768 45.071515 20.596363 11.507071 13.239596 16.316768 30.228687 13.640404 47.618586L821.294545 797.052121c-8.830707 58.569697-58.181818 101.094141-117.423838 101.094142h-370.165656v0.142222z m-177.997576 0v-475.022222h118.626262v475.022222H155.707475z m0 0" ></path></symbol></svg>',i=(i=document.getElementsByTagName("script"))[i.length-1].getAttribute("data-injectcss"),d=function(l,a){a.parentNode.insertBefore(l,a)};if(i&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(l){console&&console.log(l)}}function z(){p||(p=!0,t())}function M(){try{c.documentElement.doScroll("left")}catch(l){return void setTimeout(M,50)}z()}a=function(){var l,a;(a=document.createElement("div")).innerHTML=F,F=null,(l=a.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",a=l,(l=document.body).firstChild?d(a,l.firstChild):l.appendChild(a))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),a()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(t=a,c=l.document,p=!1,M(),c.onreadystatechange=function(){"complete"==c.readyState&&(c.onreadystatechange=null,z())})}(window);
...\ No newline at end of file ...\ No newline at end of file
1 +import axios from 'axios';
2 +import qs from 'qs';
3 +import { Message } from 'element-ui';
4 +
5 +axios.defaults.withCredentials = true;
6 +
7 +// 发送时
8 +axios.interceptors.request.use(
9 + (config) => config,
10 + (err) => Promise.reject(err)
11 +);
12 +
13 +// 响应时
14 +axios.interceptors.response.use(
15 + (response) => response,
16 + (err) => Promise.resolve(err.response)
17 +);
18 +
19 +// 检查状态码
20 +function checkStatus(res) {
21 + // console.log("log status =>", res);
22 + if (res.status === 200 || res.status === 304) {
23 + return res.data;
24 + }
25 + return {
26 + code: 0,
27 + msg: res.data.msg || res.statusText,
28 + data: res.statusText,
29 + };
30 +}
31 +
32 +// 检查CODE值
33 +function checkCode(res) {
34 + // console.log("log code =>", res);
35 + if (res.code === 0) {
36 + Message({
37 + message: res.msg,
38 + type: 'error',
39 + duration: 2 * 1000,
40 + });
41 + throw new Error(res.msg);
42 + }
43 + return res;
44 +}
45 +
46 +const prefix = '/client_api';
47 +export default {
48 + get(url, params) {
49 + if (!url) return;
50 + return axios({
51 + method: 'get',
52 + url: prefix + url,
53 + params,
54 + timeout: 30000,
55 + })
56 + .then(checkStatus)
57 + .then(checkCode);
58 + },
59 + post(url, data) {
60 + if (!url) return;
61 + return axios({
62 + method: 'post',
63 + url: prefix + url,
64 + data: qs.stringify(data),
65 + timeout: 30000,
66 + })
67 + .then(checkStatus)
68 + .then(checkCode);
69 + },
70 +};
1 +<template>
2 + <div class="detail-content" v-loading="loading">
3 + <div class="detail-body">
4 + <div class="detail-title">{{ blogInfo.title }}</div>
5 + <div class="detail-func">
6 + <div class="func-icon">
7 + <Icon name="icon-date02"></Icon>
8 + <div class="box-text">
9 + {{ blogInfo.releaseTime | formatTime("yyyy-MM-dd") }}
10 + </div>
11 + </div>
12 + <div class="func-icon">
13 + <Icon name="icon-browse02"></Icon>
14 + <div class="box-text">{{ blogInfo.pv | formatNumber() }}</div>
15 + </div>
16 + <div class="func-icon" v-if="blogInfo.auth">
17 + <Icon name="icon-laborer"></Icon>
18 + <div class="box-text">
19 + {{ blogInfo.auth }}
20 + </div>
21 + </div>
22 + </div>
23 + <div class="detail-main fmt" v-html="blogHtml"></div>
24 + <div class="detail-label">
25 + 标签:
26 + <div
27 + class="box-text label-text"
28 + :style="{ backgroundColor: getLabelColor(label) }"
29 + v-for="label in blogInfo.type"
30 + @click="$router.push(`/label/${label}`)"
31 + :key="label"
32 + >
33 + {{ label }}
34 + </div>
35 + </div>
36 + <div class="detail-page" v-if="count > 2">
37 + <div class="page-common page-pre" @click="goto(preInfo._id)">
38 + 上一篇&nbsp;&nbsp;&nbsp;&nbsp;<span> {{ preInfo.title }}</span>
39 + </div>
40 + <div class="page-common page-next" @click="goto(nextInfo._id)">
41 + <span>{{ nextInfo.title }}</span
42 + >&nbsp;&nbsp;&nbsp;&nbsp;下一篇
43 + </div>
44 + </div>
45 + </div>
46 + </div>
47 +</template>
48 +
49 +<script>
50 +import { apiGetBlogList, apiUpdatePV } from "api/blog";
51 +import label from "src/mixins/label";
52 +export default {
53 + name: "detailContent",
54 + mixins: [label],
55 + components: {},
56 + props: {},
57 + computed: {},
58 + data() {
59 + return {
60 + loading: false,
61 + blogHtml: "",
62 + id: "",
63 + blogInfo: {},
64 + preInfo: {},
65 + nextInfo: {},
66 + query: {},
67 + pageindex: 1,
68 + pagesize: 8,
69 + currentIndex: 0,
70 + count: 0,
71 + };
72 + },
73 + watch: {
74 + $route: {
75 + handler(to, from) {
76 + this.id = to.params.id;
77 + this.query = to.query;
78 + this.updatePV();
79 + this.getBlogList();
80 + },
81 + deep: true,
82 + immediate: true,
83 + },
84 + },
85 + created() {},
86 + mounted() {},
87 + beforeDestroy() {},
88 + methods: {
89 + goto(id) {
90 + this.$router.push({ path: `/article/detail/${id}`, query: this.query });
91 + },
92 + getBlogList() {
93 + this.loading = true;
94 + return apiGetBlogList(this.query)
95 + .then((res) => {
96 + let { list } = res.data;
97 + this.count = list.length;
98 + this.blogInfo = list.filter((item, index) => {
99 + if (item._id === this.id) {
100 + this.currentIndex = index;
101 + return item;
102 + }
103 + })[0];
104 + this.blogHtml = this.blogInfo.html.replace(
105 + /<a /gi,
106 + `<a target='_blank'`
107 + );
108 + let preIndex = !this.currentIndex
109 + ? list.length - 1
110 + : this.currentIndex - 1;
111 + let nextIndex =
112 + this.currentIndex === list.length - 1 ? 0 : this.currentIndex + 1;
113 + this.preInfo = list[preIndex];
114 + this.nextInfo = list[nextIndex];
115 + })
116 + .catch((err) => {
117 + console.log(err);
118 + })
119 + .finally(() => {
120 + this.loading = false;
121 + });
122 + },
123 + updatePV() {
124 + return apiUpdatePV({ _id: this.id })
125 + .then((res) => {})
126 + .catch((err) => {
127 + console.log(err);
128 + })
129 + .finally(() => {});
130 + },
131 + },
132 +};
133 +</script>
134 +
135 +<style lang="less" scoped>
136 +.detail-content {
137 + width: 70%;
138 + background-color: #fff;
139 + margin-top: 20px;
140 + padding: 24px;
141 + .detail-body {
142 + .detail-title {
143 + display: block;
144 + font-size: 24px;
145 + font-weight: bold;
146 + text-align: center;
147 + color: rgb(51, 51, 51);
148 + }
149 + .detail-func {
150 + display: flex;
151 + justify-content: center;
152 + align-items: center;
153 + padding: 20px 0 30px;
154 + position: relative;
155 + &::after {
156 + content: "";
157 + height: 1px;
158 + width: 100%;
159 + background-color: @cuttingLineColor;
160 + position: absolute;
161 + bottom: 20px;
162 + }
163 +
164 + .func-icon {
165 + color: @assistColor;
166 + display: flex;
167 + align-items: center;
168 + margin-right: 24px;
169 + .box-text {
170 + padding-left: 6px;
171 + position: relative;
172 + top: 1px;
173 + }
174 + }
175 + }
176 + .detail-main {
177 + margin-bottom: 50px;
178 + }
179 + .detail-label {
180 + display: flex;
181 + align-items: center;
182 + margin-bottom: 24px;
183 + color: @assistColor;
184 + svg {
185 + font-size: 18px;
186 + }
187 + .box-text {
188 + padding-left: 6px;
189 + position: relative;
190 + top: 2px;
191 + }
192 + .label-text {
193 + padding: 4px 10px;
194 + color: #fff;
195 + margin-left: 8px;
196 + border-radius: 12px;
197 + font-size: 14px;
198 + top: 0;
199 + cursor: pointer;
200 + &:hover {
201 + border-radius: 0;
202 + transition: 1s ease all;
203 + }
204 + }
205 + }
206 + .detail-page {
207 + display: flex;
208 + align-items: center;
209 + padding-top: 24px;
210 + position: relative;
211 + &::before {
212 + content: "";
213 + height: 1px;
214 + width: 100%;
215 + background-color: @cuttingLineColor;
216 + position: absolute;
217 + top: 0;
218 + }
219 + .page-common {
220 + color: @assistColor;
221 + position: relative;
222 + cursor: pointer;
223 + display: flex;
224 + align-items: center;
225 + span {
226 + color: @mainColor;
227 + font-weight: bold;
228 + font-size: 20px;
229 + max-width: 220px;
230 + overflow: hidden;
231 + text-overflow: ellipsis;
232 + display: -webkit-box;
233 + -webkit-line-clamp: 1;
234 + -webkit-box-orient: vertical;
235 + }
236 + }
237 + .page-pre {
238 + padding-left: 16px;
239 + flex: 1;
240 + &::before {
241 + content: "";
242 + width: 10px;
243 + height: 10px;
244 + border-left: 1px solid @assistColor;
245 + border-bottom: 1px solid @assistColor;
246 + transform: rotate(45deg);
247 + position: absolute;
248 + top: 3px;
249 + left: 0;
250 + }
251 + }
252 + .page-next {
253 + text-align: right;
254 + padding-right: 16px;
255 + &::after {
256 + content: "";
257 + width: 10px;
258 + height: 10px;
259 + border-right: 1px solid @assistColor;
260 + border-top: 1px solid @assistColor;
261 + transform: rotate(45deg);
262 + position: absolute;
263 + top: 3px;
264 + right: 0;
265 + }
266 + }
267 + }
268 + }
269 +}
270 +</style>
1 +<template>
2 + <div class="home-wrapper">
3 + <div class="home-body">
4 + <router-view></router-view>
5 + <div class="side-wrapper">
6 + <side-article :sideClassify="BROWSE_STATUS"></side-article>
7 + <side-article
8 + :sideClassify="RECOMMEND_STATUS"
9 + :class="{ 'side-sticky': showSide && showSticky }"
10 + ></side-article>
11 + <label-classify
12 + :class="[showSide && showSticky ? 'label-sticky' : 'side-sticky']"
13 + ></label-classify>
14 + </div>
15 + </div>
16 + </div>
17 +</template>
18 +
19 +<script>
20 +import SideArticle from "components/sideArticle";
21 +import { BROWSE_STATUS, RECOMMEND_STATUS } from "src/constant/side";
22 +import DetailContent from "./components/detailContent";
23 +import LabelClassify from "components/labelClassify";
24 +export default {
25 + name: "labelComponent",
26 + components: {
27 + SideArticle,
28 + DetailContent,
29 + LabelClassify,
30 + },
31 + props: {},
32 + computed: {},
33 + data() {
34 + return {
35 + BROWSE_STATUS,
36 + RECOMMEND_STATUS,
37 + scrollTop: 0,
38 + showSticky: false,
39 + showSide: true,
40 + };
41 + },
42 + watch: {},
43 + created() { },
44 + mounted() {
45 + const clientHeight = document.documentElement.clientHeight;
46 + this.showSide = clientHeight > 840; // 840 = 665 + 170(label分类高度) + 之间间距
47 + window.addEventListener("scroll", this.handleScroll);
48 + },
49 + beforeDestroy() {
50 + window.removeEventListener("scroll", this.handleScroll);
51 + },
52 + methods: {
53 + handleScroll() {
54 + this.scrollTop =
55 + document.documentElement.scrollTop || document.body.scrollTop;
56 + this.showSticky = this.scrollTop > 665; // 665是一个side-article组件的高度
57 + },
58 + },
59 +};
60 +</script>
61 +
62 +<style lang="less" scoped>
63 +.side-sticky {
64 + position: sticky;
65 + top: 0;
66 +}
67 +.label-sticky {
68 + position: sticky;
69 + top: 665px;
70 +}
71 +</style>
1 +<template>
2 + <div class="blog-wrapper" v-loading="loading">
3 + <div class="blog-list" v-if="total > 0">
4 + <div v-for="item in blogList" :key="item._id" class="list-item">
5 + <div class="item-content">
6 + <div class="item-img">
7 + <img v-lazy="item.fileCoverImgUrl" @click="goto(item._id)" />
8 + </div>
9 + <div class="content-box">
10 + <div class="content-title" @click="goto(item._id)">
11 + {{ item.title }}
12 + </div>
13 + <div class="content-desc">
14 + {{ item.desc }}
15 + </div>
16 + </div>
17 + </div>
18 + <div class="item-footer">
19 + <div class="item-func">
20 + <div class="func-box">
21 + <Icon name="icon-date02"></Icon>
22 + <div class="box-text">
23 + {{ item.releaseTime | formatTime("yyyy-MM-dd") }}
24 + </div>
25 + </div>
26 + <div
27 + class="func-box likes"
28 + :class="{ 'icon-likes': getLikesColor(item._id) }"
29 + @click="handleLikes(item._id)"
30 + >
31 + <Icon name="icon-like02"></Icon>
32 + <div class="box-text">
33 + {{ getLikesNumber(item._id, item.likes) | formatNumber() }}
34 + </div>
35 + </div>
36 + <div class="func-box">
37 + <Icon name="icon-browse02"></Icon>
38 + <div class="box-text">{{ item.pv | formatNumber() }}</div>
39 + </div>
40 + <div class="func-box">
41 + <Icon name="icon-label01"></Icon>
42 + <div
43 + class="box-text label-text"
44 + :style="{ backgroundColor: getLabelColor(label) }"
45 + v-for="label in item.type"
46 + @click="$router.push(`/label/${label}`)"
47 + :key="label"
48 + >
49 + {{ label }}
50 + </div>
51 + </div>
52 + </div>
53 + <div class="item-read" @click="goto(item._id)">阅读全文>></div>
54 + </div>
55 + </div>
56 + </div>
57 + <NoneData v-else-if="!total"></NoneData>
58 +
59 + <Paging
60 + :page-index="pageindex"
61 + :total="total"
62 + :page-size="pagesize"
63 + @change="pageChange"
64 + ></Paging>
65 + </div>
66 +</template>
67 +<script>
68 +import { apiGetBlogList } from "api/blog";
69 +import like from "src/mixins/like";
70 +import label from "src/mixins/label";
71 +export default {
72 + mixins: [like, label],
73 + data() {
74 + return {
75 + loading: false,
76 + blogList: [],
77 + pageindex: 1,
78 + pagesize: 8,
79 + total: -1,
80 + };
81 + },
82 + computed: {},
83 + watch: {},
84 + created() {
85 + this.getBlogList();
86 + },
87 + mounted() {
88 + },
89 + methods: {
90 + goto(id) {
91 + this.$router.push({
92 + path: `/article/detail/${id}`,
93 + query: {
94 + pageindex: this.pageindex,
95 + pagesize: this.pagesize,
96 + },
97 + });
98 + },
99 + pageChange(page) {
100 + this.pageindex = page;
101 + document.documentElement.scrollTop = document.body.scrollTop = 0;
102 + this.getBlogList();
103 + },
104 + getBlogList() {
105 + let params = {
106 + pageindex: this.pageindex,
107 + pagesize: this.pagesize,
108 + };
109 + this.loading = true;
110 + return apiGetBlogList(params)
111 + .then((res) => {
112 + let { list, total } = res.data;
113 + this.blogList = list;
114 + this.total = total;
115 + })
116 + .catch((err) => {
117 + console.log(err);
118 + })
119 + .finally(() => {
120 + this.loading = false;
121 + });
122 + },
123 + },
124 +};
125 +</script>
126 +<style lang="less" scoped>
127 +.blog-wrapper {
128 + width: 70%;
129 + margin-top: 20px;
130 + .blog-list {
131 + margin-bottom: 30px;
132 +
133 + .list-item {
134 + padding: 20px;
135 + border-radius: 12px;
136 + background-color: #fff;
137 + margin-bottom: 16px;
138 + position: relative;
139 + transition: box-shadow 0.4s;
140 + box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.08);
141 + &:hover {
142 + box-shadow: 5px 15px 30px 5px rgba(0, 0, 0, 0.15);
143 + }
144 + &:hover .item-content .content-box .content-title {
145 + color: green;
146 + }
147 + &:hover img {
148 + transform: scale(1.2);
149 + }
150 + .item-content {
151 + display: flex;
152 + align-items: flex-start;
153 + .item-img {
154 + width: 240px;
155 + height: 160px;
156 + margin-right: 16px;
157 + overflow: hidden;
158 + img {
159 + width: 100%;
160 + border-radius: 6px;
161 + height: 100%;
162 + object-fit: cover;
163 + cursor: pointer;
164 + transition: all 0.4s linear;
165 + }
166 + }
167 + .content-box {
168 + flex: 1;
169 + .content-title {
170 + color: @thinColor;
171 + font-size: 24px;
172 + font-weight: bold;
173 + margin-bottom: 10px;
174 + &:hover {
175 + cursor: pointer;
176 + }
177 + .ellipsis-line-clamp();
178 + }
179 + .content-desc {
180 + color: @assistColor;
181 + line-height: 28px;
182 + .ellipsis-line-clamp(4);
183 + }
184 + }
185 + }
186 +
187 + .item-footer {
188 + display: flex;
189 + justify-content: space-between;
190 + align-items: center;
191 + margin-top: 24px;
192 + .item-func {
193 + display: flex;
194 + align-items: center;
195 + .func-box {
196 + display: flex;
197 + align-items: center;
198 + padding-right: 24px;
199 + color: @assistColor;
200 + svg {
201 + font-size: 18px;
202 + }
203 + .box-text {
204 + padding-left: 6px;
205 + position: relative;
206 + top: 2px;
207 + }
208 + .label-text {
209 + padding: 4px 10px;
210 + color: #fff;
211 + margin-left: 8px;
212 + border-radius: 12px;
213 + font-size: 14px;
214 + top: 0;
215 + cursor: pointer;
216 + &:hover {
217 + border-radius: 0;
218 + transition: 1s ease all;
219 + }
220 + }
221 + }
222 + .likes {
223 + &:hover {
224 + cursor: pointer;
225 + }
226 + }
227 + .icon-likes {
228 + color: #dfa400;
229 + }
230 + }
231 + .item-read {
232 + color: @thinHighlightColor;
233 + &:hover {
234 + cursor: pointer;
235 + }
236 + }
237 + }
238 + }
239 + }
240 +}
241 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <div class="blog-classify" v-loading="loading">
3 + <div class="list-title">
4 + <Icon name="icon-label01"></Icon>
5 + <span v-html="getTitle"></span>
6 + </div>
7 +
8 + <div class="blog-list" v-if="total > 0">
9 + <div class="list-item" v-for="item in blogList" :key="item._id">
10 + <div class="item-img">
11 + <img v-lazy="item.fileCoverImgUrl" @click="goto(item._id)" />
12 + </div>
13 + <div class="item-title" v-html="getKeywordHighlight(item.title)"></div>
14 + <div class="item-desc" v-html="getKeywordHighlight(item.desc)"></div>
15 + <div class="item-label">
16 + <div class="label-title">标签:</div>
17 + <div class="label-box">
18 + <div
19 + class="box-text label-text"
20 + :style="{ backgroundColor: getLabelColor(label) }"
21 + v-for="label in item.type"
22 + @click="$router.push(`/label/${label}`)"
23 + :key="label"
24 + >
25 + {{ label }}
26 + </div>
27 + </div>
28 + </div>
29 + <div class="item-footer">
30 + <div class="footer-text" @click="goto(item._id)">+ 文章阅读</div>
31 + <div class="footer-box">
32 + <div
33 + class="footer-icon likes"
34 + @click="handleLikes(item._id)"
35 + :class="{ 'icon-likes': getLikesColor(item._id) }"
36 + >
37 + <Icon name="icon-like02"></Icon>
38 + <div class="box-text">
39 + {{ getLikesNumber(item._id, item.likes) | formatNumber() }}
40 + </div>
41 + </div>
42 + <div class="footer-icon">
43 + <Icon name="icon-browse02"></Icon>
44 + <div class="box-text">{{ item.pv | formatNumber() }}</div>
45 + </div>
46 + </div>
47 + </div>
48 + </div>
49 + </div>
50 + <NoneData v-else-if="!total"></NoneData>
51 +
52 + <Paging
53 + :page-index="pageindex"
54 + :total="total"
55 + :page-size="pagesize"
56 + @change="pageChange"
57 + ></Paging>
58 + </div>
59 +</template>
60 +
61 +<script>
62 +import { apiGetBlogList } from "api/blog";
63 +import like from "src/mixins/like";
64 +import label from "src/mixins/label";
65 +export default {
66 + name: "blogClassify",
67 + components: {},
68 + props: {},
69 + mixins: [like, label],
70 + computed: {
71 + getTitle({ isQuery, keyword, total }) {
72 + return keyword
73 + ? `${isQuery ? "搜索关键词" : "标签分类"}
74 + “<font color="#f75353"> ${keyword} </font>” 的结果,共${total}篇`
75 + : `全部文章,共${total}篇`;
76 + },
77 + // 当选择标签分类时,不展示高亮
78 + getKeywordHighlight({ isQuery, keyword }) {
79 + return (value) =>
80 + isQuery && value.includes(keyword)
81 + ? value.replace(
82 + new RegExp(keyword, "g"),
83 + `<font color="#f75353">${keyword}</font>`
84 + )
85 + : value;
86 + },
87 + },
88 + data() {
89 + return {
90 + loading: false,
91 + blogList: [],
92 + pageindex: 1,
93 + pagesize: 6,
94 + total: -1,
95 + isQuery: "", // 用来区分是搜索框、标签搜索场景
96 + keyword: "",
97 + };
98 + },
99 + watch: {
100 + $route: {
101 + handler(to, from) {
102 + this.isQuery = to.query.search;
103 + this.keyword = to.params.keyword;
104 + this.keyword = this.keyword === "all" ? "" : this.keyword;
105 + this.getBlogList();
106 + },
107 + deep: true,
108 + immediate: true,
109 + },
110 + },
111 + created() {
112 + document.documentElement.scrollTop = document.body.scrollTop = 0;
113 + },
114 + mounted() { },
115 + beforeDestroy() { },
116 + methods: {
117 + goto(id) {
118 + this.$router.push({
119 + path: `/article/detail/${id}`,
120 + query: {
121 + keyword: this.keyword,
122 + pageindex: this.pageindex,
123 + pagesize: this.pagesize,
124 + },
125 + });
126 + },
127 + pageChange(page) {
128 + this.pageindex = page;
129 + document.documentElement.scrollTop = document.body.scrollTop = 0;
130 + this.getBlogList();
131 + },
132 + getBlogList() {
133 + let params = {
134 + keyword: this.keyword,
135 + isQuery: this.isQuery,
136 + pageindex: this.pageindex,
137 + pagesize: this.pagesize,
138 + };
139 + this.loading = true;
140 + return apiGetBlogList(params)
141 + .then((res) => {
142 + let { list, total } = res.data;
143 + this.blogList = list;
144 + this.total = total;
145 + })
146 + .catch((err) => {
147 + console.log(err);
148 + })
149 + .finally(() => {
150 + this.loading = false;
151 + });
152 + },
153 + },
154 +};
155 +</script>
156 +
157 +<style lang="less" scoped>
158 +.blog-classify {
159 + width: 70%;
160 + background-color: #fff;
161 + margin-top: 20px;
162 + padding-bottom: 30px;
163 + .list-title {
164 + color: @mainColor;
165 + border-bottom: 1px solid #e5e5e5;
166 + padding: 20px 10px;
167 + background-color: #f7f7f7;
168 + font-size: 18px;
169 + position: relative;
170 + &::after {
171 + content: " ";
172 + position: absolute;
173 + height: 2px;
174 + width: 4%;
175 + left: 0;
176 + bottom: -1px;
177 + background: @mainColor;
178 + transition: 2s ease all;
179 + }
180 + &:hover {
181 + &::after {
182 + width: 100%;
183 + }
184 + }
185 + span {
186 + margin-left: 6px;
187 + letter-spacing: 1px;
188 + }
189 + }
190 + .blog-list {
191 + display: flex;
192 + flex-wrap: wrap;
193 + padding: 20px 24px 40px;
194 + .list-item {
195 + width: 33.3%;
196 + height: 384px;
197 + padding: 20px;
198 + border-bottom: 1px solid #eee;
199 + border-left: 1px solid #eee;
200 + position: relative;
201 +
202 + transition: box-shadow 0.4s;
203 + box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.08);
204 + &:hover {
205 + box-shadow: 5px 15px 30px 5px rgba(0, 0, 0, 0.15);
206 + }
207 + &:hover img {
208 + transform: scale(1.2);
209 + }
210 + &:hover .item-footer .footer-text {
211 + color: green;
212 + }
213 + .item-img {
214 + height: 160px;
215 + overflow: hidden;
216 + cursor: pointer;
217 + img {
218 + width: 100%;
219 + height: 100%;
220 + object-fit: cover;
221 + cursor: pointer;
222 + border-radius: 4px;
223 + transition: all 0.5s ease;
224 + }
225 + }
226 + .item-title {
227 + display: block;
228 + width: 100%;
229 + color: @thinColor;
230 + line-height: 24px;
231 + margin: 14px 0 6px;
232 + font-weight: bold;
233 + overflow: hidden;
234 + text-overflow: ellipsis;
235 + white-space: nowrap;
236 + }
237 + .item-desc {
238 + color: @assistColor;
239 + line-height: 22px;
240 + font-size: 14px;
241 + .ellipsis-line-clamp(3);
242 + }
243 + .item-label {
244 + display: flex;
245 + align-items: center;
246 + position: absolute;
247 + max-width: 220px;
248 + bottom: 54px;
249 + color: @assistColor;
250 + .label-title {
251 + min-width: 48px;
252 + }
253 + .label-box {
254 + flex: 1;
255 + display: flex;
256 + overflow: hidden;
257 + text-overflow: ellipsis;
258 + white-space: nowrap;
259 + .box-text {
260 + padding-left: 6px;
261 + position: relative;
262 + top: 2px;
263 + }
264 + .label-text {
265 + padding: 4px 8px;
266 + color: #fff;
267 + margin-right: 8px;
268 + border-radius: 12px;
269 + font-size: 12px;
270 + top: 0;
271 + cursor: pointer;
272 + overflow: hidden;
273 + text-overflow: ellipsis;
274 + white-space: nowrap;
275 + &:last-child {
276 + margin-right: 0;
277 + }
278 + &:hover {
279 + border-radius: 0;
280 + transition: 1s ease all;
281 + }
282 + }
283 + }
284 + }
285 + .item-footer {
286 + display: flex;
287 + justify-content: space-between;
288 + align-items: center;
289 + position: absolute;
290 + left: 20px;
291 + bottom: 20px;
292 + width: 84%;
293 + .footer-text {
294 + color: @thinHighlightColor;
295 + cursor: pointer;
296 + }
297 + .footer-box {
298 + display: flex;
299 + align-items: center;
300 + .footer-icon {
301 + color: @assistColor;
302 + display: flex;
303 + align-items: center;
304 + margin-left: 24px;
305 + .box-text {
306 + padding-left: 6px;
307 + position: relative;
308 + top: 1px;
309 + }
310 + }
311 + .likes {
312 + cursor: pointer;
313 + }
314 + .icon-likes {
315 + color: #dfa400;
316 + }
317 + }
318 + }
319 + }
320 + }
321 +}
322 +</style>
1 +<template>
2 + <div class="intro-container">
3 + <div class="intro-box">
4 + <div class="intro-title">BLOG</div>
5 + <div class="intro-desc">
6 + 个人博客 – 个人博客
7 + </div>
8 + </div>
9 + <img src="../../../images/cloud-left.png" class="cloud-left" />
10 + <img src="../../../images/cloud-right.png" class="cloud-right" />
11 + <img src="../../../images/grass-confetti.png" class="grass-confetti" />
12 + </div>
13 +</template>
14 +
15 +<script>
16 +export default {
17 + name: "bookCover",
18 + components: {},
19 + props: {},
20 + computed: {},
21 + data() {
22 + return {};
23 + },
24 + watch: {},
25 + created() { },
26 + mounted() { },
27 + beforeDestroy() { },
28 + methods: {},
29 +};
30 +</script>
31 +
32 +<style lang="less" scoped>
33 +.intro-container {
34 + background: linear-gradient(to bottom, #c6dde4, #fefeff);
35 + position: relative;
36 + width: 100%;
37 + overflow: hidden;
38 + min-height: 240px;
39 + .intro-box {
40 + margin: 0;
41 + position: absolute;
42 + top: 50%;
43 + left: 50%;
44 + margin-right: -50%;
45 + transform: translate(-50%, -50%);
46 + text-align: center;
47 + z-index: 99;
48 + .intro-title {
49 + color: @thinColor;
50 + font-family: lato, sans-serif;
51 + font-size: 3.5em;
52 + letter-spacing: 10px;
53 + margin-top: 0;
54 + margin-bottom: 0;
55 + text-shadow: rgb(198, 221, 228) -1px -1px 1px,
56 + rgb(254, 254, 255) 1px 1px 1px;
57 + margin-bottom: 20px;
58 + }
59 + .intro-desc {
60 + color: @mainColor;
61 + font-size: 1em;
62 + font-weight: 400;
63 + padding: 0.2em 0;
64 + letter-spacing: 5px;
65 + text-transform: capitalize;
66 + margin-top: 0;
67 + margin-bottom: 0;
68 + text-shadow: rgb(198, 221, 228) -1px -1px 1px,
69 + rgb(254, 254, 255) 1px 1px 1px;
70 + }
71 + }
72 + img {
73 + position: absolute;
74 + bottom: 0;
75 + object-fit: contain;
76 + &.cloud-left {
77 + top: 0;
78 + left: 300px;
79 + }
80 + &.cloud-right {
81 + top: 0;
82 + right: 300px;
83 + }
84 + }
85 +}
86 +</style>
1 +<template>
2 + <div class="home-wrapper">
3 + <intro></intro>
4 + <div class="home-body">
5 + <blog></blog>
6 + <div class="side-wrapper">
7 + <myself></myself>
8 + <search :isCache="true"></search>
9 + <label-classify></label-classify>
10 + <side-article :sideClassify="BROWSE_STATUS"></side-article>
11 + <side-article :sideClassify="RECOMMEND_STATUS"></side-article>
12 + </div>
13 + </div>
14 + </div>
15 +</template>
16 +<script>
17 +import Intro from "./components/intro";
18 +import Blog from "./components/blog";
19 +import Myself from "components/myself";
20 +import Search from "components/search";
21 +import LabelClassify from "components/labelClassify";
22 +import SideArticle from "components/sideArticle";
23 +import { BROWSE_STATUS, RECOMMEND_STATUS } from "src/constant/side";
24 +export default {
25 + name: "indexComponent",
26 + components: {
27 + Intro,
28 + Blog,
29 + Myself,
30 + Search,
31 + LabelClassify,
32 + SideArticle,
33 + },
34 + props: {},
35 + computed: {},
36 + data() {
37 + return {
38 + BROWSE_STATUS,
39 + RECOMMEND_STATUS,
40 + };
41 + },
42 + watch: {},
43 + created() { },
44 + mounted() { },
45 + beforeDestroy() { },
46 + methods: {},
47 +};
48 +</script>
49 +<style lang="less" scoped>
50 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <div class="home-wrapper">
3 + <div class="home-body">
4 + <router-view> </router-view>
5 + <div class="side-wrapper">
6 + <search></search>
7 + <label-classify></label-classify>
8 + <side-article :sideClassify="BROWSE_STATUS"></side-article>
9 + </div>
10 + </div>
11 + </div>
12 +</template>
13 +
14 +<script>
15 +import Search from "components/search";
16 +import LabelClassify from "components/labelClassify";
17 +import SideArticle from "components/sideArticle";
18 +import { BROWSE_STATUS } from "src/constant/side";
19 +export default {
20 + name: "labelComponent",
21 + components: {
22 + Search,
23 + LabelClassify,
24 + SideArticle,
25 + },
26 + props: {},
27 + computed: {},
28 + data() {
29 + return {
30 + BROWSE_STATUS,
31 + };
32 + },
33 + watch: {},
34 + created() {},
35 + mounted() {},
36 + beforeDestroy() {},
37 + methods: {},
38 +};
39 +</script>
40 +
41 +<style lang="less" scoped>
42 +</style>
1 +<template>
2 + <div class="comment-editor" ref="container">
3 + <div class="input-wrapper">
4 + <input-box
5 + ref="inputBox"
6 + @keyup.enter.ctrl.exact.native="handlerSubmit"
7 + v-model="inputContent"
8 + placeholder="说点什么吧......"
9 + class="input-box"
10 + >
11 + </input-box>
12 + </div>
13 + <div class="footer-action">
14 + <emoji-picker
15 + trigger-pick="click"
16 + @activated="$refs.inputBox.focus()"
17 + @selected="handlerEmojiSelected"
18 + ></emoji-picker>
19 + <input
20 + type="text"
21 + placeholder="你的昵称"
22 + v-model="nickname"
23 + maxlength="10"
24 + />
25 + <span class="submit-tiptext">Ctrl + Enter</span>
26 + <div
27 + @click="handlerSubmit"
28 + class="submit-button"
29 + :disabled="!inputContent"
30 + >
31 + 提交
32 + </div>
33 + </div>
34 + </div>
35 +</template>
36 +<script>
37 +import InputBox from "./inputBox";
38 +import EmojiPicker from "./emojiPicker";
39 +import { colorList } from "src/constant/headerColor";
40 +export default {
41 + name: "comment-editor",
42 + components: { InputBox, EmojiPicker },
43 + data() {
44 + return {
45 + inputContent: "",
46 + nickname: "",
47 + };
48 + },
49 + props: {},
50 + computed: {},
51 + destroyed() {},
52 + mounted() {},
53 + methods: {
54 + handlerSubmit() {
55 + let params = {
56 + content: this.inputContent,
57 + nickname: this.nickname,
58 + createTime: new Date().getTime() + "",
59 + headerColor: colorList[Math.floor(Math.random() * 7)],
60 + };
61 + this.$emit("submit", params);
62 + },
63 + handlerEmojiSelected(e) {
64 + this.$refs.inputBox.focus();
65 + const clonedNode = e.target.cloneNode(true);
66 + clonedNode.style.verticalAlign = "text-top";
67 + document.execCommand("insertHTML", false, clonedNode.outerHTML);
68 + },
69 + handleReset() {
70 + this.$refs.inputBox.reset();
71 + this.inputContent = "";
72 + this.nickname = "";
73 + },
74 + },
75 +};
76 +</script>
77 +
78 +<style scoped lang="less">
79 +.comment-editor {
80 + width: 100%;
81 + padding: 24px 20px;
82 + .input-wrapper {
83 + &.inline {
84 + display: flex;
85 + .input-box {
86 + flex: 1;
87 + margin-right: 14px;
88 + }
89 + }
90 + }
91 + .footer-action {
92 + margin-top: 10px;
93 + display: flex;
94 + align-items: center;
95 + input {
96 + margin-left: auto;
97 + margin-right: 24px;
98 + height: 32px;
99 + border: none;
100 + border: 1px solid @borderBoldColor;
101 + border-radius: 20px;
102 + padding-left: 12px;
103 + outline: none;
104 + &::placeholder {
105 + color: @borderBoldColor;
106 + }
107 + }
108 + .submit-tiptext {
109 + margin-right: 4px;
110 + font-size: 14px;
111 + color: @borderBoldColor;
112 + }
113 + .submit-button {
114 + align-self: flex-end;
115 + transition: all 0.2s;
116 + background: #409eff;
117 + border-radius: 4px;
118 + display: inline-block;
119 + cursor: pointer;
120 + padding: 6px 10px;
121 + color: white;
122 + user-select: none;
123 + &.button-enter,
124 + &.button-leave-to {
125 + // zoom:0;
126 + margin-left: -40px;
127 + transform: scale(0, 0);
128 + }
129 + &[disabled] {
130 + cursor: not-allowed;
131 + background: #66b1ff;
132 + }
133 + &:hover {
134 + background: #66b1ff;
135 + }
136 + &:not([disabled]):active {
137 + background: #3a8ee6;
138 + }
139 + }
140 + }
141 +}
142 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <div class="comment-main">
3 + <div class="side-title">
4 + <Icon name="icon-comment"></Icon>
5 + <span>{{ total }}</span
6 + >条评论, <span>{{ replyCount }}</span
7 + >条回复
8 + </div>
9 + <div class="comment-item" v-for="item in commentList" :key="item._id">
10 + <div class="comment-part">
11 + <div class="item-img">
12 + <Icon name="icon-user03" :style="{ color: item.headerColor }"></Icon>
13 + </div>
14 + <div class="item-box">
15 + <div class="box-title">
16 + {{ item.nickname }}
17 + <span>{{ item.createTime | formatTime("yyyy-MM-dd hh:mm") }}</span>
18 + </div>
19 + <div class="box-content" v-html="item.content"></div>
20 + <div class="item-icon">
21 + <div
22 + class="box-icon"
23 + :class="{ 'icon-likes': getLikesColor(item._id) }"
24 + @click="handleLikes(item._id)"
25 + >
26 + <Icon name="icon-like02"></Icon>
27 + <span
28 + >{{ getLikesNumber(item._id, item.likes) | formatNumber() }}
29 + </span>
30 + </div>
31 + <div class="box-icon" @click="handleCilckReply(item)">
32 + <Icon name="icon-reply02"></Icon>
33 + <span>{{ getReplyBox(item._id) ? "取消" : "回复" }}</span>
34 + </div>
35 + </div>
36 +
37 + <comment-editor
38 + v-show="getReplyBox(item._id)"
39 + ref="editor"
40 + @submit="handleReply"
41 + ></comment-editor>
42 + </div>
43 + </div>
44 + <template v-if="item.replyList && item.replyList.length">
45 + <reply-item
46 + v-for="(reply, index) in item.replyList"
47 + :key="reply._id + index"
48 + :byReplyUser="reply.byReplyUser"
49 + :replyContent="reply.replyContent"
50 + :replyTime="reply.replyTime"
51 + :replyHeaderColor="reply.replyHeaderColor"
52 + :replyUser="reply.replyUser"
53 + ></reply-item>
54 + </template>
55 + </div>
56 + </div>
57 +</template>
58 +
59 +<script>
60 +import { apiUpdateLikes, apiUpdateReplys } from "api/message";
61 +import CommentEditor from "./commentEditor";
62 +import ReplyItem from "./replyItem";
63 +import { colorList } from "src/constant/headerColor";
64 +export default {
65 + name: "commentItem",
66 + components: { CommentEditor, ReplyItem },
67 + props: {
68 + commentList: {
69 + type: Array,
70 + default: () => [],
71 + },
72 + total: {
73 + type: Number,
74 + default: 0,
75 + },
76 + replyCount: {
77 + type: Number,
78 + default: 0,
79 + },
80 + },
81 + computed: {
82 + getLikesNumber({ likeList }) {
83 + return (id, likes) => (likeList.includes(id) ? likes + 1 : likes);
84 + },
85 + getLikesColor({ likeList }) {
86 + return (id) => likeList.includes(id);
87 + },
88 + getReplyBox({ currentId, isReply }) {
89 + return (id) => currentId === id && isReply;
90 + },
91 + },
92 + data() {
93 + return {
94 + currentId: "", // 当前id
95 + byReplyUser: "", // 当前被回复用户
96 + isLike: false, // 是否点赞
97 + isReply: false, // 是否回复
98 + likeList: [],
99 + };
100 + },
101 + watch: {},
102 + created() {},
103 + mounted() {},
104 + beforeDestroy() {},
105 + methods: {
106 + // 点赞
107 + handleLikes(id) {
108 + if (this.likeList.includes(id)) {
109 + this.isLike = true;
110 + this.likeList.splice(this.likeList.indexOf(id), 1);
111 + } else {
112 + this.isLike = false;
113 + this.likeList.push(id);
114 + }
115 + this.currentId = id;
116 + return apiUpdateLikes({ _id: id, isLike: this.isLike })
117 + .then((res) => {})
118 + .catch((err) => {
119 + console.log(err);
120 + })
121 + .finally(() => {});
122 + },
123 + handleCilckReply(item) {
124 + this.currentId = item._id;
125 + this.byReplyUser = item.nickname;
126 + this.isReply = !this.isReply;
127 + },
128 + handleReply(reply) {
129 + let params = {
130 + _id: this.currentId,
131 + replyTime: new Date().getTime() + "",
132 + replyContent: reply.content,
133 + replyUser: reply.nickname,
134 + byReplyUser: this.byReplyUser,
135 + byReplyUser: this.byReplyUser,
136 + replyHeaderColor: colorList[Math.floor(Math.random() * 7)],
137 + };
138 + return apiUpdateReplys(params)
139 + .then((res) => {
140 + this.isReply = false;
141 + this.likeList = [];
142 + this.$emit("success");
143 + })
144 + .catch((err) => {
145 + console.log(err);
146 + })
147 + .finally(() => {});
148 + },
149 + },
150 +};
151 +</script>
152 +
153 +<style lang="less" scoped>
154 +.comment-main {
155 + padding: 20px;
156 + width: 70%;
157 + margin: 0 auto;
158 + // border: 1px solid @borderColor;
159 + // border-radius: 6px;
160 + .side-title {
161 + font-size: 14px;
162 + margin-bottom: 30px;
163 + svg {
164 + font-size: 20px;
165 + }
166 + &::after {
167 + background: @warningColor;
168 + width: 19.5%;
169 + }
170 + &:hover {
171 + &::after {
172 + width: 100%;
173 + }
174 + }
175 + span {
176 + color: @warningColor;
177 + margin-right: 4px;
178 + font-weight: bold;
179 + }
180 + }
181 + .comment-item {
182 + position: relative;
183 + padding-bottom: 10px;
184 + &::after {
185 + content: "";
186 + position: absolute;
187 + bottom: 0;
188 + left: 0;
189 + width: 100%;
190 + height: 1px;
191 + background-color: @borderColor;
192 + }
193 + .comment-part {
194 + display: flex;
195 + align-items: flex-start;
196 + padding: 20px 0 10px;
197 +
198 + .item-img {
199 + padding-right: 24px;
200 + svg {
201 + font-size: 32px;
202 + }
203 + img {
204 + height: 42px;
205 + width: 42px;
206 + object-fit: cover;
207 + border-radius: 50%;
208 + }
209 + }
210 + .item-box {
211 + flex: 1;
212 + .box-title {
213 + color: @mainColor;
214 + font-size: 14px;
215 + font-weight: bold;
216 + span {
217 + font-size: 12px;
218 + color: @borderBoldColor;
219 + font-weight: 500;
220 + }
221 + }
222 + .box-content {
223 + font-size: 14px;
224 + color: @thinColor;
225 + line-height: 24px;
226 + margin-top: 10px;
227 + }
228 + .item-icon {
229 + display: flex;
230 + align-items: center;
231 + justify-content: flex-end;
232 + cursor: pointer;
233 + .box-icon {
234 + display: flex;
235 + justify-content: flex-end;
236 + color: @assistColor;
237 + padding-left: 24px;
238 + svg {
239 + margin-right: 6px;
240 + font-size: 18px;
241 + }
242 + span {
243 + position: relative;
244 + top: 1px;
245 + }
246 + }
247 + .icon-likes {
248 + color: #dfa400;
249 + }
250 + }
251 + }
252 + }
253 + }
254 +}
255 +</style>
1 +<template>
2 + <div
3 + @keyup.esc="hidePicker"
4 + ref="container"
5 + class="emoji-wrapper"
6 + hidefocus="true"
7 + v-on="handleMouse()"
8 + >
9 + <span class="emoji-button" @click.stop="togglePickerVisibility">
10 + <img
11 + :class="{ inactive: !pickerVisible }"
12 + class="button-icon"
13 + src="../../../images/emoji/icon.svg"
14 + width="20"
15 + height="20"
16 + alt
17 + />
18 + <span v-if="buttonTextVisible" class="button-text">表情</span>
19 + </span>
20 + <ul :class="['emoji-picker', pickerPosition]" v-if="pickerVisible">
21 + <li v-for="(url, key) in files" :key="key" class="emoji-picker-item">
22 + <img
23 + class="emoji-icon"
24 + @click="handlerSelect"
25 + width="20"
26 + height="20"
27 + :src="url"
28 + alt
29 + />
30 + </li>
31 + </ul>
32 + </div>
33 +</template>
34 +<script>
35 +const requireEmoji = require.context("../../../images/emoji");
36 +let files = requireEmoji.keys();
37 +export default {
38 + data() {
39 + return {
40 + pickerVisible: false,
41 + files: files.map((url) =>
42 + require(`../../../images/emoji/${url.slice(2)}`)
43 + ),
44 + };
45 + },
46 + props: {
47 + buttonTextVisible: {
48 + type: Boolean,
49 + default: true,
50 + },
51 + triggerPick: {
52 + tyep: String,
53 + default: "hover",
54 + validator(value) {
55 + return ["hover", "click"].includes(value);
56 + },
57 + },
58 + pickerPosition: {
59 + type: String,
60 + default: "right",
61 + validator(value) {
62 + return ["left", "middle", "right"].includes(value);
63 + },
64 + },
65 + },
66 + watch: {
67 + pickerVisible(newValue) {
68 + newValue ? this.$emit("activated") : this.$emit("inactivated");
69 + },
70 + },
71 + mounted() {
72 + const docHandleClick = (this.docHandleClick = (e) => {
73 + if (!this.$refs.container.contains(e.target)) {
74 + this.hidePicker();
75 + }
76 + });
77 + const handleKeyup = (this.handleKeyup = (e) => {
78 + if (e.key === "Escape") {
79 + this.hidePicker();
80 + }
81 + });
82 + document.addEventListener("click", docHandleClick);
83 + document.addEventListener("keyup", handleKeyup);
84 + },
85 + destroyed() {
86 + document.removeEventListener("click", this.docHandleClick);
87 + document.removeEventListener("click", this.handleKeyup);
88 + },
89 + methods: {
90 + handlerSelect(e) {
91 + this.$emit("selected", e);
92 + },
93 + hidePicker() {
94 + this.pickerVisible = false;
95 + },
96 + togglePickerVisibility() {
97 + if (this.triggerPick === "click") {
98 + this.pickerVisible = !this.pickerVisible;
99 + }
100 + },
101 + handleMouse() {
102 + const mouseenter = function () {
103 + this.pickerVisible = true;
104 + }.bind(this);
105 + const mouseleave = function () {
106 + this.pickerVisible = false;
107 + }.bind(this);
108 + if (this.triggerPick === "hover") {
109 + return {
110 + mouseenter,
111 + mouseleave,
112 + };
113 + } else {
114 + return {};
115 + }
116 + },
117 + },
118 +};
119 +</script>
120 +
121 +
122 +<style scoped lang="less">
123 +.emoji-picker {
124 + display: flex;
125 + flex-wrap: wrap;
126 + width: 300px;
127 +}
128 +.emoji-picker-item {
129 + margin: 4px;
130 + cursor: pointer;
131 + img {
132 + user-select: none;
133 + }
134 +}
135 +.emoji-wrapper {
136 + position: relative;
137 + display: inline-block;
138 + z-index: 1000;
139 +}
140 +.emoji-button {
141 + font-size: 14px;
142 + cursor: pointer;
143 + user-select: none;
144 + display: flex;
145 + justify-content: center;
146 + align-items: center;
147 + .button-icon {
148 + margin-right: 6px;
149 + &.inactive {
150 + filter: grayscale(100%);
151 + }
152 + }
153 + &:hover {
154 + color: #027fff;
155 + }
156 + .button-text {
157 + vertical-align: super;
158 + }
159 +}
160 +.emoji-picker {
161 + background: #fff;
162 + box-shadow: @borderBoldColor 1px 1px 7px;
163 + border-radius: 5px;
164 + padding: 10px;
165 + display: flex;
166 + position: absolute;
167 + &.left {
168 + right: 0;
169 + }
170 + &.middle {
171 + left: 50%;
172 + transform: translateX(-50%);
173 + }
174 +}
175 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <div type="text" class="input-box-wrapper">
3 + <div
4 + class="content textarea"
5 + ref="richText"
6 + v-on="listeners"
7 + v-bind="$attrs"
8 + :contenteditable="true"
9 + ></div>
10 + <div class="append-wrapper">
11 + <slot name="append"></slot>
12 + </div>
13 + </div>
14 +</template>
15 +<script>
16 +export default {
17 + name: "input-box",
18 + props: {},
19 + data() {
20 + return {};
21 + },
22 + computed: {
23 + listeners() {
24 + return Object.assign({}, this.$listeners, {
25 + input: function (e) {
26 + const inputContent = e.target.innerHTML;
27 + this.$emit("input", inputContent);
28 + }.bind(this),
29 + });
30 + },
31 + },
32 + mounted() {},
33 + methods: {
34 + focus() {
35 + this.$refs.richText.focus();
36 + },
37 + reset() {
38 + this.$refs.richText.innerHTML = "";
39 + },
40 + },
41 +};
42 +</script>
43 +
44 +<style scoped lang="less">
45 +.input-box-wrapper {
46 + position: relative;
47 +}
48 +.content {
49 + max-height: 200px;
50 + overflow: auto;
51 + &::-webkit-scrollbar {
52 + width: 0;
53 + }
54 + &.textarea {
55 + min-height: 100px;
56 + }
57 + &.text {
58 + min-height: 80px;
59 + }
60 + &:empty:before {
61 + content: attr(placeholder);
62 + color: @borderBoldColor;
63 + position: absolute;
64 + left: 10px;
65 + top: 7px;
66 + }
67 + &.focused {
68 + border: #66b1ff 1px solid;
69 + cursor: text;
70 + }
71 + &:focus {
72 + outline: none;
73 + }
74 + border: 1px solid @borderBoldColor;
75 + border-radius: 3px;
76 + padding: 7px 10px;
77 + padding-right: 30px;
78 + position: relative;
79 +}
80 +.append-wrapper {
81 + position: absolute;
82 + right: 1px;
83 + top: 1px;
84 + bottom: 1px;
85 + display: flex;
86 + cursor: pointer;
87 + align-items: center;
88 +}
89 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <div class="reply-item">
3 + <Icon
4 + name="icon-user02"
5 + :style="{ color: replyHeaderColor }"
6 + class="item-img"
7 + ></Icon>
8 + <div class="reply-box">
9 + <div class="box-content">
10 + <div class="reply-user">
11 + <span class="reply-name">{{ replyUser }}</span>
12 + <span class="by-reply-name">@ {{ byReplyUser }}:</span>
13 + </div>
14 + <div v-html="replyContent" class="reply-content"></div>
15 + </div>
16 + <div class="reply-date">
17 + {{ replyTime | formatTime("yyyy-MM-dd hh:mm:ss") }}
18 + </div>
19 + </div>
20 + </div>
21 +</template>
22 +
23 +<script>
24 +export default {
25 + name: "replyItem",
26 + components: {},
27 + props: {
28 + byReplyUser: {
29 + type: String,
30 + default: "",
31 + },
32 + replyContent: {
33 + type: String,
34 + default: "",
35 + },
36 + replyHeaderColor: {
37 + type: String,
38 + default: "",
39 + },
40 + replyTime: {
41 + type: String,
42 + default: "",
43 + },
44 + replyUser: {
45 + type: String,
46 + default: "",
47 + },
48 + },
49 + computed: {},
50 + data() {
51 + return {};
52 + },
53 + watch: {},
54 + created() {},
55 + mounted() {},
56 + beforeDestroy() {},
57 + methods: {},
58 +};
59 +</script>
60 +
61 +<style lang="less" scoped>
62 +.reply-item {
63 + background-color: @thinBgColor;
64 + padding: 10px 20px;
65 + margin-left: 42px;
66 + margin-bottom: 10px;
67 + border-radius: 10px;
68 + display: flex;
69 + align-items: flex-start;
70 + .item-img {
71 + font-size: 32px;
72 + margin-right: 10px;
73 + }
74 + .reply-box {
75 + flex: 1;
76 + .box-content {
77 + .reply-user {
78 + font-size: 14px;
79 + line-height: 24px;
80 + .reply-name {
81 + color: @mainColor;
82 + }
83 + .by-reply-name {
84 + color: @warningColor;
85 + }
86 + }
87 + .reply-content {
88 + flex: 1;
89 + font-size: 14px;
90 + line-height: 24px;
91 + color: @thinColor;
92 + }
93 + }
94 + .reply-date {
95 + font-size: 12px;
96 + color: @borderBoldColor;
97 + margin-top: 2px;
98 + text-align: right;
99 + }
100 + }
101 +}
102 +</style>
1 +<template>
2 + <div class="home-wrapper" v-loading="loading">
3 + <div class="side-title">
4 + <Icon name="icon-message"></Icon>
5 + 留言板
6 + </div>
7 + <div class="home-body">
8 + <comment-editor @submit="handleComment" ref="editor"></comment-editor>
9 +
10 + <comment-item
11 + v-if="total > 0"
12 + :commentList="commentList"
13 + :total="total"
14 + :replyCount="replyCount"
15 + @success="initData"
16 + ></comment-item>
17 + <none-data v-else-if="!total"></none-data>
18 +
19 + <Paging
20 + :page-index="pageindex"
21 + :total="total"
22 + :page-size="pagesize"
23 + @change="pageChange"
24 + ></Paging>
25 + </div>
26 + </div>
27 +</template>
28 +<script>
29 +import CommentEditor from "./components/commentEditor";
30 +import {
31 + apiAddMessage,
32 + apiGetMessageList,
33 + apiGetReplyCount,
34 +} from "api/message";
35 +import CommentItem from "./components/commentItem";
36 +export default {
37 + name: "commentIndex",
38 + components: { CommentEditor, CommentItem },
39 + data() {
40 + return {
41 + loading: false,
42 + commentList: [],
43 + pageindex: 1,
44 + pagesize: 8,
45 + total: -1, // 评论数量
46 + replyCount: 0, // 回复数量
47 + };
48 + },
49 + props: {},
50 + computed: {},
51 + destroyed() { },
52 + mounted() {
53 + this.initData();
54 + },
55 + methods: {
56 + pageChange(page) {
57 + this.pageindex = page;
58 + document.documentElement.scrollTop = document.body.scrollTop = 0;
59 + this.getMessageList();
60 + },
61 + initData() {
62 + this.loading = true;
63 + Promise.all([this.getMessageList(), this.getReplyCount()])
64 + .catch((err) => {
65 + console.log(err);
66 + })
67 + .finally(() => {
68 + this.loading = false;
69 + });
70 + },
71 + handleComment(params) {
72 + return apiAddMessage(params)
73 + .then((res) => {
74 + this.$refs.editor.handleReset();
75 + this.getMessageList();
76 + })
77 + .catch((err) => {
78 + console.log(err);
79 + })
80 + .finally(() => { });
81 + },
82 + getMessageList() {
83 + let params = {
84 + pageindex: this.pageindex,
85 + pagesize: this.pagesize,
86 + };
87 + return apiGetMessageList(params)
88 + .then((res) => {
89 + let { list, total } = res.data;
90 + this.commentList = list;
91 + this.total = total;
92 + })
93 + .catch((err) => {
94 + console.log(err);
95 + })
96 + .finally(() => { });
97 + },
98 + getReplyCount() {
99 + return apiGetReplyCount()
100 + .then((res) => {
101 + let { data } = res;
102 + this.replyCount = data[0].replyCount;
103 + })
104 + .catch((err) => {
105 + console.log(err);
106 + })
107 + .finally(() => { });
108 + },
109 + },
110 +};
111 +</script>
112 +
113 +<style scoped lang="less">
114 +.home-body {
115 + background-color: #fff;
116 + flex-direction: column;
117 + padding-bottom: 24px;
118 +}
119 +.side-title {
120 + width: 1200px;
121 + background-color: #fff;
122 + margin: 20px auto 0;
123 + padding-left: 20px;
124 + &::after {
125 + width: 8.5%;
126 + }
127 + &:hover {
128 + &::after {
129 + width: 100%;
130 + }
131 + }
132 +}
133 +.none-data-wrapper {
134 + width: 100%;
135 +}
136 +.paging-container {
137 + margin: 0 auto;
138 + padding-top: 24px;
139 +}
140 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <div class="home-wrapper">
3 + <div class="side-title">
4 + <Icon name="icon-me"></Icon>
5 + 关于我们
6 + </div>
7 + <div class="home-body">
8 + <div class="myself-main">
9 + <div class="main-desc">
10 +
11 +
12 + </div>
13 + </div>
14 + <div class="side-main">
15 + <div class="side-wrapper">
16 + <div class="side-img">
17 + <img src="../../images/avatar.png" class="avatar" alt="" />
18 + </div>
19 + <div class="side-content">
20 + <div class="content-item">RF</div>
21 + <div class="content-item">Running Football</div>
22 + </div>
23 + </div>
24 + </div>
25 + </div>
26 + </div>
27 +</template>
28 +<script>
29 +export default {
30 + name: "myself",
31 + components: {},
32 + props: {},
33 + computed: {},
34 + data() {
35 + return {};
36 + },
37 + watch: {},
38 + created() {},
39 + mounted() {},
40 + beforeDestroy() {},
41 + methods: {},
42 +};
43 +</script>
44 +<style lang="less" scoped>
45 +.home-body {
46 + background-color: #fff;
47 +}
48 +.side-title {
49 + width: 1200px;
50 + background-color: #fff;
51 + margin: 20px auto 0;
52 + padding-left: 20px;
53 + &::after {
54 + width: 8.4%;
55 + }
56 + &:hover {
57 + &::after {
58 + width: 100%;
59 + }
60 + }
61 +}
62 +.myself-main {
63 + width: 70%;
64 + padding: 24px;
65 + border-right: 1px solid @borderColor;
66 + .main-desc {
67 + font-size: 14px;
68 + line-height: 32px;
69 + color: @thinColor;
70 + }
71 + .main-img {
72 + margin-top: 10px;
73 + max-height: 300px;
74 + object-fit: contain;
75 + }
76 + .main-footer {
77 + background: @thinBgColor;
78 + padding: 10px;
79 + text-align: left;
80 + line-height: 32px;
81 + margin: 20px auto;
82 + color: #0609308a;
83 + a {
84 + color: #0609308a;
85 + text-decoration: underline;
86 + }
87 + }
88 +}
89 +.side-main {
90 + flex: 1;
91 + .side-wrapper {
92 + margin-top: 24px;
93 + .side-title {
94 + width: 92%;
95 + margin: 0;
96 + padding-left: 0;
97 + svg {
98 + font-size: 24px;
99 + }
100 + &::after {
101 + width: 10%;
102 + }
103 + &:hover {
104 + &::after {
105 + width: 100%;
106 + }
107 + }
108 + }
109 + .side-img {
110 + display: flex;
111 + justify-content: center;
112 + margin-bottom: 24px;
113 + .avatar {
114 + width: 100px;
115 + height: 100px;
116 + border-radius: 50%;
117 + }
118 + .qrcode {
119 + width: 80%;
120 + height: 80%;
121 + border-radius: 6px;
122 + margin-top: 24px;
123 + }
124 + }
125 + .side-content {
126 + .content-item {
127 + width: 92%;
128 + padding: 5px 10px;
129 + margin: 5px 0;
130 + border-radius: 5px;
131 + font-size: 14px;
132 + color: @thinColor;
133 + background-color: @thinBgColor;
134 + }
135 + }
136 + }
137 +}
138 +</style>
1 +import blogModel from "../../models/blog";
2 +
3 +module.exports = {
4 + async list(ctx, next) {
5 + console.log(
6 + "----------------获取博客列表 client_api/blog/list-----------------------"
7 + );
8 + let {
9 + keyword = null,
10 + isQuery = null,
11 + pageindex = 1,
12 + pagesize = 9,
13 + sortBy = null,
14 + } = ctx.request.query;
15 +
16 + // 条件参数
17 + let conditions = { isVisible: true };
18 + if (keyword) {
19 + let reg = new RegExp(keyword, "i");
20 + // 区分搜索框、标签场景
21 + let searchObj = isQuery
22 + ? [{ title: { $regex: reg } }, { desc: { $regex: reg } }]
23 + : [{ type: { $regex: reg } }];
24 + conditions["$or"] = [...searchObj];
25 + }
26 + // 排序参数
27 + let sortParams = {};
28 + if (sortBy) {
29 + sortParams[sortBy] = -1;
30 + sortParams["releaseTime"] = -1;
31 + }
32 +
33 + let options = {
34 + limit: pagesize * 1,
35 + skip: (pageindex - 1) * pagesize,
36 + sort: sortParams,
37 + };
38 +
39 + try {
40 + let data = await ctx.find(blogModel, conditions, null, options);
41 + return ctx.send(data);
42 + } catch (e) {
43 + console.log(e);
44 + return ctx.sendError(e);
45 + }
46 + },
47 +
48 + async info(ctx, next) {
49 + console.log(
50 + "----------------获取博客信息 client_api/blog/info-----------------------"
51 + );
52 + let _id = ctx.request.query._id;
53 + try {
54 + let data = await ctx.findOne(blogModel, { _id });
55 + return ctx.send(data);
56 + } catch (e) {
57 + return ctx.sendError(e);
58 + }
59 + },
60 +
61 + async updateLikes(ctx, next) {
62 + console.log(
63 + "----------------点赞文章 client_api/blog/updateLikes------------------"
64 + );
65 + let paramsData = ctx.request.body;
66 + let num = JSON.parse(paramsData.isLike) ? -1 : 1;
67 + let options = { $inc: { likes: num } };
68 + try {
69 + let data = await ctx.update(blogModel, { _id: paramsData._id }, options);
70 + ctx.send();
71 + } catch (e) {
72 + ctx.sendError(e);
73 + }
74 + },
75 +
76 + async updatePV(ctx, next) {
77 + console.log(
78 + "----------------文章浏览量 client_api/blog/updatePV------------------"
79 + );
80 + let paramsData = ctx.request.body;
81 + let options = { $inc: { pv: 1 } };
82 + try {
83 + let data = await ctx.update(blogModel, { _id: paramsData._id }, options);
84 + ctx.send();
85 + } catch (e) {
86 + ctx.sendError(e);
87 + }
88 + },
89 +};
1 +import labelModel from "../../models/label";
2 +
3 +module.exports = {
4 + async list(ctx, next) {
5 + console.log(
6 + "----------------获取标签列表 label/list-----------------------"
7 + );
8 + let { keyword, pageindex = 1, pagesize = 50 } = ctx.request.query;
9 + try {
10 + let reg = new RegExp(keyword, "i");
11 + let data = await ctx.findPage(
12 + labelModel,
13 + {
14 + $or: [{ label: { $regex: reg } }, { bgColor: { $regex: reg } }],
15 + },
16 + null,
17 + { limit: pagesize * 1, skip: (pageindex - 1) * pagesize }
18 + );
19 + ctx.send(data);
20 + } catch (e) {
21 + console.log(e);
22 + ctx.sendError(e);
23 + }
24 + },
25 +};
1 +import messageModel from '../../models/message';
2 +
3 +module.exports = {
4 + async add(ctx, next) {
5 + console.log('----------------添加留言 message/add-----------------------');
6 + let paramsData = ctx.request.body;
7 + if (!paramsData.nickname) {
8 + paramsData.nickname = '匿名网友';
9 + }
10 + try {
11 + await ctx.add(messageModel, paramsData);
12 + ctx.send(paramsData);
13 + } catch (e) {
14 + ctx.sendError(e);
15 + }
16 + },
17 +
18 + async list(ctx, next) {
19 + console.log(
20 + '----------------获取评论列表 client_api/message/list-----------------------'
21 + );
22 + let { pageindex = 1, pagesize = 10 } = ctx.request.query;
23 +
24 + // 排序参数
25 + let sortParams = {
26 + createTime: -1,
27 + };
28 +
29 + let options = {
30 + limit: pagesize * 1,
31 + skip: (pageindex - 1) * pagesize,
32 + sort: sortParams,
33 + };
34 +
35 + try {
36 + let data = await ctx.find(messageModel, null, null, options);
37 + return ctx.send(data);
38 + } catch (e) {
39 + console.log(e);
40 + return ctx.sendError(e);
41 + }
42 + },
43 +
44 + async replyCount(ctx, next) {
45 + console.log(
46 + '----------------获取回复列表 client_api/message/replyCount-----------------------'
47 + );
48 + let conditions = [
49 + { $project: { replyCount: { $size: '$replyList' } } },
50 + { $group: { _id: null, replyCount: { $sum: '$replyCount' } } },
51 + ];
52 + try {
53 + let data = await ctx.aggregate(messageModel, conditions);
54 + return ctx.send(data);
55 + } catch (e) {
56 + console.log(e);
57 + return ctx.sendError(e);
58 + }
59 + },
60 +
61 + async updateLikes(ctx, next) {
62 + console.log(
63 + '----------------点赞留言 client_api/message/updateLikes------------------'
64 + );
65 + let paramsData = ctx.request.body;
66 + let num = JSON.parse(paramsData.isLike) ? -1 : 1;
67 + let options = { $inc: { likes: num } };
68 + try {
69 + let data = await ctx.update(
70 + messageModel,
71 + { _id: paramsData._id },
72 + options
73 + );
74 + ctx.send();
75 + } catch (e) {
76 + ctx.sendError(e);
77 + }
78 + },
79 +
80 + async updateReplys(ctx, next) {
81 + console.log(
82 + '----------------回复留言 client_api/message/updateReplys------------------'
83 + );
84 + let paramsData = ctx.request.body;
85 + if (!paramsData.replyUser) {
86 + paramsData.replyUser = '匿名网友';
87 + }
88 + let options = {
89 + $push: { replyList: { $each: [paramsData], $position: 0 } },
90 + };
91 + try {
92 + let data = await ctx.update(
93 + messageModel,
94 + { _id: paramsData._id },
95 + options
96 + );
97 + ctx.send();
98 + } catch (e) {
99 + ctx.sendError(e);
100 + }
101 + },
102 +};